@beechcms/api 0.6.0-preview.2 → 0.6.0-preview.3
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 +4 -4
- package/assets/dashboard/assets/chart-Cws4Yj6K.js +39 -0
- package/assets/dashboard/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/assets/dashboard/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/assets/dashboard/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/assets/dashboard/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/assets/dashboard/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/assets/dashboard/assets/index-BjPpppHe.css +1 -0
- package/assets/dashboard/assets/index-CrW-zhkA.js +642 -0
- package/assets/dashboard/assets/lora-cyrillic-ext-wght-normal-YcVxMP-u.woff2 +0 -0
- package/assets/dashboard/assets/lora-cyrillic-wght-normal-UWPuZLjM.woff2 +0 -0
- package/assets/dashboard/assets/lora-latin-ext-wght-normal-C2Wlntb9.woff2 +0 -0
- package/assets/dashboard/assets/lora-latin-wght-normal-BiLcIKcI.woff2 +0 -0
- package/assets/dashboard/assets/lora-math-wght-normal-sOy7rEfW.woff2 +0 -0
- package/assets/dashboard/assets/lora-symbols-wght-normal-DQ5VrUkH.woff2 +0 -0
- package/assets/dashboard/assets/lora-vietnamese-wght-normal-CfJ7gtf3.woff2 +0 -0
- package/assets/dashboard/assets/pie-chart-recharts-CAxoDQp2.js +1 -0
- package/assets/dashboard/assets/timeseries-chart-recharts-CixDW-LM.js +1 -0
- package/assets/dashboard/index.html +2 -2
- package/dist/auth/__fixtures__/in-memory-hash-provider.d.ts +5 -0
- package/dist/auth/__fixtures__/static-token-service.d.ts +6 -0
- package/dist/auth/bcrypt-hash-provider.d.ts +8 -0
- package/dist/auth/constants.d.ts +10 -0
- package/dist/auth/jose-token-service.d.ts +14 -0
- package/dist/auth/login.d.ts +32 -0
- package/dist/auth/refresh.d.ts +1 -0
- package/dist/factory.d.ts +39 -0
- package/dist/features/automations/action-executors/create-entry.executor.d.ts +7 -0
- package/dist/features/automations/action-executors/edit-field.executor.d.ts +7 -0
- package/dist/features/automations/action-executors/index.d.ts +13 -0
- package/dist/features/automations/action-executors/send-mail.executor.d.ts +7 -0
- package/dist/features/automations/action-executors/set-variable.executor.d.ts +15 -0
- package/dist/features/automations/action-executors/webhook.executor.d.ts +7 -0
- package/dist/features/automations/automation-runner.d.ts +13 -0
- package/dist/features/automations/automation-runner.utils.d.ts +3 -0
- package/dist/features/automations/automations.handler.d.ts +7 -0
- package/dist/features/automations/automations.schema.d.ts +191 -0
- package/dist/features/automations/context-resolver.d.ts +8 -0
- package/dist/features/automations/cron-runner.d.ts +9 -0
- package/dist/features/automations/cron-runner.utils.d.ts +1 -0
- package/dist/features/automations/filter-translation.d.ts +9 -0
- package/dist/features/automations/index.d.ts +7 -0
- package/dist/features/automations/template-grammar.d.ts +73 -0
- package/dist/features/automations/var-access-resolver.d.ts +6 -0
- package/dist/features/automations/when-evaluator.d.ts +3 -0
- package/dist/features/automations/when-pushdown.d.ts +2 -0
- package/dist/features/backrefs/backrefs.handler.d.ts +3 -0
- package/dist/features/backrefs/d1-backref.repository.d.ts +17 -0
- package/dist/features/backrefs/index.d.ts +1 -0
- package/dist/features/content/constants.d.ts +12 -0
- package/dist/features/content/handlers/bulk.handler.d.ts +3 -0
- package/dist/features/content/handlers/create.d.ts +3 -0
- package/dist/features/content/handlers/delete.d.ts +3 -0
- package/dist/features/content/handlers/facets.d.ts +3 -0
- package/dist/features/content/handlers/get.d.ts +4 -0
- package/dist/features/content/handlers/helpers.d.ts +12 -0
- package/dist/features/content/handlers/list.d.ts +3 -0
- package/dist/features/content/handlers/update.d.ts +3 -0
- package/dist/features/content/index.d.ts +4 -0
- package/dist/features/dashboard-layout/dashboard-layout.handler.d.ts +7 -0
- package/dist/features/dashboard-layout/index.d.ts +1 -0
- package/dist/features/draft/draft.handler.d.ts +4 -0
- package/dist/features/draft/draft.middleware.d.ts +9 -0
- package/dist/features/draft/index.d.ts +1 -0
- package/{src/features/email/email.provider.ts → dist/features/email/email.provider.d.ts} +19 -24
- package/dist/features/email/email.service.d.ts +13 -0
- package/dist/features/email/email.types.d.ts +94 -0
- package/{src/features/email/index.ts → dist/features/email/index.d.ts} +3 -16
- package/dist/features/email/providers/resend.d.ts +36 -0
- package/dist/features/email/providers/smtp.d.ts +11 -0
- package/dist/features/email/templates/automation-mail.d.ts +8 -0
- package/dist/features/email/templates/password-changed.d.ts +15 -0
- package/dist/features/email/templates/password-reset.d.ts +18 -0
- package/dist/features/email/templates/shell.d.ts +58 -0
- package/dist/features/notifications/index.d.ts +1 -0
- package/dist/features/notifications/notifications.handler.d.ts +15 -0
- package/dist/features/password-reset/index.d.ts +6 -0
- package/dist/features/password-reset/request.d.ts +10 -0
- package/dist/features/password-reset/reset.d.ts +9 -0
- package/dist/features/rotate-field/index.d.ts +1 -0
- package/dist/features/rotate-field/rotate-field.handler.d.ts +7 -0
- package/dist/features/rotate-field/rotate-field.schema.d.ts +11 -0
- package/dist/features/schema/schema.handler.d.ts +7 -0
- package/dist/features/seeds/index.d.ts +1 -0
- package/dist/features/seeds/seeds.handler.d.ts +6 -0
- package/dist/features/settings/settings.handler.d.ts +7 -0
- package/dist/features/setup/index.d.ts +7 -0
- package/dist/features/stats/index.d.ts +1 -0
- package/dist/features/stats/stats.handler.d.ts +7 -0
- package/dist/features/webhooks/index.d.ts +3 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +9666 -0
- package/dist/media-utils.d.ts +25 -0
- package/dist/middleware/auth-providers.middleware.d.ts +8 -0
- package/dist/middleware/observability.middleware.d.ts +20 -0
- package/dist/middleware/rate-limit.middleware.d.ts +9 -0
- package/dist/middleware/repository.middleware.d.ts +34 -0
- package/dist/middleware/seed-registry.middleware.d.ts +10 -0
- package/dist/middleware/storage.middleware.d.ts +7 -0
- package/dist/middleware.d.ts +11 -0
- package/dist/public/access-policy.d.ts +12 -0
- package/dist/public/api-key-middleware.d.ts +6 -0
- package/dist/public/cache-utils.d.ts +10 -0
- package/dist/public/entry-projection.d.ts +2 -0
- package/dist/public/idempotency.d.ts +9 -0
- package/dist/public/index.d.ts +11 -0
- package/dist/public/problem-details.d.ts +31 -0
- package/dist/public/public-add.d.ts +3 -0
- package/dist/public/public-edit.d.ts +5 -0
- package/dist/public/public-errors.d.ts +13 -0
- package/dist/public/public-read.d.ts +3 -0
- package/dist/public/public-routes.d.ts +3 -0
- package/dist/public/query-builder.d.ts +28 -0
- package/dist/public/rate-limit-middleware.d.ts +3 -0
- package/dist/public/read-list.d.ts +26 -0
- package/dist/public/read-single.d.ts +22 -0
- package/dist/public/response-builder.d.ts +22 -0
- package/dist/public/sanitize.d.ts +23 -0
- package/{src/public/slug-utils.ts → dist/public/slug-utils.d.ts} +3 -10
- package/dist/rate-limit/cloudflare-rate-limiter.d.ts +6 -0
- package/dist/rate-limit/in-memory-rate-limiter.d.ts +7 -0
- package/dist/rate-limit/no-op-rate-limiter.d.ts +4 -0
- package/dist/search-utils.d.ts +54 -0
- package/dist/search.d.ts +6 -0
- package/dist/shared/apply-policies.d.ts +10 -0
- package/dist/shared/automations.repository.d1.d.ts +12 -0
- package/dist/shared/background-notification-service.d.ts +18 -0
- package/dist/shared/base.repository.d1.d.ts +18 -0
- package/dist/shared/content-utils.d.ts +21 -0
- package/dist/shared/content.repository.d1.d.ts +68 -0
- package/dist/shared/d1-activity-log.repository.d.ts +13 -0
- package/dist/shared/d1-activity-logger.d.ts +20 -0
- package/dist/shared/d1-analytics.repository.d.ts +20 -0
- package/dist/shared/d1-content-scan.repository.d.ts +7 -0
- package/dist/shared/d1-notification.repository.d.ts +17 -0
- package/dist/shared/d1-password-reset-token.repository.d.ts +10 -0
- package/dist/shared/d1-search.repository.d.ts +14 -0
- package/dist/shared/d1-session.repository.d.ts +12 -0
- package/dist/shared/d1-setup-checklist.repository.d.ts +12 -0
- package/dist/shared/d1-user.repository.d.ts +18 -0
- package/dist/shared/d1-widget.repository.d.ts +31 -0
- package/dist/shared/dashboard-layout.repository.d1.d.ts +9 -0
- package/dist/shared/demo-data-sql.d.ts +1 -0
- package/dist/shared/demo-data.repository.d1.d.ts +6 -0
- package/dist/shared/execution-context-scheduler.d.ts +6 -0
- package/dist/shared/fixed-clock.d.ts +13 -0
- package/dist/shared/fts-sync.d.ts +1 -0
- package/dist/shared/idempotency.repository.d1.d.ts +16 -0
- package/dist/shared/in-memory-activity-logger.d.ts +11 -0
- package/dist/shared/in-memory-notification-service.d.ts +11 -0
- package/dist/shared/in-memory-seed.repository.d.ts +18 -0
- package/dist/shared/media.repository.d1.d.ts +35 -0
- package/dist/shared/qstash-notification-service.d.ts +18 -0
- package/dist/shared/query-utils.d.ts +36 -0
- package/dist/shared/request-utils.d.ts +13 -0
- package/dist/shared/schema-mutator.d1.d.ts +12 -0
- package/dist/shared/seed-layout.repository.d1.d.ts +9 -0
- package/dist/shared/seed-registry-cache.d.ts +12 -0
- package/dist/shared/seed.repository.d1.d.ts +13 -0
- package/dist/shared/sequential-id-generator.d.ts +13 -0
- package/dist/shared/site-settings.repository.d1.d.ts +7 -0
- package/dist/shared/storage/factory.d.ts +8 -0
- package/dist/shared/storage/s3-bucket.d.ts +43 -0
- package/dist/shared/storage-utils.d.ts +7 -0
- package/dist/shared/system-stats.repository.d1.d.ts +25 -0
- package/dist/types.d.ts +85 -0
- package/dist/upload.d.ts +16 -0
- package/dist/widget.d.ts +7 -0
- package/package.json +27 -18
- package/assets/dashboard/assets/chart-BrJFdsGZ.js +0 -39
- package/assets/dashboard/assets/index-CIaoMxuB.css +0 -1
- package/assets/dashboard/assets/index-wTKgygsg.js +0 -636
- package/assets/dashboard/assets/pie-chart-recharts-BEaE1FOE.js +0 -1
- package/assets/dashboard/assets/timeseries-chart-recharts-DmWM6imF.js +0 -1
- package/src/auth/__fixtures__/in-memory-hash-provider.ts +0 -17
- package/src/auth/__fixtures__/static-token-service.ts +0 -22
- package/src/auth/bcrypt-hash-provider.ts +0 -24
- package/src/auth/constants.ts +0 -14
- package/src/auth/generate-refresh-token.test.ts +0 -23
- package/src/auth/hash-provider.test.ts +0 -55
- package/src/auth/jose-token-service.ts +0 -62
- package/src/auth/jwt-claims-passthrough.test.ts +0 -87
- package/src/auth/login.test.ts +0 -100
- package/src/auth/login.ts +0 -78
- package/src/auth/refresh.ts +0 -11
- package/src/auth/token-service.test.ts +0 -90
- package/src/factory.ts +0 -370
- package/src/features/automations/__tests__/action-executors.test.ts +0 -255
- package/src/features/automations/__tests__/automation-runner.test.ts +0 -196
- package/src/features/automations/__tests__/automation-runner.utils.test.ts +0 -60
- package/src/features/automations/__tests__/automations.handler.test.ts +0 -264
- package/src/features/automations/__tests__/automations.repository.test.ts +0 -163
- package/src/features/automations/__tests__/automations.schema.test.ts +0 -224
- package/src/features/automations/__tests__/context-resolver.test.ts +0 -126
- package/src/features/automations/__tests__/cron-runner.test.ts +0 -267
- package/src/features/automations/__tests__/cron-runner.utils.test.ts +0 -144
- package/src/features/automations/__tests__/set-variable.executor.test.ts +0 -383
- package/src/features/automations/__tests__/template-grammar.test.ts +0 -308
- package/src/features/automations/__tests__/webhook.executor.test.ts +0 -142
- package/src/features/automations/__tests__/when-evaluator.test.ts +0 -274
- package/src/features/automations/__tests__/when-pushdown.test.ts +0 -281
- package/src/features/automations/action-executors/create-entry.executor.ts +0 -27
- package/src/features/automations/action-executors/edit-field.executor.ts +0 -26
- package/src/features/automations/action-executors/index.ts +0 -37
- package/src/features/automations/action-executors/send-mail.executor.ts +0 -53
- package/src/features/automations/action-executors/set-variable.executor.ts +0 -159
- package/src/features/automations/action-executors/webhook.executor.ts +0 -67
- package/src/features/automations/automation-runner.ts +0 -85
- package/src/features/automations/automation-runner.utils.ts +0 -47
- package/src/features/automations/automations.handler.ts +0 -197
- package/src/features/automations/automations.schema.ts +0 -177
- package/src/features/automations/context-resolver.ts +0 -152
- package/src/features/automations/cron-runner.ts +0 -140
- package/src/features/automations/cron-runner.utils.ts +0 -44
- package/src/features/automations/filter-translation.ts +0 -46
- package/src/features/automations/index.ts +0 -16
- package/src/features/automations/template-grammar.ts +0 -245
- package/src/features/automations/var-access-resolver.ts +0 -140
- package/src/features/automations/when-evaluator.ts +0 -87
- package/src/features/automations/when-pushdown.ts +0 -57
- package/src/features/backrefs/__tests__/backrefs.handler.test.ts +0 -359
- package/src/features/backrefs/backrefs.handler.ts +0 -168
- package/src/features/backrefs/d1-backref.repository.ts +0 -84
- package/src/features/backrefs/index.ts +0 -5
- package/src/features/content/constants.ts +0 -16
- package/src/features/content/handlers/bulk.handler.ts +0 -185
- package/src/features/content/handlers/create.ts +0 -129
- package/src/features/content/handlers/delete.ts +0 -62
- package/src/features/content/handlers/facets.ts +0 -49
- package/src/features/content/handlers/get.ts +0 -120
- package/src/features/content/handlers/helpers.test.ts +0 -180
- package/src/features/content/handlers/helpers.ts +0 -93
- package/src/features/content/handlers/list.ts +0 -174
- package/src/features/content/handlers/update.ts +0 -174
- package/src/features/content/index.ts +0 -26
- package/src/features/dashboard-layout/__tests__/dashboard-layout.handler.test.ts +0 -388
- package/src/features/dashboard-layout/dashboard-layout.handler.ts +0 -206
- package/src/features/dashboard-layout/index.ts +0 -5
- package/src/features/draft/draft.handler.ts +0 -195
- package/src/features/draft/draft.middleware.ts +0 -66
- package/src/features/draft/index.ts +0 -5
- package/src/features/email/email.service.ts +0 -98
- package/src/features/email/email.types.ts +0 -119
- package/src/features/email/providers/resend.ts +0 -67
- package/src/features/email/providers/smtp.ts +0 -55
- package/src/features/email/templates/automation-mail.ts +0 -19
- package/src/features/email/templates/password-changed.ts +0 -63
- package/src/features/email/templates/password-reset.ts +0 -68
- package/src/features/email/templates/shell.ts +0 -96
- package/src/features/notifications/index.ts +0 -5
- package/src/features/notifications/notifications.handler.ts +0 -105
- package/src/features/password-reset/index.ts +0 -19
- package/src/features/password-reset/request.ts +0 -92
- package/src/features/password-reset/reset.ts +0 -102
- package/src/features/rotate-field/index.ts +0 -5
- package/src/features/rotate-field/rotate-field.handler.ts +0 -132
- package/src/features/rotate-field/rotate-field.schema.ts +0 -17
- package/src/features/schema/schema.handler.ts +0 -131
- package/src/features/seeds/index.ts +0 -5
- package/src/features/seeds/seeds.handler.test.ts +0 -1199
- package/src/features/seeds/seeds.handler.ts +0 -558
- package/src/features/settings/__tests__/settings.handler.test.ts +0 -555
- package/src/features/settings/settings.handler.ts +0 -392
- package/src/features/setup/index.ts +0 -288
- package/src/features/stats/index.ts +0 -5
- package/src/features/stats/stats.handler.ts +0 -420
- package/src/features/webhooks/index.ts +0 -63
- package/src/index.ts +0 -65
- package/src/media-utils.ts +0 -82
- package/src/middleware/auth-providers.middleware.test.ts +0 -85
- package/src/middleware/auth-providers.middleware.ts +0 -45
- package/src/middleware/observability.middleware.test.ts +0 -93
- package/src/middleware/observability.middleware.ts +0 -70
- package/src/middleware/rate-limit.middleware.ts +0 -45
- package/src/middleware/repository.middleware.ts +0 -117
- package/src/middleware/seed-registry.middleware.test.ts +0 -97
- package/src/middleware/seed-registry.middleware.ts +0 -21
- package/src/middleware/storage.middleware.ts +0 -25
- package/src/middleware.ts +0 -45
- package/src/public/access-policy.ts +0 -27
- package/src/public/api-key-middleware.ts +0 -57
- package/src/public/cache-utils.ts +0 -38
- package/src/public/entry-projection.ts +0 -46
- package/src/public/idempotency.ts +0 -23
- package/src/public/index.ts +0 -16
- package/src/public/problem-details.ts +0 -124
- package/src/public/public-add.ts +0 -114
- package/src/public/public-edit.ts +0 -163
- package/src/public/public-errors.ts +0 -19
- package/src/public/public-read.ts +0 -63
- package/src/public/public-routes.ts +0 -88
- package/src/public/query-builder.test.ts +0 -224
- package/src/public/query-builder.ts +0 -156
- package/src/public/rate-limit-middleware.ts +0 -34
- package/src/public/read-list.ts +0 -54
- package/src/public/read-single.ts +0 -48
- package/src/public/response-builder.ts +0 -30
- package/src/public/sanitize.ts +0 -69
- package/src/rate-limit/cloudflare-rate-limiter.test.ts +0 -30
- package/src/rate-limit/cloudflare-rate-limiter.ts +0 -15
- package/src/rate-limit/in-memory-rate-limiter.test.ts +0 -37
- package/src/rate-limit/in-memory-rate-limiter.ts +0 -17
- package/src/rate-limit/no-op-rate-limiter.test.ts +0 -22
- package/src/rate-limit/no-op-rate-limiter.ts +0 -11
- package/src/search-utils.test.ts +0 -211
- package/src/search-utils.ts +0 -213
- package/src/search.ts +0 -65
- package/src/shared/apply-policies.test.ts +0 -81
- package/src/shared/apply-policies.ts +0 -67
- package/src/shared/automations.repository.d1.ts +0 -150
- package/src/shared/background-notification-service.test.ts +0 -62
- package/src/shared/background-notification-service.ts +0 -52
- package/src/shared/base.repository.d1.ts +0 -32
- package/src/shared/content-utils.test.ts +0 -165
- package/src/shared/content-utils.ts +0 -86
- package/src/shared/content.repository.d1.test.ts +0 -507
- package/src/shared/content.repository.d1.ts +0 -851
- package/src/shared/d1-activity-log.repository.test.ts +0 -140
- package/src/shared/d1-activity-log.repository.ts +0 -105
- package/src/shared/d1-activity-logger.test.ts +0 -86
- package/src/shared/d1-activity-logger.ts +0 -67
- package/src/shared/d1-analytics.repository.test.ts +0 -78
- package/src/shared/d1-analytics.repository.ts +0 -85
- package/src/shared/d1-content-scan.repository.test.ts +0 -80
- package/src/shared/d1-content-scan.repository.ts +0 -37
- package/src/shared/d1-notification.repository.test.ts +0 -128
- package/src/shared/d1-notification.repository.ts +0 -118
- package/src/shared/d1-password-reset-token.repository.test.ts +0 -81
- package/src/shared/d1-password-reset-token.repository.ts +0 -56
- package/src/shared/d1-search.repository.test.ts +0 -87
- package/src/shared/d1-search.repository.ts +0 -88
- package/src/shared/d1-session.repository.test.ts +0 -125
- package/src/shared/d1-session.repository.ts +0 -102
- package/src/shared/d1-setup-checklist.repository.ts +0 -36
- package/src/shared/d1-user.repository.test.ts +0 -151
- package/src/shared/d1-user.repository.ts +0 -119
- package/src/shared/d1-widget.repository.test.ts +0 -267
- package/src/shared/d1-widget.repository.ts +0 -385
- package/src/shared/dashboard-layout.repository.d1.test.ts +0 -135
- package/src/shared/dashboard-layout.repository.d1.ts +0 -58
- package/src/shared/demo-data-sql.ts +0 -216
- package/src/shared/demo-data.repository.d1.ts +0 -20
- package/src/shared/execution-context-scheduler.ts +0 -13
- package/src/shared/fixed-clock.ts +0 -25
- package/src/shared/fts-sync.ts +0 -8
- package/src/shared/idempotency.repository.d1.test.ts +0 -83
- package/src/shared/idempotency.repository.d1.ts +0 -60
- package/src/shared/in-memory-activity-logger.ts +0 -19
- package/src/shared/in-memory-notification-service.ts +0 -19
- package/src/shared/in-memory-seed.repository.ts +0 -58
- package/src/shared/media.repository.d1.test.ts +0 -107
- package/src/shared/media.repository.d1.ts +0 -68
- package/src/shared/qstash-notification-service.test.ts +0 -67
- package/src/shared/qstash-notification-service.ts +0 -55
- package/src/shared/query-utils.ts +0 -141
- package/src/shared/request-utils.ts +0 -26
- package/src/shared/schema-mutator.d1.test.ts +0 -142
- package/src/shared/schema-mutator.d1.ts +0 -64
- package/src/shared/seed-layout.repository.d1.test.ts +0 -114
- package/src/shared/seed-layout.repository.d1.ts +0 -62
- package/src/shared/seed-registry-cache.test.ts +0 -68
- package/src/shared/seed-registry-cache.ts +0 -49
- package/src/shared/seed.repository.d1.test.ts +0 -143
- package/src/shared/seed.repository.d1.ts +0 -98
- package/src/shared/sequential-id-generator.ts +0 -33
- package/src/shared/site-settings.repository.d1.ts +0 -53
- package/src/shared/storage/factory.ts +0 -41
- package/src/shared/storage/s3-bucket.ts +0 -195
- package/src/shared/storage-utils.ts +0 -40
- package/src/shared/system-stats.repository.d1.test.ts +0 -58
- package/src/shared/system-stats.repository.d1.ts +0 -48
- package/src/types.ts +0 -90
- package/src/upload.ts +0 -198
- package/src/widget.test.ts +0 -85
- package/src/widget.ts +0 -251
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { EmailProvider } from '../email.provider';
|
|
2
|
+
import type { OutboundEmail } from '../email.types';
|
|
3
|
+
/**
|
|
4
|
+
* Resend implementation of EmailProvider.
|
|
5
|
+
*
|
|
6
|
+
* This is the ONLY file in the email module that knows about Resend.
|
|
7
|
+
* Every other file is completely unaware of which provider is active.
|
|
8
|
+
*
|
|
9
|
+
* ─── HOW TO REPLACE THIS PROVIDER ──────────────────────────────────────────
|
|
10
|
+
* 1. Create a new file in `providers/` (e.g., `providers/sendgrid.ts`).
|
|
11
|
+
* 2. Export a class that implements `EmailProvider` (a single method: `send`).
|
|
12
|
+
* 3. In `email.service.ts`, replace `new ResendEmailProvider(...)` with
|
|
13
|
+
* your new class in the `createProvider()` function.
|
|
14
|
+
* 4. Update the environment variables in `types.ts` and `wrangler.jsonc`.
|
|
15
|
+
* 5. No other file in the project needs to be modified.
|
|
16
|
+
*
|
|
17
|
+
* Resend API Documentation: https://resend.com/docs/api-reference/emails/send-email
|
|
18
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
19
|
+
*/
|
|
20
|
+
export declare class ResendEmailProvider implements EmailProvider {
|
|
21
|
+
private readonly apiKey;
|
|
22
|
+
/** When `true`, errors are logged to the console (development only). */
|
|
23
|
+
private readonly isDev;
|
|
24
|
+
constructor(apiKey: string, isDev?: boolean);
|
|
25
|
+
/**
|
|
26
|
+
* Sends the email via the Resend REST API (`POST /emails`).
|
|
27
|
+
*
|
|
28
|
+
* Throws an exception if Resend responds with a non-2xx status, so that
|
|
29
|
+
* the caller (`email.service.ts`) can decide whether to propagate the error
|
|
30
|
+
* or handle it silently (fire-and-forget).
|
|
31
|
+
*
|
|
32
|
+
* The response body is read for logging only in the development environment,
|
|
33
|
+
* to avoid unnecessarily consuming the body stream in production.
|
|
34
|
+
*/
|
|
35
|
+
send(email: OutboundEmail): Promise<void>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EmailProvider } from '../email.provider';
|
|
2
|
+
import type { OutboundEmail } from '../email.types';
|
|
3
|
+
export interface SmtpProviderConfig {
|
|
4
|
+
/** Base URL of the Mailpit HTTP API, e.g. http://localhost:8025 */
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class SmtpEmailProvider implements EmailProvider {
|
|
8
|
+
private readonly endpoint;
|
|
9
|
+
constructor(config: SmtpProviderConfig);
|
|
10
|
+
send(email: OutboundEmail): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AutomationMailParams } from '../email.types';
|
|
2
|
+
/** Identity builder: automation payloads are already user-authored. */
|
|
3
|
+
export declare function buildAutomationEmail(params: AutomationMailParams): {
|
|
4
|
+
to: string;
|
|
5
|
+
subject: string;
|
|
6
|
+
html: string;
|
|
7
|
+
text: string;
|
|
8
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { EmailLocale } from '../email.types';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the "password changed" notification email.
|
|
4
|
+
*
|
|
5
|
+
* This email does not have a CTA button — it is a pure security notification.
|
|
6
|
+
* The `warning` block (red text) warns the user to take action if they
|
|
7
|
+
* were not the one who changed the password.
|
|
8
|
+
*
|
|
9
|
+
* @param locale - Language for the email subject and body.
|
|
10
|
+
* @returns Object with `subject` (string) and `html` (complete HTML document).
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildPasswordChangedEmail(locale: EmailLocale): {
|
|
13
|
+
subject: string;
|
|
14
|
+
html: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { EmailLocale } from '../email.types';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the email with the password reset link.
|
|
4
|
+
*
|
|
5
|
+
* Composes the localized content with the base layout (`buildEmailShell`)
|
|
6
|
+
* injecting the CTA button pointing to the reset URL.
|
|
7
|
+
*
|
|
8
|
+
* @param resetUrl - Complete URL with the token in plain text, e.g.
|
|
9
|
+
* `https://dashboard.beechcms.dev/reset-password?token=<uuid>`.
|
|
10
|
+
* It is directly embedded in the CTA button — do not sanitize
|
|
11
|
+
* further: the token is an internally generated UUID.
|
|
12
|
+
* @param locale - Language for the email subject and body.
|
|
13
|
+
* @returns Object with `subject` (string) and `html` (complete HTML document).
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildPasswordResetEmail(resetUrl: string, locale: EmailLocale): {
|
|
16
|
+
subject: string;
|
|
17
|
+
html: string;
|
|
18
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { EmailLocale } from '../email.types';
|
|
2
|
+
/**
|
|
3
|
+
* Content slots that every template must provide to compose a complete email.
|
|
4
|
+
* Each slot corresponds to a visual block in the email card layout.
|
|
5
|
+
*/
|
|
6
|
+
export interface EmailShellSlots {
|
|
7
|
+
/**
|
|
8
|
+
* H2 heading shown at the top of the card. Keep it under ~50 characters
|
|
9
|
+
* to ensure good readability on mobile clients.
|
|
10
|
+
*/
|
|
11
|
+
title: string;
|
|
12
|
+
/**
|
|
13
|
+
* Main body text. Rendered as a paragraph.
|
|
14
|
+
* Safe inline HTML is allowed (e.g., `<strong>`, `<a href="...">`),
|
|
15
|
+
* but avoid block elements (`<p>`, `<div>`) that could break
|
|
16
|
+
* the layout structure in rigid email clients (Outlook, Gmail).
|
|
17
|
+
*/
|
|
18
|
+
body: string;
|
|
19
|
+
/**
|
|
20
|
+
* Optional call-to-action button, rendered as a dark link-button.
|
|
21
|
+
* Omit for notification-only emails that do not require user action.
|
|
22
|
+
*/
|
|
23
|
+
cta?: {
|
|
24
|
+
label: string;
|
|
25
|
+
href: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Optional warning paragraph. Rendered in red (#ef4444) to attract
|
|
29
|
+
* attention. Use it for security alerts
|
|
30
|
+
* ("if it wasn't you, act immediately").
|
|
31
|
+
*/
|
|
32
|
+
warning?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Small gray text at the bottom of the card.
|
|
35
|
+
* Used for notes like "automated notification, do not reply".
|
|
36
|
+
*/
|
|
37
|
+
footer: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Builds the base HTML layout shared by all Beech CMS transactional emails.
|
|
41
|
+
*
|
|
42
|
+
* ─── SINGLE SOURCE OF TRUTH FOR BRANDING ─────────────────────────────────────
|
|
43
|
+
* Modifying this function changes the visual appearance of ALL outgoing emails
|
|
44
|
+
* simultaneously:
|
|
45
|
+
* - background and card color
|
|
46
|
+
* - border style and border-radius
|
|
47
|
+
* - typographic scale and spacing
|
|
48
|
+
* - CTA button style
|
|
49
|
+
*
|
|
50
|
+
* To change the text or structure of a specific email, instead modify
|
|
51
|
+
* the corresponding template file (`templates/password-reset.ts`, etc.).
|
|
52
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
53
|
+
*
|
|
54
|
+
* @param locale - Used for the `lang` attribute of the `<html>` tag.
|
|
55
|
+
* @param slots - Content blocks injected into the layout.
|
|
56
|
+
* @returns A complete and self-contained HTML document ready to be sent.
|
|
57
|
+
*/
|
|
58
|
+
export declare function buildEmailShell(locale: EmailLocale, slots: EmailShellSlots): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { notificationsApp } from './notifications.handler';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import type { Env, Variables } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Notifications Feature Handler.
|
|
5
|
+
*
|
|
6
|
+
* Manages retrieval, mark read/unread, and deletion of system notifications.
|
|
7
|
+
* All persistence goes through the {@link INotificationRepository} injected
|
|
8
|
+
* by `repositoryMiddleware`. The handler owns the HTTP concerns only:
|
|
9
|
+
* ETag negotiation, status codes, error mapping.
|
|
10
|
+
*/
|
|
11
|
+
declare const notificationsApp: Hono<{
|
|
12
|
+
Bindings: Env;
|
|
13
|
+
Variables: Variables;
|
|
14
|
+
}, import("hono/types").BlankSchema, "/">;
|
|
15
|
+
export { notificationsApp };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
import type { Env, Variables } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Handles the password reset request.
|
|
5
|
+
* Generates a reset token, stores its hash in the database, and sends an email to the user.
|
|
6
|
+
*/
|
|
7
|
+
export declare function requestPasswordReset(context: Context<{
|
|
8
|
+
Bindings: Env;
|
|
9
|
+
Variables: Variables;
|
|
10
|
+
}>): Promise<Response>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
import type { Env, Variables } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Handles the actual password reset process using a valid token.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resetPassword(context: Context<{
|
|
7
|
+
Bindings: Env;
|
|
8
|
+
Variables: Variables;
|
|
9
|
+
}>): Promise<Response>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { rotateFieldApp } from './rotate-field.handler';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Schema for rotating a hashed field value.
|
|
4
|
+
* Used to update fields that have 'hash' privacy (e.g., passwords, PINs).
|
|
5
|
+
*/
|
|
6
|
+
export declare const rotateFieldRequestSchema: z.ZodObject<{
|
|
7
|
+
fieldAlias: z.ZodString;
|
|
8
|
+
currentValue: z.ZodString;
|
|
9
|
+
nextValue: z.ZodString;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
export type RotateFieldRequest = z.infer<typeof rotateFieldRequestSchema>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { seedsApp } from './seeds.handler';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { statsApp } from './stats.handler';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Env } from './types';
|
|
2
|
+
declare const _default: {
|
|
3
|
+
fetch(request: Request, env: Env, ctx: ExecutionContext): Response | Promise<Response>;
|
|
4
|
+
scheduled(controller: ScheduledController, env: Env, ctx: ExecutionContext): Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|