@decaf-ts/integrations 0.11.0 → 0.12.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/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 +63 -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 +31 -0
- package/lib/cjs/comms/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/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/environment.cjs +46 -0
- package/lib/cjs/io/environment.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 +30 -0
- package/lib/cjs/io/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/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 +59 -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 +14 -0
- package/lib/esm/comms/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/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/environment.js +42 -0
- package/lib/esm/io/environment.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 +13 -0
- package/lib/esm/io/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/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 +84 -0
- package/lib/types/comms/environment.d.mts +84 -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 +13 -0
- package/lib/types/comms/index.d.mts +13 -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/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/environment.d.cts +67 -0
- package/lib/types/io/environment.d.mts +67 -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 +12 -0
- package/lib/types/io/index.d.mts +12 -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 +180 -3
- package/sql/002_rls.sql +660 -15
- package/sql/004_credentials.sql +46 -0
|
@@ -0,0 +1,204 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SmtpClient = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* @module integrations/comms/email/smtp
|
|
39
|
+
* @summary SMTP client used by the Email service for direct SMTP delivery.
|
|
40
|
+
* @description Delegates the SMTP protocol to the optional `nodemailer`
|
|
41
|
+
* library (the same library n8n uses) instead of hand-rolling the wire
|
|
42
|
+
* protocol: the transport performs EHLO, STARTTLS/implicit TLS, AUTH LOGIN,
|
|
43
|
+
* and the `MAIL FROM`/`RCPT TO`/`DATA` transaction for a pre-built raw MIME
|
|
44
|
+
* message. The public {@link SmtpClient} surface is unchanged. Envelope
|
|
45
|
+
* addresses are validated through {@link assertEmailAddress} (decaf
|
|
46
|
+
* `BadRequestError`s) before they reach any SMTP command, and credentials are
|
|
47
|
+
* never sent over a plaintext session unless `SmtpConfig.allowPlaintextAuth`
|
|
48
|
+
* opts in.
|
|
49
|
+
*/
|
|
50
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
51
|
+
const mime_js_1 = require("./mime.cjs");
|
|
52
|
+
/**
|
|
53
|
+
* @description SMTP client for raw MIME delivery
|
|
54
|
+
* @summary Connects and authenticates through a nodemailer SMTP transport
|
|
55
|
+
* (implicit TLS on `secure`, STARTTLS otherwise), then delivers a pre-built
|
|
56
|
+
* message with the envelope sender/recipients and the raw RFC 5322 source.
|
|
57
|
+
* Credentials are never sent over a plaintext session unless
|
|
58
|
+
* `allowPlaintextAuth` is set, and every envelope address is validated before
|
|
59
|
+
* it reaches the transport.
|
|
60
|
+
* @category Comms
|
|
61
|
+
* @memberOf module:integrations/comms/email/smtp
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { SmtpClient, buildEmail } from "@decaf-ts/integrations/comms/email";
|
|
65
|
+
*
|
|
66
|
+
* const client = new SmtpClient({
|
|
67
|
+
* host: "smtp.example.com",
|
|
68
|
+
* port: 587,
|
|
69
|
+
* username: "noreply@example.com",
|
|
70
|
+
* password: process.env.SMTP_PASSWORD,
|
|
71
|
+
* });
|
|
72
|
+
* await client.connect();
|
|
73
|
+
* const mail = buildEmail({
|
|
74
|
+
* from: "noreply@example.com",
|
|
75
|
+
* to: ["ops@example.com"],
|
|
76
|
+
* subject: "Nightly report",
|
|
77
|
+
* text: "All systems nominal.",
|
|
78
|
+
* });
|
|
79
|
+
* await client.send(mail.from, mail.recipients, mail.raw);
|
|
80
|
+
* await client.close();
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
class SmtpClient {
|
|
84
|
+
/**
|
|
85
|
+
* @description Creates an SMTP client
|
|
86
|
+
* @summary Stores the config; the nodemailer transport is only created and
|
|
87
|
+
* verified by {@link SmtpClient.connect}.
|
|
88
|
+
* @param config - Server address, optional credentials, and TLS/timeout options
|
|
89
|
+
*/
|
|
90
|
+
constructor(config) {
|
|
91
|
+
this.config = config;
|
|
92
|
+
}
|
|
93
|
+
transportOptions() {
|
|
94
|
+
const secure = this.config.secure ?? false;
|
|
95
|
+
const hasCredentials = Boolean(this.config.username && this.config.password);
|
|
96
|
+
const timeout = this.config.timeout ?? 30000;
|
|
97
|
+
return {
|
|
98
|
+
host: this.config.host,
|
|
99
|
+
port: this.config.port ?? (secure ? 465 : 587),
|
|
100
|
+
secure,
|
|
101
|
+
name: this.config.clientHostname ?? "as-graph",
|
|
102
|
+
requireTLS: !secure && hasCredentials && !this.config.allowPlaintextAuth,
|
|
103
|
+
auth: hasCredentials
|
|
104
|
+
? {
|
|
105
|
+
user: this.config.username,
|
|
106
|
+
pass: this.config.password,
|
|
107
|
+
method: "LOGIN",
|
|
108
|
+
}
|
|
109
|
+
: undefined,
|
|
110
|
+
tls: this.config.allowUnauthorizedCerts
|
|
111
|
+
? { rejectUnauthorized: false }
|
|
112
|
+
: undefined,
|
|
113
|
+
connectionTimeout: timeout,
|
|
114
|
+
greetingTimeout: timeout,
|
|
115
|
+
socketTimeout: timeout,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
transportError(prefix, error) {
|
|
119
|
+
if (error instanceof db_decorators_1.InternalError)
|
|
120
|
+
return error;
|
|
121
|
+
return new db_decorators_1.InternalError(`${prefix}: ${error instanceof Error ? error.message : String(error)}`);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* @description Opens the SMTP session
|
|
125
|
+
* @summary Lazily loads the optional `nodemailer` peer, builds the SMTP
|
|
126
|
+
* transport for the configured host/credentials, and verifies it
|
|
127
|
+
* (`EHLO` + TLS upgrade + `AUTH LOGIN` when credentials are configured).
|
|
128
|
+
* Authentication fails closed: with credentials configured and no encrypted
|
|
129
|
+
* session, the transport requires STARTTLS and verification fails unless
|
|
130
|
+
* `allowPlaintextAuth` was set on the config.
|
|
131
|
+
* @throws {InternalError} when `nodemailer` is not installed, or on
|
|
132
|
+
* connection, TLS, or auth failures
|
|
133
|
+
*/
|
|
134
|
+
async connect() {
|
|
135
|
+
if (this.transporter)
|
|
136
|
+
return;
|
|
137
|
+
const moduleName = "nodemailer";
|
|
138
|
+
let module;
|
|
139
|
+
try {
|
|
140
|
+
module = (await Promise.resolve(`${moduleName}`).then(s => __importStar(require(s))));
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
throw new db_decorators_1.InternalError("SMTP delivery requires the optional 'nodemailer' package; install it to use this surface");
|
|
144
|
+
}
|
|
145
|
+
if (typeof module.createTransport !== "function") {
|
|
146
|
+
throw new db_decorators_1.InternalError("The optional 'nodemailer' package did not export createTransport");
|
|
147
|
+
}
|
|
148
|
+
const transporter = module.createTransport(this.transportOptions(), {
|
|
149
|
+
disableFileAccess: true,
|
|
150
|
+
disableUrlAccess: true,
|
|
151
|
+
});
|
|
152
|
+
try {
|
|
153
|
+
await transporter.verify();
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
transporter.close();
|
|
157
|
+
throw this.transportError("SMTP connection failed", error);
|
|
158
|
+
}
|
|
159
|
+
this.transporter = transporter;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @description Delivers a raw message over the established session
|
|
163
|
+
* @summary Validates the envelope, then hands the sender, recipients, and
|
|
164
|
+
* raw RFC 5322 source to nodemailer's `sendMail` (the transport performs
|
|
165
|
+
* queueing, dot-stuffing, and CRLF normalization).
|
|
166
|
+
* @param from - Envelope sender address
|
|
167
|
+
* @param recipients - Envelope recipient addresses
|
|
168
|
+
* @param raw - Raw RFC 5322 message text
|
|
169
|
+
* @throws {InternalError} when not connected or the server rejects delivery
|
|
170
|
+
* @throws {BadRequestError} when the envelope sender or a recipient is not an allowlisted mailbox
|
|
171
|
+
*/
|
|
172
|
+
async send(from, recipients, raw) {
|
|
173
|
+
if (!this.transporter) {
|
|
174
|
+
throw new db_decorators_1.InternalError("SMTP client is not connected");
|
|
175
|
+
}
|
|
176
|
+
const sender = (0, mime_js_1.assertEmailAddress)(from, "envelope sender");
|
|
177
|
+
const envelopes = recipients.map((recipient) => (0, mime_js_1.assertEmailAddress)(recipient, "envelope recipient"));
|
|
178
|
+
const message = {
|
|
179
|
+
envelope: { from: sender, to: envelopes },
|
|
180
|
+
raw,
|
|
181
|
+
};
|
|
182
|
+
try {
|
|
183
|
+
await this.transporter.sendMail(message);
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
throw this.transportError("SMTP delivery failed", error);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @description Closes the session gracefully
|
|
191
|
+
* @summary Closes the nodemailer transport, ignoring shutdown failures.
|
|
192
|
+
*/
|
|
193
|
+
async close() {
|
|
194
|
+
try {
|
|
195
|
+
this.transporter?.close();
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
this.transporter = undefined;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.SmtpClient = SmtpClient;
|
|
203
|
+
//# sourceMappingURL=smtp.js.map
|
|
204
|
+
//# sourceMappingURL=smtp.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/email/smtp.cjs","sourceRoot":"","sources":["comms/email/smtp.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;GAYG;AACH,2DAAwD;AACxD,uCAA+C;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAa,UAAU;IACnB;;;;;OAKG;IACH,YAAY,MAAM;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,gBAAgB;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;QAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QAC7C,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9C,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,UAAU;YAC9C,UAAU,EAAE,CAAC,MAAM,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB;YACxE,IAAI,EAAE,cAAc;gBAChB,CAAC,CAAC;oBACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC1B,MAAM,EAAE,OAAO;iBAClB;gBACD,CAAC,CAAC,SAAS;YACf,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;gBACnC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE;gBAC/B,CAAC,CAAC,SAAS;YACf,iBAAiB,EAAE,OAAO;YAC1B,eAAe,EAAE,OAAO;YACxB,aAAa,EAAE,OAAO;SACzB,CAAC;IACN,CAAC;IACD,cAAc,CAAC,MAAM,EAAE,KAAK;QACxB,IAAI,KAAK,YAAY,6BAAa;YAC9B,OAAO,KAAK,CAAC;QACjB,OAAO,IAAI,6BAAa,CAAC,GAAG,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,WAAW;YAChB,OAAO;QACX,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACD,MAAM,GAAG,CAAC,yBAAa,UAAU,uCAAC,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,CAAC;YACH,MAAM,IAAI,6BAAa,CAAC,0FAA0F,CAAC,CAAC;QACxH,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,IAAI,6BAAa,CAAC,kEAAkE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAChE,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAC;QACH,IAAI,CAAC;YACD,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IACD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,6BAAa,CAAC,8BAA8B,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,4BAAkB,EAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACrG,MAAM,OAAO,GAAG;YACZ,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE;YACzC,GAAG;SACN,CAAC;QACF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;gBACO,CAAC;YACL,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACjC,CAAC;IACL,CAAC;CACJ;AAtHD,gCAsHC;AACD,gCAAgC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommsEnvironment = void 0;
|
|
4
|
+
const logging_1 = require("@decaf-ts/logging");
|
|
5
|
+
/**
|
|
6
|
+
* @description Accumulated comms environment singleton
|
|
7
|
+
* @summary The `LoggedEnvironment.accumulate`-registered instance backing the
|
|
8
|
+
* `CommsEnvironmentShape` contract. Comms services read their provider slice
|
|
9
|
+
* (e.g. `CommsEnvironment.comms.slack`) inside `configFromEnvironment()` and
|
|
10
|
+
* translate it into an `HttpApiServiceConfig`-derived config. Credentials come
|
|
11
|
+
* from environment variables; for as-graph node usage those are provided as
|
|
12
|
+
* `GRAPH_CREDENTIAL_*` values (placeholders in this example).
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { SlackService } from "@decaf-ts/integrations/comms/slack";
|
|
16
|
+
*
|
|
17
|
+
* // with comms.slack.token / comms.slack.baseUrl configured in the environment
|
|
18
|
+
* const slack = new SlackService();
|
|
19
|
+
* await slack.initialize();
|
|
20
|
+
* ```
|
|
21
|
+
* @constant {LoggedEnvironment} CommsEnvironment
|
|
22
|
+
* @memberOf module:integrations/comms/environment
|
|
23
|
+
*/
|
|
24
|
+
exports.CommsEnvironment = logging_1.LoggedEnvironment.accumulate({
|
|
25
|
+
comms: {
|
|
26
|
+
slack: {
|
|
27
|
+
token: "",
|
|
28
|
+
baseUrl: "",
|
|
29
|
+
timeout: undefined,
|
|
30
|
+
},
|
|
31
|
+
telegram: {
|
|
32
|
+
token: "",
|
|
33
|
+
baseUrl: "",
|
|
34
|
+
timeout: undefined,
|
|
35
|
+
},
|
|
36
|
+
teams: {
|
|
37
|
+
token: "",
|
|
38
|
+
webhookUrl: "",
|
|
39
|
+
baseUrl: "",
|
|
40
|
+
timeout: undefined,
|
|
41
|
+
},
|
|
42
|
+
email: {
|
|
43
|
+
provider: "",
|
|
44
|
+
host: "",
|
|
45
|
+
port: undefined,
|
|
46
|
+
secure: undefined,
|
|
47
|
+
username: "",
|
|
48
|
+
password: "",
|
|
49
|
+
from: "",
|
|
50
|
+
token: "",
|
|
51
|
+
graphBaseUrl: "",
|
|
52
|
+
timeout: undefined,
|
|
53
|
+
},
|
|
54
|
+
gmail: {
|
|
55
|
+
token: "",
|
|
56
|
+
userId: "",
|
|
57
|
+
baseUrl: "",
|
|
58
|
+
timeout: undefined,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=environment.js.map
|
|
63
|
+
//# sourceMappingURL=environment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/environment.cjs","sourceRoot":"","sources":["comms/environment.js"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,gBAAgB,GAAG,2BAAiB,CAAC,UAAU,CAAC;IACzD,KAAK,EAAE;QACH,KAAK,EAAE;YACH,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;QACD,QAAQ,EAAE;YACN,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;QACD,KAAK,EAAE;YACH,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;QACD,KAAK,EAAE;YACH,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,SAAS;SACrB;QACD,KAAK,EAAE;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;KACJ;CACJ,CAAC,CAAC;AACH,uCAAuC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GmailService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module integrations/comms/gmail/service
|
|
6
|
+
* @summary Gmail API integration service for sending and listing messages.
|
|
7
|
+
* @description Exposes the Gmail REST API (`users.messages.send`,
|
|
8
|
+
* `users.messages.list`, `users.messages.get`, `users.labels.list`) as an
|
|
9
|
+
* undecorated client-based service built on {@link HttpApiService}.
|
|
10
|
+
* Message sending reuses the shared MIME builder from the email integration
|
|
11
|
+
* (`buildEmail`) and posts the raw MIME message as base64url. Configuration
|
|
12
|
+
* comes from an explicit `GmailServiceConfig` or the `comms.gmail` environment
|
|
13
|
+
* slice, and failures are mapped to decaf errors via {@link httpError}.
|
|
14
|
+
*/
|
|
15
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
16
|
+
const environment_js_1 = require("./../environment.cjs");
|
|
17
|
+
const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
|
|
18
|
+
const index_js_1 = require("./../../shared/http/index.cjs");
|
|
19
|
+
const mime_js_1 = require("./../email/mime.cjs");
|
|
20
|
+
/**
|
|
21
|
+
* @description Gmail API integration service
|
|
22
|
+
* @summary An undecorated HTTP service for sending MIME-built
|
|
23
|
+
* emails, listing messages with Gmail query syntax and page tokens, fetching
|
|
24
|
+
* a single message in a chosen format, and listing labels. All operations
|
|
25
|
+
* require an OAuth token (`requireToken()`) and operate on the configured
|
|
26
|
+
* `userId` mailbox (default `"me"`); transport failures are mapped to decaf
|
|
27
|
+
* errors via {@link httpError}.
|
|
28
|
+
* @class GmailService
|
|
29
|
+
* @category Comms
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { GmailService } from "@decaf-ts/integrations/comms/gmail";
|
|
33
|
+
*
|
|
34
|
+
* const gmail = new GmailService();
|
|
35
|
+
* await gmail.initialize({
|
|
36
|
+
* token: process.env.GRAPH_CREDENTIAL_GMAIL_TOKEN,
|
|
37
|
+
* });
|
|
38
|
+
* await gmail.send({
|
|
39
|
+
* from: "bot@example.com",
|
|
40
|
+
* to: "ops@example.com",
|
|
41
|
+
* subject: "Deploy",
|
|
42
|
+
* text: "Release 1.2.0 is live",
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
* @memberOf module:integrations/comms/gmail/service
|
|
46
|
+
*/
|
|
47
|
+
class GmailService extends index_js_1.HttpApiService {
|
|
48
|
+
constructor() {
|
|
49
|
+
super(...arguments);
|
|
50
|
+
/**
|
|
51
|
+
* @description The provider name used in error messages
|
|
52
|
+
*/
|
|
53
|
+
this.serviceName = "Gmail";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @description The Gmail REST API base URL
|
|
57
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
58
|
+
* @returns {string} `"https://gmail.googleapis.com/gmail/v1"`.
|
|
59
|
+
*/
|
|
60
|
+
defaultBaseUrl() {
|
|
61
|
+
return "https://gmail.googleapis.com/gmail/v1";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @description Builds the Gmail OAuth bearer authorization headers
|
|
65
|
+
* @summary Returns the `Authorization: Bearer <token>` header when the
|
|
66
|
+
* config carries a token, and no headers otherwise.
|
|
67
|
+
* @param {GmailServiceConfig} 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 Gmail credentials and defaults from the environment
|
|
75
|
+
* @summary Reads the `comms.gmail` environment slice and returns a partial
|
|
76
|
+
* config when a token is configured, `undefined` otherwise. Values pass
|
|
77
|
+
* through `envString`/`envNumber` to reject unset-leaf proxies.
|
|
78
|
+
* @returns {Partial<GmailServiceConfig> | undefined} A partial config, or `undefined` when no Gmail token is configured.
|
|
79
|
+
*/
|
|
80
|
+
configFromEnvironment() {
|
|
81
|
+
const env = environment_js_1.CommsEnvironment.comms.gmail;
|
|
82
|
+
const token = (0, environmentValue_js_1.envString)(env?.token);
|
|
83
|
+
if (!token)
|
|
84
|
+
return undefined;
|
|
85
|
+
return {
|
|
86
|
+
token,
|
|
87
|
+
userId: (0, environmentValue_js_1.envString)(env.userId),
|
|
88
|
+
baseUrl: (0, environmentValue_js_1.envString)(env.baseUrl),
|
|
89
|
+
timeout: (0, environmentValue_js_1.envNumber)(env.timeout),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @description Builds the mailbox-scoped API path
|
|
94
|
+
* @summary Returns `/users/<userId>` with the configured `userId` (or
|
|
95
|
+
* `"me"` when unset) URL-encoded; all message and label operations are
|
|
96
|
+
* relative to this path.
|
|
97
|
+
* @returns {string} The URL-encoded mailbox path.
|
|
98
|
+
*/
|
|
99
|
+
userPath() {
|
|
100
|
+
return `/users/${encodeURIComponent(this.config.userId ?? "me")}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @description Sends an email through the Gmail API
|
|
104
|
+
* @summary Builds a raw MIME message from the input with the shared email
|
|
105
|
+
* MIME builder (`buildEmail`), base64url-encodes it, and `POST`s it to
|
|
106
|
+
* `users.messages.send`. Requires a token and a `from` sender address.
|
|
107
|
+
* @param {EmailMessageInput} input - The message envelope and body (`from`, `to`, `subject`, and optional `cc`/`bcc`/`text`/`html`/`replyTo`/`attachments`).
|
|
108
|
+
* @returns {Promise<GmailSendResult>} Gmail's identifiers for the sent message.
|
|
109
|
+
* @throws {InternalError} When no token is configured or the sender address is missing.
|
|
110
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
111
|
+
* @throws {ConflictError} When Gmail answers with HTTP 409.
|
|
112
|
+
* @throws {BadRequestError} When Gmail answers with any other HTTP error status (e.g. invalid recipients).
|
|
113
|
+
*/
|
|
114
|
+
async send(input) {
|
|
115
|
+
this.requireToken();
|
|
116
|
+
if (!input.from) {
|
|
117
|
+
throw new db_decorators_1.InternalError("Gmail send requires a sender address");
|
|
118
|
+
}
|
|
119
|
+
const built = (0, mime_js_1.buildEmail)(input);
|
|
120
|
+
try {
|
|
121
|
+
const response = await this.client.post(`${this.userPath()}/messages/send`, {
|
|
122
|
+
raw: Buffer.from(built.raw, "utf8").toString("base64url"),
|
|
123
|
+
});
|
|
124
|
+
return {
|
|
125
|
+
id: String(response.data.id ?? built.messageId),
|
|
126
|
+
threadId: response.data.threadId,
|
|
127
|
+
labelIds: response.data.labelIds,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
throw (0, index_js_1.httpError)("Gmail", "send message", error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* @description Lists mailbox messages with Gmail query paging
|
|
136
|
+
* @summary `GET`s `users.messages.list` with an optional Gmail `query`
|
|
137
|
+
* (`q` parameter, e.g. `"from:user@example.com is:unread"`), a page size
|
|
138
|
+
* (default `25`), a `pageToken` from the previous page, and `labelIds`
|
|
139
|
+
* filtering. Returns the message references and the `nextPageToken` to pass
|
|
140
|
+
* back as `pageToken` for the next page.
|
|
141
|
+
* @param {object} [options] - Query and paging options.
|
|
142
|
+
* @param {string} [options.query] - Gmail search query (`q` parameter).
|
|
143
|
+
* @param {number} [options.maxResults] - Page size; defaults to `25`.
|
|
144
|
+
* @param {string} [options.pageToken] - The `nextPageToken` from the previous page.
|
|
145
|
+
* @param {string[]} [options.labelIds] - Label IDs the messages must carry.
|
|
146
|
+
* @returns {Promise<GmailListResult>} One page of message references with the next page token when more pages exist.
|
|
147
|
+
* @throws {InternalError} When no token is configured.
|
|
148
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
149
|
+
* @throws {ConflictError} When Gmail answers with HTTP 409.
|
|
150
|
+
* @throws {BadRequestError} When Gmail answers with any other HTTP error status (e.g. invalid query).
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* let pageToken: string | undefined;
|
|
154
|
+
* do {
|
|
155
|
+
* const page = await gmail.listMessages({
|
|
156
|
+
* query: "is:unread",
|
|
157
|
+
* maxResults: 100,
|
|
158
|
+
* pageToken,
|
|
159
|
+
* });
|
|
160
|
+
* console.log(page.messages);
|
|
161
|
+
* pageToken = page.nextPageToken;
|
|
162
|
+
* } while (pageToken);
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
async listMessages(options = {}) {
|
|
166
|
+
this.requireToken();
|
|
167
|
+
try {
|
|
168
|
+
const response = await this.client.get(`${this.userPath()}/messages`, {
|
|
169
|
+
params: {
|
|
170
|
+
q: options.query,
|
|
171
|
+
maxResults: options.maxResults ?? 25,
|
|
172
|
+
pageToken: options.pageToken,
|
|
173
|
+
labelIds: options.labelIds,
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
return {
|
|
177
|
+
messages: response.data.messages ?? [],
|
|
178
|
+
nextPageToken: response.data.nextPageToken,
|
|
179
|
+
resultSizeEstimate: response.data.resultSizeEstimate,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
throw (0, index_js_1.httpError)("Gmail", "list messages", error);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* @description Fetches a single Gmail message
|
|
188
|
+
* @summary `GET`s `users.messages.get` for the given message ID with the
|
|
189
|
+
* requested `format`. With `"full"` (the default) the payload includes the
|
|
190
|
+
* parsed body parts; `"metadata"` limits it to headers and labels,
|
|
191
|
+
* `"minimal"` to identifiers only, and `"raw"` returns the raw MIME string.
|
|
192
|
+
* @param {string} id - The Gmail message ID.
|
|
193
|
+
* @param {"full" | "metadata" | "minimal" | "raw"} [format] - The message format to request; defaults to `"full"`.
|
|
194
|
+
* @returns {Promise<Record<string, unknown>>} The raw Gmail message payload in the requested format.
|
|
195
|
+
* @throws {InternalError} When no token is configured or the message ID is empty.
|
|
196
|
+
* @throws {NotFoundError} When the message does not exist (HTTP 404).
|
|
197
|
+
* @throws {ConflictError} When Gmail answers with HTTP 409.
|
|
198
|
+
* @throws {BadRequestError} When Gmail answers with any other HTTP error status.
|
|
199
|
+
*/
|
|
200
|
+
async getMessage(id, format = "full") {
|
|
201
|
+
this.requireToken();
|
|
202
|
+
if (!id)
|
|
203
|
+
throw new db_decorators_1.InternalError("Gmail getMessage requires a message ID");
|
|
204
|
+
try {
|
|
205
|
+
const response = await this.client.get(`${this.userPath()}/messages/${encodeURIComponent(id)}`, { params: { format } });
|
|
206
|
+
return response.data;
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
throw (0, index_js_1.httpError)("Gmail", "get message", error);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* @description Lists the mailbox's Gmail labels
|
|
214
|
+
* @summary `GET`s `users.labels.list` and returns the raw label payloads
|
|
215
|
+
* (including `id`, `name`, and `type`).
|
|
216
|
+
* @returns {Promise<Array<Record<string, unknown>>>} The raw Gmail label payloads.
|
|
217
|
+
* @throws {InternalError} When no token is configured.
|
|
218
|
+
* @throws {NotFoundError} When the endpoint answers with HTTP 404.
|
|
219
|
+
* @throws {ConflictError} When Gmail answers with HTTP 409.
|
|
220
|
+
* @throws {BadRequestError} When Gmail answers with any other HTTP error status.
|
|
221
|
+
*/
|
|
222
|
+
async listLabels() {
|
|
223
|
+
this.requireToken();
|
|
224
|
+
try {
|
|
225
|
+
const response = await this.client.get(`${this.userPath()}/labels`);
|
|
226
|
+
return response.data.labels ?? [];
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
throw (0, index_js_1.httpError)("Gmail", "list labels", error);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
exports.GmailService = GmailService;
|
|
234
|
+
//# sourceMappingURL=GmailService.js.map
|
|
235
|
+
//# sourceMappingURL=GmailService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/gmail/GmailService.cjs","sourceRoot":"","sources":["comms/gmail/GmailService.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/gmail
|
|
19
|
+
* @summary Gmail service (REST v1 message send/list/get and label listing).
|
|
20
|
+
* @description Re-exports the Gmail client-based service and its types.
|
|
21
|
+
*/
|
|
22
|
+
__exportStar(require("./GmailService.cjs"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/gmail/index.cjs","sourceRoot":"","sources":["comms/gmail/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAkC;AAClC,iCAAiC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
|
19
|
+
* @summary Comms integration services (Slack, Telegram, Teams, Gmail, Email).
|
|
20
|
+
* @description Re-exports the messaging/email services, their per-service
|
|
21
|
+
* modules, and the shared `comms` environment slice. Each sub-module is also
|
|
22
|
+
* available through its own package subpath export.
|
|
23
|
+
*/
|
|
24
|
+
__exportStar(require("./email/index.cjs"), exports);
|
|
25
|
+
__exportStar(require("./gmail/index.cjs"), exports);
|
|
26
|
+
__exportStar(require("./slack/index.cjs"), exports);
|
|
27
|
+
__exportStar(require("./teams/index.cjs"), exports);
|
|
28
|
+
__exportStar(require("./telegram/index.cjs"), exports);
|
|
29
|
+
__exportStar(require("./environment.cjs"), exports);
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
31
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/index.cjs","sourceRoot":"","sources":["comms/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,mDAAiC;AACjC,iCAAiC"}
|