@bgord/bun 1.20.5 → 1.21.1
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/ab-assignment-composite.strategy.d.ts +4 -2
- package/dist/ab-assignment-composite.strategy.d.ts.map +1 -1
- package/dist/ab-assignment-composite.strategy.js +5 -2
- package/dist/ab-assignment-composite.strategy.js.map +1 -1
- package/dist/ab-assignment-cookie.strategy.d.ts +3 -2
- package/dist/ab-assignment-cookie.strategy.d.ts.map +1 -1
- package/dist/ab-assignment-cookie.strategy.js +5 -3
- package/dist/ab-assignment-cookie.strategy.js.map +1 -1
- package/dist/ab-assignment-fixed.strategy.d.ts +1 -2
- package/dist/ab-assignment-fixed.strategy.d.ts.map +1 -1
- package/dist/ab-assignment-fixed.strategy.js +1 -1
- package/dist/ab-assignment-fixed.strategy.js.map +1 -1
- package/dist/ab-assignment-hash.strategy.d.ts +1 -1
- package/dist/ab-assignment-hash.strategy.d.ts.map +1 -1
- package/dist/ab-assignment-hash.strategy.js +1 -1
- package/dist/ab-assignment-hash.strategy.js.map +1 -1
- package/dist/ab-assignment-header.strategy.d.ts +3 -2
- package/dist/ab-assignment-header.strategy.d.ts.map +1 -1
- package/dist/ab-assignment-header.strategy.js +5 -3
- package/dist/ab-assignment-header.strategy.js.map +1 -1
- package/dist/ab-assignment-query.strategy.d.ts +3 -2
- package/dist/ab-assignment-query.strategy.d.ts.map +1 -1
- package/dist/ab-assignment-query.strategy.js +5 -3
- package/dist/ab-assignment-query.strategy.js.map +1 -1
- package/dist/ab-assignment.strategy.d.ts +1 -2
- package/dist/ab-assignment.strategy.d.ts.map +1 -1
- package/dist/ab-hono-noop.middleware.d.ts +4 -1
- package/dist/ab-hono-noop.middleware.d.ts.map +1 -1
- package/dist/ab-hono-noop.middleware.js.map +1 -1
- package/dist/ab-hono.middleware.d.ts +4 -3
- package/dist/ab-hono.middleware.d.ts.map +1 -1
- package/dist/ab-hono.middleware.js +7 -4
- package/dist/ab-hono.middleware.js.map +1 -1
- package/dist/ab.middleware.d.ts +1 -3
- package/dist/ab.middleware.d.ts.map +1 -1
- package/dist/ab.middleware.js +2 -4
- package/dist/ab.middleware.js.map +1 -1
- package/dist/alert-channel-composite.adapter.d.ts +1 -0
- package/dist/alert-channel-composite.adapter.d.ts.map +1 -1
- package/dist/alert-channel-composite.adapter.js +6 -1
- package/dist/alert-channel-composite.adapter.js.map +1 -1
- package/dist/alert-channel-with-logger.adapter.js +1 -1
- package/dist/alert-channel-with-logger.adapter.js.map +1 -1
- package/dist/antivirus-clamav.adapter.d.ts.map +1 -1
- package/dist/antivirus-clamav.adapter.js +3 -4
- package/dist/antivirus-clamav.adapter.js.map +1 -1
- package/dist/antivirus-with-logger.adapter.js +2 -2
- package/dist/antivirus-with-logger.adapter.js.map +1 -1
- package/dist/api-version-hono.middleware.d.ts +2 -11
- package/dist/api-version-hono.middleware.d.ts.map +1 -1
- package/dist/api-version-hono.middleware.js +6 -3
- package/dist/api-version-hono.middleware.js.map +1 -1
- package/dist/api-version.middleware.d.ts +2 -3
- package/dist/api-version.middleware.d.ts.map +1 -1
- package/dist/api-version.middleware.js.map +1 -1
- package/dist/auth-session-reader-noop.adapter.d.ts +2 -2
- package/dist/auth-session-reader-noop.adapter.d.ts.map +1 -1
- package/dist/better-auth-logger.service.d.ts.map +1 -1
- package/dist/better-auth-logger.service.js +6 -0
- package/dist/better-auth-logger.service.js.map +1 -1
- package/dist/cache-file.service.d.ts.map +1 -1
- package/dist/cache-file.service.js +4 -2
- package/dist/cache-file.service.js.map +1 -1
- package/dist/cache-repository-node-cache.adapter.d.ts.map +1 -1
- package/dist/cache-repository-node-cache.adapter.js +4 -1
- package/dist/cache-repository-node-cache.adapter.js.map +1 -1
- package/dist/cache-response-hono.middleware.d.ts +2 -7
- package/dist/cache-response-hono.middleware.d.ts.map +1 -1
- package/dist/cache-response-hono.middleware.js +1 -1
- package/dist/cache-response-hono.middleware.js.map +1 -1
- package/dist/cache-response.middleware.d.ts +3 -4
- package/dist/cache-response.middleware.d.ts.map +1 -1
- package/dist/cache-response.middleware.js.map +1 -1
- package/dist/certificate-inspector-tls.adapter.d.ts.map +1 -1
- package/dist/certificate-inspector-tls.adapter.js +19 -16
- package/dist/certificate-inspector-tls.adapter.js.map +1 -1
- package/dist/correlation-hono.middleware.d.ts +5 -7
- package/dist/correlation-hono.middleware.d.ts.map +1 -1
- package/dist/correlation-hono.middleware.js +4 -2
- package/dist/correlation-hono.middleware.js.map +1 -1
- package/dist/correlation.middleware.d.ts +2 -3
- package/dist/correlation.middleware.d.ts.map +1 -1
- package/dist/correlation.middleware.js.map +1 -1
- package/dist/cron-scheduler.adapter.d.ts +1 -0
- package/dist/cron-scheduler.adapter.d.ts.map +1 -1
- package/dist/cron-scheduler.adapter.js +3 -2
- package/dist/cron-scheduler.adapter.js.map +1 -1
- package/dist/cron-task-handler-with-logger.strategy.js +7 -7
- package/dist/cron-task-handler-with-logger.strategy.js.map +1 -1
- package/dist/csv-stringifier.adapter.d.ts +1 -1
- package/dist/csv-stringifier.adapter.d.ts.map +1 -1
- package/dist/csv-stringifier.adapter.js +1 -1
- package/dist/csv-stringifier.adapter.js.map +1 -1
- package/dist/{disk-space-checker-shell.adapter.d.ts → disk-space-checker-fs.adapter.d.ts} +2 -2
- package/dist/disk-space-checker-fs.adapter.d.ts.map +1 -0
- package/dist/disk-space-checker-fs.adapter.js +10 -0
- package/dist/disk-space-checker-fs.adapter.js.map +1 -0
- package/dist/dynamic-import.service.js +2 -2
- package/dist/dynamic-import.service.js.map +1 -1
- package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process-safe.adapter.js +3 -1
- package/dist/environment-loader-process-safe.adapter.js.map +1 -1
- package/dist/environment-loader.port.d.ts +1 -1
- package/dist/environment-loader.port.d.ts.map +1 -1
- package/dist/etag-extractor-header.strategy.d.ts.map +1 -1
- package/dist/etag-extractor-header.strategy.js +2 -0
- package/dist/etag-extractor-header.strategy.js.map +1 -1
- package/dist/etag-extractor-hono.middleware.d.ts +3 -1
- package/dist/etag-extractor-hono.middleware.d.ts.map +1 -1
- package/dist/etag-extractor-param.strategy.d.ts.map +1 -1
- package/dist/etag-extractor-param.strategy.js +2 -0
- package/dist/etag-extractor-param.strategy.js.map +1 -1
- package/dist/etag-extractor.strategy.d.ts +2 -2
- package/dist/etag-extractor.strategy.d.ts.map +1 -1
- package/dist/file-inspection.adapter.js +4 -4
- package/dist/file-inspection.adapter.js.map +1 -1
- package/dist/file-reader-json-forgiving.adapter.js +1 -1
- package/dist/file-reader-json-forgiving.adapter.js.map +1 -1
- package/dist/graceful-shutdown.service.d.ts.map +1 -1
- package/dist/graceful-shutdown.service.js +3 -3
- package/dist/graceful-shutdown.service.js.map +1 -1
- package/dist/hash.vo.js +1 -1
- package/dist/hash.vo.js.map +1 -1
- package/dist/hcaptcha.service.d.ts +1 -2
- package/dist/hcaptcha.service.d.ts.map +1 -1
- package/dist/hcaptcha.service.js +1 -1
- package/dist/hcaptcha.service.js.map +1 -1
- package/dist/http-logger-hono.middleware.d.ts +2 -9
- package/dist/http-logger-hono.middleware.d.ts.map +1 -1
- package/dist/http-logger-hono.middleware.js +1 -1
- package/dist/http-logger-hono.middleware.js.map +1 -1
- package/dist/http-logger.middleware.d.ts +2 -3
- package/dist/http-logger.middleware.d.ts.map +1 -1
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/image-blur-noop.adapter.js +1 -1
- package/dist/image-blur-noop.adapter.js.map +1 -1
- package/dist/image-blur.adapter.d.ts.map +1 -1
- package/dist/image-blur.adapter.js +2 -4
- package/dist/image-blur.adapter.js.map +1 -1
- package/dist/image-blur.port.d.ts +1 -8
- package/dist/image-blur.port.d.ts.map +1 -1
- package/dist/in-flight-requests-hono.middleware.d.ts.map +1 -1
- package/dist/in-flight-requests-hono.middleware.js +1 -0
- package/dist/in-flight-requests-hono.middleware.js.map +1 -1
- package/dist/in-flight-requests-tracker.service.js +2 -2
- package/dist/in-flight-requests-tracker.service.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/instrumentation.service.d.ts.map +1 -1
- package/dist/instrumentation.service.js +5 -2
- package/dist/instrumentation.service.js.map +1 -1
- package/dist/job-queue-sqlite-store.service.d.ts.map +1 -1
- package/dist/job-queue-sqlite-store.service.js +1 -0
- package/dist/job-queue-sqlite-store.service.js.map +1 -1
- package/dist/job-queue-with-logger.adapter.d.ts +1 -1
- package/dist/job-queue-with-logger.adapter.d.ts.map +1 -1
- package/dist/job-queue-with-logger.adapter.js +2 -2
- package/dist/job-queue-with-logger.adapter.js.map +1 -1
- package/dist/language-detector-cookie.strategy.js +1 -1
- package/dist/language-detector-cookie.strategy.js.map +1 -1
- package/dist/language-detector-header.strategy.d.ts.map +1 -1
- package/dist/language-detector-header.strategy.js +12 -1
- package/dist/language-detector-header.strategy.js.map +1 -1
- package/dist/language-detector-hono.middleware.d.ts +3 -1
- package/dist/language-detector-hono.middleware.d.ts.map +1 -1
- package/dist/language-detector-query.strategy.js +1 -1
- package/dist/language-detector-query.strategy.js.map +1 -1
- package/dist/language-detector.middleware.d.ts +2 -2
- package/dist/language-detector.middleware.d.ts.map +1 -1
- package/dist/language-detector.middleware.js.map +1 -1
- package/dist/language-detector.strategy.d.ts +2 -2
- package/dist/language-detector.strategy.d.ts.map +1 -1
- package/dist/liveness-hono.handler.d.ts.map +1 -1
- package/dist/liveness-hono.handler.js +4 -1
- package/dist/liveness-hono.handler.js.map +1 -1
- package/dist/liveness.handler.d.ts +1 -0
- package/dist/liveness.handler.d.ts.map +1 -1
- package/dist/liveness.handler.js +1 -1
- package/dist/liveness.handler.js.map +1 -1
- package/dist/mailer-content-html.vo.d.ts +1 -5
- package/dist/mailer-content-html.vo.d.ts.map +1 -1
- package/dist/mailer-content-html.vo.js +1 -1
- package/dist/mailer-content-html.vo.js.map +1 -1
- package/dist/mailer-smtp.adapter.d.ts.map +1 -1
- package/dist/mailer-smtp.adapter.js +1 -0
- package/dist/mailer-smtp.adapter.js.map +1 -1
- package/dist/mailer-with-logger.adapter.js +2 -2
- package/dist/mailer-with-logger.adapter.js.map +1 -1
- package/dist/markdown-generator.adapter.js +1 -1
- package/dist/markdown-generator.adapter.js.map +1 -1
- package/dist/memory-consumption.service.d.ts +0 -1
- package/dist/memory-consumption.service.d.ts.map +1 -1
- package/dist/memory-consumption.service.js +0 -3
- package/dist/memory-consumption.service.js.map +1 -1
- package/dist/modules/system/jobs/SEND_EMAIL_JOB.d.ts +1 -1
- package/dist/nonce-provider-crypto.adapter.js +1 -1
- package/dist/nonce-provider-crypto.adapter.js.map +1 -1
- package/dist/nonce-provider-noop.adapter.js +1 -1
- package/dist/nonce-provider-noop.adapter.js.map +1 -1
- package/dist/nonce-value.vo.js +2 -2
- package/dist/pdf-generator-with-logger.adapter.js +1 -1
- package/dist/pdf-generator-with-logger.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-memory.adapter.js +1 -1
- package/dist/prerequisite-verifier-memory.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-translations.adapter.d.ts.map +1 -1
- package/dist/prerequisite-verifier-translations.adapter.js +7 -11
- package/dist/prerequisite-verifier-translations.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-with-logger.adapter.js +1 -1
- package/dist/prerequisite-verifier-with-logger.adapter.js.map +1 -1
- package/dist/randomness.strategy.d.ts.map +1 -1
- package/dist/reactive-config-noop.adapter.d.ts +0 -1
- package/dist/reactive-config-noop.adapter.d.ts.map +1 -1
- package/dist/reactive-config-noop.adapter.js +2 -4
- package/dist/reactive-config-noop.adapter.js.map +1 -1
- package/dist/reactive-config-with-cache.adapter.js +1 -1
- package/dist/reactive-config-with-cache.adapter.js.map +1 -1
- package/dist/reactive-config-with-fallback.adapter.d.ts +0 -1
- package/dist/reactive-config-with-fallback.adapter.d.ts.map +1 -1
- package/dist/reactive-config-with-fallback.adapter.js +2 -4
- package/dist/reactive-config-with-fallback.adapter.js.map +1 -1
- package/dist/reactive-config-with-logger.adapter.d.ts +15 -0
- package/dist/reactive-config-with-logger.adapter.d.ts.map +1 -0
- package/dist/reactive-config-with-logger.adapter.js +38 -0
- package/dist/reactive-config-with-logger.adapter.js.map +1 -0
- package/dist/readiness-hono.handler.d.ts +4 -7
- package/dist/readiness-hono.handler.d.ts.map +1 -1
- package/dist/readiness-hono.handler.js +2 -3
- package/dist/readiness-hono.handler.js.map +1 -1
- package/dist/readiness.handler.d.ts +6 -1
- package/dist/readiness.handler.d.ts.map +1 -1
- package/dist/readiness.handler.js +11 -1
- package/dist/readiness.handler.js.map +1 -1
- package/dist/redactor-metadata-compact-array.strategy.d.ts.map +1 -1
- package/dist/redactor-metadata-compact-array.strategy.js +2 -0
- package/dist/redactor-metadata-compact-array.strategy.js.map +1 -1
- package/dist/redactor-metadata-compact-object.strategy.d.ts.map +1 -1
- package/dist/redactor-metadata-compact-object.strategy.js +2 -0
- package/dist/redactor-metadata-compact-object.strategy.js.map +1 -1
- package/dist/redactor-url-query.strategy.d.ts +8 -0
- package/dist/redactor-url-query.strategy.d.ts.map +1 -0
- package/dist/redactor-url-query.strategy.js +26 -0
- package/dist/redactor-url-query.strategy.js.map +1 -0
- package/dist/remote-file-storage-disk.adapter.d.ts +2 -0
- package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
- package/dist/remote-file-storage-disk.adapter.js +2 -5
- package/dist/remote-file-storage-disk.adapter.js.map +1 -1
- package/dist/request-context-hono.adapter.d.ts.map +1 -1
- package/dist/request-context-hono.adapter.js +2 -0
- package/dist/request-context-hono.adapter.js.map +1 -1
- package/dist/request-context.port.d.ts +13 -1
- package/dist/request-context.port.d.ts.map +1 -1
- package/dist/sealer-aes-gcm.adapter.d.ts +1 -0
- package/dist/sealer-aes-gcm.adapter.d.ts.map +1 -1
- package/dist/sealer-aes-gcm.adapter.js +6 -1
- package/dist/sealer-aes-gcm.adapter.js.map +1 -1
- package/dist/secure-key-generator-crypto.adapter.d.ts +1 -0
- package/dist/secure-key-generator-crypto.adapter.d.ts.map +1 -1
- package/dist/secure-key-generator-crypto.adapter.js +6 -1
- package/dist/secure-key-generator-crypto.adapter.js.map +1 -1
- package/dist/security-rule-bait-routes.strategy.js +1 -1
- package/dist/security-rule-bait-routes.strategy.js.map +1 -1
- package/dist/security-rule-honey-pot-field.strategy.d.ts +2 -2
- package/dist/security-rule-honey-pot-field.strategy.d.ts.map +1 -1
- package/dist/security-rule-honey-pot-field.strategy.js +3 -2
- package/dist/security-rule-honey-pot-field.strategy.js.map +1 -1
- package/dist/security-rule.strategy.d.ts +2 -4
- package/dist/security-rule.strategy.d.ts.map +1 -1
- package/dist/semaphore.service.d.ts +3 -1
- package/dist/semaphore.service.d.ts.map +1 -1
- package/dist/semaphore.service.js +13 -7
- package/dist/semaphore.service.js.map +1 -1
- package/dist/setup-hono.service.js +1 -1
- package/dist/setup-hono.service.js.map +1 -1
- package/dist/shield-api-key-hono.strategy.js +1 -1
- package/dist/shield-api-key.strategy.d.ts +1 -1
- package/dist/shield-api-key.strategy.d.ts.map +1 -1
- package/dist/shield-api-key.strategy.js +5 -4
- package/dist/shield-api-key.strategy.js.map +1 -1
- package/dist/shield-auth.strategy.d.ts +3 -2
- package/dist/shield-auth.strategy.d.ts.map +1 -1
- package/dist/shield-auth.strategy.js +10 -3
- package/dist/shield-auth.strategy.js.map +1 -1
- package/dist/shield-basic-auth-hono.strategy.d.ts +1 -0
- package/dist/shield-basic-auth-hono.strategy.d.ts.map +1 -1
- package/dist/shield-basic-auth-hono.strategy.js +8 -1
- package/dist/shield-basic-auth-hono.strategy.js.map +1 -1
- package/dist/shield-basic-auth.strategy.d.ts +1 -0
- package/dist/shield-basic-auth.strategy.d.ts.map +1 -1
- package/dist/shield-basic-auth.strategy.js +11 -3
- package/dist/shield-basic-auth.strategy.js.map +1 -1
- package/dist/shield-csrf.strategy.js +2 -2
- package/dist/shield-csrf.strategy.js.map +1 -1
- package/dist/shield-hcaptcha-hono-local.strategy.d.ts.map +1 -1
- package/dist/shield-hcaptcha-hono-local.strategy.js +3 -1
- package/dist/shield-hcaptcha-hono-local.strategy.js.map +1 -1
- package/dist/shield-hcaptcha.strategy.d.ts +2 -2
- package/dist/shield-hcaptcha.strategy.d.ts.map +1 -1
- package/dist/shield-hcaptcha.strategy.js +7 -2
- package/dist/shield-hcaptcha.strategy.js.map +1 -1
- package/dist/shield-ip-blacklist.strategy.d.ts +2 -2
- package/dist/shield-ip-blacklist.strategy.d.ts.map +1 -1
- package/dist/shield-ip-blacklist.strategy.js +2 -2
- package/dist/shield-ip-blacklist.strategy.js.map +1 -1
- package/dist/shield-ip-whitelist.strategy.d.ts +2 -2
- package/dist/shield-ip-whitelist.strategy.d.ts.map +1 -1
- package/dist/shield-ip-whitelist.strategy.js +1 -1
- package/dist/shield-ip-whitelist.strategy.js.map +1 -1
- package/dist/shield-maintenance-hono.strategy.d.ts.map +1 -1
- package/dist/shield-maintenance-hono.strategy.js +6 -4
- package/dist/shield-maintenance-hono.strategy.js.map +1 -1
- package/dist/shield-maintenance.strategy.d.ts +23 -7
- package/dist/shield-maintenance.strategy.d.ts.map +1 -1
- package/dist/shield-maintenance.strategy.js +23 -4
- package/dist/shield-maintenance.strategy.js.map +1 -1
- package/dist/shield-rate-limit.strategy.d.ts +1 -1
- package/dist/shield-rate-limit.strategy.d.ts.map +1 -1
- package/dist/shield-rate-limit.strategy.js +1 -1
- package/dist/shield-rate-limit.strategy.js.map +1 -1
- package/dist/shield-recaptcha.strategy.d.ts +2 -2
- package/dist/shield-recaptcha.strategy.d.ts.map +1 -1
- package/dist/shield-recaptcha.strategy.js +11 -7
- package/dist/shield-recaptcha.strategy.js.map +1 -1
- package/dist/shield-timeout-hono.strategy.js +1 -1
- package/dist/shield-webhook-hono.strategy.js +1 -1
- package/dist/shield-webhook.strategy.d.ts +2 -2
- package/dist/shield-webhook.strategy.d.ts.map +1 -1
- package/dist/shield-webhook.strategy.js.map +1 -1
- package/dist/simulated-error.middleware.d.ts +3 -0
- package/dist/simulated-error.middleware.d.ts.map +1 -1
- package/dist/simulated-error.middleware.js +2 -1
- package/dist/simulated-error.middleware.js.map +1 -1
- package/dist/sitemap-entry.vo.js +1 -1
- package/dist/sitemap-priority.vo.d.ts +1 -1
- package/dist/sitemap-priority.vo.d.ts.map +1 -1
- package/dist/sitemap-priority.vo.js +1 -1
- package/dist/sitemap-priority.vo.js.map +1 -1
- package/dist/slower-hono.middleware.d.ts +2 -6
- package/dist/slower-hono.middleware.d.ts.map +1 -1
- package/dist/slower-hono.middleware.js.map +1 -1
- package/dist/slower.middleware.d.ts +2 -3
- package/dist/slower.middleware.d.ts.map +1 -1
- package/dist/slower.middleware.js.map +1 -1
- package/dist/sms-with-logger.adapter.js +1 -1
- package/dist/sms-with-logger.adapter.js.map +1 -1
- package/dist/sse-hono.handler.d.ts.map +1 -1
- package/dist/sse-hono.handler.js +4 -2
- package/dist/sse-hono.handler.js.map +1 -1
- package/dist/sse-registry-collecting.adapter.d.ts +1 -1
- package/dist/sse-registry-collecting.adapter.d.ts.map +1 -1
- package/dist/sse-registry-collecting.adapter.js +3 -1
- package/dist/sse-registry-collecting.adapter.js.map +1 -1
- package/dist/sse-registry-noop.adapter.d.ts +1 -1
- package/dist/sse-registry-noop.adapter.d.ts.map +1 -1
- package/dist/sse-registry-noop.adapter.js +3 -1
- package/dist/sse-registry-noop.adapter.js.map +1 -1
- package/dist/sse-registry-with-limit.adapter.d.ts +1 -1
- package/dist/sse-registry-with-limit.adapter.d.ts.map +1 -1
- package/dist/sse-registry-with-limit.adapter.js +2 -2
- package/dist/sse-registry-with-limit.adapter.js.map +1 -1
- package/dist/sse-registry-with-logger.adapter.d.ts +1 -1
- package/dist/sse-registry-with-logger.adapter.d.ts.map +1 -1
- package/dist/sse-registry-with-logger.adapter.js +4 -3
- package/dist/sse-registry-with-logger.adapter.js.map +1 -1
- package/dist/sse-registry.adapter.d.ts +1 -1
- package/dist/sse-registry.adapter.d.ts.map +1 -1
- package/dist/sse-registry.adapter.js +7 -1
- package/dist/sse-registry.adapter.js.map +1 -1
- package/dist/sse-registry.port.d.ts +1 -1
- package/dist/sse-registry.port.d.ts.map +1 -1
- package/dist/ssr-bun.service.js +1 -1
- package/dist/ssr-bun.service.js.map +1 -1
- package/dist/ssr.service.d.ts +1 -1
- package/dist/ssr.service.d.ts.map +1 -1
- package/dist/ssr.service.js +1 -1
- package/dist/ssr.service.js.map +1 -1
- package/dist/standard-schema-validator.service.js +1 -1
- package/dist/standard-schema-validator.service.js.map +1 -1
- package/dist/static-config.adapter.js +1 -1
- package/dist/static-config.adapter.js.map +1 -1
- package/dist/static-files-hono.service.d.ts +1 -1
- package/dist/static-files-hono.service.js +2 -2
- package/dist/static-files-hono.service.js.map +1 -1
- package/dist/subject-application-resolver.vo.d.ts +2 -2
- package/dist/subject-application-resolver.vo.d.ts.map +1 -1
- package/dist/subject-application-resolver.vo.js +1 -1
- package/dist/subject-application-resolver.vo.js.map +1 -1
- package/dist/subject-request-resolver.vo.d.ts +2 -2
- package/dist/subject-request-resolver.vo.d.ts.map +1 -1
- package/dist/subject-request-resolver.vo.js +1 -1
- package/dist/subject-request-resolver.vo.js.map +1 -1
- package/dist/subject-segment-application.strategy.d.ts +1 -0
- package/dist/subject-segment-application.strategy.d.ts.map +1 -1
- package/dist/subject-segment-application.strategy.js +1 -1
- package/dist/subject-segment-application.strategy.js.map +1 -1
- package/dist/subject-segment-build.strategy.d.ts +1 -0
- package/dist/subject-segment-build.strategy.d.ts.map +1 -1
- package/dist/subject-segment-build.strategy.js +1 -0
- package/dist/subject-segment-build.strategy.js.map +1 -1
- package/dist/subject-segment-cookie.strategy.d.ts +1 -0
- package/dist/subject-segment-cookie.strategy.d.ts.map +1 -1
- package/dist/subject-segment-cookie.strategy.js +3 -0
- package/dist/subject-segment-cookie.strategy.js.map +1 -1
- package/dist/subject-segment-env.strategy.d.ts +1 -0
- package/dist/subject-segment-env.strategy.d.ts.map +1 -1
- package/dist/subject-segment-env.strategy.js +1 -0
- package/dist/subject-segment-env.strategy.js.map +1 -1
- package/dist/subject-segment-fixed.strategy.d.ts +1 -0
- package/dist/subject-segment-fixed.strategy.d.ts.map +1 -1
- package/dist/subject-segment-fixed.strategy.js +1 -0
- package/dist/subject-segment-fixed.strategy.js.map +1 -1
- package/dist/subject-segment-header.strategy.d.ts +1 -0
- package/dist/subject-segment-header.strategy.d.ts.map +1 -1
- package/dist/subject-segment-header.strategy.js +3 -0
- package/dist/subject-segment-header.strategy.js.map +1 -1
- package/dist/subject-segment-ip.strategy.d.ts +1 -0
- package/dist/subject-segment-ip.strategy.d.ts.map +1 -1
- package/dist/subject-segment-ip.strategy.js +1 -0
- package/dist/subject-segment-ip.strategy.js.map +1 -1
- package/dist/subject-segment-method.strategy.d.ts +7 -0
- package/dist/subject-segment-method.strategy.d.ts.map +1 -0
- package/dist/subject-segment-method.strategy.js +7 -0
- package/dist/subject-segment-method.strategy.js.map +1 -0
- package/dist/subject-segment-param.strategy.d.ts +1 -0
- package/dist/subject-segment-param.strategy.d.ts.map +1 -1
- package/dist/subject-segment-param.strategy.js +3 -0
- package/dist/subject-segment-param.strategy.js.map +1 -1
- package/dist/subject-segment-path.strategy.d.ts +1 -0
- package/dist/subject-segment-path.strategy.d.ts.map +1 -1
- package/dist/subject-segment-path.strategy.js +1 -0
- package/dist/subject-segment-path.strategy.js.map +1 -1
- package/dist/subject-segment-query.strategy.d.ts +3 -2
- package/dist/subject-segment-query.strategy.d.ts.map +1 -1
- package/dist/subject-segment-query.strategy.js +5 -5
- package/dist/subject-segment-query.strategy.js.map +1 -1
- package/dist/subject-segment-request.strategy.d.ts +5 -3
- package/dist/subject-segment-request.strategy.d.ts.map +1 -1
- package/dist/subject-segment-request.strategy.js +1 -1
- package/dist/subject-segment-request.strategy.js.map +1 -1
- package/dist/subject-segment-user.strategy.d.ts +1 -0
- package/dist/subject-segment-user.strategy.d.ts.map +1 -1
- package/dist/subject-segment-user.strategy.js +1 -0
- package/dist/subject-segment-user.strategy.js.map +1 -1
- package/dist/time-zone-offset-hono.middleware.d.ts +3 -1
- package/dist/time-zone-offset-hono.middleware.d.ts.map +1 -1
- package/dist/time-zone-offset.middleware.d.ts +2 -2
- package/dist/time-zone-offset.middleware.d.ts.map +1 -1
- package/dist/time-zone-offset.middleware.js +2 -0
- package/dist/time-zone-offset.middleware.js.map +1 -1
- package/dist/timekeeper-google.adapter.d.ts +1 -1
- package/dist/timekeeper-google.adapter.d.ts.map +1 -1
- package/dist/timekeeper-google.adapter.js.map +1 -1
- package/dist/timing-hono.middleware.d.ts +2 -6
- package/dist/timing-hono.middleware.d.ts.map +1 -1
- package/dist/timing-hono.middleware.js +1 -1
- package/dist/timing-hono.middleware.js.map +1 -1
- package/dist/timing.middleware.d.ts +5 -5
- package/dist/timing.middleware.d.ts.map +1 -1
- package/dist/timing.middleware.js +10 -2
- package/dist/timing.middleware.js.map +1 -1
- package/dist/trailing-slash-hono.middleware.d.ts +1 -1
- package/dist/trailing-slash-hono.middleware.js +2 -2
- package/dist/trailing-slash-hono.middleware.js.map +1 -1
- package/dist/trailing-slash.middleware.d.ts +2 -0
- package/dist/trailing-slash.middleware.d.ts.map +1 -1
- package/dist/trailing-slash.middleware.js +6 -1
- package/dist/trailing-slash.middleware.js.map +1 -1
- package/dist/translations-provider-json.adapter.d.ts +1 -1
- package/dist/translations-provider-json.adapter.d.ts.map +1 -1
- package/dist/translations-provider-json.adapter.js +2 -6
- package/dist/translations-provider-json.adapter.js.map +1 -1
- package/dist/translations-provider.port.d.ts +5 -0
- package/dist/translations-provider.port.d.ts.map +1 -1
- package/dist/translations-provider.port.js +3 -1
- package/dist/translations-provider.port.js.map +1 -1
- package/dist/weak-etag-extractor-header.strategy.d.ts +1 -0
- package/dist/weak-etag-extractor-header.strategy.d.ts.map +1 -1
- package/dist/weak-etag-extractor-header.strategy.js +3 -0
- package/dist/weak-etag-extractor-header.strategy.js.map +1 -1
- package/dist/weak-etag-extractor-hono.middleware.d.ts +3 -1
- package/dist/weak-etag-extractor-hono.middleware.d.ts.map +1 -1
- package/dist/weak-etag-extractor-param.strategy.d.ts.map +1 -1
- package/dist/weak-etag-extractor-param.strategy.js +2 -0
- package/dist/weak-etag-extractor-param.strategy.js.map +1 -1
- package/dist/weak-etag-extractor.strategy.d.ts +2 -2
- package/dist/weak-etag-extractor.strategy.d.ts.map +1 -1
- package/dist/webhook-signature-extractor.strategy.d.ts +2 -2
- package/dist/webhook-signature-extractor.strategy.d.ts.map +1 -1
- package/dist/woodchopper-dispatcher-async.strategy.d.ts +0 -3
- package/dist/woodchopper-dispatcher-async.strategy.d.ts.map +1 -1
- package/dist/woodchopper-dispatcher-async.strategy.js +7 -6
- package/dist/woodchopper-dispatcher-async.strategy.js.map +1 -1
- package/package.json +12 -17
- package/readme.md +4 -3
- package/src/ab-assignment-composite.strategy.ts +7 -4
- package/src/ab-assignment-cookie.strategy.ts +6 -3
- package/src/ab-assignment-fixed.strategy.ts +1 -2
- package/src/ab-assignment-hash.strategy.ts +1 -1
- package/src/ab-assignment-header.strategy.ts +6 -3
- package/src/ab-assignment-query.strategy.ts +6 -3
- package/src/ab-assignment.strategy.ts +1 -2
- package/src/ab-hono-noop.middleware.ts +2 -1
- package/src/ab-hono.middleware.ts +7 -6
- package/src/ab.middleware.ts +2 -6
- package/src/alert-channel-composite.adapter.ts +8 -1
- package/src/alert-channel-with-logger.adapter.ts +1 -1
- package/src/antivirus-clamav.adapter.ts +5 -4
- package/src/antivirus-with-logger.adapter.ts +2 -2
- package/src/api-version-hono.middleware.ts +7 -15
- package/src/api-version.middleware.ts +2 -2
- package/src/auth-session-reader-noop.adapter.ts +2 -2
- package/src/better-auth-logger.service.ts +5 -0
- package/src/cache-file.service.ts +4 -2
- package/src/cache-repository-node-cache.adapter.ts +3 -1
- package/src/cache-response-hono.middleware.ts +6 -6
- package/src/cache-response.middleware.ts +4 -4
- package/src/certificate-inspector-tls.adapter.ts +21 -19
- package/src/correlation-hono.middleware.ts +8 -8
- package/src/correlation.middleware.ts +2 -2
- package/src/cron-scheduler.adapter.ts +4 -2
- package/src/cron-task-handler-with-logger.strategy.ts +8 -8
- package/src/csv-stringifier.adapter.ts +2 -2
- package/src/disk-space-checker-fs.adapter.ts +12 -0
- package/src/dynamic-import.service.ts +2 -2
- package/src/environment-loader-process-safe.adapter.ts +4 -1
- package/src/environment-loader.port.ts +1 -1
- package/src/etag-extractor-header.strategy.ts +2 -0
- package/src/etag-extractor-hono.middleware.ts +1 -1
- package/src/etag-extractor-param.strategy.ts +2 -0
- package/src/etag-extractor.strategy.ts +2 -2
- package/src/file-inspection.adapter.ts +4 -4
- package/src/file-reader-json-forgiving.adapter.ts +1 -1
- package/src/graceful-shutdown.service.ts +3 -3
- package/src/hash.vo.ts +1 -1
- package/src/hcaptcha.service.ts +3 -3
- package/src/http-logger-hono.middleware.ts +6 -6
- package/src/http-logger.middleware.ts +2 -2
- package/src/image-blur-noop.adapter.ts +1 -1
- package/src/image-blur.adapter.ts +2 -6
- package/src/image-blur.port.ts +1 -7
- package/src/in-flight-requests-hono.middleware.ts +1 -0
- package/src/in-flight-requests-tracker.service.ts +2 -2
- package/src/index.ts +4 -3
- package/src/instrumentation.service.ts +5 -2
- package/src/job-queue-sqlite-store.service.ts +1 -0
- package/src/job-queue-with-logger.adapter.ts +2 -2
- package/src/language-detector-cookie.strategy.ts +1 -1
- package/src/language-detector-header.strategy.ts +13 -1
- package/src/language-detector-hono.middleware.ts +1 -1
- package/src/language-detector-query.strategy.ts +1 -1
- package/src/language-detector.middleware.ts +2 -2
- package/src/language-detector.strategy.ts +2 -2
- package/src/liveness-hono.handler.ts +5 -1
- package/src/liveness.handler.ts +2 -2
- package/src/mailer-content-html.vo.ts +1 -2
- package/src/mailer-smtp.adapter.ts +1 -0
- package/src/mailer-with-logger.adapter.ts +2 -2
- package/src/markdown-generator.adapter.ts +1 -1
- package/src/memory-consumption.service.ts +0 -4
- package/src/nonce-provider-crypto.adapter.ts +1 -1
- package/src/nonce-provider-noop.adapter.ts +1 -1
- package/src/nonce-value.vo.ts +2 -2
- package/src/pdf-generator-with-logger.adapter.ts +1 -1
- package/src/prerequisite-verifier-memory.adapter.ts +1 -1
- package/src/prerequisite-verifier-translations.adapter.ts +7 -13
- package/src/prerequisite-verifier-with-logger.adapter.ts +1 -1
- package/src/randomness.strategy.ts +1 -0
- package/src/reactive-config-noop.adapter.ts +6 -5
- package/src/reactive-config-with-cache.adapter.ts +1 -1
- package/src/reactive-config-with-fallback.adapter.ts +8 -4
- package/src/reactive-config-with-logger.adapter.ts +50 -0
- package/src/readiness-hono.handler.ts +2 -3
- package/src/readiness.handler.ts +13 -2
- package/src/redactor-metadata-compact-array.strategy.ts +1 -0
- package/src/redactor-metadata-compact-object.strategy.ts +1 -0
- package/src/redactor-url-query.strategy.ts +33 -0
- package/src/remote-file-storage-disk.adapter.ts +5 -5
- package/src/request-context-hono.adapter.ts +2 -0
- package/src/request-context.port.ts +11 -1
- package/src/sealer-aes-gcm.adapter.ts +6 -1
- package/src/secure-key-generator-crypto.adapter.ts +9 -1
- package/src/security-rule-bait-routes.strategy.ts +1 -1
- package/src/security-rule-honey-pot-field.strategy.ts +5 -4
- package/src/security-rule.strategy.ts +2 -4
- package/src/semaphore.service.ts +12 -9
- package/src/setup-hono.service.ts +1 -1
- package/src/shield-api-key-hono.strategy.ts +1 -1
- package/src/shield-api-key.strategy.ts +5 -5
- package/src/shield-auth.strategy.ts +10 -5
- package/src/shield-basic-auth-hono.strategy.ts +8 -2
- package/src/shield-basic-auth.strategy.ts +17 -4
- package/src/shield-csrf.strategy.ts +2 -2
- package/src/shield-hcaptcha-hono-local.strategy.ts +4 -2
- package/src/shield-hcaptcha.strategy.ts +11 -4
- package/src/shield-ip-blacklist.strategy.ts +4 -4
- package/src/shield-ip-whitelist.strategy.ts +3 -3
- package/src/shield-maintenance-hono.strategy.ts +7 -4
- package/src/shield-maintenance.strategy.ts +42 -6
- package/src/shield-rate-limit.strategy.ts +2 -2
- package/src/shield-recaptcha.strategy.ts +15 -9
- package/src/shield-timeout-hono.strategy.ts +1 -1
- package/src/shield-webhook-hono.strategy.ts +1 -1
- package/src/shield-webhook.strategy.ts +2 -2
- package/src/simulated-error.middleware.ts +3 -1
- package/src/sitemap-entry.vo.ts +1 -1
- package/src/sitemap-priority.vo.ts +1 -0
- package/src/slower-hono.middleware.ts +2 -5
- package/src/slower.middleware.ts +2 -2
- package/src/sms-with-logger.adapter.ts +1 -1
- package/src/sse-hono.handler.ts +4 -2
- package/src/sse-registry-collecting.adapter.ts +3 -1
- package/src/sse-registry-noop.adapter.ts +3 -1
- package/src/sse-registry-with-limit.adapter.ts +3 -3
- package/src/sse-registry-with-logger.adapter.ts +6 -4
- package/src/sse-registry.adapter.ts +10 -2
- package/src/sse-registry.port.ts +1 -1
- package/src/ssr-bun.service.ts +1 -1
- package/src/ssr.service.ts +1 -1
- package/src/standard-schema-validator.service.ts +1 -1
- package/src/static-config.adapter.ts +1 -1
- package/src/static-files-hono.service.ts +2 -2
- package/src/subject-application-resolver.vo.ts +3 -3
- package/src/subject-request-resolver.vo.ts +6 -3
- package/src/subject-segment-application.strategy.ts +2 -1
- package/src/subject-segment-build.strategy.ts +2 -0
- package/src/subject-segment-cookie.strategy.ts +4 -0
- package/src/subject-segment-env.strategy.ts +2 -0
- package/src/subject-segment-fixed.strategy.ts +2 -0
- package/src/subject-segment-header.strategy.ts +4 -0
- package/src/subject-segment-ip.strategy.ts +2 -0
- package/src/subject-segment-method.strategy.ts +10 -0
- package/src/subject-segment-param.strategy.ts +4 -0
- package/src/subject-segment-path.strategy.ts +2 -0
- package/src/subject-segment-query.strategy.ts +7 -7
- package/src/subject-segment-request.strategy.ts +8 -4
- package/src/subject-segment-user.strategy.ts +2 -0
- package/src/time-zone-offset-hono.middleware.ts +1 -1
- package/src/time-zone-offset.middleware.ts +4 -2
- package/src/timekeeper-google.adapter.ts +1 -1
- package/src/timing-hono.middleware.ts +3 -6
- package/src/timing.middleware.ts +15 -6
- package/src/trailing-slash-hono.middleware.ts +2 -2
- package/src/trailing-slash.middleware.ts +14 -2
- package/src/translations-provider-json.adapter.ts +6 -6
- package/src/translations-provider.port.ts +5 -0
- package/src/weak-etag-extractor-header.strategy.ts +4 -0
- package/src/weak-etag-extractor-hono.middleware.ts +1 -1
- package/src/weak-etag-extractor-param.strategy.ts +2 -0
- package/src/weak-etag-extractor.strategy.ts +2 -2
- package/src/webhook-signature-extractor.strategy.ts +2 -2
- package/src/woodchopper-dispatcher-async.strategy.ts +6 -11
- package/dist/cron-scheduler-croner.adapter.d.ts +0 -15
- package/dist/cron-scheduler-croner.adapter.d.ts.map +0 -1
- package/dist/cron-scheduler-croner.adapter.js +0 -23
- package/dist/cron-scheduler-croner.adapter.js.map +0 -1
- package/dist/disk-space-checker-shell.adapter.d.ts.map +0 -1
- package/dist/disk-space-checker-shell.adapter.js +0 -14
- package/dist/disk-space-checker-shell.adapter.js.map +0 -1
- package/dist/file-reader-raw-with-cache.adapter.d.ts +0 -20
- package/dist/file-reader-raw-with-cache.adapter.d.ts.map +0 -1
- package/dist/file-reader-raw-with-cache.adapter.js +0 -20
- package/dist/file-reader-raw-with-cache.adapter.js.map +0 -1
- package/src/cron-scheduler-croner.adapter.ts +0 -34
- package/src/disk-space-checker-shell.adapter.ts +0 -18
- package/src/file-reader-raw-with-cache.adapter.ts +0 -31
|
@@ -19,7 +19,9 @@ export class CacheRepositoryNodeCacheAdapter implements CacheRepositoryPort {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
async set<T>(subject: Hash, value: T): Promise<void> {
|
|
22
|
-
|
|
22
|
+
try {
|
|
23
|
+
this.store.set(subject.get(), value);
|
|
24
|
+
} catch {}
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
async delete(subject: Hash): Promise<void> {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { createMiddleware } from "hono/factory";
|
|
2
2
|
import type { ContentfulStatusCode } from "hono/utils/http-status";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import {
|
|
4
|
+
CacheResponseMiddleware,
|
|
5
|
+
type CacheResponseMiddlewareConfig,
|
|
6
|
+
type CacheResponseMiddlewareDependencies,
|
|
7
|
+
} from "./cache-response.middleware";
|
|
6
8
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
7
9
|
import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
|
|
8
10
|
|
|
9
|
-
type Dependencies = { CacheResolver: CacheResolverStrategy };
|
|
10
|
-
|
|
11
11
|
export class CacheResponseHonoMiddleware implements MiddlewareHonoPort {
|
|
12
12
|
private readonly middleware: CacheResponseMiddleware;
|
|
13
13
|
|
|
14
|
-
constructor(config:
|
|
14
|
+
constructor(config: CacheResponseMiddlewareConfig, deps: CacheResponseMiddlewareDependencies) {
|
|
15
15
|
this.middleware = new CacheResponseMiddleware(config, deps);
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -2,9 +2,9 @@ import type { CacheResolverStrategy, CacheSourceEnum } from "./cache-resolver.st
|
|
|
2
2
|
import type { RequestContext } from "./request-context.port";
|
|
3
3
|
import type { SubjectRequestResolver } from "./subject-request-resolver.vo";
|
|
4
4
|
|
|
5
|
-
type
|
|
5
|
+
export type CacheResponseMiddlewareDependencies = { CacheResolver: CacheResolverStrategy };
|
|
6
6
|
|
|
7
|
-
export type
|
|
7
|
+
export type CacheResponseMiddlewareConfig = { enabled: boolean; resolver: SubjectRequestResolver };
|
|
8
8
|
|
|
9
9
|
export type CachedResponse<T = string> = {
|
|
10
10
|
body: T;
|
|
@@ -21,8 +21,8 @@ export class CacheResponseMiddleware {
|
|
|
21
21
|
static readonly CACHE_HIT_HEADER = "Cache-Hit";
|
|
22
22
|
|
|
23
23
|
constructor(
|
|
24
|
-
private readonly config:
|
|
25
|
-
private readonly deps:
|
|
24
|
+
private readonly config: CacheResponseMiddlewareConfig,
|
|
25
|
+
private readonly deps: CacheResponseMiddlewareDependencies,
|
|
26
26
|
) {}
|
|
27
27
|
|
|
28
28
|
async evaluate<T = string>(
|
|
@@ -11,35 +11,37 @@ export class CertificateInspectorTLSAdapter implements CertificateInspectorPort
|
|
|
11
11
|
|
|
12
12
|
async inspect(hostname: HostnameType): Promise<CertificateInspection> {
|
|
13
13
|
return new Promise((resolve) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const settle = (result: CertificateInspection) => {
|
|
15
|
+
// Stryker disable all
|
|
16
|
+
socket.destroy();
|
|
17
|
+
// Stryker restore all
|
|
18
|
+
resolve(result);
|
|
19
|
+
};
|
|
17
20
|
|
|
18
21
|
const socket = tls.connect(
|
|
19
22
|
{ host: hostname, port: 443, servername: hostname, rejectUnauthorized: false },
|
|
20
23
|
() => {
|
|
21
|
-
|
|
24
|
+
try {
|
|
25
|
+
const certificate = socket.getPeerCertificate();
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return resolve({ success: false });
|
|
26
|
-
}
|
|
27
|
-
// biome-ignore lint: lint/style/noRestrictedGlobals
|
|
28
|
-
const remaining = tools.Timestamp.fromNumber(new Date(certificate.valid_to).getTime()).difference(
|
|
29
|
-
this.deps.Clock.now(),
|
|
30
|
-
);
|
|
27
|
+
// Stryker disable next-line ConditionalExpression
|
|
28
|
+
if (!certificate.valid_to) return settle({ success: false });
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
// biome-ignore lint: lint/style/noRestrictedGlobals
|
|
31
|
+
const remaining = tools.Timestamp.fromNumber(new Date(certificate.valid_to).getTime()).difference(
|
|
32
|
+
this.deps.Clock.now(),
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
settle({ success: true, remaining });
|
|
36
|
+
} catch {
|
|
37
|
+
settle({ success: false });
|
|
38
|
+
}
|
|
34
39
|
},
|
|
35
40
|
);
|
|
36
41
|
|
|
37
42
|
// Stryker disable all
|
|
38
|
-
socket.once("error", () => {
|
|
39
|
-
|
|
40
|
-
cleanup(socket);
|
|
41
|
-
resolve({ success: false });
|
|
42
|
-
});
|
|
43
|
+
socket.once("error", () => settle({ success: false }));
|
|
44
|
+
// Stryker restore all
|
|
43
45
|
});
|
|
44
46
|
}
|
|
45
47
|
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { createMiddleware } from "hono/factory";
|
|
2
|
-
import { CorrelationMiddleware } from "./correlation.middleware";
|
|
2
|
+
import { CorrelationMiddleware, type CorrelationMiddlewareDependencies } from "./correlation.middleware";
|
|
3
3
|
import { CorrelationStorage } from "./correlation-storage.service";
|
|
4
|
-
import type { IdProviderPort } from "./id-provider.port";
|
|
5
4
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
6
5
|
import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
|
|
7
6
|
import type { UUIDType } from "./uuid.vo";
|
|
8
7
|
|
|
9
|
-
type Dependencies = { IdProvider: IdProviderPort };
|
|
10
|
-
|
|
11
8
|
export type CorrelationVariables = { correlationId: UUIDType };
|
|
12
9
|
|
|
13
10
|
export class CorrelationHonoMiddleware implements MiddlewareHonoPort {
|
|
14
11
|
private readonly correlationId: CorrelationMiddleware;
|
|
15
12
|
|
|
16
|
-
constructor(deps:
|
|
13
|
+
constructor(deps: CorrelationMiddlewareDependencies) {
|
|
17
14
|
this.correlationId = new CorrelationMiddleware(deps);
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
handle() {
|
|
21
|
-
return createMiddleware(async (c, next) => {
|
|
18
|
+
return createMiddleware<{ Variables: CorrelationVariables }>(async (c, next) => {
|
|
22
19
|
const context = new RequestContextHonoAdapter(c);
|
|
23
20
|
|
|
24
21
|
const result = this.correlationId.evaluate(context);
|
|
25
22
|
|
|
26
23
|
c.set("correlationId", result);
|
|
27
|
-
c.header(CorrelationMiddleware.HEADER_NAME, result);
|
|
28
24
|
|
|
29
|
-
return CorrelationStorage.run(result,
|
|
25
|
+
return CorrelationStorage.run(result, async () => {
|
|
26
|
+
await next();
|
|
27
|
+
|
|
28
|
+
c.header(CorrelationMiddleware.HEADER_NAME, result);
|
|
29
|
+
});
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -3,12 +3,12 @@ import { CorrelationId, type CorrelationIdType } from "./correlation-id.vo";
|
|
|
3
3
|
import type { IdProviderPort } from "./id-provider.port";
|
|
4
4
|
import type { HasRequestHeader } from "./request-context.port";
|
|
5
5
|
|
|
6
|
-
type
|
|
6
|
+
export type CorrelationMiddlewareDependencies = { IdProvider: IdProviderPort };
|
|
7
7
|
|
|
8
8
|
export class CorrelationMiddleware {
|
|
9
9
|
static readonly HEADER_NAME = "correlation-id";
|
|
10
10
|
|
|
11
|
-
constructor(private readonly deps:
|
|
11
|
+
constructor(private readonly deps: CorrelationMiddlewareDependencies) {}
|
|
12
12
|
|
|
13
13
|
evaluate(context: HasRequestHeader): CorrelationIdType {
|
|
14
14
|
const incoming = context.request.header(CorrelationMiddleware.HEADER_NAME);
|
|
@@ -2,11 +2,13 @@ import type { CronSchedulerPort } from "./cron-scheduler.port";
|
|
|
2
2
|
import type { CronTask } from "./cron-task.vo";
|
|
3
3
|
|
|
4
4
|
export class CronSchedulerAdapter implements CronSchedulerPort {
|
|
5
|
+
private readonly tasks: Array<Bun.CronJob> = [];
|
|
6
|
+
|
|
5
7
|
schedule(task: CronTask): void {
|
|
6
|
-
Bun.cron(task.cron, task.handler);
|
|
8
|
+
this.tasks.push(Bun.cron(task.cron, task.handler));
|
|
7
9
|
}
|
|
8
10
|
|
|
9
11
|
async verify(): Promise<boolean> {
|
|
10
|
-
return
|
|
12
|
+
return this.tasks.length > 0;
|
|
11
13
|
}
|
|
12
14
|
}
|
|
@@ -24,13 +24,6 @@ export class CronTaskHandlerWithLoggerStrategy implements CronTaskHandlerStrateg
|
|
|
24
24
|
this.deps.Logger.info({ message: `${task.label} start`, correlationId, ...this.base });
|
|
25
25
|
|
|
26
26
|
await CorrelationStorage.run(correlationId, task.handler);
|
|
27
|
-
|
|
28
|
-
this.deps.Logger.info({
|
|
29
|
-
message: `${task.label} success`,
|
|
30
|
-
correlationId,
|
|
31
|
-
metadata: { duration: duration.stop() },
|
|
32
|
-
...this.base,
|
|
33
|
-
});
|
|
34
27
|
} catch (error) {
|
|
35
28
|
this.deps.Logger.error({
|
|
36
29
|
message: `${task.label} error`,
|
|
@@ -40,8 +33,15 @@ export class CronTaskHandlerWithLoggerStrategy implements CronTaskHandlerStrateg
|
|
|
40
33
|
...this.base,
|
|
41
34
|
});
|
|
42
35
|
|
|
43
|
-
|
|
36
|
+
return;
|
|
44
37
|
}
|
|
38
|
+
|
|
39
|
+
this.deps.Logger.info({
|
|
40
|
+
message: `${task.label} success`,
|
|
41
|
+
correlationId,
|
|
42
|
+
metadata: { duration: duration.stop() },
|
|
43
|
+
...this.base,
|
|
44
|
+
});
|
|
45
45
|
},
|
|
46
46
|
};
|
|
47
47
|
}
|
|
@@ -23,8 +23,8 @@ export class CsvStringifierAdapter implements CsvStringifierPort {
|
|
|
23
23
|
return new CsvStringifierAdapter(dependency);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
async process(columns: ReadonlyArray<CsvColumnType>, data:
|
|
26
|
+
async process(columns: ReadonlyArray<CsvColumnType>, data: ReadonlyArray<CsvRowType>): Promise<string> {
|
|
27
27
|
// TODO: Potential formula injection
|
|
28
|
-
return text(this.csv.stringify(data, { header: true, columns }));
|
|
28
|
+
return text(this.csv.stringify([...data], { header: true, columns }));
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* cSpell:disable */
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import * as tools from "@bgord/tools";
|
|
4
|
+
import type { DiskSpaceCheckerPort } from "./disk-space-checker.port";
|
|
5
|
+
|
|
6
|
+
export class DiskSpaceCheckerFsAdapter implements DiskSpaceCheckerPort {
|
|
7
|
+
async get(root: tools.DirectoryPathAbsoluteType): Promise<tools.Size> {
|
|
8
|
+
const stats = await fs.statfs(root);
|
|
9
|
+
|
|
10
|
+
return tools.Size.fromBytes(stats.bavail * stats.bsize);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -26,7 +26,10 @@ export class EnvironmentLoaderProcessSafeAdapter<T extends object> implements En
|
|
|
26
26
|
StandardSchemaValidator.validate(this.config.EnvironmentSchema, this.env),
|
|
27
27
|
);
|
|
28
28
|
|
|
29
|
-
for (const key of Object.keys(parsed))
|
|
29
|
+
for (const key of Object.keys(parsed)) {
|
|
30
|
+
delete this.env[key];
|
|
31
|
+
delete process.env[key];
|
|
32
|
+
}
|
|
30
33
|
|
|
31
34
|
return Object.freeze({ ...parsed, type: this.config.type });
|
|
32
35
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
-
import type { NodeEnvironmentEnum } from "
|
|
2
|
+
import type { NodeEnvironmentEnum } from "./node-env.vo";
|
|
3
3
|
|
|
4
4
|
export type EnvironmentLoaderConfig<T extends object> = {
|
|
5
5
|
type: NodeEnvironmentEnum;
|
|
@@ -7,6 +7,8 @@ export class ETagExtractorHeaderStrategy implements ETagExtractorStrategy {
|
|
|
7
7
|
try {
|
|
8
8
|
const header = context.request.header(tools.ETag.IF_MATCH_HEADER_NAME);
|
|
9
9
|
|
|
10
|
+
if (!header?.trim()) return null;
|
|
11
|
+
|
|
10
12
|
return tools.ETag.fromHeader(header);
|
|
11
13
|
} catch {
|
|
12
14
|
return null;
|
|
@@ -13,7 +13,7 @@ export class ETagExtractorHonoMiddleware implements MiddlewareHonoPort {
|
|
|
13
13
|
this.middleware = new ETagExtractorMiddleware(config);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
handle(): MiddlewareHandler {
|
|
16
|
+
handle(): MiddlewareHandler<{ Variables: ETagVariables }> {
|
|
17
17
|
return async (c, next) => {
|
|
18
18
|
const context = new RequestContextHonoAdapter(c);
|
|
19
19
|
const etag = this.middleware.evaluate(context);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
|
-
import type {
|
|
2
|
+
import type { HasRequestHeader, HasRequestParam } from "./request-context.port";
|
|
3
3
|
|
|
4
4
|
export interface ETagExtractorStrategy {
|
|
5
|
-
detect(context:
|
|
5
|
+
detect(context: HasRequestHeader & HasRequestParam): tools.ETag | null;
|
|
6
6
|
}
|
|
@@ -50,16 +50,16 @@ export class FileInspectionAdapter implements FileInspectionPort {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
async size(path: tools.FilePathRelative | tools.FilePathAbsolute | string): Promise<tools.Size> {
|
|
53
|
-
const
|
|
53
|
+
const node = await stat(typeof path === "string" ? path : path.get());
|
|
54
54
|
|
|
55
|
-
return tools.Size.fromBytes(
|
|
55
|
+
return tools.Size.fromBytes(node.size);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
async lastModified(
|
|
59
59
|
path: tools.FilePathRelative | tools.FilePathAbsolute | string,
|
|
60
60
|
): Promise<tools.Timestamp> {
|
|
61
|
-
const
|
|
61
|
+
const node = await stat(typeof path === "string" ? path : path.get());
|
|
62
62
|
|
|
63
|
-
return tools.Timestamp.fromNumber(
|
|
63
|
+
return tools.Timestamp.fromNumber(Math.round(node.mtimeMs));
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -6,7 +6,7 @@ export class FileReaderJsonForgivingAdapter implements FileReaderJsonPort {
|
|
|
6
6
|
path: tools.FilePathRelative | tools.FilePathAbsolute | string,
|
|
7
7
|
): Promise<FileReaderJsonOutputType> {
|
|
8
8
|
try {
|
|
9
|
-
return Bun.file(typeof path === "string" ? path : path.get()).json();
|
|
9
|
+
return await Bun.file(typeof path === "string" ? path : path.get()).json();
|
|
10
10
|
} catch {
|
|
11
11
|
return {};
|
|
12
12
|
}
|
|
@@ -12,7 +12,7 @@ export class GracefulShutdown {
|
|
|
12
12
|
|
|
13
13
|
constructor(
|
|
14
14
|
private readonly deps: Dependencies,
|
|
15
|
-
private readonly config: Config = { cleanup: tools.noop
|
|
15
|
+
private readonly config: Config = { cleanup: tools.noop },
|
|
16
16
|
) {}
|
|
17
17
|
|
|
18
18
|
private async shutdown(server: ServerType, exitCode: number) {
|
|
@@ -22,7 +22,7 @@ export class GracefulShutdown {
|
|
|
22
22
|
// Stryker restore all
|
|
23
23
|
|
|
24
24
|
try {
|
|
25
|
-
server.stop();
|
|
25
|
+
await server.stop();
|
|
26
26
|
} catch (error) {
|
|
27
27
|
this.deps.Logger.error({ message: "Server stop failed", error, ...this.base });
|
|
28
28
|
}
|
|
@@ -33,7 +33,7 @@ export class GracefulShutdown {
|
|
|
33
33
|
} catch (error) {
|
|
34
34
|
this.deps.Logger.error({ message: "Cleanup hook failed", error, ...this.base });
|
|
35
35
|
} finally {
|
|
36
|
-
this.config.exit
|
|
36
|
+
(this.config.exit ?? process.exit)(exitCode);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
package/src/hash.vo.ts
CHANGED
package/src/hcaptcha.service.ts
CHANGED
|
@@ -2,16 +2,16 @@ import type { HCaptchaSecretKeyType } from "./hcaptcha-secret-key.vo";
|
|
|
2
2
|
|
|
3
3
|
export const HCaptchaServiceError = { Error: "hcaptcha.service.error" };
|
|
4
4
|
|
|
5
|
-
type HcaptchaTokenType = string
|
|
5
|
+
type HcaptchaTokenType = string;
|
|
6
6
|
|
|
7
|
-
export type HCaptchaVerificationResult = { success: boolean
|
|
7
|
+
export type HCaptchaVerificationResult = { success: boolean };
|
|
8
8
|
|
|
9
9
|
export class HCaptchaService {
|
|
10
10
|
async verify(
|
|
11
11
|
secretKey: HCaptchaSecretKeyType,
|
|
12
12
|
token: HcaptchaTokenType,
|
|
13
13
|
): Promise<HCaptchaVerificationResult> {
|
|
14
|
-
const body = new URLSearchParams({ secret: secretKey, response: token
|
|
14
|
+
const body = new URLSearchParams({ secret: secretKey, response: token });
|
|
15
15
|
|
|
16
16
|
const response = await fetch("https://hcaptcha.com/siteverify", {
|
|
17
17
|
method: "POST",
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from "hono";
|
|
2
2
|
import { CacheSourceEnum } from "./cache-resolver.strategy";
|
|
3
3
|
import { CacheResponseMiddleware } from "./cache-response.middleware";
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import {
|
|
5
|
+
type HttpLoggerConfig,
|
|
6
|
+
HttpLoggerMiddleware,
|
|
7
|
+
type HttpLoggerMiddlewareDependencies,
|
|
8
|
+
} from "./http-logger.middleware";
|
|
7
9
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
8
10
|
import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
|
|
9
11
|
|
|
10
|
-
type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
|
|
11
|
-
|
|
12
12
|
export class HttpLoggerHonoMiddleware implements MiddlewareHonoPort {
|
|
13
13
|
private readonly middleware: HttpLoggerMiddleware;
|
|
14
14
|
|
|
15
|
-
constructor(deps:
|
|
15
|
+
constructor(deps: HttpLoggerMiddlewareDependencies, config?: HttpLoggerConfig) {
|
|
16
16
|
this.middleware = new HttpLoggerMiddleware(deps, config);
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -25,7 +25,7 @@ export const UNINFORMATIVE_HEADERS = [
|
|
|
25
25
|
"priority",
|
|
26
26
|
];
|
|
27
27
|
|
|
28
|
-
type
|
|
28
|
+
export type HttpLoggerMiddlewareDependencies = { Logger: LoggerPort; Clock: ClockPort };
|
|
29
29
|
|
|
30
30
|
export type HttpLoggerConfig = { skip?: ReadonlyArray<string | URLPattern> };
|
|
31
31
|
|
|
@@ -39,7 +39,7 @@ export type HttpLoggerAfterInput = {
|
|
|
39
39
|
|
|
40
40
|
export class HttpLoggerMiddleware {
|
|
41
41
|
constructor(
|
|
42
|
-
private readonly deps:
|
|
42
|
+
private readonly deps: HttpLoggerMiddlewareDependencies,
|
|
43
43
|
private readonly config?: HttpLoggerConfig,
|
|
44
44
|
) {}
|
|
45
45
|
|
|
@@ -3,6 +3,6 @@ import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
|
|
|
3
3
|
|
|
4
4
|
export class ImageBlurNoopAdapter implements ImageBlurPort {
|
|
5
5
|
async blur(recipe: ImageBlurStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute> {
|
|
6
|
-
return recipe.
|
|
6
|
+
return recipe.output;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
3
|
import type { FileWriterPort } from "./file-writer.port";
|
|
4
|
-
import type { ImageSupportedType } from "./image.types";
|
|
5
4
|
import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
|
|
6
5
|
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
7
6
|
|
|
@@ -15,17 +14,14 @@ export class ImageBlurAdapter implements ImageBlurPort {
|
|
|
15
14
|
constructor(private readonly deps: Dependencies) {}
|
|
16
15
|
|
|
17
16
|
async blur(recipe: ImageBlurStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute> {
|
|
18
|
-
const final = recipe.
|
|
17
|
+
const final = recipe.output;
|
|
19
18
|
|
|
20
19
|
const filename = final.getFilename();
|
|
21
20
|
const temporary = final.withFilename(
|
|
22
21
|
filename.withSuffix(`-blurred-${this.deps.NonceProvider.generate()}`),
|
|
23
22
|
);
|
|
24
23
|
|
|
25
|
-
const
|
|
26
|
-
const format = (extension === "jpg" ? "jpeg" : extension) as ImageSupportedType;
|
|
27
|
-
|
|
28
|
-
const blurred = await Bun.file(recipe.input.get()).image()[format]().placeholder();
|
|
24
|
+
const blurred = await Bun.file(recipe.input.get()).image().placeholder();
|
|
29
25
|
const bytes = Buffer.from(blurred.substring(blurred.indexOf(",") + 1), "base64");
|
|
30
26
|
|
|
31
27
|
await this.deps.FileWriter.write(temporary.get(), bytes);
|
package/src/image-blur.port.ts
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
|
|
3
|
-
type
|
|
4
|
-
strategy: "output_path";
|
|
3
|
+
export type ImageBlurStrategy = {
|
|
5
4
|
input: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
6
5
|
output: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
7
6
|
};
|
|
8
|
-
type ImageBlurInPlaceStrategy = {
|
|
9
|
-
strategy: "in_place";
|
|
10
|
-
input: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
11
|
-
};
|
|
12
|
-
export type ImageBlurStrategy = ImageBlurOutputPathStrategy | ImageBlurInPlaceStrategy;
|
|
13
7
|
|
|
14
8
|
export interface ImageBlurPort {
|
|
15
9
|
blur(recipe: ImageBlurStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
@@ -2,6 +2,7 @@ import type { MiddlewareHandler } from "hono";
|
|
|
2
2
|
import { InFlightRequestsMiddleware } from "./in-flight-requests.middleware";
|
|
3
3
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
4
4
|
|
|
5
|
+
// Counts handler execution, not connection lifetime - a streamed body drains after next() resolves
|
|
5
6
|
export class InFlightRequestsHonoMiddleware implements MiddlewareHonoPort {
|
|
6
7
|
private readonly middleware = new InFlightRequestsMiddleware();
|
|
7
8
|
|
|
@@ -4,11 +4,11 @@ export class InFlightRequestsTracker {
|
|
|
4
4
|
private static count: tools.IntegerType = tools.Int.of(0);
|
|
5
5
|
|
|
6
6
|
static increment(): void {
|
|
7
|
-
InFlightRequestsTracker.count
|
|
7
|
+
InFlightRequestsTracker.count = tools.Int.of(InFlightRequestsTracker.count + 1);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
static decrement(): void {
|
|
11
|
-
InFlightRequestsTracker.count
|
|
11
|
+
InFlightRequestsTracker.count = tools.Int.of(Math.max(0, InFlightRequestsTracker.count - 1));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
static get(): tools.IntegerType {
|
package/src/index.ts
CHANGED
|
@@ -74,7 +74,6 @@ export * from "./correlation-storage.service";
|
|
|
74
74
|
export * from "./cron-expression.vo";
|
|
75
75
|
export * from "./cron-scheduler.adapter";
|
|
76
76
|
export * from "./cron-scheduler.port";
|
|
77
|
-
export * from "./cron-scheduler-croner.adapter";
|
|
78
77
|
export * from "./cron-scheduler-noop.adapter";
|
|
79
78
|
export * from "./cron-scheduler-with-logger.adapter";
|
|
80
79
|
export * from "./cron-task.vo";
|
|
@@ -94,8 +93,8 @@ export * from "./directory-ensurer.adapter";
|
|
|
94
93
|
export * from "./directory-ensurer.port";
|
|
95
94
|
export * from "./directory-ensurer-noop.adapter";
|
|
96
95
|
export * from "./disk-space-checker.port";
|
|
96
|
+
export * from "./disk-space-checker-fs.adapter";
|
|
97
97
|
export * from "./disk-space-checker-noop.adapter";
|
|
98
|
-
export * from "./disk-space-checker-shell.adapter";
|
|
99
98
|
export * from "./dynamic-import.service";
|
|
100
99
|
export * from "./encryption.port";
|
|
101
100
|
export * from "./encryption-aes-gcm.adapter";
|
|
@@ -160,7 +159,6 @@ export * from "./file-reader-raw.adapter";
|
|
|
160
159
|
export * from "./file-reader-raw.port";
|
|
161
160
|
export * from "./file-reader-raw-forgiving.adapter";
|
|
162
161
|
export * from "./file-reader-raw-noop.adapter";
|
|
163
|
-
export * from "./file-reader-raw-with-cache.adapter";
|
|
164
162
|
export * from "./file-reader-text.adapter";
|
|
165
163
|
export * from "./file-reader-text.port";
|
|
166
164
|
export * from "./file-reader-text-forgiving.adapter";
|
|
@@ -384,6 +382,7 @@ export * from "./reactive-config-file-json.adapter";
|
|
|
384
382
|
export * from "./reactive-config-noop.adapter";
|
|
385
383
|
export * from "./reactive-config-with-cache.adapter";
|
|
386
384
|
export * from "./reactive-config-with-fallback.adapter";
|
|
385
|
+
export * from "./reactive-config-with-logger.adapter";
|
|
387
386
|
export * from "./readiness.handler";
|
|
388
387
|
export * from "./readiness-hono.handler";
|
|
389
388
|
export * from "./recaptcha-secret-key.vo";
|
|
@@ -396,6 +395,7 @@ export * from "./redactor-mask.strategy";
|
|
|
396
395
|
export * from "./redactor-metadata-compact-array.strategy";
|
|
397
396
|
export * from "./redactor-metadata-compact-object.strategy";
|
|
398
397
|
export * from "./redactor-noop.strategy";
|
|
398
|
+
export * from "./redactor-url-query.strategy";
|
|
399
399
|
export * from "./remote-file-storage.port";
|
|
400
400
|
export * from "./remote-file-storage-disk.adapter";
|
|
401
401
|
export * from "./remote-file-storage-noop.adapter";
|
|
@@ -518,6 +518,7 @@ export * from "./subject-segment-env.strategy";
|
|
|
518
518
|
export * from "./subject-segment-fixed.strategy";
|
|
519
519
|
export * from "./subject-segment-header.strategy";
|
|
520
520
|
export * from "./subject-segment-ip.strategy";
|
|
521
|
+
export * from "./subject-segment-method.strategy";
|
|
521
522
|
export * from "./subject-segment-param.strategy";
|
|
522
523
|
export * from "./subject-segment-path.strategy";
|
|
523
524
|
export * from "./subject-segment-query.strategy";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ClockPort } from "./clock.port";
|
|
2
|
+
import { CorrelationStorage } from "./correlation-storage.service";
|
|
2
3
|
import type { LoggerPort } from "./logger.port";
|
|
3
4
|
import { Stopwatch } from "./stopwatch.service";
|
|
4
5
|
|
|
@@ -14,9 +15,10 @@ export class Instrumentation {
|
|
|
14
15
|
|
|
15
16
|
this.deps.Logger.info({
|
|
16
17
|
message: `${label} measurement`,
|
|
18
|
+
correlationId: CorrelationStorage.get(),
|
|
17
19
|
component: "infra",
|
|
18
20
|
operation: "instrumentation_measure",
|
|
19
|
-
metadata: stopwatch.stop(),
|
|
21
|
+
metadata: { duration: stopwatch.stop() },
|
|
20
22
|
});
|
|
21
23
|
|
|
22
24
|
return result;
|
|
@@ -29,9 +31,10 @@ export class Instrumentation {
|
|
|
29
31
|
|
|
30
32
|
this.deps.Logger.info({
|
|
31
33
|
message: `${label} measurement`,
|
|
34
|
+
correlationId: CorrelationStorage.get(),
|
|
32
35
|
component: "infra",
|
|
33
36
|
operation: "instrumentation_measure",
|
|
34
|
-
metadata: stopwatch.stop(),
|
|
37
|
+
metadata: { duration: stopwatch.stop() },
|
|
35
38
|
});
|
|
36
39
|
|
|
37
40
|
return result;
|
|
@@ -13,7 +13,7 @@ export class JobQueueWithLoggerAdapter<Job extends GenericJob> implements JobQue
|
|
|
13
13
|
|
|
14
14
|
constructor(private readonly deps: Dependencies<Job>) {}
|
|
15
15
|
|
|
16
|
-
async enqueue<EnqueuedJob extends Job>(job: EnqueuedJob): Promise<EnqueuedJob> {
|
|
16
|
+
async enqueue<EnqueuedJob extends Job>(job: EnqueuedJob, delay?: tools.Duration): Promise<EnqueuedJob> {
|
|
17
17
|
this.deps.Logger.info({
|
|
18
18
|
message: `${job.name} enqueued`,
|
|
19
19
|
metadata: job,
|
|
@@ -21,7 +21,7 @@ export class JobQueueWithLoggerAdapter<Job extends GenericJob> implements JobQue
|
|
|
21
21
|
...this.base,
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
return this.deps.inner.enqueue(job);
|
|
24
|
+
return this.deps.inner.enqueue(job, delay);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
async claim(limit: tools.IntegerPositiveType): Promise<ReadonlyArray<Job>> {
|