digital-tools 2.0.1
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/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +9 -0
- package/README.md +1144 -0
- package/dist/define.d.ts +109 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +268 -0
- package/dist/define.js.map +1 -0
- package/dist/entities/advertising.d.ts +79 -0
- package/dist/entities/advertising.d.ts.map +1 -0
- package/dist/entities/advertising.js +1000 -0
- package/dist/entities/advertising.js.map +1 -0
- package/dist/entities/ai.d.ts +69 -0
- package/dist/entities/ai.d.ts.map +1 -0
- package/dist/entities/ai.js +757 -0
- package/dist/entities/ai.js.map +1 -0
- package/dist/entities/analytics.d.ts +83 -0
- package/dist/entities/analytics.d.ts.map +1 -0
- package/dist/entities/analytics.js +1589 -0
- package/dist/entities/analytics.js.map +1 -0
- package/dist/entities/automation.d.ts +61 -0
- package/dist/entities/automation.d.ts.map +1 -0
- package/dist/entities/automation.js +602 -0
- package/dist/entities/automation.js.map +1 -0
- package/dist/entities/communication.d.ts +96 -0
- package/dist/entities/communication.d.ts.map +1 -0
- package/dist/entities/communication.js +1151 -0
- package/dist/entities/communication.js.map +1 -0
- package/dist/entities/crm.d.ts +91 -0
- package/dist/entities/crm.d.ts.map +1 -0
- package/dist/entities/crm.js +1387 -0
- package/dist/entities/crm.js.map +1 -0
- package/dist/entities/design.d.ts +61 -0
- package/dist/entities/design.d.ts.map +1 -0
- package/dist/entities/design.js +547 -0
- package/dist/entities/design.js.map +1 -0
- package/dist/entities/development.d.ts +145 -0
- package/dist/entities/development.d.ts.map +1 -0
- package/dist/entities/development.js +2213 -0
- package/dist/entities/development.js.map +1 -0
- package/dist/entities/document.d.ts +54 -0
- package/dist/entities/document.d.ts.map +1 -0
- package/dist/entities/document.js +875 -0
- package/dist/entities/document.js.map +1 -0
- package/dist/entities/ecommerce.d.ts +93 -0
- package/dist/entities/ecommerce.d.ts.map +1 -0
- package/dist/entities/ecommerce.js +1430 -0
- package/dist/entities/ecommerce.js.map +1 -0
- package/dist/entities/experiment.d.ts +89 -0
- package/dist/entities/experiment.d.ts.map +1 -0
- package/dist/entities/experiment.js +1040 -0
- package/dist/entities/experiment.js.map +1 -0
- package/dist/entities/finance.d.ts +272 -0
- package/dist/entities/finance.d.ts.map +1 -0
- package/dist/entities/finance.js +3479 -0
- package/dist/entities/finance.js.map +1 -0
- package/dist/entities/forms.d.ts +91 -0
- package/dist/entities/forms.d.ts.map +1 -0
- package/dist/entities/forms.js +1893 -0
- package/dist/entities/forms.js.map +1 -0
- package/dist/entities/hr.d.ts +62 -0
- package/dist/entities/hr.d.ts.map +1 -0
- package/dist/entities/hr.js +662 -0
- package/dist/entities/hr.js.map +1 -0
- package/dist/entities/identity.d.ts +90 -0
- package/dist/entities/identity.d.ts.map +1 -0
- package/dist/entities/identity.js +998 -0
- package/dist/entities/identity.js.map +1 -0
- package/dist/entities/index.d.ts +410 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +283 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/infrastructure.d.ts +98 -0
- package/dist/entities/infrastructure.d.ts.map +1 -0
- package/dist/entities/infrastructure.js +1154 -0
- package/dist/entities/infrastructure.js.map +1 -0
- package/dist/entities/knowledge.d.ts +98 -0
- package/dist/entities/knowledge.d.ts.map +1 -0
- package/dist/entities/knowledge.js +1439 -0
- package/dist/entities/knowledge.js.map +1 -0
- package/dist/entities/marketing.d.ts +82 -0
- package/dist/entities/marketing.d.ts.map +1 -0
- package/dist/entities/marketing.js +1611 -0
- package/dist/entities/marketing.js.map +1 -0
- package/dist/entities/media.d.ts +83 -0
- package/dist/entities/media.d.ts.map +1 -0
- package/dist/entities/media.js +1635 -0
- package/dist/entities/media.js.map +1 -0
- package/dist/entities/notification.d.ts +76 -0
- package/dist/entities/notification.d.ts.map +1 -0
- package/dist/entities/notification.js +1200 -0
- package/dist/entities/notification.js.map +1 -0
- package/dist/entities/presentation.d.ts +61 -0
- package/dist/entities/presentation.d.ts.map +1 -0
- package/dist/entities/presentation.js +1275 -0
- package/dist/entities/presentation.js.map +1 -0
- package/dist/entities/productivity.d.ts +92 -0
- package/dist/entities/productivity.d.ts.map +1 -0
- package/dist/entities/productivity.js +1318 -0
- package/dist/entities/productivity.js.map +1 -0
- package/dist/entities/project-management.d.ts +89 -0
- package/dist/entities/project-management.d.ts.map +1 -0
- package/dist/entities/project-management.js +1137 -0
- package/dist/entities/project-management.js.map +1 -0
- package/dist/entities/recruiting.d.ts +54 -0
- package/dist/entities/recruiting.d.ts.map +1 -0
- package/dist/entities/recruiting.js +737 -0
- package/dist/entities/recruiting.js.map +1 -0
- package/dist/entities/shipping.d.ts +52 -0
- package/dist/entities/shipping.d.ts.map +1 -0
- package/dist/entities/shipping.js +510 -0
- package/dist/entities/shipping.js.map +1 -0
- package/dist/entities/signature.d.ts +83 -0
- package/dist/entities/signature.d.ts.map +1 -0
- package/dist/entities/signature.js +1103 -0
- package/dist/entities/signature.js.map +1 -0
- package/dist/entities/site.d.ts +33 -0
- package/dist/entities/site.d.ts.map +1 -0
- package/dist/entities/site.js +223 -0
- package/dist/entities/site.js.map +1 -0
- package/dist/entities/spreadsheet.d.ts +68 -0
- package/dist/entities/spreadsheet.d.ts.map +1 -0
- package/dist/entities/spreadsheet.js +1342 -0
- package/dist/entities/spreadsheet.js.map +1 -0
- package/dist/entities/storage.d.ts +74 -0
- package/dist/entities/storage.d.ts.map +1 -0
- package/dist/entities/storage.js +1199 -0
- package/dist/entities/storage.js.map +1 -0
- package/dist/entities/support.d.ts +83 -0
- package/dist/entities/support.d.ts.map +1 -0
- package/dist/entities/support.js +1167 -0
- package/dist/entities/support.js.map +1 -0
- package/dist/entities/video-conferencing.d.ts +129 -0
- package/dist/entities/video-conferencing.d.ts.map +1 -0
- package/dist/entities/video-conferencing.js +1751 -0
- package/dist/entities/video-conferencing.js.map +1 -0
- package/dist/entities/video.d.ts +76 -0
- package/dist/entities/video.d.ts.map +1 -0
- package/dist/entities/video.js +951 -0
- package/dist/entities/video.js.map +1 -0
- package/dist/entities.d.ts +147 -0
- package/dist/entities.d.ts.map +1 -0
- package/dist/entities.js +1664 -0
- package/dist/entities.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/analytics/index.d.ts +19 -0
- package/dist/providers/analytics/index.d.ts.map +1 -0
- package/dist/providers/analytics/index.js +18 -0
- package/dist/providers/analytics/index.js.map +1 -0
- package/dist/providers/analytics/mixpanel.d.ts +25 -0
- package/dist/providers/analytics/mixpanel.d.ts.map +1 -0
- package/dist/providers/analytics/mixpanel.js +256 -0
- package/dist/providers/analytics/mixpanel.js.map +1 -0
- package/dist/providers/calendar/cal-com.d.ts +26 -0
- package/dist/providers/calendar/cal-com.d.ts.map +1 -0
- package/dist/providers/calendar/cal-com.js +304 -0
- package/dist/providers/calendar/cal-com.js.map +1 -0
- package/dist/providers/calendar/google-calendar.d.ts +25 -0
- package/dist/providers/calendar/google-calendar.d.ts.map +1 -0
- package/dist/providers/calendar/google-calendar.js +336 -0
- package/dist/providers/calendar/google-calendar.js.map +1 -0
- package/dist/providers/calendar/index.d.ts +20 -0
- package/dist/providers/calendar/index.d.ts.map +1 -0
- package/dist/providers/calendar/index.js +21 -0
- package/dist/providers/calendar/index.js.map +1 -0
- package/dist/providers/crm/hubspot.d.ts +25 -0
- package/dist/providers/crm/hubspot.d.ts.map +1 -0
- package/dist/providers/crm/hubspot.js +567 -0
- package/dist/providers/crm/hubspot.js.map +1 -0
- package/dist/providers/crm/index.d.ts +19 -0
- package/dist/providers/crm/index.d.ts.map +1 -0
- package/dist/providers/crm/index.js +18 -0
- package/dist/providers/crm/index.js.map +1 -0
- package/dist/providers/development/github.d.ts +25 -0
- package/dist/providers/development/github.d.ts.map +1 -0
- package/dist/providers/development/github.js +473 -0
- package/dist/providers/development/github.js.map +1 -0
- package/dist/providers/development/index.d.ts +19 -0
- package/dist/providers/development/index.d.ts.map +1 -0
- package/dist/providers/development/index.js +18 -0
- package/dist/providers/development/index.js.map +1 -0
- package/dist/providers/ecommerce/index.d.ts +19 -0
- package/dist/providers/ecommerce/index.d.ts.map +1 -0
- package/dist/providers/ecommerce/index.js +18 -0
- package/dist/providers/ecommerce/index.js.map +1 -0
- package/dist/providers/ecommerce/shopify.d.ts +25 -0
- package/dist/providers/ecommerce/shopify.d.ts.map +1 -0
- package/dist/providers/ecommerce/shopify.js +379 -0
- package/dist/providers/ecommerce/shopify.js.map +1 -0
- package/dist/providers/email/index.d.ts +20 -0
- package/dist/providers/email/index.d.ts.map +1 -0
- package/dist/providers/email/index.js +21 -0
- package/dist/providers/email/index.js.map +1 -0
- package/dist/providers/email/resend.d.ts +25 -0
- package/dist/providers/email/resend.d.ts.map +1 -0
- package/dist/providers/email/resend.js +259 -0
- package/dist/providers/email/resend.js.map +1 -0
- package/dist/providers/email/sendgrid.d.ts +25 -0
- package/dist/providers/email/sendgrid.d.ts.map +1 -0
- package/dist/providers/email/sendgrid.js +162 -0
- package/dist/providers/email/sendgrid.js.map +1 -0
- package/dist/providers/finance/index.d.ts +19 -0
- package/dist/providers/finance/index.d.ts.map +1 -0
- package/dist/providers/finance/index.js +18 -0
- package/dist/providers/finance/index.js.map +1 -0
- package/dist/providers/finance/stripe.d.ts +25 -0
- package/dist/providers/finance/stripe.d.ts.map +1 -0
- package/dist/providers/finance/stripe.js +550 -0
- package/dist/providers/finance/stripe.js.map +1 -0
- package/dist/providers/forms/index.d.ts +19 -0
- package/dist/providers/forms/index.d.ts.map +1 -0
- package/dist/providers/forms/index.js +18 -0
- package/dist/providers/forms/index.js.map +1 -0
- package/dist/providers/forms/typeform.d.ts +25 -0
- package/dist/providers/forms/typeform.d.ts.map +1 -0
- package/dist/providers/forms/typeform.js +501 -0
- package/dist/providers/forms/typeform.js.map +1 -0
- package/dist/providers/index.d.ts +56 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +124 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/knowledge/index.d.ts +19 -0
- package/dist/providers/knowledge/index.d.ts.map +1 -0
- package/dist/providers/knowledge/index.js +18 -0
- package/dist/providers/knowledge/index.js.map +1 -0
- package/dist/providers/knowledge/notion.d.ts +25 -0
- package/dist/providers/knowledge/notion.d.ts.map +1 -0
- package/dist/providers/knowledge/notion.js +390 -0
- package/dist/providers/knowledge/notion.js.map +1 -0
- package/dist/providers/marketing/index.d.ts +19 -0
- package/dist/providers/marketing/index.d.ts.map +1 -0
- package/dist/providers/marketing/index.js +18 -0
- package/dist/providers/marketing/index.js.map +1 -0
- package/dist/providers/marketing/mailchimp.d.ts +25 -0
- package/dist/providers/marketing/mailchimp.d.ts.map +1 -0
- package/dist/providers/marketing/mailchimp.js +444 -0
- package/dist/providers/marketing/mailchimp.js.map +1 -0
- package/dist/providers/media/cloudinary.d.ts +25 -0
- package/dist/providers/media/cloudinary.d.ts.map +1 -0
- package/dist/providers/media/cloudinary.js +319 -0
- package/dist/providers/media/cloudinary.js.map +1 -0
- package/dist/providers/media/index.d.ts +19 -0
- package/dist/providers/media/index.d.ts.map +1 -0
- package/dist/providers/media/index.js +18 -0
- package/dist/providers/media/index.js.map +1 -0
- package/dist/providers/messaging/index.d.ts +24 -0
- package/dist/providers/messaging/index.d.ts.map +1 -0
- package/dist/providers/messaging/index.js +21 -0
- package/dist/providers/messaging/index.js.map +1 -0
- package/dist/providers/messaging/slack.d.ts +25 -0
- package/dist/providers/messaging/slack.d.ts.map +1 -0
- package/dist/providers/messaging/slack.js +394 -0
- package/dist/providers/messaging/slack.js.map +1 -0
- package/dist/providers/messaging/twilio-sms.d.ts +25 -0
- package/dist/providers/messaging/twilio-sms.d.ts.map +1 -0
- package/dist/providers/messaging/twilio-sms.js +250 -0
- package/dist/providers/messaging/twilio-sms.js.map +1 -0
- package/dist/providers/project-management/index.d.ts +19 -0
- package/dist/providers/project-management/index.d.ts.map +1 -0
- package/dist/providers/project-management/index.js +18 -0
- package/dist/providers/project-management/index.js.map +1 -0
- package/dist/providers/project-management/linear.d.ts +25 -0
- package/dist/providers/project-management/linear.d.ts.map +1 -0
- package/dist/providers/project-management/linear.js +576 -0
- package/dist/providers/project-management/linear.js.map +1 -0
- package/dist/providers/registry.d.ts +41 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +87 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/spreadsheet/google-sheets.d.ts +25 -0
- package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -0
- package/dist/providers/spreadsheet/google-sheets.js +376 -0
- package/dist/providers/spreadsheet/google-sheets.js.map +1 -0
- package/dist/providers/spreadsheet/index.d.ts +20 -0
- package/dist/providers/spreadsheet/index.d.ts.map +1 -0
- package/dist/providers/spreadsheet/index.js +21 -0
- package/dist/providers/spreadsheet/index.js.map +1 -0
- package/dist/providers/spreadsheet/xlsx.d.ts +26 -0
- package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -0
- package/dist/providers/spreadsheet/xlsx.js +424 -0
- package/dist/providers/spreadsheet/xlsx.js.map +1 -0
- package/dist/providers/storage/index.d.ts +30 -0
- package/dist/providers/storage/index.d.ts.map +1 -0
- package/dist/providers/storage/index.js +25 -0
- package/dist/providers/storage/index.js.map +1 -0
- package/dist/providers/storage/s3.d.ts +25 -0
- package/dist/providers/storage/s3.d.ts.map +1 -0
- package/dist/providers/storage/s3.js +420 -0
- package/dist/providers/storage/s3.js.map +1 -0
- package/dist/providers/support/index.d.ts +19 -0
- package/dist/providers/support/index.d.ts.map +1 -0
- package/dist/providers/support/index.js +18 -0
- package/dist/providers/support/index.js.map +1 -0
- package/dist/providers/support/zendesk.d.ts +25 -0
- package/dist/providers/support/zendesk.d.ts.map +1 -0
- package/dist/providers/support/zendesk.js +374 -0
- package/dist/providers/support/zendesk.js.map +1 -0
- package/dist/providers/tasks/index.d.ts +19 -0
- package/dist/providers/tasks/index.d.ts.map +1 -0
- package/dist/providers/tasks/index.js +18 -0
- package/dist/providers/tasks/index.js.map +1 -0
- package/dist/providers/tasks/todoist.d.ts +25 -0
- package/dist/providers/tasks/todoist.d.ts.map +1 -0
- package/dist/providers/tasks/todoist.js +287 -0
- package/dist/providers/tasks/todoist.js.map +1 -0
- package/dist/providers/types.d.ts +1753 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +10 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/video-conferencing/google-meet.d.ts +26 -0
- package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -0
- package/dist/providers/video-conferencing/google-meet.js +287 -0
- package/dist/providers/video-conferencing/google-meet.js.map +1 -0
- package/dist/providers/video-conferencing/index.d.ts +22 -0
- package/dist/providers/video-conferencing/index.d.ts.map +1 -0
- package/dist/providers/video-conferencing/index.js +32 -0
- package/dist/providers/video-conferencing/index.js.map +1 -0
- package/dist/providers/video-conferencing/jitsi.d.ts +26 -0
- package/dist/providers/video-conferencing/jitsi.d.ts.map +1 -0
- package/dist/providers/video-conferencing/jitsi.js +255 -0
- package/dist/providers/video-conferencing/jitsi.js.map +1 -0
- package/dist/providers/video-conferencing/teams.d.ts +26 -0
- package/dist/providers/video-conferencing/teams.d.ts.map +1 -0
- package/dist/providers/video-conferencing/teams.js +271 -0
- package/dist/providers/video-conferencing/teams.js.map +1 -0
- package/dist/providers/video-conferencing/zoom.d.ts +25 -0
- package/dist/providers/video-conferencing/zoom.d.ts.map +1 -0
- package/dist/providers/video-conferencing/zoom.js +333 -0
- package/dist/providers/video-conferencing/zoom.js.map +1 -0
- package/dist/providers/voice/vapi.d.ts +27 -0
- package/dist/providers/voice/vapi.d.ts.map +1 -0
- package/dist/providers/voice/vapi.js +440 -0
- package/dist/providers/voice/vapi.js.map +1 -0
- package/dist/registry.d.ts +38 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +129 -0
- package/dist/registry.js.map +1 -0
- package/dist/tools/communication.d.ts +94 -0
- package/dist/tools/communication.d.ts.map +1 -0
- package/dist/tools/communication.js +185 -0
- package/dist/tools/communication.js.map +1 -0
- package/dist/tools/data.d.ts +61 -0
- package/dist/tools/data.d.ts.map +1 -0
- package/dist/tools/data.js +206 -0
- package/dist/tools/data.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +12 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/web.d.ts +45 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +138 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
- package/src/define.ts +321 -0
- package/src/entities/advertising.ts +1086 -0
- package/src/entities/ai.ts +835 -0
- package/src/entities/analytics.ts +1690 -0
- package/src/entities/automation.ts +669 -0
- package/src/entities/communication.ts +1255 -0
- package/src/entities/crm.ts +1481 -0
- package/src/entities/design.ts +606 -0
- package/src/entities/development.ts +2392 -0
- package/src/entities/document.ts +930 -0
- package/src/entities/ecommerce.ts +1539 -0
- package/src/entities/experiment.ts +1139 -0
- package/src/entities/finance.ts +3907 -0
- package/src/entities/forms.ts +2021 -0
- package/src/entities/hr.ts +725 -0
- package/src/entities/identity.ts +1093 -0
- package/src/entities/index.ts +731 -0
- package/src/entities/infrastructure.ts +1254 -0
- package/src/entities/knowledge.ts +1547 -0
- package/src/entities/marketing.ts +1718 -0
- package/src/entities/media.ts +1747 -0
- package/src/entities/notification.ts +1260 -0
- package/src/entities/presentation.ts +1360 -0
- package/src/entities/productivity.ts +1411 -0
- package/src/entities/project-management.ts +1222 -0
- package/src/entities/recruiting.ts +797 -0
- package/src/entities/shipping.ts +566 -0
- package/src/entities/signature.ts +1204 -0
- package/src/entities/site.ts +244 -0
- package/src/entities/spreadsheet.ts +1434 -0
- package/src/entities/storage.ts +1290 -0
- package/src/entities/support.ts +1267 -0
- package/src/entities/video-conferencing.ts +1874 -0
- package/src/entities/video.ts +1035 -0
- package/src/entities.ts +1795 -0
- package/src/index.ts +176 -0
- package/src/providers/analytics/index.ts +21 -0
- package/src/providers/analytics/mixpanel.ts +311 -0
- package/src/providers/calendar/cal-com.ts +435 -0
- package/src/providers/calendar/google-calendar.ts +412 -0
- package/src/providers/calendar/index.ts +24 -0
- package/src/providers/crm/hubspot.ts +667 -0
- package/src/providers/crm/index.ts +21 -0
- package/src/providers/development/github.ts +608 -0
- package/src/providers/development/index.ts +21 -0
- package/src/providers/ecommerce/index.ts +21 -0
- package/src/providers/ecommerce/shopify.ts +451 -0
- package/src/providers/email/index.ts +24 -0
- package/src/providers/email/resend.ts +301 -0
- package/src/providers/email/sendgrid.ts +196 -0
- package/src/providers/finance/index.ts +21 -0
- package/src/providers/finance/stripe.ts +665 -0
- package/src/providers/forms/index.ts +21 -0
- package/src/providers/forms/typeform.ts +598 -0
- package/src/providers/index.ts +281 -0
- package/src/providers/knowledge/index.ts +21 -0
- package/src/providers/knowledge/notion.ts +497 -0
- package/src/providers/marketing/index.ts +21 -0
- package/src/providers/marketing/mailchimp.ts +656 -0
- package/src/providers/media/cloudinary.ts +373 -0
- package/src/providers/media/index.ts +21 -0
- package/src/providers/messaging/index.ts +24 -0
- package/src/providers/messaging/slack.ts +487 -0
- package/src/providers/messaging/twilio-sms.ts +301 -0
- package/src/providers/project-management/index.ts +21 -0
- package/src/providers/project-management/linear.ts +693 -0
- package/src/providers/registry.ts +119 -0
- package/src/providers/spreadsheet/google-sheets.ts +464 -0
- package/src/providers/spreadsheet/index.ts +24 -0
- package/src/providers/spreadsheet/xlsx.ts +542 -0
- package/src/providers/storage/index.ts +35 -0
- package/src/providers/storage/s3.ts +513 -0
- package/src/providers/support/index.ts +21 -0
- package/src/providers/support/zendesk.ts +417 -0
- package/src/providers/tasks/index.ts +21 -0
- package/src/providers/tasks/todoist.ts +407 -0
- package/src/providers/types.ts +2113 -0
- package/src/providers/video-conferencing/google-meet.ts +412 -0
- package/src/providers/video-conferencing/index.ts +35 -0
- package/src/providers/video-conferencing/jitsi.ts +324 -0
- package/src/providers/video-conferencing/teams.ts +408 -0
- package/src/providers/video-conferencing/zoom.ts +451 -0
- package/src/registry.ts +172 -0
- package/src/tools/communication.ts +256 -0
- package/src/tools/data.ts +236 -0
- package/src/tools/index.ts +12 -0
- package/src/tools/web.ts +161 -0
- package/src/types.ts +539 -0
- package/test/define.test.ts +367 -0
- package/test/registry.test.ts +444 -0
- package/test/tools.test.ts +453 -0
- package/tsconfig.json +20 -0
package/dist/entities.js
ADDED
|
@@ -0,0 +1,1664 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Digital Tool Entity Types (Nouns)
|
|
3
|
+
*
|
|
4
|
+
* Semantic type definitions for digital tools that can be used by
|
|
5
|
+
* both remote human workers AND AI agents. Each entity defines:
|
|
6
|
+
* - Properties: The data fields
|
|
7
|
+
* - Actions: Operations that can be performed (Verbs)
|
|
8
|
+
* - Events: State changes that occur
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Email
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Email message entity
|
|
17
|
+
*
|
|
18
|
+
* Represents an email that can be composed, sent, received, replied to, etc.
|
|
19
|
+
*/
|
|
20
|
+
export const Email = {
|
|
21
|
+
singular: 'email',
|
|
22
|
+
plural: 'emails',
|
|
23
|
+
description: 'An electronic mail message',
|
|
24
|
+
properties: {
|
|
25
|
+
// Identity
|
|
26
|
+
messageId: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Unique message identifier (Message-ID header)',
|
|
29
|
+
},
|
|
30
|
+
// Addressing
|
|
31
|
+
from: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Sender email address',
|
|
34
|
+
},
|
|
35
|
+
to: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
array: true,
|
|
38
|
+
description: 'Primary recipient email addresses',
|
|
39
|
+
},
|
|
40
|
+
cc: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
array: true,
|
|
43
|
+
optional: true,
|
|
44
|
+
description: 'Carbon copy recipient addresses',
|
|
45
|
+
},
|
|
46
|
+
bcc: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
array: true,
|
|
49
|
+
optional: true,
|
|
50
|
+
description: 'Blind carbon copy recipient addresses',
|
|
51
|
+
},
|
|
52
|
+
replyTo: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
optional: true,
|
|
55
|
+
description: 'Reply-to address if different from sender',
|
|
56
|
+
},
|
|
57
|
+
// Content
|
|
58
|
+
subject: {
|
|
59
|
+
type: 'string',
|
|
60
|
+
description: 'Email subject line',
|
|
61
|
+
},
|
|
62
|
+
body: {
|
|
63
|
+
type: 'string',
|
|
64
|
+
description: 'Plain text body content',
|
|
65
|
+
},
|
|
66
|
+
html: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
optional: true,
|
|
69
|
+
description: 'HTML body content',
|
|
70
|
+
},
|
|
71
|
+
// Threading
|
|
72
|
+
inReplyTo: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
optional: true,
|
|
75
|
+
description: 'Message-ID of the email being replied to',
|
|
76
|
+
},
|
|
77
|
+
references: {
|
|
78
|
+
type: 'string',
|
|
79
|
+
array: true,
|
|
80
|
+
optional: true,
|
|
81
|
+
description: 'Message-IDs of the conversation thread',
|
|
82
|
+
},
|
|
83
|
+
threadId: {
|
|
84
|
+
type: 'string',
|
|
85
|
+
optional: true,
|
|
86
|
+
description: 'Conversation thread identifier',
|
|
87
|
+
},
|
|
88
|
+
// Status
|
|
89
|
+
status: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'Email status: draft, queued, sent, delivered, bounced, failed',
|
|
92
|
+
examples: ['draft', 'queued', 'sent', 'delivered', 'bounced', 'failed'],
|
|
93
|
+
},
|
|
94
|
+
read: {
|
|
95
|
+
type: 'boolean',
|
|
96
|
+
optional: true,
|
|
97
|
+
description: 'Whether the email has been read',
|
|
98
|
+
},
|
|
99
|
+
starred: {
|
|
100
|
+
type: 'boolean',
|
|
101
|
+
optional: true,
|
|
102
|
+
description: 'Whether the email is starred/flagged',
|
|
103
|
+
},
|
|
104
|
+
labels: {
|
|
105
|
+
type: 'string',
|
|
106
|
+
array: true,
|
|
107
|
+
optional: true,
|
|
108
|
+
description: 'Labels or folders applied to the email',
|
|
109
|
+
},
|
|
110
|
+
// Metadata
|
|
111
|
+
priority: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
optional: true,
|
|
114
|
+
description: 'Email priority: low, normal, high',
|
|
115
|
+
examples: ['low', 'normal', 'high'],
|
|
116
|
+
},
|
|
117
|
+
headers: {
|
|
118
|
+
type: 'json',
|
|
119
|
+
optional: true,
|
|
120
|
+
description: 'Additional email headers',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
relationships: {
|
|
124
|
+
attachments: {
|
|
125
|
+
type: 'Attachment[]',
|
|
126
|
+
description: 'Files attached to the email',
|
|
127
|
+
},
|
|
128
|
+
sender: {
|
|
129
|
+
type: 'Contact',
|
|
130
|
+
description: 'The sender as a contact entity',
|
|
131
|
+
},
|
|
132
|
+
recipients: {
|
|
133
|
+
type: 'Contact[]',
|
|
134
|
+
description: 'All recipients as contact entities',
|
|
135
|
+
},
|
|
136
|
+
thread: {
|
|
137
|
+
type: 'EmailThread',
|
|
138
|
+
backref: 'emails',
|
|
139
|
+
description: 'The conversation thread this email belongs to',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
actions: [
|
|
143
|
+
'compose',
|
|
144
|
+
'send',
|
|
145
|
+
'reply',
|
|
146
|
+
'replyAll',
|
|
147
|
+
'forward',
|
|
148
|
+
'archive',
|
|
149
|
+
'delete',
|
|
150
|
+
'markRead',
|
|
151
|
+
'markUnread',
|
|
152
|
+
'star',
|
|
153
|
+
'unstar',
|
|
154
|
+
'label',
|
|
155
|
+
'unlabel',
|
|
156
|
+
'move',
|
|
157
|
+
'schedule',
|
|
158
|
+
],
|
|
159
|
+
events: [
|
|
160
|
+
'composed',
|
|
161
|
+
'sent',
|
|
162
|
+
'delivered',
|
|
163
|
+
'opened',
|
|
164
|
+
'clicked',
|
|
165
|
+
'bounced',
|
|
166
|
+
'replied',
|
|
167
|
+
'forwarded',
|
|
168
|
+
'archived',
|
|
169
|
+
'deleted',
|
|
170
|
+
'read',
|
|
171
|
+
'starred',
|
|
172
|
+
'labeled',
|
|
173
|
+
'moved',
|
|
174
|
+
],
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Email thread/conversation
|
|
178
|
+
*/
|
|
179
|
+
export const EmailThread = {
|
|
180
|
+
singular: 'email thread',
|
|
181
|
+
plural: 'email threads',
|
|
182
|
+
description: 'A conversation thread of related emails',
|
|
183
|
+
properties: {
|
|
184
|
+
subject: {
|
|
185
|
+
type: 'string',
|
|
186
|
+
description: 'Thread subject (from first email)',
|
|
187
|
+
},
|
|
188
|
+
snippet: {
|
|
189
|
+
type: 'string',
|
|
190
|
+
optional: true,
|
|
191
|
+
description: 'Preview snippet of latest message',
|
|
192
|
+
},
|
|
193
|
+
messageCount: {
|
|
194
|
+
type: 'number',
|
|
195
|
+
description: 'Number of emails in the thread',
|
|
196
|
+
},
|
|
197
|
+
unreadCount: {
|
|
198
|
+
type: 'number',
|
|
199
|
+
optional: true,
|
|
200
|
+
description: 'Number of unread emails',
|
|
201
|
+
},
|
|
202
|
+
participants: {
|
|
203
|
+
type: 'string',
|
|
204
|
+
array: true,
|
|
205
|
+
description: 'Email addresses of all participants',
|
|
206
|
+
},
|
|
207
|
+
lastMessageAt: {
|
|
208
|
+
type: 'datetime',
|
|
209
|
+
description: 'Timestamp of the most recent message',
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
relationships: {
|
|
213
|
+
emails: {
|
|
214
|
+
type: 'Email[]',
|
|
215
|
+
backref: 'thread',
|
|
216
|
+
description: 'All emails in this thread',
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
actions: ['archive', 'delete', 'markRead', 'markUnread', 'mute', 'unmute'],
|
|
220
|
+
events: ['updated', 'archived', 'deleted', 'muted'],
|
|
221
|
+
};
|
|
222
|
+
// =============================================================================
|
|
223
|
+
// Spreadsheet
|
|
224
|
+
// =============================================================================
|
|
225
|
+
/**
|
|
226
|
+
* Spreadsheet workbook entity
|
|
227
|
+
*/
|
|
228
|
+
export const Spreadsheet = {
|
|
229
|
+
singular: 'spreadsheet',
|
|
230
|
+
plural: 'spreadsheets',
|
|
231
|
+
description: 'A workbook containing sheets of tabular data with formulas',
|
|
232
|
+
properties: {
|
|
233
|
+
name: {
|
|
234
|
+
type: 'string',
|
|
235
|
+
description: 'Spreadsheet name/title',
|
|
236
|
+
},
|
|
237
|
+
description: {
|
|
238
|
+
type: 'string',
|
|
239
|
+
optional: true,
|
|
240
|
+
description: 'Description of the spreadsheet contents',
|
|
241
|
+
},
|
|
242
|
+
format: {
|
|
243
|
+
type: 'string',
|
|
244
|
+
description: 'File format: xlsx, xls, csv, ods, gsheet',
|
|
245
|
+
examples: ['xlsx', 'xls', 'csv', 'ods', 'gsheet'],
|
|
246
|
+
},
|
|
247
|
+
locale: {
|
|
248
|
+
type: 'string',
|
|
249
|
+
optional: true,
|
|
250
|
+
description: 'Locale for number/date formatting',
|
|
251
|
+
},
|
|
252
|
+
timeZone: {
|
|
253
|
+
type: 'string',
|
|
254
|
+
optional: true,
|
|
255
|
+
description: 'Timezone for date calculations',
|
|
256
|
+
},
|
|
257
|
+
sheetCount: {
|
|
258
|
+
type: 'number',
|
|
259
|
+
description: 'Number of sheets in the workbook',
|
|
260
|
+
},
|
|
261
|
+
size: {
|
|
262
|
+
type: 'number',
|
|
263
|
+
optional: true,
|
|
264
|
+
description: 'File size in bytes',
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
relationships: {
|
|
268
|
+
sheets: {
|
|
269
|
+
type: 'Sheet[]',
|
|
270
|
+
backref: 'spreadsheet',
|
|
271
|
+
description: 'Sheets/worksheets in this spreadsheet',
|
|
272
|
+
},
|
|
273
|
+
owner: {
|
|
274
|
+
type: 'Contact',
|
|
275
|
+
description: 'Owner of the spreadsheet',
|
|
276
|
+
},
|
|
277
|
+
collaborators: {
|
|
278
|
+
type: 'Contact[]',
|
|
279
|
+
description: 'People with access to edit',
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
actions: [
|
|
283
|
+
'create',
|
|
284
|
+
'open',
|
|
285
|
+
'save',
|
|
286
|
+
'export',
|
|
287
|
+
'import',
|
|
288
|
+
'share',
|
|
289
|
+
'duplicate',
|
|
290
|
+
'rename',
|
|
291
|
+
'delete',
|
|
292
|
+
'addSheet',
|
|
293
|
+
'removeSheet',
|
|
294
|
+
],
|
|
295
|
+
events: [
|
|
296
|
+
'created',
|
|
297
|
+
'opened',
|
|
298
|
+
'saved',
|
|
299
|
+
'exported',
|
|
300
|
+
'imported',
|
|
301
|
+
'shared',
|
|
302
|
+
'duplicated',
|
|
303
|
+
'renamed',
|
|
304
|
+
'deleted',
|
|
305
|
+
'sheetAdded',
|
|
306
|
+
'sheetRemoved',
|
|
307
|
+
],
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Individual sheet/worksheet within a spreadsheet
|
|
311
|
+
*/
|
|
312
|
+
export const Sheet = {
|
|
313
|
+
singular: 'sheet',
|
|
314
|
+
plural: 'sheets',
|
|
315
|
+
description: 'A single worksheet within a spreadsheet',
|
|
316
|
+
properties: {
|
|
317
|
+
name: {
|
|
318
|
+
type: 'string',
|
|
319
|
+
description: 'Sheet tab name',
|
|
320
|
+
},
|
|
321
|
+
index: {
|
|
322
|
+
type: 'number',
|
|
323
|
+
description: 'Position in the workbook (0-indexed)',
|
|
324
|
+
},
|
|
325
|
+
rowCount: {
|
|
326
|
+
type: 'number',
|
|
327
|
+
description: 'Number of rows with data',
|
|
328
|
+
},
|
|
329
|
+
columnCount: {
|
|
330
|
+
type: 'number',
|
|
331
|
+
description: 'Number of columns with data',
|
|
332
|
+
},
|
|
333
|
+
frozenRows: {
|
|
334
|
+
type: 'number',
|
|
335
|
+
optional: true,
|
|
336
|
+
description: 'Number of frozen header rows',
|
|
337
|
+
},
|
|
338
|
+
frozenColumns: {
|
|
339
|
+
type: 'number',
|
|
340
|
+
optional: true,
|
|
341
|
+
description: 'Number of frozen columns',
|
|
342
|
+
},
|
|
343
|
+
hidden: {
|
|
344
|
+
type: 'boolean',
|
|
345
|
+
optional: true,
|
|
346
|
+
description: 'Whether the sheet is hidden',
|
|
347
|
+
},
|
|
348
|
+
protected: {
|
|
349
|
+
type: 'boolean',
|
|
350
|
+
optional: true,
|
|
351
|
+
description: 'Whether the sheet is protected from editing',
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
relationships: {
|
|
355
|
+
spreadsheet: {
|
|
356
|
+
type: 'Spreadsheet',
|
|
357
|
+
backref: 'sheets',
|
|
358
|
+
description: 'Parent spreadsheet',
|
|
359
|
+
},
|
|
360
|
+
cells: {
|
|
361
|
+
type: 'Cell[]',
|
|
362
|
+
description: 'Cells in this sheet',
|
|
363
|
+
},
|
|
364
|
+
charts: {
|
|
365
|
+
type: 'Chart[]',
|
|
366
|
+
description: 'Charts embedded in this sheet',
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
actions: [
|
|
370
|
+
'rename',
|
|
371
|
+
'duplicate',
|
|
372
|
+
'delete',
|
|
373
|
+
'hide',
|
|
374
|
+
'show',
|
|
375
|
+
'protect',
|
|
376
|
+
'unprotect',
|
|
377
|
+
'clear',
|
|
378
|
+
'sort',
|
|
379
|
+
'filter',
|
|
380
|
+
'insertRow',
|
|
381
|
+
'insertColumn',
|
|
382
|
+
'deleteRow',
|
|
383
|
+
'deleteColumn',
|
|
384
|
+
],
|
|
385
|
+
events: [
|
|
386
|
+
'renamed',
|
|
387
|
+
'duplicated',
|
|
388
|
+
'deleted',
|
|
389
|
+
'hidden',
|
|
390
|
+
'shown',
|
|
391
|
+
'protected',
|
|
392
|
+
'cleared',
|
|
393
|
+
'sorted',
|
|
394
|
+
'filtered',
|
|
395
|
+
'rowInserted',
|
|
396
|
+
'columnInserted',
|
|
397
|
+
],
|
|
398
|
+
};
|
|
399
|
+
/**
|
|
400
|
+
* Cell within a sheet
|
|
401
|
+
*/
|
|
402
|
+
export const Cell = {
|
|
403
|
+
singular: 'cell',
|
|
404
|
+
plural: 'cells',
|
|
405
|
+
description: 'A single cell in a spreadsheet sheet',
|
|
406
|
+
properties: {
|
|
407
|
+
address: {
|
|
408
|
+
type: 'string',
|
|
409
|
+
description: 'Cell address (e.g., A1, B2)',
|
|
410
|
+
},
|
|
411
|
+
row: {
|
|
412
|
+
type: 'number',
|
|
413
|
+
description: 'Row number (1-indexed)',
|
|
414
|
+
},
|
|
415
|
+
column: {
|
|
416
|
+
type: 'number',
|
|
417
|
+
description: 'Column number (1-indexed)',
|
|
418
|
+
},
|
|
419
|
+
value: {
|
|
420
|
+
type: 'json',
|
|
421
|
+
description: 'The cell value (string, number, boolean, null)',
|
|
422
|
+
},
|
|
423
|
+
formula: {
|
|
424
|
+
type: 'string',
|
|
425
|
+
optional: true,
|
|
426
|
+
description: 'Formula if the cell contains one',
|
|
427
|
+
},
|
|
428
|
+
displayValue: {
|
|
429
|
+
type: 'string',
|
|
430
|
+
optional: true,
|
|
431
|
+
description: 'Formatted display value',
|
|
432
|
+
},
|
|
433
|
+
format: {
|
|
434
|
+
type: 'json',
|
|
435
|
+
optional: true,
|
|
436
|
+
description: 'Cell formatting (font, color, borders, etc.)',
|
|
437
|
+
},
|
|
438
|
+
dataType: {
|
|
439
|
+
type: 'string',
|
|
440
|
+
description: 'Data type: string, number, boolean, date, formula, empty',
|
|
441
|
+
examples: ['string', 'number', 'boolean', 'date', 'formula', 'empty'],
|
|
442
|
+
},
|
|
443
|
+
note: {
|
|
444
|
+
type: 'string',
|
|
445
|
+
optional: true,
|
|
446
|
+
description: 'Cell comment/note',
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
actions: ['set', 'clear', 'format', 'addNote', 'removeNote', 'copy', 'cut', 'paste'],
|
|
450
|
+
events: ['changed', 'cleared', 'formatted', 'noteAdded', 'noteRemoved'],
|
|
451
|
+
};
|
|
452
|
+
// =============================================================================
|
|
453
|
+
// Document
|
|
454
|
+
// =============================================================================
|
|
455
|
+
/**
|
|
456
|
+
* Word processor document entity
|
|
457
|
+
*/
|
|
458
|
+
export const Document = {
|
|
459
|
+
singular: 'document',
|
|
460
|
+
plural: 'documents',
|
|
461
|
+
description: 'A word processor document with rich text content',
|
|
462
|
+
properties: {
|
|
463
|
+
title: {
|
|
464
|
+
type: 'string',
|
|
465
|
+
description: 'Document title',
|
|
466
|
+
},
|
|
467
|
+
content: {
|
|
468
|
+
type: 'markdown',
|
|
469
|
+
description: 'Document content (as markdown or rich text)',
|
|
470
|
+
},
|
|
471
|
+
format: {
|
|
472
|
+
type: 'string',
|
|
473
|
+
description: 'File format: docx, doc, odt, rtf, gdoc, md',
|
|
474
|
+
examples: ['docx', 'doc', 'odt', 'rtf', 'gdoc', 'md'],
|
|
475
|
+
},
|
|
476
|
+
wordCount: {
|
|
477
|
+
type: 'number',
|
|
478
|
+
optional: true,
|
|
479
|
+
description: 'Number of words in the document',
|
|
480
|
+
},
|
|
481
|
+
characterCount: {
|
|
482
|
+
type: 'number',
|
|
483
|
+
optional: true,
|
|
484
|
+
description: 'Number of characters',
|
|
485
|
+
},
|
|
486
|
+
pageCount: {
|
|
487
|
+
type: 'number',
|
|
488
|
+
optional: true,
|
|
489
|
+
description: 'Number of pages',
|
|
490
|
+
},
|
|
491
|
+
language: {
|
|
492
|
+
type: 'string',
|
|
493
|
+
optional: true,
|
|
494
|
+
description: 'Document language code',
|
|
495
|
+
},
|
|
496
|
+
template: {
|
|
497
|
+
type: 'string',
|
|
498
|
+
optional: true,
|
|
499
|
+
description: 'Template used to create the document',
|
|
500
|
+
},
|
|
501
|
+
status: {
|
|
502
|
+
type: 'string',
|
|
503
|
+
optional: true,
|
|
504
|
+
description: 'Document status: draft, review, final, published',
|
|
505
|
+
examples: ['draft', 'review', 'final', 'published'],
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
relationships: {
|
|
509
|
+
owner: {
|
|
510
|
+
type: 'Contact',
|
|
511
|
+
description: 'Document owner',
|
|
512
|
+
},
|
|
513
|
+
collaborators: {
|
|
514
|
+
type: 'Contact[]',
|
|
515
|
+
description: 'People with edit access',
|
|
516
|
+
},
|
|
517
|
+
comments: {
|
|
518
|
+
type: 'Comment[]',
|
|
519
|
+
backref: 'document',
|
|
520
|
+
description: 'Comments on the document',
|
|
521
|
+
},
|
|
522
|
+
revisions: {
|
|
523
|
+
type: 'Revision[]',
|
|
524
|
+
backref: 'document',
|
|
525
|
+
description: 'Version history',
|
|
526
|
+
},
|
|
527
|
+
},
|
|
528
|
+
actions: [
|
|
529
|
+
'create',
|
|
530
|
+
'open',
|
|
531
|
+
'edit',
|
|
532
|
+
'save',
|
|
533
|
+
'export',
|
|
534
|
+
'print',
|
|
535
|
+
'share',
|
|
536
|
+
'comment',
|
|
537
|
+
'suggest',
|
|
538
|
+
'accept',
|
|
539
|
+
'reject',
|
|
540
|
+
'resolve',
|
|
541
|
+
'duplicate',
|
|
542
|
+
'rename',
|
|
543
|
+
'delete',
|
|
544
|
+
'restore',
|
|
545
|
+
],
|
|
546
|
+
events: [
|
|
547
|
+
'created',
|
|
548
|
+
'opened',
|
|
549
|
+
'edited',
|
|
550
|
+
'saved',
|
|
551
|
+
'exported',
|
|
552
|
+
'printed',
|
|
553
|
+
'shared',
|
|
554
|
+
'commented',
|
|
555
|
+
'suggested',
|
|
556
|
+
'accepted',
|
|
557
|
+
'rejected',
|
|
558
|
+
'resolved',
|
|
559
|
+
'duplicated',
|
|
560
|
+
'renamed',
|
|
561
|
+
'deleted',
|
|
562
|
+
'restored',
|
|
563
|
+
],
|
|
564
|
+
};
|
|
565
|
+
// =============================================================================
|
|
566
|
+
// Presentation
|
|
567
|
+
// =============================================================================
|
|
568
|
+
/**
|
|
569
|
+
* Presentation/slide deck entity
|
|
570
|
+
*/
|
|
571
|
+
export const Presentation = {
|
|
572
|
+
singular: 'presentation',
|
|
573
|
+
plural: 'presentations',
|
|
574
|
+
description: 'A slide deck for presenting information',
|
|
575
|
+
properties: {
|
|
576
|
+
title: {
|
|
577
|
+
type: 'string',
|
|
578
|
+
description: 'Presentation title',
|
|
579
|
+
},
|
|
580
|
+
description: {
|
|
581
|
+
type: 'string',
|
|
582
|
+
optional: true,
|
|
583
|
+
description: 'Presentation description or summary',
|
|
584
|
+
},
|
|
585
|
+
format: {
|
|
586
|
+
type: 'string',
|
|
587
|
+
description: 'File format: pptx, ppt, odp, gslides, key',
|
|
588
|
+
examples: ['pptx', 'ppt', 'odp', 'gslides', 'key'],
|
|
589
|
+
},
|
|
590
|
+
slideCount: {
|
|
591
|
+
type: 'number',
|
|
592
|
+
description: 'Number of slides',
|
|
593
|
+
},
|
|
594
|
+
aspectRatio: {
|
|
595
|
+
type: 'string',
|
|
596
|
+
optional: true,
|
|
597
|
+
description: 'Slide aspect ratio: 16:9, 4:3, etc.',
|
|
598
|
+
examples: ['16:9', '4:3', '16:10'],
|
|
599
|
+
},
|
|
600
|
+
theme: {
|
|
601
|
+
type: 'string',
|
|
602
|
+
optional: true,
|
|
603
|
+
description: 'Applied theme or template name',
|
|
604
|
+
},
|
|
605
|
+
speakerNotes: {
|
|
606
|
+
type: 'boolean',
|
|
607
|
+
optional: true,
|
|
608
|
+
description: 'Whether presentation has speaker notes',
|
|
609
|
+
},
|
|
610
|
+
duration: {
|
|
611
|
+
type: 'number',
|
|
612
|
+
optional: true,
|
|
613
|
+
description: 'Estimated presentation duration in minutes',
|
|
614
|
+
},
|
|
615
|
+
},
|
|
616
|
+
relationships: {
|
|
617
|
+
slides: {
|
|
618
|
+
type: 'Slide[]',
|
|
619
|
+
backref: 'presentation',
|
|
620
|
+
description: 'Slides in this presentation',
|
|
621
|
+
},
|
|
622
|
+
owner: {
|
|
623
|
+
type: 'Contact',
|
|
624
|
+
description: 'Presentation owner',
|
|
625
|
+
},
|
|
626
|
+
collaborators: {
|
|
627
|
+
type: 'Contact[]',
|
|
628
|
+
description: 'People with edit access',
|
|
629
|
+
},
|
|
630
|
+
},
|
|
631
|
+
actions: [
|
|
632
|
+
'create',
|
|
633
|
+
'open',
|
|
634
|
+
'edit',
|
|
635
|
+
'save',
|
|
636
|
+
'export',
|
|
637
|
+
'present',
|
|
638
|
+
'share',
|
|
639
|
+
'duplicate',
|
|
640
|
+
'rename',
|
|
641
|
+
'delete',
|
|
642
|
+
'addSlide',
|
|
643
|
+
'removeSlide',
|
|
644
|
+
'reorderSlides',
|
|
645
|
+
'applyTheme',
|
|
646
|
+
],
|
|
647
|
+
events: [
|
|
648
|
+
'created',
|
|
649
|
+
'opened',
|
|
650
|
+
'edited',
|
|
651
|
+
'saved',
|
|
652
|
+
'exported',
|
|
653
|
+
'presented',
|
|
654
|
+
'shared',
|
|
655
|
+
'duplicated',
|
|
656
|
+
'renamed',
|
|
657
|
+
'deleted',
|
|
658
|
+
'slideAdded',
|
|
659
|
+
'slideRemoved',
|
|
660
|
+
'slidesReordered',
|
|
661
|
+
'themeApplied',
|
|
662
|
+
],
|
|
663
|
+
};
|
|
664
|
+
/**
|
|
665
|
+
* Individual slide within a presentation
|
|
666
|
+
*/
|
|
667
|
+
export const Slide = {
|
|
668
|
+
singular: 'slide',
|
|
669
|
+
plural: 'slides',
|
|
670
|
+
description: 'A single slide in a presentation',
|
|
671
|
+
properties: {
|
|
672
|
+
title: {
|
|
673
|
+
type: 'string',
|
|
674
|
+
optional: true,
|
|
675
|
+
description: 'Slide title',
|
|
676
|
+
},
|
|
677
|
+
index: {
|
|
678
|
+
type: 'number',
|
|
679
|
+
description: 'Position in the presentation (0-indexed)',
|
|
680
|
+
},
|
|
681
|
+
layout: {
|
|
682
|
+
type: 'string',
|
|
683
|
+
optional: true,
|
|
684
|
+
description: 'Slide layout type: title, titleAndContent, blank, etc.',
|
|
685
|
+
examples: ['title', 'titleAndContent', 'sectionHeader', 'twoColumn', 'blank'],
|
|
686
|
+
},
|
|
687
|
+
notes: {
|
|
688
|
+
type: 'string',
|
|
689
|
+
optional: true,
|
|
690
|
+
description: 'Speaker notes for this slide',
|
|
691
|
+
},
|
|
692
|
+
hidden: {
|
|
693
|
+
type: 'boolean',
|
|
694
|
+
optional: true,
|
|
695
|
+
description: 'Whether slide is hidden from presentation',
|
|
696
|
+
},
|
|
697
|
+
transition: {
|
|
698
|
+
type: 'json',
|
|
699
|
+
optional: true,
|
|
700
|
+
description: 'Slide transition effect settings',
|
|
701
|
+
},
|
|
702
|
+
},
|
|
703
|
+
relationships: {
|
|
704
|
+
presentation: {
|
|
705
|
+
type: 'Presentation',
|
|
706
|
+
backref: 'slides',
|
|
707
|
+
description: 'Parent presentation',
|
|
708
|
+
},
|
|
709
|
+
elements: {
|
|
710
|
+
type: 'SlideElement[]',
|
|
711
|
+
description: 'Elements on this slide (text boxes, images, shapes)',
|
|
712
|
+
},
|
|
713
|
+
},
|
|
714
|
+
actions: [
|
|
715
|
+
'edit',
|
|
716
|
+
'duplicate',
|
|
717
|
+
'delete',
|
|
718
|
+
'hide',
|
|
719
|
+
'show',
|
|
720
|
+
'move',
|
|
721
|
+
'addElement',
|
|
722
|
+
'removeElement',
|
|
723
|
+
'setLayout',
|
|
724
|
+
'setTransition',
|
|
725
|
+
'addNote',
|
|
726
|
+
],
|
|
727
|
+
events: [
|
|
728
|
+
'edited',
|
|
729
|
+
'duplicated',
|
|
730
|
+
'deleted',
|
|
731
|
+
'hidden',
|
|
732
|
+
'shown',
|
|
733
|
+
'moved',
|
|
734
|
+
'elementAdded',
|
|
735
|
+
'elementRemoved',
|
|
736
|
+
'layoutChanged',
|
|
737
|
+
'transitionChanged',
|
|
738
|
+
],
|
|
739
|
+
};
|
|
740
|
+
// =============================================================================
|
|
741
|
+
// Phone / Voice Call
|
|
742
|
+
// =============================================================================
|
|
743
|
+
/**
|
|
744
|
+
* Phone call entity
|
|
745
|
+
*/
|
|
746
|
+
export const PhoneCall = {
|
|
747
|
+
singular: 'phone call',
|
|
748
|
+
plural: 'phone calls',
|
|
749
|
+
description: 'A voice telephone call',
|
|
750
|
+
properties: {
|
|
751
|
+
// Parties
|
|
752
|
+
from: {
|
|
753
|
+
type: 'string',
|
|
754
|
+
description: 'Caller phone number (E.164 format)',
|
|
755
|
+
},
|
|
756
|
+
to: {
|
|
757
|
+
type: 'string',
|
|
758
|
+
description: 'Recipient phone number (E.164 format)',
|
|
759
|
+
},
|
|
760
|
+
direction: {
|
|
761
|
+
type: 'string',
|
|
762
|
+
description: 'Call direction: inbound, outbound',
|
|
763
|
+
examples: ['inbound', 'outbound'],
|
|
764
|
+
},
|
|
765
|
+
// Status
|
|
766
|
+
status: {
|
|
767
|
+
type: 'string',
|
|
768
|
+
description: 'Call status: ringing, in-progress, completed, busy, failed, no-answer, canceled',
|
|
769
|
+
examples: ['ringing', 'in-progress', 'completed', 'busy', 'failed', 'no-answer', 'canceled'],
|
|
770
|
+
},
|
|
771
|
+
// Timing
|
|
772
|
+
startedAt: {
|
|
773
|
+
type: 'datetime',
|
|
774
|
+
optional: true,
|
|
775
|
+
description: 'When the call was initiated',
|
|
776
|
+
},
|
|
777
|
+
answeredAt: {
|
|
778
|
+
type: 'datetime',
|
|
779
|
+
optional: true,
|
|
780
|
+
description: 'When the call was answered',
|
|
781
|
+
},
|
|
782
|
+
endedAt: {
|
|
783
|
+
type: 'datetime',
|
|
784
|
+
optional: true,
|
|
785
|
+
description: 'When the call ended',
|
|
786
|
+
},
|
|
787
|
+
duration: {
|
|
788
|
+
type: 'number',
|
|
789
|
+
optional: true,
|
|
790
|
+
description: 'Call duration in seconds',
|
|
791
|
+
},
|
|
792
|
+
// Recording
|
|
793
|
+
recorded: {
|
|
794
|
+
type: 'boolean',
|
|
795
|
+
optional: true,
|
|
796
|
+
description: 'Whether the call was recorded',
|
|
797
|
+
},
|
|
798
|
+
recordingUrl: {
|
|
799
|
+
type: 'url',
|
|
800
|
+
optional: true,
|
|
801
|
+
description: 'URL to the call recording',
|
|
802
|
+
},
|
|
803
|
+
transcription: {
|
|
804
|
+
type: 'string',
|
|
805
|
+
optional: true,
|
|
806
|
+
description: 'Transcription of the call',
|
|
807
|
+
},
|
|
808
|
+
// Context
|
|
809
|
+
notes: {
|
|
810
|
+
type: 'string',
|
|
811
|
+
optional: true,
|
|
812
|
+
description: 'Notes about the call',
|
|
813
|
+
},
|
|
814
|
+
tags: {
|
|
815
|
+
type: 'string',
|
|
816
|
+
array: true,
|
|
817
|
+
optional: true,
|
|
818
|
+
description: 'Tags/labels for the call',
|
|
819
|
+
},
|
|
820
|
+
},
|
|
821
|
+
relationships: {
|
|
822
|
+
caller: {
|
|
823
|
+
type: 'Contact',
|
|
824
|
+
description: 'The person who made the call',
|
|
825
|
+
},
|
|
826
|
+
recipient: {
|
|
827
|
+
type: 'Contact',
|
|
828
|
+
description: 'The person who received the call',
|
|
829
|
+
},
|
|
830
|
+
voicemail: {
|
|
831
|
+
type: 'Voicemail',
|
|
832
|
+
required: false,
|
|
833
|
+
description: 'Voicemail left if call was not answered',
|
|
834
|
+
},
|
|
835
|
+
},
|
|
836
|
+
actions: [
|
|
837
|
+
'dial',
|
|
838
|
+
'answer',
|
|
839
|
+
'hangup',
|
|
840
|
+
'hold',
|
|
841
|
+
'resume',
|
|
842
|
+
'transfer',
|
|
843
|
+
'mute',
|
|
844
|
+
'unmute',
|
|
845
|
+
'record',
|
|
846
|
+
'stopRecording',
|
|
847
|
+
'sendDtmf',
|
|
848
|
+
'addParticipant',
|
|
849
|
+
],
|
|
850
|
+
events: [
|
|
851
|
+
'initiated',
|
|
852
|
+
'ringing',
|
|
853
|
+
'answered',
|
|
854
|
+
'held',
|
|
855
|
+
'resumed',
|
|
856
|
+
'transferred',
|
|
857
|
+
'muted',
|
|
858
|
+
'unmuted',
|
|
859
|
+
'recordingStarted',
|
|
860
|
+
'recordingStopped',
|
|
861
|
+
'ended',
|
|
862
|
+
'voicemailLeft',
|
|
863
|
+
],
|
|
864
|
+
};
|
|
865
|
+
/**
|
|
866
|
+
* Voicemail message
|
|
867
|
+
*/
|
|
868
|
+
export const Voicemail = {
|
|
869
|
+
singular: 'voicemail',
|
|
870
|
+
plural: 'voicemails',
|
|
871
|
+
description: 'A voicemail message',
|
|
872
|
+
properties: {
|
|
873
|
+
from: {
|
|
874
|
+
type: 'string',
|
|
875
|
+
description: 'Caller phone number',
|
|
876
|
+
},
|
|
877
|
+
to: {
|
|
878
|
+
type: 'string',
|
|
879
|
+
description: 'Recipient phone number',
|
|
880
|
+
},
|
|
881
|
+
duration: {
|
|
882
|
+
type: 'number',
|
|
883
|
+
description: 'Voicemail duration in seconds',
|
|
884
|
+
},
|
|
885
|
+
audioUrl: {
|
|
886
|
+
type: 'url',
|
|
887
|
+
description: 'URL to the audio file',
|
|
888
|
+
},
|
|
889
|
+
transcription: {
|
|
890
|
+
type: 'string',
|
|
891
|
+
optional: true,
|
|
892
|
+
description: 'Transcription of the voicemail',
|
|
893
|
+
},
|
|
894
|
+
read: {
|
|
895
|
+
type: 'boolean',
|
|
896
|
+
description: 'Whether the voicemail has been listened to',
|
|
897
|
+
},
|
|
898
|
+
},
|
|
899
|
+
relationships: {
|
|
900
|
+
caller: {
|
|
901
|
+
type: 'Contact',
|
|
902
|
+
description: 'The person who left the voicemail',
|
|
903
|
+
},
|
|
904
|
+
call: {
|
|
905
|
+
type: 'PhoneCall',
|
|
906
|
+
description: 'The missed call this voicemail is associated with',
|
|
907
|
+
},
|
|
908
|
+
},
|
|
909
|
+
actions: ['play', 'markRead', 'markUnread', 'delete', 'transcribe', 'callback'],
|
|
910
|
+
events: ['received', 'played', 'read', 'deleted', 'transcribed'],
|
|
911
|
+
};
|
|
912
|
+
// =============================================================================
|
|
913
|
+
// Channel / Team Messaging (Slack/Teams/Discord alternative naming)
|
|
914
|
+
// =============================================================================
|
|
915
|
+
/**
|
|
916
|
+
* Workspace - The top-level container for team messaging
|
|
917
|
+
*
|
|
918
|
+
* This is the brand-agnostic equivalent of:
|
|
919
|
+
* - Slack Workspace
|
|
920
|
+
* - Microsoft Teams Team
|
|
921
|
+
* - Discord Server
|
|
922
|
+
*/
|
|
923
|
+
export const Workspace = {
|
|
924
|
+
singular: 'workspace',
|
|
925
|
+
plural: 'workspaces',
|
|
926
|
+
description: 'A collaborative workspace for team communication and coordination',
|
|
927
|
+
properties: {
|
|
928
|
+
name: {
|
|
929
|
+
type: 'string',
|
|
930
|
+
description: 'Workspace name',
|
|
931
|
+
},
|
|
932
|
+
description: {
|
|
933
|
+
type: 'string',
|
|
934
|
+
optional: true,
|
|
935
|
+
description: 'Workspace description or purpose',
|
|
936
|
+
},
|
|
937
|
+
icon: {
|
|
938
|
+
type: 'url',
|
|
939
|
+
optional: true,
|
|
940
|
+
description: 'Workspace icon/logo URL',
|
|
941
|
+
},
|
|
942
|
+
domain: {
|
|
943
|
+
type: 'string',
|
|
944
|
+
optional: true,
|
|
945
|
+
description: 'Custom domain or URL slug',
|
|
946
|
+
},
|
|
947
|
+
visibility: {
|
|
948
|
+
type: 'string',
|
|
949
|
+
description: 'Workspace visibility: public, private, organization',
|
|
950
|
+
examples: ['public', 'private', 'organization'],
|
|
951
|
+
},
|
|
952
|
+
memberCount: {
|
|
953
|
+
type: 'number',
|
|
954
|
+
optional: true,
|
|
955
|
+
description: 'Number of members',
|
|
956
|
+
},
|
|
957
|
+
plan: {
|
|
958
|
+
type: 'string',
|
|
959
|
+
optional: true,
|
|
960
|
+
description: 'Subscription plan: free, pro, business, enterprise',
|
|
961
|
+
},
|
|
962
|
+
},
|
|
963
|
+
relationships: {
|
|
964
|
+
channels: {
|
|
965
|
+
type: 'Channel[]',
|
|
966
|
+
backref: 'workspace',
|
|
967
|
+
description: 'Channels in this workspace',
|
|
968
|
+
},
|
|
969
|
+
members: {
|
|
970
|
+
type: 'Member[]',
|
|
971
|
+
backref: 'workspace',
|
|
972
|
+
description: 'Members of the workspace',
|
|
973
|
+
},
|
|
974
|
+
owner: {
|
|
975
|
+
type: 'Contact',
|
|
976
|
+
description: 'Workspace owner/creator',
|
|
977
|
+
},
|
|
978
|
+
},
|
|
979
|
+
actions: [
|
|
980
|
+
'create',
|
|
981
|
+
'configure',
|
|
982
|
+
'invite',
|
|
983
|
+
'remove',
|
|
984
|
+
'archive',
|
|
985
|
+
'delete',
|
|
986
|
+
'createChannel',
|
|
987
|
+
'setPermissions',
|
|
988
|
+
],
|
|
989
|
+
events: [
|
|
990
|
+
'created',
|
|
991
|
+
'configured',
|
|
992
|
+
'memberJoined',
|
|
993
|
+
'memberLeft',
|
|
994
|
+
'memberRemoved',
|
|
995
|
+
'channelCreated',
|
|
996
|
+
'archived',
|
|
997
|
+
'deleted',
|
|
998
|
+
],
|
|
999
|
+
};
|
|
1000
|
+
/**
|
|
1001
|
+
* Channel - A communication channel within a workspace
|
|
1002
|
+
*
|
|
1003
|
+
* This is the brand-agnostic equivalent of:
|
|
1004
|
+
* - Slack Channel
|
|
1005
|
+
* - Microsoft Teams Channel
|
|
1006
|
+
* - Discord Channel
|
|
1007
|
+
*/
|
|
1008
|
+
export const Channel = {
|
|
1009
|
+
singular: 'channel',
|
|
1010
|
+
plural: 'channels',
|
|
1011
|
+
description: 'A communication channel for group messaging and collaboration',
|
|
1012
|
+
properties: {
|
|
1013
|
+
name: {
|
|
1014
|
+
type: 'string',
|
|
1015
|
+
description: 'Channel name (typically lowercase with hyphens)',
|
|
1016
|
+
},
|
|
1017
|
+
topic: {
|
|
1018
|
+
type: 'string',
|
|
1019
|
+
optional: true,
|
|
1020
|
+
description: 'Channel topic or purpose',
|
|
1021
|
+
},
|
|
1022
|
+
description: {
|
|
1023
|
+
type: 'string',
|
|
1024
|
+
optional: true,
|
|
1025
|
+
description: 'Detailed channel description',
|
|
1026
|
+
},
|
|
1027
|
+
visibility: {
|
|
1028
|
+
type: 'string',
|
|
1029
|
+
description: 'Channel visibility: public, private',
|
|
1030
|
+
examples: ['public', 'private'],
|
|
1031
|
+
},
|
|
1032
|
+
archived: {
|
|
1033
|
+
type: 'boolean',
|
|
1034
|
+
optional: true,
|
|
1035
|
+
description: 'Whether the channel is archived',
|
|
1036
|
+
},
|
|
1037
|
+
pinned: {
|
|
1038
|
+
type: 'boolean',
|
|
1039
|
+
optional: true,
|
|
1040
|
+
description: 'Whether the channel is pinned for easy access',
|
|
1041
|
+
},
|
|
1042
|
+
muted: {
|
|
1043
|
+
type: 'boolean',
|
|
1044
|
+
optional: true,
|
|
1045
|
+
description: 'Whether notifications are muted',
|
|
1046
|
+
},
|
|
1047
|
+
memberCount: {
|
|
1048
|
+
type: 'number',
|
|
1049
|
+
optional: true,
|
|
1050
|
+
description: 'Number of channel members',
|
|
1051
|
+
},
|
|
1052
|
+
lastActivityAt: {
|
|
1053
|
+
type: 'datetime',
|
|
1054
|
+
optional: true,
|
|
1055
|
+
description: 'Timestamp of last message or activity',
|
|
1056
|
+
},
|
|
1057
|
+
},
|
|
1058
|
+
relationships: {
|
|
1059
|
+
workspace: {
|
|
1060
|
+
type: 'Workspace',
|
|
1061
|
+
backref: 'channels',
|
|
1062
|
+
description: 'Parent workspace',
|
|
1063
|
+
},
|
|
1064
|
+
messages: {
|
|
1065
|
+
type: 'Message[]',
|
|
1066
|
+
backref: 'channel',
|
|
1067
|
+
description: 'Messages in this channel',
|
|
1068
|
+
},
|
|
1069
|
+
members: {
|
|
1070
|
+
type: 'Member[]',
|
|
1071
|
+
description: 'Members who have access to this channel',
|
|
1072
|
+
},
|
|
1073
|
+
pinnedMessages: {
|
|
1074
|
+
type: 'Message[]',
|
|
1075
|
+
description: 'Pinned messages in this channel',
|
|
1076
|
+
},
|
|
1077
|
+
},
|
|
1078
|
+
actions: [
|
|
1079
|
+
'create',
|
|
1080
|
+
'rename',
|
|
1081
|
+
'setTopic',
|
|
1082
|
+
'invite',
|
|
1083
|
+
'remove',
|
|
1084
|
+
'join',
|
|
1085
|
+
'leave',
|
|
1086
|
+
'archive',
|
|
1087
|
+
'unarchive',
|
|
1088
|
+
'delete',
|
|
1089
|
+
'pin',
|
|
1090
|
+
'unpin',
|
|
1091
|
+
'mute',
|
|
1092
|
+
'unmute',
|
|
1093
|
+
],
|
|
1094
|
+
events: [
|
|
1095
|
+
'created',
|
|
1096
|
+
'renamed',
|
|
1097
|
+
'topicChanged',
|
|
1098
|
+
'memberJoined',
|
|
1099
|
+
'memberLeft',
|
|
1100
|
+
'memberRemoved',
|
|
1101
|
+
'archived',
|
|
1102
|
+
'unarchived',
|
|
1103
|
+
'deleted',
|
|
1104
|
+
'pinned',
|
|
1105
|
+
'unpinned',
|
|
1106
|
+
'muted',
|
|
1107
|
+
'unmuted',
|
|
1108
|
+
],
|
|
1109
|
+
};
|
|
1110
|
+
/**
|
|
1111
|
+
* Message - A message in a channel or direct conversation
|
|
1112
|
+
*/
|
|
1113
|
+
export const Message = {
|
|
1114
|
+
singular: 'message',
|
|
1115
|
+
plural: 'messages',
|
|
1116
|
+
description: 'A message in a channel or conversation',
|
|
1117
|
+
properties: {
|
|
1118
|
+
text: {
|
|
1119
|
+
type: 'string',
|
|
1120
|
+
description: 'Message text content',
|
|
1121
|
+
},
|
|
1122
|
+
richText: {
|
|
1123
|
+
type: 'json',
|
|
1124
|
+
optional: true,
|
|
1125
|
+
description: 'Rich text content (formatted blocks)',
|
|
1126
|
+
},
|
|
1127
|
+
// Threading
|
|
1128
|
+
threadId: {
|
|
1129
|
+
type: 'string',
|
|
1130
|
+
optional: true,
|
|
1131
|
+
description: 'Thread identifier if part of a thread',
|
|
1132
|
+
},
|
|
1133
|
+
replyCount: {
|
|
1134
|
+
type: 'number',
|
|
1135
|
+
optional: true,
|
|
1136
|
+
description: 'Number of replies if this is a thread parent',
|
|
1137
|
+
},
|
|
1138
|
+
// Status
|
|
1139
|
+
edited: {
|
|
1140
|
+
type: 'boolean',
|
|
1141
|
+
optional: true,
|
|
1142
|
+
description: 'Whether the message has been edited',
|
|
1143
|
+
},
|
|
1144
|
+
editedAt: {
|
|
1145
|
+
type: 'datetime',
|
|
1146
|
+
optional: true,
|
|
1147
|
+
description: 'When the message was last edited',
|
|
1148
|
+
},
|
|
1149
|
+
pinned: {
|
|
1150
|
+
type: 'boolean',
|
|
1151
|
+
optional: true,
|
|
1152
|
+
description: 'Whether the message is pinned',
|
|
1153
|
+
},
|
|
1154
|
+
// Mentions & References
|
|
1155
|
+
mentions: {
|
|
1156
|
+
type: 'string',
|
|
1157
|
+
array: true,
|
|
1158
|
+
optional: true,
|
|
1159
|
+
description: 'User IDs mentioned in the message',
|
|
1160
|
+
},
|
|
1161
|
+
channelMentions: {
|
|
1162
|
+
type: 'string',
|
|
1163
|
+
array: true,
|
|
1164
|
+
optional: true,
|
|
1165
|
+
description: 'Channel IDs mentioned',
|
|
1166
|
+
},
|
|
1167
|
+
},
|
|
1168
|
+
relationships: {
|
|
1169
|
+
channel: {
|
|
1170
|
+
type: 'Channel',
|
|
1171
|
+
backref: 'messages',
|
|
1172
|
+
description: 'Channel this message was posted in',
|
|
1173
|
+
},
|
|
1174
|
+
sender: {
|
|
1175
|
+
type: 'Member',
|
|
1176
|
+
description: 'Who sent the message',
|
|
1177
|
+
},
|
|
1178
|
+
attachments: {
|
|
1179
|
+
type: 'Attachment[]',
|
|
1180
|
+
description: 'Files attached to the message',
|
|
1181
|
+
},
|
|
1182
|
+
reactions: {
|
|
1183
|
+
type: 'Reaction[]',
|
|
1184
|
+
backref: 'message',
|
|
1185
|
+
description: 'Emoji reactions to the message',
|
|
1186
|
+
},
|
|
1187
|
+
thread: {
|
|
1188
|
+
type: 'Thread',
|
|
1189
|
+
required: false,
|
|
1190
|
+
description: 'Thread this message belongs to or started',
|
|
1191
|
+
},
|
|
1192
|
+
},
|
|
1193
|
+
actions: [
|
|
1194
|
+
'send',
|
|
1195
|
+
'edit',
|
|
1196
|
+
'delete',
|
|
1197
|
+
'react',
|
|
1198
|
+
'unreact',
|
|
1199
|
+
'reply',
|
|
1200
|
+
'pin',
|
|
1201
|
+
'unpin',
|
|
1202
|
+
'share',
|
|
1203
|
+
'bookmark',
|
|
1204
|
+
'report',
|
|
1205
|
+
],
|
|
1206
|
+
events: [
|
|
1207
|
+
'sent',
|
|
1208
|
+
'edited',
|
|
1209
|
+
'deleted',
|
|
1210
|
+
'reacted',
|
|
1211
|
+
'unreacted',
|
|
1212
|
+
'replied',
|
|
1213
|
+
'pinned',
|
|
1214
|
+
'unpinned',
|
|
1215
|
+
'shared',
|
|
1216
|
+
'bookmarked',
|
|
1217
|
+
],
|
|
1218
|
+
};
|
|
1219
|
+
/**
|
|
1220
|
+
* Thread - A threaded conversation within a channel
|
|
1221
|
+
*/
|
|
1222
|
+
export const Thread = {
|
|
1223
|
+
singular: 'thread',
|
|
1224
|
+
plural: 'threads',
|
|
1225
|
+
description: 'A threaded conversation branching from a message',
|
|
1226
|
+
properties: {
|
|
1227
|
+
replyCount: {
|
|
1228
|
+
type: 'number',
|
|
1229
|
+
description: 'Number of replies in the thread',
|
|
1230
|
+
},
|
|
1231
|
+
participantCount: {
|
|
1232
|
+
type: 'number',
|
|
1233
|
+
optional: true,
|
|
1234
|
+
description: 'Number of unique participants',
|
|
1235
|
+
},
|
|
1236
|
+
lastReplyAt: {
|
|
1237
|
+
type: 'datetime',
|
|
1238
|
+
optional: true,
|
|
1239
|
+
description: 'Timestamp of the last reply',
|
|
1240
|
+
},
|
|
1241
|
+
subscribed: {
|
|
1242
|
+
type: 'boolean',
|
|
1243
|
+
optional: true,
|
|
1244
|
+
description: 'Whether the current user is subscribed to replies',
|
|
1245
|
+
},
|
|
1246
|
+
},
|
|
1247
|
+
relationships: {
|
|
1248
|
+
parentMessage: {
|
|
1249
|
+
type: 'Message',
|
|
1250
|
+
description: 'The message that started this thread',
|
|
1251
|
+
},
|
|
1252
|
+
replies: {
|
|
1253
|
+
type: 'Message[]',
|
|
1254
|
+
description: 'Reply messages in this thread',
|
|
1255
|
+
},
|
|
1256
|
+
participants: {
|
|
1257
|
+
type: 'Member[]',
|
|
1258
|
+
description: 'People who have replied in this thread',
|
|
1259
|
+
},
|
|
1260
|
+
},
|
|
1261
|
+
actions: ['reply', 'subscribe', 'unsubscribe', 'markRead'],
|
|
1262
|
+
events: ['replied', 'subscribed', 'unsubscribed', 'read'],
|
|
1263
|
+
};
|
|
1264
|
+
/**
|
|
1265
|
+
* DirectMessage - Private one-on-one or group conversation
|
|
1266
|
+
*/
|
|
1267
|
+
export const DirectMessage = {
|
|
1268
|
+
singular: 'direct message',
|
|
1269
|
+
plural: 'direct messages',
|
|
1270
|
+
description: 'A private conversation between two or more people',
|
|
1271
|
+
properties: {
|
|
1272
|
+
name: {
|
|
1273
|
+
type: 'string',
|
|
1274
|
+
optional: true,
|
|
1275
|
+
description: 'Custom name for group DMs',
|
|
1276
|
+
},
|
|
1277
|
+
isGroup: {
|
|
1278
|
+
type: 'boolean',
|
|
1279
|
+
description: 'Whether this is a group DM (more than 2 people)',
|
|
1280
|
+
},
|
|
1281
|
+
lastMessageAt: {
|
|
1282
|
+
type: 'datetime',
|
|
1283
|
+
optional: true,
|
|
1284
|
+
description: 'Timestamp of the last message',
|
|
1285
|
+
},
|
|
1286
|
+
unreadCount: {
|
|
1287
|
+
type: 'number',
|
|
1288
|
+
optional: true,
|
|
1289
|
+
description: 'Number of unread messages',
|
|
1290
|
+
},
|
|
1291
|
+
muted: {
|
|
1292
|
+
type: 'boolean',
|
|
1293
|
+
optional: true,
|
|
1294
|
+
description: 'Whether notifications are muted',
|
|
1295
|
+
},
|
|
1296
|
+
},
|
|
1297
|
+
relationships: {
|
|
1298
|
+
participants: {
|
|
1299
|
+
type: 'Member[]',
|
|
1300
|
+
description: 'People in this conversation',
|
|
1301
|
+
},
|
|
1302
|
+
messages: {
|
|
1303
|
+
type: 'Message[]',
|
|
1304
|
+
description: 'Messages in this conversation',
|
|
1305
|
+
},
|
|
1306
|
+
},
|
|
1307
|
+
actions: [
|
|
1308
|
+
'send',
|
|
1309
|
+
'archive',
|
|
1310
|
+
'leave',
|
|
1311
|
+
'addParticipant',
|
|
1312
|
+
'removeParticipant',
|
|
1313
|
+
'mute',
|
|
1314
|
+
'unmute',
|
|
1315
|
+
'markRead',
|
|
1316
|
+
],
|
|
1317
|
+
events: [
|
|
1318
|
+
'messageSent',
|
|
1319
|
+
'archived',
|
|
1320
|
+
'left',
|
|
1321
|
+
'participantAdded',
|
|
1322
|
+
'participantRemoved',
|
|
1323
|
+
'muted',
|
|
1324
|
+
'unmuted',
|
|
1325
|
+
'read',
|
|
1326
|
+
],
|
|
1327
|
+
};
|
|
1328
|
+
/**
|
|
1329
|
+
* Member - A member of a workspace
|
|
1330
|
+
*/
|
|
1331
|
+
export const Member = {
|
|
1332
|
+
singular: 'member',
|
|
1333
|
+
plural: 'members',
|
|
1334
|
+
description: 'A member of a workspace or channel',
|
|
1335
|
+
properties: {
|
|
1336
|
+
displayName: {
|
|
1337
|
+
type: 'string',
|
|
1338
|
+
description: 'Display name',
|
|
1339
|
+
},
|
|
1340
|
+
username: {
|
|
1341
|
+
type: 'string',
|
|
1342
|
+
optional: true,
|
|
1343
|
+
description: 'Username handle',
|
|
1344
|
+
},
|
|
1345
|
+
avatar: {
|
|
1346
|
+
type: 'url',
|
|
1347
|
+
optional: true,
|
|
1348
|
+
description: 'Profile picture URL',
|
|
1349
|
+
},
|
|
1350
|
+
title: {
|
|
1351
|
+
type: 'string',
|
|
1352
|
+
optional: true,
|
|
1353
|
+
description: 'Job title',
|
|
1354
|
+
},
|
|
1355
|
+
status: {
|
|
1356
|
+
type: 'string',
|
|
1357
|
+
optional: true,
|
|
1358
|
+
description: 'Custom status message',
|
|
1359
|
+
},
|
|
1360
|
+
presence: {
|
|
1361
|
+
type: 'string',
|
|
1362
|
+
description: 'Online presence: online, away, dnd, offline',
|
|
1363
|
+
examples: ['online', 'away', 'dnd', 'offline'],
|
|
1364
|
+
},
|
|
1365
|
+
role: {
|
|
1366
|
+
type: 'string',
|
|
1367
|
+
description: 'Role in workspace: owner, admin, member, guest',
|
|
1368
|
+
examples: ['owner', 'admin', 'member', 'guest'],
|
|
1369
|
+
},
|
|
1370
|
+
timezone: {
|
|
1371
|
+
type: 'string',
|
|
1372
|
+
optional: true,
|
|
1373
|
+
description: 'Member timezone',
|
|
1374
|
+
},
|
|
1375
|
+
},
|
|
1376
|
+
relationships: {
|
|
1377
|
+
workspace: {
|
|
1378
|
+
type: 'Workspace',
|
|
1379
|
+
backref: 'members',
|
|
1380
|
+
description: 'Workspace this member belongs to',
|
|
1381
|
+
},
|
|
1382
|
+
contact: {
|
|
1383
|
+
type: 'Contact',
|
|
1384
|
+
description: 'Associated contact record',
|
|
1385
|
+
},
|
|
1386
|
+
},
|
|
1387
|
+
actions: [
|
|
1388
|
+
'invite',
|
|
1389
|
+
'remove',
|
|
1390
|
+
'setRole',
|
|
1391
|
+
'setStatus',
|
|
1392
|
+
'setPresence',
|
|
1393
|
+
'mention',
|
|
1394
|
+
'message',
|
|
1395
|
+
'block',
|
|
1396
|
+
'unblock',
|
|
1397
|
+
],
|
|
1398
|
+
events: [
|
|
1399
|
+
'joined',
|
|
1400
|
+
'left',
|
|
1401
|
+
'removed',
|
|
1402
|
+
'roleChanged',
|
|
1403
|
+
'statusChanged',
|
|
1404
|
+
'presenceChanged',
|
|
1405
|
+
'blocked',
|
|
1406
|
+
'unblocked',
|
|
1407
|
+
],
|
|
1408
|
+
};
|
|
1409
|
+
/**
|
|
1410
|
+
* Reaction - An emoji reaction to a message
|
|
1411
|
+
*/
|
|
1412
|
+
export const Reaction = {
|
|
1413
|
+
singular: 'reaction',
|
|
1414
|
+
plural: 'reactions',
|
|
1415
|
+
description: 'An emoji reaction to a message',
|
|
1416
|
+
properties: {
|
|
1417
|
+
emoji: {
|
|
1418
|
+
type: 'string',
|
|
1419
|
+
description: 'Emoji character or shortcode',
|
|
1420
|
+
},
|
|
1421
|
+
count: {
|
|
1422
|
+
type: 'number',
|
|
1423
|
+
description: 'Number of users who added this reaction',
|
|
1424
|
+
},
|
|
1425
|
+
},
|
|
1426
|
+
relationships: {
|
|
1427
|
+
message: {
|
|
1428
|
+
type: 'Message',
|
|
1429
|
+
backref: 'reactions',
|
|
1430
|
+
description: 'Message this reaction is on',
|
|
1431
|
+
},
|
|
1432
|
+
users: {
|
|
1433
|
+
type: 'Member[]',
|
|
1434
|
+
description: 'Users who added this reaction',
|
|
1435
|
+
},
|
|
1436
|
+
},
|
|
1437
|
+
actions: ['add', 'remove'],
|
|
1438
|
+
events: ['added', 'removed'],
|
|
1439
|
+
};
|
|
1440
|
+
// =============================================================================
|
|
1441
|
+
// Supporting Entities
|
|
1442
|
+
// =============================================================================
|
|
1443
|
+
/**
|
|
1444
|
+
* Attachment - A file attachment
|
|
1445
|
+
*/
|
|
1446
|
+
export const Attachment = {
|
|
1447
|
+
singular: 'attachment',
|
|
1448
|
+
plural: 'attachments',
|
|
1449
|
+
description: 'A file attachment to an email, message, or document',
|
|
1450
|
+
properties: {
|
|
1451
|
+
filename: {
|
|
1452
|
+
type: 'string',
|
|
1453
|
+
description: 'Original filename',
|
|
1454
|
+
},
|
|
1455
|
+
mimeType: {
|
|
1456
|
+
type: 'string',
|
|
1457
|
+
description: 'MIME type of the file',
|
|
1458
|
+
},
|
|
1459
|
+
size: {
|
|
1460
|
+
type: 'number',
|
|
1461
|
+
description: 'File size in bytes',
|
|
1462
|
+
},
|
|
1463
|
+
url: {
|
|
1464
|
+
type: 'url',
|
|
1465
|
+
description: 'URL to download the file',
|
|
1466
|
+
},
|
|
1467
|
+
thumbnailUrl: {
|
|
1468
|
+
type: 'url',
|
|
1469
|
+
optional: true,
|
|
1470
|
+
description: 'URL to a thumbnail preview',
|
|
1471
|
+
},
|
|
1472
|
+
contentId: {
|
|
1473
|
+
type: 'string',
|
|
1474
|
+
optional: true,
|
|
1475
|
+
description: 'Content ID for inline attachments',
|
|
1476
|
+
},
|
|
1477
|
+
},
|
|
1478
|
+
actions: ['upload', 'download', 'preview', 'delete', 'share'],
|
|
1479
|
+
events: ['uploaded', 'downloaded', 'previewed', 'deleted', 'shared'],
|
|
1480
|
+
};
|
|
1481
|
+
/**
|
|
1482
|
+
* Contact - A person's contact information
|
|
1483
|
+
*/
|
|
1484
|
+
export const Contact = {
|
|
1485
|
+
singular: 'contact',
|
|
1486
|
+
plural: 'contacts',
|
|
1487
|
+
description: 'Contact information for a person or organization',
|
|
1488
|
+
properties: {
|
|
1489
|
+
name: {
|
|
1490
|
+
type: 'string',
|
|
1491
|
+
description: 'Full name',
|
|
1492
|
+
},
|
|
1493
|
+
email: {
|
|
1494
|
+
type: 'string',
|
|
1495
|
+
optional: true,
|
|
1496
|
+
description: 'Primary email address',
|
|
1497
|
+
},
|
|
1498
|
+
phone: {
|
|
1499
|
+
type: 'string',
|
|
1500
|
+
optional: true,
|
|
1501
|
+
description: 'Primary phone number',
|
|
1502
|
+
},
|
|
1503
|
+
company: {
|
|
1504
|
+
type: 'string',
|
|
1505
|
+
optional: true,
|
|
1506
|
+
description: 'Company or organization',
|
|
1507
|
+
},
|
|
1508
|
+
title: {
|
|
1509
|
+
type: 'string',
|
|
1510
|
+
optional: true,
|
|
1511
|
+
description: 'Job title',
|
|
1512
|
+
},
|
|
1513
|
+
avatar: {
|
|
1514
|
+
type: 'url',
|
|
1515
|
+
optional: true,
|
|
1516
|
+
description: 'Profile photo URL',
|
|
1517
|
+
},
|
|
1518
|
+
notes: {
|
|
1519
|
+
type: 'string',
|
|
1520
|
+
optional: true,
|
|
1521
|
+
description: 'Notes about this contact',
|
|
1522
|
+
},
|
|
1523
|
+
tags: {
|
|
1524
|
+
type: 'string',
|
|
1525
|
+
array: true,
|
|
1526
|
+
optional: true,
|
|
1527
|
+
description: 'Tags/labels for categorization',
|
|
1528
|
+
},
|
|
1529
|
+
},
|
|
1530
|
+
actions: ['create', 'update', 'delete', 'merge', 'export', 'import'],
|
|
1531
|
+
events: ['created', 'updated', 'deleted', 'merged', 'exported', 'imported'],
|
|
1532
|
+
};
|
|
1533
|
+
/**
|
|
1534
|
+
* Comment - A comment on a document or other entity
|
|
1535
|
+
*/
|
|
1536
|
+
export const Comment = {
|
|
1537
|
+
singular: 'comment',
|
|
1538
|
+
plural: 'comments',
|
|
1539
|
+
description: 'A comment or annotation on a document',
|
|
1540
|
+
properties: {
|
|
1541
|
+
text: {
|
|
1542
|
+
type: 'string',
|
|
1543
|
+
description: 'Comment text',
|
|
1544
|
+
},
|
|
1545
|
+
anchor: {
|
|
1546
|
+
type: 'json',
|
|
1547
|
+
optional: true,
|
|
1548
|
+
description: 'Location anchor (selection, range, etc.)',
|
|
1549
|
+
},
|
|
1550
|
+
resolved: {
|
|
1551
|
+
type: 'boolean',
|
|
1552
|
+
optional: true,
|
|
1553
|
+
description: 'Whether the comment has been resolved',
|
|
1554
|
+
},
|
|
1555
|
+
},
|
|
1556
|
+
relationships: {
|
|
1557
|
+
document: {
|
|
1558
|
+
type: 'Document',
|
|
1559
|
+
backref: 'comments',
|
|
1560
|
+
description: 'Document this comment is on',
|
|
1561
|
+
},
|
|
1562
|
+
author: {
|
|
1563
|
+
type: 'Contact',
|
|
1564
|
+
description: 'Who wrote the comment',
|
|
1565
|
+
},
|
|
1566
|
+
replies: {
|
|
1567
|
+
type: 'Comment[]',
|
|
1568
|
+
description: 'Replies to this comment',
|
|
1569
|
+
},
|
|
1570
|
+
},
|
|
1571
|
+
actions: ['create', 'edit', 'delete', 'resolve', 'unresolve', 'reply'],
|
|
1572
|
+
events: ['created', 'edited', 'deleted', 'resolved', 'unresololved', 'replied'],
|
|
1573
|
+
};
|
|
1574
|
+
/**
|
|
1575
|
+
* Revision - A version/revision of a document
|
|
1576
|
+
*/
|
|
1577
|
+
export const Revision = {
|
|
1578
|
+
singular: 'revision',
|
|
1579
|
+
plural: 'revisions',
|
|
1580
|
+
description: 'A saved version of a document',
|
|
1581
|
+
properties: {
|
|
1582
|
+
version: {
|
|
1583
|
+
type: 'number',
|
|
1584
|
+
description: 'Version number',
|
|
1585
|
+
},
|
|
1586
|
+
label: {
|
|
1587
|
+
type: 'string',
|
|
1588
|
+
optional: true,
|
|
1589
|
+
description: 'Optional version label',
|
|
1590
|
+
},
|
|
1591
|
+
changes: {
|
|
1592
|
+
type: 'string',
|
|
1593
|
+
optional: true,
|
|
1594
|
+
description: 'Summary of changes',
|
|
1595
|
+
},
|
|
1596
|
+
size: {
|
|
1597
|
+
type: 'number',
|
|
1598
|
+
optional: true,
|
|
1599
|
+
description: 'Document size at this revision',
|
|
1600
|
+
},
|
|
1601
|
+
},
|
|
1602
|
+
relationships: {
|
|
1603
|
+
document: {
|
|
1604
|
+
type: 'Document',
|
|
1605
|
+
backref: 'revisions',
|
|
1606
|
+
description: 'Document this is a revision of',
|
|
1607
|
+
},
|
|
1608
|
+
author: {
|
|
1609
|
+
type: 'Contact',
|
|
1610
|
+
description: 'Who made this revision',
|
|
1611
|
+
},
|
|
1612
|
+
},
|
|
1613
|
+
actions: ['view', 'restore', 'compare', 'download'],
|
|
1614
|
+
events: ['created', 'restored', 'compared'],
|
|
1615
|
+
};
|
|
1616
|
+
// =============================================================================
|
|
1617
|
+
// Export all entities as a schema
|
|
1618
|
+
// =============================================================================
|
|
1619
|
+
/**
|
|
1620
|
+
* All digital tool entity types
|
|
1621
|
+
*/
|
|
1622
|
+
export const DigitalToolEntities = {
|
|
1623
|
+
// Email
|
|
1624
|
+
Email,
|
|
1625
|
+
EmailThread,
|
|
1626
|
+
// Spreadsheet
|
|
1627
|
+
Spreadsheet,
|
|
1628
|
+
Sheet,
|
|
1629
|
+
Cell,
|
|
1630
|
+
// Document
|
|
1631
|
+
Document,
|
|
1632
|
+
// Presentation
|
|
1633
|
+
Presentation,
|
|
1634
|
+
Slide,
|
|
1635
|
+
// Phone
|
|
1636
|
+
PhoneCall,
|
|
1637
|
+
Voicemail,
|
|
1638
|
+
// Team Messaging (Slack/Teams/Discord)
|
|
1639
|
+
Workspace,
|
|
1640
|
+
Channel,
|
|
1641
|
+
Message,
|
|
1642
|
+
Thread,
|
|
1643
|
+
DirectMessage,
|
|
1644
|
+
Member,
|
|
1645
|
+
Reaction,
|
|
1646
|
+
// Supporting
|
|
1647
|
+
Attachment,
|
|
1648
|
+
Contact,
|
|
1649
|
+
Comment,
|
|
1650
|
+
Revision,
|
|
1651
|
+
};
|
|
1652
|
+
/**
|
|
1653
|
+
* Entity categories for organization
|
|
1654
|
+
*/
|
|
1655
|
+
export const DigitalToolCategories = {
|
|
1656
|
+
email: ['Email', 'EmailThread'],
|
|
1657
|
+
spreadsheet: ['Spreadsheet', 'Sheet', 'Cell'],
|
|
1658
|
+
document: ['Document', 'Comment', 'Revision'],
|
|
1659
|
+
presentation: ['Presentation', 'Slide'],
|
|
1660
|
+
phone: ['PhoneCall', 'Voicemail'],
|
|
1661
|
+
messaging: ['Workspace', 'Channel', 'Message', 'Thread', 'DirectMessage', 'Member', 'Reaction'],
|
|
1662
|
+
shared: ['Attachment', 'Contact'],
|
|
1663
|
+
};
|
|
1664
|
+
//# sourceMappingURL=entities.js.map
|