@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
|
@@ -10,8 +10,13 @@ export class ShieldHcaptchaStrategy {
|
|
|
10
10
|
async evaluate(context) {
|
|
11
11
|
try {
|
|
12
12
|
const form = await context.request.form();
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const json = await context.request.json();
|
|
14
|
+
const fromForm = form.get(ShieldHcaptchaStrategyField)?.toString();
|
|
15
|
+
const fromJson = json[ShieldHcaptchaStrategyField];
|
|
16
|
+
const token = fromForm ?? (typeof fromJson === "string" ? fromJson : undefined);
|
|
17
|
+
if (!token)
|
|
18
|
+
return false;
|
|
19
|
+
const result = await this.hcaptcha.verify(this.secretKey, token);
|
|
15
20
|
return result.success;
|
|
16
21
|
}
|
|
17
22
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-hcaptcha.strategy.js","sourceRoot":"","sources":["../src/shield-hcaptcha.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAEhE,MAAM,OAAO,sBAAsB;IAGJ,SAAS;IAFrB,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IAElD,YAA6B,SAAgC;yBAAhC,SAAS;IAA0B,CAAC;IAEjE,KAAK,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-hcaptcha.strategy.js","sourceRoot":"","sources":["../src/shield-hcaptcha.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAEhE,MAAM,OAAO,sBAAsB;IAGJ,SAAS;IAFrB,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IAElD,YAA6B,SAAgC;yBAAhC,SAAS;IAA0B,CAAC;IAEjE,KAAK,CAAC,QAAQ,CAAC,OAAwC;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,QAAQ,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAEnD,MAAM,KAAK,GAAG,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEhF,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEjE,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ClientIpType } from "./client-ip.vo";
|
|
2
|
-
import type {
|
|
2
|
+
import type { HasIdentityRemoteIp } from "./request-context.port";
|
|
3
3
|
export type ShieldIpBlacklistConfig = {
|
|
4
4
|
blacklist: ReadonlyArray<ClientIpType>;
|
|
5
5
|
};
|
|
@@ -9,6 +9,6 @@ export declare const ShieldIpBlacklistStrategyError: {
|
|
|
9
9
|
export declare class ShieldIpBlacklistStrategy {
|
|
10
10
|
private readonly config;
|
|
11
11
|
constructor(config: ShieldIpBlacklistConfig);
|
|
12
|
-
evaluate(context:
|
|
12
|
+
evaluate(context: HasIdentityRemoteIp): boolean;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=shield-ip-blacklist.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-ip-blacklist.strategy.d.ts","sourceRoot":"","sources":["../src/shield-ip-blacklist.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shield-ip-blacklist.strategy.d.ts","sourceRoot":"","sources":["../src/shield-ip-blacklist.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG;IAAE,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,CAAC;AAEjF,eAAO,MAAM,8BAA8B;IAAK,QAAQ;CAAkC,CAAC;AAE3F,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,uBAAuB,EAAI;IAEhE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAK9C;CACF"}
|
|
@@ -7,9 +7,9 @@ export class ShieldIpBlacklistStrategy {
|
|
|
7
7
|
this.config = config;
|
|
8
8
|
}
|
|
9
9
|
evaluate(context) {
|
|
10
|
-
const ip = v.safeParse(ClientIp, context.identity.
|
|
10
|
+
const ip = v.safeParse(ClientIp, context.identity.remoteIp());
|
|
11
11
|
if (!ip.success)
|
|
12
|
-
return
|
|
12
|
+
return true;
|
|
13
13
|
return !this.config.blacklist.includes(ip.output);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-ip-blacklist.strategy.js","sourceRoot":"","sources":["../src/shield-ip-blacklist.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAK7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC;AAE3F,MAAM,OAAO,yBAAyB;IACP,MAAM;IAAnC,YAA6B,MAA+B;sBAA/B,MAAM;IAA4B,CAAC;IAEhE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-ip-blacklist.strategy.js","sourceRoot":"","sources":["../src/shield-ip-blacklist.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAK7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC;AAE3F,MAAM,OAAO,yBAAyB;IACP,MAAM;IAAnC,YAA6B,MAA+B;sBAA/B,MAAM;IAA4B,CAAC;IAEhE,QAAQ,CAAC,OAA4B;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ClientIpType } from "./client-ip.vo";
|
|
2
|
-
import type {
|
|
2
|
+
import type { HasIdentityRemoteIp } from "./request-context.port";
|
|
3
3
|
export type ShieldIpWhitelistConfig = {
|
|
4
4
|
whitelist: ReadonlyArray<ClientIpType>;
|
|
5
5
|
};
|
|
@@ -9,6 +9,6 @@ export declare const ShieldIpWhitelistStrategyError: {
|
|
|
9
9
|
export declare class ShieldIpWhitelistStrategy {
|
|
10
10
|
private readonly config;
|
|
11
11
|
constructor(config: ShieldIpWhitelistConfig);
|
|
12
|
-
evaluate(context:
|
|
12
|
+
evaluate(context: HasIdentityRemoteIp): boolean;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=shield-ip-whitelist.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-ip-whitelist.strategy.d.ts","sourceRoot":"","sources":["../src/shield-ip-whitelist.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shield-ip-whitelist.strategy.d.ts","sourceRoot":"","sources":["../src/shield-ip-whitelist.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG;IAAE,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,CAAC;AAEjF,eAAO,MAAM,8BAA8B;IAAK,QAAQ;CAAkC,CAAC;AAE3F,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,uBAAuB,EAAI;IAEhE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAK9C;CACF"}
|
|
@@ -7,7 +7,7 @@ export class ShieldIpWhitelistStrategy {
|
|
|
7
7
|
this.config = config;
|
|
8
8
|
}
|
|
9
9
|
evaluate(context) {
|
|
10
|
-
const ip = v.safeParse(ClientIp, context.identity.
|
|
10
|
+
const ip = v.safeParse(ClientIp, context.identity.remoteIp());
|
|
11
11
|
if (!ip.success)
|
|
12
12
|
return false;
|
|
13
13
|
return this.config.whitelist.includes(ip.output);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-ip-whitelist.strategy.js","sourceRoot":"","sources":["../src/shield-ip-whitelist.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAK7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC;AAE3F,MAAM,OAAO,yBAAyB;IACP,MAAM;IAAnC,YAA6B,MAA+B;sBAA/B,MAAM;IAA4B,CAAC;IAEhE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-ip-whitelist.strategy.js","sourceRoot":"","sources":["../src/shield-ip-whitelist.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAK7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC;AAE3F,MAAM,OAAO,yBAAyB;IACP,MAAM;IAAnC,YAA6B,MAA+B;sBAA/B,MAAM;IAA4B,CAAC;IAEhE,QAAQ,CAAC,OAA4B;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-maintenance-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-maintenance-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"shield-maintenance-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-maintenance-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,KAAK,uBAAuB,EAA6B,MAAM,+BAA+B,CAAC;AAExG,qBAAa,6BAA8B,YAAW,kBAAkB;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IAErD,YAAY,MAAM,CAAC,EAAE,uBAAuB,EAE3C;IAED,MAAM,IAAI,iBAAiB,CAY1B;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
|
|
1
2
|
import { ShieldMaintenanceStrategy } from "./shield-maintenance.strategy";
|
|
2
3
|
export class ShieldMaintenanceHonoStrategy {
|
|
3
4
|
strategy;
|
|
@@ -6,12 +7,13 @@ export class ShieldMaintenanceHonoStrategy {
|
|
|
6
7
|
}
|
|
7
8
|
handle() {
|
|
8
9
|
return async (c, next) => {
|
|
9
|
-
const
|
|
10
|
+
const context = new RequestContextHonoAdapter(c);
|
|
11
|
+
if (this.strategy.shouldSkip(context))
|
|
12
|
+
return next();
|
|
13
|
+
const maintenance = await this.strategy.evaluate();
|
|
10
14
|
if (!maintenance.enabled)
|
|
11
15
|
return next();
|
|
12
|
-
return c.json(
|
|
13
|
-
"Retry-After": maintenance.RetryAfter.seconds.toString(),
|
|
14
|
-
});
|
|
16
|
+
return c.json(maintenance.body, maintenance.code, maintenance.headers);
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-maintenance-hono.strategy.js","sourceRoot":"","sources":["../src/shield-maintenance-hono.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAExG,MAAM,OAAO,6BAA6B;IACvB,QAAQ,CAA4B;IAErD,YAAY,MAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"shield-maintenance-hono.strategy.js","sourceRoot":"","sources":["../src/shield-maintenance-hono.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAgC,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAExG,MAAM,OAAO,6BAA6B;IACvB,QAAQ,CAA4B;IAErD,YAAY,MAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YAErD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,CAAC,WAAW,CAAC,OAAO;gBAAE,OAAO,IAAI,EAAE,CAAC;YAExC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import type { ReactiveConfigPort } from "./reactive-config.port";
|
|
4
|
+
import type { HasRequestPath } from "./request-context.port";
|
|
5
|
+
export declare const Maintenance: v.ObjectSchema<{
|
|
6
|
+
readonly enabled: v.PicklistSchema<tools.FeatureFlagEnum[], string>;
|
|
7
|
+
}, undefined>;
|
|
8
|
+
export type MaintenanceType = v.InferOutput<typeof Maintenance>;
|
|
2
9
|
export type ShieldMaintenanceConfig = {
|
|
3
|
-
|
|
10
|
+
MaintenanceConfig: ReactiveConfigPort<MaintenanceType>;
|
|
4
11
|
RetryAfter?: tools.Duration;
|
|
12
|
+
skip?: ReadonlyArray<string | URLPattern>;
|
|
13
|
+
};
|
|
14
|
+
export type ShieldMaintenanceResult = {
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
code: 503;
|
|
17
|
+
body: {
|
|
18
|
+
reason: string;
|
|
19
|
+
};
|
|
20
|
+
headers: Record<string, string>;
|
|
5
21
|
};
|
|
6
22
|
export declare class ShieldMaintenanceStrategy {
|
|
7
|
-
private readonly
|
|
23
|
+
private readonly config?;
|
|
24
|
+
private readonly rounding;
|
|
25
|
+
private readonly MaintenanceConfig?;
|
|
8
26
|
private readonly RetryAfter;
|
|
9
|
-
constructor(config?: ShieldMaintenanceConfig);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
RetryAfter: tools.Duration;
|
|
13
|
-
};
|
|
27
|
+
constructor(config?: ShieldMaintenanceConfig | undefined);
|
|
28
|
+
shouldSkip(context: HasRequestPath): boolean;
|
|
29
|
+
evaluate(): Promise<ShieldMaintenanceResult>;
|
|
14
30
|
}
|
|
15
31
|
//# sourceMappingURL=shield-maintenance.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-maintenance.strategy.d.ts","sourceRoot":"","sources":["../src/shield-maintenance.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"shield-maintenance.strategy.d.ts","sourceRoot":"","sources":["../src/shield-maintenance.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,eAAO,MAAM,WAAW;;aAAgD,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhE,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC5B,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,qBAAa,yBAAyB;IAKxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAJpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAsC;IACzE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,YAA6B,MAAM,CAAC,EAAE,uBAAuB,YAAA,EAG5D;IAED,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAO3C;IAEK,QAAQ,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAUjD;CACF"}
|
|
@@ -1,13 +1,32 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
export const Maintenance = v.object({ enabled: tools.FeatureFlagValue });
|
|
2
4
|
export class ShieldMaintenanceStrategy {
|
|
3
|
-
|
|
5
|
+
config;
|
|
6
|
+
rounding = new tools.RoundingUpStrategy();
|
|
7
|
+
MaintenanceConfig;
|
|
4
8
|
RetryAfter;
|
|
5
9
|
constructor(config) {
|
|
6
|
-
this.
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.MaintenanceConfig = config?.MaintenanceConfig;
|
|
7
12
|
this.RetryAfter = config?.RetryAfter ?? tools.Duration.Hours(1);
|
|
8
13
|
}
|
|
9
|
-
|
|
10
|
-
return
|
|
14
|
+
shouldSkip(context) {
|
|
15
|
+
return (this.config?.skip?.some((rule) => {
|
|
16
|
+
if (rule instanceof URLPattern)
|
|
17
|
+
return rule.test({ pathname: context.request.path });
|
|
18
|
+
return context.request.path.startsWith(rule);
|
|
19
|
+
}) ?? false);
|
|
20
|
+
}
|
|
21
|
+
async evaluate() {
|
|
22
|
+
const maintenance = await this.MaintenanceConfig?.get();
|
|
23
|
+
const enabled = maintenance ? tools.FeatureFlag.from(maintenance.enabled).isEnabled() : false;
|
|
24
|
+
return {
|
|
25
|
+
enabled,
|
|
26
|
+
code: 503,
|
|
27
|
+
body: { reason: "maintenance" },
|
|
28
|
+
headers: { "Retry-After": this.rounding.round(this.RetryAfter.seconds).toString() },
|
|
29
|
+
};
|
|
11
30
|
}
|
|
12
31
|
}
|
|
13
32
|
//# sourceMappingURL=shield-maintenance.strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-maintenance.strategy.js","sourceRoot":"","sources":["../src/shield-maintenance.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"shield-maintenance.strategy.js","sourceRoot":"","sources":["../src/shield-maintenance.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAI7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAiBzE,MAAM,OAAO,yBAAyB;IAKP,MAAM;IAJlB,QAAQ,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAC1C,iBAAiB,CAAuC;IACxD,UAAU,CAAiB;IAE5C,YAA6B,MAAgC;sBAAhC,MAAM;QACjC,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,OAAO,CACL,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,IAAI,YAAY,UAAU;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAI,KAAK,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAE9F,OAAO;YACL,OAAO;YACP,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;YAC/B,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;SACpF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -5,7 +5,7 @@ import type { RequestContext } from "./request-context.port";
|
|
|
5
5
|
import type { SubjectRequestResolver } from "./subject-request-resolver.vo";
|
|
6
6
|
export type ShieldRateLimitConfig = {
|
|
7
7
|
resolver: SubjectRequestResolver;
|
|
8
|
-
|
|
8
|
+
interval: tools.Duration;
|
|
9
9
|
};
|
|
10
10
|
type ShieldRateLimitResult = {
|
|
11
11
|
allowed: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-rate-limit.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"shield-rate-limit.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AACnG,KAAK,qBAAqB,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAEhG,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,4BAA4B;IAAK,QAAQ;CAAgC,CAAC;AAEvF,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,YACmB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,YAAY,EACjC;IAEE,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgBtE;CACF"}
|
|
@@ -10,7 +10,7 @@ export class ShieldRateLimitStrategy {
|
|
|
10
10
|
}
|
|
11
11
|
async evaluate(context) {
|
|
12
12
|
const subject = await this.config.resolver.resolve(context);
|
|
13
|
-
const limiter = await this.deps.CacheResolver.resolve(subject.hex, async () => new tools.RateLimiter(this.config.
|
|
13
|
+
const limiter = await this.deps.CacheResolver.resolve(subject.hex, async () => new tools.RateLimiter(this.config.interval));
|
|
14
14
|
const decision = limiter.verify(this.deps.Clock.now());
|
|
15
15
|
if (decision.allowed)
|
|
16
16
|
return { allowed: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-rate-limit.strategy.js","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAWtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC;AAEvF,MAAM,OAAO,uBAAuB;IAIf,MAAM;IACN,IAAI;IAJN,QAAQ,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAE3D,YACmB,MAA6B,EAC7B,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CACnD,OAAO,CAAC,GAAG,EACX,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-rate-limit.strategy.js","sourceRoot":"","sources":["../src/shield-rate-limit.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAWtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC;AAEvF,MAAM,OAAO,uBAAuB;IAIf,MAAM;IACN,IAAI;IAJN,QAAQ,GAAG,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAE3D,YACmB,MAA6B,EAC7B,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CACnD,OAAO,CAAC,GAAG,EACX,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxD,CAAC;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvD,IAAI,QAAQ,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACpF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RecaptchaSecretKeyType } from "./recaptcha-secret-key.vo";
|
|
2
|
-
import type {
|
|
2
|
+
import type { HasIdentityIp, HasRequestForm, HasRequestJson } from "./request-context.port";
|
|
3
3
|
export type ShieldRecaptchaConfig = {
|
|
4
4
|
secretKey: RecaptchaSecretKeyType;
|
|
5
5
|
threshold?: number;
|
|
@@ -17,6 +17,6 @@ export declare class ShieldRecaptchaStrategy {
|
|
|
17
17
|
private static readonly URL;
|
|
18
18
|
private static readonly DEFAULT_THRESHOLD;
|
|
19
19
|
constructor(config: ShieldRecaptchaConfig);
|
|
20
|
-
evaluate(context:
|
|
20
|
+
evaluate(context: HasIdentityIp & HasRequestForm & HasRequestJson): Promise<boolean>;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=shield-recaptcha.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-recaptcha.strategy.d.ts","sourceRoot":"","sources":["../src/shield-recaptcha.strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shield-recaptcha.strategy.d.ts","sourceRoot":"","sources":["../src/shield-recaptcha.strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE5F,MAAM,MAAM,qBAAqB,GAAG;IAAE,SAAS,EAAE,sBAAsB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9F,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,4BAA4B;IAAK,QAAQ;CAA+B,CAAC;AAEtF,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE,qBAAa,uBAAuB;IAQtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAGzB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAEhD,YAA6B,MAAM,EAAE,qBAAqB,EAAI;IAExD,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAmCzF;CACF"}
|
|
@@ -13,22 +13,26 @@ export class ShieldRecaptchaStrategy {
|
|
|
13
13
|
async evaluate(context) {
|
|
14
14
|
const threshold = this.config.threshold ?? ShieldRecaptchaStrategy.DEFAULT_THRESHOLD;
|
|
15
15
|
try {
|
|
16
|
-
const header = context.request.header("x-recaptcha-token");
|
|
17
|
-
const query = context.request.query()["recaptchaToken"];
|
|
18
|
-
const remoteip = context.request.header("x-forwarded-for")?.split(",")[0] ?? "";
|
|
19
16
|
const form = await context.request.form();
|
|
20
|
-
const
|
|
21
|
-
const
|
|
17
|
+
const json = await context.request.json();
|
|
18
|
+
const fromForm = form.get(ShieldRecaptchaStrategyField)?.toString();
|
|
19
|
+
const fromJson = json[ShieldRecaptchaStrategyField];
|
|
20
|
+
const token = fromForm ?? (typeof fromJson === "string" ? fromJson : undefined);
|
|
22
21
|
if (!token)
|
|
23
22
|
return false;
|
|
24
|
-
const
|
|
23
|
+
const remoteip = context.identity.ip();
|
|
24
|
+
const params = new URLSearchParams({ secret: this.config.secretKey, response: token });
|
|
25
|
+
if (remoteip)
|
|
26
|
+
params.set("remoteip", remoteip);
|
|
25
27
|
const response = await fetch(ShieldRecaptchaStrategy.URL, {
|
|
26
28
|
method: "POST",
|
|
27
29
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
28
30
|
body: params,
|
|
29
31
|
});
|
|
30
32
|
const result = await response.json();
|
|
31
|
-
if (!result.success
|
|
33
|
+
if (!result.success)
|
|
34
|
+
return false;
|
|
35
|
+
if (typeof result.score !== "number" || result.score < threshold)
|
|
32
36
|
return false;
|
|
33
37
|
return true;
|
|
34
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-recaptcha.strategy.js","sourceRoot":"","sources":["../src/shield-recaptcha.strategy.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAO7B,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC;AAEtF,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;AAEnE,MAAM,OAAO,uBAAuB;IAQL,MAAM;IAP3B,MAAM,CAAU,GAAG,GAAG,CAAC,CAAC,KAAK,CACnC,KAAK,CAAC,eAAe,EACrB,iDAAiD,CAClD,CAAC;IAEM,MAAM,CAAU,iBAAiB,GAAG,GAAG,CAAC;IAEhD,YAA6B,MAA6B;sBAA7B,MAAM;IAA0B,CAAC;IAE9D,KAAK,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-recaptcha.strategy.js","sourceRoot":"","sources":["../src/shield-recaptcha.strategy.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAO7B,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC;AAEtF,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;AAEnE,MAAM,OAAO,uBAAuB;IAQL,MAAM;IAP3B,MAAM,CAAU,GAAG,GAAG,CAAC,CAAC,KAAK,CACnC,KAAK,CAAC,eAAe,EACrB,iDAAiD,CAClD,CAAC;IAEM,MAAM,CAAU,iBAAiB,GAAG,GAAG,CAAC;IAEhD,YAA6B,MAA6B;sBAA7B,MAAM;IAA0B,CAAC;IAE9D,KAAK,CAAC,QAAQ,CAAC,OAAwD;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAEpD,MAAM,KAAK,GAAG,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEhF,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAEvF,IAAI,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE;gBACxD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,MAAM,MAAM,GAAoB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEtD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAClC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE/E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
|
|
@@ -5,7 +5,7 @@ export class ShieldTimeoutHonoStrategy {
|
|
|
5
5
|
timeout;
|
|
6
6
|
constructor(config) {
|
|
7
7
|
const strategy = new ShieldTimeoutStrategy(config);
|
|
8
|
-
this.timeout = timeout(strategy.config.ms, new HTTPException(
|
|
8
|
+
this.timeout = timeout(strategy.config.ms, new HTTPException(504, { message: ShieldTimeoutStrategyError.Rejected }));
|
|
9
9
|
}
|
|
10
10
|
handle() {
|
|
11
11
|
return this.timeout;
|
|
@@ -11,7 +11,7 @@ export class ShieldWebhookHonoStrategy {
|
|
|
11
11
|
const context = new RequestContextHonoAdapter(c);
|
|
12
12
|
if (await this.strategy.evaluate(context))
|
|
13
13
|
return next();
|
|
14
|
-
throw new HTTPException(
|
|
14
|
+
throw new HTTPException(401, { message: ShieldWebhookStrategyError.Rejected });
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HasRequestHeader, HasRequestText } from "./request-context.port";
|
|
2
2
|
import type { WebhookBodyBuilderStrategy } from "./webhook-body-builder.strategy";
|
|
3
3
|
import type { WebhookSignatureExtractorStrategy } from "./webhook-signature-extractor.strategy";
|
|
4
4
|
import type { WebhookVerifierStrategy } from "./webhook-verifier.strategy";
|
|
@@ -13,6 +13,6 @@ export type ShieldWebhookStrategyConfig = {
|
|
|
13
13
|
export declare class ShieldWebhookStrategy {
|
|
14
14
|
private readonly config;
|
|
15
15
|
constructor(config: ShieldWebhookStrategyConfig);
|
|
16
|
-
evaluate(context:
|
|
16
|
+
evaluate(context: HasRequestHeader & HasRequestText): Promise<boolean>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=shield-webhook.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-webhook.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"shield-webhook.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,eAAO,MAAM,0BAA0B;IAAK,QAAQ;CAA6B,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACxC,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,yBAAyB,EAAE,iCAAiC,CAAC;IAC7D,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,2BAA2B,EAAI;IAE9D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ3E;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-webhook.strategy.js","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC;AAQlF,MAAM,OAAO,qBAAqB;IACH,MAAM;IAAnC,YAA6B,MAAmC;sBAAnC,MAAM;IAAgC,CAAC;IAEpE,KAAK,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-webhook.strategy.js","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC;AAQlF,MAAM,OAAO,qBAAqB;IACH,MAAM;IAAnC,YAA6B,MAAmC;sBAAnC,MAAM;IAAgC,CAAC;IAEpE,KAAK,CAAC,QAAQ,CAAC,OAA0C;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzE,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulated-error.middleware.d.ts","sourceRoot":"","sources":["../src/simulated-error.middleware.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAwB;IACnC,QAAQ,IAAI,KAAK,CAEhB;CACF"}
|
|
1
|
+
{"version":3,"file":"simulated-error.middleware.d.ts","sourceRoot":"","sources":["../src/simulated-error.middleware.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B;IAAK,SAAS;CAAqB,CAAC;AAE9E,qBAAa,wBAAwB;IACnC,QAAQ,IAAI,KAAK,CAEhB;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
export const SimulatedErrorMiddlewareError = { Simulated: "simulated.error" };
|
|
1
2
|
export class SimulatedErrorMiddleware {
|
|
2
3
|
evaluate() {
|
|
3
|
-
throw new Error(
|
|
4
|
+
throw new Error(SimulatedErrorMiddlewareError.Simulated);
|
|
4
5
|
}
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=simulated-error.middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulated-error.middleware.js","sourceRoot":"","sources":["../src/simulated-error.middleware.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,wBAAwB;IACnC,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"simulated-error.middleware.js","sourceRoot":"","sources":["../src/simulated-error.middleware.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AAE9E,MAAM,OAAO,wBAAwB;IACnC,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
package/dist/sitemap-entry.vo.js
CHANGED
|
@@ -15,7 +15,7 @@ export class SitemapEntry {
|
|
|
15
15
|
const loc = `<loc>${this.escapeXml(this.entry.loc)}</loc>`;
|
|
16
16
|
const lastmod = this.entry.lastmod ? `<lastmod>${this.entry.lastmod}</lastmod>` : "";
|
|
17
17
|
const changefreq = this.entry.changefreq ? `<changefreq>${this.entry.changefreq}</changefreq>` : "";
|
|
18
|
-
const priority = this.entry.priority !== undefined ? `<priority>${this.entry.priority.toFixed(
|
|
18
|
+
const priority = this.entry.priority !== undefined ? `<priority>${this.entry.priority.toFixed(2)}</priority>` : "";
|
|
19
19
|
return ["<url>", loc, lastmod, changefreq, priority, "</url>"].join("");
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -2,6 +2,6 @@ import * as v from "valibot";
|
|
|
2
2
|
export declare const SitemapPriorityError: {
|
|
3
3
|
Invalid: string;
|
|
4
4
|
};
|
|
5
|
-
export declare const SitemapPriority: v.SchemaWithPipe<readonly [v.NumberSchema<string>, v.MinValueAction<number, 0, string>, v.MaxValueAction<number, 1, string>, v.BrandAction<number, "SitemapPriority">]>;
|
|
5
|
+
export declare const SitemapPriority: v.SchemaWithPipe<readonly [v.NumberSchema<string>, v.MinValueAction<number, 0, string>, v.MaxValueAction<number, 1, string>, v.CheckAction<number, string>, v.BrandAction<number, "SitemapPriority">]>;
|
|
6
6
|
export type SitemapPriorityType = v.InferOutput<typeof SitemapPriority>;
|
|
7
7
|
//# sourceMappingURL=sitemap-priority.vo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-priority.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-priority.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,oBAAoB;IAAK,OAAO;CAA8B,CAAC;AAE5E,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"sitemap-priority.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-priority.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,oBAAoB;IAAK,OAAO;CAA8B,CAAC;AAE5E,eAAO,MAAM,eAAe,wMAO3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
2
|
export const SitemapPriorityError = { Invalid: "sitemap.priority.invalid" };
|
|
3
|
-
export const SitemapPriority = v.pipe(v.number(SitemapPriorityError.Invalid), v.minValue(0, SitemapPriorityError.Invalid), v.maxValue(1, SitemapPriorityError.Invalid),
|
|
3
|
+
export const SitemapPriority = v.pipe(v.number(SitemapPriorityError.Invalid), v.minValue(0, SitemapPriorityError.Invalid), v.maxValue(1, SitemapPriorityError.Invalid), v.check((value) => Number(value.toFixed(2)) === value, SitemapPriorityError.Invalid),
|
|
4
4
|
// Stryker disable next-line StringLiteral
|
|
5
5
|
v.brand("SitemapPriority"));
|
|
6
6
|
//# sourceMappingURL=sitemap-priority.vo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-priority.vo.js","sourceRoot":"","sources":["../src/sitemap-priority.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EACtC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sitemap-priority.vo.js","sourceRoot":"","sources":["../src/sitemap-priority.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EACtC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC;AACpF,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAC3B,CAAC"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
import type { MiddlewareHandler } from "hono";
|
|
3
3
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
4
|
-
import type
|
|
5
|
-
type Dependencies = {
|
|
6
|
-
Sleeper: SleeperPort;
|
|
7
|
-
};
|
|
4
|
+
import { type SlowerMiddlewareDependencies } from "./slower.middleware";
|
|
8
5
|
export declare class SlowerHonoMiddleware implements MiddlewareHonoPort {
|
|
9
6
|
private readonly middleware;
|
|
10
|
-
constructor(offset: tools.Duration, deps:
|
|
7
|
+
constructor(offset: tools.Duration, deps: SlowerMiddlewareDependencies);
|
|
11
8
|
handle(): MiddlewareHandler;
|
|
12
9
|
}
|
|
13
|
-
export {};
|
|
14
10
|
//# sourceMappingURL=slower-hono.middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slower-hono.middleware.d.ts","sourceRoot":"","sources":["../src/slower-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;AACjE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"slower-hono.middleware.d.ts","sourceRoot":"","sources":["../src/slower-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;AACjE,OAAO,EAAoB,KAAK,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAE1F,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,YAAY,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAErE;IAED,MAAM,IAAI,iBAAiB,CAM1B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slower-hono.middleware.js","sourceRoot":"","sources":["../src/slower-hono.middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slower-hono.middleware.js","sourceRoot":"","sources":["../src/slower-hono.middleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAqC,MAAM,qBAAqB,CAAC;AAE1F,MAAM,OAAO,oBAAoB;IACd,UAAU,CAAmB;IAE9C,YAAY,MAAsB,EAAE,IAAkC;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAEjC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
import type { SleeperPort } from "./sleeper.port";
|
|
3
|
-
type
|
|
3
|
+
export type SlowerMiddlewareDependencies = {
|
|
4
4
|
Sleeper: SleeperPort;
|
|
5
5
|
};
|
|
6
6
|
export declare class SlowerMiddleware {
|
|
7
7
|
private readonly offset;
|
|
8
8
|
private readonly deps;
|
|
9
|
-
constructor(offset: tools.Duration, deps:
|
|
9
|
+
constructor(offset: tools.Duration, deps: SlowerMiddlewareDependencies);
|
|
10
10
|
evaluate(): Promise<void>;
|
|
11
11
|
}
|
|
12
|
-
export {};
|
|
13
12
|
//# sourceMappingURL=slower.middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slower.middleware.d.ts","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,
|
|
1
|
+
{"version":3,"file":"slower.middleware.d.ts","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,4BAA4B,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEpE,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,KAAK,CAAC,QAAQ,EACtB,IAAI,EAAE,4BAA4B,EACjD;IAEE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slower.middleware.js","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,gBAAgB;IAER,MAAM;IACN,IAAI;IAFvB,YACmB,MAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"slower.middleware.js","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,gBAAgB;IAER,MAAM;IACN,IAAI;IAFvB,YACmB,MAAsB,EACtB,IAAkC;sBADlC,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -12,7 +12,7 @@ export class SmsWithLoggerAdapter {
|
|
|
12
12
|
this.deps.Logger.info({
|
|
13
13
|
message: "SMS attempt",
|
|
14
14
|
correlationId: CorrelationStorage.get(),
|
|
15
|
-
metadata: message.toJSON(),
|
|
15
|
+
metadata: { message: message.toJSON() },
|
|
16
16
|
...this.base,
|
|
17
17
|
});
|
|
18
18
|
await this.deps.inner.send(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms-with-logger.adapter.js","sourceRoot":"","sources":["../src/sms-with-logger.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,MAAM,OAAO,oBAAoB;IAGF,IAAI;IAFhB,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAEjE,YAA6B,IAAsC;oBAAtC,IAAI;IAAqC,CAAC;IAEvE,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE,aAAa;gBACtB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;gBACvC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"sms-with-logger.adapter.js","sourceRoot":"","sources":["../src/sms-with-logger.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,MAAM,OAAO,oBAAoB;IAGF,IAAI;IAFhB,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAEjE,YAA6B,IAAsC;oBAAtC,IAAI;IAAqC,CAAC;IAEvE,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE,aAAa;gBACtB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;gBACvC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE;gBACvC,GAAG,IAAI,CAAC,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE,aAAa;gBACtB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;gBACvC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE;gBAClE,GAAG,IAAI,CAAC,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACrB,OAAO,EAAE,WAAW;gBACpB,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE;gBACvC,KAAK;gBACL,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE;gBAClE,GAAG,IAAI,CAAC,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-hono.handler.d.ts","sourceRoot":"","sources":["../src/sse-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,MAAM,oBAAoB,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAEjE,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAC5C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,mBAAmB,CAAC;CAClC,CAAC;AAIF,qBAAa,cAAc,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe;IAE5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC3C;IAEJ,MAAM,
|
|
1
|
+
{"version":3,"file":"sse-hono.handler.d.ts","sourceRoot":"","sources":["../src/sse-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,MAAM,oBAAoB,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAEjE,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAC5C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,mBAAmB,CAAC;CAClC,CAAC;AAIF,qBAAa,cAAc,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe;IAE5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC3C;IAEJ,MAAM,uEAwBL;CACF"}
|
package/dist/sse-hono.handler.js
CHANGED
|
@@ -17,11 +17,13 @@ export class SseHonoHandler {
|
|
|
17
17
|
const send = async (message) => {
|
|
18
18
|
await stream.writeSSE({ event: message.name, data: JSON.stringify(message) });
|
|
19
19
|
};
|
|
20
|
-
this.deps.registry.register(subject.hex.get(), send);
|
|
20
|
+
const registered = this.deps.registry.register(subject.hex.get(), send);
|
|
21
|
+
if (!registered)
|
|
22
|
+
return;
|
|
21
23
|
// Stryker disable all
|
|
22
24
|
stream.onAbort(() => this.deps.registry.unregister(subject.hex.get(), send));
|
|
23
25
|
// Stryker restore all
|
|
24
|
-
while (!stream.closed) {
|
|
26
|
+
while (!(stream.closed || stream.aborted)) {
|
|
25
27
|
await stream.sleep(this.config.keepalive.ms);
|
|
26
28
|
await stream.writeSSE({ event: "ping", data: JSON.stringify({ keepalive: true }) });
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-hono.handler.js","sourceRoot":"","sources":["../src/sse-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAY3E,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,cAAc;IAEN,MAAM;IACN,IAAI;IAFvB,YACmB,MAA4B,EAC5B,IAA4B;sBAD5B,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE1D,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,KAAK,EAAsB,OAAU,EAAE,EAAE;oBACpD,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChF,CAAC,CAAC;gBAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sse-hono.handler.js","sourceRoot":"","sources":["../src/sse-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAY3E,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,cAAc;IAEN,MAAM;IACN,IAAI;IAFvB,YACmB,MAA4B,EAC5B,IAA4B;sBAD5B,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE1D,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,KAAK,EAAsB,OAAU,EAAE,EAAE;oBACpD,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChF,CAAC,CAAC;gBAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;gBAExE,IAAI,CAAC,UAAU;oBAAE,OAAO;gBAExB,sBAAsB;gBACtB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC7E,sBAAsB;gBAEtB,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC7C,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -6,7 +6,7 @@ export declare class SseRegistryCollectingAdapter<Messages extends Message> impl
|
|
|
6
6
|
identity: HashValueType;
|
|
7
7
|
message: Messages;
|
|
8
8
|
}>;
|
|
9
|
-
register(_identity: HashValueType, _sender: SseSenderType<Messages>):
|
|
9
|
+
register(_identity: HashValueType, _sender: SseSenderType<Messages>): boolean;
|
|
10
10
|
unregister(_identity: HashValueType, _sender: SseSenderType<Messages>): void;
|
|
11
11
|
emit<M extends Messages>(identity: HashValueType, message: M): Promise<void>;
|
|
12
12
|
count(_identity: HashValueType): number;
|