@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
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
2
|
export class WeakETagExtractorHeaderStrategy {
|
|
3
|
+
static PREFIX = "W/";
|
|
3
4
|
detect(context) {
|
|
4
5
|
try {
|
|
5
6
|
const header = context.request.header(tools.WeakETag.IF_MATCH_HEADER_NAME);
|
|
7
|
+
if (!header?.replace(WeakETagExtractorHeaderStrategy.PREFIX, "").trim())
|
|
8
|
+
return null;
|
|
6
9
|
return tools.WeakETag.fromHeader(header);
|
|
7
10
|
}
|
|
8
11
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weak-etag-extractor-header.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-header.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,+BAA+B;
|
|
1
|
+
{"version":3,"file":"weak-etag-extractor-header.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-header.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,+BAA+B;IAClC,MAAM,CAAU,MAAM,GAAG,IAAI,CAAC;IAEtC,MAAM,CAAC,OAAyB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAE3E,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,+BAA+B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;YAErF,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -8,6 +8,8 @@ export type WeakETagVariables = {
|
|
|
8
8
|
export declare class WeakETagExtractorHonoMiddleware implements MiddlewareHonoPort {
|
|
9
9
|
private readonly middleware;
|
|
10
10
|
constructor(config: WeakETagExtractorMiddlewareConfig);
|
|
11
|
-
handle(): MiddlewareHandler
|
|
11
|
+
handle(): MiddlewareHandler<{
|
|
12
|
+
Variables: WeakETagVariables;
|
|
13
|
+
}>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=weak-etag-extractor-hono.middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weak-etag-extractor-hono.middleware.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpE,qBAAa,+BAAgC,YAAW,kBAAkB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEzD,YAAY,MAAM,EAAE,iCAAiC,EAEpD;IAED,MAAM,IAAI,iBAAiB,
|
|
1
|
+
{"version":3,"file":"weak-etag-extractor-hono.middleware.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpE,qBAAa,+BAAgC,YAAW,kBAAkB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEzD,YAAY,MAAM,EAAE,iCAAiC,EAEpD;IAED,MAAM,IAAI,iBAAiB,CAAC;QAAE,SAAS,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAS5D;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weak-etag-extractor-param.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,qBAAa,8BAA+B,YAAW,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,MAAM,EAAI;IAE7C,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"weak-etag-extractor-param.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,qBAAa,8BAA+B,YAAW,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,MAAM,EAAI;IAE7C,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAUtD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weak-etag-extractor-param.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,8BAA8B;IACZ,IAAI;IAAjC,YAA6B,IAAY;oBAAZ,IAAI;IAAW,CAAC;IAE7C,MAAM,CAAC,OAAwB;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/C,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"weak-etag-extractor-param.strategy.js","sourceRoot":"","sources":["../src/weak-etag-extractor-param.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,8BAA8B;IACZ,IAAI;IAAjC,YAA6B,IAAY;oBAAZ,IAAI;IAAW,CAAC;IAE7C,MAAM,CAAC,OAAwB;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;YAEhC,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -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
|
export interface WeakETagExtractorStrategy {
|
|
4
|
-
detect(context:
|
|
4
|
+
detect(context: HasRequestHeader & HasRequestParam): tools.WeakETag | null;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=weak-etag-extractor.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weak-etag-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"weak-etag-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/weak-etag-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC5E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HasRequestHeader } from "./request-context.port";
|
|
2
2
|
import type { WebhookSignatureType } from "./webhook-signature.vo";
|
|
3
3
|
export interface WebhookSignatureExtractorStrategy {
|
|
4
|
-
extract(context:
|
|
4
|
+
extract(context: HasRequestHeader): WebhookSignatureType | null;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=webhook-signature-extractor.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-signature-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/webhook-signature-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"webhook-signature-extractor.strategy.d.ts","sourceRoot":"","sources":["../src/webhook-signature-extractor.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,IAAI,CAAC;CACjE"}
|
|
@@ -2,9 +2,6 @@ import * as tools from "@bgord/tools";
|
|
|
2
2
|
import type { LoggerEntry } from "./logger.port";
|
|
3
3
|
import type { WoodchopperDispatcher } from "./woodchopper-dispatcher.strategy";
|
|
4
4
|
import type { WoodchopperSinkStrategy } from "./woodchopper-sink.strategy";
|
|
5
|
-
export declare const WoodchopperDispatcherAsyncError: {
|
|
6
|
-
ClosedWithBufferedEntries: (count: tools.IntegerPositiveType) => string;
|
|
7
|
-
};
|
|
8
5
|
export declare class WoodchopperDispatcherAsync implements WoodchopperDispatcher {
|
|
9
6
|
private readonly sink;
|
|
10
7
|
private readonly capacity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woodchopper-dispatcher-async.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAO3E,
|
|
1
|
+
{"version":3,"file":"woodchopper-dispatcher-async.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAO3E,qBAAa,0BAA2B,YAAW,qBAAqB;IASpE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2C;IAExD,OAAO,CAAC,IAAI,CAAC,CAAa;IAE1B,YACmB,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,GAAE,KAAK,CAAC,mBAA6C,EAG/E;IAED,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CASpC;IAED,KAAK,IAAI,IAAI,CAmBZ;YAEa,GAAG;IAkBjB,OAAO,CAAC,YAAY;YAKN,YAAY;CAK3B"}
|
|
@@ -4,9 +4,6 @@ var WoodchopperDispatcherAsyncState;
|
|
|
4
4
|
WoodchopperDispatcherAsyncState["running"] = "running";
|
|
5
5
|
WoodchopperDispatcherAsyncState["closed"] = "closed";
|
|
6
6
|
})(WoodchopperDispatcherAsyncState || (WoodchopperDispatcherAsyncState = {}));
|
|
7
|
-
export const WoodchopperDispatcherAsyncError = {
|
|
8
|
-
ClosedWithBufferedEntries: (count) => `woodchopper.dispatcher.async.closed.with.buffered.entries.${count}`,
|
|
9
|
-
};
|
|
10
7
|
export class WoodchopperDispatcherAsync {
|
|
11
8
|
sink;
|
|
12
9
|
capacity;
|
|
@@ -34,9 +31,13 @@ export class WoodchopperDispatcherAsync {
|
|
|
34
31
|
return;
|
|
35
32
|
// Stryker restore all
|
|
36
33
|
this.state = WoodchopperDispatcherAsyncState.closed;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
for (const entry of this.buffer) {
|
|
35
|
+
try {
|
|
36
|
+
this.sink.write(entry);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
this.onError?.(error);
|
|
40
|
+
}
|
|
40
41
|
}
|
|
41
42
|
this.buffer.length = 0;
|
|
42
43
|
// wake so the loop can exit immediately
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,IAAK,+BAGJ;AAHD,WAAK,+BAA+B;IAClC,sDAAmB,CAAA;IACnB,oDAAiB,CAAA;AACnB,CAAC,EAHI,+BAA+B,KAA/B,+BAA+B,QAGnC;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,IAAK,+BAGJ;AAHD,WAAK,+BAA+B;IAClC,sDAAmB,CAAA;IACnB,oDAAiB,CAAA;AACnB,CAAC,EAHI,+BAA+B,KAA/B,+BAA+B,QAGnC;AAED,MAAM,OAAO,0BAA0B;IASlB,IAAI;IACJ,QAAQ;IAT3B,OAAO,CAA4B;IAElB,MAAM,GAAuB,EAAE,CAAC;IACzC,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC;IAEhD,IAAI,CAAc;IAE1B,YACmB,IAA6B,EAC7B,QAAQ,GAA8B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAD7D,IAAI;wBACJ,QAAQ;QAEzB,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO;QAClE,sBAAsB;QAEtB,IAAI,CAAC,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvB,wCAAwC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAE1B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAoB,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bgord/bun",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.21.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bartosz Gordon",
|
|
@@ -20,37 +20,35 @@
|
|
|
20
20
|
"build": "bash scripts/package-build.sh"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@biomejs/biome": "2.5.
|
|
23
|
+
"@biomejs/biome": "2.5.7",
|
|
24
24
|
"@standard-schema/spec": "1.1.0",
|
|
25
25
|
"@stryker-mutator/core": "9.6.1",
|
|
26
26
|
"@stryker-mutator/typescript-checker": "9.6.1",
|
|
27
27
|
"@types/bun": "1.3.14",
|
|
28
28
|
"@types/nodemailer": "8.0.1",
|
|
29
29
|
"@types/yazl": "3.3.1",
|
|
30
|
-
"better-auth": "1.6.
|
|
31
|
-
"croner": "10.0.1",
|
|
30
|
+
"better-auth": "1.6.26",
|
|
32
31
|
"cspell": "10.0.1",
|
|
33
|
-
"csv": "6.6.
|
|
34
|
-
"fallow": "3.
|
|
32
|
+
"csv": "6.6.3",
|
|
33
|
+
"fallow": "3.14.0",
|
|
35
34
|
"lefthook": "2.1.10",
|
|
36
35
|
"lockfile-lint": "5.0.0",
|
|
37
|
-
"nodemailer": "9.0.
|
|
38
|
-
"publint": "0.3.
|
|
36
|
+
"nodemailer": "9.0.5",
|
|
37
|
+
"publint": "0.3.23",
|
|
39
38
|
"shellcheck": "4.1.0",
|
|
40
39
|
"typescript": "7.0.2",
|
|
41
40
|
"yazl": "3.3.1"
|
|
42
41
|
},
|
|
43
42
|
"dependencies": {
|
|
44
|
-
"@bgord/tools": "1.6.
|
|
43
|
+
"@bgord/tools": "1.6.3",
|
|
45
44
|
"emittery": "2.0.0",
|
|
46
|
-
"hono": "4.
|
|
45
|
+
"hono": "4.13.1",
|
|
47
46
|
"node-cache": "5.1.2"
|
|
48
47
|
},
|
|
49
48
|
"peerDependencies": {
|
|
50
|
-
"better-auth": "1.6.
|
|
51
|
-
"csv": "6.6.
|
|
52
|
-
"
|
|
53
|
-
"nodemailer": "9.0.3",
|
|
49
|
+
"better-auth": "1.6.26",
|
|
50
|
+
"csv": "6.6.3",
|
|
51
|
+
"nodemailer": "9.0.5",
|
|
54
52
|
"yazl": "3.3.1"
|
|
55
53
|
},
|
|
56
54
|
"peerDependenciesMeta": {
|
|
@@ -60,9 +58,6 @@
|
|
|
60
58
|
"csv": {
|
|
61
59
|
"optional": true
|
|
62
60
|
},
|
|
63
|
-
"croner": {
|
|
64
|
-
"optional": true
|
|
65
|
-
},
|
|
66
61
|
"nodemailer": {
|
|
67
62
|
"optional": true
|
|
68
63
|
},
|
package/readme.md
CHANGED
|
@@ -97,7 +97,6 @@ src/
|
|
|
97
97
|
├── correlation-storage.service.ts
|
|
98
98
|
├── correlation.middleware.ts
|
|
99
99
|
├── cron-expression.vo.ts
|
|
100
|
-
├── cron-scheduler-croner.adapter.ts
|
|
101
100
|
├── cron-scheduler-noop.adapter.ts
|
|
102
101
|
├── cron-scheduler-with-logger.adapter.ts
|
|
103
102
|
├── cron-scheduler.adapter.ts
|
|
@@ -119,8 +118,8 @@ src/
|
|
|
119
118
|
├── directory-ensurer-noop.adapter.ts
|
|
120
119
|
├── directory-ensurer.adapter.ts
|
|
121
120
|
├── directory-ensurer.port.ts
|
|
121
|
+
├── disk-space-checker-fs.adapter.ts
|
|
122
122
|
├── disk-space-checker-noop.adapter.ts
|
|
123
|
-
├── disk-space-checker-shell.adapter.ts
|
|
124
123
|
├── disk-space-checker.port.ts
|
|
125
124
|
├── dynamic-import.service.ts
|
|
126
125
|
├── encryption-aes-gcm.adapter.ts
|
|
@@ -184,7 +183,6 @@ src/
|
|
|
184
183
|
├── file-reader-json.port.ts
|
|
185
184
|
├── file-reader-raw-forgiving.adapter.ts
|
|
186
185
|
├── file-reader-raw-noop.adapter.ts
|
|
187
|
-
├── file-reader-raw-with-cache.adapter.ts
|
|
188
186
|
├── file-reader-raw.adapter.ts
|
|
189
187
|
├── file-reader-raw.port.ts
|
|
190
188
|
├── file-reader-text-forgiving.adapter.ts
|
|
@@ -457,6 +455,7 @@ src/
|
|
|
457
455
|
├── reactive-config-noop.adapter.ts
|
|
458
456
|
├── reactive-config-with-cache.adapter.ts
|
|
459
457
|
├── reactive-config-with-fallback.adapter.ts
|
|
458
|
+
├── reactive-config-with-logger.adapter.ts
|
|
460
459
|
├── reactive-config.port.ts
|
|
461
460
|
├── readiness-hono.handler.ts
|
|
462
461
|
├── readiness.handler.ts
|
|
@@ -469,6 +468,7 @@ src/
|
|
|
469
468
|
├── redactor-metadata-compact-array.strategy.ts
|
|
470
469
|
├── redactor-metadata-compact-object.strategy.ts
|
|
471
470
|
├── redactor-noop.strategy.ts
|
|
471
|
+
├── redactor-url-query.strategy.ts
|
|
472
472
|
├── redactor.strategy.ts
|
|
473
473
|
├── remote-file-storage-disk.adapter.ts
|
|
474
474
|
├── remote-file-storage-noop.adapter.ts
|
|
@@ -593,6 +593,7 @@ src/
|
|
|
593
593
|
├── subject-segment-fixed.strategy.ts
|
|
594
594
|
├── subject-segment-header.strategy.ts
|
|
595
595
|
├── subject-segment-ip.strategy.ts
|
|
596
|
+
├── subject-segment-method.strategy.ts
|
|
596
597
|
├── subject-segment-param.strategy.ts
|
|
597
598
|
├── subject-segment-path.strategy.ts
|
|
598
599
|
├── subject-segment-query.strategy.ts
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
|
|
2
2
|
import type { AbVariant } from "./ab-variant.vo";
|
|
3
|
-
import type { AbVariants } from "./ab-variants.vo";
|
|
4
3
|
import type { RequestContext } from "./request-context.port";
|
|
5
4
|
|
|
5
|
+
export const AbAssignmentCompositeError = { NoStrategies: "ab.assignment.composite.strategies.min" };
|
|
6
|
+
|
|
6
7
|
export class AbAssignmentCompositeStrategy implements AbAssignmentStrategy {
|
|
7
|
-
constructor(private readonly strategies: ReadonlyArray<AbAssignmentStrategy>) {
|
|
8
|
+
constructor(private readonly strategies: ReadonlyArray<AbAssignmentStrategy>) {
|
|
9
|
+
if (this.strategies.length === 0) throw new Error(AbAssignmentCompositeError.NoStrategies);
|
|
10
|
+
}
|
|
8
11
|
|
|
9
|
-
async assign(context: RequestContext
|
|
12
|
+
async assign(context: RequestContext): Promise<AbVariant | undefined> {
|
|
10
13
|
for (const strategy of this.strategies) {
|
|
11
|
-
const variant = await strategy.assign(context
|
|
14
|
+
const variant = await strategy.assign(context);
|
|
12
15
|
|
|
13
16
|
if (variant) return variant;
|
|
14
17
|
}
|
|
@@ -4,11 +4,14 @@ import type { AbVariants } from "./ab-variants.vo";
|
|
|
4
4
|
import type { HasRequestCookie } from "./request-context.port";
|
|
5
5
|
|
|
6
6
|
export class AbAssignmentCookieStrategy implements AbAssignmentStrategy {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(
|
|
8
|
+
private readonly variants: AbVariants,
|
|
9
|
+
private readonly name: string,
|
|
10
|
+
) {}
|
|
8
11
|
|
|
9
|
-
async assign(context: HasRequestCookie
|
|
12
|
+
async assign(context: HasRequestCookie): Promise<AbVariant | undefined> {
|
|
10
13
|
const override = context.request.cookie(this.name);
|
|
11
14
|
|
|
12
|
-
return variants.variants.find((v) => v.config.name === override);
|
|
15
|
+
return this.variants.variants.find((v) => v.config.name === override);
|
|
13
16
|
}
|
|
14
17
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
|
|
2
2
|
import type { AbVariant } from "./ab-variant.vo";
|
|
3
|
-
import type { AbVariants } from "./ab-variants.vo";
|
|
4
3
|
import type { RequestContext } from "./request-context.port";
|
|
5
4
|
|
|
6
5
|
export class AbAssignmentFixedStrategy implements AbAssignmentStrategy {
|
|
7
6
|
constructor(private readonly variant: AbVariant) {}
|
|
8
7
|
|
|
9
|
-
async assign(_context: RequestContext
|
|
8
|
+
async assign(_context: RequestContext): Promise<AbVariant> {
|
|
10
9
|
return this.variant;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
@@ -15,7 +15,7 @@ export class AbAssignmentHashStrategy implements AbAssignmentStrategy {
|
|
|
15
15
|
this.selector = new AbVariantSelector(variants);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
async assign(context: RequestContext
|
|
18
|
+
async assign(context: RequestContext): Promise<AbVariant> {
|
|
19
19
|
const { hex } = await this.subject.resolve(context);
|
|
20
20
|
|
|
21
21
|
return this.selector.select(hex);
|
|
@@ -4,11 +4,14 @@ import type { AbVariants } from "./ab-variants.vo";
|
|
|
4
4
|
import type { HasRequestHeader } from "./request-context.port";
|
|
5
5
|
|
|
6
6
|
export class AbAssignmentHeaderStrategy implements AbAssignmentStrategy {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(
|
|
8
|
+
private readonly variants: AbVariants,
|
|
9
|
+
private readonly name: string,
|
|
10
|
+
) {}
|
|
8
11
|
|
|
9
|
-
async assign(context: HasRequestHeader
|
|
12
|
+
async assign(context: HasRequestHeader): Promise<AbVariant | undefined> {
|
|
10
13
|
const override = context.request.header(this.name);
|
|
11
14
|
|
|
12
|
-
return variants.variants.find((v) => v.config.name === override);
|
|
15
|
+
return this.variants.variants.find((v) => v.config.name === override);
|
|
13
16
|
}
|
|
14
17
|
}
|
|
@@ -4,11 +4,14 @@ import type { AbVariants } from "./ab-variants.vo";
|
|
|
4
4
|
import type { HasRequestQuery } from "./request-context.port";
|
|
5
5
|
|
|
6
6
|
export class AbAssignmentQueryStrategy implements AbAssignmentStrategy {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(
|
|
8
|
+
private readonly variants: AbVariants,
|
|
9
|
+
private readonly parameter: string,
|
|
10
|
+
) {}
|
|
8
11
|
|
|
9
|
-
async assign(context: HasRequestQuery
|
|
12
|
+
async assign(context: HasRequestQuery): Promise<AbVariant | undefined> {
|
|
10
13
|
const override = context.request.query()[this.parameter];
|
|
11
14
|
|
|
12
|
-
return variants.variants.find((v) => v.config.name === override);
|
|
15
|
+
return this.variants.variants.find((v) => v.config.name === override);
|
|
13
16
|
}
|
|
14
17
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { AbVariant } from "./ab-variant.vo";
|
|
2
|
-
import type { AbVariants } from "./ab-variants.vo";
|
|
3
2
|
import type { RequestContext } from "./request-context.port";
|
|
4
3
|
|
|
5
4
|
export interface AbAssignmentStrategy {
|
|
6
|
-
assign(context: RequestContext
|
|
5
|
+
assign(context: RequestContext): Promise<AbVariant | undefined>;
|
|
7
6
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from "hono";
|
|
2
|
+
import type { AbVariables } from "./ab-hono.middleware";
|
|
2
3
|
import type { AbVariant } from "./ab-variant.vo";
|
|
3
4
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
4
5
|
|
|
5
6
|
export class AbHonoNoopMiddleware implements MiddlewareHonoPort {
|
|
6
7
|
constructor(private readonly variant: AbVariant) {}
|
|
7
8
|
|
|
8
|
-
handle(): MiddlewareHandler {
|
|
9
|
+
handle(): MiddlewareHandler<{ Variables: AbVariables }> {
|
|
9
10
|
return async (c, next) => {
|
|
10
11
|
c.set("abVariant", this.variant);
|
|
11
12
|
|
|
@@ -2,7 +2,6 @@ import type { MiddlewareHandler } from "hono";
|
|
|
2
2
|
import { AbMiddleware } from "./ab.middleware";
|
|
3
3
|
import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
|
|
4
4
|
import type { AbVariant } from "./ab-variant.vo";
|
|
5
|
-
import type { AbVariants } from "./ab-variants.vo";
|
|
6
5
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
7
6
|
import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
|
|
8
7
|
|
|
@@ -11,16 +10,18 @@ export type AbVariables = { abVariant: AbVariant | undefined };
|
|
|
11
10
|
export class AbHonoMiddleware implements MiddlewareHonoPort {
|
|
12
11
|
private readonly middleware: AbMiddleware;
|
|
13
12
|
|
|
14
|
-
constructor(
|
|
15
|
-
this.middleware = new AbMiddleware(
|
|
13
|
+
constructor(strategy: AbAssignmentStrategy) {
|
|
14
|
+
this.middleware = new AbMiddleware(strategy);
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
handle(): MiddlewareHandler {
|
|
17
|
+
handle(): MiddlewareHandler<{ Variables: AbVariables }> {
|
|
19
18
|
return async (c, next) => {
|
|
20
19
|
const context = new RequestContextHonoAdapter(c);
|
|
21
|
-
const variant = await this.middleware.evaluate(context);
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
try {
|
|
22
|
+
const variant = await this.middleware.evaluate(context);
|
|
23
|
+
c.set("abVariant", variant);
|
|
24
|
+
} catch {}
|
|
24
25
|
|
|
25
26
|
return next();
|
|
26
27
|
};
|
package/src/ab.middleware.ts
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import type { AbAssignmentStrategy } from "./ab-assignment.strategy";
|
|
2
2
|
import type { AbVariant } from "./ab-variant.vo";
|
|
3
|
-
import type { AbVariants } from "./ab-variants.vo";
|
|
4
3
|
import type { RequestContext } from "./request-context.port";
|
|
5
4
|
|
|
6
5
|
export class AbMiddleware {
|
|
7
|
-
constructor(
|
|
8
|
-
private readonly variants: AbVariants,
|
|
9
|
-
private readonly strategy: AbAssignmentStrategy,
|
|
10
|
-
) {}
|
|
6
|
+
constructor(private readonly strategy: AbAssignmentStrategy) {}
|
|
11
7
|
|
|
12
8
|
async evaluate(context: RequestContext): Promise<AbVariant | undefined> {
|
|
13
|
-
return this.strategy.assign(context
|
|
9
|
+
return this.strategy.assign(context);
|
|
14
10
|
}
|
|
15
11
|
}
|
|
@@ -4,6 +4,7 @@ import type { AlertMessage } from "./alert-message.vo";
|
|
|
4
4
|
export const AlertChannelCompositeError = {
|
|
5
5
|
Min: "alert.channel.composite.channels.min",
|
|
6
6
|
Max: "alert.channel.composite.channels.max",
|
|
7
|
+
AllFailed: "alert.channel.composite.all.failed",
|
|
7
8
|
};
|
|
8
9
|
|
|
9
10
|
export class AlertChannelCompositeAdapter implements AlertChannelPort {
|
|
@@ -13,7 +14,13 @@ export class AlertChannelCompositeAdapter implements AlertChannelPort {
|
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
async send(alert: AlertMessage): Promise<void> {
|
|
16
|
-
await Promise.allSettled(this.channels.map((channel) => channel.send(alert)));
|
|
17
|
+
const results = await Promise.allSettled(this.channels.map((channel) => channel.send(alert)));
|
|
18
|
+
|
|
19
|
+
if (results.some((result) => result.status === "fulfilled")) return;
|
|
20
|
+
|
|
21
|
+
const reasons = results.map((result) => (result as PromiseRejectedResult).reason);
|
|
22
|
+
|
|
23
|
+
throw new AggregateError(reasons, AlertChannelCompositeError.AllFailed);
|
|
17
24
|
}
|
|
18
25
|
|
|
19
26
|
async verify(): Promise<boolean> {
|
|
@@ -23,7 +23,7 @@ export class AlertChannelWithLoggerAdapter implements AlertChannelPort {
|
|
|
23
23
|
this.deps.Logger.info({
|
|
24
24
|
message: "Alert channel attempt",
|
|
25
25
|
correlationId: CorrelationStorage.get(),
|
|
26
|
-
metadata: alert.toJSON(),
|
|
26
|
+
metadata: { alert: alert.toJSON() },
|
|
27
27
|
...this.base,
|
|
28
28
|
});
|
|
29
29
|
|
|
@@ -17,12 +17,13 @@ export class AntivirusClamavAdapter implements AntivirusPort {
|
|
|
17
17
|
if (!antivirus.stdin) throw new Error(AntivirusPortError.ScanFailed);
|
|
18
18
|
antivirus.stdin.write(bytes);
|
|
19
19
|
await antivirus.stdin.end();
|
|
20
|
+
|
|
21
|
+
const stdoutText = new Response(antivirus.stdout).text();
|
|
22
|
+
const stderrText = new Response(antivirus.stderr).text();
|
|
23
|
+
|
|
20
24
|
await antivirus.exited;
|
|
21
25
|
|
|
22
|
-
const [stdout, stderr] = await Promise.all([
|
|
23
|
-
new Response(antivirus.stdout).text(),
|
|
24
|
-
new Response(antivirus.stderr).text(),
|
|
25
|
-
]);
|
|
26
|
+
const [stdout, stderr] = await Promise.all([stdoutText, stderrText]);
|
|
26
27
|
|
|
27
28
|
if (antivirus.exitCode === 0) return { clean: true };
|
|
28
29
|
|
|
@@ -31,7 +31,7 @@ export class AntivirusWithLoggerAdapter implements AntivirusPort {
|
|
|
31
31
|
this.deps.Logger.info({
|
|
32
32
|
message: "Antivirus scan success",
|
|
33
33
|
correlationId: CorrelationStorage.get(),
|
|
34
|
-
metadata: {
|
|
34
|
+
metadata: { ...result, duration: duration.stop() },
|
|
35
35
|
...this.base,
|
|
36
36
|
});
|
|
37
37
|
|
|
@@ -41,7 +41,7 @@ export class AntivirusWithLoggerAdapter implements AntivirusPort {
|
|
|
41
41
|
message: "Antivirus scan error",
|
|
42
42
|
correlationId: CorrelationStorage.get(),
|
|
43
43
|
error,
|
|
44
|
-
metadata: duration.stop(),
|
|
44
|
+
metadata: { duration: duration.stop() },
|
|
45
45
|
...this.base,
|
|
46
46
|
});
|
|
47
47
|
|
|
@@ -1,31 +1,23 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from "hono";
|
|
2
|
-
import { ApiVersionMiddleware } from "./api-version.middleware";
|
|
3
|
-
import type { BuildInfoType } from "./build-info.vo";
|
|
4
|
-
import type { CacheResolverStrategy } from "./cache-resolver.strategy";
|
|
5
|
-
import type { HashContentStrategy } from "./hash-content.strategy";
|
|
2
|
+
import { ApiVersionMiddleware, type ApiVersionMiddlewareDependencies } from "./api-version.middleware";
|
|
6
3
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
7
|
-
import type { ReactiveConfigPort } from "./reactive-config.port";
|
|
8
|
-
|
|
9
|
-
type Dependencies = {
|
|
10
|
-
CacheResolver: CacheResolverStrategy;
|
|
11
|
-
HashContent: HashContentStrategy;
|
|
12
|
-
BuildInfoConfig: ReactiveConfigPort<BuildInfoType>;
|
|
13
|
-
};
|
|
14
4
|
|
|
15
5
|
export class ApiVersionHonoMiddleware implements MiddlewareHonoPort {
|
|
16
6
|
private readonly middleware: ApiVersionMiddleware;
|
|
17
7
|
|
|
18
|
-
constructor(deps:
|
|
8
|
+
constructor(deps: ApiVersionMiddlewareDependencies) {
|
|
19
9
|
this.middleware = new ApiVersionMiddleware(deps);
|
|
20
10
|
}
|
|
21
11
|
|
|
22
12
|
handle(): MiddlewareHandler {
|
|
23
13
|
return async (c, next) => {
|
|
24
|
-
|
|
14
|
+
await next();
|
|
25
15
|
|
|
26
|
-
|
|
16
|
+
try {
|
|
17
|
+
const version = await this.middleware.evaluate();
|
|
27
18
|
|
|
28
|
-
|
|
19
|
+
c.res.headers.set(ApiVersionMiddleware.HEADER_NAME, version.toString());
|
|
20
|
+
} catch {}
|
|
29
21
|
};
|
|
30
22
|
}
|
|
31
23
|
}
|
|
@@ -6,7 +6,7 @@ import type { ReactiveConfigPort } from "./reactive-config.port";
|
|
|
6
6
|
import { SubjectApplicationResolver } from "./subject-application-resolver.vo";
|
|
7
7
|
import { SubjectSegmentFixedStrategy } from "./subject-segment-fixed.strategy";
|
|
8
8
|
|
|
9
|
-
type
|
|
9
|
+
export type ApiVersionMiddlewareDependencies = {
|
|
10
10
|
CacheResolver: CacheResolverStrategy;
|
|
11
11
|
HashContent: HashContentStrategy;
|
|
12
12
|
BuildInfoConfig: ReactiveConfigPort<BuildInfoType>;
|
|
@@ -17,7 +17,7 @@ export class ApiVersionMiddleware {
|
|
|
17
17
|
|
|
18
18
|
private readonly resolver: SubjectApplicationResolver;
|
|
19
19
|
|
|
20
|
-
constructor(private readonly deps:
|
|
20
|
+
constructor(private readonly deps: ApiVersionMiddlewareDependencies) {
|
|
21
21
|
this.resolver = new SubjectApplicationResolver(
|
|
22
22
|
[new SubjectSegmentFixedStrategy("api-version")],
|
|
23
23
|
this.deps,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AuthSessionReaderPort, AuthSessionType } from "
|
|
2
|
-
import type { HasRequestHeaders } from "
|
|
1
|
+
import type { AuthSessionReaderPort, AuthSessionType } from "./auth-session-reader.port";
|
|
2
|
+
import type { HasRequestHeaders } from "./request-context.port";
|
|
3
3
|
|
|
4
4
|
export type AuthSessionReaderNoopUserType = { id: string; email: string };
|
|
5
5
|
export type AuthSessionReaderNoopSessionType = { id: string };
|
|
@@ -27,6 +27,10 @@ export class BetterAuthLogger {
|
|
|
27
27
|
this.deps.Logger.warn(base);
|
|
28
28
|
break;
|
|
29
29
|
}
|
|
30
|
+
case LogLevelEnum.debug: {
|
|
31
|
+
this.deps.Logger.debug(base);
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
30
34
|
default: {
|
|
31
35
|
this.deps.Logger.info(base);
|
|
32
36
|
break;
|
|
@@ -39,6 +43,7 @@ export class BetterAuthLogger {
|
|
|
39
43
|
private mapLevel(level: LogLevel | undefined) {
|
|
40
44
|
if (level === "warn") return LogLevelEnum.warn;
|
|
41
45
|
if (level === "error") return LogLevelEnum.error;
|
|
46
|
+
if (level === "debug") return LogLevelEnum.debug;
|
|
42
47
|
return LogLevelEnum.info;
|
|
43
48
|
}
|
|
44
49
|
}
|
|
@@ -15,7 +15,8 @@ export const CacheFileMustRevalidate: CacheFileHandler = {
|
|
|
15
15
|
headers: new Headers({
|
|
16
16
|
ETag: options.etag.get(),
|
|
17
17
|
"Cache-Control": "private, max-age=0, must-revalidate",
|
|
18
|
-
|
|
18
|
+
// biome-ignore lint: lint/style/noRestrictedGlobals
|
|
19
|
+
"Last-Modified": new Date(options.lastModified.ms).toUTCString(),
|
|
19
20
|
Vary: "Authorization, Cookie",
|
|
20
21
|
...overrides,
|
|
21
22
|
}),
|
|
@@ -28,7 +29,8 @@ export const CacheFileMustRevalidate: CacheFileHandler = {
|
|
|
28
29
|
"Cache-Control": "private, max-age=0, must-revalidate",
|
|
29
30
|
ETag: options.etag.get(),
|
|
30
31
|
"Content-Length": options.size.toBytes().toString(),
|
|
31
|
-
|
|
32
|
+
// biome-ignore lint: lint/style/noRestrictedGlobals
|
|
33
|
+
"Last-Modified": new Date(options.lastModified.ms).toUTCString(),
|
|
32
34
|
"Accept-Ranges": "bytes",
|
|
33
35
|
Vary: "Authorization, Cookie",
|
|
34
36
|
...overrides,
|