@beechcms/api 0.6.0-preview.1 → 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/BeechLogo.svg +18 -18
- package/assets/dashboard/BeechLogoLIght.svg +48 -48
- 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/beechLogoDark.svg +48 -48
- package/assets/dashboard/index.html +18 -18
- package/assets/dashboard/noResult.svg +42 -42
- package/assets/dashboard/sol.svg +3 -3
- package/assets/dashboard/undraw_enter_nwx3.svg +36 -36
- 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} +37 -42
- 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} +20 -33
- 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/dist/public/slug-utils.d.ts +11 -0
- 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/migrations/0000_v040_base.sql +265 -265
- package/migrations/0029_automations.sql +14 -14
- package/migrations/0030_test_seeds.sql +125 -125
- package/package.json +27 -18
- package/assets/dashboard/assets/index-BSjk0Sx9.js +0 -634
- package/assets/dashboard/assets/index-kRCYVN2B.css +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 -368
- 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/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 -632
- package/src/features/seeds/seeds.handler.ts +0 -693
- 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 -204
- 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.ts +0 -45
- package/src/middleware/observability.middleware.ts +0 -70
- package/src/middleware/rate-limit.middleware.ts +0 -45
- package/src/middleware/repository.middleware.ts +0 -114
- 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/public/slug-utils.ts +0 -18
- 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 -458
- 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 -221
- package/src/shared/d1-widget.repository.ts +0 -341
- package/src/shared/demo-data-sql.ts +0 -54
- 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 -51
- 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.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 -87
- package/src/upload.ts +0 -198
- package/src/widget.ts +0 -212
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IdempotencyRepository, IdempotencyRecord } from '@beechcms/core';
|
|
2
|
+
import { BaseD1Repository } from './base.repository.d1.js';
|
|
3
|
+
export declare class D1IdempotencyRepository extends BaseD1Repository implements IdempotencyRepository {
|
|
4
|
+
/**
|
|
5
|
+
* Looks up an idempotency record by its key.
|
|
6
|
+
*/
|
|
7
|
+
lookup(idempotencyKey: string): Promise<IdempotencyRecord | null>;
|
|
8
|
+
/**
|
|
9
|
+
* Stores or updates an idempotency record.
|
|
10
|
+
*/
|
|
11
|
+
store(idempotencyData: IdempotencyRecord): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Cleans up expired idempotency records.
|
|
14
|
+
*/
|
|
15
|
+
cleanup(expirationTimestamp: number): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IActivityLogger, ActivityLogEntry } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Test double for {@link IActivityLogger}.
|
|
4
|
+
*
|
|
5
|
+
* Captures every call into a public array so test assertions can verify
|
|
6
|
+
* audit-trail side effects without touching D1. Preserves insertion order.
|
|
7
|
+
*/
|
|
8
|
+
export declare class InMemoryActivityLogger implements IActivityLogger {
|
|
9
|
+
readonly entries: ActivityLogEntry[];
|
|
10
|
+
log(entry: ActivityLogEntry): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { INotificationService, CreateNotificationInput } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Test double for {@link INotificationService}.
|
|
4
|
+
*
|
|
5
|
+
* Captures every call into a public array so tests can assert what would have
|
|
6
|
+
* been delivered without touching D1.
|
|
7
|
+
*/
|
|
8
|
+
export declare class InMemoryNotificationService implements INotificationService {
|
|
9
|
+
readonly receivedNotifications: CreateNotificationInput[];
|
|
10
|
+
notify(input: CreateNotificationInput): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ISeedRepository, Seed, SeedRecord } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* In-memory ISeedRepository for testing and for the config.seeds back-compat shim.
|
|
4
|
+
* Returns a fixed seed list with a static version token.
|
|
5
|
+
*/
|
|
6
|
+
export declare class InMemorySeedRepository implements ISeedRepository {
|
|
7
|
+
private readonly seeds;
|
|
8
|
+
private version;
|
|
9
|
+
constructor(seeds: Seed[]);
|
|
10
|
+
listActive(): Promise<Seed[]>;
|
|
11
|
+
listAll(): Promise<SeedRecord[]>;
|
|
12
|
+
get(slug: string): Promise<SeedRecord | null>;
|
|
13
|
+
upsert(_slug: string, _definition: Seed, _source?: 'code' | 'runtime'): Promise<void>;
|
|
14
|
+
softDelete(_slug: string): Promise<void>;
|
|
15
|
+
hardDelete(_slug: string): Promise<void>;
|
|
16
|
+
getRegistryVersion(): Promise<number>;
|
|
17
|
+
bumpRegistryVersion(): Promise<number>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { MediaRepository, MediaObject } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Implementation of MediaRepository using Cloudflare D1.
|
|
4
|
+
* Provides methods to track media uploads, retrieve media metadata, and manage the media library state in the database.
|
|
5
|
+
*/
|
|
6
|
+
export declare class D1MediaRepository implements MediaRepository {
|
|
7
|
+
private database;
|
|
8
|
+
constructor(database: D1Database);
|
|
9
|
+
/**
|
|
10
|
+
* Registers a new media upload in the database.
|
|
11
|
+
*/
|
|
12
|
+
trackUpload(mediaObject: Omit<MediaObject, 'created_at'>): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Retrieves a media object's metadata by its unique key.
|
|
15
|
+
*/
|
|
16
|
+
getByKey(mediaKey: string): Promise<MediaObject | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Removes the metadata tracking for a specific media key.
|
|
19
|
+
*/
|
|
20
|
+
untrack(mediaKey: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Lists media objects with pagination support.
|
|
23
|
+
*/
|
|
24
|
+
list(paginationOptions: {
|
|
25
|
+
limit: number;
|
|
26
|
+
offset: number;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
items: MediaObject[];
|
|
29
|
+
total: number;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the total number of media objects in the database.
|
|
33
|
+
*/
|
|
34
|
+
count(): Promise<number>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { INotificationService, CreateNotificationInput } from '@beechcms/core';
|
|
2
|
+
type ScheduleBackgroundTask = (task: Promise<unknown>) => void;
|
|
3
|
+
/**
|
|
4
|
+
* QStash implementation of {@link INotificationService}.
|
|
5
|
+
*
|
|
6
|
+
* This service acts as a publisher, sending the notification payload to Upstash QStash,
|
|
7
|
+
* which guarantees delivery and retries. QStash will then forward the payload to the
|
|
8
|
+
* local webhook endpoint where it is actually inserted into D1.
|
|
9
|
+
*/
|
|
10
|
+
export declare class QStashNotificationService implements INotificationService {
|
|
11
|
+
private readonly scheduleBackgroundTask?;
|
|
12
|
+
private readonly client;
|
|
13
|
+
private readonly webhookUrl;
|
|
14
|
+
constructor(token: string, appUrl: string, scheduleBackgroundTask?: ScheduleBackgroundTask | undefined, qstashUrl?: string);
|
|
15
|
+
notify(input: CreateNotificationInput): Promise<void> | void;
|
|
16
|
+
private runPublish;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { FilterGroup, FilterType } from '@beechcms/core';
|
|
2
|
+
/** Entry parsata per le risposte API — contratto immutabile (C7). */
|
|
3
|
+
export interface ContentEntry {
|
|
4
|
+
id: string;
|
|
5
|
+
schema_slug: string;
|
|
6
|
+
slug: string | null;
|
|
7
|
+
status: string;
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
hasPendingDraft: boolean;
|
|
10
|
+
created_at: number | null;
|
|
11
|
+
updated_at: number | null;
|
|
12
|
+
}
|
|
13
|
+
export type QueryFilterType = FilterType;
|
|
14
|
+
export type QueryFilterOperator = 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'is_empty' | 'is_not_empty';
|
|
15
|
+
export interface QueryFilterCondition {
|
|
16
|
+
id?: string;
|
|
17
|
+
op: QueryFilterOperator;
|
|
18
|
+
value: string | number | boolean | null;
|
|
19
|
+
}
|
|
20
|
+
/** Formato inviato dalla dashboard (usa columnId). */
|
|
21
|
+
export interface QueryFilterGroup {
|
|
22
|
+
columnId: string;
|
|
23
|
+
label?: string;
|
|
24
|
+
type: QueryFilterType;
|
|
25
|
+
conditions: QueryFilterCondition[];
|
|
26
|
+
}
|
|
27
|
+
export declare function cleanStr(val: unknown): string | null;
|
|
28
|
+
export declare function safeParseJson(data: unknown): Record<string, unknown>;
|
|
29
|
+
export declare function parsePositiveInt(value: string | undefined, fallback: number): number;
|
|
30
|
+
/** Parse sicuro dei filtri da query-string (formato dashboard con columnId). */
|
|
31
|
+
export declare function parseQueryFilters(raw: string | undefined): QueryFilterGroup[];
|
|
32
|
+
/**
|
|
33
|
+
* Converte QueryFilterGroup[] (formato dashboard, columnId) in FilterGroup[]
|
|
34
|
+
* compatibile con buildSelectQuery del Botanical Engine.
|
|
35
|
+
*/
|
|
36
|
+
export declare function toEngineFilters(groups: QueryFilterGroup[]): FilterGroup[];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HonoRequest } from "hono";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the real client IP address from a Cloudflare Worker request.
|
|
4
|
+
*
|
|
5
|
+
* Cloudflare injects the cf-connecting-ip header on every request that
|
|
6
|
+
* passes through the edge. In local development (wrangler dev) or in
|
|
7
|
+
* unit tests the header may be absent, in which case the string "unknown"
|
|
8
|
+
* is returned so that rate-limiter keys remain non-empty and safe to use.
|
|
9
|
+
*
|
|
10
|
+
* Never derive security decisions from this value alone; treat it as a
|
|
11
|
+
* best-effort hint for rate-limiting and logging purposes only.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getClientIp(request: HonoRequest): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ISchemaMutator } from '@beechcms/core';
|
|
2
|
+
export declare class D1SchemaMutator implements ISchemaMutator {
|
|
3
|
+
private readonly db;
|
|
4
|
+
constructor(db: D1Database);
|
|
5
|
+
getColumns(table: string): Promise<Set<string> | null>;
|
|
6
|
+
execDdl(statements: string[]): Promise<void>;
|
|
7
|
+
private static assertIdentifier;
|
|
8
|
+
dropTable(table: string): Promise<void>;
|
|
9
|
+
dropColumn(table: string, column: string): Promise<void>;
|
|
10
|
+
renameColumn(table: string, from: string, to: string): Promise<void>;
|
|
11
|
+
execDestructive(statements: string[]): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ISeedLayoutRepository, SeedLayoutRecord, FormLayout } from '@beechcms/core';
|
|
2
|
+
export declare class D1SeedLayoutRepository implements ISeedLayoutRepository {
|
|
3
|
+
private readonly db;
|
|
4
|
+
constructor(db: D1Database);
|
|
5
|
+
get(slug: string): Promise<SeedLayoutRecord | null>;
|
|
6
|
+
getAllAsMap(): Promise<Map<string, FormLayout>>;
|
|
7
|
+
upsert(slug: string, layout: FormLayout, updatedBy: string): Promise<void>;
|
|
8
|
+
remove(slug: string): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ISeedRegistry, BackrefMap, ISeedRepository } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a fresh-enough { registry, backrefMap }. Reads the version token once per
|
|
4
|
+
* request (cheap indexed D1 read); rebuilds from listActive() only when the token
|
|
5
|
+
* changed or TTL lapsed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getHydratedRegistry(repo: ISeedRepository): Promise<{
|
|
8
|
+
registry: ISeedRegistry;
|
|
9
|
+
backrefMap: BackrefMap;
|
|
10
|
+
}>;
|
|
11
|
+
/** Test seam: drop the isolate cache. */
|
|
12
|
+
export declare function __resetSeedRegistryCache(): void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ISeedRepository, SeedRecord, Seed } from '@beechcms/core';
|
|
2
|
+
export declare class D1SeedRepository implements ISeedRepository {
|
|
3
|
+
private readonly db;
|
|
4
|
+
constructor(db: D1Database);
|
|
5
|
+
listActive(): Promise<Seed[]>;
|
|
6
|
+
listAll(): Promise<SeedRecord[]>;
|
|
7
|
+
get(slug: string): Promise<SeedRecord | null>;
|
|
8
|
+
upsert(slug: string, definition: Seed, source?: 'code' | 'runtime'): Promise<void>;
|
|
9
|
+
softDelete(slug: string): Promise<void>;
|
|
10
|
+
hardDelete(slug: string): Promise<void>;
|
|
11
|
+
getRegistryVersion(): Promise<number>;
|
|
12
|
+
bumpRegistryVersion(): Promise<number>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IIdGenerator } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Test-only IIdGenerator implementation. Each call returns a stable,
|
|
4
|
+
* monotonically increasing identifier (`test-id-0001`, `test-id-0002`, …)
|
|
5
|
+
* so snapshot assertions and insert-order checks remain deterministic
|
|
6
|
+
* across runs.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SequentialIdGenerator implements IIdGenerator {
|
|
9
|
+
private counter;
|
|
10
|
+
uuid(): string;
|
|
11
|
+
isValid(value: unknown): value is string;
|
|
12
|
+
reset(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ISiteSettingsRepository, SiteSettings } from '@beechcms/core';
|
|
2
|
+
export declare class D1SiteSettingsRepository implements ISiteSettingsRepository {
|
|
3
|
+
private readonly db;
|
|
4
|
+
constructor(db: D1Database);
|
|
5
|
+
getAll(): Promise<SiteSettings>;
|
|
6
|
+
setMany(values: Partial<SiteSettings>): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BeechBucket } from '@beechcms/core';
|
|
2
|
+
import { Env } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Single storage path: S3-compatible HTTP API.
|
|
5
|
+
* Prod → Cloudflare R2 with S3 API token.
|
|
6
|
+
* Dev → MinIO container (or R2 staging bucket).
|
|
7
|
+
*/
|
|
8
|
+
export declare function createBucketProvider(env: Env, baseUrl: string): BeechBucket;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BeechBucket, PutBucketOptions, GetBucketResult, PresignOptions } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Implementation of BeechBucket using S3-compatible API (AWS SDK).
|
|
4
|
+
* Used for production when connecting to R2 or any other S3 provider via HTTP.
|
|
5
|
+
*/
|
|
6
|
+
export declare class S3Bucket implements BeechBucket {
|
|
7
|
+
private client;
|
|
8
|
+
private bucketName;
|
|
9
|
+
private baseUrl;
|
|
10
|
+
private cdnUrl;
|
|
11
|
+
constructor(config: {
|
|
12
|
+
endpoint: string;
|
|
13
|
+
accessKeyId: string;
|
|
14
|
+
secretAccessKey: string;
|
|
15
|
+
bucketName: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
cdnUrl?: string;
|
|
18
|
+
});
|
|
19
|
+
put(key: string, body: ArrayBuffer | Uint8Array | ReadableStream, options?: PutBucketOptions): Promise<void>;
|
|
20
|
+
private streamToUint8Array;
|
|
21
|
+
get(key: string): Promise<GetBucketResult | null>;
|
|
22
|
+
delete(key: string): Promise<void>;
|
|
23
|
+
head(key: string): Promise<{
|
|
24
|
+
size: number;
|
|
25
|
+
contentType?: string;
|
|
26
|
+
metadata?: Record<string, string>;
|
|
27
|
+
} | null>;
|
|
28
|
+
getUrl(key: string): string;
|
|
29
|
+
getTotalSize(): Promise<number>;
|
|
30
|
+
presignPut(key: string, options: PresignOptions): Promise<string>;
|
|
31
|
+
presignGet(key: string, options: PresignOptions): Promise<string>;
|
|
32
|
+
list(options?: {
|
|
33
|
+
prefix?: string;
|
|
34
|
+
limit?: number;
|
|
35
|
+
cursor?: string;
|
|
36
|
+
}): Promise<{
|
|
37
|
+
objects: Array<{
|
|
38
|
+
key: string;
|
|
39
|
+
size: number;
|
|
40
|
+
}>;
|
|
41
|
+
cursor?: string;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
2
|
+
/**
|
|
3
|
+
* Calcola la dimensione totale occupata in un bucket R2 (in byte).
|
|
4
|
+
* Nota: esegue una scansione completa del bucket. Per bucket molto grandi
|
|
5
|
+
* andrebbe implementata una cache o usato Cloudflare Logpush/Analytics.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getBucketSize(client: S3Client, bucketName: string): Promise<number>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SystemStatsRepository } from '@beechcms/core';
|
|
2
|
+
/**
|
|
3
|
+
* Implementation of SystemStatsRepository using Cloudflare D1.
|
|
4
|
+
* Manages global system statistics such as total storage usage.
|
|
5
|
+
*/
|
|
6
|
+
export declare class D1SystemStatsRepository implements SystemStatsRepository {
|
|
7
|
+
private database;
|
|
8
|
+
constructor(database: D1Database);
|
|
9
|
+
/**
|
|
10
|
+
* Increments the total storage usage count.
|
|
11
|
+
*/
|
|
12
|
+
incrementStorage(byteCount: number): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Decrements the total storage usage count, ensuring it doesn't fall below zero.
|
|
15
|
+
*/
|
|
16
|
+
decrementStorage(byteCount: number): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Sets the total storage usage count to a specific value.
|
|
19
|
+
*/
|
|
20
|
+
setStorage(byteCount: number): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves the current total storage usage in bytes.
|
|
23
|
+
*/
|
|
24
|
+
getStorageUsage(): Promise<number>;
|
|
25
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Seed, ContentRepository, IdempotencyRepository, BeechBucket, MediaRepository, SystemStatsRepository, IHashProvider, ITokenService, IUserRepository, ISessionRepository, IPasswordResetTokenRepository, IActivityLogger, IActivityLogRepository, INotificationRepository, INotificationService, IWidgetRepository, ISearchRepository, IAnalyticsRepository, IContentScanRepository, ISeedRegistry, IClock, IIdGenerator, IAutomationRunner, IAutomationRepository, IScheduler, BackrefMap, ISiteSettingsRepository, IDemoDataRepository, JwtClaims, ISeedLayoutRepository, ISeedRepository, ISchemaMutator, IDashboardLayoutRepository } from '@beechcms/core';
|
|
2
|
+
import type { IRateLimiterRegistry } from './middleware/rate-limit.middleware';
|
|
3
|
+
import type { ISetupChecklistRepository } from './shared/d1-setup-checklist.repository';
|
|
4
|
+
export interface Env {
|
|
5
|
+
DB: D1Database;
|
|
6
|
+
JWT_SECRET: string;
|
|
7
|
+
JWT_ISSUER?: string;
|
|
8
|
+
JWT_AUDIENCE?: string;
|
|
9
|
+
R2_ACCESS_KEY_ID?: string;
|
|
10
|
+
R2_SECRET_ACCESS_KEY?: string;
|
|
11
|
+
R2_ENDPOINT?: string;
|
|
12
|
+
R2_BUCKET_NAME?: string;
|
|
13
|
+
LOGIN_RATE_LIMITER?: RateLimit;
|
|
14
|
+
REFRESH_RATE_LIMITER?: RateLimit;
|
|
15
|
+
PUBLIC_READ_RATE_LIMITER?: RateLimit;
|
|
16
|
+
PUBLIC_WRITE_RATE_LIMITER?: RateLimit;
|
|
17
|
+
CORS_ORIGINS?: string;
|
|
18
|
+
PUBLIC_READ_API_KEY?: string;
|
|
19
|
+
PUBLIC_WRITE_API_KEY?: string;
|
|
20
|
+
PUBLIC_PUBLISHED_ONLY?: string;
|
|
21
|
+
PUBLIC_IDEMPOTENCY_TTL_SECONDS?: string;
|
|
22
|
+
MEDIA_BASE_URL?: string;
|
|
23
|
+
MEDIA_CDN_URL?: string;
|
|
24
|
+
MAX_UPLOAD_BYTES?: string;
|
|
25
|
+
RESEND_API_KEY?: string;
|
|
26
|
+
EMAIL_API_KEY?: string;
|
|
27
|
+
APP_URL?: string;
|
|
28
|
+
EMAIL_FROM?: string;
|
|
29
|
+
EMAIL_PROVIDER?: string;
|
|
30
|
+
SMTP_HOST?: string;
|
|
31
|
+
SMTP_PORT?: string;
|
|
32
|
+
WEBHOOK_TESTER_URL?: string;
|
|
33
|
+
FORGOT_PASSWORD_RATE_LIMITER?: RateLimit;
|
|
34
|
+
RESET_PASSWORD_RATE_LIMITER?: RateLimit;
|
|
35
|
+
ENV?: string;
|
|
36
|
+
DATE_FORMAT?: string;
|
|
37
|
+
ASSETS?: Fetcher;
|
|
38
|
+
QSTASH_TOKEN?: string;
|
|
39
|
+
QSTASH_URL?: string;
|
|
40
|
+
/** Public base URL the worker is reachable at, used by QStash to call back the webhook (e.g. an ngrok tunnel in dev). Falls back to APP_URL. */
|
|
41
|
+
QSTASH_CALLBACK_URL?: string;
|
|
42
|
+
QSTASH_CURRENT_SIGNING_KEY?: string;
|
|
43
|
+
QSTASH_NEXT_SIGNING_KEY?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface Variables {
|
|
46
|
+
jwtPayload: JwtClaims;
|
|
47
|
+
getSeed: (slug: string) => Seed | null;
|
|
48
|
+
seedRegistry: ISeedRegistry;
|
|
49
|
+
repository: ContentRepository;
|
|
50
|
+
idempotencyRepository: IdempotencyRepository;
|
|
51
|
+
bucket: BeechBucket;
|
|
52
|
+
mediaRepository: MediaRepository;
|
|
53
|
+
systemStatsRepository: SystemStatsRepository;
|
|
54
|
+
hashProvider: IHashProvider;
|
|
55
|
+
tokenService: ITokenService;
|
|
56
|
+
userRepository: IUserRepository;
|
|
57
|
+
sessionRepository: ISessionRepository;
|
|
58
|
+
passwordResetTokenRepository: IPasswordResetTokenRepository;
|
|
59
|
+
rateLimiters: IRateLimiterRegistry;
|
|
60
|
+
activityLogger: IActivityLogger;
|
|
61
|
+
activityLogRepository: IActivityLogRepository;
|
|
62
|
+
notificationRepository: INotificationRepository;
|
|
63
|
+
notificationService: INotificationService;
|
|
64
|
+
widgetRepository: IWidgetRepository;
|
|
65
|
+
searchRepository: ISearchRepository;
|
|
66
|
+
analyticsRepository: IAnalyticsRepository;
|
|
67
|
+
contentScanRepository: IContentScanRepository;
|
|
68
|
+
clock: IClock;
|
|
69
|
+
idGenerator: IIdGenerator;
|
|
70
|
+
automationRepository: IAutomationRepository;
|
|
71
|
+
automationRunner: IAutomationRunner;
|
|
72
|
+
scheduler: IScheduler;
|
|
73
|
+
backrefMap: BackrefMap;
|
|
74
|
+
siteSettingsRepository: ISiteSettingsRepository;
|
|
75
|
+
demoDataRepository: IDemoDataRepository;
|
|
76
|
+
setupChecklistRepository: ISetupChecklistRepository;
|
|
77
|
+
seedLayoutRepository: ISeedLayoutRepository;
|
|
78
|
+
seedRepository: ISeedRepository;
|
|
79
|
+
schemaMutator: ISchemaMutator;
|
|
80
|
+
dashboardLayoutRepository: IDashboardLayoutRepository;
|
|
81
|
+
}
|
|
82
|
+
export type AppEnv = {
|
|
83
|
+
Bindings: Env;
|
|
84
|
+
Variables: Variables;
|
|
85
|
+
};
|
package/dist/upload.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media Engine — Single-path presigned uploads.
|
|
3
|
+
* Il Worker non riceve mai i bytes: agisce solo da gatekeeper (auth, validazione, firma).
|
|
4
|
+
*/
|
|
5
|
+
import { Hono } from 'hono';
|
|
6
|
+
import { AppEnv } from './types';
|
|
7
|
+
export declare function deleteR2Objects(c: {
|
|
8
|
+
var: {
|
|
9
|
+
bucket: any;
|
|
10
|
+
mediaRepository: any;
|
|
11
|
+
systemStatsRepository: any;
|
|
12
|
+
};
|
|
13
|
+
}, objectKeys: string[]): Promise<void>;
|
|
14
|
+
export declare const uploadRoutes: Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
15
|
+
/** Serve un file dallo storage (usato dalla rotta pubblica /api/media/:key). */
|
|
16
|
+
export declare function serveMediaHandler(c: any): Promise<Response>;
|