@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,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Noun Collection - Entity type registry for Digital Objects
|
|
3
|
+
*
|
|
4
|
+
* @module collections/nouns
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Manages the registration and lookup of Nouns (entity types) within a Digital Object.
|
|
8
|
+
* Nouns define the schema and linguistic forms for entity types following the
|
|
9
|
+
* linguistic pattern from digital-objects.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const nouns = new NounCollection(storage)
|
|
14
|
+
*
|
|
15
|
+
* // Register a noun
|
|
16
|
+
* const customerNoun = await nouns.create({
|
|
17
|
+
* name: 'Customer',
|
|
18
|
+
* singular: 'customer',
|
|
19
|
+
* plural: 'customers',
|
|
20
|
+
* slug: 'customer',
|
|
21
|
+
* schema: {
|
|
22
|
+
* name: 'string',
|
|
23
|
+
* email: 'string',
|
|
24
|
+
* company: '~>Company'
|
|
25
|
+
* }
|
|
26
|
+
* })
|
|
27
|
+
*
|
|
28
|
+
* // Look up by slug
|
|
29
|
+
* const noun = await nouns.getBySlug('customer')
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import type { Noun } from '../../types/collections';
|
|
33
|
+
import { BaseCollection, DOStorage } from './base';
|
|
34
|
+
/**
|
|
35
|
+
* Options for creating a noun
|
|
36
|
+
*/
|
|
37
|
+
export interface CreateNounOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Noun name (display name)
|
|
40
|
+
*/
|
|
41
|
+
name: string;
|
|
42
|
+
/**
|
|
43
|
+
* Singular form for display
|
|
44
|
+
* @example 'customer'
|
|
45
|
+
*/
|
|
46
|
+
singular: string;
|
|
47
|
+
/**
|
|
48
|
+
* Plural form for display
|
|
49
|
+
* @example 'customers'
|
|
50
|
+
*/
|
|
51
|
+
plural: string;
|
|
52
|
+
/**
|
|
53
|
+
* URL-safe slug for routing
|
|
54
|
+
* @example 'customer'
|
|
55
|
+
*/
|
|
56
|
+
slug: string;
|
|
57
|
+
/**
|
|
58
|
+
* Optional JSON Schema for validating Thing instances
|
|
59
|
+
*/
|
|
60
|
+
schema?: Record<string, unknown>;
|
|
61
|
+
/**
|
|
62
|
+
* Human-readable description
|
|
63
|
+
*/
|
|
64
|
+
description?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Noun collection for managing entity type definitions
|
|
68
|
+
*
|
|
69
|
+
* @description
|
|
70
|
+
* The NounCollection provides methods for registering, looking up, and managing
|
|
71
|
+
* entity types. Each noun defines:
|
|
72
|
+
*
|
|
73
|
+
* - Linguistic forms (singular, plural, slug)
|
|
74
|
+
* - Optional schema for validation
|
|
75
|
+
* - Description for documentation
|
|
76
|
+
*
|
|
77
|
+
* Nouns are referenced by Things via the `$type` field and enable:
|
|
78
|
+
* - Type validation
|
|
79
|
+
* - Dynamic routing (e.g., `/customers/:id`)
|
|
80
|
+
* - Schema-driven UI generation
|
|
81
|
+
* - API documentation
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* // Define multiple nouns
|
|
86
|
+
* const nouns = new NounCollection(storage)
|
|
87
|
+
*
|
|
88
|
+
* await nouns.create({
|
|
89
|
+
* name: 'Customer',
|
|
90
|
+
* singular: 'customer',
|
|
91
|
+
* plural: 'customers',
|
|
92
|
+
* slug: 'customer',
|
|
93
|
+
* schema: {
|
|
94
|
+
* name: { type: 'string', required: true },
|
|
95
|
+
* email: { type: 'string', format: 'email' },
|
|
96
|
+
* company: '~>Company' // Relation field
|
|
97
|
+
* },
|
|
98
|
+
* description: 'A customer entity representing a business client'
|
|
99
|
+
* })
|
|
100
|
+
*
|
|
101
|
+
* await nouns.create({
|
|
102
|
+
* name: 'Order',
|
|
103
|
+
* singular: 'order',
|
|
104
|
+
* plural: 'orders',
|
|
105
|
+
* slug: 'order',
|
|
106
|
+
* schema: {
|
|
107
|
+
* customer: '->Customer',
|
|
108
|
+
* items: ['->OrderItem'],
|
|
109
|
+
* total: { type: 'number', minimum: 0 }
|
|
110
|
+
* }
|
|
111
|
+
* })
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare class NounCollection extends BaseCollection<Noun> {
|
|
115
|
+
/**
|
|
116
|
+
* Create a new NounCollection instance
|
|
117
|
+
*
|
|
118
|
+
* @param storage - DO storage interface
|
|
119
|
+
*/
|
|
120
|
+
constructor(storage: DOStorage);
|
|
121
|
+
/**
|
|
122
|
+
* Initialize the nouns table in SQLite
|
|
123
|
+
*
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
protected initializeTable(): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Create a new noun
|
|
129
|
+
*
|
|
130
|
+
* @param data - Noun creation options
|
|
131
|
+
* @returns The created noun with generated ID
|
|
132
|
+
*
|
|
133
|
+
* @throws {ValidationError} If slug is invalid or already exists
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* const noun = await nouns.create({
|
|
138
|
+
* name: 'Product',
|
|
139
|
+
* singular: 'product',
|
|
140
|
+
* plural: 'products',
|
|
141
|
+
* slug: 'product'
|
|
142
|
+
* })
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
create(data: Omit<Noun, 'id'>): Promise<Noun>;
|
|
146
|
+
/**
|
|
147
|
+
* Get a noun by its URL slug
|
|
148
|
+
*
|
|
149
|
+
* @param slug - The noun's slug
|
|
150
|
+
* @returns The noun or null if not found
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* const customerNoun = await nouns.getBySlug('customer')
|
|
155
|
+
* if (customerNoun) {
|
|
156
|
+
* console.log(customerNoun.schema)
|
|
157
|
+
* }
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
getBySlug(slug: string): Promise<Noun | null>;
|
|
161
|
+
/**
|
|
162
|
+
* Get a noun by its name (case-insensitive)
|
|
163
|
+
*
|
|
164
|
+
* @param name - The noun's name
|
|
165
|
+
* @returns The noun or null if not found
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const noun = await nouns.getByName('Customer')
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
getByName(name: string): Promise<Noun | null>;
|
|
173
|
+
/**
|
|
174
|
+
* Check if a slug is available
|
|
175
|
+
*
|
|
176
|
+
* @param slug - Slug to check
|
|
177
|
+
* @returns True if slug is available
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* if (await nouns.isSlugAvailable('new-entity')) {
|
|
182
|
+
* await nouns.create({ ... })
|
|
183
|
+
* }
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
isSlugAvailable(slug: string): Promise<boolean>;
|
|
187
|
+
/**
|
|
188
|
+
* Update a noun's schema
|
|
189
|
+
*
|
|
190
|
+
* @param id - Noun ID
|
|
191
|
+
* @param schema - New schema definition
|
|
192
|
+
* @returns Updated noun
|
|
193
|
+
*
|
|
194
|
+
* @throws {NotFoundError} If noun not found
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* await nouns.updateSchema('noun_abc', {
|
|
199
|
+
* name: 'string',
|
|
200
|
+
* email: 'string',
|
|
201
|
+
* phone: 'string?' // Added optional field
|
|
202
|
+
* })
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
updateSchema(id: string, schema: Record<string, unknown>): Promise<Noun>;
|
|
206
|
+
/**
|
|
207
|
+
* Validate a slug format
|
|
208
|
+
*
|
|
209
|
+
* @param slug - Slug to validate
|
|
210
|
+
* @returns True if valid
|
|
211
|
+
*
|
|
212
|
+
* @description
|
|
213
|
+
* Valid slugs:
|
|
214
|
+
* - Lowercase alphanumeric characters and hyphens
|
|
215
|
+
* - Must start with a letter
|
|
216
|
+
* - Must not end with a hyphen
|
|
217
|
+
* - 1-64 characters
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* nouns.validateSlug('customer') // true
|
|
222
|
+
* nouns.validateSlug('customer-type') // true
|
|
223
|
+
* nouns.validateSlug('Customer') // false (uppercase)
|
|
224
|
+
* nouns.validateSlug('123customer') // false (starts with number)
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
validateSlug(slug: string): boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Get all nouns that have schemas with relation fields
|
|
230
|
+
*
|
|
231
|
+
* @returns Nouns with cascade relation operators in their schemas
|
|
232
|
+
*
|
|
233
|
+
* @description
|
|
234
|
+
* Useful for building relationship graphs and understanding
|
|
235
|
+
* entity dependencies.
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* const relationalNouns = await nouns.getWithRelations()
|
|
240
|
+
* for (const noun of relationalNouns) {
|
|
241
|
+
* console.log(`${noun.name} has relations:`, noun.schema)
|
|
242
|
+
* }
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
getWithRelations(): Promise<Noun[]>;
|
|
246
|
+
/**
|
|
247
|
+
* Export all nouns as a schema registry
|
|
248
|
+
*
|
|
249
|
+
* @returns Map of slug to schema for all nouns
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* const registry = await nouns.exportRegistry()
|
|
254
|
+
* // { customer: { name: 'string', ... }, order: { ... } }
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
exportRegistry(): Promise<Record<string, Record<string, unknown>>>;
|
|
258
|
+
}
|
|
259
|
+
export default NounCollection;
|
|
260
|
+
//# sourceMappingURL=nouns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nouns.d.ts","sourceRoot":"","sources":["../../../db/collections/nouns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAkC,MAAM,QAAQ,CAAA;AAElF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEhC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IACtD;;;;OAIG;gBACS,OAAO,EAAE,SAAS;IAO9B;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAchD;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAKnD;;;;;;;;;;OAUG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAKnD;;;;;;;;;;;;OAYG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrD;;;;;;;;;;;;;;;;;OAiBG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMnC;;;;;;;;;;;;;;;;OAgBG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAKzC;;;;;;;;;;OAUG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAIzE;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Noun Collection - Entity type registry for Digital Objects
|
|
3
|
+
*
|
|
4
|
+
* @module collections/nouns
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Manages the registration and lookup of Nouns (entity types) within a Digital Object.
|
|
8
|
+
* Nouns define the schema and linguistic forms for entity types following the
|
|
9
|
+
* linguistic pattern from digital-objects.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const nouns = new NounCollection(storage)
|
|
14
|
+
*
|
|
15
|
+
* // Register a noun
|
|
16
|
+
* const customerNoun = await nouns.create({
|
|
17
|
+
* name: 'Customer',
|
|
18
|
+
* singular: 'customer',
|
|
19
|
+
* plural: 'customers',
|
|
20
|
+
* slug: 'customer',
|
|
21
|
+
* schema: {
|
|
22
|
+
* name: 'string',
|
|
23
|
+
* email: 'string',
|
|
24
|
+
* company: '~>Company'
|
|
25
|
+
* }
|
|
26
|
+
* })
|
|
27
|
+
*
|
|
28
|
+
* // Look up by slug
|
|
29
|
+
* const noun = await nouns.getBySlug('customer')
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import { BaseCollection } from './base';
|
|
33
|
+
/**
|
|
34
|
+
* Noun collection for managing entity type definitions
|
|
35
|
+
*
|
|
36
|
+
* @description
|
|
37
|
+
* The NounCollection provides methods for registering, looking up, and managing
|
|
38
|
+
* entity types. Each noun defines:
|
|
39
|
+
*
|
|
40
|
+
* - Linguistic forms (singular, plural, slug)
|
|
41
|
+
* - Optional schema for validation
|
|
42
|
+
* - Description for documentation
|
|
43
|
+
*
|
|
44
|
+
* Nouns are referenced by Things via the `$type` field and enable:
|
|
45
|
+
* - Type validation
|
|
46
|
+
* - Dynamic routing (e.g., `/customers/:id`)
|
|
47
|
+
* - Schema-driven UI generation
|
|
48
|
+
* - API documentation
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // Define multiple nouns
|
|
53
|
+
* const nouns = new NounCollection(storage)
|
|
54
|
+
*
|
|
55
|
+
* await nouns.create({
|
|
56
|
+
* name: 'Customer',
|
|
57
|
+
* singular: 'customer',
|
|
58
|
+
* plural: 'customers',
|
|
59
|
+
* slug: 'customer',
|
|
60
|
+
* schema: {
|
|
61
|
+
* name: { type: 'string', required: true },
|
|
62
|
+
* email: { type: 'string', format: 'email' },
|
|
63
|
+
* company: '~>Company' // Relation field
|
|
64
|
+
* },
|
|
65
|
+
* description: 'A customer entity representing a business client'
|
|
66
|
+
* })
|
|
67
|
+
*
|
|
68
|
+
* await nouns.create({
|
|
69
|
+
* name: 'Order',
|
|
70
|
+
* singular: 'order',
|
|
71
|
+
* plural: 'orders',
|
|
72
|
+
* slug: 'order',
|
|
73
|
+
* schema: {
|
|
74
|
+
* customer: '->Customer',
|
|
75
|
+
* items: ['->OrderItem'],
|
|
76
|
+
* total: { type: 'number', minimum: 0 }
|
|
77
|
+
* }
|
|
78
|
+
* })
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export class NounCollection extends BaseCollection {
|
|
82
|
+
/**
|
|
83
|
+
* Create a new NounCollection instance
|
|
84
|
+
*
|
|
85
|
+
* @param storage - DO storage interface
|
|
86
|
+
*/
|
|
87
|
+
constructor(storage) {
|
|
88
|
+
super(storage, {
|
|
89
|
+
name: 'nouns',
|
|
90
|
+
idPrefix: 'noun',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Initialize the nouns table in SQLite
|
|
95
|
+
*
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
98
|
+
async initializeTable() {
|
|
99
|
+
// TODO: Create nouns table with schema:
|
|
100
|
+
// id TEXT PRIMARY KEY,
|
|
101
|
+
// name TEXT NOT NULL,
|
|
102
|
+
// singular TEXT NOT NULL,
|
|
103
|
+
// plural TEXT NOT NULL,
|
|
104
|
+
// slug TEXT UNIQUE NOT NULL,
|
|
105
|
+
// schema TEXT, -- JSON
|
|
106
|
+
// description TEXT,
|
|
107
|
+
// createdAt INTEGER NOT NULL,
|
|
108
|
+
// updatedAt INTEGER NOT NULL
|
|
109
|
+
throw new Error('Not implemented');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Create a new noun
|
|
113
|
+
*
|
|
114
|
+
* @param data - Noun creation options
|
|
115
|
+
* @returns The created noun with generated ID
|
|
116
|
+
*
|
|
117
|
+
* @throws {ValidationError} If slug is invalid or already exists
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const noun = await nouns.create({
|
|
122
|
+
* name: 'Product',
|
|
123
|
+
* singular: 'product',
|
|
124
|
+
* plural: 'products',
|
|
125
|
+
* slug: 'product'
|
|
126
|
+
* })
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
async create(data) {
|
|
130
|
+
// TODO: Implement with:
|
|
131
|
+
// 1. Validate slug format (lowercase, alphanumeric, hyphens)
|
|
132
|
+
// 2. Check slug uniqueness
|
|
133
|
+
// 3. Generate ID
|
|
134
|
+
// 4. Store in SQLite
|
|
135
|
+
throw new Error('Not implemented');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get a noun by its URL slug
|
|
139
|
+
*
|
|
140
|
+
* @param slug - The noun's slug
|
|
141
|
+
* @returns The noun or null if not found
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const customerNoun = await nouns.getBySlug('customer')
|
|
146
|
+
* if (customerNoun) {
|
|
147
|
+
* console.log(customerNoun.schema)
|
|
148
|
+
* }
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
async getBySlug(slug) {
|
|
152
|
+
// TODO: Query by slug
|
|
153
|
+
throw new Error('Not implemented');
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get a noun by its name (case-insensitive)
|
|
157
|
+
*
|
|
158
|
+
* @param name - The noun's name
|
|
159
|
+
* @returns The noun or null if not found
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const noun = await nouns.getByName('Customer')
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
async getByName(name) {
|
|
167
|
+
// TODO: Query by name with case-insensitive comparison
|
|
168
|
+
throw new Error('Not implemented');
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Check if a slug is available
|
|
172
|
+
*
|
|
173
|
+
* @param slug - Slug to check
|
|
174
|
+
* @returns True if slug is available
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* if (await nouns.isSlugAvailable('new-entity')) {
|
|
179
|
+
* await nouns.create({ ... })
|
|
180
|
+
* }
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
async isSlugAvailable(slug) {
|
|
184
|
+
// TODO: Check for existing noun with slug
|
|
185
|
+
throw new Error('Not implemented');
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Update a noun's schema
|
|
189
|
+
*
|
|
190
|
+
* @param id - Noun ID
|
|
191
|
+
* @param schema - New schema definition
|
|
192
|
+
* @returns Updated noun
|
|
193
|
+
*
|
|
194
|
+
* @throws {NotFoundError} If noun not found
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* await nouns.updateSchema('noun_abc', {
|
|
199
|
+
* name: 'string',
|
|
200
|
+
* email: 'string',
|
|
201
|
+
* phone: 'string?' // Added optional field
|
|
202
|
+
* })
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
async updateSchema(id, schema) {
|
|
206
|
+
// TODO: Update only the schema field
|
|
207
|
+
throw new Error('Not implemented');
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Validate a slug format
|
|
211
|
+
*
|
|
212
|
+
* @param slug - Slug to validate
|
|
213
|
+
* @returns True if valid
|
|
214
|
+
*
|
|
215
|
+
* @description
|
|
216
|
+
* Valid slugs:
|
|
217
|
+
* - Lowercase alphanumeric characters and hyphens
|
|
218
|
+
* - Must start with a letter
|
|
219
|
+
* - Must not end with a hyphen
|
|
220
|
+
* - 1-64 characters
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```typescript
|
|
224
|
+
* nouns.validateSlug('customer') // true
|
|
225
|
+
* nouns.validateSlug('customer-type') // true
|
|
226
|
+
* nouns.validateSlug('Customer') // false (uppercase)
|
|
227
|
+
* nouns.validateSlug('123customer') // false (starts with number)
|
|
228
|
+
* ```
|
|
229
|
+
*/
|
|
230
|
+
validateSlug(slug) {
|
|
231
|
+
// TODO: Implement slug validation regex
|
|
232
|
+
const slugRegex = /^[a-z][a-z0-9-]{0,62}[a-z0-9]?$/;
|
|
233
|
+
return slugRegex.test(slug) && !slug.includes('--');
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get all nouns that have schemas with relation fields
|
|
237
|
+
*
|
|
238
|
+
* @returns Nouns with cascade relation operators in their schemas
|
|
239
|
+
*
|
|
240
|
+
* @description
|
|
241
|
+
* Useful for building relationship graphs and understanding
|
|
242
|
+
* entity dependencies.
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* ```typescript
|
|
246
|
+
* const relationalNouns = await nouns.getWithRelations()
|
|
247
|
+
* for (const noun of relationalNouns) {
|
|
248
|
+
* console.log(`${noun.name} has relations:`, noun.schema)
|
|
249
|
+
* }
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
async getWithRelations() {
|
|
253
|
+
// TODO: Filter nouns where schema contains ->, ~>, <-, or <~
|
|
254
|
+
throw new Error('Not implemented');
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Export all nouns as a schema registry
|
|
258
|
+
*
|
|
259
|
+
* @returns Map of slug to schema for all nouns
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* const registry = await nouns.exportRegistry()
|
|
264
|
+
* // { customer: { name: 'string', ... }, order: { ... } }
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
async exportRegistry() {
|
|
268
|
+
// TODO: Build slug -> schema map
|
|
269
|
+
throw new Error('Not implemented');
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
export default NounCollection;
|
|
273
|
+
//# sourceMappingURL=nouns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nouns.js","sourceRoot":"","sources":["../../../db/collections/nouns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,cAAc,EAA6C,MAAM,QAAQ,CAAA;AAwClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAoB;IACtD;;;;OAIG;IACH,YAAY,OAAkB;QAC5B,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,eAAe;QAC7B,wCAAwC;QACxC,uBAAuB;QACvB,sBAAsB;QACtB,0BAA0B;QAC1B,wBAAwB;QACxB,6BAA6B;QAC7B,uBAAuB;QACvB,oBAAoB;QACpB,8BAA8B;QAC9B,6BAA6B;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,MAAM,CAAC,IAAsB;QACjC,wBAAwB;QACxB,6DAA6D;QAC7D,2BAA2B;QAC3B,iBAAiB;QACjB,qBAAqB;QACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,sBAAsB;QACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,uDAAuD;QACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,0CAA0C;QAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,MAA+B;QAC5D,qCAAqC;QACrC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CAAC,IAAY;QACvB,wCAAwC;QACxC,MAAM,SAAS,GAAG,iCAAiC,CAAA;QACnD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,gBAAgB;QACpB,6DAA6D;QAC7D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc;QAClB,iCAAiC;QACjC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;CACF;AAED,eAAe,cAAc,CAAA"}
|