@stacksjs/ts-cloud-core 0.1.3 → 0.1.7
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 +98 -13
- package/dist/advanced-features.test.d.ts +0 -0
- package/dist/aws/cloudformation.d.ts +69 -0
- package/dist/aws/cloudfront.d.ts +21 -0
- package/dist/aws/credentials.d.ts +66 -0
- package/dist/aws/credentials.test.d.ts +0 -0
- package/{src/aws/index.ts → dist/aws/index.d.ts} +37 -51
- package/dist/aws/s3.d.ts +130 -0
- package/dist/aws/s3.test.d.ts +0 -0
- package/dist/aws/signature.d.ts +101 -0
- package/dist/aws/signature.test.d.ts +0 -0
- package/dist/backup/disaster-recovery.d.ts +98 -0
- package/dist/backup/disaster-recovery.test.d.ts +0 -0
- package/{src/backup/index.ts → dist/backup/index.d.ts} +10 -20
- package/dist/backup/manager.d.ts +112 -0
- package/dist/backup/manager.test.d.ts +0 -0
- package/dist/cicd/circleci.d.ts +47 -0
- package/dist/cicd/github-actions.d.ts +55 -0
- package/dist/cicd/gitlab-ci.d.ts +46 -0
- package/dist/cicd/index.d.ts +3 -0
- package/dist/cli/history.d.ts +66 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/progress.d.ts +97 -0
- package/dist/cli/repl.d.ts +76 -0
- package/dist/cli/suggestions.d.ts +67 -0
- package/dist/cli/table.d.ts +70 -0
- package/dist/cli/table.test.d.ts +0 -0
- package/dist/cloudformation/builder.d.ts +59 -0
- package/dist/cloudformation/builder.test.d.ts +0 -0
- package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
- package/dist/cloudformation/builders/cache.d.ts +35 -0
- package/dist/cloudformation/builders/cdn.d.ts +34 -0
- package/dist/cloudformation/builders/compute.d.ts +66 -0
- package/dist/cloudformation/builders/database.d.ts +61 -0
- package/dist/cloudformation/builders/functions.d.ts +32 -0
- package/dist/cloudformation/builders/messaging.d.ts +17 -0
- package/dist/cloudformation/builders/monitoring.d.ts +36 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +8 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +8 -0
- package/dist/cloudformation/index.d.ts +24 -0
- package/dist/cloudformation/types.d.ts +132 -0
- package/dist/compliance/aws-config.d.ts +88 -0
- package/dist/compliance/cloudtrail.d.ts +96 -0
- package/dist/compliance/compliance.test.d.ts +0 -0
- package/dist/compliance/guardduty.d.ts +110 -0
- package/{src/compliance/index.ts → dist/compliance/index.d.ts} +20 -36
- package/dist/compliance/security-hub.d.ts +110 -0
- package/dist/containers/build-optimization.d.ts +110 -0
- package/dist/containers/containers.test.d.ts +0 -0
- package/dist/containers/image-scanning.d.ts +96 -0
- package/dist/containers/index.d.ts +4 -0
- package/dist/containers/registry.d.ts +99 -0
- package/dist/containers/service-mesh.d.ts +206 -0
- package/dist/database/database.test.d.ts +0 -0
- package/dist/database/index.d.ts +4 -0
- package/dist/database/migrations.d.ts +102 -0
- package/dist/database/performance.d.ts +168 -0
- package/dist/database/replicas.d.ts +146 -0
- package/dist/database/users.d.ts +102 -0
- package/dist/dependency-graph.d.ts +19 -0
- package/dist/deployment/ab-testing.d.ts +114 -0
- package/dist/deployment/blue-green.d.ts +98 -0
- package/dist/deployment/canary.d.ts +103 -0
- package/dist/deployment/deployment.test.d.ts +0 -0
- package/{src/deployment/index.ts → dist/deployment/index.d.ts} +20 -36
- package/dist/deployment/progressive.d.ts +34 -0
- package/dist/dns/dns.test.d.ts +0 -0
- package/dist/dns/dnssec.d.ts +75 -0
- package/dist/dns/index.d.ts +3 -0
- package/dist/dns/resolver.d.ts +150 -0
- package/dist/dns/routing.d.ts +217 -0
- package/dist/email/advanced/analytics.d.ts +78 -0
- package/dist/email/advanced/index.d.ts +7 -0
- package/dist/email/advanced/rules.d.ts +60 -0
- package/dist/email/advanced/scheduling.d.ts +63 -0
- package/dist/email/advanced/search.d.ts +76 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
- package/dist/email/advanced/templates.d.ts +39 -0
- package/dist/email/advanced/threading.d.ts +53 -0
- package/dist/email/analytics.d.ts +144 -0
- package/dist/email/bounce-handling.d.ts +120 -0
- package/dist/email/email.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
- package/{src/email/handlers/converter.ts → dist/email/handlers/converter.d.ts} +3 -5
- package/{src/email/handlers/feedback.ts → dist/email/handlers/feedback.d.ts} +3 -5
- package/{src/email/handlers/inbound.ts → dist/email/handlers/inbound.d.ts} +3 -5
- package/{src/email/handlers/outbound.ts → dist/email/handlers/outbound.d.ts} +3 -5
- package/dist/email/index.d.ts +6 -0
- package/dist/email/reputation.d.ts +97 -0
- package/dist/email/templates.d.ts +82 -0
- package/dist/errors/index.d.ts +186 -0
- package/dist/errors/index.test.d.ts +0 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +256 -0
- package/dist/index.js +63499 -0
- package/dist/intrinsic-functions.d.ts +37 -0
- package/dist/lambda/concurrency.d.ts +98 -0
- package/dist/lambda/destinations.d.ts +99 -0
- package/dist/lambda/dlq.d.ts +109 -0
- package/dist/lambda/index.d.ts +6 -0
- package/dist/lambda/lambda.test.d.ts +0 -0
- package/dist/lambda/layers.d.ts +81 -0
- package/dist/lambda/versions.d.ts +91 -0
- package/dist/lambda/vpc.d.ts +116 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +2 -0
- package/dist/local/mock-aws.d.ts +60 -0
- package/dist/modules/ai.d.ts +47 -0
- package/dist/modules/api.d.ts +98 -0
- package/dist/modules/auth.d.ts +165 -0
- package/dist/modules/cache.d.ts +73 -0
- package/dist/modules/cdn.d.ts +125 -0
- package/dist/modules/communication.d.ts +98 -0
- package/dist/modules/compute.d.ts +309 -0
- package/dist/modules/database.d.ts +105 -0
- package/dist/modules/deployment.d.ts +181 -0
- package/dist/modules/dns.d.ts +45 -0
- package/dist/modules/email.d.ts +217 -0
- package/dist/modules/filesystem.d.ts +94 -0
- package/dist/modules/index.d.ts +27 -0
- package/dist/modules/messaging.d.ts +108 -0
- package/dist/modules/monitoring.d.ts +127 -0
- package/dist/modules/network.d.ts +102 -0
- package/dist/modules/parameter-store.d.ts +33 -0
- package/dist/modules/permissions.d.ts +132 -0
- package/dist/modules/phone.d.ts +80 -0
- package/dist/modules/queue.d.ts +210 -0
- package/dist/modules/redirects.d.ts +59 -0
- package/dist/modules/registry.d.ts +73 -0
- package/dist/modules/search.d.ts +56 -0
- package/dist/modules/secrets.d.ts +80 -0
- package/dist/modules/security.d.ts +100 -0
- package/dist/modules/sms.d.ts +52 -0
- package/dist/modules/storage.d.ts +160 -0
- package/dist/modules/workflow.d.ts +205 -0
- package/dist/multi-account/config.d.ts +315 -0
- package/dist/multi-account/index.d.ts +2 -0
- package/dist/multi-account/manager.d.ts +100 -0
- package/dist/multi-region/cross-region.d.ts +114 -0
- package/dist/multi-region/index.d.ts +3 -0
- package/dist/multi-region/manager.d.ts +72 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +39 -0
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/logs.d.ts +129 -0
- package/dist/observability/metrics.d.ts +153 -0
- package/dist/observability/observability.test.d.ts +0 -0
- package/dist/observability/synthetics.d.ts +146 -0
- package/dist/observability/xray.d.ts +129 -0
- package/dist/phone/advanced/analytics.d.ts +66 -0
- package/dist/phone/advanced/callbacks.d.ts +50 -0
- package/dist/phone/advanced/index.d.ts +4 -0
- package/dist/phone/advanced/ivr-builder.d.ts +83 -0
- package/dist/phone/advanced/recording.d.ts +48 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
- package/{src/phone/handlers/incoming-call.ts → dist/phone/handlers/incoming-call.d.ts} +3 -5
- package/{src/phone/handlers/missed-call.ts → dist/phone/handlers/missed-call.d.ts} +3 -5
- package/{src/phone/handlers/voicemail.ts → dist/phone/handlers/voicemail.d.ts} +3 -5
- package/dist/phone/index.d.ts +2 -0
- package/dist/presets/api-backend.d.ts +11 -0
- package/dist/presets/data-pipeline.d.ts +11 -0
- package/{src/presets/extend.ts → dist/presets/extend.d.ts} +11 -114
- package/dist/presets/extend.test.d.ts +0 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +24 -0
- package/dist/presets/jamstack.d.ts +12 -0
- package/dist/presets/microservices.d.ts +18 -0
- package/dist/presets/ml-api.d.ts +13 -0
- package/dist/presets/nodejs-server.d.ts +14 -0
- package/dist/presets/nodejs-serverless.d.ts +14 -0
- package/dist/presets/realtime-app.d.ts +11 -0
- package/dist/presets/static-site.d.ts +12 -0
- package/dist/presets/traditional-web-app.d.ts +16 -0
- package/dist/presets/wordpress.d.ts +12 -0
- package/dist/preview/github.d.ts +32 -0
- package/dist/preview/github.test.d.ts +0 -0
- package/{src/preview/index.ts → dist/preview/index.d.ts} +16 -26
- package/dist/preview/manager.d.ts +58 -0
- package/dist/preview/manager.test.d.ts +0 -0
- package/dist/preview/notifications.d.ts +55 -0
- package/dist/preview/notifications.test.d.ts +0 -0
- package/dist/queue/batch-processing.d.ts +87 -0
- package/dist/queue/dlq-monitoring.d.ts +95 -0
- package/dist/queue/fifo.d.ts +90 -0
- package/dist/queue/index.d.ts +4 -0
- package/dist/queue/management.d.ts +105 -0
- package/dist/queue/queue.test.d.ts +0 -0
- package/dist/resource-mgmt/index.d.ts +29 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +173 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/security/certificate-manager.d.ts +121 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/scanning.d.ts +147 -0
- package/dist/security/secrets-manager.d.ts +144 -0
- package/dist/security/secrets-rotation.d.ts +115 -0
- package/dist/security/security.test.d.ts +0 -0
- package/dist/sms/advanced/ab-testing.d.ts +54 -0
- package/dist/sms/advanced/analytics.d.ts +56 -0
- package/dist/sms/advanced/campaigns.d.ts +82 -0
- package/dist/sms/advanced/chatbot.d.ts +48 -0
- package/dist/sms/advanced/index.d.ts +6 -0
- package/dist/sms/advanced/link-tracking.d.ts +42 -0
- package/dist/sms/advanced/mms.d.ts +35 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
- package/{src/sms/handlers/delivery-status.ts → dist/sms/handlers/delivery-status.d.ts} +3 -5
- package/{src/sms/handlers/receive.ts → dist/sms/handlers/receive.d.ts} +3 -5
- package/{src/sms/handlers/send.ts → dist/sms/handlers/send.d.ts} +3 -5
- package/dist/sms/index.d.ts +2 -0
- package/dist/stack-diff.d.ts +34 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +14 -0
- package/dist/template-validator.d.ts +24 -0
- package/dist/utils/cache.d.ts +55 -0
- package/dist/utils/diff.d.ts +48 -0
- package/dist/utils/hash.d.ts +58 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/parallel.d.ts +60 -0
- package/dist/validators/credentials.d.ts +23 -0
- package/dist/validators/credentials.test.d.ts +0 -0
- package/dist/validators/quotas.d.ts +60 -0
- package/dist/validators/quotas.test.d.ts +0 -0
- package/package.json +13 -4
- package/src/advanced-features.test.ts +0 -465
- package/src/aws/cloudformation.ts +0 -421
- package/src/aws/cloudfront.ts +0 -158
- package/src/aws/credentials.test.ts +0 -132
- package/src/aws/credentials.ts +0 -545
- package/src/aws/s3.test.ts +0 -188
- package/src/aws/s3.ts +0 -1088
- package/src/aws/signature.test.ts +0 -670
- package/src/aws/signature.ts +0 -1155
- package/src/backup/disaster-recovery.test.ts +0 -726
- package/src/backup/disaster-recovery.ts +0 -500
- package/src/backup/manager.test.ts +0 -498
- package/src/backup/manager.ts +0 -432
- package/src/cicd/circleci.ts +0 -430
- package/src/cicd/github-actions.ts +0 -424
- package/src/cicd/gitlab-ci.ts +0 -255
- package/src/cicd/index.ts +0 -8
- package/src/cli/history.ts +0 -396
- package/src/cli/index.ts +0 -10
- package/src/cli/progress.ts +0 -458
- package/src/cli/repl.ts +0 -454
- package/src/cli/suggestions.ts +0 -327
- package/src/cli/table.test.ts +0 -319
- package/src/cli/table.ts +0 -332
- package/src/cloudformation/builder.test.ts +0 -327
- package/src/cloudformation/builder.ts +0 -378
- package/src/cloudformation/builders/api-gateway.ts +0 -449
- package/src/cloudformation/builders/cache.ts +0 -334
- package/src/cloudformation/builders/cdn.ts +0 -278
- package/src/cloudformation/builders/compute.ts +0 -485
- package/src/cloudformation/builders/database.ts +0 -392
- package/src/cloudformation/builders/functions.ts +0 -343
- package/src/cloudformation/builders/messaging.ts +0 -140
- package/src/cloudformation/builders/monitoring.ts +0 -300
- package/src/cloudformation/builders/network.ts +0 -264
- package/src/cloudformation/builders/queue.ts +0 -147
- package/src/cloudformation/builders/security.ts +0 -399
- package/src/cloudformation/builders/storage.ts +0 -285
- package/src/cloudformation/index.ts +0 -30
- package/src/cloudformation/types.ts +0 -173
- package/src/compliance/aws-config.ts +0 -543
- package/src/compliance/cloudtrail.ts +0 -376
- package/src/compliance/compliance.test.ts +0 -423
- package/src/compliance/guardduty.ts +0 -446
- package/src/compliance/security-hub.ts +0 -456
- package/src/containers/build-optimization.ts +0 -416
- package/src/containers/containers.test.ts +0 -508
- package/src/containers/image-scanning.ts +0 -360
- package/src/containers/index.ts +0 -9
- package/src/containers/registry.ts +0 -293
- package/src/containers/service-mesh.ts +0 -520
- package/src/database/database.test.ts +0 -762
- package/src/database/index.ts +0 -9
- package/src/database/migrations.ts +0 -444
- package/src/database/performance.ts +0 -528
- package/src/database/replicas.ts +0 -534
- package/src/database/users.ts +0 -494
- package/src/dependency-graph.ts +0 -143
- package/src/deployment/ab-testing.ts +0 -582
- package/src/deployment/blue-green.ts +0 -452
- package/src/deployment/canary.ts +0 -500
- package/src/deployment/deployment.test.ts +0 -526
- package/src/deployment/progressive.ts +0 -62
- package/src/dns/dns.test.ts +0 -641
- package/src/dns/dnssec.ts +0 -315
- package/src/dns/index.ts +0 -8
- package/src/dns/resolver.ts +0 -496
- package/src/dns/routing.ts +0 -593
- package/src/email/advanced/analytics.ts +0 -445
- package/src/email/advanced/index.ts +0 -11
- package/src/email/advanced/rules.ts +0 -465
- package/src/email/advanced/scheduling.ts +0 -352
- package/src/email/advanced/search.ts +0 -412
- package/src/email/advanced/shared-mailboxes.ts +0 -404
- package/src/email/advanced/templates.ts +0 -455
- package/src/email/advanced/threading.ts +0 -281
- package/src/email/analytics.ts +0 -467
- package/src/email/bounce-handling.ts +0 -425
- package/src/email/email.test.ts +0 -431
- package/src/email/handlers/__tests__/inbound.test.ts +0 -38
- package/src/email/handlers/__tests__/outbound.test.ts +0 -37
- package/src/email/index.ts +0 -15
- package/src/email/reputation.ts +0 -303
- package/src/email/templates.ts +0 -352
- package/src/errors/index.test.ts +0 -434
- package/src/errors/index.ts +0 -416
- package/src/health-checks/index.ts +0 -40
- package/src/index.ts +0 -360
- package/src/intrinsic-functions.ts +0 -118
- package/src/lambda/concurrency.ts +0 -330
- package/src/lambda/destinations.ts +0 -345
- package/src/lambda/dlq.ts +0 -425
- package/src/lambda/index.ts +0 -11
- package/src/lambda/lambda.test.ts +0 -840
- package/src/lambda/layers.ts +0 -263
- package/src/lambda/versions.ts +0 -376
- package/src/lambda/vpc.ts +0 -399
- package/src/local/config.ts +0 -114
- package/src/local/index.ts +0 -6
- package/src/local/mock-aws.ts +0 -351
- package/src/modules/ai.ts +0 -340
- package/src/modules/api.ts +0 -478
- package/src/modules/auth.ts +0 -805
- package/src/modules/cache.ts +0 -417
- package/src/modules/cdn.ts +0 -1062
- package/src/modules/communication.ts +0 -1094
- package/src/modules/compute.ts +0 -3348
- package/src/modules/database.ts +0 -554
- package/src/modules/deployment.ts +0 -1079
- package/src/modules/dns.ts +0 -337
- package/src/modules/email.ts +0 -1538
- package/src/modules/filesystem.ts +0 -515
- package/src/modules/index.ts +0 -32
- package/src/modules/messaging.ts +0 -486
- package/src/modules/monitoring.ts +0 -2086
- package/src/modules/network.ts +0 -664
- package/src/modules/parameter-store.ts +0 -325
- package/src/modules/permissions.ts +0 -1081
- package/src/modules/phone.ts +0 -494
- package/src/modules/queue.ts +0 -1260
- package/src/modules/redirects.ts +0 -464
- package/src/modules/registry.ts +0 -699
- package/src/modules/search.ts +0 -401
- package/src/modules/secrets.ts +0 -416
- package/src/modules/security.ts +0 -731
- package/src/modules/sms.ts +0 -389
- package/src/modules/storage.ts +0 -1120
- package/src/modules/workflow.ts +0 -680
- package/src/multi-account/config.ts +0 -521
- package/src/multi-account/index.ts +0 -7
- package/src/multi-account/manager.ts +0 -427
- package/src/multi-region/cross-region.ts +0 -410
- package/src/multi-region/index.ts +0 -8
- package/src/multi-region/manager.ts +0 -483
- package/src/multi-region/regions.ts +0 -435
- package/src/network-security/index.ts +0 -48
- package/src/observability/index.ts +0 -9
- package/src/observability/logs.ts +0 -522
- package/src/observability/metrics.ts +0 -460
- package/src/observability/observability.test.ts +0 -782
- package/src/observability/synthetics.ts +0 -568
- package/src/observability/xray.ts +0 -358
- package/src/phone/advanced/analytics.ts +0 -349
- package/src/phone/advanced/callbacks.ts +0 -428
- package/src/phone/advanced/index.ts +0 -8
- package/src/phone/advanced/ivr-builder.ts +0 -504
- package/src/phone/advanced/recording.ts +0 -310
- package/src/phone/handlers/__tests__/incoming-call.test.ts +0 -40
- package/src/phone/index.ts +0 -9
- package/src/presets/api-backend.ts +0 -134
- package/src/presets/data-pipeline.ts +0 -204
- package/src/presets/extend.test.ts +0 -295
- package/src/presets/fullstack-app.ts +0 -144
- package/src/presets/index.ts +0 -27
- package/src/presets/jamstack.ts +0 -135
- package/src/presets/microservices.ts +0 -167
- package/src/presets/ml-api.ts +0 -208
- package/src/presets/nodejs-server.ts +0 -104
- package/src/presets/nodejs-serverless.ts +0 -114
- package/src/presets/realtime-app.ts +0 -184
- package/src/presets/static-site.ts +0 -64
- package/src/presets/traditional-web-app.ts +0 -339
- package/src/presets/wordpress.ts +0 -138
- package/src/preview/github.test.ts +0 -249
- package/src/preview/github.ts +0 -297
- package/src/preview/manager.test.ts +0 -440
- package/src/preview/manager.ts +0 -326
- package/src/preview/notifications.test.ts +0 -582
- package/src/preview/notifications.ts +0 -341
- package/src/queue/batch-processing.ts +0 -402
- package/src/queue/dlq-monitoring.ts +0 -402
- package/src/queue/fifo.ts +0 -342
- package/src/queue/index.ts +0 -9
- package/src/queue/management.ts +0 -428
- package/src/queue/queue.test.ts +0 -429
- package/src/resource-mgmt/index.ts +0 -39
- package/src/resource-naming.ts +0 -62
- package/src/s3/index.ts +0 -523
- package/src/schema/cloud-config.schema.json +0 -554
- package/src/schema/index.ts +0 -68
- package/src/security/certificate-manager.ts +0 -492
- package/src/security/index.ts +0 -9
- package/src/security/scanning.ts +0 -545
- package/src/security/secrets-manager.ts +0 -476
- package/src/security/secrets-rotation.ts +0 -456
- package/src/security/security.test.ts +0 -738
- package/src/sms/advanced/ab-testing.ts +0 -389
- package/src/sms/advanced/analytics.ts +0 -336
- package/src/sms/advanced/campaigns.ts +0 -523
- package/src/sms/advanced/chatbot.ts +0 -224
- package/src/sms/advanced/index.ts +0 -10
- package/src/sms/advanced/link-tracking.ts +0 -248
- package/src/sms/advanced/mms.ts +0 -308
- package/src/sms/handlers/__tests__/send.test.ts +0 -40
- package/src/sms/index.ts +0 -9
- package/src/stack-diff.ts +0 -389
- package/src/static-site/index.ts +0 -85
- package/src/template-builder.ts +0 -110
- package/src/template-validator.ts +0 -574
- package/src/utils/cache.ts +0 -291
- package/src/utils/diff.ts +0 -269
- package/src/utils/hash.ts +0 -227
- package/src/utils/index.ts +0 -8
- package/src/utils/parallel.ts +0 -294
- package/src/validators/credentials.test.ts +0 -274
- package/src/validators/credentials.ts +0 -233
- package/src/validators/quotas.test.ts +0 -434
- package/src/validators/quotas.ts +0 -217
- package/test/ai.test.ts +0 -327
- package/test/api.test.ts +0 -511
- package/test/auth.test.ts +0 -632
- package/test/cache.test.ts +0 -406
- package/test/cdn.test.ts +0 -247
- package/test/compute.test.ts +0 -861
- package/test/database.test.ts +0 -523
- package/test/deployment.test.ts +0 -499
- package/test/dns.test.ts +0 -270
- package/test/email.test.ts +0 -439
- package/test/filesystem.test.ts +0 -382
- package/test/integration.test.ts +0 -350
- package/test/messaging.test.ts +0 -514
- package/test/monitoring.test.ts +0 -634
- package/test/network.test.ts +0 -425
- package/test/permissions.test.ts +0 -488
- package/test/queue.test.ts +0 -484
- package/test/registry.test.ts +0 -306
- package/test/security.test.ts +0 -462
- package/test/storage.test.ts +0 -463
- package/test/template-validator.test.ts +0 -559
- package/test/workflow.test.ts +0 -592
- package/tsconfig.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Analytics
|
|
3
|
+
*
|
|
4
|
+
* Provides open tracking, click tracking, and email metrics
|
|
5
|
+
*/
|
|
6
|
+
export declare interface EmailAnalytics {
|
|
7
|
+
messageId: string
|
|
8
|
+
sent: boolean
|
|
9
|
+
sentAt?: string
|
|
10
|
+
delivered: boolean
|
|
11
|
+
deliveredAt?: string
|
|
12
|
+
opened: boolean
|
|
13
|
+
openedAt?: string
|
|
14
|
+
openCount: number
|
|
15
|
+
clicked: boolean
|
|
16
|
+
clickedAt?: string
|
|
17
|
+
clickCount: number
|
|
18
|
+
clicks: ClickEvent[]
|
|
19
|
+
bounced: boolean
|
|
20
|
+
bouncedAt?: string
|
|
21
|
+
bounceType?: string
|
|
22
|
+
complained: boolean
|
|
23
|
+
complainedAt?: string
|
|
24
|
+
unsubscribed: boolean
|
|
25
|
+
unsubscribedAt?: string
|
|
26
|
+
}
|
|
27
|
+
export declare interface ClickEvent {
|
|
28
|
+
url: string
|
|
29
|
+
clickedAt: string
|
|
30
|
+
userAgent?: string
|
|
31
|
+
ipAddress?: string
|
|
32
|
+
}
|
|
33
|
+
export declare interface EmailMetrics {
|
|
34
|
+
period: string
|
|
35
|
+
sent: number
|
|
36
|
+
delivered: number
|
|
37
|
+
opened: number
|
|
38
|
+
clicked: number
|
|
39
|
+
bounced: number
|
|
40
|
+
complained: number
|
|
41
|
+
unsubscribed: number
|
|
42
|
+
deliveryRate: number
|
|
43
|
+
openRate: number
|
|
44
|
+
clickRate: number
|
|
45
|
+
bounceRate: number
|
|
46
|
+
complaintRate: number
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Email Analytics Module
|
|
50
|
+
*/
|
|
51
|
+
export declare class EmailAnalyticsModule {
|
|
52
|
+
static TrackingPixelLambdaCode: any;
|
|
53
|
+
static ClickTrackingLambdaCode: any;
|
|
54
|
+
static SesEventProcessorCode: any;
|
|
55
|
+
static createAnalyticsTable(config: { slug: string }): Record<string, any>;
|
|
56
|
+
static createTrackingPixelLambda(config: {
|
|
57
|
+
slug: string
|
|
58
|
+
roleArn: string
|
|
59
|
+
analyticsTable: string
|
|
60
|
+
}): Record<string, any>;
|
|
61
|
+
static createClickTrackingLambda(config: {
|
|
62
|
+
slug: string
|
|
63
|
+
roleArn: string
|
|
64
|
+
analyticsTable: string
|
|
65
|
+
}): Record<string, any>;
|
|
66
|
+
static createSesEventProcessorLambda(config: {
|
|
67
|
+
slug: string
|
|
68
|
+
roleArn: string
|
|
69
|
+
analyticsTable: string
|
|
70
|
+
}): Record<string, any>;
|
|
71
|
+
static injectTracking(params: {
|
|
72
|
+
html: string
|
|
73
|
+
messageId: string
|
|
74
|
+
trackingDomain: string
|
|
75
|
+
}): string;
|
|
76
|
+
static calculateMetrics(analytics: EmailAnalytics[]): EmailMetrics;
|
|
77
|
+
}
|
|
78
|
+
export default EmailAnalyticsModule;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Rules and Automation
|
|
3
|
+
*
|
|
4
|
+
* Provides email filtering, routing, and automation
|
|
5
|
+
*/
|
|
6
|
+
export declare interface EmailRule {
|
|
7
|
+
id: string
|
|
8
|
+
name: string
|
|
9
|
+
enabled: boolean
|
|
10
|
+
priority: number
|
|
11
|
+
conditions: RuleCondition[]
|
|
12
|
+
conditionOperator: 'and' | 'or'
|
|
13
|
+
actions: RuleAction[]
|
|
14
|
+
createdAt: string
|
|
15
|
+
updatedAt: string
|
|
16
|
+
}
|
|
17
|
+
export declare interface RuleCondition {
|
|
18
|
+
field: 'from' | 'to' | 'subject' | 'body' | 'headers' | 'attachments' | 'size'
|
|
19
|
+
operator: 'contains' | 'not-contains' | 'equals' | 'not-equals' | 'starts-with' | 'ends-with' | 'regex' | 'greater-than' | 'less-than'
|
|
20
|
+
value: string
|
|
21
|
+
caseSensitive?: boolean
|
|
22
|
+
}
|
|
23
|
+
export declare interface RuleAction {
|
|
24
|
+
type: 'move' | 'copy' | 'delete' | 'label' | 'forward' | 'reply' | 'mark-read' | 'mark-starred' | 'webhook' | 'lambda'
|
|
25
|
+
params: Record<string, any>
|
|
26
|
+
}
|
|
27
|
+
export declare interface AutomationWorkflow {
|
|
28
|
+
id: string
|
|
29
|
+
name: string
|
|
30
|
+
trigger: WorkflowTrigger
|
|
31
|
+
steps: WorkflowStep[]
|
|
32
|
+
enabled: boolean
|
|
33
|
+
}
|
|
34
|
+
export declare interface WorkflowTrigger {
|
|
35
|
+
type: 'email-received' | 'email-sent' | 'schedule' | 'webhook'
|
|
36
|
+
conditions?: RuleCondition[]
|
|
37
|
+
}
|
|
38
|
+
export declare interface WorkflowStep {
|
|
39
|
+
id: string
|
|
40
|
+
type: 'delay' | 'condition' | 'action' | 'loop'
|
|
41
|
+
config: Record<string, any>
|
|
42
|
+
next?: string
|
|
43
|
+
onTrue?: string
|
|
44
|
+
onFalse?: string
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Email Rules Module
|
|
48
|
+
*/
|
|
49
|
+
export declare class EmailRules {
|
|
50
|
+
static RuleProcessorCode: any;
|
|
51
|
+
static createRulesTable(config: { slug: string }): Record<string, any>;
|
|
52
|
+
static createRuleProcessorLambda(config: {
|
|
53
|
+
slug: string
|
|
54
|
+
roleArn: string
|
|
55
|
+
emailBucket: string
|
|
56
|
+
rulesTable: string
|
|
57
|
+
}): Record<string, any>;
|
|
58
|
+
static readonly RuleTemplates: any;
|
|
59
|
+
}
|
|
60
|
+
export default EmailRules;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Scheduling (Send Later)
|
|
3
|
+
*
|
|
4
|
+
* Provides scheduled email sending functionality
|
|
5
|
+
*/
|
|
6
|
+
export declare interface ScheduledEmail {
|
|
7
|
+
id: string
|
|
8
|
+
email: {
|
|
9
|
+
from: string
|
|
10
|
+
to: string | string[]
|
|
11
|
+
cc?: string[]
|
|
12
|
+
bcc?: string[]
|
|
13
|
+
subject: string
|
|
14
|
+
html?: string
|
|
15
|
+
text?: string
|
|
16
|
+
attachments?: Array<{
|
|
17
|
+
filename: string
|
|
18
|
+
content: string
|
|
19
|
+
contentType?: string
|
|
20
|
+
}>
|
|
21
|
+
}
|
|
22
|
+
scheduledFor: string
|
|
23
|
+
timezone?: string
|
|
24
|
+
status: 'pending' | 'sent' | 'failed' | 'cancelled'
|
|
25
|
+
createdAt: string
|
|
26
|
+
sentAt?: string
|
|
27
|
+
error?: string
|
|
28
|
+
retryCount?: number
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Email Scheduling Module
|
|
32
|
+
*/
|
|
33
|
+
export declare class EmailScheduling {
|
|
34
|
+
static SchedulerLambdaCode: any;
|
|
35
|
+
static createSchedulerLambda(config: {
|
|
36
|
+
slug: string
|
|
37
|
+
roleArn: string
|
|
38
|
+
emailBucket: string
|
|
39
|
+
}): Record<string, any>;
|
|
40
|
+
static createSchedulerRule(config: {
|
|
41
|
+
slug: string
|
|
42
|
+
lambdaArn: string
|
|
43
|
+
scheduleExpression?: string
|
|
44
|
+
}): Record<string, any>;
|
|
45
|
+
static scheduleEmail(params: {
|
|
46
|
+
s3Client: any
|
|
47
|
+
bucket: string
|
|
48
|
+
email: ScheduledEmail['email']
|
|
49
|
+
scheduledFor: Date | string
|
|
50
|
+
timezone?: string
|
|
51
|
+
}): Promise<ScheduledEmail>;
|
|
52
|
+
static cancelScheduledEmail(params: {
|
|
53
|
+
s3Client: any
|
|
54
|
+
bucket: string
|
|
55
|
+
id: string
|
|
56
|
+
}): Promise<boolean>;
|
|
57
|
+
static listScheduledEmails(params: {
|
|
58
|
+
s3Client: any
|
|
59
|
+
bucket: string
|
|
60
|
+
status?: ScheduledEmail['status']
|
|
61
|
+
}): Promise<ScheduledEmail[]>;
|
|
62
|
+
}
|
|
63
|
+
export default EmailScheduling;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Search and Indexing
|
|
3
|
+
*
|
|
4
|
+
* Provides OpenSearch integration for email search functionality
|
|
5
|
+
*/
|
|
6
|
+
export declare interface EmailSearchConfig {
|
|
7
|
+
slug: string
|
|
8
|
+
environment: string
|
|
9
|
+
domainName?: string
|
|
10
|
+
instanceType?: string
|
|
11
|
+
instanceCount?: number
|
|
12
|
+
ebsVolumeSize?: number
|
|
13
|
+
masterUserName?: string
|
|
14
|
+
masterUserPassword?: string
|
|
15
|
+
}
|
|
16
|
+
export declare interface EmailSearchDocument {
|
|
17
|
+
messageId: string
|
|
18
|
+
from: string
|
|
19
|
+
fromName?: string
|
|
20
|
+
to: string
|
|
21
|
+
toName?: string
|
|
22
|
+
cc?: string[]
|
|
23
|
+
subject: string
|
|
24
|
+
body: string
|
|
25
|
+
bodyPreview: string
|
|
26
|
+
date: string
|
|
27
|
+
receivedAt: string
|
|
28
|
+
hasAttachments: boolean
|
|
29
|
+
attachmentNames?: string[]
|
|
30
|
+
labels?: string[]
|
|
31
|
+
folder: string
|
|
32
|
+
threadId?: string
|
|
33
|
+
isRead: boolean
|
|
34
|
+
isStarred?: boolean
|
|
35
|
+
mailbox: string
|
|
36
|
+
}
|
|
37
|
+
export declare interface SearchQuery {
|
|
38
|
+
query: string
|
|
39
|
+
from?: string
|
|
40
|
+
to?: string
|
|
41
|
+
subject?: string
|
|
42
|
+
hasAttachments?: boolean
|
|
43
|
+
dateFrom?: string
|
|
44
|
+
dateTo?: string
|
|
45
|
+
folder?: string
|
|
46
|
+
labels?: string[]
|
|
47
|
+
isRead?: boolean
|
|
48
|
+
limit?: number
|
|
49
|
+
offset?: number
|
|
50
|
+
sort?: 'date' | 'relevance'
|
|
51
|
+
sortOrder?: 'asc' | 'desc'
|
|
52
|
+
}
|
|
53
|
+
export declare interface SearchResult {
|
|
54
|
+
total: number
|
|
55
|
+
hits: Array<{
|
|
56
|
+
score: number
|
|
57
|
+
document: EmailSearchDocument
|
|
58
|
+
highlights?: Record<string, string[]>
|
|
59
|
+
}>
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Email Search Module
|
|
63
|
+
*/
|
|
64
|
+
export declare class EmailSearch {
|
|
65
|
+
static createSearchDomain(config: EmailSearchConfig): Record<string, any>;
|
|
66
|
+
static createIndexerLambda(config: {
|
|
67
|
+
slug: string
|
|
68
|
+
roleArn: string
|
|
69
|
+
searchDomainEndpoint: string
|
|
70
|
+
emailBucket: string
|
|
71
|
+
}): Record<string, any>;
|
|
72
|
+
static IndexerLambdaCode: any;
|
|
73
|
+
static getIndexMapping(): Record<string, any>;
|
|
74
|
+
static buildSearchQuery(params: SearchQuery): Record<string, any>;
|
|
75
|
+
}
|
|
76
|
+
export default EmailSearch;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Mailboxes for Teams
|
|
3
|
+
*
|
|
4
|
+
* Provides shared mailbox functionality with team access
|
|
5
|
+
*/
|
|
6
|
+
export declare interface SharedMailbox {
|
|
7
|
+
id: string
|
|
8
|
+
address: string
|
|
9
|
+
displayName: string
|
|
10
|
+
description?: string
|
|
11
|
+
members: MailboxMember[]
|
|
12
|
+
settings: MailboxSettings
|
|
13
|
+
createdAt: string
|
|
14
|
+
updatedAt: string
|
|
15
|
+
}
|
|
16
|
+
export declare interface MailboxMember {
|
|
17
|
+
userId: string
|
|
18
|
+
email: string
|
|
19
|
+
name?: string
|
|
20
|
+
role: 'owner' | 'admin' | 'member' | 'viewer'
|
|
21
|
+
permissions: MailboxPermissions
|
|
22
|
+
addedAt: string
|
|
23
|
+
addedBy: string
|
|
24
|
+
}
|
|
25
|
+
export declare interface MailboxPermissions {
|
|
26
|
+
read: boolean
|
|
27
|
+
send: boolean
|
|
28
|
+
delete: boolean
|
|
29
|
+
manage: boolean
|
|
30
|
+
assignTo: boolean
|
|
31
|
+
}
|
|
32
|
+
export declare interface MailboxSettings {
|
|
33
|
+
autoAssign: boolean
|
|
34
|
+
assignmentStrategy: 'round-robin' | 'least-busy' | 'manual'
|
|
35
|
+
notifyOnNew: boolean
|
|
36
|
+
notifyMembers: string[]
|
|
37
|
+
signature?: string
|
|
38
|
+
autoResponder?: {
|
|
39
|
+
enabled: boolean
|
|
40
|
+
subject: string
|
|
41
|
+
body: string
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export declare interface MailboxAssignment {
|
|
45
|
+
messageId: string
|
|
46
|
+
assignedTo: string
|
|
47
|
+
assignedBy: string
|
|
48
|
+
assignedAt: string
|
|
49
|
+
status: 'open' | 'in-progress' | 'resolved' | 'closed'
|
|
50
|
+
notes?: string
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Shared Mailboxes Module
|
|
54
|
+
*/
|
|
55
|
+
export declare class SharedMailboxes {
|
|
56
|
+
static SharedMailboxLambdaCode: any;
|
|
57
|
+
static createMailboxTable(config: { slug: string }): Record<string, any>;
|
|
58
|
+
static createSharedMailboxLambda(config: {
|
|
59
|
+
slug: string
|
|
60
|
+
roleArn: string
|
|
61
|
+
emailBucket: string
|
|
62
|
+
mailboxTable: string
|
|
63
|
+
}): Record<string, any>;
|
|
64
|
+
static readonly PermissionSets: any;
|
|
65
|
+
}
|
|
66
|
+
export default SharedMailboxes;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Templates with Stacks Views
|
|
3
|
+
*
|
|
4
|
+
* Provides template management and rendering
|
|
5
|
+
*/
|
|
6
|
+
export declare interface EmailTemplate {
|
|
7
|
+
id: string
|
|
8
|
+
name: string
|
|
9
|
+
subject: string
|
|
10
|
+
html: string
|
|
11
|
+
text?: string
|
|
12
|
+
variables: string[]
|
|
13
|
+
category?: string
|
|
14
|
+
createdAt: string
|
|
15
|
+
updatedAt: string
|
|
16
|
+
version: number
|
|
17
|
+
}
|
|
18
|
+
export declare interface TemplateRenderOptions {
|
|
19
|
+
data: Record<string, any>
|
|
20
|
+
locale?: string
|
|
21
|
+
timezone?: string
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Email Templates Module
|
|
25
|
+
*/
|
|
26
|
+
export declare class EmailTemplates {
|
|
27
|
+
static TemplateRendererCode: any;
|
|
28
|
+
static BuiltInTemplates: any;
|
|
29
|
+
static createTemplateBucket(config: { slug: string }): Record<string, any>;
|
|
30
|
+
static createTemplateRendererLambda(config: {
|
|
31
|
+
slug: string
|
|
32
|
+
roleArn: string
|
|
33
|
+
templateBucket: string
|
|
34
|
+
}): Record<string, any>;
|
|
35
|
+
static render(template: string, data: Record<string, any>): string;
|
|
36
|
+
static private getNestedValue(obj: Record<string, any>, path: string): any;
|
|
37
|
+
static extractVariables(template: string): string[];
|
|
38
|
+
}
|
|
39
|
+
export default EmailTemplates;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Threading and Conversation View
|
|
3
|
+
*
|
|
4
|
+
* Groups emails into conversations based on subject and references
|
|
5
|
+
*/
|
|
6
|
+
export declare interface EmailThread {
|
|
7
|
+
threadId: string
|
|
8
|
+
subject: string
|
|
9
|
+
participants: string[]
|
|
10
|
+
messageCount: number
|
|
11
|
+
unreadCount: number
|
|
12
|
+
lastMessageDate: string
|
|
13
|
+
firstMessageDate: string
|
|
14
|
+
messages: ThreadMessage[]
|
|
15
|
+
labels?: string[]
|
|
16
|
+
isStarred?: boolean
|
|
17
|
+
}
|
|
18
|
+
export declare interface ThreadMessage {
|
|
19
|
+
messageId: string
|
|
20
|
+
from: string
|
|
21
|
+
fromName?: string
|
|
22
|
+
to: string[]
|
|
23
|
+
cc?: string[]
|
|
24
|
+
date: string
|
|
25
|
+
bodyPreview: string
|
|
26
|
+
isRead: boolean
|
|
27
|
+
hasAttachments: boolean
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Email Threading Module
|
|
31
|
+
*/
|
|
32
|
+
export declare class EmailThreading {
|
|
33
|
+
static ThreadingLambdaCode: any;
|
|
34
|
+
static createThreadingLambda(config: {
|
|
35
|
+
slug: string
|
|
36
|
+
roleArn: string
|
|
37
|
+
emailBucket: string
|
|
38
|
+
}): Record<string, any>;
|
|
39
|
+
static getThreads(params: {
|
|
40
|
+
s3Client: any
|
|
41
|
+
bucket: string
|
|
42
|
+
mailbox: string
|
|
43
|
+
limit?: number
|
|
44
|
+
offset?: number
|
|
45
|
+
}): Promise<EmailThread[]>;
|
|
46
|
+
static getThread(params: {
|
|
47
|
+
s3Client: any
|
|
48
|
+
bucket: string
|
|
49
|
+
mailbox: string
|
|
50
|
+
threadId: string
|
|
51
|
+
}): Promise<EmailThread | null>;
|
|
52
|
+
}
|
|
53
|
+
export default EmailThreading;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global email analytics manager instance
|
|
3
|
+
*/
|
|
4
|
+
export declare const emailAnalyticsManager: EmailAnalyticsManager;
|
|
5
|
+
/**
|
|
6
|
+
* SES Email Analytics
|
|
7
|
+
* Email tracking, analytics, and reporting
|
|
8
|
+
*/
|
|
9
|
+
export declare interface EmailEvent {
|
|
10
|
+
id: string
|
|
11
|
+
messageId: string
|
|
12
|
+
eventType: 'send' | 'delivery' | 'open' | 'click' | 'bounce' | 'complaint' | 'reject' | 'renderingFailure'
|
|
13
|
+
timestamp: Date
|
|
14
|
+
recipient: string
|
|
15
|
+
subject?: string
|
|
16
|
+
tags?: Record<string, string>
|
|
17
|
+
}
|
|
18
|
+
export declare interface OpenEvent extends EmailEvent {
|
|
19
|
+
eventType: 'open'
|
|
20
|
+
ipAddress: string
|
|
21
|
+
userAgent: string
|
|
22
|
+
}
|
|
23
|
+
export declare interface ClickEvent extends EmailEvent {
|
|
24
|
+
eventType: 'click'
|
|
25
|
+
link: string
|
|
26
|
+
ipAddress: string
|
|
27
|
+
userAgent: string
|
|
28
|
+
}
|
|
29
|
+
export declare interface EmailCampaign {
|
|
30
|
+
id: string
|
|
31
|
+
name: string
|
|
32
|
+
subject: string
|
|
33
|
+
fromEmail: string
|
|
34
|
+
tags: Record<string, string>
|
|
35
|
+
sentCount: number
|
|
36
|
+
deliveredCount: number
|
|
37
|
+
openCount: number
|
|
38
|
+
clickCount: number
|
|
39
|
+
bounceCount: number
|
|
40
|
+
complaintCount: number
|
|
41
|
+
createdAt: Date
|
|
42
|
+
}
|
|
43
|
+
export declare interface AnalyticsReport {
|
|
44
|
+
id: string
|
|
45
|
+
campaignId?: string
|
|
46
|
+
startDate: Date
|
|
47
|
+
endDate: Date
|
|
48
|
+
totalSent: number
|
|
49
|
+
totalDelivered: number
|
|
50
|
+
totalOpened: number
|
|
51
|
+
totalClicked: number
|
|
52
|
+
totalBounced: number
|
|
53
|
+
totalComplaints: number
|
|
54
|
+
deliveryRate: number
|
|
55
|
+
openRate: number
|
|
56
|
+
clickRate: number
|
|
57
|
+
clickToOpenRate: number
|
|
58
|
+
bounceRate: number
|
|
59
|
+
complaintRate: number
|
|
60
|
+
topLinks: Array<{ link: string; clicks: number }>
|
|
61
|
+
deviceBreakdown: Record<string, number>
|
|
62
|
+
locationBreakdown: Record<string, number>
|
|
63
|
+
}
|
|
64
|
+
export declare interface ABTest {
|
|
65
|
+
id: string
|
|
66
|
+
name: string
|
|
67
|
+
variants: ABTestVariant[]
|
|
68
|
+
status: 'draft' | 'running' | 'completed'
|
|
69
|
+
startedAt?: Date
|
|
70
|
+
completedAt?: Date
|
|
71
|
+
winner?: string
|
|
72
|
+
}
|
|
73
|
+
export declare interface ABTestVariant {
|
|
74
|
+
id: string
|
|
75
|
+
name: string
|
|
76
|
+
subject: string
|
|
77
|
+
content: string
|
|
78
|
+
weight: number
|
|
79
|
+
sentCount: number
|
|
80
|
+
openCount: number
|
|
81
|
+
clickCount: number
|
|
82
|
+
conversionCount: number
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Email analytics manager
|
|
86
|
+
*/
|
|
87
|
+
export declare class EmailAnalyticsManager {
|
|
88
|
+
private events: Map<string, EmailEvent>;
|
|
89
|
+
private campaigns: Map<string, EmailCampaign>;
|
|
90
|
+
private reports: Map<string, AnalyticsReport>;
|
|
91
|
+
private abTests: Map<string, ABTest>;
|
|
92
|
+
private eventCounter: any;
|
|
93
|
+
private campaignCounter: any;
|
|
94
|
+
private reportCounter: any;
|
|
95
|
+
private abTestCounter: any;
|
|
96
|
+
trackEvent(event: Omit<EmailEvent, 'id'>): EmailEvent;
|
|
97
|
+
trackOpen(options: {
|
|
98
|
+
messageId: string
|
|
99
|
+
recipient: string
|
|
100
|
+
ipAddress: string
|
|
101
|
+
userAgent: string
|
|
102
|
+
tags?: Record<string, string>
|
|
103
|
+
}): OpenEvent;
|
|
104
|
+
trackClick(options: {
|
|
105
|
+
messageId: string
|
|
106
|
+
recipient: string
|
|
107
|
+
link: string
|
|
108
|
+
ipAddress: string
|
|
109
|
+
userAgent: string
|
|
110
|
+
tags?: Record<string, string>
|
|
111
|
+
}): ClickEvent;
|
|
112
|
+
createCampaign(campaign: Omit<EmailCampaign, 'id' | 'sentCount' | 'deliveredCount' | 'openCount' | 'clickCount' | 'bounceCount' | 'complaintCount' | 'createdAt'>): EmailCampaign;
|
|
113
|
+
private updateCampaignStats(campaignId: string, eventType: string): void;
|
|
114
|
+
generateReport(options: {
|
|
115
|
+
campaignId?: string
|
|
116
|
+
startDate: Date
|
|
117
|
+
endDate: Date
|
|
118
|
+
}): AnalyticsReport;
|
|
119
|
+
createABTest(options: {
|
|
120
|
+
name: string
|
|
121
|
+
variants: Array<{
|
|
122
|
+
name: string
|
|
123
|
+
subject: string
|
|
124
|
+
content: string
|
|
125
|
+
weight: number
|
|
126
|
+
}>
|
|
127
|
+
}): ABTest;
|
|
128
|
+
startABTest(abTestId: string): ABTest;
|
|
129
|
+
completeABTest(abTestId: string): ABTest;
|
|
130
|
+
getCampaign(id: string): EmailCampaign | undefined;
|
|
131
|
+
listCampaigns(): EmailCampaign[];
|
|
132
|
+
getEvents(options?: {
|
|
133
|
+
messageId?: string
|
|
134
|
+
eventType?: string
|
|
135
|
+
startDate?: Date
|
|
136
|
+
endDate?: Date
|
|
137
|
+
}): EmailEvent[];
|
|
138
|
+
generateTrackingConfigurationCF(options: {
|
|
139
|
+
configurationSetName: string
|
|
140
|
+
openTracking?: boolean
|
|
141
|
+
clickTracking?: boolean
|
|
142
|
+
}): any;
|
|
143
|
+
clear(): void;
|
|
144
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global bounce and complaint handler instance
|
|
3
|
+
*/
|
|
4
|
+
export declare const bounceComplaintHandler: BounceComplaintHandler;
|
|
5
|
+
/**
|
|
6
|
+
* SES Bounce and Complaint Handling
|
|
7
|
+
* Automated bounce processing and reputation management
|
|
8
|
+
*/
|
|
9
|
+
export declare interface BounceEvent {
|
|
10
|
+
id: string
|
|
11
|
+
timestamp: Date
|
|
12
|
+
messageId: string
|
|
13
|
+
recipient: string
|
|
14
|
+
bounceType: 'Permanent' | 'Transient' | 'Undetermined'
|
|
15
|
+
bounceSubType: string
|
|
16
|
+
diagnosticCode?: string
|
|
17
|
+
feedbackId: string
|
|
18
|
+
}
|
|
19
|
+
export declare interface ComplaintEvent {
|
|
20
|
+
id: string
|
|
21
|
+
timestamp: Date
|
|
22
|
+
messageId: string
|
|
23
|
+
recipients: string[]
|
|
24
|
+
complaintFeedbackType?: string
|
|
25
|
+
userAgent?: string
|
|
26
|
+
feedbackId: string
|
|
27
|
+
arrivalDate?: Date
|
|
28
|
+
}
|
|
29
|
+
export declare interface BounceHandler {
|
|
30
|
+
id: string
|
|
31
|
+
name: string
|
|
32
|
+
bounceThreshold: number
|
|
33
|
+
complaintThreshold: number
|
|
34
|
+
suppressionDuration: number
|
|
35
|
+
autoSuppress: boolean
|
|
36
|
+
notificationTopicArn?: string
|
|
37
|
+
}
|
|
38
|
+
export declare interface SuppressionListEntry {
|
|
39
|
+
id: string
|
|
40
|
+
emailAddress: string
|
|
41
|
+
reason: 'BOUNCE' | 'COMPLAINT'
|
|
42
|
+
suppressedAt: Date
|
|
43
|
+
expiresAt?: Date
|
|
44
|
+
bounceCount?: number
|
|
45
|
+
complaintCount?: number
|
|
46
|
+
}
|
|
47
|
+
export declare interface ReputationMetrics {
|
|
48
|
+
id: string
|
|
49
|
+
timestamp: Date
|
|
50
|
+
bounceRate: number
|
|
51
|
+
complaintRate: number
|
|
52
|
+
sendingQuota: number
|
|
53
|
+
maxSendRate: number
|
|
54
|
+
sentLast24Hours: number
|
|
55
|
+
reputationStatus: 'Good' | 'Warning' | 'Probation' | 'Shutdown'
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Bounce and complaint handler
|
|
59
|
+
*/
|
|
60
|
+
export declare class BounceComplaintHandler {
|
|
61
|
+
private bounces: Map<string, BounceEvent>;
|
|
62
|
+
private complaints: Map<string, ComplaintEvent>;
|
|
63
|
+
private handlers: Map<string, BounceHandler>;
|
|
64
|
+
private suppressionList: Map<string, SuppressionListEntry>;
|
|
65
|
+
private metrics: Map<string, ReputationMetrics>;
|
|
66
|
+
private bounceCounter: any;
|
|
67
|
+
private complaintCounter: any;
|
|
68
|
+
private handlerCounter: any;
|
|
69
|
+
private suppressionCounter: any;
|
|
70
|
+
private metricsCounter: any;
|
|
71
|
+
recordBounce(bounce: Omit<BounceEvent, 'id'>): BounceEvent;
|
|
72
|
+
recordComplaint(complaint: Omit<ComplaintEvent, 'id'>): ComplaintEvent;
|
|
73
|
+
createBounceHandler(handler: Omit<BounceHandler, 'id'>): BounceHandler;
|
|
74
|
+
createAutomaticBounceHandler(options: {
|
|
75
|
+
name: string
|
|
76
|
+
notificationTopicArn: string
|
|
77
|
+
}): BounceHandler;
|
|
78
|
+
addToSuppressionList(entry: {
|
|
79
|
+
emailAddress: string
|
|
80
|
+
reason: 'BOUNCE' | 'COMPLAINT'
|
|
81
|
+
expirationDays?: number
|
|
82
|
+
}): SuppressionListEntry;
|
|
83
|
+
removeFromSuppressionList(emailAddress: string): boolean;
|
|
84
|
+
isSuppressed(emailAddress: string): boolean;
|
|
85
|
+
getBounceStatistics(startDate: Date, endDate: Date): {
|
|
86
|
+
totalBounces: number
|
|
87
|
+
permanentBounces: number
|
|
88
|
+
transientBounces: number
|
|
89
|
+
bounceRate: number
|
|
90
|
+
topRecipients: Array<{ email: string; count: number }>
|
|
91
|
+
};
|
|
92
|
+
getComplaintStatistics(startDate: Date, endDate: Date): {
|
|
93
|
+
totalComplaints: number
|
|
94
|
+
uniqueComplainters: number
|
|
95
|
+
complaintRate: number
|
|
96
|
+
};
|
|
97
|
+
calculateReputationMetrics(): ReputationMetrics;
|
|
98
|
+
getBounces(messageId?: string): BounceEvent[];
|
|
99
|
+
getComplaints(messageId?: string): ComplaintEvent[];
|
|
100
|
+
listSuppressionList(reason?: 'BOUNCE' | 'COMPLAINT'): SuppressionListEntry[];
|
|
101
|
+
generateSNSSubscriptionCF(options: {
|
|
102
|
+
topicArn: string
|
|
103
|
+
endpoint: string
|
|
104
|
+
protocol: 'email' | 'email-json' | 'http' | 'https' | 'sqs' | 'lambda'
|
|
105
|
+
}): any;
|
|
106
|
+
generateEventDestinationCF(options: {
|
|
107
|
+
configurationSetName: string
|
|
108
|
+
eventDestinationName: string
|
|
109
|
+
eventTypes: Array<'send' | 'reject' | 'bounce' | 'complaint' | 'delivery' | 'open' | 'click' | 'renderingFailure'>
|
|
110
|
+
snsTopicArn?: string
|
|
111
|
+
cloudWatchDestination?: {
|
|
112
|
+
dimensionConfigurations: Array<{
|
|
113
|
+
dimensionName: string
|
|
114
|
+
dimensionValueSource: 'messageTag' | 'emailHeader' | 'linkTag'
|
|
115
|
+
defaultDimensionValue: string
|
|
116
|
+
}>
|
|
117
|
+
}
|
|
118
|
+
}): any;
|
|
119
|
+
clear(): void;
|
|
120
|
+
}
|