@bgord/bun 1.6.7 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-version.middleware.d.ts +2 -2
- package/dist/binary.vo.js +2 -2
- package/dist/binary.vo.js.map +1 -1
- package/dist/build-info-repository.service.d.ts +2 -2
- package/dist/build-info-repository.service.js +1 -1
- package/dist/build-info-repository.service.js.map +1 -1
- package/dist/cache-repository-lru-cache.adapter.d.ts +11 -0
- package/dist/cache-repository-lru-cache.adapter.d.ts.map +1 -0
- package/dist/cache-repository-lru-cache.adapter.js +24 -0
- package/dist/cache-repository-lru-cache.adapter.js.map +1 -0
- package/dist/cache-repository-node-cache.adapter.d.ts +2 -7
- package/dist/cache-repository-node-cache.adapter.d.ts.map +1 -1
- package/dist/cache-repository-node-cache.adapter.js +1 -7
- package/dist/cache-repository-node-cache.adapter.js.map +1 -1
- package/dist/cache-repository-noop.adapter.d.ts +2 -7
- package/dist/cache-repository-noop.adapter.d.ts.map +1 -1
- package/dist/cache-repository-noop.adapter.js +1 -7
- package/dist/cache-repository-noop.adapter.js.map +1 -1
- package/dist/cache-repository.port.d.ts +6 -1
- package/dist/cache-repository.port.d.ts.map +1 -1
- package/dist/cache-resolver-simple.strategy.d.ts +18 -0
- package/dist/cache-resolver-simple.strategy.d.ts.map +1 -0
- package/dist/cache-resolver-simple.strategy.js +23 -0
- package/dist/cache-resolver-simple.strategy.js.map +1 -0
- package/dist/cache-resolver.strategy.d.ts +14 -0
- package/dist/cache-resolver.strategy.d.ts.map +1 -0
- package/dist/cache-resolver.strategy.js +6 -0
- package/dist/cache-resolver.strategy.js.map +1 -0
- package/dist/cache-response.middleware.d.ts +2 -2
- package/dist/cache-response.middleware.d.ts.map +1 -1
- package/dist/cache-subject-resolver.vo.d.ts +4 -4
- package/dist/cache-subject-resolver.vo.d.ts.map +1 -1
- package/dist/cache-subject-resolver.vo.js.map +1 -1
- package/dist/cache-subject-segment-cookie.strategy.d.ts +8 -0
- package/dist/cache-subject-segment-cookie.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-cookie.strategy.js +13 -0
- package/dist/cache-subject-segment-cookie.strategy.js.map +1 -0
- package/dist/cache-subject-segment-fixed.strategy.d.ts +7 -0
- package/dist/cache-subject-segment-fixed.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-fixed.strategy.js +10 -0
- package/dist/cache-subject-segment-fixed.strategy.js.map +1 -0
- package/dist/cache-subject-segment-header.strategy.d.ts +8 -0
- package/dist/cache-subject-segment-header.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-header.strategy.js +10 -0
- package/dist/cache-subject-segment-header.strategy.js.map +1 -0
- package/dist/cache-subject-segment-ip.strategy.d.ts +6 -0
- package/dist/cache-subject-segment-ip.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-ip.strategy.js +9 -0
- package/dist/cache-subject-segment-ip.strategy.js.map +1 -0
- package/dist/cache-subject-segment-path.strategy.d.ts +6 -0
- package/dist/cache-subject-segment-path.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-path.strategy.js +6 -0
- package/dist/cache-subject-segment-path.strategy.js.map +1 -0
- package/dist/cache-subject-segment-query.strategy.d.ts +6 -0
- package/dist/cache-subject-segment-query.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-query.strategy.js +10 -0
- package/dist/cache-subject-segment-query.strategy.js.map +1 -0
- package/dist/cache-subject-segment-user.strategy.d.ts +6 -0
- package/dist/cache-subject-segment-user.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment-user.strategy.js +6 -0
- package/dist/cache-subject-segment-user.strategy.js.map +1 -0
- package/dist/cache-subject-segment.strategy.d.ts +6 -0
- package/dist/cache-subject-segment.strategy.d.ts.map +1 -0
- package/dist/cache-subject-segment.strategy.js +2 -0
- package/dist/cache-subject-segment.strategy.js.map +1 -0
- package/dist/certificate-inspector-tls.adapter.d.ts.map +1 -1
- package/dist/certificate-inspector-tls.adapter.js +2 -3
- package/dist/certificate-inspector-tls.adapter.js.map +1 -1
- package/dist/client-from-hono.adapter.d.ts +6 -0
- package/dist/client-from-hono.adapter.d.ts.map +1 -0
- package/dist/client-from-hono.adapter.js +11 -0
- package/dist/client-from-hono.adapter.js.map +1 -0
- package/dist/client-ip.vo.d.ts +8 -0
- package/dist/client-ip.vo.d.ts.map +1 -0
- package/dist/client-ip.vo.js +7 -0
- package/dist/client-ip.vo.js.map +1 -0
- package/dist/client-user-agent.vo.d.ts +9 -0
- package/dist/client-user-agent.vo.d.ts.map +1 -0
- package/dist/client-user-agent.vo.js +12 -0
- package/dist/client-user-agent.vo.js.map +1 -0
- package/dist/client.vo.d.ts +8 -8
- package/dist/client.vo.d.ts.map +1 -1
- package/dist/client.vo.js +13 -8
- package/dist/client.vo.js.map +1 -1
- package/dist/clock-fixed.adapter.d.ts +0 -1
- package/dist/clock-fixed.adapter.d.ts.map +1 -1
- package/dist/clock-fixed.adapter.js +0 -3
- package/dist/clock-fixed.adapter.js.map +1 -1
- package/dist/clock-offset.adapter.d.ts +13 -0
- package/dist/clock-offset.adapter.d.ts.map +1 -0
- package/dist/clock-offset.adapter.js +12 -0
- package/dist/clock-offset.adapter.js.map +1 -0
- package/dist/clock-system.adapter.d.ts +0 -1
- package/dist/clock-system.adapter.d.ts.map +1 -1
- package/dist/clock-system.adapter.js +0 -3
- package/dist/clock-system.adapter.js.map +1 -1
- package/dist/clock.port.d.ts +0 -1
- package/dist/clock.port.d.ts.map +1 -1
- package/dist/command-envelope.js +1 -1
- package/dist/command-envelope.js.map +1 -1
- package/dist/crypto-aes-gcm.service.d.ts +10 -0
- package/dist/crypto-aes-gcm.service.d.ts.map +1 -0
- package/dist/crypto-aes-gcm.service.js +22 -0
- package/dist/crypto-aes-gcm.service.js.map +1 -0
- package/dist/crypto-key-provider-with-cache.adapter.d.ts +18 -0
- package/dist/crypto-key-provider-with-cache.adapter.d.ts.map +1 -0
- package/dist/crypto-key-provider-with-cache.adapter.js +19 -0
- package/dist/crypto-key-provider-with-cache.adapter.js.map +1 -0
- package/dist/decorators.service.d.ts.map +1 -1
- package/dist/decorators.service.js +1 -1
- package/dist/decorators.service.js.map +1 -1
- package/dist/encryption-aes-gcm.adapter.d.ts +18 -0
- package/dist/encryption-aes-gcm.adapter.d.ts.map +1 -0
- package/dist/encryption-aes-gcm.adapter.js +42 -0
- package/dist/encryption-aes-gcm.adapter.js.map +1 -0
- package/dist/environment-loader-noop.adapter.d.ts +13 -0
- package/dist/environment-loader-noop.adapter.d.ts.map +1 -0
- package/dist/environment-loader-noop.adapter.js +12 -0
- package/dist/environment-loader-noop.adapter.js.map +1 -0
- package/dist/environment-loader-process-safe.adapter.d.ts +4 -4
- package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process-safe.adapter.js +2 -2
- package/dist/environment-loader-process-safe.adapter.js.map +1 -1
- package/dist/event-envelope.js +1 -1
- package/dist/event-envelope.js.map +1 -1
- package/dist/event-handler-bare.strategy.d.ts +9 -0
- package/dist/event-handler-bare.strategy.d.ts.map +1 -0
- package/dist/event-handler-bare.strategy.js +6 -0
- package/dist/event-handler-bare.strategy.js.map +1 -0
- package/dist/event-handler-noop.strategy.d.ts +9 -0
- package/dist/event-handler-noop.strategy.d.ts.map +1 -0
- package/dist/event-handler-noop.strategy.js +6 -0
- package/dist/event-handler-noop.strategy.js.map +1 -0
- package/dist/event-handler-with-logger.strategy.d.ts +18 -0
- package/dist/event-handler-with-logger.strategy.d.ts.map +1 -0
- package/dist/event-handler-with-logger.strategy.js +26 -0
- package/dist/event-handler-with-logger.strategy.js.map +1 -0
- package/dist/event-handler.strategy.d.ts +8 -0
- package/dist/event-handler.strategy.d.ts.map +1 -0
- package/dist/event-handler.strategy.js +2 -0
- package/dist/event-handler.strategy.js.map +1 -0
- package/dist/event-store-like.types.d.ts +0 -2
- package/dist/event-store-like.types.d.ts.map +1 -1
- package/dist/event-store.d.ts +0 -2
- package/dist/event-store.d.ts.map +1 -1
- package/dist/event-store.js +0 -4
- package/dist/event-store.js.map +1 -1
- package/dist/file-reader-json-bun-forgiving.adapter.d.ts +6 -0
- package/dist/file-reader-json-bun-forgiving.adapter.d.ts.map +1 -0
- package/dist/file-reader-json-bun-forgiving.adapter.js +11 -0
- package/dist/file-reader-json-bun-forgiving.adapter.js.map +1 -0
- package/dist/file-reader-json-bun.adapter.d.ts +6 -0
- package/dist/file-reader-json-bun.adapter.d.ts.map +1 -0
- package/dist/file-reader-json-bun.adapter.js +6 -0
- package/dist/file-reader-json-bun.adapter.js.map +1 -0
- package/dist/file-reader-json-noop.adapter.d.ts +8 -0
- package/dist/file-reader-json-noop.adapter.d.ts.map +1 -0
- package/dist/file-reader-json-noop.adapter.js +10 -0
- package/dist/file-reader-json-noop.adapter.js.map +1 -0
- package/dist/file-reader-json-with-cache.adapter.d.ts +19 -0
- package/dist/file-reader-json-with-cache.adapter.d.ts.map +1 -0
- package/dist/file-reader-json-with-cache.adapter.js +20 -0
- package/dist/file-reader-json-with-cache.adapter.js.map +1 -0
- package/dist/file-reader-json.port.d.ts +6 -0
- package/dist/file-reader-json.port.d.ts.map +1 -0
- package/dist/file-reader-json.port.js +2 -0
- package/dist/file-reader-json.port.js.map +1 -0
- package/dist/hash-content-noop.strategy.d.ts +6 -0
- package/dist/hash-content-noop.strategy.d.ts.map +1 -0
- package/dist/hash-content-noop.strategy.js +7 -0
- package/dist/hash-content-noop.strategy.js.map +1 -0
- package/dist/hash-content-sha256-bun.strategy.d.ts +6 -0
- package/dist/hash-content-sha256-bun.strategy.d.ts.map +1 -0
- package/dist/hash-content-sha256-bun.strategy.js +9 -0
- package/dist/hash-content-sha256-bun.strategy.js.map +1 -0
- package/dist/hash-content.strategy.d.ts +5 -0
- package/dist/hash-content.strategy.d.ts.map +1 -0
- package/dist/hash-content.strategy.js +2 -0
- package/dist/hash-content.strategy.js.map +1 -0
- package/dist/hash-file-sha256-bun.adapter.d.ts +2 -2
- package/dist/hash-file-sha256-bun.adapter.d.ts.map +1 -1
- package/dist/healthcheck.service.d.ts +32 -21
- package/dist/healthcheck.service.d.ts.map +1 -1
- package/dist/healthcheck.service.js +38 -19
- package/dist/healthcheck.service.js.map +1 -1
- package/dist/http-logger.middleware.d.ts.map +1 -1
- package/dist/http-logger.middleware.js +5 -5
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/i18n.service.d.ts +2 -2
- package/dist/index.d.ts +123 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +124 -49
- package/dist/index.js.map +1 -1
- package/dist/job-handler-bare.strategy.d.ts +12 -0
- package/dist/job-handler-bare.strategy.d.ts.map +1 -0
- package/dist/job-handler-bare.strategy.js +12 -0
- package/dist/job-handler-bare.strategy.js.map +1 -0
- package/dist/job-handler-noop.strategy.d.ts +6 -0
- package/dist/job-handler-noop.strategy.d.ts.map +1 -0
- package/dist/job-handler-noop.strategy.js +7 -0
- package/dist/job-handler-noop.strategy.js.map +1 -0
- package/dist/job-handler-with-logger.strategy.d.ts +17 -0
- package/dist/job-handler-with-logger.strategy.d.ts.map +1 -0
- package/dist/job-handler-with-logger.strategy.js +36 -0
- package/dist/job-handler-with-logger.strategy.js.map +1 -0
- package/dist/job-handler.strategy.d.ts +9 -0
- package/dist/job-handler.strategy.d.ts.map +1 -0
- package/dist/job-handler.strategy.js +2 -0
- package/dist/job-handler.strategy.js.map +1 -0
- package/dist/logger-winston-local.adapter.d.ts +2 -2
- package/dist/logger-winston-local.adapter.d.ts.map +1 -1
- package/dist/logger-winston-local.adapter.js +1 -1
- package/dist/logger-winston-local.adapter.js.map +1 -1
- package/dist/logger-winston-production.adapter.d.ts +2 -2
- package/dist/logger-winston-production.adapter.d.ts.map +1 -1
- package/dist/logger-winston-production.adapter.js.map +1 -1
- package/dist/logger-winston.adapter.d.ts +2 -2
- package/dist/logger-winston.adapter.d.ts.map +1 -1
- package/dist/maintenance-mode.middleware.d.ts +11 -0
- package/dist/maintenance-mode.middleware.d.ts.map +1 -0
- package/dist/maintenance-mode.middleware.js +12 -0
- package/dist/maintenance-mode.middleware.js.map +1 -0
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.d.ts +23 -0
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.d.ts.map +1 -0
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.js +20 -0
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.js.map +1 -0
- package/dist/modules/system/events/index.d.ts +1 -0
- package/dist/modules/system/events/index.d.ts.map +1 -1
- package/dist/modules/system/events/index.js +1 -0
- package/dist/modules/system/events/index.js.map +1 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.d.ts +1 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.d.ts.map +1 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.js +1 -2
- package/dist/modules/system/services/passage-of-time-hourly.service.js.map +1 -1
- package/dist/modules/system/services/passage-of-time-minute.service.d.ts +1 -1
- package/dist/modules/system/services/passage-of-time-minute.service.d.ts.map +1 -1
- package/dist/modules/system/services/passage-of-time-minute.service.js +1 -2
- package/dist/modules/system/services/passage-of-time-minute.service.js.map +1 -1
- package/dist/prerequisite-runner-startup.service.d.ts +19 -0
- package/dist/prerequisite-runner-startup.service.d.ts.map +1 -0
- package/dist/prerequisite-runner-startup.service.js +32 -0
- package/dist/prerequisite-runner-startup.service.js.map +1 -0
- package/dist/prerequisite-verifier-binary.adapter.d.ts +13 -0
- package/dist/prerequisite-verifier-binary.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-binary.adapter.js +22 -0
- package/dist/prerequisite-verifier-binary.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-bun.adapter.d.ts +14 -0
- package/dist/prerequisite-verifier-bun.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-bun.adapter.js +23 -0
- package/dist/prerequisite-verifier-bun.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-clock-drift.adapter.d.ts +21 -0
- package/dist/prerequisite-verifier-clock-drift.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-clock-drift.adapter.js +27 -0
- package/dist/prerequisite-verifier-clock-drift.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-dependency-vulnerabilities.adapter.d.ts +8 -0
- package/dist/prerequisite-verifier-dependency-vulnerabilities.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-dependency-vulnerabilities.adapter.js +26 -0
- package/dist/prerequisite-verifier-dependency-vulnerabilities.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-directory.adapter.d.ts +19 -0
- package/dist/prerequisite-verifier-directory.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-directory.adapter.js +48 -0
- package/dist/prerequisite-verifier-directory.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-dns.adapter.d.ts +12 -0
- package/dist/prerequisite-verifier-dns.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-dns.adapter.js +21 -0
- package/dist/prerequisite-verifier-dns.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-external-api.adapter.d.ts +12 -0
- package/dist/prerequisite-verifier-external-api.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-external-api.adapter.js +22 -0
- package/dist/prerequisite-verifier-external-api.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-file.adapter.d.ts +19 -0
- package/dist/prerequisite-verifier-file.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-file.adapter.js +49 -0
- package/dist/prerequisite-verifier-file.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-jobs.adapter.d.ts +13 -0
- package/dist/prerequisite-verifier-jobs.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-jobs.adapter.js +17 -0
- package/dist/prerequisite-verifier-jobs.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-log-file.adapter.d.ts +15 -0
- package/dist/prerequisite-verifier-log-file.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-log-file.adapter.js +27 -0
- package/dist/prerequisite-verifier-log-file.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-mailer.adapter.d.ts +15 -0
- package/dist/prerequisite-verifier-mailer.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-mailer.adapter.js +20 -0
- package/dist/prerequisite-verifier-mailer.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-memory.adapter.d.ts +13 -0
- package/dist/prerequisite-verifier-memory.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-memory.adapter.js +21 -0
- package/dist/prerequisite-verifier-memory.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-node.adapter.d.ts +14 -0
- package/dist/prerequisite-verifier-node.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-node.adapter.js +23 -0
- package/dist/prerequisite-verifier-node.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-os.adapter.d.ts +12 -0
- package/dist/prerequisite-verifier-os.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-os.adapter.js +21 -0
- package/dist/prerequisite-verifier-os.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-outside-connectivity.adapter.d.ts +10 -0
- package/dist/prerequisite-verifier-outside-connectivity.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-outside-connectivity.adapter.js +21 -0
- package/dist/prerequisite-verifier-outside-connectivity.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-port.adapter.d.ts +11 -0
- package/dist/prerequisite-verifier-port.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-port.adapter.js +19 -0
- package/dist/prerequisite-verifier-port.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-ram.adapter.d.ts +13 -0
- package/dist/prerequisite-verifier-ram.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-ram.adapter.js +20 -0
- package/dist/prerequisite-verifier-ram.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-running-user.adapter.d.ts +12 -0
- package/dist/prerequisite-verifier-running-user.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-running-user.adapter.js +18 -0
- package/dist/prerequisite-verifier-running-user.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-self.adapter.d.ts +8 -0
- package/dist/prerequisite-verifier-self.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-self.adapter.js +10 -0
- package/dist/prerequisite-verifier-self.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-space.adapter.d.ts +19 -0
- package/dist/prerequisite-verifier-space.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-space.adapter.js +28 -0
- package/dist/prerequisite-verifier-space.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-sqlite.adapter.d.ts +13 -0
- package/dist/prerequisite-verifier-sqlite.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-sqlite.adapter.js +23 -0
- package/dist/prerequisite-verifier-sqlite.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.d.ts +19 -0
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.js +22 -0
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-timezone-utc.adapter.d.ts +15 -0
- package/dist/prerequisite-verifier-timezone-utc.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-timezone-utc.adapter.js +19 -0
- package/dist/prerequisite-verifier-timezone-utc.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-translations.adapter.d.ts +23 -0
- package/dist/prerequisite-verifier-translations.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-translations.adapter.js +58 -0
- package/dist/prerequisite-verifier-translations.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-with-cache.adapter.d.ts +19 -0
- package/dist/prerequisite-verifier-with-cache.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-with-cache.adapter.js +23 -0
- package/dist/prerequisite-verifier-with-cache.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-with-fail-safe.adapter.d.ts +15 -0
- package/dist/prerequisite-verifier-with-fail-safe.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-with-fail-safe.adapter.js +20 -0
- package/dist/prerequisite-verifier-with-fail-safe.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-with-logger.adapter.d.ts +19 -0
- package/dist/prerequisite-verifier-with-logger.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-with-logger.adapter.js +43 -0
- package/dist/prerequisite-verifier-with-logger.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-with-retry.adapter.d.ts +18 -0
- package/dist/prerequisite-verifier-with-retry.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-with-retry.adapter.js +27 -0
- package/dist/prerequisite-verifier-with-retry.adapter.js.map +1 -0
- package/dist/prerequisite-verifier-with-timeout.adapter.d.ts +18 -0
- package/dist/prerequisite-verifier-with-timeout.adapter.d.ts.map +1 -0
- package/dist/prerequisite-verifier-with-timeout.adapter.js +21 -0
- package/dist/prerequisite-verifier-with-timeout.adapter.js.map +1 -0
- package/dist/prerequisite-verifier.decorator.d.ts +29 -0
- package/dist/prerequisite-verifier.decorator.d.ts.map +1 -0
- package/dist/prerequisite-verifier.decorator.js +12 -0
- package/dist/prerequisite-verifier.decorator.js.map +1 -0
- package/dist/prerequisite-verifier.port.d.ts +31 -0
- package/dist/prerequisite-verifier.port.d.ts.map +1 -0
- package/dist/prerequisite-verifier.port.js +18 -0
- package/dist/prerequisite-verifier.port.js.map +1 -0
- package/dist/prerequisite.vo.d.ts +18 -0
- package/dist/prerequisite.vo.d.ts.map +1 -0
- package/dist/prerequisite.vo.js +19 -0
- package/dist/prerequisite.vo.js.map +1 -0
- package/dist/redactor-compact-array.strategy.d.ts +5 -0
- package/dist/redactor-compact-array.strategy.d.ts.map +1 -0
- package/dist/redactor-compact-array.strategy.js +7 -0
- package/dist/redactor-compact-array.strategy.js.map +1 -0
- package/dist/redactor-compact-object.strategy.d.ts +12 -0
- package/dist/redactor-compact-object.strategy.d.ts.map +1 -0
- package/dist/redactor-compact-object.strategy.js +17 -0
- package/dist/redactor-compact-object.strategy.js.map +1 -0
- package/dist/redactor-composite.strategy.d.ts +7 -0
- package/dist/redactor-composite.strategy.d.ts.map +1 -0
- package/dist/redactor-composite.strategy.js +10 -0
- package/dist/redactor-composite.strategy.js.map +1 -0
- package/dist/redactor-mask.strategy.d.ts +8 -0
- package/dist/redactor-mask.strategy.d.ts.map +1 -0
- package/dist/redactor-mask.strategy.js +33 -0
- package/dist/redactor-mask.strategy.js.map +1 -0
- package/dist/redactor-noop.strategy.d.ts +5 -0
- package/dist/redactor-noop.strategy.d.ts.map +1 -0
- package/dist/redactor-noop.strategy.js +6 -0
- package/dist/redactor-noop.strategy.js.map +1 -0
- package/dist/redactor.strategy.d.ts +4 -0
- package/dist/redactor.strategy.d.ts.map +1 -0
- package/dist/redactor.strategy.js +2 -0
- package/dist/redactor.strategy.js.map +1 -0
- package/dist/retry-backoff-exponential.strategy.d.ts +8 -0
- package/dist/retry-backoff-exponential.strategy.d.ts.map +1 -0
- package/dist/retry-backoff-exponential.strategy.js +13 -0
- package/dist/retry-backoff-exponential.strategy.js.map +1 -0
- package/dist/retry-backoff-fibonacci.strategy.d.ts +9 -0
- package/dist/retry-backoff-fibonacci.strategy.d.ts.map +1 -0
- package/dist/retry-backoff-fibonacci.strategy.js +18 -0
- package/dist/retry-backoff-fibonacci.strategy.js.map +1 -0
- package/dist/retry-backoff-linear.strategy.d.ts +8 -0
- package/dist/retry-backoff-linear.strategy.d.ts.map +1 -0
- package/dist/retry-backoff-linear.strategy.js +11 -0
- package/dist/retry-backoff-linear.strategy.js.map +1 -0
- package/dist/retry-backoff-noop.strategy.d.ts +6 -0
- package/dist/retry-backoff-noop.strategy.d.ts.map +1 -0
- package/dist/retry-backoff-noop.strategy.js +7 -0
- package/dist/retry-backoff-noop.strategy.js.map +1 -0
- package/dist/retry-backoff.strategy.d.ts +5 -0
- package/dist/retry-backoff.strategy.d.ts.map +1 -0
- package/dist/retry-backoff.strategy.js +2 -0
- package/dist/retry-backoff.strategy.js.map +1 -0
- package/dist/retry.service.d.ts +20 -0
- package/dist/retry.service.d.ts.map +1 -0
- package/dist/retry.service.js +25 -0
- package/dist/retry.service.js.map +1 -0
- package/dist/sealer-aes-gcm.adapter.d.ts +17 -0
- package/dist/sealer-aes-gcm.adapter.d.ts.map +1 -0
- package/dist/sealer-aes-gcm.adapter.js +27 -0
- package/dist/sealer-aes-gcm.adapter.js.map +1 -0
- package/dist/sealer-noop.adapter.d.ts +6 -0
- package/dist/sealer-noop.adapter.d.ts.map +1 -0
- package/dist/sealer-noop.adapter.js +9 -0
- package/dist/sealer-noop.adapter.js.map +1 -0
- package/dist/sealer.port.d.ts +5 -0
- package/dist/sealer.port.d.ts.map +1 -0
- package/dist/sealer.port.js +2 -0
- package/dist/sealer.port.js.map +1 -0
- package/dist/security-context.vo.d.ts +10 -0
- package/dist/security-context.vo.d.ts.map +1 -0
- package/dist/security-context.vo.js +11 -0
- package/dist/security-context.vo.js.map +1 -0
- package/dist/security-countermeasure-ban.strategy.d.ts +29 -0
- package/dist/security-countermeasure-ban.strategy.d.ts.map +1 -0
- package/dist/security-countermeasure-ban.strategy.js +40 -0
- package/dist/security-countermeasure-ban.strategy.js.map +1 -0
- package/dist/security-countermeasure-mirage.strategy.d.ts +19 -0
- package/dist/security-countermeasure-mirage.strategy.d.ts.map +1 -0
- package/dist/security-countermeasure-mirage.strategy.js +24 -0
- package/dist/security-countermeasure-mirage.strategy.js.map +1 -0
- package/dist/security-countermeasure-name.vo.d.ts +10 -0
- package/dist/security-countermeasure-name.vo.d.ts.map +1 -0
- package/dist/security-countermeasure-name.vo.js +16 -0
- package/dist/security-countermeasure-name.vo.js.map +1 -0
- package/dist/security-countermeasure-noop.strategy.d.ts +6 -0
- package/dist/security-countermeasure-noop.strategy.d.ts.map +1 -0
- package/dist/security-countermeasure-noop.strategy.js +10 -0
- package/dist/security-countermeasure-noop.strategy.js.map +1 -0
- package/dist/security-countermeasure-report.strategy.d.ts +14 -0
- package/dist/security-countermeasure-report.strategy.d.ts.map +1 -0
- package/dist/security-countermeasure-report.strategy.js +22 -0
- package/dist/security-countermeasure-report.strategy.js.map +1 -0
- package/dist/security-countermeasure-tarpit.strategy.d.ts +19 -0
- package/dist/security-countermeasure-tarpit.strategy.d.ts.map +1 -0
- package/dist/security-countermeasure-tarpit.strategy.js +24 -0
- package/dist/security-countermeasure-tarpit.strategy.js.map +1 -0
- package/dist/security-countermeasure.strategy.d.ts +26 -0
- package/dist/security-countermeasure.strategy.d.ts.map +1 -0
- package/dist/security-countermeasure.strategy.js +2 -0
- package/dist/security-countermeasure.strategy.js.map +1 -0
- package/dist/security-policy.vo.d.ts +8 -0
- package/dist/security-policy.vo.d.ts.map +1 -0
- package/dist/security-policy.vo.js +9 -0
- package/dist/security-policy.vo.js.map +1 -0
- package/dist/security-rule-and.strategy.d.ts +13 -0
- package/dist/security-rule-and.strategy.d.ts.map +1 -0
- package/dist/security-rule-and.strategy.js +22 -0
- package/dist/security-rule-and.strategy.js.map +1 -0
- package/dist/security-rule-bait-routes.strategy.d.ts +9 -0
- package/dist/security-rule-bait-routes.strategy.d.ts.map +1 -0
- package/dist/security-rule-bait-routes.strategy.js +14 -0
- package/dist/security-rule-bait-routes.strategy.js.map +1 -0
- package/dist/security-rule-fail.strategy.d.ts +6 -0
- package/dist/security-rule-fail.strategy.d.ts.map +1 -0
- package/dist/security-rule-fail.strategy.js +10 -0
- package/dist/security-rule-fail.strategy.js.map +1 -0
- package/dist/security-rule-honey-pot-field.strategy.d.ts +9 -0
- package/dist/security-rule-honey-pot-field.strategy.d.ts.map +1 -0
- package/dist/security-rule-honey-pot-field.strategy.js +17 -0
- package/dist/security-rule-honey-pot-field.strategy.js.map +1 -0
- package/dist/security-rule-name.vo.d.ts +10 -0
- package/dist/security-rule-name.vo.d.ts.map +1 -0
- package/dist/security-rule-name.vo.js +16 -0
- package/dist/security-rule-name.vo.js.map +1 -0
- package/dist/security-rule-or.strategy.d.ts +13 -0
- package/dist/security-rule-or.strategy.d.ts.map +1 -0
- package/dist/security-rule-or.strategy.js +22 -0
- package/dist/security-rule-or.strategy.js.map +1 -0
- package/dist/security-rule-pass.strategy.d.ts +6 -0
- package/dist/security-rule-pass.strategy.d.ts.map +1 -0
- package/dist/security-rule-pass.strategy.js +10 -0
- package/dist/security-rule-pass.strategy.js.map +1 -0
- package/dist/security-rule-user-agent.strategy.d.ts +9 -0
- package/dist/security-rule-user-agent.strategy.d.ts.map +1 -0
- package/dist/security-rule-user-agent.strategy.js +18 -0
- package/dist/security-rule-user-agent.strategy.js.map +1 -0
- package/dist/security-rule-violation-threshold.strategy.d.ts +20 -0
- package/dist/security-rule-violation-threshold.strategy.d.ts.map +1 -0
- package/dist/security-rule-violation-threshold.strategy.js +36 -0
- package/dist/security-rule-violation-threshold.strategy.js.map +1 -0
- package/dist/security-rule.strategy.d.ts +7 -0
- package/dist/security-rule.strategy.d.ts.map +1 -0
- package/dist/security-rule.strategy.js +2 -0
- package/dist/security-rule.strategy.js.map +1 -0
- package/dist/setup.service.d.ts +4 -2
- package/dist/setup.service.d.ts.map +1 -1
- package/dist/setup.service.js +2 -2
- package/dist/setup.service.js.map +1 -1
- package/dist/shield-api-key.strategy.d.ts +15 -0
- package/dist/shield-api-key.strategy.d.ts.map +1 -0
- package/dist/shield-api-key.strategy.js +16 -0
- package/dist/shield-api-key.strategy.js.map +1 -0
- package/dist/shield-auth.strategy.d.ts +12 -0
- package/dist/shield-auth.strategy.d.ts.map +1 -0
- package/dist/shield-auth.strategy.js +34 -0
- package/dist/shield-auth.strategy.js.map +1 -0
- package/dist/shield-basic-auth.strategy.d.ts +14 -0
- package/dist/shield-basic-auth.strategy.d.ts.map +1 -0
- package/dist/shield-basic-auth.strategy.js +10 -0
- package/dist/shield-basic-auth.strategy.js.map +1 -0
- package/dist/shield-captcha-hcaptcha-local.strategy.d.ts +10 -0
- package/dist/shield-captcha-hcaptcha-local.strategy.d.ts.map +1 -0
- package/dist/shield-captcha-hcaptcha-local.strategy.js +24 -0
- package/dist/shield-captcha-hcaptcha-local.strategy.js.map +1 -0
- package/dist/shield-captcha-hcaptcha.strategy.d.ts +10 -0
- package/dist/shield-captcha-hcaptcha.strategy.d.ts.map +1 -0
- package/dist/shield-captcha-hcaptcha.strategy.js +24 -0
- package/dist/shield-captcha-hcaptcha.strategy.js.map +1 -0
- package/dist/shield-captcha-recaptcha.strategy.d.ts +18 -0
- package/dist/shield-captcha-recaptcha.strategy.d.ts.map +1 -0
- package/dist/shield-captcha-recaptcha.strategy.js +37 -0
- package/dist/shield-captcha-recaptcha.strategy.js.map +1 -0
- package/dist/shield-noop.strategy.d.ts +5 -0
- package/dist/shield-noop.strategy.d.ts.map +1 -0
- package/dist/shield-noop.strategy.js +5 -0
- package/dist/shield-noop.strategy.js.map +1 -0
- package/dist/shield-rate-limit.strategy.d.ts +24 -0
- package/dist/shield-rate-limit.strategy.d.ts.map +1 -0
- package/dist/shield-rate-limit.strategy.js +23 -0
- package/dist/shield-rate-limit.strategy.js.map +1 -0
- package/dist/shield-security.strategy.d.ts +19 -0
- package/dist/shield-security.strategy.d.ts.map +1 -0
- package/dist/shield-security.strategy.js +54 -0
- package/dist/shield-security.strategy.js.map +1 -0
- package/dist/shield-timeout.strategy.d.ts +14 -0
- package/dist/shield-timeout.strategy.d.ts.map +1 -0
- package/dist/shield-timeout.strategy.js +12 -0
- package/dist/shield-timeout.strategy.js.map +1 -0
- package/dist/shield.strategy.d.ts +5 -0
- package/dist/shield.strategy.d.ts.map +1 -0
- package/dist/shield.strategy.js +2 -0
- package/dist/shield.strategy.js.map +1 -0
- package/dist/sleeper-noop.adapter.d.ts +5 -0
- package/dist/sleeper-noop.adapter.d.ts.map +1 -0
- package/dist/sleeper-noop.adapter.js +4 -0
- package/dist/sleeper-noop.adapter.js.map +1 -0
- package/dist/sleeper-system.adapter.d.ts +6 -0
- package/dist/sleeper-system.adapter.d.ts.map +1 -0
- package/dist/sleeper-system.adapter.js +6 -0
- package/dist/sleeper-system.adapter.js.map +1 -0
- package/dist/sleeper.port.d.ts +5 -0
- package/dist/sleeper.port.d.ts.map +1 -0
- package/dist/sleeper.port.js +2 -0
- package/dist/sleeper.port.js.map +1 -0
- package/dist/slower.middleware.d.ts +6 -1
- package/dist/slower.middleware.d.ts.map +1 -1
- package/dist/slower.middleware.js +2 -2
- package/dist/slower.middleware.js.map +1 -1
- package/dist/stopwatch.service.d.ts +18 -0
- package/dist/stopwatch.service.d.ts.map +1 -0
- package/dist/stopwatch.service.js +22 -0
- package/dist/stopwatch.service.js.map +1 -0
- package/dist/time-zone-offset.middleware.d.ts +2 -1
- package/dist/time-zone-offset.middleware.d.ts.map +1 -1
- package/dist/time-zone-offset.middleware.js +11 -2
- package/dist/time-zone-offset.middleware.js.map +1 -1
- package/dist/timekeeper-google.adapter.d.ts.map +1 -1
- package/dist/timekeeper-google.adapter.js +1 -1
- package/dist/timekeeper-google.adapter.js.map +1 -1
- package/dist/timeout-cancellable-runner-bare.adapter.d.ts +6 -0
- package/dist/timeout-cancellable-runner-bare.adapter.d.ts.map +1 -0
- package/dist/timeout-cancellable-runner-bare.adapter.js +24 -0
- package/dist/timeout-cancellable-runner-bare.adapter.js.map +1 -0
- package/dist/timeout-cancellable-runner-noop.adapter.d.ts +5 -0
- package/dist/timeout-cancellable-runner-noop.adapter.d.ts.map +1 -0
- package/dist/timeout-cancellable-runner-noop.adapter.js +7 -0
- package/dist/timeout-cancellable-runner-noop.adapter.js.map +1 -0
- package/dist/timeout-cancellable-runner.port.d.ts +8 -0
- package/dist/timeout-cancellable-runner.port.d.ts.map +1 -0
- package/dist/timeout-cancellable-runner.port.js +2 -0
- package/dist/timeout-cancellable-runner.port.js.map +1 -0
- package/dist/timeout-runner-bare.adapter.d.ts +6 -0
- package/dist/timeout-runner-bare.adapter.d.ts.map +1 -0
- package/dist/timeout-runner-bare.adapter.js +17 -0
- package/dist/timeout-runner-bare.adapter.js.map +1 -0
- package/dist/timeout-runner-error.adapter.d.ts +6 -0
- package/dist/timeout-runner-error.adapter.d.ts.map +1 -0
- package/dist/timeout-runner-error.adapter.js +7 -0
- package/dist/timeout-runner-error.adapter.js.map +1 -0
- package/dist/timeout-runner-monitor.adapter.d.ts +13 -0
- package/dist/timeout-runner-monitor.adapter.d.ts.map +1 -0
- package/dist/timeout-runner-monitor.adapter.js +16 -0
- package/dist/timeout-runner-monitor.adapter.js.map +1 -0
- package/dist/timeout-runner-noop.adapter.d.ts +6 -0
- package/dist/timeout-runner-noop.adapter.d.ts.map +1 -0
- package/dist/timeout-runner-noop.adapter.js +6 -0
- package/dist/timeout-runner-noop.adapter.js.map +1 -0
- package/dist/timeout-runner.port.d.ts +8 -0
- package/dist/timeout-runner.port.d.ts.map +1 -0
- package/dist/timeout-runner.port.js +2 -0
- package/dist/timeout-runner.port.js.map +1 -0
- package/dist/translations.service.d.ts +2 -2
- package/dist/translations.service.d.ts.map +1 -1
- package/dist/translations.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/uptime.service.d.ts.map +1 -1
- package/dist/uptime.service.js +1 -1
- package/dist/uptime.service.js.map +1 -1
- package/dist/visitor-id-client.strategy.d.ts +14 -0
- package/dist/visitor-id-client.strategy.d.ts.map +1 -0
- package/dist/visitor-id-client.strategy.js +14 -0
- package/dist/visitor-id-client.strategy.js.map +1 -0
- package/dist/visitor-id.strategy.d.ts +5 -0
- package/dist/visitor-id.strategy.d.ts.map +1 -0
- package/dist/visitor-id.strategy.js +2 -0
- package/dist/visitor-id.strategy.js.map +1 -0
- package/package.json +12 -7
- package/readme.md +129 -73
- package/src/api-version.middleware.ts +2 -2
- package/src/binary.vo.ts +2 -2
- package/src/build-info-repository.service.ts +3 -3
- package/src/cache-repository-lru-cache.adapter.ts +32 -0
- package/src/cache-repository-node-cache.adapter.ts +3 -9
- package/src/cache-repository-noop.adapter.ts +2 -7
- package/src/cache-repository.port.ts +2 -1
- package/src/cache-resolver-simple.strategy.ts +33 -0
- package/src/cache-resolver.strategy.ts +17 -0
- package/src/cache-response.middleware.ts +2 -2
- package/src/cache-subject-resolver.vo.ts +4 -4
- package/src/cache-subject-segment-cookie.strategy.ts +12 -0
- package/src/cache-subject-segment-fixed.strategy.ts +9 -0
- package/src/cache-subject-segment-header.strategy.ts +10 -0
- package/src/cache-subject-segment-ip.strategy.ts +10 -0
- package/src/cache-subject-segment-path.strategy.ts +8 -0
- package/src/cache-subject-segment-query.strategy.ts +13 -0
- package/src/cache-subject-segment-user.strategy.ts +8 -0
- package/src/cache-subject-segment.strategy.ts +7 -0
- package/src/certificate-inspector-tls.adapter.ts +4 -3
- package/src/client-from-hono.adapter.ts +16 -0
- package/src/client-ip.vo.ts +10 -0
- package/src/client-user-agent.vo.ts +15 -0
- package/src/client.vo.ts +20 -18
- package/src/clock-fixed.adapter.ts +0 -4
- package/src/clock-offset.adapter.ts +15 -0
- package/src/clock-system.adapter.ts +0 -4
- package/src/clock.port.ts +0 -2
- package/src/command-envelope.ts +1 -1
- package/src/crypto-aes-gcm.service.ts +37 -0
- package/src/crypto-key-provider-with-cache.adapter.ts +28 -0
- package/src/decorators.service.ts +1 -1
- package/src/encryption-aes-gcm.adapter.ts +57 -0
- package/src/environment-loader-noop.adapter.ts +16 -0
- package/src/environment-loader-process-safe.adapter.ts +5 -5
- package/src/event-envelope.ts +1 -1
- package/src/event-handler-bare.strategy.ts +9 -0
- package/src/event-handler-noop.strategy.ts +9 -0
- package/src/event-handler-with-logger.strategy.ts +31 -0
- package/src/event-handler.strategy.ts +8 -0
- package/src/event-store-like.types.ts +0 -4
- package/src/event-store.ts +0 -6
- package/src/file-reader-json-bun-forgiving.adapter.ts +14 -0
- package/src/file-reader-json-bun.adapter.ts +10 -0
- package/src/file-reader-json-noop.adapter.ts +12 -0
- package/src/file-reader-json-with-cache.adapter.ts +34 -0
- package/src/file-reader-json.port.ts +7 -0
- package/src/hash-content-noop.strategy.ts +8 -0
- package/src/hash-content-sha256-bun.strategy.ts +11 -0
- package/src/hash-content.strategy.ts +5 -0
- package/src/hash-file-sha256-bun.adapter.ts +2 -2
- package/src/healthcheck.service.ts +68 -29
- package/src/http-logger.middleware.ts +5 -5
- package/src/i18n.service.ts +2 -2
- package/src/index.ts +124 -49
- package/src/job-handler-bare.strategy.ts +15 -0
- package/src/job-handler-noop.strategy.ts +9 -0
- package/src/job-handler-with-logger.strategy.ts +44 -0
- package/src/job-handler.strategy.ts +10 -0
- package/src/logger-winston-local.adapter.ts +3 -3
- package/src/logger-winston-production.adapter.ts +2 -5
- package/src/logger-winston.adapter.ts +2 -2
- package/src/maintenance-mode.middleware.ts +15 -0
- package/src/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.ts +23 -0
- package/src/modules/system/events/index.ts +1 -0
- package/src/modules/system/services/passage-of-time-hourly.service.ts +2 -4
- package/src/modules/system/services/passage-of-time-minute.service.ts +2 -4
- package/src/prerequisite-runner-startup.service.ts +44 -0
- package/src/prerequisite-verifier-binary.adapter.ts +21 -0
- package/src/prerequisite-verifier-bun.adapter.ts +21 -0
- package/src/prerequisite-verifier-clock-drift.adapter.ts +32 -0
- package/src/prerequisite-verifier-dependency-vulnerabilities.adapter.ts +38 -0
- package/src/prerequisite-verifier-directory.adapter.ts +56 -0
- package/src/prerequisite-verifier-dns.adapter.ts +20 -0
- package/src/prerequisite-verifier-external-api.adapter.ts +20 -0
- package/src/prerequisite-verifier-file.adapter.ts +57 -0
- package/src/prerequisite-verifier-jobs.adapter.ts +15 -0
- package/src/prerequisite-verifier-log-file.adapter.ts +29 -0
- package/src/prerequisite-verifier-mailer.adapter.ts +22 -0
- package/src/prerequisite-verifier-memory.adapter.ts +22 -0
- package/src/prerequisite-verifier-node.adapter.ts +21 -0
- package/src/prerequisite-verifier-os.adapter.ts +22 -0
- package/src/prerequisite-verifier-outside-connectivity.adapter.ts +23 -0
- package/src/prerequisite-verifier-port.adapter.ts +23 -0
- package/src/prerequisite-verifier-ram.adapter.ts +20 -0
- package/src/prerequisite-verifier-running-user.adapter.ts +17 -0
- package/src/prerequisite-verifier-self.adapter.ts +11 -0
- package/src/prerequisite-verifier-space.adapter.ts +32 -0
- package/src/prerequisite-verifier-sqlite.adapter.ts +25 -0
- package/src/prerequisite-verifier-ssl-certificate-expiry.adapter.ts +27 -0
- package/src/prerequisite-verifier-timezone-utc.adapter.ts +20 -0
- package/src/prerequisite-verifier-translations.adapter.ts +86 -0
- package/src/prerequisite-verifier-with-cache.adapter.ts +35 -0
- package/src/prerequisite-verifier-with-fail-safe.adapter.ts +37 -0
- package/src/prerequisite-verifier-with-logger.adapter.ts +51 -0
- package/src/prerequisite-verifier-with-retry.adapter.ts +35 -0
- package/src/prerequisite-verifier-with-timeout.adapter.ts +31 -0
- package/src/prerequisite-verifier.decorator.ts +49 -0
- package/src/prerequisite-verifier.port.ts +38 -0
- package/src/prerequisite.vo.ts +28 -0
- package/src/redactor-compact-array.strategy.ts +10 -0
- package/src/redactor-compact-object.strategy.ts +24 -0
- package/src/redactor-composite.strategy.ts +9 -0
- package/src/redactor-mask.strategy.ts +38 -0
- package/src/redactor-noop.strategy.ts +7 -0
- package/src/redactor.strategy.ts +3 -0
- package/src/retry-backoff-exponential.strategy.ts +11 -0
- package/src/retry-backoff-fibonacci.strategy.ts +16 -0
- package/src/retry-backoff-linear.strategy.ts +10 -0
- package/src/retry-backoff-noop.strategy.ts +8 -0
- package/src/retry-backoff.strategy.ts +5 -0
- package/src/retry.service.ts +36 -0
- package/src/sealer-aes-gcm.adapter.ts +38 -0
- package/src/sealer-noop.adapter.ts +11 -0
- package/src/sealer.port.ts +4 -0
- package/src/security-context.vo.ts +11 -0
- package/src/security-countermeasure-ban.strategy.ts +62 -0
- package/src/security-countermeasure-mirage.strategy.ts +30 -0
- package/src/security-countermeasure-name.vo.ts +20 -0
- package/src/security-countermeasure-noop.strategy.ts +12 -0
- package/src/security-countermeasure-report.strategy.ts +27 -0
- package/src/security-countermeasure-tarpit.strategy.ts +31 -0
- package/src/security-countermeasure.strategy.ts +15 -0
- package/src/security-policy.vo.ts +9 -0
- package/src/security-rule-and.strategy.ts +23 -0
- package/src/security-rule-bait-routes.strategy.ts +15 -0
- package/src/security-rule-fail.strategy.ts +12 -0
- package/src/security-rule-honey-pot-field.strategy.ts +20 -0
- package/src/security-rule-name.vo.ts +20 -0
- package/src/security-rule-or.strategy.ts +23 -0
- package/src/security-rule-pass.strategy.ts +12 -0
- package/src/security-rule-user-agent.strategy.ts +20 -0
- package/src/security-rule-violation-threshold.strategy.ts +46 -0
- package/src/security-rule.strategy.ts +8 -0
- package/src/setup.service.ts +5 -4
- package/src/shield-api-key.strategy.ts +20 -0
- package/src/shield-auth.strategy.ts +42 -0
- package/src/shield-basic-auth.strategy.ts +17 -0
- package/src/shield-captcha-hcaptcha-local.strategy.ts +24 -0
- package/src/shield-captcha-hcaptcha.strategy.ts +24 -0
- package/src/shield-captcha-recaptcha.strategy.ts +49 -0
- package/src/shield-noop.strategy.ts +6 -0
- package/src/shield-rate-limit.strategy.ts +41 -0
- package/src/shield-security.strategy.ts +71 -0
- package/src/shield-timeout.strategy.ts +19 -0
- package/src/shield.strategy.ts +5 -0
- package/src/sleeper-noop.adapter.ts +5 -0
- package/src/sleeper-system.adapter.ts +8 -0
- package/src/sleeper.port.ts +5 -0
- package/src/slower.middleware.ts +5 -2
- package/src/stopwatch.service.ts +30 -0
- package/src/time-zone-offset.middleware.ts +12 -3
- package/src/timekeeper-google.adapter.ts +3 -2
- package/src/timeout-cancellable-runner-bare.adapter.ts +35 -0
- package/src/timeout-cancellable-runner-noop.adapter.ts +9 -0
- package/src/timeout-cancellable-runner.port.ts +7 -0
- package/src/timeout-runner-bare.adapter.ts +23 -0
- package/src/timeout-runner-error.adapter.ts +8 -0
- package/src/timeout-runner-monitor.adapter.ts +24 -0
- package/src/timeout-runner-noop.adapter.ts +8 -0
- package/src/timeout-runner.port.ts +7 -0
- package/src/translations.service.ts +2 -2
- package/src/uptime.service.ts +1 -1
- package/src/visitor-id-client.strategy.ts +20 -0
- package/src/visitor-id.strategy.ts +5 -0
- package/dist/cache-resolver-simple.adapter.d.ts +0 -19
- package/dist/cache-resolver-simple.adapter.d.ts.map +0 -1
- package/dist/cache-resolver-simple.adapter.js +0 -26
- package/dist/cache-resolver-simple.adapter.js.map +0 -1
- package/dist/cache-resolver.port.d.ts +0 -16
- package/dist/cache-resolver.port.d.ts.map +0 -1
- package/dist/cache-resolver.port.js +0 -6
- package/dist/cache-resolver.port.js.map +0 -1
- package/dist/cache-subject-segment-cookie.d.ts +0 -8
- package/dist/cache-subject-segment-cookie.d.ts.map +0 -1
- package/dist/cache-subject-segment-cookie.js +0 -13
- package/dist/cache-subject-segment-cookie.js.map +0 -1
- package/dist/cache-subject-segment-fixed.d.ts +0 -7
- package/dist/cache-subject-segment-fixed.d.ts.map +0 -1
- package/dist/cache-subject-segment-fixed.js +0 -10
- package/dist/cache-subject-segment-fixed.js.map +0 -1
- package/dist/cache-subject-segment-header.d.ts +0 -8
- package/dist/cache-subject-segment-header.d.ts.map +0 -1
- package/dist/cache-subject-segment-header.js +0 -10
- package/dist/cache-subject-segment-header.js.map +0 -1
- package/dist/cache-subject-segment-path.d.ts +0 -6
- package/dist/cache-subject-segment-path.d.ts.map +0 -1
- package/dist/cache-subject-segment-path.js +0 -6
- package/dist/cache-subject-segment-path.js.map +0 -1
- package/dist/cache-subject-segment-query.d.ts +0 -6
- package/dist/cache-subject-segment-query.d.ts.map +0 -1
- package/dist/cache-subject-segment-query.js +0 -10
- package/dist/cache-subject-segment-query.js.map +0 -1
- package/dist/cache-subject-segment-user.d.ts +0 -6
- package/dist/cache-subject-segment-user.d.ts.map +0 -1
- package/dist/cache-subject-segment-user.js +0 -6
- package/dist/cache-subject-segment-user.js.map +0 -1
- package/dist/cache-subject-segment.port.d.ts +0 -6
- package/dist/cache-subject-segment.port.d.ts.map +0 -1
- package/dist/cache-subject-segment.port.js +0 -2
- package/dist/cache-subject-segment.port.js.map +0 -1
- package/dist/encryption-bun.adapter.d.ts +0 -21
- package/dist/encryption-bun.adapter.d.ts.map +0 -1
- package/dist/encryption-bun.adapter.js +0 -54
- package/dist/encryption-bun.adapter.js.map +0 -1
- package/dist/event-handler-bare.adapter.d.ts +0 -9
- package/dist/event-handler-bare.adapter.d.ts.map +0 -1
- package/dist/event-handler-bare.adapter.js +0 -6
- package/dist/event-handler-bare.adapter.js.map +0 -1
- package/dist/event-handler-noop.adapter.d.ts +0 -9
- package/dist/event-handler-noop.adapter.d.ts.map +0 -1
- package/dist/event-handler-noop.adapter.js +0 -6
- package/dist/event-handler-noop.adapter.js.map +0 -1
- package/dist/event-handler-with-logger.adapter.d.ts +0 -18
- package/dist/event-handler-with-logger.adapter.d.ts.map +0 -1
- package/dist/event-handler-with-logger.adapter.js +0 -26
- package/dist/event-handler-with-logger.adapter.js.map +0 -1
- package/dist/event-handler.port.d.ts +0 -8
- package/dist/event-handler.port.d.ts.map +0 -1
- package/dist/event-handler.port.js +0 -2
- package/dist/event-handler.port.js.map +0 -1
- package/dist/hash-content-noop.adapter.d.ts +0 -6
- package/dist/hash-content-noop.adapter.d.ts.map +0 -1
- package/dist/hash-content-noop.adapter.js +0 -7
- package/dist/hash-content-noop.adapter.js.map +0 -1
- package/dist/hash-content-sha256-bun.adapter.d.ts +0 -6
- package/dist/hash-content-sha256-bun.adapter.d.ts.map +0 -1
- package/dist/hash-content-sha256-bun.adapter.js +0 -9
- package/dist/hash-content-sha256-bun.adapter.js.map +0 -1
- package/dist/hash-content.port.d.ts +0 -5
- package/dist/hash-content.port.d.ts.map +0 -1
- package/dist/hash-content.port.js +0 -2
- package/dist/hash-content.port.js.map +0 -1
- package/dist/job-handler-bare.adapter.d.ts +0 -12
- package/dist/job-handler-bare.adapter.d.ts.map +0 -1
- package/dist/job-handler-bare.adapter.js +0 -12
- package/dist/job-handler-bare.adapter.js.map +0 -1
- package/dist/job-handler-noop.adapter.d.ts +0 -6
- package/dist/job-handler-noop.adapter.d.ts.map +0 -1
- package/dist/job-handler-noop.adapter.js +0 -7
- package/dist/job-handler-noop.adapter.js.map +0 -1
- package/dist/job-handler-with-logger.adapter.d.ts +0 -17
- package/dist/job-handler-with-logger.adapter.d.ts.map +0 -1
- package/dist/job-handler-with-logger.adapter.js +0 -36
- package/dist/job-handler-with-logger.adapter.js.map +0 -1
- package/dist/job-handler.port.d.ts +0 -9
- package/dist/job-handler.port.d.ts.map +0 -1
- package/dist/job-handler.port.js +0 -2
- package/dist/job-handler.port.js.map +0 -1
- package/dist/json-file-reader-bun-forgiving.adapter.d.ts +0 -6
- package/dist/json-file-reader-bun-forgiving.adapter.d.ts.map +0 -1
- package/dist/json-file-reader-bun-forgiving.adapter.js +0 -11
- package/dist/json-file-reader-bun-forgiving.adapter.js.map +0 -1
- package/dist/json-file-reader-bun.adapter.d.ts +0 -6
- package/dist/json-file-reader-bun.adapter.d.ts.map +0 -1
- package/dist/json-file-reader-bun.adapter.js +0 -6
- package/dist/json-file-reader-bun.adapter.js.map +0 -1
- package/dist/json-file-reader-noop.adapter.d.ts +0 -8
- package/dist/json-file-reader-noop.adapter.d.ts.map +0 -1
- package/dist/json-file-reader-noop.adapter.js +0 -10
- package/dist/json-file-reader-noop.adapter.js.map +0 -1
- package/dist/json-file-reader.port.d.ts +0 -5
- package/dist/json-file-reader.port.d.ts.map +0 -1
- package/dist/json-file-reader.port.js +0 -2
- package/dist/json-file-reader.port.js.map +0 -1
- package/dist/prerequisites/binary.d.ts +0 -14
- package/dist/prerequisites/binary.d.ts.map +0 -1
- package/dist/prerequisites/binary.js +0 -28
- package/dist/prerequisites/binary.js.map +0 -1
- package/dist/prerequisites/bun.d.ts +0 -16
- package/dist/prerequisites/bun.d.ts.map +0 -1
- package/dist/prerequisites/bun.js +0 -34
- package/dist/prerequisites/bun.js.map +0 -1
- package/dist/prerequisites/clock-drift.d.ts +0 -22
- package/dist/prerequisites/clock-drift.d.ts.map +0 -1
- package/dist/prerequisites/clock-drift.js +0 -38
- package/dist/prerequisites/clock-drift.js.map +0 -1
- package/dist/prerequisites/dependency-vulnerabilities.d.ts +0 -10
- package/dist/prerequisites/dependency-vulnerabilities.d.ts.map +0 -1
- package/dist/prerequisites/dependency-vulnerabilities.js +0 -34
- package/dist/prerequisites/dependency-vulnerabilities.js.map +0 -1
- package/dist/prerequisites/directory.d.ts +0 -21
- package/dist/prerequisites/directory.d.ts.map +0 -1
- package/dist/prerequisites/directory.js +0 -56
- package/dist/prerequisites/directory.js.map +0 -1
- package/dist/prerequisites/dns.d.ts +0 -16
- package/dist/prerequisites/dns.d.ts.map +0 -1
- package/dist/prerequisites/dns.js +0 -30
- package/dist/prerequisites/dns.js.map +0 -1
- package/dist/prerequisites/external-api.d.ts +0 -16
- package/dist/prerequisites/external-api.d.ts.map +0 -1
- package/dist/prerequisites/external-api.js +0 -31
- package/dist/prerequisites/external-api.js.map +0 -1
- package/dist/prerequisites/file.d.ts +0 -21
- package/dist/prerequisites/file.d.ts.map +0 -1
- package/dist/prerequisites/file.js +0 -56
- package/dist/prerequisites/file.js.map +0 -1
- package/dist/prerequisites/index.d.ts +0 -25
- package/dist/prerequisites/index.d.ts.map +0 -1
- package/dist/prerequisites/index.js +0 -25
- package/dist/prerequisites/index.js.map +0 -1
- package/dist/prerequisites/jobs.d.ts +0 -14
- package/dist/prerequisites/jobs.d.ts.map +0 -1
- package/dist/prerequisites/jobs.js +0 -23
- package/dist/prerequisites/jobs.js.map +0 -1
- package/dist/prerequisites/log-file.d.ts +0 -16
- package/dist/prerequisites/log-file.d.ts.map +0 -1
- package/dist/prerequisites/log-file.js +0 -34
- package/dist/prerequisites/log-file.js.map +0 -1
- package/dist/prerequisites/mailer.d.ts +0 -20
- package/dist/prerequisites/mailer.d.ts.map +0 -1
- package/dist/prerequisites/mailer.js +0 -29
- package/dist/prerequisites/mailer.js.map +0 -1
- package/dist/prerequisites/memory.d.ts +0 -14
- package/dist/prerequisites/memory.d.ts.map +0 -1
- package/dist/prerequisites/memory.js +0 -27
- package/dist/prerequisites/memory.js.map +0 -1
- package/dist/prerequisites/node.d.ts +0 -16
- package/dist/prerequisites/node.d.ts.map +0 -1
- package/dist/prerequisites/node.js +0 -32
- package/dist/prerequisites/node.js.map +0 -1
- package/dist/prerequisites/os.d.ts +0 -13
- package/dist/prerequisites/os.d.ts.map +0 -1
- package/dist/prerequisites/os.js +0 -27
- package/dist/prerequisites/os.js.map +0 -1
- package/dist/prerequisites/outside-connectivity.d.ts +0 -15
- package/dist/prerequisites/outside-connectivity.d.ts.map +0 -1
- package/dist/prerequisites/outside-connectivity.js +0 -30
- package/dist/prerequisites/outside-connectivity.js.map +0 -1
- package/dist/prerequisites/port.d.ts +0 -14
- package/dist/prerequisites/port.d.ts.map +0 -1
- package/dist/prerequisites/port.js +0 -25
- package/dist/prerequisites/port.js.map +0 -1
- package/dist/prerequisites/ram.d.ts +0 -14
- package/dist/prerequisites/ram.d.ts.map +0 -1
- package/dist/prerequisites/ram.js +0 -26
- package/dist/prerequisites/ram.js.map +0 -1
- package/dist/prerequisites/running-user.d.ts +0 -13
- package/dist/prerequisites/running-user.d.ts.map +0 -1
- package/dist/prerequisites/running-user.js +0 -24
- package/dist/prerequisites/running-user.js.map +0 -1
- package/dist/prerequisites/self.d.ts +0 -10
- package/dist/prerequisites/self.d.ts.map +0 -1
- package/dist/prerequisites/self.js +0 -18
- package/dist/prerequisites/self.js.map +0 -1
- package/dist/prerequisites/space.d.ts +0 -20
- package/dist/prerequisites/space.d.ts.map +0 -1
- package/dist/prerequisites/space.js +0 -36
- package/dist/prerequisites/space.js.map +0 -1
- package/dist/prerequisites/sqlite.d.ts +0 -14
- package/dist/prerequisites/sqlite.d.ts.map +0 -1
- package/dist/prerequisites/sqlite.js +0 -29
- package/dist/prerequisites/sqlite.js.map +0 -1
- package/dist/prerequisites/ssl-certificate-expiry.d.ts +0 -21
- package/dist/prerequisites/ssl-certificate-expiry.d.ts.map +0 -1
- package/dist/prerequisites/ssl-certificate-expiry.js +0 -32
- package/dist/prerequisites/ssl-certificate-expiry.js.map +0 -1
- package/dist/prerequisites/timezone-utc.d.ts +0 -16
- package/dist/prerequisites/timezone-utc.d.ts.map +0 -1
- package/dist/prerequisites/timezone-utc.js +0 -25
- package/dist/prerequisites/timezone-utc.js.map +0 -1
- package/dist/prerequisites/translations.d.ts +0 -25
- package/dist/prerequisites/translations.d.ts.map +0 -1
- package/dist/prerequisites/translations.js +0 -68
- package/dist/prerequisites/translations.js.map +0 -1
- package/dist/prerequisites.service.d.ts +0 -60
- package/dist/prerequisites.service.d.ts.map +0 -1
- package/dist/prerequisites.service.js +0 -51
- package/dist/prerequisites.service.js.map +0 -1
- package/dist/redactor-compact-array.adapter.d.ts +0 -5
- package/dist/redactor-compact-array.adapter.d.ts.map +0 -1
- package/dist/redactor-compact-array.adapter.js +0 -7
- package/dist/redactor-compact-array.adapter.js.map +0 -1
- package/dist/redactor-compact-object.adapter.d.ts +0 -12
- package/dist/redactor-compact-object.adapter.d.ts.map +0 -1
- package/dist/redactor-compact-object.adapter.js +0 -17
- package/dist/redactor-compact-object.adapter.js.map +0 -1
- package/dist/redactor-composite.adapter.d.ts +0 -7
- package/dist/redactor-composite.adapter.d.ts.map +0 -1
- package/dist/redactor-composite.adapter.js +0 -10
- package/dist/redactor-composite.adapter.js.map +0 -1
- package/dist/redactor-encrypt.adapter.d.ts +0 -8
- package/dist/redactor-encrypt.adapter.d.ts.map +0 -1
- package/dist/redactor-encrypt.adapter.js +0 -25
- package/dist/redactor-encrypt.adapter.js.map +0 -1
- package/dist/redactor-mask.adapter.d.ts +0 -8
- package/dist/redactor-mask.adapter.d.ts.map +0 -1
- package/dist/redactor-mask.adapter.js +0 -33
- package/dist/redactor-mask.adapter.js.map +0 -1
- package/dist/redactor-noop.adapter.d.ts +0 -5
- package/dist/redactor-noop.adapter.d.ts.map +0 -1
- package/dist/redactor-noop.adapter.js +0 -6
- package/dist/redactor-noop.adapter.js.map +0 -1
- package/dist/redactor.port.d.ts +0 -4
- package/dist/redactor.port.d.ts.map +0 -1
- package/dist/redactor.port.js +0 -2
- package/dist/redactor.port.js.map +0 -1
- package/dist/secret.vo.d.ts +0 -7
- package/dist/secret.vo.d.ts.map +0 -1
- package/dist/secret.vo.js +0 -2
- package/dist/secret.vo.js.map +0 -1
- package/dist/shield-api-key.adapter.d.ts +0 -15
- package/dist/shield-api-key.adapter.d.ts.map +0 -1
- package/dist/shield-api-key.adapter.js +0 -16
- package/dist/shield-api-key.adapter.js.map +0 -1
- package/dist/shield-auth.middleware.d.ts +0 -12
- package/dist/shield-auth.middleware.d.ts.map +0 -1
- package/dist/shield-auth.middleware.js +0 -34
- package/dist/shield-auth.middleware.js.map +0 -1
- package/dist/shield-basic-auth.adapter.d.ts +0 -14
- package/dist/shield-basic-auth.adapter.d.ts.map +0 -1
- package/dist/shield-basic-auth.adapter.js +0 -10
- package/dist/shield-basic-auth.adapter.js.map +0 -1
- package/dist/shield-captcha-hcaptcha-local.adapter.d.ts +0 -10
- package/dist/shield-captcha-hcaptcha-local.adapter.d.ts.map +0 -1
- package/dist/shield-captcha-hcaptcha-local.adapter.js +0 -24
- package/dist/shield-captcha-hcaptcha-local.adapter.js.map +0 -1
- package/dist/shield-captcha-hcaptcha.adapter.d.ts +0 -10
- package/dist/shield-captcha-hcaptcha.adapter.d.ts.map +0 -1
- package/dist/shield-captcha-hcaptcha.adapter.js +0 -24
- package/dist/shield-captcha-hcaptcha.adapter.js.map +0 -1
- package/dist/shield-captcha-recaptcha.adapter.d.ts +0 -18
- package/dist/shield-captcha-recaptcha.adapter.d.ts.map +0 -1
- package/dist/shield-captcha-recaptcha.adapter.js +0 -37
- package/dist/shield-captcha-recaptcha.adapter.js.map +0 -1
- package/dist/shield-noop.adapter.d.ts +0 -5
- package/dist/shield-noop.adapter.d.ts.map +0 -1
- package/dist/shield-noop.adapter.js +0 -5
- package/dist/shield-noop.adapter.js.map +0 -1
- package/dist/shield-rate-limit.adapter.d.ts +0 -22
- package/dist/shield-rate-limit.adapter.d.ts.map +0 -1
- package/dist/shield-rate-limit.adapter.js +0 -23
- package/dist/shield-rate-limit.adapter.js.map +0 -1
- package/dist/shield-timeout.adapter.d.ts +0 -14
- package/dist/shield-timeout.adapter.d.ts.map +0 -1
- package/dist/shield-timeout.adapter.js +0 -12
- package/dist/shield-timeout.adapter.js.map +0 -1
- package/dist/shield-user-agent-blocker.adapter.d.ts +0 -7
- package/dist/shield-user-agent-blocker.adapter.d.ts.map +0 -1
- package/dist/shield-user-agent-blocker.adapter.js +0 -15
- package/dist/shield-user-agent-blocker.adapter.js.map +0 -1
- package/dist/shield.port.d.ts +0 -5
- package/dist/shield.port.d.ts.map +0 -1
- package/dist/shield.port.js +0 -2
- package/dist/shield.port.js.map +0 -1
- package/dist/timeout.service.d.ts +0 -11
- package/dist/timeout.service.d.ts.map +0 -1
- package/dist/timeout.service.js +0 -46
- package/dist/timeout.service.js.map +0 -1
- package/dist/visitor-id-client.adapter.d.ts +0 -14
- package/dist/visitor-id-client.adapter.d.ts.map +0 -1
- package/dist/visitor-id-client.adapter.js +0 -14
- package/dist/visitor-id-client.adapter.js.map +0 -1
- package/dist/visitor-id.port.d.ts +0 -5
- package/dist/visitor-id.port.d.ts.map +0 -1
- package/dist/visitor-id.port.js +0 -2
- package/dist/visitor-id.port.js.map +0 -1
- package/src/cache-resolver-simple.adapter.ts +0 -37
- package/src/cache-resolver.port.ts +0 -20
- package/src/cache-subject-segment-cookie.ts +0 -12
- package/src/cache-subject-segment-fixed.ts +0 -9
- package/src/cache-subject-segment-header.ts +0 -10
- package/src/cache-subject-segment-path.ts +0 -8
- package/src/cache-subject-segment-query.ts +0 -13
- package/src/cache-subject-segment-user.ts +0 -8
- package/src/cache-subject-segment.port.ts +0 -7
- package/src/encryption-bun.adapter.ts +0 -84
- package/src/event-handler-bare.adapter.ts +0 -9
- package/src/event-handler-noop.adapter.ts +0 -9
- package/src/event-handler-with-logger.adapter.ts +0 -31
- package/src/event-handler.port.ts +0 -8
- package/src/hash-content-noop.adapter.ts +0 -8
- package/src/hash-content-sha256-bun.adapter.ts +0 -11
- package/src/hash-content.port.ts +0 -5
- package/src/job-handler-bare.adapter.ts +0 -15
- package/src/job-handler-noop.adapter.ts +0 -9
- package/src/job-handler-with-logger.adapter.ts +0 -44
- package/src/job-handler.port.ts +0 -10
- package/src/json-file-reader-bun-forgiving.adapter.ts +0 -12
- package/src/json-file-reader-bun.adapter.ts +0 -8
- package/src/json-file-reader-noop.adapter.ts +0 -10
- package/src/json-file-reader.port.ts +0 -5
- package/src/prerequisites/binary.ts +0 -33
- package/src/prerequisites/bun.ts +0 -38
- package/src/prerequisites/clock-drift.ts +0 -51
- package/src/prerequisites/dependency-vulnerabilities.ts +0 -49
- package/src/prerequisites/directory.ts +0 -70
- package/src/prerequisites/dns.ts +0 -36
- package/src/prerequisites/external-api.ts +0 -41
- package/src/prerequisites/file.ts +0 -69
- package/src/prerequisites/index.ts +0 -24
- package/src/prerequisites/jobs.ts +0 -27
- package/src/prerequisites/log-file.ts +0 -42
- package/src/prerequisites/mailer.ts +0 -38
- package/src/prerequisites/memory.ts +0 -34
- package/src/prerequisites/node.ts +0 -37
- package/src/prerequisites/os.ts +0 -33
- package/src/prerequisites/outside-connectivity.ts +0 -38
- package/src/prerequisites/port.ts +0 -34
- package/src/prerequisites/ram.ts +0 -32
- package/src/prerequisites/running-user.ts +0 -30
- package/src/prerequisites/self.ts +0 -21
- package/src/prerequisites/space.ts +0 -45
- package/src/prerequisites/sqlite.ts +0 -38
- package/src/prerequisites/ssl-certificate-expiry.ts +0 -43
- package/src/prerequisites/timezone-utc.ts +0 -32
- package/src/prerequisites/translations.ts +0 -103
- package/src/prerequisites.service.ts +0 -92
- package/src/redactor-compact-array.adapter.ts +0 -10
- package/src/redactor-compact-object.adapter.ts +0 -24
- package/src/redactor-composite.adapter.ts +0 -9
- package/src/redactor-encrypt.adapter.ts +0 -32
- package/src/redactor-mask.adapter.ts +0 -38
- package/src/redactor-noop.adapter.ts +0 -7
- package/src/redactor.port.ts +0 -3
- package/src/secret.vo.ts +0 -7
- package/src/shield-api-key.adapter.ts +0 -20
- package/src/shield-auth.middleware.ts +0 -42
- package/src/shield-basic-auth.adapter.ts +0 -17
- package/src/shield-captcha-hcaptcha-local.adapter.ts +0 -24
- package/src/shield-captcha-hcaptcha.adapter.ts +0 -24
- package/src/shield-captcha-recaptcha.adapter.ts +0 -49
- package/src/shield-noop.adapter.ts +0 -6
- package/src/shield-rate-limit.adapter.ts +0 -37
- package/src/shield-timeout.adapter.ts +0 -19
- package/src/shield-user-agent-blocker.adapter.ts +0 -18
- package/src/shield.port.ts +0 -5
- package/src/timeout.service.ts +0 -71
- package/src/visitor-id-client.adapter.ts +0 -20
- package/src/visitor-id.port.ts +0 -5
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// TODO: tests
|
|
2
|
+
|
|
3
|
+
import type { betterAuth } from "better-auth";
|
|
4
|
+
import type hono from "hono";
|
|
5
|
+
import { createMiddleware } from "hono/factory";
|
|
6
|
+
import { HTTPException } from "hono/http-exception";
|
|
7
|
+
|
|
8
|
+
export const ShieldAuthStrategyError = new HTTPException(403, { message: "access_denied_auth_shield" });
|
|
9
|
+
|
|
10
|
+
export class ShieldAuthStrategy {
|
|
11
|
+
constructor(private readonly Auth: ReturnType<typeof betterAuth>) {}
|
|
12
|
+
|
|
13
|
+
attach = createMiddleware(async (c: hono.Context, next: hono.Next) => {
|
|
14
|
+
const session = await this.Auth.api.getSession({ headers: c.req.raw.headers });
|
|
15
|
+
|
|
16
|
+
if (!session) {
|
|
17
|
+
c.set("user", null);
|
|
18
|
+
c.set("session", null);
|
|
19
|
+
|
|
20
|
+
return next();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
c.set("user", session.user);
|
|
24
|
+
c.set("session", session.session);
|
|
25
|
+
|
|
26
|
+
return next();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
verify = createMiddleware(async (c: hono.Context, next: hono.Next) => {
|
|
30
|
+
const user = c.get("user");
|
|
31
|
+
|
|
32
|
+
if (!user) throw ShieldAuthStrategyError;
|
|
33
|
+
return next();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
reverse = createMiddleware(async (c: hono.Context, next: hono.Next) => {
|
|
37
|
+
const user = c.get("user");
|
|
38
|
+
|
|
39
|
+
if (user) throw ShieldAuthStrategyError;
|
|
40
|
+
return next();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { basicAuth } from "hono/basic-auth";
|
|
2
|
+
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import type { BasicAuthPasswordType } from "./basic-auth-password.vo";
|
|
4
|
+
import type { BasicAuthUsernameType } from "./basic-auth-username.vo";
|
|
5
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
6
|
+
|
|
7
|
+
type ShieldBasicAuthConfigType = { username: BasicAuthUsernameType; password: BasicAuthPasswordType };
|
|
8
|
+
|
|
9
|
+
export class ShieldBasicAuthStrategy implements ShieldStrategy {
|
|
10
|
+
private readonly basicAuth;
|
|
11
|
+
|
|
12
|
+
constructor(config: ShieldBasicAuthConfigType) {
|
|
13
|
+
this.basicAuth = basicAuth(config);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
verify = createMiddleware(async (c, next) => this.basicAuth(c, next));
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import hcaptcha from "hcaptcha";
|
|
2
|
+
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import { HTTPException } from "hono/http-exception";
|
|
4
|
+
import type { HCaptchaSecretKeyType } from "./hcaptcha-secret-key.vo";
|
|
5
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
6
|
+
|
|
7
|
+
export const AccessDeniedHcaptchaLocalError = new HTTPException(403, {
|
|
8
|
+
message: "access_denied_hcaptcha_local",
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export class ShieldCaptchaHcaptchaLocalStrategy implements ShieldStrategy {
|
|
12
|
+
constructor(private readonly secretKey: HCaptchaSecretKeyType) {}
|
|
13
|
+
|
|
14
|
+
verify = createMiddleware(async (_c, next) => {
|
|
15
|
+
try {
|
|
16
|
+
const result = await hcaptcha.verify(this.secretKey, "10000000-aaaa-bbbb-cccc-000000000001");
|
|
17
|
+
|
|
18
|
+
if (!result?.success) throw AccessDeniedHcaptchaLocalError;
|
|
19
|
+
return next();
|
|
20
|
+
} catch {
|
|
21
|
+
throw AccessDeniedHcaptchaLocalError;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import hcaptcha from "hcaptcha";
|
|
2
|
+
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import { HTTPException } from "hono/http-exception";
|
|
4
|
+
import type { HCaptchaSecretKeyType } from "./hcaptcha-secret-key.vo";
|
|
5
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
6
|
+
|
|
7
|
+
export const AccessDeniedHcaptchaError = new HTTPException(403, { message: "access_denied_hcaptcha" });
|
|
8
|
+
|
|
9
|
+
export class ShieldCaptchaHcaptchaStrategy implements ShieldStrategy {
|
|
10
|
+
constructor(private readonly secretKey: HCaptchaSecretKeyType) {}
|
|
11
|
+
|
|
12
|
+
verify = createMiddleware(async (c, next) => {
|
|
13
|
+
try {
|
|
14
|
+
const form = await c.req.formData();
|
|
15
|
+
const hcaptchaTokenFormData = form.get("h-captcha-response")?.toString() as string;
|
|
16
|
+
const result = await hcaptcha.verify(this.secretKey, hcaptchaTokenFormData);
|
|
17
|
+
|
|
18
|
+
if (!result?.success) throw AccessDeniedHcaptchaError;
|
|
19
|
+
return next();
|
|
20
|
+
} catch {
|
|
21
|
+
throw AccessDeniedHcaptchaError;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import { HTTPException } from "hono/http-exception";
|
|
4
|
+
import type { RecaptchaSecretKeyType } from "./recaptcha-secret-key.vo";
|
|
5
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
6
|
+
|
|
7
|
+
export type RecaptchaVerifierConfigType = { secretKey: RecaptchaSecretKeyType };
|
|
8
|
+
export type RecaptchaResultType = { success: boolean; score: number };
|
|
9
|
+
|
|
10
|
+
export const AccessDeniedRecaptchaError = new HTTPException(403, { message: "access_denied_recaptcha" });
|
|
11
|
+
|
|
12
|
+
export class ShieldCaptchaRecaptchaStrategy implements ShieldStrategy {
|
|
13
|
+
private static readonly URL = tools.UrlWithoutSlash.parse(
|
|
14
|
+
"https://www.google.com/recaptcha/api/siteverify",
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
constructor(private readonly config: RecaptchaVerifierConfigType) {}
|
|
18
|
+
|
|
19
|
+
verify = createMiddleware(async (c, next) => {
|
|
20
|
+
try {
|
|
21
|
+
const header = c.req.header("x-recaptcha-token");
|
|
22
|
+
const query = c.req.query("recaptchaToken");
|
|
23
|
+
const form = (await c.req.formData()).get("g-recaptcha-response")?.toString();
|
|
24
|
+
|
|
25
|
+
const token = header ?? query ?? form;
|
|
26
|
+
|
|
27
|
+
if (!token) throw AccessDeniedRecaptchaError;
|
|
28
|
+
|
|
29
|
+
// cSpell:ignore remoteip
|
|
30
|
+
const remoteip = c.req.header("x-forwarded-for") ?? "";
|
|
31
|
+
|
|
32
|
+
const params = new URLSearchParams({ secret: this.config.secretKey, response: token, remoteip });
|
|
33
|
+
|
|
34
|
+
const response = await fetch(ShieldCaptchaRecaptchaStrategy.URL, {
|
|
35
|
+
method: "POST",
|
|
36
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
37
|
+
body: params,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const result: RecaptchaResultType = await response.json();
|
|
41
|
+
|
|
42
|
+
if (!result.success || result.score < 0.5) throw AccessDeniedRecaptchaError;
|
|
43
|
+
|
|
44
|
+
await next();
|
|
45
|
+
} catch {
|
|
46
|
+
throw AccessDeniedRecaptchaError;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import { HTTPException } from "hono/http-exception";
|
|
4
|
+
import type { CacheResolverStrategy } from "./cache-resolver.strategy";
|
|
5
|
+
import type { CacheSubjectResolver } from "./cache-subject-resolver.vo";
|
|
6
|
+
import type { ClockPort } from "./clock.port";
|
|
7
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
8
|
+
|
|
9
|
+
type ShieldRateLimitOptionsType = {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
resolver: CacheSubjectResolver;
|
|
12
|
+
window: tools.Duration;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
type Dependencies = { Clock: ClockPort; CacheResolver: CacheResolverStrategy };
|
|
16
|
+
|
|
17
|
+
export const TooManyRequestsError = new HTTPException(429, { message: "app.too_many_requests" });
|
|
18
|
+
|
|
19
|
+
export class ShieldRateLimitStrategy implements ShieldStrategy {
|
|
20
|
+
constructor(
|
|
21
|
+
private readonly options: ShieldRateLimitOptionsType,
|
|
22
|
+
private readonly deps: Dependencies,
|
|
23
|
+
) {}
|
|
24
|
+
|
|
25
|
+
verify = createMiddleware(async (c, next) => {
|
|
26
|
+
if (!this.options.enabled) return next();
|
|
27
|
+
|
|
28
|
+
const subject = await this.options.resolver.resolve(c);
|
|
29
|
+
|
|
30
|
+
const limiter = await this.deps.CacheResolver.resolve(
|
|
31
|
+
subject.hex,
|
|
32
|
+
async () => new tools.RateLimiter(this.options.window),
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
const result = limiter.verify(this.deps.Clock.now());
|
|
36
|
+
|
|
37
|
+
if (!result.allowed) throw TooManyRequestsError;
|
|
38
|
+
|
|
39
|
+
return next();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { createMiddleware } from "hono/factory";
|
|
2
|
+
import type { ContentfulStatusCode } from "hono/utils/http-status";
|
|
3
|
+
import { ClientFromHono } from "./client-from-hono.adapter";
|
|
4
|
+
import { SecurityContext } from "./security-context.vo";
|
|
5
|
+
import type { SecurityPolicy } from "./security-policy.vo";
|
|
6
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
7
|
+
import type { SleeperPort } from "./sleeper.port";
|
|
8
|
+
|
|
9
|
+
type Dependencies = { Sleeper: SleeperPort };
|
|
10
|
+
|
|
11
|
+
export const ShieldSecurityAdapterError = {
|
|
12
|
+
Unhandled: "shield.security.adapter.error.unhandled",
|
|
13
|
+
MissingPolicies: "shield.security.adapter.error.missing.policies",
|
|
14
|
+
MaxPolicies: "shield.security.adapter.error.max.policies",
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export class ShieldSecurityStrategy implements ShieldStrategy {
|
|
18
|
+
constructor(
|
|
19
|
+
private readonly policies: SecurityPolicy[],
|
|
20
|
+
private readonly deps: Dependencies,
|
|
21
|
+
) {
|
|
22
|
+
if (policies.length === 0) throw new Error(ShieldSecurityAdapterError.MissingPolicies);
|
|
23
|
+
if (policies.length > 5) throw new Error(ShieldSecurityAdapterError.MaxPolicies);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
verify = createMiddleware(async (c, next) => {
|
|
27
|
+
for (const policy of this.policies) {
|
|
28
|
+
const violation = await policy.rule.isViolated(c);
|
|
29
|
+
|
|
30
|
+
if (!violation) continue;
|
|
31
|
+
|
|
32
|
+
const context = new SecurityContext(policy.rule.name, ClientFromHono.translate(c), c.get("user")?.id);
|
|
33
|
+
|
|
34
|
+
const action = await policy.countermeasure.execute(context);
|
|
35
|
+
|
|
36
|
+
switch (action.kind) {
|
|
37
|
+
case "allow":
|
|
38
|
+
return next();
|
|
39
|
+
|
|
40
|
+
case "deny":
|
|
41
|
+
return c.text(action.reason, action.response.status as ContentfulStatusCode);
|
|
42
|
+
|
|
43
|
+
case "mirage":
|
|
44
|
+
return c.json({}, action.response.status as ContentfulStatusCode);
|
|
45
|
+
|
|
46
|
+
case "delay": {
|
|
47
|
+
await this.deps.Sleeper.wait(action.duration);
|
|
48
|
+
|
|
49
|
+
switch (action.after.kind) {
|
|
50
|
+
case "allow":
|
|
51
|
+
return next();
|
|
52
|
+
|
|
53
|
+
case "deny":
|
|
54
|
+
return c.text(action.after.reason, action.after.response.status as ContentfulStatusCode);
|
|
55
|
+
|
|
56
|
+
case "mirage":
|
|
57
|
+
return c.json({}, action.after.response.status as ContentfulStatusCode);
|
|
58
|
+
|
|
59
|
+
case "delay":
|
|
60
|
+
throw new Error(ShieldSecurityAdapterError.Unhandled);
|
|
61
|
+
|
|
62
|
+
default:
|
|
63
|
+
throw new Error(ShieldSecurityAdapterError.Unhandled);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return next();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import { HTTPException } from "hono/http-exception";
|
|
4
|
+
import { timeout } from "hono/timeout";
|
|
5
|
+
import type { ShieldStrategy } from "./shield.strategy";
|
|
6
|
+
|
|
7
|
+
export const RequestTimeoutError = new HTTPException(408, { message: "request_timeout_error" });
|
|
8
|
+
|
|
9
|
+
type ShieldTimeoutConfigType = { duration: tools.Duration };
|
|
10
|
+
|
|
11
|
+
export class ShieldTimeoutStrategy implements ShieldStrategy {
|
|
12
|
+
private readonly timeout;
|
|
13
|
+
|
|
14
|
+
constructor(config: ShieldTimeoutConfigType) {
|
|
15
|
+
this.timeout = timeout(config.duration.ms, RequestTimeoutError);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
verify = createMiddleware(async (c, next) => this.timeout(c, next));
|
|
19
|
+
}
|
package/src/slower.middleware.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
import { createMiddleware } from "hono/factory";
|
|
3
|
+
import type { SleeperPort } from "./sleeper.port";
|
|
4
|
+
|
|
5
|
+
type Dependencies = { Sleeper: SleeperPort };
|
|
3
6
|
|
|
4
7
|
export class Slower {
|
|
5
|
-
static handle = (offset: tools.Duration) =>
|
|
8
|
+
static handle = (offset: tools.Duration, deps: Dependencies) =>
|
|
6
9
|
createMiddleware(async (_c, next) => {
|
|
7
|
-
await
|
|
10
|
+
await deps.Sleeper.wait(offset);
|
|
8
11
|
|
|
9
12
|
return next();
|
|
10
13
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import type { ClockPort } from "./clock.port";
|
|
3
|
+
|
|
4
|
+
type Dependencies = { Clock: ClockPort };
|
|
5
|
+
|
|
6
|
+
export const StopwatchError = { AlreadyStopped: "stopwatch.already.stopped" };
|
|
7
|
+
|
|
8
|
+
enum StopwatchState {
|
|
9
|
+
started = "started",
|
|
10
|
+
stopped = "stopped",
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type StopwatchResultType = tools.Duration;
|
|
14
|
+
|
|
15
|
+
export class Stopwatch {
|
|
16
|
+
private state: StopwatchState = StopwatchState.started;
|
|
17
|
+
private readonly start: tools.Timestamp;
|
|
18
|
+
|
|
19
|
+
constructor(private readonly deps: Dependencies) {
|
|
20
|
+
this.start = deps.Clock.now();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
stop(): StopwatchResultType {
|
|
24
|
+
if (this.state === StopwatchState.stopped) throw new Error(StopwatchError.AlreadyStopped);
|
|
25
|
+
|
|
26
|
+
this.state = StopwatchState.stopped;
|
|
27
|
+
|
|
28
|
+
return this.deps.Clock.now().difference(this.start);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -4,11 +4,20 @@ import { createMiddleware } from "hono/factory";
|
|
|
4
4
|
export type TimeZoneOffsetVariables = { timeZoneOffset: tools.Duration };
|
|
5
5
|
|
|
6
6
|
export class TimeZoneOffset {
|
|
7
|
-
static TIME_ZONE_OFFSET_HEADER_NAME = "time-zone-offset";
|
|
7
|
+
static readonly TIME_ZONE_OFFSET_HEADER_NAME = "time-zone-offset";
|
|
8
|
+
|
|
9
|
+
static readonly DEFAULT = tools.Duration.Minutes(0);
|
|
8
10
|
|
|
9
11
|
static attach = createMiddleware(async (c, next) => {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
+
const header = c.req.header(TimeZoneOffset.TIME_ZONE_OFFSET_HEADER_NAME);
|
|
13
|
+
|
|
14
|
+
if (!header) c.set("timeZoneOffset", TimeZoneOffset.DEFAULT);
|
|
15
|
+
if (Number.isNaN(Number(header))) c.set("timeZoneOffset", TimeZoneOffset.DEFAULT);
|
|
16
|
+
|
|
17
|
+
const offset = tools.TimeZoneOffsetValue.safeParse(header);
|
|
18
|
+
|
|
19
|
+
if (!offset.success) c.set("timeZoneOffset", TimeZoneOffset.DEFAULT);
|
|
20
|
+
else c.set("timeZoneOffset", tools.Duration.Minutes(offset.data));
|
|
12
21
|
|
|
13
22
|
await next();
|
|
14
23
|
});
|
|
@@ -7,12 +7,13 @@ export class TimekeeperGoogleAdapter implements TimekeeperPort {
|
|
|
7
7
|
async get(signal?: AbortSignal) {
|
|
8
8
|
try {
|
|
9
9
|
const response = await fetch(TimekeeperGoogleAdapter.URL, { signal });
|
|
10
|
+
|
|
10
11
|
if (!response.ok) return null;
|
|
11
12
|
|
|
12
13
|
const date = response.headers.get("Date");
|
|
13
|
-
if (!date) return null;
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
if (!date) return null;
|
|
16
|
+
return tools.Timestamp.fromDateLike(date);
|
|
16
17
|
} catch (error) {
|
|
17
18
|
return null;
|
|
18
19
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import {
|
|
3
|
+
TimeoutCancellableError,
|
|
4
|
+
type TimeoutCancellableRunnerPort,
|
|
5
|
+
} from "./timeout-cancellable-runner.port";
|
|
6
|
+
|
|
7
|
+
export class TimeoutCancellableRunnerBare implements TimeoutCancellableRunnerPort {
|
|
8
|
+
async cancellable<T>(action: (signal: AbortSignal) => Promise<T>, timeout: tools.Duration): Promise<T> {
|
|
9
|
+
return new Promise<T>((resolve, reject) => {
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
|
|
12
|
+
const reason = new Error(TimeoutCancellableError.Exceeded);
|
|
13
|
+
|
|
14
|
+
const canceller = setTimeout(() => {
|
|
15
|
+
controller.abort(reason);
|
|
16
|
+
reject(reason);
|
|
17
|
+
}, timeout.ms);
|
|
18
|
+
|
|
19
|
+
// Promise.resolve.then used to prevent the initial action(controller.signal) call
|
|
20
|
+
// from throwing before the resulting work-promise is run by promise.then.
|
|
21
|
+
const promise: Promise<T> = Promise.resolve().then(() => action(controller.signal));
|
|
22
|
+
|
|
23
|
+
promise.then(
|
|
24
|
+
(value) => {
|
|
25
|
+
clearTimeout(canceller);
|
|
26
|
+
resolve(value);
|
|
27
|
+
},
|
|
28
|
+
(error) => {
|
|
29
|
+
clearTimeout(canceller);
|
|
30
|
+
reject(error);
|
|
31
|
+
},
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TimeoutCancellableRunnerPort } from "./timeout-cancellable-runner.port";
|
|
2
|
+
|
|
3
|
+
export class TimeoutCancellableRunnerNoop implements TimeoutCancellableRunnerPort {
|
|
4
|
+
async cancellable<T>(action: (signal: AbortSignal) => Promise<T>): Promise<T> {
|
|
5
|
+
const controller = new AbortController();
|
|
6
|
+
|
|
7
|
+
return action(controller.signal);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
|
|
3
|
+
export const TimeoutCancellableError = { Exceeded: "timeout.cancellable.exceeded" };
|
|
4
|
+
|
|
5
|
+
export interface TimeoutCancellableRunnerPort {
|
|
6
|
+
cancellable<T>(action: (signal: AbortSignal) => Promise<T>, timeout: tools.Duration): Promise<T>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import { TimeoutError, type TimeoutRunnerPort } from "./timeout-runner.port";
|
|
3
|
+
|
|
4
|
+
export class TimeoutRunnerBareAdapter implements TimeoutRunnerPort {
|
|
5
|
+
async run<T>(action: Promise<T>, timeout: tools.Duration): Promise<T> {
|
|
6
|
+
return new Promise<T>((resolve, reject) => {
|
|
7
|
+
const reason = new Error(TimeoutError.Exceeded);
|
|
8
|
+
|
|
9
|
+
const canceller = setTimeout(() => reject(reason), timeout.ms);
|
|
10
|
+
|
|
11
|
+
action.then(
|
|
12
|
+
(value) => {
|
|
13
|
+
clearTimeout(canceller);
|
|
14
|
+
resolve(value);
|
|
15
|
+
},
|
|
16
|
+
(error) => {
|
|
17
|
+
clearTimeout(canceller);
|
|
18
|
+
reject(error);
|
|
19
|
+
},
|
|
20
|
+
);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import { TimeoutError, type TimeoutRunnerPort } from "./timeout-runner.port";
|
|
3
|
+
|
|
4
|
+
export class TimeoutRunnerErrorAdapter implements TimeoutRunnerPort {
|
|
5
|
+
async run<T>(_action: Promise<T>, _timeout: tools.Duration): Promise<T> {
|
|
6
|
+
throw new Error(TimeoutError.Exceeded);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import type { LoggerPort } from "./logger.port";
|
|
3
|
+
import type { TimeoutRunnerPort } from "./timeout-runner.port";
|
|
4
|
+
|
|
5
|
+
type Dependencies = { Logger: LoggerPort };
|
|
6
|
+
|
|
7
|
+
export class TimeoutRunnerMonitorAdapter implements TimeoutRunnerPort {
|
|
8
|
+
constructor(private readonly deps: Dependencies) {}
|
|
9
|
+
|
|
10
|
+
async run<T>(action: Promise<T>, timeout: tools.Duration): Promise<T> {
|
|
11
|
+
const monitor = setTimeout(
|
|
12
|
+
() =>
|
|
13
|
+
this.deps.Logger.warn({
|
|
14
|
+
message: "Timeout",
|
|
15
|
+
component: "infra",
|
|
16
|
+
operation: "timeout_monitor",
|
|
17
|
+
metadata: { timeoutMs: timeout.ms },
|
|
18
|
+
}),
|
|
19
|
+
timeout.ms,
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
return action.finally(() => clearTimeout(monitor));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import type { TimeoutRunnerPort } from "./timeout-runner.port";
|
|
3
|
+
|
|
4
|
+
export class TimeoutRunnerNoopAdapter implements TimeoutRunnerPort {
|
|
5
|
+
async run<T>(action: Promise<T>, _timeout: tools.Duration): Promise<T> {
|
|
6
|
+
return action;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createFactory } from "hono/factory";
|
|
2
|
+
import type { FileReaderJsonPort } from "./file-reader-json.port";
|
|
2
3
|
import { I18n, type TranslationsSupportedLanguagesType } from "./i18n.service";
|
|
3
|
-
import type { JsonFileReaderPort } from "./json-file-reader.port";
|
|
4
4
|
import type { LoggerPort } from "./logger.port";
|
|
5
5
|
|
|
6
6
|
const handler = createFactory();
|
|
7
7
|
|
|
8
8
|
type Config = TranslationsSupportedLanguagesType;
|
|
9
9
|
|
|
10
|
-
type Dependencies = { JsonFileReader:
|
|
10
|
+
type Dependencies = { JsonFileReader: FileReaderJsonPort; Logger: LoggerPort };
|
|
11
11
|
|
|
12
12
|
export class Translations {
|
|
13
13
|
static build = (config: Config, deps: Dependencies) =>
|
package/src/uptime.service.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type UptimeResultType = {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export class Uptime {
|
|
10
|
-
private static readonly rounding = new tools.
|
|
10
|
+
private static readonly rounding = new tools.RoundingToNearestStrategy();
|
|
11
11
|
|
|
12
12
|
static get(clock: ClockPort): UptimeResultType {
|
|
13
13
|
const duration = tools.Duration.Seconds(Uptime.rounding.round(process.uptime()));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Client } from "./client.vo";
|
|
2
|
+
import type { HashContentStrategy } from "./hash-content.strategy";
|
|
3
|
+
import type { VisitorIdStrategy } from "./visitor-id.strategy";
|
|
4
|
+
|
|
5
|
+
type Dependencies = { HashContent: HashContentStrategy };
|
|
6
|
+
|
|
7
|
+
export class VisitorIdClientStrategy implements VisitorIdStrategy {
|
|
8
|
+
constructor(
|
|
9
|
+
private readonly client: Client,
|
|
10
|
+
private readonly deps: Dependencies,
|
|
11
|
+
) {}
|
|
12
|
+
|
|
13
|
+
async get() {
|
|
14
|
+
const { ip, ua } = this.client.toJSON();
|
|
15
|
+
|
|
16
|
+
const value = `${ip}|${ua}`;
|
|
17
|
+
|
|
18
|
+
return this.deps.HashContent.hash(value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { CacheRepositoryPort } from "./cache-repository.port";
|
|
2
|
-
import { type CacheResolverPort, CacheSourceEnum } from "./cache-resolver.port";
|
|
3
|
-
import type { Hash } from "./hash.vo";
|
|
4
|
-
type Dependencies = {
|
|
5
|
-
CacheRepository: CacheRepositoryPort;
|
|
6
|
-
};
|
|
7
|
-
export declare class CacheResolverSimpleAdapter implements CacheResolverPort {
|
|
8
|
-
private readonly deps;
|
|
9
|
-
constructor(deps: Dependencies);
|
|
10
|
-
resolve<T>(subject: Hash, producer: () => Promise<T>): Promise<T>;
|
|
11
|
-
resolveWithContext<T>(subject: Hash, producer: () => Promise<T>): Promise<{
|
|
12
|
-
value: T;
|
|
13
|
-
source: CacheSourceEnum;
|
|
14
|
-
}>;
|
|
15
|
-
flush(): Promise<void>;
|
|
16
|
-
get ttl(): import("@bgord/tools").Duration;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=cache-resolver-simple.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-resolver-simple.adapter.d.ts","sourceRoot":"","sources":["../src/cache-resolver-simple.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,KAAK,YAAY,GAAG;IAAE,eAAe,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE7D,qBAAa,0BAA2B,YAAW,iBAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAMjE,kBAAkB,CAAC,CAAC,EACxB,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IAW3C,KAAK;IAIX,IAAI,GAAG,oCAEN;CACF"}
|