@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,202 @@
|
|
|
1
|
+
import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.mts";
|
|
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
|
+
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.cts";
|
|
2
|
+
/**
|
|
3
|
+
* @description Configuration for the WhatsApp service
|
|
4
|
+
* @summary Extends {@link HttpApiServiceConfig} with the Meta access token
|
|
5
|
+
* (sent as a bearer token) and the sender `phoneNumberId` used in the
|
|
6
|
+
* `/messages` path. When omitted, the `comms.whatsApp` environment slice
|
|
7
|
+
* supplies both (plus optional `baseUrl`/`timeout`). Both values are
|
|
8
|
+
* credential references, never literals in source.
|
|
9
|
+
* @category Comms
|
|
10
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
11
|
+
*/
|
|
12
|
+
export interface WhatsAppServiceConfig extends HttpApiServiceConfig {
|
|
13
|
+
/**
|
|
14
|
+
* @description Meta WhatsApp Cloud API access token
|
|
15
|
+
* @summary Sent as `Authorization: Bearer <token>` with every API call.
|
|
16
|
+
*/
|
|
17
|
+
token?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @description Sender phone number ID used in the messages path
|
|
20
|
+
*/
|
|
21
|
+
phoneNumberId?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @description Input for sending a WhatsApp text message
|
|
25
|
+
* @summary Carries the recipient (`to`, E.164 digits without `+`), the text
|
|
26
|
+
* body, and whether link previews are generated.
|
|
27
|
+
* @category Comms
|
|
28
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
29
|
+
*/
|
|
30
|
+
export interface WhatsAppTextInput {
|
|
31
|
+
/**
|
|
32
|
+
* @description Recipient phone number in international format
|
|
33
|
+
*/
|
|
34
|
+
to: string;
|
|
35
|
+
/**
|
|
36
|
+
* @description Text message body
|
|
37
|
+
*/
|
|
38
|
+
text: string;
|
|
39
|
+
/**
|
|
40
|
+
* @description Whether WhatsApp generates a link preview
|
|
41
|
+
*/
|
|
42
|
+
previewUrl?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @description Input for sending a WhatsApp template message
|
|
46
|
+
* @summary Carries the recipient, the approved `templateName`, its
|
|
47
|
+
* `languageCode`, and optional template `components`.
|
|
48
|
+
* @category Comms
|
|
49
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
50
|
+
*/
|
|
51
|
+
export interface WhatsAppTemplateInput {
|
|
52
|
+
/**
|
|
53
|
+
* @description Recipient phone number in international format
|
|
54
|
+
*/
|
|
55
|
+
to: string;
|
|
56
|
+
/**
|
|
57
|
+
* @description Name of the approved message template
|
|
58
|
+
*/
|
|
59
|
+
templateName: string;
|
|
60
|
+
/**
|
|
61
|
+
* @description Template language code (e.g. `"en_US"`)
|
|
62
|
+
*/
|
|
63
|
+
languageCode: string;
|
|
64
|
+
/**
|
|
65
|
+
* @description Optional template components (header/body/button parameters)
|
|
66
|
+
*/
|
|
67
|
+
components?: unknown[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @description Supported WhatsApp media message types
|
|
71
|
+
* @summary The media kinds the Cloud API accepts in the message `type` field.
|
|
72
|
+
* @category Comms
|
|
73
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
74
|
+
*/
|
|
75
|
+
export type WhatsAppMediaType = "image" | "audio" | "video" | "document";
|
|
76
|
+
/**
|
|
77
|
+
* @description Input for sending a WhatsApp media message
|
|
78
|
+
* @summary Carries the recipient, the media `type`, and either a previously
|
|
79
|
+
* uploaded `mediaId` or a public `link` (one is required), plus an optional
|
|
80
|
+
* `caption` and `filename`.
|
|
81
|
+
* @category Comms
|
|
82
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
83
|
+
*/
|
|
84
|
+
export interface WhatsAppMediaInput {
|
|
85
|
+
/**
|
|
86
|
+
* @description Recipient phone number in international format
|
|
87
|
+
*/
|
|
88
|
+
to: string;
|
|
89
|
+
/**
|
|
90
|
+
* @description Media kind sent in the message `type` field
|
|
91
|
+
*/
|
|
92
|
+
type: WhatsAppMediaType;
|
|
93
|
+
/**
|
|
94
|
+
* @description ID of previously uploaded WhatsApp media
|
|
95
|
+
*/
|
|
96
|
+
mediaId?: string;
|
|
97
|
+
/**
|
|
98
|
+
* @description Public URL of the media (alternative to `mediaId`)
|
|
99
|
+
*/
|
|
100
|
+
link?: string;
|
|
101
|
+
/**
|
|
102
|
+
* @description Optional caption (images, videos, documents)
|
|
103
|
+
*/
|
|
104
|
+
caption?: string;
|
|
105
|
+
/**
|
|
106
|
+
* @description Optional filename (documents)
|
|
107
|
+
*/
|
|
108
|
+
filename?: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @description Input for marking a WhatsApp message as read
|
|
112
|
+
* @summary Carries the inbound `messageId` to acknowledge.
|
|
113
|
+
* @category Comms
|
|
114
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
115
|
+
*/
|
|
116
|
+
export interface WhatsAppReadInput {
|
|
117
|
+
/**
|
|
118
|
+
* @description ID of the inbound message to mark read
|
|
119
|
+
*/
|
|
120
|
+
messageId: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @description WhatsApp Cloud API integration service
|
|
124
|
+
* @summary An undecorated HTTP service for text, template, and media
|
|
125
|
+
* messages, read receipts, and media metadata. Every message operation needs
|
|
126
|
+
* both the access token and the sender phone number ID; missing credentials or
|
|
127
|
+
* identifiers raise `InternalError`, and transport failures are mapped to decaf
|
|
128
|
+
* errors via {@link httpError}.
|
|
129
|
+
* @class WhatsAppService
|
|
130
|
+
* @extends HttpApiService
|
|
131
|
+
* @category Comms
|
|
132
|
+
* @example
|
|
133
|
+
* ```ts
|
|
134
|
+
* import { WhatsAppService } from "@decaf-ts/integrations/comms/whatsapp";
|
|
135
|
+
*
|
|
136
|
+
* const whatsapp = new WhatsAppService();
|
|
137
|
+
* await whatsapp.initialize({
|
|
138
|
+
* token: process.env.GRAPH_CREDENTIAL_WHATSAPP_TOKEN,
|
|
139
|
+
* phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID,
|
|
140
|
+
* });
|
|
141
|
+
* await whatsapp.sendText({ to: "15551234567", text: "Hello" });
|
|
142
|
+
* ```
|
|
143
|
+
* @mermaid
|
|
144
|
+
* sequenceDiagram
|
|
145
|
+
* autonumber
|
|
146
|
+
* participant Caller
|
|
147
|
+
* participant Service as WhatsAppService
|
|
148
|
+
* participant Graph as WhatsApp Cloud API
|
|
149
|
+
* Caller->>Service: sendText(input)
|
|
150
|
+
* activate Service
|
|
151
|
+
* Service->>Service: requireTokenAndPhone()
|
|
152
|
+
* Service->>Graph: POST /{phoneNumberId}/messages
|
|
153
|
+
* activate Graph
|
|
154
|
+
* Graph-->>Service: message payload
|
|
155
|
+
* deactivate Graph
|
|
156
|
+
* Service-->>Caller: message payload
|
|
157
|
+
* deactivate Service
|
|
158
|
+
* @memberOf module:integrations/comms/whatsapp/service
|
|
159
|
+
*/
|
|
160
|
+
export declare class WhatsAppService extends HttpApiService<WhatsAppServiceConfig> {
|
|
161
|
+
/**
|
|
162
|
+
* @description The provider name used in error messages
|
|
163
|
+
*/
|
|
164
|
+
protected readonly serviceName = "WhatsApp";
|
|
165
|
+
/**
|
|
166
|
+
* @description The WhatsApp Cloud API base URL
|
|
167
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
168
|
+
* @returns {string} `"https://graph.facebook.com/v19.0"`.
|
|
169
|
+
*/
|
|
170
|
+
protected defaultBaseUrl(): string;
|
|
171
|
+
/**
|
|
172
|
+
* @description Builds the WhatsApp bearer authorization headers
|
|
173
|
+
* @summary Returns `Authorization: Bearer <token>` when configured, and no
|
|
174
|
+
* headers otherwise.
|
|
175
|
+
* @param {WhatsAppServiceConfig} config - The resolved service configuration.
|
|
176
|
+
* @returns {Record<string, string>} The authorization headers (empty without a token).
|
|
177
|
+
*/
|
|
178
|
+
protected authHeaders(config: WhatsAppServiceConfig): Record<string, string>;
|
|
179
|
+
/**
|
|
180
|
+
* @description Reads the WhatsApp credentials and defaults from the environment
|
|
181
|
+
* @summary Reads the `comms.whatsApp` slice and returns a partial config
|
|
182
|
+
* when a token or phone number ID is configured, `undefined` otherwise.
|
|
183
|
+
* Values pass through `envString`/`envNumber` to reject unset-leaf proxies.
|
|
184
|
+
* @returns {Partial<WhatsAppServiceConfig> | undefined} A partial config, or `undefined` when neither credential is configured.
|
|
185
|
+
*/
|
|
186
|
+
protected configFromEnvironment(): Partial<WhatsAppServiceConfig> | undefined;
|
|
187
|
+
/**
|
|
188
|
+
* @description Asserts the access token and sender phone number ID
|
|
189
|
+
* @summary Calls `requireToken()` and returns the configured
|
|
190
|
+
* `phoneNumberId` used to build the messages path.
|
|
191
|
+
* @returns {string} The configured sender phone number ID.
|
|
192
|
+
* @throws {InternalError} When no token or phone number ID is configured.
|
|
193
|
+
*/
|
|
194
|
+
protected requireTokenAndPhone(): string;
|
|
195
|
+
/**
|
|
196
|
+
* @description Builds the encoded messages path for a sender
|
|
197
|
+
* @summary Encodes the phone number ID into `/<id>/messages`.
|
|
198
|
+
* @param {string} phoneNumberId - The sender phone number ID.
|
|
199
|
+
* @returns {string} The messages API path.
|
|
200
|
+
*/
|
|
201
|
+
private messagesPath;
|
|
202
|
+
/**
|
|
203
|
+
* @description Sends a WhatsApp text message
|
|
204
|
+
* @summary `POST`s a `text` message to the sender's `/messages` endpoint
|
|
205
|
+
* and returns the WhatsApp message payload.
|
|
206
|
+
* @param {WhatsAppTextInput} input - The recipient, text, and preview flag.
|
|
207
|
+
* @returns {Promise<unknown>} The WhatsApp message payload.
|
|
208
|
+
* @throws {InternalError} When credentials or the phone number ID are missing.
|
|
209
|
+
* @throws {BadRequestError} When WhatsApp rejects the message.
|
|
210
|
+
* @example
|
|
211
|
+
* ```ts
|
|
212
|
+
* await whatsapp.sendText({ to: "15551234567", text: "Deployment finished" });
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
sendText(input: WhatsAppTextInput): Promise<unknown>;
|
|
216
|
+
/**
|
|
217
|
+
* @description Sends a WhatsApp template message
|
|
218
|
+
* @summary `POST`s a `template` message referencing an approved template
|
|
219
|
+
* name and language, with optional components.
|
|
220
|
+
* @param {WhatsAppTemplateInput} input - The recipient and template definition.
|
|
221
|
+
* @returns {Promise<unknown>} The WhatsApp message payload.
|
|
222
|
+
* @throws {InternalError} When credentials or the phone number ID are missing.
|
|
223
|
+
* @throws {BadRequestError} When WhatsApp rejects the template message.
|
|
224
|
+
*/
|
|
225
|
+
sendTemplate(input: WhatsAppTemplateInput): Promise<unknown>;
|
|
226
|
+
/**
|
|
227
|
+
* @description Sends a WhatsApp media message
|
|
228
|
+
* @summary `POST`s an `image`/`audio`/`video`/`document` message using
|
|
229
|
+
* either an uploaded `mediaId` or a public `link`, with optional caption and
|
|
230
|
+
* filename.
|
|
231
|
+
* @param {WhatsAppMediaInput} input - The recipient and media reference.
|
|
232
|
+
* @returns {Promise<unknown>} The WhatsApp message payload.
|
|
233
|
+
* @throws {InternalError} When credentials or the phone number ID are missing, or neither `mediaId` nor `link` is provided.
|
|
234
|
+
* @throws {BadRequestError} When WhatsApp rejects the media message.
|
|
235
|
+
*/
|
|
236
|
+
sendMedia(input: WhatsAppMediaInput): Promise<unknown>;
|
|
237
|
+
/**
|
|
238
|
+
* @description Marks an inbound WhatsApp message as read
|
|
239
|
+
* @summary `POST`s a `read` status for the message to the sender's
|
|
240
|
+
* `/messages` endpoint.
|
|
241
|
+
* @param {WhatsAppReadInput} input - The inbound message ID to acknowledge.
|
|
242
|
+
* @returns {Promise<unknown>} The WhatsApp status payload.
|
|
243
|
+
* @throws {InternalError} When credentials, the phone number ID, or the message ID are missing.
|
|
244
|
+
* @throws {BadRequestError} When WhatsApp rejects the request.
|
|
245
|
+
*/
|
|
246
|
+
markAsRead(input: WhatsAppReadInput): Promise<unknown>;
|
|
247
|
+
/**
|
|
248
|
+
* @description Fetches WhatsApp media metadata
|
|
249
|
+
* @summary `GET`s the media descriptor (URL, MIME type, size) by media ID;
|
|
250
|
+
* the descriptor's URL is then used to download the binary.
|
|
251
|
+
* @param {string} mediaId - The WhatsApp media ID.
|
|
252
|
+
* @returns {Promise<unknown>} The media metadata payload.
|
|
253
|
+
* @throws {InternalError} When no token is configured or the media ID is empty.
|
|
254
|
+
* @throws {NotFoundError} When the media does not exist (HTTP 404).
|
|
255
|
+
* @throws {BadRequestError} When WhatsApp rejects the request.
|
|
256
|
+
*/
|
|
257
|
+
getMedia(mediaId: string): Promise<unknown>;
|
|
258
|
+
}
|