@decaf-ts/integrations 0.11.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -0
- package/dist/integrations.cjs +1 -1
- package/dist/integrations.cjs.map +1 -1
- package/dist/integrations.js +1 -1
- package/dist/integrations.js.map +1 -1
- package/docker/mailpit-compose.yml +17 -0
- package/docker/postgres-compose.yml +26 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +12 -23
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs +26 -25
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +12 -23
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +11 -16
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +14 -16
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -1
- package/lib/cjs/calendar/environment.cjs +48 -0
- package/lib/cjs/calendar/environment.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +338 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/index.cjs +20 -0
- package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
- package/lib/cjs/comms/discord/DiscordService.cjs +318 -0
- package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
- package/lib/cjs/comms/discord/index.cjs +19 -0
- package/lib/cjs/comms/discord/index.cjs.map +1 -0
- package/lib/cjs/comms/email/EmailService.cjs +376 -0
- package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
- package/lib/cjs/comms/email/index.cjs +29 -0
- package/lib/cjs/comms/email/index.cjs.map +1 -0
- package/lib/cjs/comms/email/mime.cjs +225 -0
- package/lib/cjs/comms/email/mime.cjs.map +1 -0
- package/lib/cjs/comms/email/smtp.cjs +204 -0
- package/lib/cjs/comms/email/smtp.cjs.map +1 -0
- package/lib/cjs/comms/environment.cjs +79 -0
- package/lib/cjs/comms/environment.cjs.map +1 -0
- package/lib/cjs/comms/gmail/GmailService.cjs +235 -0
- package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
- package/lib/cjs/comms/gmail/index.cjs +24 -0
- package/lib/cjs/comms/gmail/index.cjs.map +1 -0
- package/lib/cjs/comms/index.cjs +34 -0
- package/lib/cjs/comms/index.cjs.map +1 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +325 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
- package/lib/cjs/comms/outlook/index.cjs +19 -0
- package/lib/cjs/comms/outlook/index.cjs.map +1 -0
- package/lib/cjs/comms/slack/SlackService.cjs +264 -0
- package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
- package/lib/cjs/comms/slack/index.cjs +24 -0
- package/lib/cjs/comms/slack/index.cjs.map +1 -0
- package/lib/cjs/comms/teams/TeamsService.cjs +212 -0
- package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
- package/lib/cjs/comms/teams/index.cjs +24 -0
- package/lib/cjs/comms/teams/index.cjs.map +1 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs +196 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
- package/lib/cjs/comms/telegram/index.cjs +24 -0
- package/lib/cjs/comms/telegram/index.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +274 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/index.cjs +19 -0
- package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
- package/lib/cjs/devops/environment.cjs +43 -0
- package/lib/cjs/devops/environment.cjs.map +1 -0
- package/lib/cjs/devops/github/GithubService.cjs +302 -0
- package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
- package/lib/cjs/devops/github/index.cjs +24 -0
- package/lib/cjs/devops/github/index.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs +282 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/index.cjs +24 -0
- package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
- package/lib/cjs/devops/index.cjs +28 -0
- package/lib/cjs/devops/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -1
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/io/airtable/AirtableService.cjs +266 -0
- package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
- package/lib/cjs/io/airtable/index.cjs +24 -0
- package/lib/cjs/io/airtable/index.cjs.map +1 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs +317 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
- package/lib/cjs/io/confluence/index.cjs +19 -0
- package/lib/cjs/io/confluence/index.cjs.map +1 -0
- package/lib/cjs/io/environment.cjs +74 -0
- package/lib/cjs/io/environment.cjs.map +1 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +275 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
- package/lib/cjs/io/google-docs/index.cjs +19 -0
- package/lib/cjs/io/google-docs/index.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +288 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/index.cjs +24 -0
- package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs +143 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
- package/lib/cjs/io/graphql/index.cjs +24 -0
- package/lib/cjs/io/graphql/index.cjs.map +1 -0
- package/lib/cjs/io/index.cjs +35 -0
- package/lib/cjs/io/index.cjs.map +1 -0
- package/lib/cjs/io/jira/JiraService.cjs +354 -0
- package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
- package/lib/cjs/io/jira/index.cjs +19 -0
- package/lib/cjs/io/jira/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +253 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/index.cjs +19 -0
- package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +261 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +19 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +205 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/index.cjs +25 -0
- package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +1 -0
- package/lib/cjs/namespaces/index.cjs.map +1 -1
- package/lib/cjs/namespaces/models/credential.model.cjs +115 -0
- package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/group.model.cjs +2 -0
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/index.cjs +1 -0
- package/lib/cjs/namespaces/models/index.cjs.map +1 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -0
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -0
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/role.model.cjs +2 -0
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/user.model.cjs +2 -0
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
- package/lib/cjs/namespaces/rls/index.cjs +28 -0
- package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +66 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +269 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs +79 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs +719 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs +4 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs +70 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
- package/lib/cjs/namespaces/services/credential.service.cjs +327 -0
- package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +1 -0
- package/lib/cjs/namespaces/services/index.cjs.map +1 -1
- package/lib/cjs/namespaces/types.cjs +6 -1
- package/lib/cjs/namespaces/types.cjs.map +1 -1
- package/lib/cjs/redis/adapter.cjs +7 -1
- package/lib/cjs/redis/adapter.cjs.map +1 -1
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +80 -0
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -15
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -16
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/core/SecretReference.cjs +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +28 -0
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs +420 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +25 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/fs/index.cjs +27 -0
- package/lib/cjs/secrets/fs/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -16
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
- package/lib/cjs/secrets/index.cjs +2 -0
- package/lib/cjs/secrets/index.cjs.map +1 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs +335 -43
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/model/Secret.cjs +83 -5
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -16
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -16
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
- package/lib/cjs/shared/environmentValue.cjs +24 -0
- package/lib/cjs/shared/environmentValue.cjs.map +1 -1
- package/lib/cjs/shared/http/HttpApiService.cjs +190 -0
- package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs +150 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
- package/lib/cjs/shared/http/index.cjs +28 -0
- package/lib/cjs/shared/http/index.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +13 -21
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +26 -25
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +13 -21
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +12 -14
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +14 -16
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
- package/lib/esm/calendar/environment.js +44 -0
- package/lib/esm/calendar/environment.js.map +1 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +333 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
- package/lib/esm/calendar/google-calendar/index.js +3 -0
- package/lib/esm/calendar/google-calendar/index.js.map +1 -0
- package/lib/esm/comms/discord/DiscordService.js +313 -0
- package/lib/esm/comms/discord/DiscordService.js.map +1 -0
- package/lib/esm/comms/discord/index.js +2 -0
- package/lib/esm/comms/discord/index.js.map +1 -0
- package/lib/esm/comms/email/EmailService.js +338 -0
- package/lib/esm/comms/email/EmailService.js.map +1 -0
- package/lib/esm/comms/email/index.js +12 -0
- package/lib/esm/comms/email/index.js.map +1 -0
- package/lib/esm/comms/email/mime.js +218 -0
- package/lib/esm/comms/email/mime.js.map +1 -0
- package/lib/esm/comms/email/smtp.js +166 -0
- package/lib/esm/comms/email/smtp.js.map +1 -0
- package/lib/esm/comms/environment.js +75 -0
- package/lib/esm/comms/environment.js.map +1 -0
- package/lib/esm/comms/gmail/GmailService.js +230 -0
- package/lib/esm/comms/gmail/GmailService.js.map +1 -0
- package/lib/esm/comms/gmail/index.js +7 -0
- package/lib/esm/comms/gmail/index.js.map +1 -0
- package/lib/esm/comms/index.js +17 -0
- package/lib/esm/comms/index.js.map +1 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +320 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
- package/lib/esm/comms/outlook/index.js +2 -0
- package/lib/esm/comms/outlook/index.js.map +1 -0
- package/lib/esm/comms/slack/SlackService.js +259 -0
- package/lib/esm/comms/slack/SlackService.js.map +1 -0
- package/lib/esm/comms/slack/index.js +7 -0
- package/lib/esm/comms/slack/index.js.map +1 -0
- package/lib/esm/comms/teams/TeamsService.js +204 -0
- package/lib/esm/comms/teams/TeamsService.js.map +1 -0
- package/lib/esm/comms/teams/index.js +7 -0
- package/lib/esm/comms/teams/index.js.map +1 -0
- package/lib/esm/comms/telegram/TelegramService.js +191 -0
- package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
- package/lib/esm/comms/telegram/index.js +7 -0
- package/lib/esm/comms/telegram/index.js.map +1 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js +269 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
- package/lib/esm/comms/whatsapp/index.js +2 -0
- package/lib/esm/comms/whatsapp/index.js.map +1 -0
- package/lib/esm/devops/environment.js +39 -0
- package/lib/esm/devops/environment.js.map +1 -0
- package/lib/esm/devops/github/GithubService.js +297 -0
- package/lib/esm/devops/github/GithubService.js.map +1 -0
- package/lib/esm/devops/github/index.js +7 -0
- package/lib/esm/devops/github/index.js.map +1 -0
- package/lib/esm/devops/gitlab/GitlabService.js +277 -0
- package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
- package/lib/esm/devops/gitlab/index.js +7 -0
- package/lib/esm/devops/gitlab/index.js.map +1 -0
- package/lib/esm/devops/index.js +11 -0
- package/lib/esm/devops/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +2 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +2 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/io/airtable/AirtableService.js +261 -0
- package/lib/esm/io/airtable/AirtableService.js.map +1 -0
- package/lib/esm/io/airtable/index.js +7 -0
- package/lib/esm/io/airtable/index.js.map +1 -0
- package/lib/esm/io/confluence/ConfluenceService.js +312 -0
- package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
- package/lib/esm/io/confluence/index.js +2 -0
- package/lib/esm/io/confluence/index.js.map +1 -0
- package/lib/esm/io/environment.js +70 -0
- package/lib/esm/io/environment.js.map +1 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js +270 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
- package/lib/esm/io/google-docs/index.js +2 -0
- package/lib/esm/io/google-docs/index.js.map +1 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +283 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
- package/lib/esm/io/google-sheets/index.js +7 -0
- package/lib/esm/io/google-sheets/index.js.map +1 -0
- package/lib/esm/io/graphql/GraphqlService.js +138 -0
- package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
- package/lib/esm/io/graphql/index.js +7 -0
- package/lib/esm/io/graphql/index.js.map +1 -0
- package/lib/esm/io/index.js +18 -0
- package/lib/esm/io/index.js.map +1 -0
- package/lib/esm/io/jira/JiraService.js +349 -0
- package/lib/esm/io/jira/JiraService.js.map +1 -0
- package/lib/esm/io/jira/index.js +2 -0
- package/lib/esm/io/jira/index.js.map +1 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +248 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
- package/lib/esm/io/microsoft-excel/index.js +2 -0
- package/lib/esm/io/microsoft-excel/index.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +256 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/index.js +2 -0
- package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +200 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
- package/lib/esm/io/spreadsheet/index.js +8 -0
- package/lib/esm/io/spreadsheet/index.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -0
- package/lib/esm/namespaces/index.js.map +1 -1
- package/lib/esm/namespaces/models/credential.model.js +106 -0
- package/lib/esm/namespaces/models/credential.model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +2 -0
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +2 -0
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
- package/lib/esm/namespaces/models/group.model.js +2 -0
- package/lib/esm/namespaces/models/group.model.js.map +1 -1
- package/lib/esm/namespaces/models/index.js +1 -0
- package/lib/esm/namespaces/models/index.js.map +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +2 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
- package/lib/esm/namespaces/models/permission.model.js +2 -0
- package/lib/esm/namespaces/models/permission.model.js.map +1 -1
- package/lib/esm/namespaces/models/principal.model.js +2 -0
- package/lib/esm/namespaces/models/principal.model.js.map +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +2 -0
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +2 -0
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +2 -0
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +2 -0
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
- package/lib/esm/namespaces/models/role.model.js +2 -0
- package/lib/esm/namespaces/models/role.model.js.map +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +2 -0
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +2 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +2 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +2 -0
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
- package/lib/esm/namespaces/models/user.model.js +2 -0
- package/lib/esm/namespaces/models/user.model.js.map +1 -1
- package/lib/esm/namespaces/rls/index.js +11 -0
- package/lib/esm/namespaces/rls/index.js.map +1 -0
- package/lib/esm/namespaces/rls/principal-resolver.js +61 -0
- package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +261 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.constants.js +75 -0
- package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.template.js +711 -0
- package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.types.js +9 -0
- package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
- package/lib/esm/namespaces/rls/session-binding.js +65 -0
- package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
- package/lib/esm/namespaces/services/credential.service.js +322 -0
- package/lib/esm/namespaces/services/credential.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -0
- package/lib/esm/namespaces/services/index.js.map +1 -1
- package/lib/esm/namespaces/types.js +6 -0
- package/lib/esm/namespaces/types.js.map +1 -1
- package/lib/esm/redis/adapter.js +7 -1
- package/lib/esm/redis/adapter.js.map +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js +74 -0
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +3 -13
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +2 -13
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -0
- package/lib/esm/secrets/core/SecretReference.js.map +1 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js +24 -0
- package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretService.js +412 -0
- package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +21 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/fs/index.js +10 -0
- package/lib/esm/secrets/fs/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +2 -13
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
- package/lib/esm/secrets/index.js +2 -0
- package/lib/esm/secrets/index.js.map +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +337 -42
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
- package/lib/esm/secrets/model/Secret.js +86 -7
- package/lib/esm/secrets/model/Secret.js.map +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +2 -13
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +2 -13
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
- package/lib/esm/shared/environmentValue.js +24 -0
- package/lib/esm/shared/environmentValue.js.map +1 -1
- package/lib/esm/shared/http/HttpApiService.js +181 -0
- package/lib/esm/shared/http/HttpApiService.js.map +1 -0
- package/lib/esm/shared/http/hermeticBoot.js +146 -0
- package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
- package/lib/esm/shared/http/index.js +11 -0
- package/lib/esm/shared/http/index.js.map +1 -0
- package/lib/types/blob/azure/AzureBlobStoreService.d.cts +7 -7
- package/lib/types/blob/azure/AzureBlobStoreService.d.mts +7 -7
- package/lib/types/blob/core/BlobStoreService.d.cts +28 -27
- package/lib/types/blob/core/BlobStoreService.d.mts +28 -27
- package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +7 -7
- package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +7 -7
- package/lib/types/blob/s3/S3BlobStoreService.d.cts +9 -1
- package/lib/types/blob/s3/S3BlobStoreService.d.mts +9 -1
- package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +11 -15
- package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +11 -15
- package/lib/types/calendar/environment.d.cts +48 -0
- package/lib/types/calendar/environment.d.mts +48 -0
- package/lib/types/calendar/google-calendar/GoogleCalendarService.d.cts +316 -0
- package/lib/types/calendar/google-calendar/GoogleCalendarService.d.mts +316 -0
- package/lib/types/calendar/google-calendar/index.d.cts +2 -0
- package/lib/types/calendar/google-calendar/index.d.mts +2 -0
- package/lib/types/comms/discord/DiscordService.d.cts +285 -0
- package/lib/types/comms/discord/DiscordService.d.mts +285 -0
- package/lib/types/comms/discord/index.d.cts +1 -0
- package/lib/types/comms/discord/index.d.mts +1 -0
- package/lib/types/comms/email/EmailService.d.cts +184 -0
- package/lib/types/comms/email/EmailService.d.mts +184 -0
- package/lib/types/comms/email/index.d.cts +11 -0
- package/lib/types/comms/email/index.d.mts +11 -0
- package/lib/types/comms/email/mime.d.cts +84 -0
- package/lib/types/comms/email/mime.d.mts +84 -0
- package/lib/types/comms/email/smtp.d.cts +107 -0
- package/lib/types/comms/email/smtp.d.mts +107 -0
- package/lib/types/comms/environment.d.cts +110 -0
- package/lib/types/comms/environment.d.mts +110 -0
- package/lib/types/comms/gmail/GmailService.d.cts +190 -0
- package/lib/types/comms/gmail/GmailService.d.mts +190 -0
- package/lib/types/comms/gmail/index.d.cts +6 -0
- package/lib/types/comms/gmail/index.d.mts +6 -0
- package/lib/types/comms/index.d.cts +16 -0
- package/lib/types/comms/index.d.mts +16 -0
- package/lib/types/comms/outlook/MicrosoftOutlookService.d.cts +282 -0
- package/lib/types/comms/outlook/MicrosoftOutlookService.d.mts +282 -0
- package/lib/types/comms/outlook/index.d.cts +1 -0
- package/lib/types/comms/outlook/index.d.mts +1 -0
- package/lib/types/comms/slack/SlackService.d.cts +259 -0
- package/lib/types/comms/slack/SlackService.d.mts +259 -0
- package/lib/types/comms/slack/index.d.cts +6 -0
- package/lib/types/comms/slack/index.d.mts +6 -0
- package/lib/types/comms/teams/TeamsService.d.cts +172 -0
- package/lib/types/comms/teams/TeamsService.d.mts +172 -0
- package/lib/types/comms/teams/index.d.cts +6 -0
- package/lib/types/comms/teams/index.d.mts +6 -0
- package/lib/types/comms/telegram/TelegramService.d.cts +202 -0
- package/lib/types/comms/telegram/TelegramService.d.mts +202 -0
- package/lib/types/comms/telegram/index.d.cts +6 -0
- package/lib/types/comms/telegram/index.d.mts +6 -0
- package/lib/types/comms/whatsapp/WhatsAppService.d.cts +258 -0
- package/lib/types/comms/whatsapp/WhatsAppService.d.mts +258 -0
- package/lib/types/comms/whatsapp/index.d.cts +1 -0
- package/lib/types/comms/whatsapp/index.d.mts +1 -0
- package/lib/types/devops/environment.d.cts +62 -0
- package/lib/types/devops/environment.d.mts +62 -0
- package/lib/types/devops/github/GithubService.d.cts +287 -0
- package/lib/types/devops/github/GithubService.d.mts +287 -0
- package/lib/types/devops/github/index.d.cts +6 -0
- package/lib/types/devops/github/index.d.mts +6 -0
- package/lib/types/devops/gitlab/GitlabService.d.cts +277 -0
- package/lib/types/devops/gitlab/GitlabService.d.mts +277 -0
- package/lib/types/devops/gitlab/index.d.cts +6 -0
- package/lib/types/devops/gitlab/index.d.mts +6 -0
- package/lib/types/devops/index.d.cts +10 -0
- package/lib/types/devops/index.d.mts +10 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/io/airtable/AirtableService.d.cts +268 -0
- package/lib/types/io/airtable/AirtableService.d.mts +268 -0
- package/lib/types/io/airtable/index.d.cts +6 -0
- package/lib/types/io/airtable/index.d.mts +6 -0
- package/lib/types/io/confluence/ConfluenceService.d.cts +250 -0
- package/lib/types/io/confluence/ConfluenceService.d.mts +250 -0
- package/lib/types/io/confluence/index.d.cts +1 -0
- package/lib/types/io/confluence/index.d.mts +1 -0
- package/lib/types/io/environment.d.cts +107 -0
- package/lib/types/io/environment.d.mts +107 -0
- package/lib/types/io/google-docs/GoogleDocsService.d.cts +188 -0
- package/lib/types/io/google-docs/GoogleDocsService.d.mts +188 -0
- package/lib/types/io/google-docs/index.d.cts +1 -0
- package/lib/types/io/google-docs/index.d.mts +1 -0
- package/lib/types/io/google-sheets/GoogleSheetsService.d.cts +204 -0
- package/lib/types/io/google-sheets/GoogleSheetsService.d.mts +204 -0
- package/lib/types/io/google-sheets/index.d.cts +6 -0
- package/lib/types/io/google-sheets/index.d.mts +6 -0
- package/lib/types/io/graphql/GraphqlService.d.cts +173 -0
- package/lib/types/io/graphql/GraphqlService.d.mts +173 -0
- package/lib/types/io/graphql/index.d.cts +6 -0
- package/lib/types/io/graphql/index.d.mts +6 -0
- package/lib/types/io/index.d.cts +17 -0
- package/lib/types/io/index.d.mts +17 -0
- package/lib/types/io/jira/JiraService.d.cts +300 -0
- package/lib/types/io/jira/JiraService.d.mts +300 -0
- package/lib/types/io/jira/index.d.cts +1 -0
- package/lib/types/io/jira/index.d.mts +1 -0
- package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.cts +230 -0
- package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.mts +230 -0
- package/lib/types/io/microsoft-excel/index.d.cts +1 -0
- package/lib/types/io/microsoft-excel/index.d.mts +1 -0
- package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.cts +226 -0
- package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.mts +226 -0
- package/lib/types/io/microsoft-sharepoint/index.d.cts +1 -0
- package/lib/types/io/microsoft-sharepoint/index.d.mts +1 -0
- package/lib/types/io/spreadsheet/SpreadsheetService.d.cts +144 -0
- package/lib/types/io/spreadsheet/SpreadsheetService.d.mts +144 -0
- package/lib/types/io/spreadsheet/index.d.cts +7 -0
- package/lib/types/io/spreadsheet/index.d.mts +7 -0
- package/lib/types/namespaces/index.d.cts +1 -0
- package/lib/types/namespaces/index.d.mts +1 -0
- package/lib/types/namespaces/models/credential.model.d.cts +23 -0
- package/lib/types/namespaces/models/credential.model.d.mts +23 -0
- package/lib/types/namespaces/models/index.d.cts +1 -0
- package/lib/types/namespaces/models/index.d.mts +1 -0
- package/lib/types/namespaces/rls/index.d.cts +10 -0
- package/lib/types/namespaces/rls/index.d.mts +10 -0
- package/lib/types/namespaces/rls/principal-resolver.d.cts +47 -0
- package/lib/types/namespaces/rls/principal-resolver.d.mts +47 -0
- package/lib/types/namespaces/rls/rls-bootstrap.service.d.cts +157 -0
- package/lib/types/namespaces/rls/rls-bootstrap.service.d.mts +157 -0
- package/lib/types/namespaces/rls/rls.constants.d.cts +52 -0
- package/lib/types/namespaces/rls/rls.constants.d.mts +52 -0
- package/lib/types/namespaces/rls/rls.template.d.cts +42 -0
- package/lib/types/namespaces/rls/rls.template.d.mts +42 -0
- package/lib/types/namespaces/rls/rls.types.d.cts +77 -0
- package/lib/types/namespaces/rls/rls.types.d.mts +77 -0
- package/lib/types/namespaces/rls/session-binding.d.cts +87 -0
- package/lib/types/namespaces/rls/session-binding.d.mts +87 -0
- package/lib/types/namespaces/services/credential.service.d.cts +175 -0
- package/lib/types/namespaces/services/credential.service.d.mts +175 -0
- package/lib/types/namespaces/services/index.d.cts +1 -0
- package/lib/types/namespaces/services/index.d.mts +1 -0
- package/lib/types/namespaces/types.d.cts +37 -0
- package/lib/types/namespaces/types.d.mts +37 -0
- package/lib/types/redis/adapter.d.cts +2 -0
- package/lib/types/redis/adapter.d.mts +2 -0
- package/lib/types/redis/types.d.cts +27 -2
- package/lib/types/redis/types.d.mts +27 -2
- package/lib/types/secrets/InfraCredentialBootstrap.d.cts +100 -0
- package/lib/types/secrets/InfraCredentialBootstrap.d.mts +100 -0
- package/lib/types/secrets/core/SecretTypes.d.cts +15 -1
- package/lib/types/secrets/core/SecretTypes.d.mts +15 -1
- package/lib/types/secrets/fs/FsSecretEnvironment.d.cts +42 -0
- package/lib/types/secrets/fs/FsSecretEnvironment.d.mts +42 -0
- package/lib/types/secrets/fs/FsSecretService.d.cts +207 -0
- package/lib/types/secrets/fs/FsSecretService.d.mts +207 -0
- package/lib/types/secrets/fs/FsSecretServiceConfig.d.cts +37 -0
- package/lib/types/secrets/fs/FsSecretServiceConfig.d.mts +37 -0
- package/lib/types/secrets/fs/index.d.cts +9 -0
- package/lib/types/secrets/fs/index.d.mts +9 -0
- package/lib/types/secrets/index.d.cts +2 -0
- package/lib/types/secrets/index.d.mts +2 -0
- package/lib/types/secrets/model/ModelSecretService.d.cts +190 -1
- package/lib/types/secrets/model/ModelSecretService.d.mts +190 -1
- package/lib/types/secrets/model/Secret.d.cts +44 -3
- package/lib/types/secrets/model/Secret.d.mts +44 -3
- package/lib/types/shared/environmentValue.d.cts +24 -0
- package/lib/types/shared/environmentValue.d.mts +24 -0
- package/lib/types/shared/http/HttpApiService.d.cts +193 -0
- package/lib/types/shared/http/HttpApiService.d.mts +193 -0
- package/lib/types/shared/http/hermeticBoot.d.cts +84 -0
- package/lib/types/shared/http/hermeticBoot.d.mts +84 -0
- package/lib/types/shared/http/index.d.cts +10 -0
- package/lib/types/shared/http/index.d.mts +10 -0
- package/package.json +279 -6
- package/sql/002_rls.sql +660 -15
- package/sql/004_credentials.sql +46 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.cts";
|
|
2
|
+
/**
|
|
3
|
+
* @description Configuration for the Teams service
|
|
4
|
+
* @summary Extends {@link HttpApiServiceConfig} with the Microsoft Graph
|
|
5
|
+
* access token (required for channel messaging and listings, optional when
|
|
6
|
+
* only webhooks are used) and the incoming-webhook URL. When omitted, the
|
|
7
|
+
* `comms.teams` environment slice supplies both (and optional
|
|
8
|
+
* `baseUrl`/`timeout`).
|
|
9
|
+
* @category Comms
|
|
10
|
+
* @memberOf module:integrations/comms/teams/service
|
|
11
|
+
*/
|
|
12
|
+
export interface TeamsServiceConfig extends HttpApiServiceConfig {
|
|
13
|
+
/**
|
|
14
|
+
* @description Microsoft Graph access token
|
|
15
|
+
* @summary Sent as `Authorization: Bearer <token>` for Graph requests.
|
|
16
|
+
*/
|
|
17
|
+
token?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @description Incoming webhook URL for `sendWebhook`
|
|
20
|
+
* @summary Typically an Office 365 connector URL; required only for webhook delivery.
|
|
21
|
+
*/
|
|
22
|
+
webhookUrl?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @description Input for Teams incoming-webhook delivery
|
|
26
|
+
* @summary Carries the plain-text `text`, an optional card `title`, and
|
|
27
|
+
* whether the text is rendered as markdown (default `true`). Delivered as an
|
|
28
|
+
* Office 365 `MessageCard` to the configured webhook URL.
|
|
29
|
+
* @category Comms
|
|
30
|
+
* @memberOf module:integrations/comms/teams/service
|
|
31
|
+
*/
|
|
32
|
+
export interface TeamsWebhookMessage {
|
|
33
|
+
/**
|
|
34
|
+
* @description Message body text
|
|
35
|
+
*/
|
|
36
|
+
text: string;
|
|
37
|
+
/**
|
|
38
|
+
* @description Optional card title
|
|
39
|
+
*/
|
|
40
|
+
title?: string;
|
|
41
|
+
/**
|
|
42
|
+
* @description Whether `text` is rendered as markdown; defaults to `true`
|
|
43
|
+
*/
|
|
44
|
+
markdown?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @description Input for sending a message into a Teams channel via Microsoft Graph
|
|
48
|
+
* @summary Carries the target `teamId` and `channelId`, the message
|
|
49
|
+
* `content`, and its content type (`text` by default, or `html`).
|
|
50
|
+
* @category Comms
|
|
51
|
+
* @memberOf module:integrations/comms/teams/service
|
|
52
|
+
*/
|
|
53
|
+
export interface TeamsChannelMessage {
|
|
54
|
+
teamId: string;
|
|
55
|
+
channelId: string;
|
|
56
|
+
content: string;
|
|
57
|
+
contentType?: "text" | "html";
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @description Microsoft Teams integration service
|
|
61
|
+
* @summary An undecorated HTTP service combining incoming-webhook
|
|
62
|
+
* delivery (needs only `webhookUrl`) with Microsoft Graph operations — channel
|
|
63
|
+
* messaging, team listing, and channel listing (need a Graph `token`).
|
|
64
|
+
* Webhook delivery posts an Office 365 `MessageCard` directly to the
|
|
65
|
+
* configured URL; Graph operations go through the service client with bearer
|
|
66
|
+
* auth, require a token (`requireToken()`), and map transport failures to
|
|
67
|
+
* decaf errors via {@link httpError}.
|
|
68
|
+
* @class TeamsService
|
|
69
|
+
* @category Comms
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { TeamsService } from "@decaf-ts/integrations/comms/teams";
|
|
73
|
+
*
|
|
74
|
+
* const teams = new TeamsService();
|
|
75
|
+
* await teams.initialize({
|
|
76
|
+
* webhookUrl: process.env.GRAPH_CREDENTIAL_TEAMS_WEBHOOK_URL,
|
|
77
|
+
* token: process.env.GRAPH_CREDENTIAL_TEAMS_TOKEN,
|
|
78
|
+
* });
|
|
79
|
+
* await teams.sendWebhook({ title: "Deploy", text: "Release 1.2.0 is live" });
|
|
80
|
+
* ```
|
|
81
|
+
* @memberOf module:integrations/comms/teams/service
|
|
82
|
+
*/
|
|
83
|
+
export declare class TeamsService extends HttpApiService<TeamsServiceConfig> {
|
|
84
|
+
/**
|
|
85
|
+
* @description The provider name used in error messages
|
|
86
|
+
*/
|
|
87
|
+
protected readonly serviceName = "Microsoft Teams";
|
|
88
|
+
/**
|
|
89
|
+
* @description The Microsoft Graph v1.0 base URL
|
|
90
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
91
|
+
* @returns {string} `"https://graph.microsoft.com/v1.0"`.
|
|
92
|
+
*/
|
|
93
|
+
protected defaultBaseUrl(): string;
|
|
94
|
+
/**
|
|
95
|
+
* @description Builds the Microsoft Graph bearer authorization headers
|
|
96
|
+
* @summary Returns the `Authorization: Bearer <token>` header when the
|
|
97
|
+
* config carries a token, and no headers otherwise.
|
|
98
|
+
* @param {TeamsServiceConfig} config - The resolved service configuration.
|
|
99
|
+
* @returns {Record<string, string>} The authorization headers (empty without a token).
|
|
100
|
+
*/
|
|
101
|
+
protected authHeaders(config: TeamsServiceConfig): Record<string, string>;
|
|
102
|
+
/**
|
|
103
|
+
* @description Reads the Teams credentials and defaults from the environment
|
|
104
|
+
* @summary Reads the `comms.teams` environment slice and returns a partial
|
|
105
|
+
* config when a Graph token or webhook URL is configured, `undefined`
|
|
106
|
+
* otherwise. Values pass through `envString`/`envNumber` to reject
|
|
107
|
+
* unset-leaf proxies.
|
|
108
|
+
* @returns {Partial<TeamsServiceConfig> | undefined} A partial config, or `undefined` when neither token nor webhook URL is configured.
|
|
109
|
+
*/
|
|
110
|
+
protected configFromEnvironment(): Partial<TeamsServiceConfig> | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* @description Delivers a MessageCard through the configured incoming webhook
|
|
113
|
+
* @summary Posts an Office 365 `MessageCard` (`@type: "MessageCard"`) with
|
|
114
|
+
* the title, text, and markdown flag directly to `config.webhookUrl` using
|
|
115
|
+
* a standalone Axios call (no Graph token involved). Requires a configured
|
|
116
|
+
* webhook URL.
|
|
117
|
+
* @param {TeamsWebhookMessage} input - The card title, text, and markdown flag.
|
|
118
|
+
* @returns {Promise<unknown>} The raw webhook response payload.
|
|
119
|
+
* @throws {InternalError} When no webhook URL is configured.
|
|
120
|
+
* @throws {NotFoundError} When the webhook endpoint answers with HTTP 404.
|
|
121
|
+
* @throws {ConflictError} When the webhook endpoint answers with HTTP 409.
|
|
122
|
+
* @throws {BadRequestError} When the webhook endpoint answers with any other HTTP error status.
|
|
123
|
+
*/
|
|
124
|
+
sendWebhook(input: TeamsWebhookMessage): Promise<unknown>;
|
|
125
|
+
/**
|
|
126
|
+
* @description Sends a message into a Teams channel through Microsoft Graph
|
|
127
|
+
* @summary `POST`s a chat message to
|
|
128
|
+
* `/teams/<teamId>/channels/<channelId>/messages` with the given content
|
|
129
|
+
* type (`text` by default, or `html`). Requires a Graph token and both a
|
|
130
|
+
* team and channel ID; IDs are URL-encoded.
|
|
131
|
+
* @param {TeamsChannelMessage} input - The target team/channel and the message content.
|
|
132
|
+
* @returns {Promise<unknown>} The raw Graph message payload.
|
|
133
|
+
* @throws {InternalError} When no token is configured or the team/channel IDs are missing.
|
|
134
|
+
* @throws {NotFoundError} When the team or channel does not exist (HTTP 404).
|
|
135
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
136
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* await teams.sendChannelMessage({
|
|
140
|
+
* teamId: "team-id",
|
|
141
|
+
* channelId: "channel-id",
|
|
142
|
+
* content: "<b>Release</b> 1.2.0 is live",
|
|
143
|
+
* contentType: "html",
|
|
144
|
+
* });
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
sendChannelMessage(input: TeamsChannelMessage): Promise<unknown>;
|
|
148
|
+
/**
|
|
149
|
+
* @description Lists Teams accessible to the authenticated identity
|
|
150
|
+
* @summary `GET`s `/teams` with a `$top` page size (default `50`) and
|
|
151
|
+
* returns the raw Graph `team` payloads.
|
|
152
|
+
* @param {number} [limit] - Maximum number of teams to return; defaults to `50`.
|
|
153
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Graph `team` payloads.
|
|
154
|
+
* @throws {InternalError} When no token is configured.
|
|
155
|
+
* @throws {NotFoundError} When Graph answers with HTTP 404.
|
|
156
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
157
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
158
|
+
*/
|
|
159
|
+
listTeams(limit?: number): Promise<Array<Record<string, unknown>>>;
|
|
160
|
+
/**
|
|
161
|
+
* @description Lists channels of a Teams team
|
|
162
|
+
* @summary `GET`s `/teams/<teamId>/channels` and returns the raw Graph
|
|
163
|
+
* `channel` payloads; the team ID is URL-encoded.
|
|
164
|
+
* @param {string} teamId - The ID of the team whose channels are listed.
|
|
165
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Graph `channel` payloads.
|
|
166
|
+
* @throws {InternalError} When no token is configured.
|
|
167
|
+
* @throws {NotFoundError} When the team does not exist (HTTP 404).
|
|
168
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
169
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
170
|
+
*/
|
|
171
|
+
listChannels(teamId: string): Promise<Array<Record<string, unknown>>>;
|
|
172
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.mts";
|
|
2
|
+
/**
|
|
3
|
+
* @description Configuration for the Teams service
|
|
4
|
+
* @summary Extends {@link HttpApiServiceConfig} with the Microsoft Graph
|
|
5
|
+
* access token (required for channel messaging and listings, optional when
|
|
6
|
+
* only webhooks are used) and the incoming-webhook URL. When omitted, the
|
|
7
|
+
* `comms.teams` environment slice supplies both (and optional
|
|
8
|
+
* `baseUrl`/`timeout`).
|
|
9
|
+
* @category Comms
|
|
10
|
+
* @memberOf module:integrations/comms/teams/service
|
|
11
|
+
*/
|
|
12
|
+
export interface TeamsServiceConfig extends HttpApiServiceConfig {
|
|
13
|
+
/**
|
|
14
|
+
* @description Microsoft Graph access token
|
|
15
|
+
* @summary Sent as `Authorization: Bearer <token>` for Graph requests.
|
|
16
|
+
*/
|
|
17
|
+
token?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @description Incoming webhook URL for `sendWebhook`
|
|
20
|
+
* @summary Typically an Office 365 connector URL; required only for webhook delivery.
|
|
21
|
+
*/
|
|
22
|
+
webhookUrl?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @description Input for Teams incoming-webhook delivery
|
|
26
|
+
* @summary Carries the plain-text `text`, an optional card `title`, and
|
|
27
|
+
* whether the text is rendered as markdown (default `true`). Delivered as an
|
|
28
|
+
* Office 365 `MessageCard` to the configured webhook URL.
|
|
29
|
+
* @category Comms
|
|
30
|
+
* @memberOf module:integrations/comms/teams/service
|
|
31
|
+
*/
|
|
32
|
+
export interface TeamsWebhookMessage {
|
|
33
|
+
/**
|
|
34
|
+
* @description Message body text
|
|
35
|
+
*/
|
|
36
|
+
text: string;
|
|
37
|
+
/**
|
|
38
|
+
* @description Optional card title
|
|
39
|
+
*/
|
|
40
|
+
title?: string;
|
|
41
|
+
/**
|
|
42
|
+
* @description Whether `text` is rendered as markdown; defaults to `true`
|
|
43
|
+
*/
|
|
44
|
+
markdown?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @description Input for sending a message into a Teams channel via Microsoft Graph
|
|
48
|
+
* @summary Carries the target `teamId` and `channelId`, the message
|
|
49
|
+
* `content`, and its content type (`text` by default, or `html`).
|
|
50
|
+
* @category Comms
|
|
51
|
+
* @memberOf module:integrations/comms/teams/service
|
|
52
|
+
*/
|
|
53
|
+
export interface TeamsChannelMessage {
|
|
54
|
+
teamId: string;
|
|
55
|
+
channelId: string;
|
|
56
|
+
content: string;
|
|
57
|
+
contentType?: "text" | "html";
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @description Microsoft Teams integration service
|
|
61
|
+
* @summary An undecorated HTTP service combining incoming-webhook
|
|
62
|
+
* delivery (needs only `webhookUrl`) with Microsoft Graph operations — channel
|
|
63
|
+
* messaging, team listing, and channel listing (need a Graph `token`).
|
|
64
|
+
* Webhook delivery posts an Office 365 `MessageCard` directly to the
|
|
65
|
+
* configured URL; Graph operations go through the service client with bearer
|
|
66
|
+
* auth, require a token (`requireToken()`), and map transport failures to
|
|
67
|
+
* decaf errors via {@link httpError}.
|
|
68
|
+
* @class TeamsService
|
|
69
|
+
* @category Comms
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { TeamsService } from "@decaf-ts/integrations/comms/teams";
|
|
73
|
+
*
|
|
74
|
+
* const teams = new TeamsService();
|
|
75
|
+
* await teams.initialize({
|
|
76
|
+
* webhookUrl: process.env.GRAPH_CREDENTIAL_TEAMS_WEBHOOK_URL,
|
|
77
|
+
* token: process.env.GRAPH_CREDENTIAL_TEAMS_TOKEN,
|
|
78
|
+
* });
|
|
79
|
+
* await teams.sendWebhook({ title: "Deploy", text: "Release 1.2.0 is live" });
|
|
80
|
+
* ```
|
|
81
|
+
* @memberOf module:integrations/comms/teams/service
|
|
82
|
+
*/
|
|
83
|
+
export declare class TeamsService extends HttpApiService<TeamsServiceConfig> {
|
|
84
|
+
/**
|
|
85
|
+
* @description The provider name used in error messages
|
|
86
|
+
*/
|
|
87
|
+
protected readonly serviceName = "Microsoft Teams";
|
|
88
|
+
/**
|
|
89
|
+
* @description The Microsoft Graph v1.0 base URL
|
|
90
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
91
|
+
* @returns {string} `"https://graph.microsoft.com/v1.0"`.
|
|
92
|
+
*/
|
|
93
|
+
protected defaultBaseUrl(): string;
|
|
94
|
+
/**
|
|
95
|
+
* @description Builds the Microsoft Graph bearer authorization headers
|
|
96
|
+
* @summary Returns the `Authorization: Bearer <token>` header when the
|
|
97
|
+
* config carries a token, and no headers otherwise.
|
|
98
|
+
* @param {TeamsServiceConfig} config - The resolved service configuration.
|
|
99
|
+
* @returns {Record<string, string>} The authorization headers (empty without a token).
|
|
100
|
+
*/
|
|
101
|
+
protected authHeaders(config: TeamsServiceConfig): Record<string, string>;
|
|
102
|
+
/**
|
|
103
|
+
* @description Reads the Teams credentials and defaults from the environment
|
|
104
|
+
* @summary Reads the `comms.teams` environment slice and returns a partial
|
|
105
|
+
* config when a Graph token or webhook URL is configured, `undefined`
|
|
106
|
+
* otherwise. Values pass through `envString`/`envNumber` to reject
|
|
107
|
+
* unset-leaf proxies.
|
|
108
|
+
* @returns {Partial<TeamsServiceConfig> | undefined} A partial config, or `undefined` when neither token nor webhook URL is configured.
|
|
109
|
+
*/
|
|
110
|
+
protected configFromEnvironment(): Partial<TeamsServiceConfig> | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* @description Delivers a MessageCard through the configured incoming webhook
|
|
113
|
+
* @summary Posts an Office 365 `MessageCard` (`@type: "MessageCard"`) with
|
|
114
|
+
* the title, text, and markdown flag directly to `config.webhookUrl` using
|
|
115
|
+
* a standalone Axios call (no Graph token involved). Requires a configured
|
|
116
|
+
* webhook URL.
|
|
117
|
+
* @param {TeamsWebhookMessage} input - The card title, text, and markdown flag.
|
|
118
|
+
* @returns {Promise<unknown>} The raw webhook response payload.
|
|
119
|
+
* @throws {InternalError} When no webhook URL is configured.
|
|
120
|
+
* @throws {NotFoundError} When the webhook endpoint answers with HTTP 404.
|
|
121
|
+
* @throws {ConflictError} When the webhook endpoint answers with HTTP 409.
|
|
122
|
+
* @throws {BadRequestError} When the webhook endpoint answers with any other HTTP error status.
|
|
123
|
+
*/
|
|
124
|
+
sendWebhook(input: TeamsWebhookMessage): Promise<unknown>;
|
|
125
|
+
/**
|
|
126
|
+
* @description Sends a message into a Teams channel through Microsoft Graph
|
|
127
|
+
* @summary `POST`s a chat message to
|
|
128
|
+
* `/teams/<teamId>/channels/<channelId>/messages` with the given content
|
|
129
|
+
* type (`text` by default, or `html`). Requires a Graph token and both a
|
|
130
|
+
* team and channel ID; IDs are URL-encoded.
|
|
131
|
+
* @param {TeamsChannelMessage} input - The target team/channel and the message content.
|
|
132
|
+
* @returns {Promise<unknown>} The raw Graph message payload.
|
|
133
|
+
* @throws {InternalError} When no token is configured or the team/channel IDs are missing.
|
|
134
|
+
* @throws {NotFoundError} When the team or channel does not exist (HTTP 404).
|
|
135
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
136
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* await teams.sendChannelMessage({
|
|
140
|
+
* teamId: "team-id",
|
|
141
|
+
* channelId: "channel-id",
|
|
142
|
+
* content: "<b>Release</b> 1.2.0 is live",
|
|
143
|
+
* contentType: "html",
|
|
144
|
+
* });
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
sendChannelMessage(input: TeamsChannelMessage): Promise<unknown>;
|
|
148
|
+
/**
|
|
149
|
+
* @description Lists Teams accessible to the authenticated identity
|
|
150
|
+
* @summary `GET`s `/teams` with a `$top` page size (default `50`) and
|
|
151
|
+
* returns the raw Graph `team` payloads.
|
|
152
|
+
* @param {number} [limit] - Maximum number of teams to return; defaults to `50`.
|
|
153
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Graph `team` payloads.
|
|
154
|
+
* @throws {InternalError} When no token is configured.
|
|
155
|
+
* @throws {NotFoundError} When Graph answers with HTTP 404.
|
|
156
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
157
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
158
|
+
*/
|
|
159
|
+
listTeams(limit?: number): Promise<Array<Record<string, unknown>>>;
|
|
160
|
+
/**
|
|
161
|
+
* @description Lists channels of a Teams team
|
|
162
|
+
* @summary `GET`s `/teams/<teamId>/channels` and returns the raw Graph
|
|
163
|
+
* `channel` payloads; the team ID is URL-encoded.
|
|
164
|
+
* @param {string} teamId - The ID of the team whose channels are listed.
|
|
165
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Graph `channel` payloads.
|
|
166
|
+
* @throws {InternalError} When no token is configured.
|
|
167
|
+
* @throws {NotFoundError} When the team does not exist (HTTP 404).
|
|
168
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
169
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
170
|
+
*/
|
|
171
|
+
listChannels(teamId: string): Promise<Array<Record<string, unknown>>>;
|
|
172
|
+
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.cts";
|
|
2
|
+
/**
|
|
3
|
+
* @description Configuration for the Telegram service
|
|
4
|
+
* @summary Extends {@link HttpApiServiceConfig} with the Telegram bot token
|
|
5
|
+
* used to build the `/bot<token>` request path. When omitted, the
|
|
6
|
+
* `comms.telegram` environment slice supplies the token (and optional
|
|
7
|
+
* `baseUrl`/`timeout`).
|
|
8
|
+
* @category Comms
|
|
9
|
+
* @memberOf module:integrations/comms/telegram/service
|
|
10
|
+
*/
|
|
11
|
+
export interface TelegramServiceConfig extends HttpApiServiceConfig {
|
|
12
|
+
/**
|
|
13
|
+
* @description Telegram bot token
|
|
14
|
+
* @summary Issued by BotFather; embedded in the request path for every call.
|
|
15
|
+
*/
|
|
16
|
+
token?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @description Input for sending a Telegram message
|
|
20
|
+
* @summary Carries the destination `chatId`, the message `text`, the optional
|
|
21
|
+
* parse mode (`Markdown`, `MarkdownV2`, or `HTML`), and the notification,
|
|
22
|
+
* preview, reply, and forum-thread options.
|
|
23
|
+
* @category Comms
|
|
24
|
+
* @memberOf module:integrations/comms/telegram/service
|
|
25
|
+
*/
|
|
26
|
+
export interface TelegramSendMessageInput {
|
|
27
|
+
/**
|
|
28
|
+
* @description Destination chat ID or `@channelusername`
|
|
29
|
+
*/
|
|
30
|
+
chatId: string | number;
|
|
31
|
+
/**
|
|
32
|
+
* @description Message text (up to 4096 characters)
|
|
33
|
+
*/
|
|
34
|
+
text: string;
|
|
35
|
+
/**
|
|
36
|
+
* @description Parse mode for entity recognition in `text`
|
|
37
|
+
*/
|
|
38
|
+
parseMode?: "Markdown" | "MarkdownV2" | "HTML";
|
|
39
|
+
/**
|
|
40
|
+
* @description Whether the message is sent silently
|
|
41
|
+
*/
|
|
42
|
+
disableNotification?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* @description Whether link previews are disabled
|
|
45
|
+
*/
|
|
46
|
+
disablePreview?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* @description Message to reply to
|
|
49
|
+
*/
|
|
50
|
+
replyToMessageId?: number;
|
|
51
|
+
/**
|
|
52
|
+
* @description Forum thread to post into
|
|
53
|
+
*/
|
|
54
|
+
messageThreadId?: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @description Normalized Telegram message descriptor
|
|
58
|
+
* @summary The relevant subset of the Telegram `Message` object: identifiers
|
|
59
|
+
* (`message_id`, `date`), the sending `chat`, and the message `text`.
|
|
60
|
+
* @category Comms
|
|
61
|
+
* @memberOf module:integrations/comms/telegram/service
|
|
62
|
+
*/
|
|
63
|
+
export interface TelegramMessage {
|
|
64
|
+
message_id: number;
|
|
65
|
+
date: number;
|
|
66
|
+
chat: {
|
|
67
|
+
id: number;
|
|
68
|
+
type?: string;
|
|
69
|
+
title?: string;
|
|
70
|
+
username?: string;
|
|
71
|
+
};
|
|
72
|
+
text?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @description Telegram Bot API integration service
|
|
76
|
+
* @summary An undecorated HTTP service for verifying the bot
|
|
77
|
+
* identity, sending messages with parse modes and reply/thread options, long
|
|
78
|
+
* or short polling `getUpdates`, and posting chat actions. The bot token is
|
|
79
|
+
* required (`requireToken()`) and embedded in the request path; non-`ok` Bot
|
|
80
|
+
* API responses raise `InternalError`, and transport failures are mapped to
|
|
81
|
+
* decaf errors via {@link httpError}.
|
|
82
|
+
* @class TelegramService
|
|
83
|
+
* @category Comms
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* import { TelegramService } from "@decaf-ts/integrations/comms/telegram";
|
|
87
|
+
*
|
|
88
|
+
* const telegram = new TelegramService();
|
|
89
|
+
* await telegram.initialize({
|
|
90
|
+
* token: process.env.GRAPH_CREDENTIAL_TELEGRAM_TOKEN,
|
|
91
|
+
* });
|
|
92
|
+
* await telegram.sendMessage({
|
|
93
|
+
* chatId: "@mychannel",
|
|
94
|
+
* text: "Release 1.2.0 is live",
|
|
95
|
+
* parseMode: "HTML",
|
|
96
|
+
* });
|
|
97
|
+
* ```
|
|
98
|
+
* @memberOf module:integrations/comms/telegram/service
|
|
99
|
+
*/
|
|
100
|
+
export declare class TelegramService extends HttpApiService<TelegramServiceConfig> {
|
|
101
|
+
/**
|
|
102
|
+
* @description The provider name used in error messages
|
|
103
|
+
*/
|
|
104
|
+
protected readonly serviceName = "Telegram";
|
|
105
|
+
/**
|
|
106
|
+
* @description The Telegram Bot API base URL
|
|
107
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
108
|
+
* @returns {string} `"https://api.telegram.org"`.
|
|
109
|
+
*/
|
|
110
|
+
protected defaultBaseUrl(): string;
|
|
111
|
+
/**
|
|
112
|
+
* @description Reads the Telegram credentials and defaults from the environment
|
|
113
|
+
* @summary Reads the `comms.telegram` environment slice and returns a
|
|
114
|
+
* partial config when a token is configured, `undefined` otherwise. Values
|
|
115
|
+
* pass through `envString`/`envNumber` to reject unset-leaf proxies.
|
|
116
|
+
* @returns {Partial<TelegramServiceConfig> | undefined} A partial config, or `undefined` when no Telegram token is configured.
|
|
117
|
+
*/
|
|
118
|
+
protected configFromEnvironment(): Partial<TelegramServiceConfig> | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* @description Calls a Telegram Bot API method with the configured bot token
|
|
121
|
+
* @summary Shared request path for all Telegram operations: resolves the
|
|
122
|
+
* token (`requireToken()`), `POST`s the payload to
|
|
123
|
+
* `/bot<token>/<method>`, rejects non-`ok` Bot API responses with an
|
|
124
|
+
* `InternalError`, and maps transport failures through {@link httpError}.
|
|
125
|
+
* @template T - The expected `result` payload type of the Bot API response.
|
|
126
|
+
* @param {string} method - The Bot API method name (e.g. `"sendMessage"`).
|
|
127
|
+
* @param {Record<string, unknown>} [payload] - The JSON body for the method; defaults to an empty object.
|
|
128
|
+
* @returns {Promise<T>} The `result` payload of the Bot API response.
|
|
129
|
+
* @throws {InternalError} When no token is configured or the Bot API answers with `ok: false`.
|
|
130
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
131
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
132
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
133
|
+
*/
|
|
134
|
+
protected call<T>(method: string, payload?: Record<string, unknown>): Promise<T>;
|
|
135
|
+
/**
|
|
136
|
+
* @description Fetches the authenticated bot's identity
|
|
137
|
+
* @summary Calls the `getMe` method and returns the raw bot descriptor
|
|
138
|
+
* (including `id`, `username`, and `can_join_groups` flags).
|
|
139
|
+
* @returns {Promise<Record<string, unknown>>} The raw `User` payload describing the bot.
|
|
140
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the call.
|
|
141
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
142
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
143
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
144
|
+
*/
|
|
145
|
+
getMe(): Promise<Record<string, unknown>>;
|
|
146
|
+
/**
|
|
147
|
+
* @description Sends a message to a Telegram chat
|
|
148
|
+
* @summary Calls the `sendMessage` method with the destination chat, text,
|
|
149
|
+
* and the requested parse/notification/reply/thread options, returning the
|
|
150
|
+
* sent message descriptor.
|
|
151
|
+
* @param {TelegramSendMessageInput} input - The message destination, content, and options.
|
|
152
|
+
* @returns {Promise<TelegramMessage>} The sent message descriptor.
|
|
153
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the message.
|
|
154
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
155
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
156
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* await telegram.sendMessage({
|
|
160
|
+
* chatId: "-1001234567890",
|
|
161
|
+
* text: "*Release* 1.2.0 is live",
|
|
162
|
+
* parseMode: "MarkdownV2",
|
|
163
|
+
* disableNotification: true,
|
|
164
|
+
* });
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
sendMessage(input: TelegramSendMessageInput): Promise<TelegramMessage>;
|
|
168
|
+
/**
|
|
169
|
+
* @description Polls pending bot updates
|
|
170
|
+
* @summary Calls the `getUpdates` method, optionally with an `offset`
|
|
171
|
+
* (confirmation of processed updates), a `limit` on returned updates, and a
|
|
172
|
+
* long-polling `timeoutSeconds`. Advance `offset` past each handled
|
|
173
|
+
* update's `update_id` to avoid re-reading them.
|
|
174
|
+
* @param {object} [options] - Polling options.
|
|
175
|
+
* @param {number} [options.offset] - The first update ID to return (previous ID + 1).
|
|
176
|
+
* @param {number} [options.limit] - Maximum number of updates to return (1-100).
|
|
177
|
+
* @param {number} [options.timeoutSeconds] - Long-polling timeout in seconds.
|
|
178
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw `Update` payloads.
|
|
179
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the call.
|
|
180
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
181
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409 (e.g. another `getUpdates` call is in flight).
|
|
182
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
183
|
+
*/
|
|
184
|
+
getUpdates(options?: {
|
|
185
|
+
offset?: number;
|
|
186
|
+
limit?: number;
|
|
187
|
+
timeoutSeconds?: number;
|
|
188
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
189
|
+
/**
|
|
190
|
+
* @description Posts a chat action (typing indicator)
|
|
191
|
+
* @summary Calls the `sendChatAction` method so clients display the given
|
|
192
|
+
* action (e.g. `"typing"`) for up to five seconds.
|
|
193
|
+
* @param {string | number} chatId - The destination chat ID or `@channelusername`.
|
|
194
|
+
* @param {string} [action] - The action to display; defaults to `"typing"`.
|
|
195
|
+
* @returns {Promise<boolean>} Whether the action was accepted.
|
|
196
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the call.
|
|
197
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
198
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
199
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
200
|
+
*/
|
|
201
|
+
sendChatAction(chatId: string | number, action?: string): Promise<boolean>;
|
|
202
|
+
}
|