@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
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
1
|
/**
|
|
8
2
|
* @module integrations/blob/s3/service
|
|
9
3
|
* @summary AWS S3 blob store service.
|
|
10
|
-
* @description Thin
|
|
4
|
+
* @description Thin undecorated AWS S3 provider service on top of {@link S3CompatibleBlobStoreService}.
|
|
11
5
|
*/
|
|
12
|
-
import { Context
|
|
6
|
+
import { Context } from "@decaf-ts/core";
|
|
13
7
|
import { S3CompatibleBlobStoreService } from "./S3CompatibleBlobStoreService.js";
|
|
14
8
|
import { S3BlobEnvironment } from "./S3BlobEnvironment.js";
|
|
15
9
|
import { envBoolean, envNumber, envString, } from "./../../shared/environmentValue.js";
|
|
16
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @description AWS S3 blob store service
|
|
12
|
+
* @summary Undecorated provider service storing blobs in an AWS S3 bucket
|
|
13
|
+
* through {@link S3CompatibleBlobStoreService}. Falls back to the `blobs.s3`
|
|
14
|
+
* environment slice when `initialize()` is called without an explicit config.
|
|
15
|
+
* @class S3BlobStoreService
|
|
16
|
+
* @memberOf module:integrations/blob/s3/service
|
|
17
|
+
*/
|
|
18
|
+
export class S3BlobStoreService extends S3CompatibleBlobStoreService {
|
|
17
19
|
configFromEnvironment() {
|
|
18
20
|
const env = S3BlobEnvironment.blobs.s3;
|
|
19
21
|
const bucket = envString(env?.bucket);
|
|
@@ -48,9 +50,5 @@ let S3BlobStoreService = class S3BlobStoreService extends S3CompatibleBlobStoreS
|
|
|
48
50
|
}
|
|
49
51
|
return super.initialize(...args);
|
|
50
52
|
}
|
|
51
|
-
}
|
|
52
|
-
S3BlobStoreService = __decorate([
|
|
53
|
-
service("blob-s3")
|
|
54
|
-
], S3BlobStoreService);
|
|
55
|
-
export { S3BlobStoreService };
|
|
53
|
+
}
|
|
56
54
|
//# sourceMappingURL=S3BlobStoreService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3BlobStoreService.js","sourceRoot":"","sources":["../../../../src/blob/s3/S3BlobStoreService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"S3BlobStoreService.js","sourceRoot":"","sources":["../../../../src/blob/s3/S3BlobStoreService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAkB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,0CAAuC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,GACV,2CAAsC;AAIvC;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,4BAA4B;IAC/C,qBAAqB;QAGtC,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC5D,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAW;YAC3C,MAAM;YACN,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;YAC9C,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAClD,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;YACrC,WAAW,EAAE,WAAW;gBACtB,CAAC,CAAC;oBACE,WAAW;oBACX,eAAe,EAAE,SAAS,CACxB,GAAG,CAAC,WAAW,EAAE,eAAe,CACvB;oBACX,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;iBACvD;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,GAAG,IAAyB;QAE5B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzC,OAAO,GAAG;gBACR,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBAChC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
* @summary S3-compatible blob store base implementation.
|
|
4
4
|
* @description Shared CRUD implementation backed by the AWS SDK v3 S3Client, used by
|
|
5
5
|
* the S3, MinIO, and Cloudflare R2 provider services. Deliberately left undecorated:
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `@service("blob-<provider>")` decorator instead of stacking on top of one another.
|
|
6
|
+
* concrete providers are plain classes that consumers construct and boot
|
|
7
|
+
* explicitly (no injectable registration, no `Service.boot` auto-boot), and
|
|
8
|
+
* each extends this base directly instead of stacking on top of one another.
|
|
10
9
|
*/
|
|
11
10
|
import { CopyObjectCommand, CreateBucketCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client, } from "@aws-sdk/client-s3";
|
|
12
11
|
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
@@ -18,12 +17,9 @@ import { collectToBuffer, computeSha256, toAsyncIterable } from "./../core/BlobV
|
|
|
18
17
|
* @description Base implementation for S3-compatible blob stores
|
|
19
18
|
* @summary Implements the full blob CRUD API on top of the AWS SDK v3
|
|
20
19
|
* `S3Client` and is shared by the S3, MinIO, and Cloudflare R2 provider
|
|
21
|
-
* services. Deliberately left undecorated:
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* provider extends this class directly and carries its own
|
|
25
|
-
* `@service("blob-<provider>")` decorator instead of stacking on top of one
|
|
26
|
-
* another.
|
|
20
|
+
* services. Deliberately left undecorated: concrete providers are plain
|
|
21
|
+
* classes that consumers construct and boot explicitly, so no injectable
|
|
22
|
+
* registration or `Service.boot` auto-boot applies here.
|
|
27
23
|
* @class S3CompatibleBlobStoreService
|
|
28
24
|
* @memberOf module:integrations/blob/s3/base-service
|
|
29
25
|
*/
|
|
@@ -31,11 +27,11 @@ export class S3CompatibleBlobStoreService extends BlobStoreService {
|
|
|
31
27
|
/**
|
|
32
28
|
* @description Initializes the S3 client from config or environment
|
|
33
29
|
* @summary Resolves the config via `getConfigFromArgs` (explicit config,
|
|
34
|
-
* then the provider's environment slice). When no config resolves
|
|
35
|
-
*
|
|
36
|
-
* `blob-minio`/`blob-r2`
|
|
37
|
-
* `skipInitialization()` so
|
|
38
|
-
* `initialize()` with no resolvable config still throws a
|
|
30
|
+
* then the provider's environment slice). When no config resolves and the
|
|
31
|
+
* arguments carry a decaf `Context` (e.g. an unconfigured optional
|
|
32
|
+
* `blob-minio`/`blob-r2` provider next to `blob-s3`), returns
|
|
33
|
+
* `skipInitialization()` so the context-bearing boot does not throw; an
|
|
34
|
+
* explicit `initialize()` with no resolvable config still throws a
|
|
39
35
|
* `ValidationError`. Requires a `bucket`, builds the `S3Client` (with
|
|
40
36
|
* optional static credentials), stores config and client, and optionally
|
|
41
37
|
* creates the bucket when `autoCreateBucket` is set.
|
|
@@ -233,7 +229,9 @@ export class S3CompatibleBlobStoreService extends BlobStoreService {
|
|
|
233
229
|
async list(options = {}, ...args) {
|
|
234
230
|
const { log } = (await this.logCtx(args, "list", true)).for(this.list);
|
|
235
231
|
log.verbose("Listing blobs");
|
|
236
|
-
const prefix =
|
|
232
|
+
const prefix = options.prefix
|
|
233
|
+
? this.physicalKey(options.prefix)
|
|
234
|
+
: this.config.prefix?.replace(/^\/+|\/+$/g, "") || undefined;
|
|
237
235
|
try {
|
|
238
236
|
const response = await this.client.send(new ListObjectsV2Command({
|
|
239
237
|
Bucket: this.config.bucket,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3CompatibleBlobStoreService.js","sourceRoot":"","sources":["../../../../src/blob/s3/S3CompatibleBlobStoreService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"S3CompatibleBlobStoreService.js","sourceRoot":"","sources":["../../../../src/blob/s3/S3CompatibleBlobStoreService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/comms/email/service
|
|
3
|
+
* @summary Email integration service for sending mail and reading inboxes across SMTP, Microsoft Graph, and IMAP.
|
|
4
|
+
* @description Exposes an undecorated client-based service that
|
|
5
|
+
* multiplexes three delivery surfaces behind one config: SMTP delivery through
|
|
6
|
+
* the built-in {@link SmtpClient} (raw MIME built by {@link buildEmail}), and
|
|
7
|
+
* Microsoft Graph (`sendMail`, message listing) through {@link HttpApiService}
|
|
8
|
+
* with a bearer token. `listInbox` reads via Graph while `listImapMessages`
|
|
9
|
+
* dynamically imports the optional `imapflow` package for direct IMAP reads.
|
|
10
|
+
* Configuration comes from an explicit {@link EmailServiceConfig} or the
|
|
11
|
+
* `comms.email` environment slice; failures are mapped to decaf errors via
|
|
12
|
+
* {@link httpError} (Graph) or wrapped `InternalError`s (SMTP).
|
|
13
|
+
*/
|
|
14
|
+
import { BadRequestError, InternalError } from "@decaf-ts/db-decorators";
|
|
15
|
+
import { CommsEnvironment } from "./../environment.js";
|
|
16
|
+
import { envBoolean, envNumber, envString, } from "./../../shared/environmentValue.js";
|
|
17
|
+
import { HttpApiService, httpError, } from "./../../shared/http/index.js";
|
|
18
|
+
import { SmtpClient } from "./smtp.js";
|
|
19
|
+
import { buildEmail } from "./mime.js";
|
|
20
|
+
/**
|
|
21
|
+
* ISO 8601 date shapes accepted by the Graph `receivedDateTime` filter.
|
|
22
|
+
* Date-only values and full timestamps (with optional fractional seconds and
|
|
23
|
+
* `Z`/offset) are allowed; anything else is rejected before it can reach
|
|
24
|
+
* `$filter`.
|
|
25
|
+
*/
|
|
26
|
+
const ISO_DATE = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?(?:Z|[+-]\d{2}:\d{2})?)?$/;
|
|
27
|
+
/**
|
|
28
|
+
* Validates and returns an ISO 8601 date for a Graph `$filter` literal.
|
|
29
|
+
*
|
|
30
|
+
* @param value - Caller-supplied `since` value.
|
|
31
|
+
* @returns The validated ISO date string.
|
|
32
|
+
* @throws {BadRequestError} when the value is not a parseable ISO 8601 date.
|
|
33
|
+
*/
|
|
34
|
+
function assertIsoDate(value) {
|
|
35
|
+
if (!ISO_DATE.test(value) || Number.isNaN(Date.parse(value))) {
|
|
36
|
+
throw new BadRequestError("Email inbox 'since' filter must be an ISO 8601 date");
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Escapes a value for use inside an OData single-quoted string literal.
|
|
42
|
+
*
|
|
43
|
+
* @param value - Raw filter value.
|
|
44
|
+
* @returns The value with embedded single quotes doubled per OData rules.
|
|
45
|
+
*/
|
|
46
|
+
function escapeODataString(value) {
|
|
47
|
+
return value.replace(/'/g, "''");
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @description Multi-provider email send/inbox service
|
|
51
|
+
* @summary Resolves the delivery provider from config (`provider`, or inferred
|
|
52
|
+
* from the presence of `host` vs `token`), builds RFC 5322 MIME with
|
|
53
|
+
* UTF-8-encoded headers via {@link buildEmail}, then delivers through SMTP or
|
|
54
|
+
* posts to Graph. Inbox reads go through Graph `messages` (with `$top`,
|
|
55
|
+
* `$filter`, `$orderby`) or the optional `imapflow` package.
|
|
56
|
+
* @category Comms
|
|
57
|
+
* @memberOf module:integrations/comms/email/service
|
|
58
|
+
*/
|
|
59
|
+
export class EmailService extends HttpApiService {
|
|
60
|
+
constructor() {
|
|
61
|
+
super(...arguments);
|
|
62
|
+
this.serviceName = "Email";
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @description Default Microsoft Graph base URL used when no override is configured
|
|
66
|
+
* @returns The Graph v1.0 endpoint URL
|
|
67
|
+
*/
|
|
68
|
+
defaultBaseUrl() {
|
|
69
|
+
return "https://graph.microsoft.com/v1.0";
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @description Authorization headers for Graph requests
|
|
73
|
+
* @param config - Resolved service config
|
|
74
|
+
* @returns A bearer-token `Authorization` header map, empty when no `token` is configured
|
|
75
|
+
*/
|
|
76
|
+
authHeaders(config) {
|
|
77
|
+
return config.token ? { Authorization: `Bearer ${config.token}` } : {};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @description Pins the SMTP plaintext-AUTH default on top of the base initialization
|
|
81
|
+
* @summary Runs the {@link HttpApiService} initialization (explicit config
|
|
82
|
+
* merged over the `comms.email` environment slice) and then defaults an
|
|
83
|
+
* unresolved `allowPlaintextAuth` to `false`, so credentials are only sent
|
|
84
|
+
* over a TLS-protected session unless the config explicitly opts in. This
|
|
85
|
+
* closes the F1 residual where an environment-only `allowPlaintextAuth`
|
|
86
|
+
* opt-in would otherwise reach a boot whose explicit config omits the key
|
|
87
|
+
* (defense in depth on top of {@link bootWithoutEnvironment}, which disables
|
|
88
|
+
* the environment slice entirely on the node path).
|
|
89
|
+
* @param {...any[]} args - An optional `Partial<EmailServiceConfig>`, optionally followed by a decaf `Context`.
|
|
90
|
+
* @returns {Promise<{config: EmailServiceConfig, client: AxiosInstance}>} The merged configuration, with `allowPlaintextAuth` defaulted to `false` when unset, and the configured Axios instance.
|
|
91
|
+
*/
|
|
92
|
+
async initialize(...args) {
|
|
93
|
+
const initialized = await super.initialize(...args);
|
|
94
|
+
initialized.config.allowPlaintextAuth =
|
|
95
|
+
initialized.config.allowPlaintextAuth ?? false;
|
|
96
|
+
return initialized;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* @description Builds service config from the `comms.email` environment slice
|
|
100
|
+
* @returns A partial config when either an SMTP `host` or a Graph `token` is present, otherwise `undefined`
|
|
101
|
+
*/
|
|
102
|
+
configFromEnvironment() {
|
|
103
|
+
const env = CommsEnvironment.comms.email;
|
|
104
|
+
const host = envString(env?.host);
|
|
105
|
+
const token = envString(env?.token);
|
|
106
|
+
if (!host && !token)
|
|
107
|
+
return undefined;
|
|
108
|
+
const provider = envString(env.provider);
|
|
109
|
+
return {
|
|
110
|
+
provider: provider ?? (host ? "smtp" : "graph"),
|
|
111
|
+
host,
|
|
112
|
+
port: envNumber(env.port),
|
|
113
|
+
secure: envBoolean(env.secure),
|
|
114
|
+
username: envString(env.username),
|
|
115
|
+
password: envString(env.password),
|
|
116
|
+
allowPlaintextAuth: envBoolean(env.allowPlaintextAuth),
|
|
117
|
+
from: envString(env.from),
|
|
118
|
+
token,
|
|
119
|
+
graphBaseUrl: envString(env.graphBaseUrl),
|
|
120
|
+
timeout: envNumber(env.timeout),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* @description Selects the delivery provider
|
|
125
|
+
* @summary Prefers an explicit `provider`, then infers `smtp` from a
|
|
126
|
+
* configured `host` and `graph` from a configured `token`.
|
|
127
|
+
* @param config - Resolved service config
|
|
128
|
+
* @returns The resolved provider
|
|
129
|
+
* @throws {InternalError} when neither an SMTP host nor a Graph token is configured
|
|
130
|
+
*/
|
|
131
|
+
resolveProvider(config) {
|
|
132
|
+
if (config.provider)
|
|
133
|
+
return config.provider;
|
|
134
|
+
if (config.host)
|
|
135
|
+
return "smtp";
|
|
136
|
+
if (config.token)
|
|
137
|
+
return "graph";
|
|
138
|
+
throw new InternalError("Email requires either an SMTP host or a Microsoft Graph token");
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @description Resolves the fallback sender address
|
|
142
|
+
* @summary Uses `from`, then `username`, then the `From` header override.
|
|
143
|
+
* @param config - Resolved service config
|
|
144
|
+
* @returns The resolved sender address
|
|
145
|
+
* @throws {InternalError} when no sender address can be resolved
|
|
146
|
+
*/
|
|
147
|
+
resolveFrom(config) {
|
|
148
|
+
const from = config.from ?? config.username ?? config.headers?.["From"] ?? undefined;
|
|
149
|
+
if (!from)
|
|
150
|
+
throw new InternalError("Email requires a sender address");
|
|
151
|
+
return from;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* @description Sends an email through the resolved provider
|
|
155
|
+
* @summary Builds the raw MIME message (honouring `input.from`, else the
|
|
156
|
+
* resolved config sender), then delivers via SMTP or Graph. SMTP config
|
|
157
|
+
* passes `allowPlaintextAuth` through unchanged, so the plaintext-AUTH
|
|
158
|
+
* opt-out is inherited from the service config.
|
|
159
|
+
* @param input - Message input (recipients, subject, text/html body, attachments)
|
|
160
|
+
* @returns The send result with the generated `Message-ID` and provider
|
|
161
|
+
* @throws {BadRequestError} when an address, attachment filename, or content type fails validation (via {@link buildEmail})
|
|
162
|
+
* @throws {InternalError} when the provider cannot be resolved, the SMTP host is missing, plaintext AUTH is refused, or SMTP delivery fails
|
|
163
|
+
*/
|
|
164
|
+
async send(input) {
|
|
165
|
+
const config = this.config;
|
|
166
|
+
const provider = this.resolveProvider(config);
|
|
167
|
+
const from = input.from || this.resolveFrom(config);
|
|
168
|
+
const built = buildEmail({ ...input, from });
|
|
169
|
+
if (provider === "graph") {
|
|
170
|
+
await this.sendViaGraph(built.raw, from);
|
|
171
|
+
return {
|
|
172
|
+
messageId: built.messageId,
|
|
173
|
+
from,
|
|
174
|
+
recipients: built.recipients,
|
|
175
|
+
provider,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if (!config.host) {
|
|
179
|
+
throw new InternalError("Email SMTP provider requires a host");
|
|
180
|
+
}
|
|
181
|
+
const client = new SmtpClient({
|
|
182
|
+
host: config.host,
|
|
183
|
+
port: config.port,
|
|
184
|
+
secure: config.secure,
|
|
185
|
+
username: config.username,
|
|
186
|
+
password: config.password,
|
|
187
|
+
timeout: config.timeout,
|
|
188
|
+
allowPlaintextAuth: config.allowPlaintextAuth,
|
|
189
|
+
});
|
|
190
|
+
try {
|
|
191
|
+
await client.connect();
|
|
192
|
+
await client.send(built.from, built.recipients, built.raw);
|
|
193
|
+
return {
|
|
194
|
+
messageId: built.messageId,
|
|
195
|
+
from,
|
|
196
|
+
recipients: built.recipients,
|
|
197
|
+
provider,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
if (error instanceof InternalError)
|
|
202
|
+
throw error;
|
|
203
|
+
throw new InternalError(`Email SMTP delivery failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
await client.close().catch(() => undefined);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* @description Posts a raw MIME message to the Microsoft Graph `sendMail` endpoint
|
|
211
|
+
* @summary Sends the base64-encoded raw message to
|
|
212
|
+
* `/users/<from>/sendMail` (or `/me/sendMail` when no sender is resolved)
|
|
213
|
+
* with the configured `graphBaseUrl`/`baseUrl`.
|
|
214
|
+
* @param raw - Raw RFC 5322 message text
|
|
215
|
+
* @param from - Sender mailbox (UPN) for the Graph path
|
|
216
|
+
* @throws {Error} Graph error mapped through {@link httpError}
|
|
217
|
+
*/
|
|
218
|
+
async sendViaGraph(raw, from) {
|
|
219
|
+
const config = this.config;
|
|
220
|
+
this.requireToken(config);
|
|
221
|
+
const baseUrl = config.graphBaseUrl ??
|
|
222
|
+
config.baseUrl ??
|
|
223
|
+
"https://graph.microsoft.com/v1.0";
|
|
224
|
+
const path = from
|
|
225
|
+
? `/users/${encodeURIComponent(from)}/sendMail`
|
|
226
|
+
: "/me/sendMail";
|
|
227
|
+
try {
|
|
228
|
+
await this.client.post(`${baseUrl}${path}`, Buffer.from(raw, "utf8").toString("base64"), {
|
|
229
|
+
headers: { "Content-Type": "text/plain" },
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
throw httpError("Microsoft Graph", "sendMail", error);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @description Lists messages from a Graph mailbox
|
|
238
|
+
* @summary Queries `<mailbox>/messages` with `$top`, an optional
|
|
239
|
+
* subject/since `$filter`, and `receivedDateTime desc` ordering. The mailbox
|
|
240
|
+
* is URL-encoded as a single path segment, quotes in the subject are escaped
|
|
241
|
+
* for the OData string literal, and `since` must be an ISO 8601 date.
|
|
242
|
+
* @param query - Inbox filter (mailbox, limit, since, subject)
|
|
243
|
+
* @returns The raw Graph message records
|
|
244
|
+
* @throws {BadRequestError} when `since` is not an ISO 8601 date
|
|
245
|
+
* @throws {InternalError} when no `token` is configured; Graph errors mapped through {@link httpError}
|
|
246
|
+
*/
|
|
247
|
+
async listInbox(query = {}) {
|
|
248
|
+
const config = this.config;
|
|
249
|
+
this.requireToken(config);
|
|
250
|
+
const baseUrl = config.graphBaseUrl ??
|
|
251
|
+
config.baseUrl ??
|
|
252
|
+
"https://graph.microsoft.com/v1.0";
|
|
253
|
+
const mailbox = encodeURIComponent(query.mailbox ?? "me");
|
|
254
|
+
const filters = [
|
|
255
|
+
query.subject
|
|
256
|
+
? `contains(subject,'${escapeODataString(query.subject)}')`
|
|
257
|
+
: undefined,
|
|
258
|
+
query.since
|
|
259
|
+
? `receivedDateTime ge ${assertIsoDate(query.since)}`
|
|
260
|
+
: undefined,
|
|
261
|
+
].filter(Boolean);
|
|
262
|
+
try {
|
|
263
|
+
const response = await this.client.get(`${baseUrl}/${mailbox}/messages`, {
|
|
264
|
+
params: {
|
|
265
|
+
$top: query.limit ?? 25,
|
|
266
|
+
$filter: filters.length ? filters.join(" and ") : undefined,
|
|
267
|
+
$orderby: "receivedDateTime desc",
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
return response.data.value ?? [];
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
throw httpError("Microsoft Graph", "list messages", error);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* @description Lists messages directly over IMAP
|
|
278
|
+
* @summary Dynamically imports the optional `imapflow` package, connects to
|
|
279
|
+
* `host` (default port 993, implicit TLS), and fetches the newest messages
|
|
280
|
+
* from `INBOX`.
|
|
281
|
+
*
|
|
282
|
+
* R2 direct-library-wrap justification: IMAP is a stateful protocol
|
|
283
|
+
* (mailbox locks, sequence/UID state, IDLE) whose correct implementation is
|
|
284
|
+
* large and security-sensitive. `imapflow` is the maintained n8n-vetted
|
|
285
|
+
* client for exactly this surface, so wrapping it is deliberate; a local
|
|
286
|
+
* reimplementation would add risk without changing the node contract. The
|
|
287
|
+
* package stays optional so SMTP/Graph-only consumers do not install it.
|
|
288
|
+
* @param query - Inbox filter (limit only is honoured by IMAP)
|
|
289
|
+
* @returns The fetched IMAP message records
|
|
290
|
+
* @throws {InternalError} when `imapflow` is not installed, no `host` is configured, or the IMAP session fails
|
|
291
|
+
*/
|
|
292
|
+
async listImapMessages(query = {}) {
|
|
293
|
+
let ImapFlow;
|
|
294
|
+
try {
|
|
295
|
+
const moduleName = "imapflow";
|
|
296
|
+
const imported = (await import(moduleName));
|
|
297
|
+
ImapFlow = imported.ImapFlow;
|
|
298
|
+
if (!ImapFlow)
|
|
299
|
+
throw new Error("imapflow did not export ImapFlow");
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
throw new InternalError("IMAP reads require the optional 'imapflow' package; install it to use this surface");
|
|
303
|
+
}
|
|
304
|
+
const config = this.config;
|
|
305
|
+
if (!config.host)
|
|
306
|
+
throw new InternalError("IMAP requires a host");
|
|
307
|
+
const client = new ImapFlow({
|
|
308
|
+
host: config.host,
|
|
309
|
+
port: config.port ?? 993,
|
|
310
|
+
secure: config.secure ?? true,
|
|
311
|
+
auth: {
|
|
312
|
+
user: config.username,
|
|
313
|
+
pass: config.password,
|
|
314
|
+
},
|
|
315
|
+
});
|
|
316
|
+
const messages = [];
|
|
317
|
+
await client.connect();
|
|
318
|
+
try {
|
|
319
|
+
const lock = await client.getMailboxLock("INBOX");
|
|
320
|
+
try {
|
|
321
|
+
const limit = query.limit ?? 25;
|
|
322
|
+
for await (const message of client.fetch(`${Math.max(1, limit)}:*`, { envelope: true, source: false }, { uid: false })) {
|
|
323
|
+
messages.push(message);
|
|
324
|
+
if (messages.length >= limit)
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
finally {
|
|
329
|
+
lock.release();
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
finally {
|
|
333
|
+
await client.logout().catch(() => undefined);
|
|
334
|
+
}
|
|
335
|
+
return messages;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=EmailService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailService.js","sourceRoot":"","sources":["../../../../src/comms/email/EmailService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/comms/email
|
|
3
|
+
* @summary Email service (SMTP + Microsoft Graph send, Graph/IMAP inbox reads).
|
|
4
|
+
* @description Re-exports the {@link EmailService} and its config/result
|
|
5
|
+
* types, the raw MIME builder, and the nodemailer-backed {@link SmtpClient}
|
|
6
|
+
* with its {@link SmtpConfig}
|
|
7
|
+
* (also available directly from the `./smtp` subpath).
|
|
8
|
+
*/
|
|
9
|
+
export * from "./EmailService.js";
|
|
10
|
+
export * from "./mime.js";
|
|
11
|
+
export * from "./smtp.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/comms/email/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,kCAA+B;AAC/B,0BAAuB;AACvB,0BAAuB"}
|