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
|
@@ -0,0 +1,1753 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Interface Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract that concrete providers must implement.
|
|
5
|
+
* Each provider binds abstract entity types (Nouns) to real APIs/services.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Provider metadata
|
|
11
|
+
*/
|
|
12
|
+
export interface ProviderInfo {
|
|
13
|
+
/** Unique provider identifier */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Human-readable name */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Provider description */
|
|
18
|
+
description: string;
|
|
19
|
+
/** Provider category */
|
|
20
|
+
category: ProviderCategory;
|
|
21
|
+
/** Website URL */
|
|
22
|
+
website?: string;
|
|
23
|
+
/** Documentation URL */
|
|
24
|
+
docsUrl?: string;
|
|
25
|
+
/** Required configuration keys */
|
|
26
|
+
requiredConfig: string[];
|
|
27
|
+
/** Optional configuration keys */
|
|
28
|
+
optionalConfig?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Provider categories
|
|
32
|
+
*/
|
|
33
|
+
export type ProviderCategory = 'email' | 'messaging' | 'spreadsheet' | 'document' | 'presentation' | 'phone' | 'storage' | 'calendar' | 'tasks' | 'project-management' | 'crm' | 'development' | 'finance' | 'support' | 'media' | 'marketing' | 'knowledge' | 'ecommerce' | 'analytics' | 'video-conferencing' | 'forms';
|
|
34
|
+
/**
|
|
35
|
+
* Provider configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface ProviderConfig {
|
|
38
|
+
/** API key or token */
|
|
39
|
+
apiKey?: string;
|
|
40
|
+
/** API secret */
|
|
41
|
+
apiSecret?: string;
|
|
42
|
+
/** OAuth access token */
|
|
43
|
+
accessToken?: string;
|
|
44
|
+
/** OAuth refresh token */
|
|
45
|
+
refreshToken?: string;
|
|
46
|
+
/** Base URL override */
|
|
47
|
+
baseUrl?: string;
|
|
48
|
+
/** Webhook URL for callbacks */
|
|
49
|
+
webhookUrl?: string;
|
|
50
|
+
/** Additional provider-specific config */
|
|
51
|
+
[key: string]: unknown;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Provider health status
|
|
55
|
+
*/
|
|
56
|
+
export interface ProviderHealth {
|
|
57
|
+
healthy: boolean;
|
|
58
|
+
latencyMs?: number;
|
|
59
|
+
message?: string;
|
|
60
|
+
checkedAt: Date;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Base provider interface
|
|
64
|
+
*/
|
|
65
|
+
export interface BaseProvider {
|
|
66
|
+
/** Provider metadata */
|
|
67
|
+
readonly info: ProviderInfo;
|
|
68
|
+
/** Initialize the provider with config */
|
|
69
|
+
initialize(config: ProviderConfig): Promise<void>;
|
|
70
|
+
/** Check provider health/connectivity */
|
|
71
|
+
healthCheck(): Promise<ProviderHealth>;
|
|
72
|
+
/** Dispose of provider resources */
|
|
73
|
+
dispose(): Promise<void>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Pagination options
|
|
77
|
+
*/
|
|
78
|
+
export interface PaginationOptions {
|
|
79
|
+
limit?: number;
|
|
80
|
+
offset?: number;
|
|
81
|
+
cursor?: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Paginated result
|
|
85
|
+
*/
|
|
86
|
+
export interface PaginatedResult<T> {
|
|
87
|
+
items: T[];
|
|
88
|
+
total?: number;
|
|
89
|
+
hasMore: boolean;
|
|
90
|
+
nextCursor?: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Email send options
|
|
94
|
+
*/
|
|
95
|
+
export interface SendEmailOptions {
|
|
96
|
+
to: string[];
|
|
97
|
+
cc?: string[];
|
|
98
|
+
bcc?: string[];
|
|
99
|
+
from?: string;
|
|
100
|
+
replyTo?: string;
|
|
101
|
+
subject: string;
|
|
102
|
+
text?: string;
|
|
103
|
+
html?: string;
|
|
104
|
+
attachments?: Array<{
|
|
105
|
+
filename: string;
|
|
106
|
+
content: string | Buffer;
|
|
107
|
+
contentType?: string;
|
|
108
|
+
contentId?: string;
|
|
109
|
+
}>;
|
|
110
|
+
headers?: Record<string, string>;
|
|
111
|
+
tags?: string[];
|
|
112
|
+
metadata?: Record<string, string>;
|
|
113
|
+
/** Schedule send time */
|
|
114
|
+
sendAt?: Date;
|
|
115
|
+
/** Track opens */
|
|
116
|
+
trackOpens?: boolean;
|
|
117
|
+
/** Track clicks */
|
|
118
|
+
trackClicks?: boolean;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Email send result
|
|
122
|
+
*/
|
|
123
|
+
export interface SendEmailResult {
|
|
124
|
+
success: boolean;
|
|
125
|
+
messageId?: string;
|
|
126
|
+
error?: {
|
|
127
|
+
code: string;
|
|
128
|
+
message: string;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Email provider interface
|
|
133
|
+
*/
|
|
134
|
+
export interface EmailProvider extends BaseProvider {
|
|
135
|
+
/** Send an email */
|
|
136
|
+
send(options: SendEmailOptions): Promise<SendEmailResult>;
|
|
137
|
+
/** Send multiple emails (batch) */
|
|
138
|
+
sendBatch?(emails: SendEmailOptions[]): Promise<SendEmailResult[]>;
|
|
139
|
+
/** Get email by ID */
|
|
140
|
+
get?(messageId: string): Promise<EmailData | null>;
|
|
141
|
+
/** List emails */
|
|
142
|
+
list?(options?: EmailListOptions): Promise<PaginatedResult<EmailData>>;
|
|
143
|
+
/** Search emails */
|
|
144
|
+
search?(query: string, options?: EmailListOptions): Promise<PaginatedResult<EmailData>>;
|
|
145
|
+
/** Get email thread */
|
|
146
|
+
getThread?(threadId: string): Promise<EmailThreadData | null>;
|
|
147
|
+
/** Verify domain */
|
|
148
|
+
verifyDomain?(domain: string): Promise<DomainVerification>;
|
|
149
|
+
/** List verified domains */
|
|
150
|
+
listDomains?(): Promise<DomainInfo[]>;
|
|
151
|
+
}
|
|
152
|
+
export interface EmailData {
|
|
153
|
+
id: string;
|
|
154
|
+
from: string;
|
|
155
|
+
to: string[];
|
|
156
|
+
cc?: string[];
|
|
157
|
+
bcc?: string[];
|
|
158
|
+
subject: string;
|
|
159
|
+
text?: string;
|
|
160
|
+
html?: string;
|
|
161
|
+
status: 'queued' | 'sent' | 'delivered' | 'bounced' | 'failed';
|
|
162
|
+
sentAt?: Date;
|
|
163
|
+
deliveredAt?: Date;
|
|
164
|
+
openedAt?: Date;
|
|
165
|
+
clickedAt?: Date;
|
|
166
|
+
}
|
|
167
|
+
export interface EmailThreadData {
|
|
168
|
+
id: string;
|
|
169
|
+
subject: string;
|
|
170
|
+
messages: EmailData[];
|
|
171
|
+
participantCount: number;
|
|
172
|
+
lastMessageAt: Date;
|
|
173
|
+
}
|
|
174
|
+
export interface EmailListOptions extends PaginationOptions {
|
|
175
|
+
status?: string;
|
|
176
|
+
from?: string;
|
|
177
|
+
to?: string;
|
|
178
|
+
since?: Date;
|
|
179
|
+
until?: Date;
|
|
180
|
+
}
|
|
181
|
+
export interface DomainVerification {
|
|
182
|
+
domain: string;
|
|
183
|
+
verified: boolean;
|
|
184
|
+
dnsRecords: Array<{
|
|
185
|
+
type: 'TXT' | 'CNAME' | 'MX';
|
|
186
|
+
name: string;
|
|
187
|
+
value: string;
|
|
188
|
+
verified: boolean;
|
|
189
|
+
}>;
|
|
190
|
+
}
|
|
191
|
+
export interface DomainInfo {
|
|
192
|
+
domain: string;
|
|
193
|
+
verified: boolean;
|
|
194
|
+
createdAt: Date;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Send message options
|
|
198
|
+
*/
|
|
199
|
+
export interface SendMessageOptions {
|
|
200
|
+
/** Channel ID or name */
|
|
201
|
+
channel?: string;
|
|
202
|
+
/** User ID for DM */
|
|
203
|
+
userId?: string;
|
|
204
|
+
/** Thread ID for replies */
|
|
205
|
+
threadId?: string;
|
|
206
|
+
/** Message text */
|
|
207
|
+
text: string;
|
|
208
|
+
/** Rich blocks/attachments */
|
|
209
|
+
blocks?: unknown[];
|
|
210
|
+
/** Attachments */
|
|
211
|
+
attachments?: Array<{
|
|
212
|
+
filename: string;
|
|
213
|
+
content: string | Buffer;
|
|
214
|
+
contentType?: string;
|
|
215
|
+
}>;
|
|
216
|
+
/** Metadata */
|
|
217
|
+
metadata?: Record<string, unknown>;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Send message result
|
|
221
|
+
*/
|
|
222
|
+
export interface SendMessageResult {
|
|
223
|
+
success: boolean;
|
|
224
|
+
messageId?: string;
|
|
225
|
+
timestamp?: string;
|
|
226
|
+
channel?: string;
|
|
227
|
+
error?: {
|
|
228
|
+
code: string;
|
|
229
|
+
message: string;
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Messaging provider interface
|
|
234
|
+
*/
|
|
235
|
+
export interface MessagingProvider extends BaseProvider {
|
|
236
|
+
/** Send a message */
|
|
237
|
+
send(options: SendMessageOptions): Promise<SendMessageResult>;
|
|
238
|
+
/** Edit a message */
|
|
239
|
+
edit?(messageId: string, text: string, blocks?: unknown[]): Promise<SendMessageResult>;
|
|
240
|
+
/** Delete a message */
|
|
241
|
+
delete?(messageId: string, channel: string): Promise<boolean>;
|
|
242
|
+
/** React to a message */
|
|
243
|
+
react?(messageId: string, channel: string, emoji: string): Promise<boolean>;
|
|
244
|
+
/** Remove reaction */
|
|
245
|
+
unreact?(messageId: string, channel: string, emoji: string): Promise<boolean>;
|
|
246
|
+
/** Get message */
|
|
247
|
+
getMessage?(messageId: string, channel: string): Promise<MessageData | null>;
|
|
248
|
+
/** List messages in channel */
|
|
249
|
+
listMessages?(channel: string, options?: MessageListOptions): Promise<PaginatedResult<MessageData>>;
|
|
250
|
+
/** Search messages */
|
|
251
|
+
searchMessages?(query: string, options?: MessageSearchOptions): Promise<PaginatedResult<MessageData>>;
|
|
252
|
+
/** List channels */
|
|
253
|
+
listChannels?(options?: ChannelListOptions): Promise<PaginatedResult<ChannelData>>;
|
|
254
|
+
/** Get channel */
|
|
255
|
+
getChannel?(channelId: string): Promise<ChannelData | null>;
|
|
256
|
+
/** Create channel */
|
|
257
|
+
createChannel?(name: string, options?: CreateChannelOptions): Promise<ChannelData>;
|
|
258
|
+
/** Archive channel */
|
|
259
|
+
archiveChannel?(channelId: string): Promise<boolean>;
|
|
260
|
+
/** Join channel */
|
|
261
|
+
joinChannel?(channelId: string): Promise<boolean>;
|
|
262
|
+
/** Leave channel */
|
|
263
|
+
leaveChannel?(channelId: string): Promise<boolean>;
|
|
264
|
+
/** List members */
|
|
265
|
+
listMembers?(options?: MemberListOptions): Promise<PaginatedResult<MemberData>>;
|
|
266
|
+
/** Get member */
|
|
267
|
+
getMember?(userId: string): Promise<MemberData | null>;
|
|
268
|
+
/** Get user presence */
|
|
269
|
+
getPresence?(userId: string): Promise<PresenceData>;
|
|
270
|
+
/** Get workspace info */
|
|
271
|
+
getWorkspace?(): Promise<WorkspaceData>;
|
|
272
|
+
}
|
|
273
|
+
export interface MessageData {
|
|
274
|
+
id: string;
|
|
275
|
+
channel: string;
|
|
276
|
+
userId: string;
|
|
277
|
+
text: string;
|
|
278
|
+
timestamp: string;
|
|
279
|
+
threadId?: string;
|
|
280
|
+
replyCount?: number;
|
|
281
|
+
reactions?: Array<{
|
|
282
|
+
emoji: string;
|
|
283
|
+
count: number;
|
|
284
|
+
users: string[];
|
|
285
|
+
}>;
|
|
286
|
+
edited?: boolean;
|
|
287
|
+
editedAt?: Date;
|
|
288
|
+
}
|
|
289
|
+
export interface MessageListOptions extends PaginationOptions {
|
|
290
|
+
since?: Date;
|
|
291
|
+
until?: Date;
|
|
292
|
+
inclusive?: boolean;
|
|
293
|
+
}
|
|
294
|
+
export interface MessageSearchOptions extends PaginationOptions {
|
|
295
|
+
channels?: string[];
|
|
296
|
+
users?: string[];
|
|
297
|
+
since?: Date;
|
|
298
|
+
until?: Date;
|
|
299
|
+
}
|
|
300
|
+
export interface ChannelData {
|
|
301
|
+
id: string;
|
|
302
|
+
name: string;
|
|
303
|
+
topic?: string;
|
|
304
|
+
description?: string;
|
|
305
|
+
isPrivate: boolean;
|
|
306
|
+
isArchived: boolean;
|
|
307
|
+
memberCount: number;
|
|
308
|
+
createdAt: Date;
|
|
309
|
+
}
|
|
310
|
+
export interface ChannelListOptions extends PaginationOptions {
|
|
311
|
+
types?: ('public' | 'private')[];
|
|
312
|
+
excludeArchived?: boolean;
|
|
313
|
+
}
|
|
314
|
+
export interface CreateChannelOptions {
|
|
315
|
+
isPrivate?: boolean;
|
|
316
|
+
topic?: string;
|
|
317
|
+
description?: string;
|
|
318
|
+
}
|
|
319
|
+
export interface MemberData {
|
|
320
|
+
id: string;
|
|
321
|
+
username: string;
|
|
322
|
+
displayName: string;
|
|
323
|
+
email?: string;
|
|
324
|
+
avatar?: string;
|
|
325
|
+
title?: string;
|
|
326
|
+
isAdmin: boolean;
|
|
327
|
+
isBot: boolean;
|
|
328
|
+
timezone?: string;
|
|
329
|
+
}
|
|
330
|
+
export interface MemberListOptions extends PaginationOptions {
|
|
331
|
+
channel?: string;
|
|
332
|
+
}
|
|
333
|
+
export interface PresenceData {
|
|
334
|
+
userId: string;
|
|
335
|
+
presence: 'online' | 'away' | 'dnd' | 'offline';
|
|
336
|
+
statusText?: string;
|
|
337
|
+
statusEmoji?: string;
|
|
338
|
+
}
|
|
339
|
+
export interface WorkspaceData {
|
|
340
|
+
id: string;
|
|
341
|
+
name: string;
|
|
342
|
+
domain?: string;
|
|
343
|
+
icon?: string;
|
|
344
|
+
memberCount?: number;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Send SMS options
|
|
348
|
+
*/
|
|
349
|
+
export interface SendSmsOptions {
|
|
350
|
+
to: string;
|
|
351
|
+
from?: string;
|
|
352
|
+
body: string;
|
|
353
|
+
mediaUrls?: string[];
|
|
354
|
+
statusCallback?: string;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* SMS provider interface
|
|
358
|
+
*/
|
|
359
|
+
export interface SmsProvider extends BaseProvider {
|
|
360
|
+
/** Send SMS */
|
|
361
|
+
send(options: SendSmsOptions): Promise<SendSmsResult>;
|
|
362
|
+
/** Send MMS with media */
|
|
363
|
+
sendMms?(options: SendSmsOptions & {
|
|
364
|
+
mediaUrls: string[];
|
|
365
|
+
}): Promise<SendSmsResult>;
|
|
366
|
+
/** Get message status */
|
|
367
|
+
getStatus?(messageId: string): Promise<SmsStatus>;
|
|
368
|
+
/** List messages */
|
|
369
|
+
list?(options?: SmsListOptions): Promise<PaginatedResult<SmsData>>;
|
|
370
|
+
}
|
|
371
|
+
export interface SendSmsResult {
|
|
372
|
+
success: boolean;
|
|
373
|
+
messageId?: string;
|
|
374
|
+
status?: string;
|
|
375
|
+
error?: {
|
|
376
|
+
code: string;
|
|
377
|
+
message: string;
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
export interface SmsStatus {
|
|
381
|
+
messageId: string;
|
|
382
|
+
status: 'queued' | 'sending' | 'sent' | 'delivered' | 'failed' | 'undelivered';
|
|
383
|
+
errorCode?: string;
|
|
384
|
+
errorMessage?: string;
|
|
385
|
+
}
|
|
386
|
+
export interface SmsData {
|
|
387
|
+
id: string;
|
|
388
|
+
to: string;
|
|
389
|
+
from: string;
|
|
390
|
+
body: string;
|
|
391
|
+
status: string;
|
|
392
|
+
direction: 'inbound' | 'outbound';
|
|
393
|
+
sentAt?: Date;
|
|
394
|
+
deliveredAt?: Date;
|
|
395
|
+
}
|
|
396
|
+
export interface SmsListOptions extends PaginationOptions {
|
|
397
|
+
to?: string;
|
|
398
|
+
from?: string;
|
|
399
|
+
since?: Date;
|
|
400
|
+
until?: Date;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Spreadsheet provider interface
|
|
404
|
+
*/
|
|
405
|
+
export interface SpreadsheetProvider extends BaseProvider {
|
|
406
|
+
/** Create spreadsheet */
|
|
407
|
+
create(name: string, options?: CreateSpreadsheetOptions): Promise<SpreadsheetData>;
|
|
408
|
+
/** Get spreadsheet */
|
|
409
|
+
get(spreadsheetId: string): Promise<SpreadsheetData | null>;
|
|
410
|
+
/** List spreadsheets */
|
|
411
|
+
list?(options?: SpreadsheetListOptions): Promise<PaginatedResult<SpreadsheetData>>;
|
|
412
|
+
/** Delete spreadsheet */
|
|
413
|
+
delete?(spreadsheetId: string): Promise<boolean>;
|
|
414
|
+
/** Get sheet */
|
|
415
|
+
getSheet(spreadsheetId: string, sheetId: string | number): Promise<SheetData | null>;
|
|
416
|
+
/** Add sheet */
|
|
417
|
+
addSheet(spreadsheetId: string, name: string, options?: AddSheetOptions): Promise<SheetData>;
|
|
418
|
+
/** Delete sheet */
|
|
419
|
+
deleteSheet(spreadsheetId: string, sheetId: string | number): Promise<boolean>;
|
|
420
|
+
/** Rename sheet */
|
|
421
|
+
renameSheet?(spreadsheetId: string, sheetId: string | number, name: string): Promise<boolean>;
|
|
422
|
+
/** Read cell range */
|
|
423
|
+
readRange(spreadsheetId: string, range: string): Promise<CellValue[][]>;
|
|
424
|
+
/** Write cell range */
|
|
425
|
+
writeRange(spreadsheetId: string, range: string, values: CellValue[][]): Promise<UpdateResult>;
|
|
426
|
+
/** Append rows */
|
|
427
|
+
appendRows(spreadsheetId: string, range: string, values: CellValue[][]): Promise<AppendResult>;
|
|
428
|
+
/** Clear range */
|
|
429
|
+
clearRange(spreadsheetId: string, range: string): Promise<boolean>;
|
|
430
|
+
/** Batch read */
|
|
431
|
+
batchRead?(spreadsheetId: string, ranges: string[]): Promise<Map<string, CellValue[][]>>;
|
|
432
|
+
/** Batch write */
|
|
433
|
+
batchWrite?(spreadsheetId: string, data: Array<{
|
|
434
|
+
range: string;
|
|
435
|
+
values: CellValue[][];
|
|
436
|
+
}>): Promise<UpdateResult>;
|
|
437
|
+
/** Export to format */
|
|
438
|
+
export?(spreadsheetId: string, format: 'xlsx' | 'csv' | 'pdf'): Promise<Buffer>;
|
|
439
|
+
/** Import from file */
|
|
440
|
+
import?(file: Buffer, format: 'xlsx' | 'csv', options?: ImportOptions): Promise<SpreadsheetData>;
|
|
441
|
+
}
|
|
442
|
+
export type CellValue = string | number | boolean | null | Date;
|
|
443
|
+
export interface SpreadsheetData {
|
|
444
|
+
id: string;
|
|
445
|
+
name: string;
|
|
446
|
+
sheets: SheetInfo[];
|
|
447
|
+
createdAt?: Date;
|
|
448
|
+
modifiedAt?: Date;
|
|
449
|
+
url?: string;
|
|
450
|
+
}
|
|
451
|
+
export interface SheetInfo {
|
|
452
|
+
id: string | number;
|
|
453
|
+
name: string;
|
|
454
|
+
index: number;
|
|
455
|
+
rowCount?: number;
|
|
456
|
+
columnCount?: number;
|
|
457
|
+
}
|
|
458
|
+
export interface SheetData extends SheetInfo {
|
|
459
|
+
data?: CellValue[][];
|
|
460
|
+
frozenRows?: number;
|
|
461
|
+
frozenColumns?: number;
|
|
462
|
+
}
|
|
463
|
+
export interface CreateSpreadsheetOptions {
|
|
464
|
+
sheets?: Array<{
|
|
465
|
+
name: string;
|
|
466
|
+
}>;
|
|
467
|
+
locale?: string;
|
|
468
|
+
timeZone?: string;
|
|
469
|
+
}
|
|
470
|
+
export interface SpreadsheetListOptions extends PaginationOptions {
|
|
471
|
+
query?: string;
|
|
472
|
+
}
|
|
473
|
+
export interface AddSheetOptions {
|
|
474
|
+
index?: number;
|
|
475
|
+
rowCount?: number;
|
|
476
|
+
columnCount?: number;
|
|
477
|
+
}
|
|
478
|
+
export interface UpdateResult {
|
|
479
|
+
updatedRange: string;
|
|
480
|
+
updatedRows: number;
|
|
481
|
+
updatedColumns: number;
|
|
482
|
+
updatedCells: number;
|
|
483
|
+
}
|
|
484
|
+
export interface AppendResult {
|
|
485
|
+
spreadsheetId: string;
|
|
486
|
+
updatedRange: string;
|
|
487
|
+
updatedRows: number;
|
|
488
|
+
}
|
|
489
|
+
export interface ImportOptions {
|
|
490
|
+
name?: string;
|
|
491
|
+
sheetName?: string;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Document provider interface
|
|
495
|
+
*/
|
|
496
|
+
export interface DocumentProvider extends BaseProvider {
|
|
497
|
+
/** Create document */
|
|
498
|
+
create(title: string, options?: CreateDocumentOptions): Promise<DocumentData>;
|
|
499
|
+
/** Get document */
|
|
500
|
+
get(documentId: string): Promise<DocumentData | null>;
|
|
501
|
+
/** List documents */
|
|
502
|
+
list?(options?: DocumentListOptions): Promise<PaginatedResult<DocumentData>>;
|
|
503
|
+
/** Delete document */
|
|
504
|
+
delete?(documentId: string): Promise<boolean>;
|
|
505
|
+
/** Get document content */
|
|
506
|
+
getContent(documentId: string): Promise<DocumentContent>;
|
|
507
|
+
/** Update document content */
|
|
508
|
+
updateContent(documentId: string, content: DocumentContent): Promise<boolean>;
|
|
509
|
+
/** Insert text */
|
|
510
|
+
insertText?(documentId: string, text: string, index?: number): Promise<boolean>;
|
|
511
|
+
/** Delete content */
|
|
512
|
+
deleteContent?(documentId: string, startIndex: number, endIndex: number): Promise<boolean>;
|
|
513
|
+
/** Export document */
|
|
514
|
+
export?(documentId: string, format: 'docx' | 'pdf' | 'txt' | 'html' | 'md'): Promise<Buffer>;
|
|
515
|
+
/** Import document */
|
|
516
|
+
import?(file: Buffer, format: 'docx' | 'txt' | 'html' | 'md', options?: ImportDocumentOptions): Promise<DocumentData>;
|
|
517
|
+
}
|
|
518
|
+
export interface DocumentData {
|
|
519
|
+
id: string;
|
|
520
|
+
title: string;
|
|
521
|
+
createdAt?: Date;
|
|
522
|
+
modifiedAt?: Date;
|
|
523
|
+
url?: string;
|
|
524
|
+
wordCount?: number;
|
|
525
|
+
characterCount?: number;
|
|
526
|
+
}
|
|
527
|
+
export interface DocumentContent {
|
|
528
|
+
/** Plain text content */
|
|
529
|
+
text?: string;
|
|
530
|
+
/** HTML content */
|
|
531
|
+
html?: string;
|
|
532
|
+
/** Markdown content */
|
|
533
|
+
markdown?: string;
|
|
534
|
+
/** Structured content (for Google Docs) */
|
|
535
|
+
body?: unknown;
|
|
536
|
+
}
|
|
537
|
+
export interface CreateDocumentOptions {
|
|
538
|
+
content?: string;
|
|
539
|
+
template?: string;
|
|
540
|
+
}
|
|
541
|
+
export interface DocumentListOptions extends PaginationOptions {
|
|
542
|
+
query?: string;
|
|
543
|
+
}
|
|
544
|
+
export interface ImportDocumentOptions {
|
|
545
|
+
title?: string;
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Presentation provider interface
|
|
549
|
+
*/
|
|
550
|
+
export interface PresentationProvider extends BaseProvider {
|
|
551
|
+
/** Create presentation */
|
|
552
|
+
create(title: string, options?: CreatePresentationOptions): Promise<PresentationData>;
|
|
553
|
+
/** Get presentation */
|
|
554
|
+
get(presentationId: string): Promise<PresentationData | null>;
|
|
555
|
+
/** List presentations */
|
|
556
|
+
list?(options?: PresentationListOptions): Promise<PaginatedResult<PresentationData>>;
|
|
557
|
+
/** Delete presentation */
|
|
558
|
+
delete?(presentationId: string): Promise<boolean>;
|
|
559
|
+
/** Get slide */
|
|
560
|
+
getSlide(presentationId: string, slideId: string): Promise<SlideData | null>;
|
|
561
|
+
/** Add slide */
|
|
562
|
+
addSlide(presentationId: string, options?: AddSlideOptions): Promise<SlideData>;
|
|
563
|
+
/** Delete slide */
|
|
564
|
+
deleteSlide(presentationId: string, slideId: string): Promise<boolean>;
|
|
565
|
+
/** Reorder slides */
|
|
566
|
+
reorderSlides?(presentationId: string, slideIds: string[]): Promise<boolean>;
|
|
567
|
+
/** Update slide content */
|
|
568
|
+
updateSlide?(presentationId: string, slideId: string, updates: SlideUpdates): Promise<boolean>;
|
|
569
|
+
/** Export presentation */
|
|
570
|
+
export?(presentationId: string, format: 'pptx' | 'pdf' | 'png'): Promise<Buffer>;
|
|
571
|
+
/** Import presentation */
|
|
572
|
+
import?(file: Buffer, format: 'pptx', options?: ImportPresentationOptions): Promise<PresentationData>;
|
|
573
|
+
}
|
|
574
|
+
export interface PresentationData {
|
|
575
|
+
id: string;
|
|
576
|
+
title: string;
|
|
577
|
+
slideCount: number;
|
|
578
|
+
slides?: SlideInfo[];
|
|
579
|
+
createdAt?: Date;
|
|
580
|
+
modifiedAt?: Date;
|
|
581
|
+
url?: string;
|
|
582
|
+
}
|
|
583
|
+
export interface SlideInfo {
|
|
584
|
+
id: string;
|
|
585
|
+
index: number;
|
|
586
|
+
layout?: string;
|
|
587
|
+
}
|
|
588
|
+
export interface SlideData extends SlideInfo {
|
|
589
|
+
title?: string;
|
|
590
|
+
notes?: string;
|
|
591
|
+
elements?: SlideElement[];
|
|
592
|
+
}
|
|
593
|
+
export interface SlideElement {
|
|
594
|
+
id: string;
|
|
595
|
+
type: 'text' | 'image' | 'shape' | 'table' | 'chart';
|
|
596
|
+
position: {
|
|
597
|
+
x: number;
|
|
598
|
+
y: number;
|
|
599
|
+
};
|
|
600
|
+
size: {
|
|
601
|
+
width: number;
|
|
602
|
+
height: number;
|
|
603
|
+
};
|
|
604
|
+
content?: unknown;
|
|
605
|
+
}
|
|
606
|
+
export interface CreatePresentationOptions {
|
|
607
|
+
template?: string;
|
|
608
|
+
aspectRatio?: '16:9' | '4:3';
|
|
609
|
+
}
|
|
610
|
+
export interface PresentationListOptions extends PaginationOptions {
|
|
611
|
+
query?: string;
|
|
612
|
+
}
|
|
613
|
+
export interface AddSlideOptions {
|
|
614
|
+
layout?: string;
|
|
615
|
+
index?: number;
|
|
616
|
+
}
|
|
617
|
+
export interface SlideUpdates {
|
|
618
|
+
title?: string;
|
|
619
|
+
notes?: string;
|
|
620
|
+
elements?: Partial<SlideElement>[];
|
|
621
|
+
}
|
|
622
|
+
export interface ImportPresentationOptions {
|
|
623
|
+
title?: string;
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Phone provider interface
|
|
627
|
+
*/
|
|
628
|
+
export interface PhoneProvider extends BaseProvider {
|
|
629
|
+
/** Make outbound call */
|
|
630
|
+
call(to: string, from: string, options?: CallOptions): Promise<CallResult>;
|
|
631
|
+
/** Get call status */
|
|
632
|
+
getCall(callId: string): Promise<CallData | null>;
|
|
633
|
+
/** List calls */
|
|
634
|
+
listCalls?(options?: CallListOptions): Promise<PaginatedResult<CallData>>;
|
|
635
|
+
/** Hangup call */
|
|
636
|
+
hangup?(callId: string): Promise<boolean>;
|
|
637
|
+
/** Transfer call */
|
|
638
|
+
transfer?(callId: string, to: string): Promise<boolean>;
|
|
639
|
+
/** Play audio */
|
|
640
|
+
playAudio?(callId: string, audioUrl: string): Promise<boolean>;
|
|
641
|
+
/** Send DTMF tones */
|
|
642
|
+
sendDtmf?(callId: string, digits: string): Promise<boolean>;
|
|
643
|
+
/** Start recording */
|
|
644
|
+
startRecording?(callId: string): Promise<RecordingData>;
|
|
645
|
+
/** Stop recording */
|
|
646
|
+
stopRecording?(callId: string, recordingId: string): Promise<boolean>;
|
|
647
|
+
/** Get recording */
|
|
648
|
+
getRecording?(recordingId: string): Promise<RecordingData | null>;
|
|
649
|
+
/** Transcribe recording */
|
|
650
|
+
transcribe?(recordingId: string): Promise<TranscriptionData>;
|
|
651
|
+
/** List voicemails */
|
|
652
|
+
listVoicemails?(options?: VoicemailListOptions): Promise<PaginatedResult<VoicemailData>>;
|
|
653
|
+
/** Get voicemail */
|
|
654
|
+
getVoicemail?(voicemailId: string): Promise<VoicemailData | null>;
|
|
655
|
+
/** Delete voicemail */
|
|
656
|
+
deleteVoicemail?(voicemailId: string): Promise<boolean>;
|
|
657
|
+
}
|
|
658
|
+
export interface CallOptions {
|
|
659
|
+
/** TwiML or webhook URL for call handling */
|
|
660
|
+
url?: string;
|
|
661
|
+
/** Status callback URL */
|
|
662
|
+
statusCallback?: string;
|
|
663
|
+
/** Timeout in seconds */
|
|
664
|
+
timeout?: number;
|
|
665
|
+
/** Record the call */
|
|
666
|
+
record?: boolean;
|
|
667
|
+
/** Machine detection */
|
|
668
|
+
machineDetection?: 'Enable' | 'DetectMessageEnd';
|
|
669
|
+
}
|
|
670
|
+
export interface CallResult {
|
|
671
|
+
success: boolean;
|
|
672
|
+
callId?: string;
|
|
673
|
+
status?: string;
|
|
674
|
+
error?: {
|
|
675
|
+
code: string;
|
|
676
|
+
message: string;
|
|
677
|
+
};
|
|
678
|
+
}
|
|
679
|
+
export interface CallData {
|
|
680
|
+
id: string;
|
|
681
|
+
to: string;
|
|
682
|
+
from: string;
|
|
683
|
+
status: 'queued' | 'ringing' | 'in-progress' | 'completed' | 'busy' | 'failed' | 'no-answer' | 'canceled';
|
|
684
|
+
direction: 'inbound' | 'outbound';
|
|
685
|
+
duration?: number;
|
|
686
|
+
startedAt?: Date;
|
|
687
|
+
answeredAt?: Date;
|
|
688
|
+
endedAt?: Date;
|
|
689
|
+
recordingUrl?: string;
|
|
690
|
+
}
|
|
691
|
+
export interface CallListOptions extends PaginationOptions {
|
|
692
|
+
status?: string;
|
|
693
|
+
to?: string;
|
|
694
|
+
from?: string;
|
|
695
|
+
since?: Date;
|
|
696
|
+
until?: Date;
|
|
697
|
+
}
|
|
698
|
+
export interface RecordingData {
|
|
699
|
+
id: string;
|
|
700
|
+
callId: string;
|
|
701
|
+
duration: number;
|
|
702
|
+
url: string;
|
|
703
|
+
status: 'processing' | 'completed' | 'failed';
|
|
704
|
+
createdAt: Date;
|
|
705
|
+
}
|
|
706
|
+
export interface TranscriptionData {
|
|
707
|
+
id: string;
|
|
708
|
+
recordingId: string;
|
|
709
|
+
text: string;
|
|
710
|
+
confidence?: number;
|
|
711
|
+
status: 'processing' | 'completed' | 'failed';
|
|
712
|
+
}
|
|
713
|
+
export interface VoicemailData {
|
|
714
|
+
id: string;
|
|
715
|
+
from: string;
|
|
716
|
+
to: string;
|
|
717
|
+
duration: number;
|
|
718
|
+
audioUrl: string;
|
|
719
|
+
transcription?: string;
|
|
720
|
+
read: boolean;
|
|
721
|
+
createdAt: Date;
|
|
722
|
+
}
|
|
723
|
+
export interface VoicemailListOptions extends PaginationOptions {
|
|
724
|
+
read?: boolean;
|
|
725
|
+
since?: Date;
|
|
726
|
+
}
|
|
727
|
+
export interface CalendarProvider extends BaseProvider {
|
|
728
|
+
listCalendars?(options?: PaginationOptions): Promise<PaginatedResult<CalendarData>>;
|
|
729
|
+
getCalendar?(calendarId: string): Promise<CalendarData | null>;
|
|
730
|
+
createEvent(calendarId: string, event: CreateEventOptions): Promise<EventData>;
|
|
731
|
+
getEvent(calendarId: string, eventId: string): Promise<EventData | null>;
|
|
732
|
+
updateEvent(calendarId: string, eventId: string, updates: Partial<CreateEventOptions>): Promise<EventData>;
|
|
733
|
+
deleteEvent(calendarId: string, eventId: string): Promise<boolean>;
|
|
734
|
+
listEvents(calendarId: string, options?: EventListOptions): Promise<PaginatedResult<EventData>>;
|
|
735
|
+
findAvailability?(calendarIds: string[], timeMin: Date, timeMax: Date): Promise<AvailabilityData[]>;
|
|
736
|
+
}
|
|
737
|
+
export interface CalendarData {
|
|
738
|
+
id: string;
|
|
739
|
+
name: string;
|
|
740
|
+
description?: string;
|
|
741
|
+
timeZone: string;
|
|
742
|
+
primary: boolean;
|
|
743
|
+
accessRole: 'owner' | 'writer' | 'reader';
|
|
744
|
+
}
|
|
745
|
+
export interface CreateEventOptions {
|
|
746
|
+
summary: string;
|
|
747
|
+
description?: string;
|
|
748
|
+
location?: string;
|
|
749
|
+
start: Date;
|
|
750
|
+
end: Date;
|
|
751
|
+
attendees?: string[];
|
|
752
|
+
reminders?: Array<{
|
|
753
|
+
method: 'email' | 'popup';
|
|
754
|
+
minutes: number;
|
|
755
|
+
}>;
|
|
756
|
+
recurrence?: string[];
|
|
757
|
+
conferenceData?: {
|
|
758
|
+
type: 'hangoutsMeet' | 'zoom' | 'teams';
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
export interface EventData {
|
|
762
|
+
id: string;
|
|
763
|
+
calendarId: string;
|
|
764
|
+
summary: string;
|
|
765
|
+
description?: string;
|
|
766
|
+
location?: string;
|
|
767
|
+
start: Date;
|
|
768
|
+
end: Date;
|
|
769
|
+
attendees?: Array<{
|
|
770
|
+
email: string;
|
|
771
|
+
responseStatus: string;
|
|
772
|
+
}>;
|
|
773
|
+
status: 'confirmed' | 'tentative' | 'cancelled';
|
|
774
|
+
recurringEventId?: string;
|
|
775
|
+
htmlLink?: string;
|
|
776
|
+
}
|
|
777
|
+
export interface EventListOptions extends PaginationOptions {
|
|
778
|
+
timeMin?: Date;
|
|
779
|
+
timeMax?: Date;
|
|
780
|
+
singleEvents?: boolean;
|
|
781
|
+
orderBy?: 'startTime' | 'updated';
|
|
782
|
+
}
|
|
783
|
+
export interface AvailabilityData {
|
|
784
|
+
calendarId: string;
|
|
785
|
+
busy: Array<{
|
|
786
|
+
start: Date;
|
|
787
|
+
end: Date;
|
|
788
|
+
}>;
|
|
789
|
+
}
|
|
790
|
+
export interface TaskProvider extends BaseProvider {
|
|
791
|
+
listProjects?(): Promise<ProjectData[]>;
|
|
792
|
+
createTask(task: CreateTaskOptions): Promise<TaskData>;
|
|
793
|
+
getTask(taskId: string): Promise<TaskData | null>;
|
|
794
|
+
updateTask(taskId: string, updates: Partial<CreateTaskOptions>): Promise<TaskData>;
|
|
795
|
+
deleteTask(taskId: string): Promise<boolean>;
|
|
796
|
+
completeTask(taskId: string): Promise<boolean>;
|
|
797
|
+
reopenTask?(taskId: string): Promise<boolean>;
|
|
798
|
+
listTasks(options?: TaskListOptions): Promise<PaginatedResult<TaskData>>;
|
|
799
|
+
addComment?(taskId: string, content: string): Promise<CommentData>;
|
|
800
|
+
}
|
|
801
|
+
export interface ProjectData {
|
|
802
|
+
id: string;
|
|
803
|
+
name: string;
|
|
804
|
+
color?: string;
|
|
805
|
+
parentId?: string;
|
|
806
|
+
}
|
|
807
|
+
export interface CreateTaskOptions {
|
|
808
|
+
content: string;
|
|
809
|
+
description?: string;
|
|
810
|
+
projectId?: string;
|
|
811
|
+
parentId?: string;
|
|
812
|
+
priority?: 1 | 2 | 3 | 4;
|
|
813
|
+
dueDate?: Date;
|
|
814
|
+
dueString?: string;
|
|
815
|
+
labels?: string[];
|
|
816
|
+
assigneeId?: string;
|
|
817
|
+
}
|
|
818
|
+
export interface TaskData {
|
|
819
|
+
id: string;
|
|
820
|
+
content: string;
|
|
821
|
+
description?: string;
|
|
822
|
+
projectId?: string;
|
|
823
|
+
parentId?: string;
|
|
824
|
+
priority: number;
|
|
825
|
+
dueDate?: Date;
|
|
826
|
+
completed: boolean;
|
|
827
|
+
labels: string[];
|
|
828
|
+
createdAt: Date;
|
|
829
|
+
completedAt?: Date;
|
|
830
|
+
}
|
|
831
|
+
export interface TaskListOptions extends PaginationOptions {
|
|
832
|
+
projectId?: string;
|
|
833
|
+
filter?: string;
|
|
834
|
+
completed?: boolean;
|
|
835
|
+
}
|
|
836
|
+
export interface CommentData {
|
|
837
|
+
id: string;
|
|
838
|
+
taskId: string;
|
|
839
|
+
content: string;
|
|
840
|
+
authorId: string;
|
|
841
|
+
createdAt: Date;
|
|
842
|
+
}
|
|
843
|
+
export interface ProjectManagementProvider extends BaseProvider {
|
|
844
|
+
listProjects(options?: PaginationOptions): Promise<PaginatedResult<PMProjectData>>;
|
|
845
|
+
getProject(projectId: string): Promise<PMProjectData | null>;
|
|
846
|
+
createIssue(projectId: string, issue: CreateIssueOptions): Promise<IssueData>;
|
|
847
|
+
getIssue(issueId: string): Promise<IssueData | null>;
|
|
848
|
+
updateIssue(issueId: string, updates: Partial<CreateIssueOptions>): Promise<IssueData>;
|
|
849
|
+
deleteIssue?(issueId: string): Promise<boolean>;
|
|
850
|
+
listIssues(projectId: string, options?: IssueListOptions): Promise<PaginatedResult<IssueData>>;
|
|
851
|
+
searchIssues?(query: string, options?: IssueListOptions): Promise<PaginatedResult<IssueData>>;
|
|
852
|
+
addComment(issueId: string, body: string): Promise<IssueCommentData>;
|
|
853
|
+
transition?(issueId: string, statusId: string): Promise<boolean>;
|
|
854
|
+
assign?(issueId: string, userId: string): Promise<boolean>;
|
|
855
|
+
}
|
|
856
|
+
export interface PMProjectData {
|
|
857
|
+
id: string;
|
|
858
|
+
key: string;
|
|
859
|
+
name: string;
|
|
860
|
+
description?: string;
|
|
861
|
+
lead?: string;
|
|
862
|
+
url?: string;
|
|
863
|
+
}
|
|
864
|
+
export interface CreateIssueOptions {
|
|
865
|
+
title: string;
|
|
866
|
+
description?: string;
|
|
867
|
+
type: string;
|
|
868
|
+
priority?: string;
|
|
869
|
+
labels?: string[];
|
|
870
|
+
assigneeId?: string;
|
|
871
|
+
sprintId?: string;
|
|
872
|
+
parentId?: string;
|
|
873
|
+
estimate?: number;
|
|
874
|
+
}
|
|
875
|
+
export interface IssueData {
|
|
876
|
+
id: string;
|
|
877
|
+
key: string;
|
|
878
|
+
title: string;
|
|
879
|
+
description?: string;
|
|
880
|
+
type: string;
|
|
881
|
+
status: string;
|
|
882
|
+
priority?: string;
|
|
883
|
+
labels: string[];
|
|
884
|
+
assigneeId?: string;
|
|
885
|
+
reporterId?: string;
|
|
886
|
+
createdAt: Date;
|
|
887
|
+
updatedAt: Date;
|
|
888
|
+
url?: string;
|
|
889
|
+
}
|
|
890
|
+
export interface IssueListOptions extends PaginationOptions {
|
|
891
|
+
status?: string[];
|
|
892
|
+
type?: string[];
|
|
893
|
+
assignee?: string;
|
|
894
|
+
labels?: string[];
|
|
895
|
+
sprintId?: string;
|
|
896
|
+
}
|
|
897
|
+
export interface IssueCommentData {
|
|
898
|
+
id: string;
|
|
899
|
+
issueId: string;
|
|
900
|
+
body: string;
|
|
901
|
+
authorId: string;
|
|
902
|
+
createdAt: Date;
|
|
903
|
+
}
|
|
904
|
+
export interface CRMProvider extends BaseProvider {
|
|
905
|
+
createContact(contact: CreateContactOptions): Promise<CRMContactData>;
|
|
906
|
+
getContact(contactId: string): Promise<CRMContactData | null>;
|
|
907
|
+
updateContact(contactId: string, updates: Partial<CreateContactOptions>): Promise<CRMContactData>;
|
|
908
|
+
listContacts(options?: ContactListOptions): Promise<PaginatedResult<CRMContactData>>;
|
|
909
|
+
searchContacts?(query: string): Promise<CRMContactData[]>;
|
|
910
|
+
createDeal(deal: CreateDealOptions): Promise<DealData>;
|
|
911
|
+
getDeal(dealId: string): Promise<DealData | null>;
|
|
912
|
+
updateDeal(dealId: string, updates: Partial<CreateDealOptions>): Promise<DealData>;
|
|
913
|
+
listDeals(options?: DealListOptions): Promise<PaginatedResult<DealData>>;
|
|
914
|
+
logActivity?(contactId: string, activity: CreateActivityOptions): Promise<CRMActivityData>;
|
|
915
|
+
listActivities?(contactId: string): Promise<CRMActivityData[]>;
|
|
916
|
+
}
|
|
917
|
+
export interface CreateContactOptions {
|
|
918
|
+
firstName: string;
|
|
919
|
+
lastName: string;
|
|
920
|
+
email?: string;
|
|
921
|
+
phone?: string;
|
|
922
|
+
company?: string;
|
|
923
|
+
title?: string;
|
|
924
|
+
customFields?: Record<string, unknown>;
|
|
925
|
+
}
|
|
926
|
+
export interface CRMContactData {
|
|
927
|
+
id: string;
|
|
928
|
+
firstName: string;
|
|
929
|
+
lastName: string;
|
|
930
|
+
email?: string;
|
|
931
|
+
phone?: string;
|
|
932
|
+
company?: string;
|
|
933
|
+
title?: string;
|
|
934
|
+
ownerId?: string;
|
|
935
|
+
createdAt: Date;
|
|
936
|
+
updatedAt: Date;
|
|
937
|
+
}
|
|
938
|
+
export interface ContactListOptions extends PaginationOptions {
|
|
939
|
+
ownerId?: string;
|
|
940
|
+
company?: string;
|
|
941
|
+
}
|
|
942
|
+
export interface CreateDealOptions {
|
|
943
|
+
name: string;
|
|
944
|
+
value?: number;
|
|
945
|
+
currency?: string;
|
|
946
|
+
stage: string;
|
|
947
|
+
contactId?: string;
|
|
948
|
+
companyId?: string;
|
|
949
|
+
closeDate?: Date;
|
|
950
|
+
probability?: number;
|
|
951
|
+
}
|
|
952
|
+
export interface DealData {
|
|
953
|
+
id: string;
|
|
954
|
+
name: string;
|
|
955
|
+
value?: number;
|
|
956
|
+
currency?: string;
|
|
957
|
+
stage: string;
|
|
958
|
+
probability?: number;
|
|
959
|
+
contactId?: string;
|
|
960
|
+
companyId?: string;
|
|
961
|
+
ownerId?: string;
|
|
962
|
+
closeDate?: Date;
|
|
963
|
+
createdAt: Date;
|
|
964
|
+
updatedAt: Date;
|
|
965
|
+
wonAt?: Date;
|
|
966
|
+
lostAt?: Date;
|
|
967
|
+
}
|
|
968
|
+
export interface DealListOptions extends PaginationOptions {
|
|
969
|
+
stage?: string;
|
|
970
|
+
ownerId?: string;
|
|
971
|
+
minValue?: number;
|
|
972
|
+
maxValue?: number;
|
|
973
|
+
}
|
|
974
|
+
export interface CreateActivityOptions {
|
|
975
|
+
type: 'call' | 'email' | 'meeting' | 'task' | 'note';
|
|
976
|
+
subject: string;
|
|
977
|
+
body?: string;
|
|
978
|
+
dueDate?: Date;
|
|
979
|
+
duration?: number;
|
|
980
|
+
}
|
|
981
|
+
export interface CRMActivityData {
|
|
982
|
+
id: string;
|
|
983
|
+
type: string;
|
|
984
|
+
subject: string;
|
|
985
|
+
body?: string;
|
|
986
|
+
contactId: string;
|
|
987
|
+
ownerId: string;
|
|
988
|
+
dueDate?: Date;
|
|
989
|
+
completedAt?: Date;
|
|
990
|
+
createdAt: Date;
|
|
991
|
+
}
|
|
992
|
+
export interface DevelopmentProvider extends BaseProvider {
|
|
993
|
+
listRepos(options?: RepoListOptions): Promise<PaginatedResult<RepoData>>;
|
|
994
|
+
getRepo(owner: string, repo: string): Promise<RepoData | null>;
|
|
995
|
+
createIssue(owner: string, repo: string, issue: CreateDevIssueOptions): Promise<DevIssueData>;
|
|
996
|
+
getIssue(owner: string, repo: string, issueNumber: number): Promise<DevIssueData | null>;
|
|
997
|
+
updateIssue(owner: string, repo: string, issueNumber: number, updates: Partial<CreateDevIssueOptions>): Promise<DevIssueData>;
|
|
998
|
+
listIssues(owner: string, repo: string, options?: DevIssueListOptions): Promise<PaginatedResult<DevIssueData>>;
|
|
999
|
+
createPullRequest(owner: string, repo: string, pr: CreatePROptions): Promise<PRData>;
|
|
1000
|
+
getPullRequest(owner: string, repo: string, prNumber: number): Promise<PRData | null>;
|
|
1001
|
+
listPullRequests(owner: string, repo: string, options?: PRListOptions): Promise<PaginatedResult<PRData>>;
|
|
1002
|
+
mergePullRequest?(owner: string, repo: string, prNumber: number): Promise<boolean>;
|
|
1003
|
+
addComment(owner: string, repo: string, issueNumber: number, body: string): Promise<DevCommentData>;
|
|
1004
|
+
}
|
|
1005
|
+
export interface RepoListOptions extends PaginationOptions {
|
|
1006
|
+
visibility?: 'public' | 'private' | 'all';
|
|
1007
|
+
sort?: 'created' | 'updated' | 'pushed';
|
|
1008
|
+
}
|
|
1009
|
+
export interface RepoData {
|
|
1010
|
+
id: string;
|
|
1011
|
+
owner: string;
|
|
1012
|
+
name: string;
|
|
1013
|
+
fullName: string;
|
|
1014
|
+
description?: string;
|
|
1015
|
+
private: boolean;
|
|
1016
|
+
defaultBranch: string;
|
|
1017
|
+
url: string;
|
|
1018
|
+
cloneUrl: string;
|
|
1019
|
+
stars: number;
|
|
1020
|
+
forks: number;
|
|
1021
|
+
openIssues: number;
|
|
1022
|
+
createdAt: Date;
|
|
1023
|
+
updatedAt: Date;
|
|
1024
|
+
}
|
|
1025
|
+
export interface CreateDevIssueOptions {
|
|
1026
|
+
title: string;
|
|
1027
|
+
body?: string;
|
|
1028
|
+
labels?: string[];
|
|
1029
|
+
assignees?: string[];
|
|
1030
|
+
milestone?: number;
|
|
1031
|
+
}
|
|
1032
|
+
export interface DevIssueData {
|
|
1033
|
+
id: string;
|
|
1034
|
+
number: number;
|
|
1035
|
+
title: string;
|
|
1036
|
+
body?: string;
|
|
1037
|
+
state: 'open' | 'closed';
|
|
1038
|
+
labels: string[];
|
|
1039
|
+
assignees: string[];
|
|
1040
|
+
authorId: string;
|
|
1041
|
+
url: string;
|
|
1042
|
+
createdAt: Date;
|
|
1043
|
+
updatedAt: Date;
|
|
1044
|
+
closedAt?: Date;
|
|
1045
|
+
}
|
|
1046
|
+
export interface DevIssueListOptions extends PaginationOptions {
|
|
1047
|
+
state?: 'open' | 'closed' | 'all';
|
|
1048
|
+
labels?: string[];
|
|
1049
|
+
assignee?: string;
|
|
1050
|
+
sort?: 'created' | 'updated' | 'comments';
|
|
1051
|
+
}
|
|
1052
|
+
export interface CreatePROptions {
|
|
1053
|
+
title: string;
|
|
1054
|
+
body?: string;
|
|
1055
|
+
head: string;
|
|
1056
|
+
base: string;
|
|
1057
|
+
draft?: boolean;
|
|
1058
|
+
}
|
|
1059
|
+
export interface PRData {
|
|
1060
|
+
id: string;
|
|
1061
|
+
number: number;
|
|
1062
|
+
title: string;
|
|
1063
|
+
body?: string;
|
|
1064
|
+
state: 'open' | 'closed' | 'merged';
|
|
1065
|
+
head: string;
|
|
1066
|
+
base: string;
|
|
1067
|
+
authorId: string;
|
|
1068
|
+
draft: boolean;
|
|
1069
|
+
mergeable?: boolean;
|
|
1070
|
+
url: string;
|
|
1071
|
+
createdAt: Date;
|
|
1072
|
+
updatedAt: Date;
|
|
1073
|
+
mergedAt?: Date;
|
|
1074
|
+
closedAt?: Date;
|
|
1075
|
+
}
|
|
1076
|
+
export interface PRListOptions extends PaginationOptions {
|
|
1077
|
+
state?: 'open' | 'closed' | 'all';
|
|
1078
|
+
sort?: 'created' | 'updated' | 'popularity';
|
|
1079
|
+
direction?: 'asc' | 'desc';
|
|
1080
|
+
}
|
|
1081
|
+
export interface DevCommentData {
|
|
1082
|
+
id: string;
|
|
1083
|
+
body: string;
|
|
1084
|
+
authorId: string;
|
|
1085
|
+
createdAt: Date;
|
|
1086
|
+
updatedAt: Date;
|
|
1087
|
+
}
|
|
1088
|
+
export interface FinanceProvider extends BaseProvider {
|
|
1089
|
+
createInvoice(invoice: CreateInvoiceOptions): Promise<InvoiceData>;
|
|
1090
|
+
getInvoice(invoiceId: string): Promise<InvoiceData | null>;
|
|
1091
|
+
updateInvoice?(invoiceId: string, updates: Partial<CreateInvoiceOptions>): Promise<InvoiceData>;
|
|
1092
|
+
listInvoices(options?: InvoiceListOptions): Promise<PaginatedResult<InvoiceData>>;
|
|
1093
|
+
sendInvoice?(invoiceId: string): Promise<boolean>;
|
|
1094
|
+
voidInvoice?(invoiceId: string): Promise<boolean>;
|
|
1095
|
+
createPayment(payment: CreatePaymentOptions): Promise<PaymentData>;
|
|
1096
|
+
getPayment(paymentId: string): Promise<PaymentData | null>;
|
|
1097
|
+
listPayments(options?: PaymentListOptions): Promise<PaginatedResult<PaymentData>>;
|
|
1098
|
+
refundPayment?(paymentId: string, amount?: number): Promise<RefundData>;
|
|
1099
|
+
createCustomer?(customer: CreateFinanceCustomerOptions): Promise<FinanceCustomerData>;
|
|
1100
|
+
getCustomer?(customerId: string): Promise<FinanceCustomerData | null>;
|
|
1101
|
+
listCustomers?(options?: PaginationOptions): Promise<PaginatedResult<FinanceCustomerData>>;
|
|
1102
|
+
}
|
|
1103
|
+
export interface CreateInvoiceOptions {
|
|
1104
|
+
customerId: string;
|
|
1105
|
+
lineItems: Array<{
|
|
1106
|
+
description: string;
|
|
1107
|
+
quantity: number;
|
|
1108
|
+
unitPrice: number;
|
|
1109
|
+
}>;
|
|
1110
|
+
currency?: string;
|
|
1111
|
+
dueDate?: Date;
|
|
1112
|
+
memo?: string;
|
|
1113
|
+
}
|
|
1114
|
+
export interface InvoiceData {
|
|
1115
|
+
id: string;
|
|
1116
|
+
number: string;
|
|
1117
|
+
customerId: string;
|
|
1118
|
+
status: 'draft' | 'open' | 'paid' | 'void' | 'uncollectible';
|
|
1119
|
+
currency: string;
|
|
1120
|
+
subtotal: number;
|
|
1121
|
+
tax?: number;
|
|
1122
|
+
total: number;
|
|
1123
|
+
amountDue: number;
|
|
1124
|
+
amountPaid: number;
|
|
1125
|
+
dueDate?: Date;
|
|
1126
|
+
paidAt?: Date;
|
|
1127
|
+
url?: string;
|
|
1128
|
+
createdAt: Date;
|
|
1129
|
+
}
|
|
1130
|
+
export interface InvoiceListOptions extends PaginationOptions {
|
|
1131
|
+
customerId?: string;
|
|
1132
|
+
status?: string;
|
|
1133
|
+
since?: Date;
|
|
1134
|
+
until?: Date;
|
|
1135
|
+
}
|
|
1136
|
+
export interface CreatePaymentOptions {
|
|
1137
|
+
amount: number;
|
|
1138
|
+
currency: string;
|
|
1139
|
+
customerId?: string;
|
|
1140
|
+
invoiceId?: string;
|
|
1141
|
+
paymentMethod: string;
|
|
1142
|
+
description?: string;
|
|
1143
|
+
}
|
|
1144
|
+
export interface PaymentData {
|
|
1145
|
+
id: string;
|
|
1146
|
+
amount: number;
|
|
1147
|
+
currency: string;
|
|
1148
|
+
status: 'pending' | 'succeeded' | 'failed' | 'refunded';
|
|
1149
|
+
customerId?: string;
|
|
1150
|
+
invoiceId?: string;
|
|
1151
|
+
paymentMethod: string;
|
|
1152
|
+
description?: string;
|
|
1153
|
+
createdAt: Date;
|
|
1154
|
+
refundedAt?: Date;
|
|
1155
|
+
}
|
|
1156
|
+
export interface PaymentListOptions extends PaginationOptions {
|
|
1157
|
+
customerId?: string;
|
|
1158
|
+
status?: string;
|
|
1159
|
+
since?: Date;
|
|
1160
|
+
until?: Date;
|
|
1161
|
+
}
|
|
1162
|
+
export interface RefundData {
|
|
1163
|
+
id: string;
|
|
1164
|
+
paymentId: string;
|
|
1165
|
+
amount: number;
|
|
1166
|
+
status: string;
|
|
1167
|
+
createdAt: Date;
|
|
1168
|
+
}
|
|
1169
|
+
export interface CreateFinanceCustomerOptions {
|
|
1170
|
+
name: string;
|
|
1171
|
+
email?: string;
|
|
1172
|
+
phone?: string;
|
|
1173
|
+
address?: {
|
|
1174
|
+
line1: string;
|
|
1175
|
+
line2?: string;
|
|
1176
|
+
city: string;
|
|
1177
|
+
state?: string;
|
|
1178
|
+
postalCode: string;
|
|
1179
|
+
country: string;
|
|
1180
|
+
};
|
|
1181
|
+
}
|
|
1182
|
+
export interface FinanceCustomerData {
|
|
1183
|
+
id: string;
|
|
1184
|
+
name: string;
|
|
1185
|
+
email?: string;
|
|
1186
|
+
phone?: string;
|
|
1187
|
+
balance?: number;
|
|
1188
|
+
createdAt: Date;
|
|
1189
|
+
}
|
|
1190
|
+
export interface SupportProvider extends BaseProvider {
|
|
1191
|
+
createTicket(ticket: CreateTicketOptions): Promise<TicketData>;
|
|
1192
|
+
getTicket(ticketId: string): Promise<TicketData | null>;
|
|
1193
|
+
updateTicket(ticketId: string, updates: Partial<CreateTicketOptions>): Promise<TicketData>;
|
|
1194
|
+
listTickets(options?: TicketListOptions): Promise<PaginatedResult<TicketData>>;
|
|
1195
|
+
closeTicket?(ticketId: string): Promise<boolean>;
|
|
1196
|
+
addTicketComment(ticketId: string, body: string, isPublic?: boolean): Promise<TicketCommentData>;
|
|
1197
|
+
listTicketComments(ticketId: string): Promise<TicketCommentData[]>;
|
|
1198
|
+
getUser?(userId: string): Promise<SupportUserData | null>;
|
|
1199
|
+
searchUsers?(query: string): Promise<SupportUserData[]>;
|
|
1200
|
+
}
|
|
1201
|
+
export interface CreateTicketOptions {
|
|
1202
|
+
subject: string;
|
|
1203
|
+
description: string;
|
|
1204
|
+
priority?: 'low' | 'normal' | 'high' | 'urgent';
|
|
1205
|
+
type?: 'question' | 'incident' | 'problem' | 'task';
|
|
1206
|
+
requesterId?: string;
|
|
1207
|
+
assigneeId?: string;
|
|
1208
|
+
tags?: string[];
|
|
1209
|
+
customFields?: Record<string, unknown>;
|
|
1210
|
+
}
|
|
1211
|
+
export interface TicketData {
|
|
1212
|
+
id: string;
|
|
1213
|
+
subject: string;
|
|
1214
|
+
description: string;
|
|
1215
|
+
status: 'new' | 'open' | 'pending' | 'hold' | 'solved' | 'closed';
|
|
1216
|
+
priority: string;
|
|
1217
|
+
type?: string;
|
|
1218
|
+
requesterId?: string;
|
|
1219
|
+
assigneeId?: string;
|
|
1220
|
+
tags: string[];
|
|
1221
|
+
createdAt: Date;
|
|
1222
|
+
updatedAt: Date;
|
|
1223
|
+
solvedAt?: Date;
|
|
1224
|
+
}
|
|
1225
|
+
export interface TicketListOptions extends PaginationOptions {
|
|
1226
|
+
status?: string;
|
|
1227
|
+
priority?: string;
|
|
1228
|
+
assigneeId?: string;
|
|
1229
|
+
requesterId?: string;
|
|
1230
|
+
}
|
|
1231
|
+
export interface TicketCommentData {
|
|
1232
|
+
id: string;
|
|
1233
|
+
ticketId: string;
|
|
1234
|
+
body: string;
|
|
1235
|
+
authorId: string;
|
|
1236
|
+
isPublic: boolean;
|
|
1237
|
+
createdAt: Date;
|
|
1238
|
+
}
|
|
1239
|
+
export interface SupportUserData {
|
|
1240
|
+
id: string;
|
|
1241
|
+
name: string;
|
|
1242
|
+
email: string;
|
|
1243
|
+
role: string;
|
|
1244
|
+
createdAt: Date;
|
|
1245
|
+
}
|
|
1246
|
+
export interface MediaProvider extends BaseProvider {
|
|
1247
|
+
upload(file: Buffer | string, options?: UploadOptions): Promise<MediaAssetData>;
|
|
1248
|
+
get(assetId: string): Promise<MediaAssetData | null>;
|
|
1249
|
+
delete(assetId: string): Promise<boolean>;
|
|
1250
|
+
list(options?: MediaListOptions): Promise<PaginatedResult<MediaAssetData>>;
|
|
1251
|
+
transform?(assetId: string, transformations: TransformOptions): Promise<string>;
|
|
1252
|
+
getUrl(assetId: string, options?: UrlOptions): Promise<string>;
|
|
1253
|
+
}
|
|
1254
|
+
export interface UploadOptions {
|
|
1255
|
+
folder?: string;
|
|
1256
|
+
publicId?: string;
|
|
1257
|
+
resourceType?: 'image' | 'video' | 'raw' | 'auto';
|
|
1258
|
+
tags?: string[];
|
|
1259
|
+
metadata?: Record<string, string>;
|
|
1260
|
+
}
|
|
1261
|
+
export interface MediaAssetData {
|
|
1262
|
+
id: string;
|
|
1263
|
+
publicId: string;
|
|
1264
|
+
url: string;
|
|
1265
|
+
secureUrl: string;
|
|
1266
|
+
resourceType: 'image' | 'video' | 'raw';
|
|
1267
|
+
format: string;
|
|
1268
|
+
bytes: number;
|
|
1269
|
+
width?: number;
|
|
1270
|
+
height?: number;
|
|
1271
|
+
duration?: number;
|
|
1272
|
+
createdAt: Date;
|
|
1273
|
+
}
|
|
1274
|
+
export interface MediaListOptions extends PaginationOptions {
|
|
1275
|
+
resourceType?: string;
|
|
1276
|
+
folder?: string;
|
|
1277
|
+
tags?: string[];
|
|
1278
|
+
}
|
|
1279
|
+
export interface TransformOptions {
|
|
1280
|
+
width?: number;
|
|
1281
|
+
height?: number;
|
|
1282
|
+
crop?: string;
|
|
1283
|
+
quality?: number | 'auto';
|
|
1284
|
+
format?: string;
|
|
1285
|
+
}
|
|
1286
|
+
export interface UrlOptions {
|
|
1287
|
+
transformation?: TransformOptions;
|
|
1288
|
+
signed?: boolean;
|
|
1289
|
+
expiration?: Date;
|
|
1290
|
+
}
|
|
1291
|
+
export interface MarketingProvider extends BaseProvider {
|
|
1292
|
+
listAudiences(): Promise<AudienceData[]>;
|
|
1293
|
+
getAudience(audienceId: string): Promise<AudienceData | null>;
|
|
1294
|
+
addSubscriber(audienceId: string, subscriber: AddSubscriberOptions): Promise<SubscriberData>;
|
|
1295
|
+
updateSubscriber(audienceId: string, email: string, updates: Partial<AddSubscriberOptions>): Promise<SubscriberData>;
|
|
1296
|
+
removeSubscriber?(audienceId: string, email: string): Promise<boolean>;
|
|
1297
|
+
listSubscribers(audienceId: string, options?: SubscriberListOptions): Promise<PaginatedResult<SubscriberData>>;
|
|
1298
|
+
createCampaign(campaign: CreateCampaignOptions): Promise<CampaignData>;
|
|
1299
|
+
getCampaign(campaignId: string): Promise<CampaignData | null>;
|
|
1300
|
+
updateCampaign?(campaignId: string, updates: Partial<CreateCampaignOptions>): Promise<CampaignData>;
|
|
1301
|
+
listCampaigns(options?: CampaignListOptions): Promise<PaginatedResult<CampaignData>>;
|
|
1302
|
+
sendCampaign?(campaignId: string): Promise<boolean>;
|
|
1303
|
+
scheduleCampaign?(campaignId: string, sendAt: Date): Promise<boolean>;
|
|
1304
|
+
getCampaignReport?(campaignId: string): Promise<CampaignReportData>;
|
|
1305
|
+
}
|
|
1306
|
+
export interface AudienceData {
|
|
1307
|
+
id: string;
|
|
1308
|
+
name: string;
|
|
1309
|
+
memberCount: number;
|
|
1310
|
+
createdAt: Date;
|
|
1311
|
+
}
|
|
1312
|
+
export interface AddSubscriberOptions {
|
|
1313
|
+
email: string;
|
|
1314
|
+
firstName?: string;
|
|
1315
|
+
lastName?: string;
|
|
1316
|
+
tags?: string[];
|
|
1317
|
+
mergeFields?: Record<string, unknown>;
|
|
1318
|
+
status?: 'subscribed' | 'pending' | 'unsubscribed';
|
|
1319
|
+
}
|
|
1320
|
+
export interface SubscriberData {
|
|
1321
|
+
id: string;
|
|
1322
|
+
email: string;
|
|
1323
|
+
firstName?: string;
|
|
1324
|
+
lastName?: string;
|
|
1325
|
+
status: string;
|
|
1326
|
+
tags: string[];
|
|
1327
|
+
subscribedAt?: Date;
|
|
1328
|
+
unsubscribedAt?: Date;
|
|
1329
|
+
}
|
|
1330
|
+
export interface SubscriberListOptions extends PaginationOptions {
|
|
1331
|
+
status?: string;
|
|
1332
|
+
sinceSubscribed?: Date;
|
|
1333
|
+
}
|
|
1334
|
+
export interface CreateCampaignOptions {
|
|
1335
|
+
name: string;
|
|
1336
|
+
audienceId: string;
|
|
1337
|
+
subject: string;
|
|
1338
|
+
fromName: string;
|
|
1339
|
+
fromEmail: string;
|
|
1340
|
+
content?: {
|
|
1341
|
+
html?: string;
|
|
1342
|
+
text?: string;
|
|
1343
|
+
};
|
|
1344
|
+
templateId?: string;
|
|
1345
|
+
}
|
|
1346
|
+
export interface CampaignData {
|
|
1347
|
+
id: string;
|
|
1348
|
+
name: string;
|
|
1349
|
+
status: 'draft' | 'scheduled' | 'sending' | 'sent';
|
|
1350
|
+
audienceId: string;
|
|
1351
|
+
subject: string;
|
|
1352
|
+
fromName: string;
|
|
1353
|
+
fromEmail: string;
|
|
1354
|
+
sentAt?: Date;
|
|
1355
|
+
scheduledAt?: Date;
|
|
1356
|
+
createdAt: Date;
|
|
1357
|
+
}
|
|
1358
|
+
export interface CampaignListOptions extends PaginationOptions {
|
|
1359
|
+
status?: string;
|
|
1360
|
+
since?: Date;
|
|
1361
|
+
}
|
|
1362
|
+
export interface CampaignReportData {
|
|
1363
|
+
campaignId: string;
|
|
1364
|
+
sent: number;
|
|
1365
|
+
delivered: number;
|
|
1366
|
+
opens: number;
|
|
1367
|
+
uniqueOpens: number;
|
|
1368
|
+
clicks: number;
|
|
1369
|
+
uniqueClicks: number;
|
|
1370
|
+
bounces: number;
|
|
1371
|
+
unsubscribes: number;
|
|
1372
|
+
openRate: number;
|
|
1373
|
+
clickRate: number;
|
|
1374
|
+
}
|
|
1375
|
+
export interface KnowledgeProvider extends BaseProvider {
|
|
1376
|
+
createPage(page: CreatePageOptions): Promise<PageData>;
|
|
1377
|
+
getPage(pageId: string): Promise<PageData | null>;
|
|
1378
|
+
updatePage(pageId: string, updates: Partial<CreatePageOptions>): Promise<PageData>;
|
|
1379
|
+
deletePage?(pageId: string): Promise<boolean>;
|
|
1380
|
+
listPages(options?: PageListOptions): Promise<PaginatedResult<PageData>>;
|
|
1381
|
+
searchPages(query: string, options?: PaginationOptions): Promise<PaginatedResult<PageData>>;
|
|
1382
|
+
listSpaces?(): Promise<SpaceData[]>;
|
|
1383
|
+
getSpace?(spaceId: string): Promise<SpaceData | null>;
|
|
1384
|
+
}
|
|
1385
|
+
export interface CreatePageOptions {
|
|
1386
|
+
title: string;
|
|
1387
|
+
content?: string;
|
|
1388
|
+
parentId?: string;
|
|
1389
|
+
spaceId?: string;
|
|
1390
|
+
icon?: string;
|
|
1391
|
+
cover?: string;
|
|
1392
|
+
}
|
|
1393
|
+
export interface PageData {
|
|
1394
|
+
id: string;
|
|
1395
|
+
title: string;
|
|
1396
|
+
content?: string;
|
|
1397
|
+
parentId?: string;
|
|
1398
|
+
spaceId?: string;
|
|
1399
|
+
url: string;
|
|
1400
|
+
icon?: string;
|
|
1401
|
+
cover?: string;
|
|
1402
|
+
createdAt: Date;
|
|
1403
|
+
updatedAt: Date;
|
|
1404
|
+
createdBy?: string;
|
|
1405
|
+
updatedBy?: string;
|
|
1406
|
+
}
|
|
1407
|
+
export interface PageListOptions extends PaginationOptions {
|
|
1408
|
+
parentId?: string;
|
|
1409
|
+
spaceId?: string;
|
|
1410
|
+
}
|
|
1411
|
+
export interface SpaceData {
|
|
1412
|
+
id: string;
|
|
1413
|
+
name: string;
|
|
1414
|
+
description?: string;
|
|
1415
|
+
icon?: string;
|
|
1416
|
+
url?: string;
|
|
1417
|
+
}
|
|
1418
|
+
export interface EcommerceProvider extends BaseProvider {
|
|
1419
|
+
createProduct(product: CreateProductOptions): Promise<EcommerceProductData>;
|
|
1420
|
+
getProduct(productId: string): Promise<EcommerceProductData | null>;
|
|
1421
|
+
updateProduct(productId: string, updates: Partial<CreateProductOptions>): Promise<EcommerceProductData>;
|
|
1422
|
+
deleteProduct?(productId: string): Promise<boolean>;
|
|
1423
|
+
listProducts(options?: ProductListOptions): Promise<PaginatedResult<EcommerceProductData>>;
|
|
1424
|
+
getOrder(orderId: string): Promise<OrderData | null>;
|
|
1425
|
+
listOrders(options?: OrderListOptions): Promise<PaginatedResult<OrderData>>;
|
|
1426
|
+
updateOrderStatus?(orderId: string, status: string): Promise<OrderData>;
|
|
1427
|
+
getEcommerceCustomer?(customerId: string): Promise<EcommerceCustomerData | null>;
|
|
1428
|
+
listEcommerceCustomers?(options?: PaginationOptions): Promise<PaginatedResult<EcommerceCustomerData>>;
|
|
1429
|
+
updateInventory?(productId: string, variantId: string, quantity: number): Promise<boolean>;
|
|
1430
|
+
}
|
|
1431
|
+
export interface CreateProductOptions {
|
|
1432
|
+
title: string;
|
|
1433
|
+
description?: string;
|
|
1434
|
+
price: number;
|
|
1435
|
+
compareAtPrice?: number;
|
|
1436
|
+
sku?: string;
|
|
1437
|
+
inventory?: number;
|
|
1438
|
+
images?: string[];
|
|
1439
|
+
variants?: Array<{
|
|
1440
|
+
title: string;
|
|
1441
|
+
price: number;
|
|
1442
|
+
sku?: string;
|
|
1443
|
+
inventory?: number;
|
|
1444
|
+
}>;
|
|
1445
|
+
tags?: string[];
|
|
1446
|
+
status?: 'active' | 'draft' | 'archived';
|
|
1447
|
+
}
|
|
1448
|
+
export interface EcommerceProductData {
|
|
1449
|
+
id: string;
|
|
1450
|
+
title: string;
|
|
1451
|
+
description?: string;
|
|
1452
|
+
price: number;
|
|
1453
|
+
compareAtPrice?: number;
|
|
1454
|
+
sku?: string;
|
|
1455
|
+
inventory?: number;
|
|
1456
|
+
images: string[];
|
|
1457
|
+
variants?: Array<{
|
|
1458
|
+
id: string;
|
|
1459
|
+
title: string;
|
|
1460
|
+
price: number;
|
|
1461
|
+
sku?: string;
|
|
1462
|
+
inventory?: number;
|
|
1463
|
+
}>;
|
|
1464
|
+
tags: string[];
|
|
1465
|
+
status: string;
|
|
1466
|
+
url?: string;
|
|
1467
|
+
createdAt: Date;
|
|
1468
|
+
updatedAt: Date;
|
|
1469
|
+
}
|
|
1470
|
+
export interface ProductListOptions extends PaginationOptions {
|
|
1471
|
+
status?: string;
|
|
1472
|
+
collection?: string;
|
|
1473
|
+
vendor?: string;
|
|
1474
|
+
}
|
|
1475
|
+
export interface OrderData {
|
|
1476
|
+
id: string;
|
|
1477
|
+
orderNumber: string;
|
|
1478
|
+
status: string;
|
|
1479
|
+
financialStatus: string;
|
|
1480
|
+
fulfillmentStatus: string;
|
|
1481
|
+
customerId?: string;
|
|
1482
|
+
email: string;
|
|
1483
|
+
lineItems: Array<{
|
|
1484
|
+
productId: string;
|
|
1485
|
+
variantId?: string;
|
|
1486
|
+
title: string;
|
|
1487
|
+
quantity: number;
|
|
1488
|
+
price: number;
|
|
1489
|
+
}>;
|
|
1490
|
+
subtotal: number;
|
|
1491
|
+
tax: number;
|
|
1492
|
+
shipping: number;
|
|
1493
|
+
total: number;
|
|
1494
|
+
currency: string;
|
|
1495
|
+
shippingAddress?: AddressData;
|
|
1496
|
+
billingAddress?: AddressData;
|
|
1497
|
+
createdAt: Date;
|
|
1498
|
+
updatedAt: Date;
|
|
1499
|
+
}
|
|
1500
|
+
export interface OrderListOptions extends PaginationOptions {
|
|
1501
|
+
status?: string;
|
|
1502
|
+
financialStatus?: string;
|
|
1503
|
+
fulfillmentStatus?: string;
|
|
1504
|
+
customerId?: string;
|
|
1505
|
+
since?: Date;
|
|
1506
|
+
until?: Date;
|
|
1507
|
+
}
|
|
1508
|
+
export interface AddressData {
|
|
1509
|
+
firstName: string;
|
|
1510
|
+
lastName: string;
|
|
1511
|
+
address1: string;
|
|
1512
|
+
address2?: string;
|
|
1513
|
+
city: string;
|
|
1514
|
+
province?: string;
|
|
1515
|
+
postalCode: string;
|
|
1516
|
+
country: string;
|
|
1517
|
+
phone?: string;
|
|
1518
|
+
}
|
|
1519
|
+
export interface EcommerceCustomerData {
|
|
1520
|
+
id: string;
|
|
1521
|
+
email: string;
|
|
1522
|
+
firstName?: string;
|
|
1523
|
+
lastName?: string;
|
|
1524
|
+
phone?: string;
|
|
1525
|
+
ordersCount: number;
|
|
1526
|
+
totalSpent: number;
|
|
1527
|
+
createdAt: Date;
|
|
1528
|
+
}
|
|
1529
|
+
export interface AnalyticsProvider extends BaseProvider {
|
|
1530
|
+
track(event: TrackEventOptions): Promise<boolean>;
|
|
1531
|
+
identify?(userId: string, traits?: Record<string, unknown>): Promise<boolean>;
|
|
1532
|
+
page?(name: string, properties?: Record<string, unknown>): Promise<boolean>;
|
|
1533
|
+
alias?(userId: string, previousId: string): Promise<boolean>;
|
|
1534
|
+
getReport?(reportId: string): Promise<AnalyticsReportData | null>;
|
|
1535
|
+
runQuery?(query: AnalyticsQueryOptions): Promise<AnalyticsQueryResult>;
|
|
1536
|
+
}
|
|
1537
|
+
export interface TrackEventOptions {
|
|
1538
|
+
event: string;
|
|
1539
|
+
userId?: string;
|
|
1540
|
+
anonymousId?: string;
|
|
1541
|
+
properties?: Record<string, unknown>;
|
|
1542
|
+
timestamp?: Date;
|
|
1543
|
+
}
|
|
1544
|
+
export interface AnalyticsQueryOptions {
|
|
1545
|
+
metrics: string[];
|
|
1546
|
+
dimensions?: string[];
|
|
1547
|
+
dateRange: {
|
|
1548
|
+
start: Date;
|
|
1549
|
+
end: Date;
|
|
1550
|
+
};
|
|
1551
|
+
filters?: Array<{
|
|
1552
|
+
dimension: string;
|
|
1553
|
+
operator: string;
|
|
1554
|
+
value: string;
|
|
1555
|
+
}>;
|
|
1556
|
+
orderBy?: Array<{
|
|
1557
|
+
field: string;
|
|
1558
|
+
order: 'asc' | 'desc';
|
|
1559
|
+
}>;
|
|
1560
|
+
limit?: number;
|
|
1561
|
+
}
|
|
1562
|
+
export interface AnalyticsQueryResult {
|
|
1563
|
+
rows: Array<Record<string, unknown>>;
|
|
1564
|
+
totals?: Record<string, number>;
|
|
1565
|
+
rowCount: number;
|
|
1566
|
+
}
|
|
1567
|
+
export interface AnalyticsReportData {
|
|
1568
|
+
id: string;
|
|
1569
|
+
name: string;
|
|
1570
|
+
description?: string;
|
|
1571
|
+
query: AnalyticsQueryOptions;
|
|
1572
|
+
result?: AnalyticsQueryResult;
|
|
1573
|
+
createdAt: Date;
|
|
1574
|
+
updatedAt: Date;
|
|
1575
|
+
}
|
|
1576
|
+
export interface StorageProvider extends BaseProvider {
|
|
1577
|
+
upload(path: string, content: Buffer | string, options?: StorageUploadOptions): Promise<StorageFileData>;
|
|
1578
|
+
download(path: string): Promise<Buffer>;
|
|
1579
|
+
delete(path: string): Promise<boolean>;
|
|
1580
|
+
list(prefix?: string, options?: StorageListOptions): Promise<PaginatedResult<StorageFileData>>;
|
|
1581
|
+
getMetadata(path: string): Promise<StorageFileData | null>;
|
|
1582
|
+
copy?(source: string, destination: string): Promise<StorageFileData>;
|
|
1583
|
+
move?(source: string, destination: string): Promise<StorageFileData>;
|
|
1584
|
+
getSignedUrl?(path: string, expiresIn?: number): Promise<string>;
|
|
1585
|
+
createFolder?(path: string): Promise<boolean>;
|
|
1586
|
+
}
|
|
1587
|
+
export interface StorageUploadOptions {
|
|
1588
|
+
contentType?: string;
|
|
1589
|
+
metadata?: Record<string, string>;
|
|
1590
|
+
acl?: 'private' | 'public-read';
|
|
1591
|
+
}
|
|
1592
|
+
export interface StorageFileData {
|
|
1593
|
+
path: string;
|
|
1594
|
+
name: string;
|
|
1595
|
+
size: number;
|
|
1596
|
+
contentType?: string;
|
|
1597
|
+
etag?: string;
|
|
1598
|
+
lastModified: Date;
|
|
1599
|
+
isFolder: boolean;
|
|
1600
|
+
url?: string;
|
|
1601
|
+
}
|
|
1602
|
+
export interface StorageListOptions extends PaginationOptions {
|
|
1603
|
+
delimiter?: string;
|
|
1604
|
+
recursive?: boolean;
|
|
1605
|
+
}
|
|
1606
|
+
export interface VideoConferencingProvider extends BaseProvider {
|
|
1607
|
+
createMeeting(meeting: CreateMeetingOptions): Promise<MeetingData>;
|
|
1608
|
+
getMeeting(meetingId: string): Promise<MeetingData | null>;
|
|
1609
|
+
updateMeeting?(meetingId: string, updates: Partial<CreateMeetingOptions>): Promise<MeetingData>;
|
|
1610
|
+
deleteMeeting?(meetingId: string): Promise<boolean>;
|
|
1611
|
+
listMeetings(options?: MeetingListOptions): Promise<PaginatedResult<MeetingData>>;
|
|
1612
|
+
endMeeting?(meetingId: string): Promise<boolean>;
|
|
1613
|
+
getParticipants?(meetingId: string): Promise<ParticipantData[]>;
|
|
1614
|
+
getRecordings?(meetingId: string): Promise<MeetingRecordingData[]>;
|
|
1615
|
+
}
|
|
1616
|
+
export interface CreateMeetingOptions {
|
|
1617
|
+
topic: string;
|
|
1618
|
+
startTime?: Date;
|
|
1619
|
+
duration?: number;
|
|
1620
|
+
timezone?: string;
|
|
1621
|
+
agenda?: string;
|
|
1622
|
+
password?: string;
|
|
1623
|
+
settings?: {
|
|
1624
|
+
hostVideo?: boolean;
|
|
1625
|
+
participantVideo?: boolean;
|
|
1626
|
+
joinBeforeHost?: boolean;
|
|
1627
|
+
muteUponEntry?: boolean;
|
|
1628
|
+
waitingRoom?: boolean;
|
|
1629
|
+
autoRecording?: 'none' | 'local' | 'cloud';
|
|
1630
|
+
};
|
|
1631
|
+
}
|
|
1632
|
+
export interface MeetingData {
|
|
1633
|
+
id: string;
|
|
1634
|
+
topic: string;
|
|
1635
|
+
startTime?: Date;
|
|
1636
|
+
duration?: number;
|
|
1637
|
+
timezone?: string;
|
|
1638
|
+
agenda?: string;
|
|
1639
|
+
joinUrl: string;
|
|
1640
|
+
hostId: string;
|
|
1641
|
+
status: 'waiting' | 'started' | 'finished';
|
|
1642
|
+
password?: string;
|
|
1643
|
+
createdAt: Date;
|
|
1644
|
+
}
|
|
1645
|
+
export interface MeetingListOptions extends PaginationOptions {
|
|
1646
|
+
type?: 'scheduled' | 'live' | 'upcoming' | 'previous';
|
|
1647
|
+
}
|
|
1648
|
+
export interface ParticipantData {
|
|
1649
|
+
id: string;
|
|
1650
|
+
name: string;
|
|
1651
|
+
email?: string;
|
|
1652
|
+
joinTime: Date;
|
|
1653
|
+
leaveTime?: Date;
|
|
1654
|
+
duration?: number;
|
|
1655
|
+
}
|
|
1656
|
+
export interface MeetingRecordingData {
|
|
1657
|
+
id: string;
|
|
1658
|
+
meetingId: string;
|
|
1659
|
+
type: 'video' | 'audio' | 'transcript';
|
|
1660
|
+
url: string;
|
|
1661
|
+
size?: number;
|
|
1662
|
+
duration?: number;
|
|
1663
|
+
createdAt: Date;
|
|
1664
|
+
}
|
|
1665
|
+
export interface FormsProvider extends BaseProvider {
|
|
1666
|
+
createForm(form: CreateFormOptions): Promise<FormData>;
|
|
1667
|
+
getForm(formId: string): Promise<FormData | null>;
|
|
1668
|
+
updateForm?(formId: string, updates: Partial<CreateFormOptions>): Promise<FormData>;
|
|
1669
|
+
deleteForm?(formId: string): Promise<boolean>;
|
|
1670
|
+
listForms(options?: PaginationOptions): Promise<PaginatedResult<FormData>>;
|
|
1671
|
+
getResponses(formId: string, options?: ResponseListOptions): Promise<PaginatedResult<FormResponseData>>;
|
|
1672
|
+
getResponse?(formId: string, responseId: string): Promise<FormResponseData | null>;
|
|
1673
|
+
}
|
|
1674
|
+
export interface CreateFormOptions {
|
|
1675
|
+
title: string;
|
|
1676
|
+
description?: string;
|
|
1677
|
+
fields: FormFieldOption[];
|
|
1678
|
+
settings?: {
|
|
1679
|
+
isPublic?: boolean;
|
|
1680
|
+
submitOnce?: boolean;
|
|
1681
|
+
showProgressBar?: boolean;
|
|
1682
|
+
confirmationMessage?: string;
|
|
1683
|
+
redirectUrl?: string;
|
|
1684
|
+
};
|
|
1685
|
+
}
|
|
1686
|
+
export interface FormFieldOption {
|
|
1687
|
+
type: 'text' | 'email' | 'number' | 'date' | 'dropdown' | 'checkbox' | 'radio' | 'textarea' | 'file';
|
|
1688
|
+
title: string;
|
|
1689
|
+
description?: string;
|
|
1690
|
+
required?: boolean;
|
|
1691
|
+
choices?: string[];
|
|
1692
|
+
validation?: {
|
|
1693
|
+
min?: number;
|
|
1694
|
+
max?: number;
|
|
1695
|
+
pattern?: string;
|
|
1696
|
+
};
|
|
1697
|
+
}
|
|
1698
|
+
export interface FormData {
|
|
1699
|
+
id: string;
|
|
1700
|
+
title: string;
|
|
1701
|
+
description?: string;
|
|
1702
|
+
fields: FormFieldOption[];
|
|
1703
|
+
responseCount: number;
|
|
1704
|
+
url: string;
|
|
1705
|
+
createdAt: Date;
|
|
1706
|
+
updatedAt: Date;
|
|
1707
|
+
}
|
|
1708
|
+
export interface ResponseListOptions extends PaginationOptions {
|
|
1709
|
+
since?: Date;
|
|
1710
|
+
until?: Date;
|
|
1711
|
+
completed?: boolean;
|
|
1712
|
+
}
|
|
1713
|
+
export interface FormResponseData {
|
|
1714
|
+
id: string;
|
|
1715
|
+
formId: string;
|
|
1716
|
+
answers: Array<{
|
|
1717
|
+
fieldId: string;
|
|
1718
|
+
value: unknown;
|
|
1719
|
+
}>;
|
|
1720
|
+
submittedAt: Date;
|
|
1721
|
+
metadata?: {
|
|
1722
|
+
ip?: string;
|
|
1723
|
+
userAgent?: string;
|
|
1724
|
+
referer?: string;
|
|
1725
|
+
};
|
|
1726
|
+
}
|
|
1727
|
+
/**
|
|
1728
|
+
* Provider factory function
|
|
1729
|
+
*/
|
|
1730
|
+
export type ProviderFactory<T extends BaseProvider> = (config: ProviderConfig) => Promise<T>;
|
|
1731
|
+
/**
|
|
1732
|
+
* Registered provider entry
|
|
1733
|
+
*/
|
|
1734
|
+
export interface RegisteredProvider<T extends BaseProvider = BaseProvider> {
|
|
1735
|
+
info: ProviderInfo;
|
|
1736
|
+
factory: ProviderFactory<T>;
|
|
1737
|
+
}
|
|
1738
|
+
/**
|
|
1739
|
+
* Provider registry for discovering and instantiating providers
|
|
1740
|
+
*/
|
|
1741
|
+
export interface ProviderRegistry {
|
|
1742
|
+
/** Register a provider */
|
|
1743
|
+
register<T extends BaseProvider>(info: ProviderInfo, factory: ProviderFactory<T>): void;
|
|
1744
|
+
/** Get provider by ID */
|
|
1745
|
+
get<T extends BaseProvider>(providerId: string): RegisteredProvider<T> | undefined;
|
|
1746
|
+
/** List providers by category */
|
|
1747
|
+
list(category?: ProviderCategory): RegisteredProvider[];
|
|
1748
|
+
/** Create provider instance */
|
|
1749
|
+
create<T extends BaseProvider>(providerId: string, config: ProviderConfig): Promise<T>;
|
|
1750
|
+
/** Check if provider exists */
|
|
1751
|
+
has(providerId: string): boolean;
|
|
1752
|
+
}
|
|
1753
|
+
//# sourceMappingURL=types.d.ts.map
|