@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,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TeamsService = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module integrations/comms/teams/service
|
|
9
|
+
* @summary Microsoft Teams integration service for webhook and Microsoft Graph channel messaging.
|
|
10
|
+
* @description Exposes two delivery paths as an undecorated client-based
|
|
11
|
+
* service built on {@link HttpApiService}: incoming-webhook
|
|
12
|
+
* `MessageCard` delivery (no Graph token required) and Microsoft Graph
|
|
13
|
+
* channel messaging, team listing, and channel listing (requires a Graph
|
|
14
|
+
* access token). Configuration comes from an explicit `TeamsServiceConfig`
|
|
15
|
+
* or the `comms.teams` environment slice, and failures are mapped to decaf
|
|
16
|
+
* errors via {@link httpError}.
|
|
17
|
+
*/
|
|
18
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
19
|
+
const axios_1 = __importDefault(require("axios"));
|
|
20
|
+
const environment_js_1 = require("./../environment.cjs");
|
|
21
|
+
const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
|
|
22
|
+
const index_js_1 = require("./../../shared/http/index.cjs");
|
|
23
|
+
/**
|
|
24
|
+
* @description Microsoft Teams integration service
|
|
25
|
+
* @summary An undecorated HTTP service combining incoming-webhook
|
|
26
|
+
* delivery (needs only `webhookUrl`) with Microsoft Graph operations — channel
|
|
27
|
+
* messaging, team listing, and channel listing (need a Graph `token`).
|
|
28
|
+
* Webhook delivery posts an Office 365 `MessageCard` directly to the
|
|
29
|
+
* configured URL; Graph operations go through the service client with bearer
|
|
30
|
+
* auth, require a token (`requireToken()`), and map transport failures to
|
|
31
|
+
* decaf errors via {@link httpError}.
|
|
32
|
+
* @class TeamsService
|
|
33
|
+
* @category Comms
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { TeamsService } from "@decaf-ts/integrations/comms/teams";
|
|
37
|
+
*
|
|
38
|
+
* const teams = new TeamsService();
|
|
39
|
+
* await teams.initialize({
|
|
40
|
+
* webhookUrl: process.env.GRAPH_CREDENTIAL_TEAMS_WEBHOOK_URL,
|
|
41
|
+
* token: process.env.GRAPH_CREDENTIAL_TEAMS_TOKEN,
|
|
42
|
+
* });
|
|
43
|
+
* await teams.sendWebhook({ title: "Deploy", text: "Release 1.2.0 is live" });
|
|
44
|
+
* ```
|
|
45
|
+
* @memberOf module:integrations/comms/teams/service
|
|
46
|
+
*/
|
|
47
|
+
class TeamsService extends index_js_1.HttpApiService {
|
|
48
|
+
constructor() {
|
|
49
|
+
super(...arguments);
|
|
50
|
+
/**
|
|
51
|
+
* @description The provider name used in error messages
|
|
52
|
+
*/
|
|
53
|
+
this.serviceName = "Microsoft Teams";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @description The Microsoft Graph v1.0 base URL
|
|
57
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
58
|
+
* @returns {string} `"https://graph.microsoft.com/v1.0"`.
|
|
59
|
+
*/
|
|
60
|
+
defaultBaseUrl() {
|
|
61
|
+
return "https://graph.microsoft.com/v1.0";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @description Builds the Microsoft Graph bearer authorization headers
|
|
65
|
+
* @summary Returns the `Authorization: Bearer <token>` header when the
|
|
66
|
+
* config carries a token, and no headers otherwise.
|
|
67
|
+
* @param {TeamsServiceConfig} config - The resolved service configuration.
|
|
68
|
+
* @returns {Record<string, string>} The authorization headers (empty without a token).
|
|
69
|
+
*/
|
|
70
|
+
authHeaders(config) {
|
|
71
|
+
return config.token ? { Authorization: `Bearer ${config.token}` } : {};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @description Reads the Teams credentials and defaults from the environment
|
|
75
|
+
* @summary Reads the `comms.teams` environment slice and returns a partial
|
|
76
|
+
* config when a Graph token or webhook URL is configured, `undefined`
|
|
77
|
+
* otherwise. Values pass through `envString`/`envNumber` to reject
|
|
78
|
+
* unset-leaf proxies.
|
|
79
|
+
* @returns {Partial<TeamsServiceConfig> | undefined} A partial config, or `undefined` when neither token nor webhook URL is configured.
|
|
80
|
+
*/
|
|
81
|
+
configFromEnvironment() {
|
|
82
|
+
const env = environment_js_1.CommsEnvironment.comms.teams;
|
|
83
|
+
const token = (0, environmentValue_js_1.envString)(env?.token);
|
|
84
|
+
const webhookUrl = (0, environmentValue_js_1.envString)(env?.webhookUrl);
|
|
85
|
+
if (!token && !webhookUrl)
|
|
86
|
+
return undefined;
|
|
87
|
+
return {
|
|
88
|
+
token,
|
|
89
|
+
webhookUrl,
|
|
90
|
+
baseUrl: (0, environmentValue_js_1.envString)(env?.baseUrl),
|
|
91
|
+
timeout: (0, environmentValue_js_1.envNumber)(env?.timeout),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @description Delivers a MessageCard through the configured incoming webhook
|
|
96
|
+
* @summary Posts an Office 365 `MessageCard` (`@type: "MessageCard"`) with
|
|
97
|
+
* the title, text, and markdown flag directly to `config.webhookUrl` using
|
|
98
|
+
* a standalone Axios call (no Graph token involved). Requires a configured
|
|
99
|
+
* webhook URL.
|
|
100
|
+
* @param {TeamsWebhookMessage} input - The card title, text, and markdown flag.
|
|
101
|
+
* @returns {Promise<unknown>} The raw webhook response payload.
|
|
102
|
+
* @throws {InternalError} When no webhook URL is configured.
|
|
103
|
+
* @throws {NotFoundError} When the webhook endpoint answers with HTTP 404.
|
|
104
|
+
* @throws {ConflictError} When the webhook endpoint answers with HTTP 409.
|
|
105
|
+
* @throws {BadRequestError} When the webhook endpoint answers with any other HTTP error status.
|
|
106
|
+
*/
|
|
107
|
+
async sendWebhook(input) {
|
|
108
|
+
const webhookUrl = this.config.webhookUrl;
|
|
109
|
+
if (!webhookUrl) {
|
|
110
|
+
throw new db_decorators_1.InternalError("Microsoft Teams requires a webhook URL");
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const response = await axios_1.default.post(webhookUrl, {
|
|
114
|
+
"@type": "MessageCard",
|
|
115
|
+
"@context": "https://schema.org/extensions",
|
|
116
|
+
summary: input.title ?? input.text,
|
|
117
|
+
title: input.title,
|
|
118
|
+
text: input.text,
|
|
119
|
+
markdown: input.markdown ?? true,
|
|
120
|
+
}, { timeout: this.config.timeout ?? 30000 });
|
|
121
|
+
return response.data;
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
throw (0, index_js_1.httpError)("Microsoft Teams", "webhook delivery", error);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* @description Sends a message into a Teams channel through Microsoft Graph
|
|
129
|
+
* @summary `POST`s a chat message to
|
|
130
|
+
* `/teams/<teamId>/channels/<channelId>/messages` with the given content
|
|
131
|
+
* type (`text` by default, or `html`). Requires a Graph token and both a
|
|
132
|
+
* team and channel ID; IDs are URL-encoded.
|
|
133
|
+
* @param {TeamsChannelMessage} input - The target team/channel and the message content.
|
|
134
|
+
* @returns {Promise<unknown>} The raw Graph message payload.
|
|
135
|
+
* @throws {InternalError} When no token is configured or the team/channel IDs are missing.
|
|
136
|
+
* @throws {NotFoundError} When the team or channel does not exist (HTTP 404).
|
|
137
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
138
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* await teams.sendChannelMessage({
|
|
142
|
+
* teamId: "team-id",
|
|
143
|
+
* channelId: "channel-id",
|
|
144
|
+
* content: "<b>Release</b> 1.2.0 is live",
|
|
145
|
+
* contentType: "html",
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
async sendChannelMessage(input) {
|
|
150
|
+
this.requireToken();
|
|
151
|
+
if (!input.teamId || !input.channelId) {
|
|
152
|
+
throw new db_decorators_1.InternalError("Microsoft Teams channel messages require a team and channel");
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
const response = await this.client.post(`/teams/${encodeURIComponent(input.teamId)}/channels/${encodeURIComponent(input.channelId)}/messages`, {
|
|
156
|
+
body: {
|
|
157
|
+
contentType: input.contentType ?? "text",
|
|
158
|
+
content: input.content,
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
return response.data;
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
throw (0, index_js_1.httpError)("Microsoft Teams", "channel message", error);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* @description Lists Teams accessible to the authenticated identity
|
|
169
|
+
* @summary `GET`s `/teams` with a `$top` page size (default `50`) and
|
|
170
|
+
* returns the raw Graph `team` payloads.
|
|
171
|
+
* @param {number} [limit] - Maximum number of teams to return; defaults to `50`.
|
|
172
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Graph `team` payloads.
|
|
173
|
+
* @throws {InternalError} When no token is configured.
|
|
174
|
+
* @throws {NotFoundError} When Graph answers with HTTP 404.
|
|
175
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
176
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
177
|
+
*/
|
|
178
|
+
async listTeams(limit = 50) {
|
|
179
|
+
this.requireToken();
|
|
180
|
+
try {
|
|
181
|
+
const response = await this.client.get("/teams", { params: { $top: limit } });
|
|
182
|
+
return response.data.value ?? [];
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
throw (0, index_js_1.httpError)("Microsoft Teams", "list teams", error);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* @description Lists channels of a Teams team
|
|
190
|
+
* @summary `GET`s `/teams/<teamId>/channels` and returns the raw Graph
|
|
191
|
+
* `channel` payloads; the team ID is URL-encoded.
|
|
192
|
+
* @param {string} teamId - The ID of the team whose channels are listed.
|
|
193
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Graph `channel` payloads.
|
|
194
|
+
* @throws {InternalError} When no token is configured.
|
|
195
|
+
* @throws {NotFoundError} When the team does not exist (HTTP 404).
|
|
196
|
+
* @throws {ConflictError} When Graph answers with HTTP 409.
|
|
197
|
+
* @throws {BadRequestError} When Graph answers with any other HTTP error status.
|
|
198
|
+
*/
|
|
199
|
+
async listChannels(teamId) {
|
|
200
|
+
this.requireToken();
|
|
201
|
+
try {
|
|
202
|
+
const response = await this.client.get(`/teams/${encodeURIComponent(teamId)}/channels`);
|
|
203
|
+
return response.data.value ?? [];
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
throw (0, index_js_1.httpError)("Microsoft Teams", "list channels", error);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.TeamsService = TeamsService;
|
|
211
|
+
//# sourceMappingURL=TeamsService.js.map
|
|
212
|
+
//# sourceMappingURL=TeamsService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/teams/TeamsService.cjs","sourceRoot":"","sources":["comms/teams/TeamsService.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* @module integrations/comms/teams
|
|
19
|
+
* @summary Microsoft Teams service (webhook posts and Graph channel messaging).
|
|
20
|
+
* @description Re-exports the Teams client-based service and its types.
|
|
21
|
+
*/
|
|
22
|
+
__exportStar(require("./TeamsService.cjs"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/teams/index.cjs","sourceRoot":"","sources":["comms/teams/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAkC;AAClC,iCAAiC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelegramService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module integrations/comms/telegram/service
|
|
6
|
+
* @summary Telegram Bot API integration service for sending messages and reading updates.
|
|
7
|
+
* @description Exposes the Telegram Bot API (`getMe`, `sendMessage`,
|
|
8
|
+
* `getUpdates`, `sendChatAction`) as an undecorated client-based service built
|
|
9
|
+
* on {@link HttpApiService}. The bot token is part of the request
|
|
10
|
+
* path (`/bot<token>/<method>`); configuration comes from an explicit
|
|
11
|
+
* `TelegramServiceConfig` or the `comms.telegram` environment slice, and
|
|
12
|
+
* failures are mapped to decaf errors via {@link httpError}.
|
|
13
|
+
*/
|
|
14
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
15
|
+
const environment_js_1 = require("./../environment.cjs");
|
|
16
|
+
const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
|
|
17
|
+
const index_js_1 = require("./../../shared/http/index.cjs");
|
|
18
|
+
/**
|
|
19
|
+
* @description Telegram Bot API integration service
|
|
20
|
+
* @summary An undecorated HTTP service for verifying the bot
|
|
21
|
+
* identity, sending messages with parse modes and reply/thread options, long
|
|
22
|
+
* or short polling `getUpdates`, and posting chat actions. The bot token is
|
|
23
|
+
* required (`requireToken()`) and embedded in the request path; non-`ok` Bot
|
|
24
|
+
* API responses raise `InternalError`, and transport failures are mapped to
|
|
25
|
+
* decaf errors via {@link httpError}.
|
|
26
|
+
* @class TelegramService
|
|
27
|
+
* @category Comms
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { TelegramService } from "@decaf-ts/integrations/comms/telegram";
|
|
31
|
+
*
|
|
32
|
+
* const telegram = new TelegramService();
|
|
33
|
+
* await telegram.initialize({
|
|
34
|
+
* token: process.env.GRAPH_CREDENTIAL_TELEGRAM_TOKEN,
|
|
35
|
+
* });
|
|
36
|
+
* await telegram.sendMessage({
|
|
37
|
+
* chatId: "@mychannel",
|
|
38
|
+
* text: "Release 1.2.0 is live",
|
|
39
|
+
* parseMode: "HTML",
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
* @memberOf module:integrations/comms/telegram/service
|
|
43
|
+
*/
|
|
44
|
+
class TelegramService extends index_js_1.HttpApiService {
|
|
45
|
+
constructor() {
|
|
46
|
+
super(...arguments);
|
|
47
|
+
/**
|
|
48
|
+
* @description The provider name used in error messages
|
|
49
|
+
*/
|
|
50
|
+
this.serviceName = "Telegram";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @description The Telegram Bot API base URL
|
|
54
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
55
|
+
* @returns {string} `"https://api.telegram.org"`.
|
|
56
|
+
*/
|
|
57
|
+
defaultBaseUrl() {
|
|
58
|
+
return "https://api.telegram.org";
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @description Reads the Telegram credentials and defaults from the environment
|
|
62
|
+
* @summary Reads the `comms.telegram` environment slice and returns a
|
|
63
|
+
* partial config when a token is configured, `undefined` otherwise. Values
|
|
64
|
+
* pass through `envString`/`envNumber` to reject unset-leaf proxies.
|
|
65
|
+
* @returns {Partial<TelegramServiceConfig> | undefined} A partial config, or `undefined` when no Telegram token is configured.
|
|
66
|
+
*/
|
|
67
|
+
configFromEnvironment() {
|
|
68
|
+
const env = environment_js_1.CommsEnvironment.comms.telegram;
|
|
69
|
+
const token = (0, environmentValue_js_1.envString)(env?.token);
|
|
70
|
+
if (!token)
|
|
71
|
+
return undefined;
|
|
72
|
+
return {
|
|
73
|
+
token,
|
|
74
|
+
baseUrl: (0, environmentValue_js_1.envString)(env.baseUrl),
|
|
75
|
+
timeout: (0, environmentValue_js_1.envNumber)(env.timeout),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @description Calls a Telegram Bot API method with the configured bot token
|
|
80
|
+
* @summary Shared request path for all Telegram operations: resolves the
|
|
81
|
+
* token (`requireToken()`), `POST`s the payload to
|
|
82
|
+
* `/bot<token>/<method>`, rejects non-`ok` Bot API responses with an
|
|
83
|
+
* `InternalError`, and maps transport failures through {@link httpError}.
|
|
84
|
+
* @template T - The expected `result` payload type of the Bot API response.
|
|
85
|
+
* @param {string} method - The Bot API method name (e.g. `"sendMessage"`).
|
|
86
|
+
* @param {Record<string, unknown>} [payload] - The JSON body for the method; defaults to an empty object.
|
|
87
|
+
* @returns {Promise<T>} The `result` payload of the Bot API response.
|
|
88
|
+
* @throws {InternalError} When no token is configured or the Bot API answers with `ok: false`.
|
|
89
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
90
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
91
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
92
|
+
*/
|
|
93
|
+
async call(method, payload = {}) {
|
|
94
|
+
const token = this.requireToken();
|
|
95
|
+
try {
|
|
96
|
+
const response = await this.client.post(`/bot${token}/${method}`, payload);
|
|
97
|
+
const data = response.data;
|
|
98
|
+
if (!data || data.ok !== true) {
|
|
99
|
+
throw new db_decorators_1.InternalError(`Telegram Bot API ${method} failed: ${data?.description ?? "unknown error"}`);
|
|
100
|
+
}
|
|
101
|
+
return data.result;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw (0, index_js_1.httpError)("Telegram", `Bot API ${method}`, error);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @description Fetches the authenticated bot's identity
|
|
109
|
+
* @summary Calls the `getMe` method and returns the raw bot descriptor
|
|
110
|
+
* (including `id`, `username`, and `can_join_groups` flags).
|
|
111
|
+
* @returns {Promise<Record<string, unknown>>} The raw `User` payload describing the bot.
|
|
112
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the call.
|
|
113
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
114
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
115
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
116
|
+
*/
|
|
117
|
+
async getMe() {
|
|
118
|
+
return this.call("getMe");
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* @description Sends a message to a Telegram chat
|
|
122
|
+
* @summary Calls the `sendMessage` method with the destination chat, text,
|
|
123
|
+
* and the requested parse/notification/reply/thread options, returning the
|
|
124
|
+
* sent message descriptor.
|
|
125
|
+
* @param {TelegramSendMessageInput} input - The message destination, content, and options.
|
|
126
|
+
* @returns {Promise<TelegramMessage>} The sent message descriptor.
|
|
127
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the message.
|
|
128
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
129
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
130
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* await telegram.sendMessage({
|
|
134
|
+
* chatId: "-1001234567890",
|
|
135
|
+
* text: "*Release* 1.2.0 is live",
|
|
136
|
+
* parseMode: "MarkdownV2",
|
|
137
|
+
* disableNotification: true,
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
async sendMessage(input) {
|
|
142
|
+
return this.call("sendMessage", {
|
|
143
|
+
chat_id: input.chatId,
|
|
144
|
+
text: input.text,
|
|
145
|
+
parse_mode: input.parseMode,
|
|
146
|
+
disable_notification: input.disableNotification,
|
|
147
|
+
disable_web_page_preview: input.disablePreview,
|
|
148
|
+
reply_to_message_id: input.replyToMessageId,
|
|
149
|
+
message_thread_id: input.messageThreadId,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @description Polls pending bot updates
|
|
154
|
+
* @summary Calls the `getUpdates` method, optionally with an `offset`
|
|
155
|
+
* (confirmation of processed updates), a `limit` on returned updates, and a
|
|
156
|
+
* long-polling `timeoutSeconds`. Advance `offset` past each handled
|
|
157
|
+
* update's `update_id` to avoid re-reading them.
|
|
158
|
+
* @param {object} [options] - Polling options.
|
|
159
|
+
* @param {number} [options.offset] - The first update ID to return (previous ID + 1).
|
|
160
|
+
* @param {number} [options.limit] - Maximum number of updates to return (1-100).
|
|
161
|
+
* @param {number} [options.timeoutSeconds] - Long-polling timeout in seconds.
|
|
162
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw `Update` payloads.
|
|
163
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the call.
|
|
164
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
165
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409 (e.g. another `getUpdates` call is in flight).
|
|
166
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
167
|
+
*/
|
|
168
|
+
async getUpdates(options = {}) {
|
|
169
|
+
return this.call("getUpdates", {
|
|
170
|
+
offset: options.offset,
|
|
171
|
+
limit: options.limit,
|
|
172
|
+
timeout: options.timeoutSeconds,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @description Posts a chat action (typing indicator)
|
|
177
|
+
* @summary Calls the `sendChatAction` method so clients display the given
|
|
178
|
+
* action (e.g. `"typing"`) for up to five seconds.
|
|
179
|
+
* @param {string | number} chatId - The destination chat ID or `@channelusername`.
|
|
180
|
+
* @param {string} [action] - The action to display; defaults to `"typing"`.
|
|
181
|
+
* @returns {Promise<boolean>} Whether the action was accepted.
|
|
182
|
+
* @throws {InternalError} When no token is configured or the Bot API rejects the call.
|
|
183
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
184
|
+
* @throws {ConflictError} When the endpoint answers with HTTP 409.
|
|
185
|
+
* @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
|
|
186
|
+
*/
|
|
187
|
+
async sendChatAction(chatId, action = "typing") {
|
|
188
|
+
return this.call("sendChatAction", {
|
|
189
|
+
chat_id: chatId,
|
|
190
|
+
action,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.TelegramService = TelegramService;
|
|
195
|
+
//# sourceMappingURL=TelegramService.js.map
|
|
196
|
+
//# sourceMappingURL=TelegramService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/telegram/TelegramService.cjs","sourceRoot":"","sources":["comms/telegram/TelegramService.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* @module integrations/comms/telegram
|
|
19
|
+
* @summary Telegram Bot API service (messaging, updates, chat actions).
|
|
20
|
+
* @description Re-exports the Telegram client-based service and its types.
|
|
21
|
+
*/
|
|
22
|
+
__exportStar(require("./TelegramService.cjs"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/telegram/index.cjs","sourceRoot":"","sources":["comms/telegram/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,uDAAqC;AACrC,iCAAiC"}
|