@bgord/bun 1.14.6 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ab-variant-selector.service.d.ts.map +1 -1
- package/dist/ab-variant-selector.service.js +3 -2
- package/dist/ab-variant-selector.service.js.map +1 -1
- package/dist/ab-variant-weight.vo.d.ts +3 -3
- package/dist/ab-variant-weight.vo.d.ts.map +1 -1
- package/dist/ab-variant-weight.vo.js +4 -8
- package/dist/ab-variant-weight.vo.js.map +1 -1
- package/dist/basic-auth-password.vo.d.ts +3 -3
- package/dist/basic-auth-password.vo.d.ts.map +1 -1
- package/dist/basic-auth-password.vo.js +4 -8
- package/dist/basic-auth-password.vo.js.map +1 -1
- package/dist/basic-auth-username.vo.d.ts +3 -3
- package/dist/basic-auth-username.vo.d.ts.map +1 -1
- package/dist/basic-auth-username.vo.js +4 -8
- package/dist/basic-auth-username.vo.js.map +1 -1
- package/dist/binary.vo.d.ts +3 -5
- package/dist/binary.vo.d.ts.map +1 -1
- package/dist/binary.vo.js +6 -16
- package/dist/binary.vo.js.map +1 -1
- package/dist/client-ip.vo.d.ts +3 -3
- package/dist/client-ip.vo.d.ts.map +1 -1
- package/dist/client-ip.vo.js +4 -3
- package/dist/client-ip.vo.js.map +1 -1
- package/dist/client-user-agent.vo.d.ts +3 -3
- package/dist/client-user-agent.vo.d.ts.map +1 -1
- package/dist/client-user-agent.vo.js +4 -7
- package/dist/client-user-agent.vo.js.map +1 -1
- package/dist/client.vo.d.ts.map +1 -1
- package/dist/client.vo.js +10 -3
- package/dist/client.vo.js.map +1 -1
- package/dist/command-envelope.d.ts +4 -4
- package/dist/commit-sha-value.vo.d.ts +3 -3
- package/dist/commit-sha-value.vo.d.ts.map +1 -1
- package/dist/commit-sha-value.vo.js +4 -7
- package/dist/commit-sha-value.vo.js.map +1 -1
- package/dist/commit-sha.vo.d.ts.map +1 -1
- package/dist/commit-sha.vo.js +2 -1
- package/dist/commit-sha.vo.js.map +1 -1
- package/dist/correlation-id.vo.d.ts +3 -3
- package/dist/correlation-id.vo.d.ts.map +1 -1
- package/dist/correlation.middleware.d.ts.map +1 -1
- package/dist/correlation.middleware.js +3 -2
- package/dist/correlation.middleware.js.map +1 -1
- package/dist/encryption-key-value.vo.d.ts +3 -3
- package/dist/encryption-key-value.vo.d.ts.map +1 -1
- package/dist/encryption-key-value.vo.js +4 -7
- package/dist/encryption-key-value.vo.js.map +1 -1
- package/dist/encryption-key.vo.d.ts.map +1 -1
- package/dist/encryption-key.vo.js +2 -1
- package/dist/encryption-key.vo.js.map +1 -1
- package/dist/environment-loader-encrypted.adapter.d.ts +1 -1
- package/dist/environment-loader-encrypted.adapter.d.ts.map +1 -1
- package/dist/environment-loader-encrypted.adapter.js +8 -1
- package/dist/environment-loader-encrypted.adapter.js.map +1 -1
- package/dist/environment-loader-noop.adapter.d.ts +1 -1
- package/dist/environment-loader-noop.adapter.d.ts.map +1 -1
- package/dist/environment-loader-noop.adapter.js +8 -4
- package/dist/environment-loader-noop.adapter.js.map +1 -1
- package/dist/environment-loader-process-safe.adapter.d.ts +1 -1
- package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process-safe.adapter.js +12 -3
- package/dist/environment-loader-process-safe.adapter.js.map +1 -1
- package/dist/environment-loader-process.adapter.d.ts +3 -3
- package/dist/environment-loader-process.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process.adapter.js +11 -4
- package/dist/environment-loader-process.adapter.js.map +1 -1
- package/dist/environment-loader.port.d.ts +5 -2
- package/dist/environment-loader.port.d.ts.map +1 -1
- package/dist/environment-loader.port.js +1 -1
- package/dist/environment-loader.port.js.map +1 -1
- package/dist/event-envelope.d.ts +8 -8
- package/dist/event-envelope.d.ts.map +1 -1
- package/dist/event-envelope.js +3 -3
- package/dist/event-envelope.js.map +1 -1
- package/dist/event-store-with-logger.adapter.d.ts.map +1 -1
- package/dist/event-store-with-logger.adapter.js +1 -0
- package/dist/event-store-with-logger.adapter.js.map +1 -1
- package/dist/event-stream.vo.d.ts +3 -3
- package/dist/event-stream.vo.d.ts.map +1 -1
- package/dist/event-stream.vo.js +2 -5
- package/dist/event-stream.vo.js.map +1 -1
- package/dist/event-validator-registry.adapter.d.ts +12 -0
- package/dist/event-validator-registry.adapter.d.ts.map +1 -0
- package/dist/event-validator-registry.adapter.js +32 -0
- package/dist/event-validator-registry.adapter.js.map +1 -0
- package/dist/event-validator-registry.port.d.ts +3 -0
- package/dist/event-validator-registry.port.d.ts.map +1 -1
- package/dist/event-validator-registry.port.js +1 -1
- package/dist/event-validator-registry.port.js.map +1 -1
- package/dist/file-draft-zip.service.d.ts.map +1 -1
- package/dist/file-draft-zip.service.js +2 -1
- package/dist/file-draft-zip.service.js.map +1 -1
- package/dist/hash-bucket.vo.d.ts.map +1 -1
- package/dist/hash-bucket.vo.js +2 -1
- package/dist/hash-bucket.vo.js.map +1 -1
- package/dist/hash-value.vo.d.ts +3 -3
- package/dist/hash-value.vo.d.ts.map +1 -1
- package/dist/hash-value.vo.js +4 -7
- package/dist/hash-value.vo.js.map +1 -1
- package/dist/hash.vo.d.ts.map +1 -1
- package/dist/hash.vo.js +2 -1
- package/dist/hash.vo.js.map +1 -1
- package/dist/hcaptcha-secret-key.vo.d.ts +3 -3
- package/dist/hcaptcha-secret-key.vo.d.ts.map +1 -1
- package/dist/hcaptcha-secret-key.vo.js +4 -7
- package/dist/hcaptcha-secret-key.vo.js.map +1 -1
- package/dist/hcaptcha-site-key.vo.d.ts +3 -3
- package/dist/hcaptcha-site-key.vo.d.ts.map +1 -1
- package/dist/hcaptcha-site-key.vo.js +4 -7
- package/dist/hcaptcha-site-key.vo.js.map +1 -1
- package/dist/healthcheck-hono.handler.d.ts +3 -3
- package/dist/healthcheck.handler.d.ts +3 -3
- package/dist/healthcheck.handler.d.ts.map +1 -1
- package/dist/healthcheck.handler.js +5 -4
- package/dist/healthcheck.handler.js.map +1 -1
- package/dist/http-logger.middleware.js +1 -1
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/i18n.service.d.ts +2 -1
- package/dist/i18n.service.d.ts.map +1 -1
- package/dist/i18n.service.js +2 -1
- package/dist/i18n.service.js.map +1 -1
- package/dist/image-info-noop.adapter.d.ts.map +1 -1
- package/dist/image-info-noop.adapter.js +3 -2
- package/dist/image-info-noop.adapter.js.map +1 -1
- package/dist/image-info-sharp.adapter.d.ts.map +1 -1
- package/dist/image-info-sharp.adapter.js +4 -3
- package/dist/image-info-sharp.adapter.js.map +1 -1
- package/dist/in-flight-requests-tracker.service.d.ts.map +1 -1
- package/dist/in-flight-requests-tracker.service.js +3 -2
- package/dist/in-flight-requests-tracker.service.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.port.d.ts +1 -3
- package/dist/logger.port.d.ts.map +1 -1
- package/dist/logger.port.js +0 -2
- package/dist/logger.port.js.map +1 -1
- package/dist/mailer-content-html.vo.d.ts +3 -3
- package/dist/mailer-content-html.vo.d.ts.map +1 -1
- package/dist/mailer-content-html.vo.js +4 -8
- package/dist/mailer-content-html.vo.js.map +1 -1
- package/dist/mailer-subject.vo.d.ts +3 -3
- package/dist/mailer-subject.vo.d.ts.map +1 -1
- package/dist/mailer-subject.vo.js +4 -8
- package/dist/mailer-subject.vo.js.map +1 -1
- package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.d.ts.map +1 -1
- package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.js +2 -1
- package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.js.map +1 -1
- package/dist/modules/history/events/HISTORY_CLEARED_EVENT.d.ts +14 -14
- package/dist/modules/history/events/HISTORY_CLEARED_EVENT.d.ts.map +1 -1
- package/dist/modules/history/events/HISTORY_CLEARED_EVENT.js +4 -4
- package/dist/modules/history/events/HISTORY_CLEARED_EVENT.js.map +1 -1
- package/dist/modules/history/events/HISTORY_POPULATED_EVENT.d.ts +17 -17
- package/dist/modules/history/events/HISTORY_POPULATED_EVENT.d.ts.map +1 -1
- package/dist/modules/history/events/HISTORY_POPULATED_EVENT.js +4 -4
- package/dist/modules/history/events/HISTORY_POPULATED_EVENT.js.map +1 -1
- package/dist/modules/history/value-objects/history-created-at.d.ts +3 -3
- package/dist/modules/history/value-objects/history-created-at.d.ts.map +1 -1
- package/dist/modules/history/value-objects/history-id.d.ts +1 -1
- package/dist/modules/history/value-objects/history-id.d.ts.map +1 -1
- package/dist/modules/history/value-objects/history-operation.d.ts +2 -2
- package/dist/modules/history/value-objects/history-operation.d.ts.map +1 -1
- package/dist/modules/history/value-objects/history-operation.js +2 -5
- package/dist/modules/history/value-objects/history-operation.js.map +1 -1
- package/dist/modules/history/value-objects/history-payload.d.ts +7 -3
- package/dist/modules/history/value-objects/history-payload.d.ts.map +1 -1
- package/dist/modules/history/value-objects/history-payload.js +8 -6
- package/dist/modules/history/value-objects/history-payload.js.map +1 -1
- package/dist/modules/history/value-objects/history-subject.d.ts +3 -3
- package/dist/modules/history/value-objects/history-subject.d.ts.map +1 -1
- package/dist/modules/history/value-objects/history-subject.js +2 -5
- package/dist/modules/history/value-objects/history-subject.js.map +1 -1
- package/dist/modules/history/value-objects/history.d.ts +21 -17
- package/dist/modules/history/value-objects/history.d.ts.map +1 -1
- package/dist/modules/history/value-objects/history.js +3 -3
- package/dist/modules/history/value-objects/history.js.map +1 -1
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts.map +1 -1
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.js +2 -1
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.js.map +1 -1
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.d.ts +12 -12
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.d.ts.map +1 -1
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.js +4 -4
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.js.map +1 -1
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.d.ts +15 -15
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.d.ts.map +1 -1
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.js +4 -4
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.js.map +1 -1
- package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.d.ts +14 -14
- package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.d.ts.map +1 -1
- package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.js +4 -4
- package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.js.map +1 -1
- package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.d.ts +14 -14
- package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.d.ts.map +1 -1
- package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.js +4 -4
- package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.js.map +1 -1
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.d.ts +21 -21
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.d.ts.map +1 -1
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.js +7 -7
- package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.js.map +1 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.d.ts.map +1 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.js +2 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.js.map +1 -1
- package/dist/modules/system/services/passage-of-time-minute.service.d.ts.map +1 -1
- package/dist/modules/system/services/passage-of-time-minute.service.js +2 -1
- package/dist/modules/system/services/passage-of-time-minute.service.js.map +1 -1
- package/dist/node-env.vo.d.ts +0 -5
- package/dist/node-env.vo.d.ts.map +1 -1
- package/dist/node-env.vo.js +0 -3
- package/dist/node-env.vo.js.map +1 -1
- package/dist/nonce-provider-crypto.adapter.d.ts.map +1 -1
- package/dist/nonce-provider-crypto.adapter.js +2 -1
- package/dist/nonce-provider-crypto.adapter.js.map +1 -1
- package/dist/nonce-provider-noop.adapter.d.ts.map +1 -1
- package/dist/nonce-provider-noop.adapter.js +2 -1
- package/dist/nonce-provider-noop.adapter.js.map +1 -1
- package/dist/nonce-value.vo.d.ts +3 -3
- package/dist/nonce-value.vo.d.ts.map +1 -1
- package/dist/nonce-value.vo.js +4 -7
- package/dist/nonce-value.vo.js.map +1 -1
- package/dist/port.vo.d.ts +3 -3
- package/dist/port.vo.d.ts.map +1 -1
- package/dist/port.vo.js +4 -9
- package/dist/port.vo.js.map +1 -1
- package/dist/prerequisite-verifier-outside-connectivity.adapter.d.ts.map +1 -1
- package/dist/prerequisite-verifier-outside-connectivity.adapter.js +2 -1
- package/dist/prerequisite-verifier-outside-connectivity.adapter.js.map +1 -1
- package/dist/recaptcha-secret-key.vo.d.ts +3 -3
- package/dist/recaptcha-secret-key.vo.d.ts.map +1 -1
- package/dist/recaptcha-secret-key.vo.js +4 -7
- package/dist/recaptcha-secret-key.vo.js.map +1 -1
- package/dist/recaptcha-site-key.vo.d.ts +3 -3
- package/dist/recaptcha-site-key.vo.d.ts.map +1 -1
- package/dist/recaptcha-site-key.vo.js +4 -7
- package/dist/recaptcha-site-key.vo.js.map +1 -1
- package/dist/redactor-error-cause-depth-limit.strategy.d.ts.map +1 -1
- package/dist/redactor-error-cause-depth-limit.strategy.js +3 -2
- package/dist/redactor-error-cause-depth-limit.strategy.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 -1
- 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 -1
- package/dist/redactor-metadata-compact-object.strategy.js.map +1 -1
- package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
- package/dist/remote-file-storage-disk.adapter.js +2 -1
- package/dist/remote-file-storage-disk.adapter.js.map +1 -1
- package/dist/retry-backoff-exponential.strategy.d.ts.map +1 -1
- package/dist/retry-backoff-exponential.strategy.js +2 -1
- package/dist/retry-backoff-exponential.strategy.js.map +1 -1
- package/dist/retry-backoff-fibonacci.strategy.d.ts.map +1 -1
- package/dist/retry-backoff-fibonacci.strategy.js +2 -1
- package/dist/retry-backoff-fibonacci.strategy.js.map +1 -1
- package/dist/retry-backoff-linear.strategy.d.ts.map +1 -1
- package/dist/retry-backoff-linear.strategy.js +2 -1
- package/dist/retry-backoff-linear.strategy.js.map +1 -1
- package/dist/retry.service.d.ts.map +1 -1
- package/dist/retry.service.js +2 -1
- package/dist/retry.service.js.map +1 -1
- package/dist/security-countermeasure-ban.strategy.d.ts.map +1 -1
- package/dist/security-countermeasure-ban.strategy.js +3 -2
- package/dist/security-countermeasure-ban.strategy.js.map +1 -1
- package/dist/security-countermeasure-mirage.strategy.d.ts.map +1 -1
- package/dist/security-countermeasure-mirage.strategy.js +2 -1
- package/dist/security-countermeasure-mirage.strategy.js.map +1 -1
- package/dist/security-countermeasure-name.vo.d.ts +3 -5
- package/dist/security-countermeasure-name.vo.d.ts.map +1 -1
- package/dist/security-countermeasure-name.vo.js +4 -11
- package/dist/security-countermeasure-name.vo.js.map +1 -1
- package/dist/security-countermeasure-noop.strategy.d.ts.map +1 -1
- package/dist/security-countermeasure-noop.strategy.js +2 -1
- package/dist/security-countermeasure-noop.strategy.js.map +1 -1
- package/dist/security-countermeasure-report.strategy.d.ts.map +1 -1
- package/dist/security-countermeasure-report.strategy.js +2 -1
- package/dist/security-countermeasure-report.strategy.js.map +1 -1
- package/dist/security-countermeasure-tarpit.strategy.d.ts.map +1 -1
- package/dist/security-countermeasure-tarpit.strategy.js +2 -1
- package/dist/security-countermeasure-tarpit.strategy.js.map +1 -1
- package/dist/security-rule-and.strategy.d.ts.map +1 -1
- package/dist/security-rule-and.strategy.js +2 -1
- package/dist/security-rule-and.strategy.js.map +1 -1
- package/dist/security-rule-bait-routes.strategy.d.ts.map +1 -1
- package/dist/security-rule-bait-routes.strategy.js +2 -1
- package/dist/security-rule-bait-routes.strategy.js.map +1 -1
- package/dist/security-rule-fail.strategy.d.ts.map +1 -1
- package/dist/security-rule-fail.strategy.js +2 -1
- package/dist/security-rule-fail.strategy.js.map +1 -1
- package/dist/security-rule-honey-pot-field.strategy.d.ts.map +1 -1
- package/dist/security-rule-honey-pot-field.strategy.js +2 -1
- package/dist/security-rule-honey-pot-field.strategy.js.map +1 -1
- package/dist/security-rule-name.vo.d.ts +3 -5
- package/dist/security-rule-name.vo.d.ts.map +1 -1
- package/dist/security-rule-name.vo.js +5 -12
- package/dist/security-rule-name.vo.js.map +1 -1
- package/dist/security-rule-or.strategy.d.ts.map +1 -1
- package/dist/security-rule-or.strategy.js +2 -1
- package/dist/security-rule-or.strategy.js.map +1 -1
- package/dist/security-rule-pass.strategy.d.ts.map +1 -1
- package/dist/security-rule-pass.strategy.js +2 -1
- package/dist/security-rule-pass.strategy.js.map +1 -1
- package/dist/security-rule-user-agent.strategy.d.ts.map +1 -1
- package/dist/security-rule-user-agent.strategy.js +2 -1
- package/dist/security-rule-user-agent.strategy.js.map +1 -1
- package/dist/security-rule-violation-threshold.strategy.d.ts.map +1 -1
- package/dist/security-rule-violation-threshold.strategy.js +3 -2
- package/dist/security-rule-violation-threshold.strategy.js.map +1 -1
- package/dist/shield-body-limit.strategy.d.ts.map +1 -1
- package/dist/shield-body-limit.strategy.js +3 -2
- package/dist/shield-body-limit.strategy.js.map +1 -1
- package/dist/shield-recaptcha.strategy.d.ts.map +1 -1
- package/dist/shield-recaptcha.strategy.js +2 -1
- package/dist/shield-recaptcha.strategy.js.map +1 -1
- package/dist/smtp-host.vo.d.ts +3 -3
- package/dist/smtp-host.vo.d.ts.map +1 -1
- package/dist/smtp-host.vo.js +4 -8
- package/dist/smtp-host.vo.js.map +1 -1
- package/dist/smtp-pass.vo.d.ts +3 -3
- package/dist/smtp-pass.vo.d.ts.map +1 -1
- package/dist/smtp-pass.vo.js +4 -8
- package/dist/smtp-pass.vo.js.map +1 -1
- package/dist/smtp-port.vo.d.ts +3 -3
- package/dist/smtp-port.vo.d.ts.map +1 -1
- package/dist/smtp-user.vo.d.ts +3 -3
- package/dist/smtp-user.vo.d.ts.map +1 -1
- package/dist/smtp-user.vo.js +4 -8
- package/dist/smtp-user.vo.js.map +1 -1
- package/dist/time-zone-offset.middleware.d.ts.map +1 -1
- package/dist/time-zone-offset.middleware.js +3 -2
- package/dist/time-zone-offset.middleware.js.map +1 -1
- package/dist/timekeeper-google.adapter.d.ts +2 -1
- package/dist/timekeeper-google.adapter.d.ts.map +1 -1
- package/dist/timekeeper-google.adapter.js +2 -1
- package/dist/timekeeper-google.adapter.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/uuid.vo.d.ts +3 -3
- package/dist/uuid.vo.d.ts.map +1 -1
- package/dist/uuid.vo.js +2 -2
- package/dist/uuid.vo.js.map +1 -1
- package/dist/woodchopper-dispatcher-async.strategy.d.ts.map +1 -1
- package/dist/woodchopper-dispatcher-async.strategy.js +3 -2
- package/dist/woodchopper-dispatcher-async.strategy.js.map +1 -1
- package/dist/woodchopper.d.ts.map +1 -1
- package/dist/woodchopper.js +8 -7
- package/dist/woodchopper.js.map +1 -1
- package/package.json +8 -9
- package/readme.md +1 -2
- package/src/ab-variant-selector.service.ts +3 -2
- package/src/ab-variant-weight.vo.ts +10 -9
- package/src/basic-auth-password.vo.ts +9 -9
- package/src/basic-auth-username.vo.ts +9 -9
- package/src/binary.vo.ts +10 -17
- package/src/client-ip.vo.ts +8 -5
- package/src/client-user-agent.vo.ts +8 -8
- package/src/client.vo.ts +7 -3
- package/src/commit-sha-value.vo.ts +8 -8
- package/src/commit-sha.vo.ts +2 -1
- package/src/correlation-id.vo.ts +2 -2
- package/src/correlation.middleware.ts +3 -2
- package/src/encryption-key-value.vo.ts +8 -8
- package/src/encryption-key.vo.ts +2 -1
- package/src/environment-loader-encrypted.adapter.ts +10 -5
- package/src/environment-loader-noop.adapter.ts +10 -8
- package/src/environment-loader-process-safe.adapter.ts +14 -9
- package/src/environment-loader-process.adapter.ts +11 -6
- package/src/environment-loader.port.ts +5 -2
- package/src/event-envelope.ts +3 -3
- package/src/event-store-with-logger.adapter.ts +1 -0
- package/src/event-stream.vo.ts +7 -6
- package/src/event-validator-registry.adapter.ts +44 -0
- package/src/event-validator-registry.port.ts +2 -0
- package/src/file-draft-zip.service.ts +2 -1
- package/src/hash-bucket.vo.ts +2 -1
- package/src/hash-value.vo.ts +8 -8
- package/src/hash.vo.ts +2 -1
- package/src/hcaptcha-secret-key.vo.ts +8 -8
- package/src/hcaptcha-site-key.vo.ts +8 -8
- package/src/healthcheck.handler.ts +8 -7
- package/src/http-logger.middleware.ts +1 -1
- package/src/i18n.service.ts +2 -1
- package/src/image-info-noop.adapter.ts +3 -2
- package/src/image-info-sharp.adapter.ts +4 -3
- package/src/in-flight-requests-tracker.service.ts +3 -2
- package/src/index.ts +1 -2
- package/src/logger.port.ts +1 -3
- package/src/mailer-content-html.vo.ts +9 -9
- package/src/mailer-subject.vo.ts +9 -9
- package/src/modules/history/event-handlers/onHistoryPopulatedEvent.ts +2 -1
- package/src/modules/history/events/HISTORY_CLEARED_EVENT.ts +5 -5
- package/src/modules/history/events/HISTORY_POPULATED_EVENT.ts +5 -5
- package/src/modules/history/value-objects/history-created-at.ts +2 -2
- package/src/modules/history/value-objects/history-operation.ts +6 -5
- package/src/modules/history/value-objects/history-payload.ts +15 -9
- package/src/modules/history/value-objects/history-subject.ts +7 -6
- package/src/modules/history/value-objects/history.ts +5 -5
- package/src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts +2 -1
- package/src/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.ts +5 -5
- package/src/modules/preferences/events/USER_LANGUAGE_SET_EVENT.ts +5 -5
- package/src/modules/system/events/HOUR_HAS_PASSED_EVENT.ts +5 -5
- package/src/modules/system/events/MINUTE_HAS_PASSED_EVENT.ts +5 -5
- package/src/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.ts +8 -8
- package/src/modules/system/services/passage-of-time-hourly.service.ts +2 -1
- package/src/modules/system/services/passage-of-time-minute.service.ts +2 -1
- package/src/node-env.vo.ts +0 -6
- package/src/nonce-provider-crypto.adapter.ts +2 -1
- package/src/nonce-provider-noop.adapter.ts +2 -1
- package/src/nonce-value.vo.ts +8 -8
- package/src/port.vo.ts +12 -10
- package/src/prerequisite-verifier-outside-connectivity.adapter.ts +2 -1
- package/src/recaptcha-secret-key.vo.ts +8 -8
- package/src/recaptcha-site-key.vo.ts +8 -8
- package/src/redactor-error-cause-depth-limit.strategy.ts +3 -2
- package/src/redactor-metadata-compact-array.strategy.ts +2 -1
- package/src/redactor-metadata-compact-object.strategy.ts +2 -1
- package/src/remote-file-storage-disk.adapter.ts +2 -1
- package/src/retry-backoff-exponential.strategy.ts +2 -1
- package/src/retry-backoff-fibonacci.strategy.ts +2 -1
- package/src/retry-backoff-linear.strategy.ts +2 -1
- package/src/retry.service.ts +2 -1
- package/src/security-countermeasure-ban.strategy.ts +3 -2
- package/src/security-countermeasure-mirage.strategy.ts +2 -1
- package/src/security-countermeasure-name.vo.ts +8 -12
- package/src/security-countermeasure-noop.strategy.ts +2 -1
- package/src/security-countermeasure-report.strategy.ts +2 -1
- package/src/security-countermeasure-tarpit.strategy.ts +2 -1
- package/src/security-rule-and.strategy.ts +2 -1
- package/src/security-rule-bait-routes.strategy.ts +2 -1
- package/src/security-rule-fail.strategy.ts +2 -1
- package/src/security-rule-honey-pot-field.strategy.ts +2 -1
- package/src/security-rule-name.vo.ts +9 -13
- package/src/security-rule-or.strategy.ts +2 -1
- package/src/security-rule-pass.strategy.ts +2 -1
- package/src/security-rule-user-agent.strategy.ts +2 -1
- package/src/security-rule-violation-threshold.strategy.ts +3 -2
- package/src/shield-body-limit.strategy.ts +3 -2
- package/src/shield-recaptcha.strategy.ts +3 -1
- package/src/smtp-host.vo.ts +9 -9
- package/src/smtp-pass.vo.ts +9 -9
- package/src/smtp-port.vo.ts +2 -2
- package/src/smtp-user.vo.ts +9 -9
- package/src/time-zone-offset.middleware.ts +3 -2
- package/src/timekeeper-google.adapter.ts +2 -1
- package/src/uuid.vo.ts +3 -3
- package/src/woodchopper-dispatcher-async.strategy.ts +3 -2
- package/src/woodchopper.ts +8 -7
- package/dist/environment-schema.port.d.ts +0 -4
- package/dist/environment-schema.port.d.ts.map +0 -1
- package/dist/environment-schema.port.js +0 -2
- package/dist/environment-schema.port.js.map +0 -1
- package/dist/event-validator-registry-zod.adapter.d.ts +0 -24
- package/dist/event-validator-registry-zod.adapter.d.ts.map +0 -1
- package/dist/event-validator-registry-zod.adapter.js +0 -25
- package/dist/event-validator-registry-zod.adapter.js.map +0 -1
- package/src/environment-schema.port.ts +0 -3
- package/src/event-validator-registry-zod.adapter.ts +0 -47
package/dist/uuid.vo.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
export declare const UUIDError: {
|
|
3
3
|
readonly Type: "uuid.type";
|
|
4
4
|
};
|
|
5
|
-
export declare const UUID:
|
|
6
|
-
export type UUIDType =
|
|
5
|
+
export declare const UUID: v.SchemaWithPipe<readonly [v.StringSchema<"uuid.type">, v.UuidAction<string, "uuid.type">]>;
|
|
6
|
+
export type UUIDType = v.InferOutput<typeof UUID>;
|
|
7
7
|
//# sourceMappingURL=uuid.vo.d.ts.map
|
package/dist/uuid.vo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.vo.d.ts","sourceRoot":"","sources":["../src/uuid.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"uuid.vo.d.ts","sourceRoot":"","sources":["../src/uuid.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,SAAS;;CAAiC,CAAC;AAExD,eAAO,MAAM,IAAI,6FAA2D,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC"}
|
package/dist/uuid.vo.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
export const UUIDError = { Type: "uuid.type" };
|
|
3
|
-
export const UUID =
|
|
3
|
+
export const UUID = v.pipe(v.string(UUIDError.Type), v.uuid(UUIDError.Type));
|
|
4
4
|
//# sourceMappingURL=uuid.vo.js.map
|
package/dist/uuid.vo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.vo.js","sourceRoot":"","sources":["../src/uuid.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"uuid.vo.js","sourceRoot":"","sources":["../src/uuid.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,WAAW,EAAW,CAAC;AAExD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -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;
|
|
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;AAEtC,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,eAAO,MAAM,+BAA+B;uCACP,KAAK,CAAC,mBAAmB;CAE7D,CAAC;AAEF,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;gBAGP,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,GAAE,KAAK,CAAC,mBAAyD;IAK5F,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAWrC,KAAK,IAAI,IAAI;YAqBC,GAAG;YAoBH,YAAY;YAKZ,YAAY;CAK3B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import * as v from "valibot";
|
|
2
3
|
var WoodchopperDispatcherAsyncState;
|
|
3
4
|
(function (WoodchopperDispatcherAsyncState) {
|
|
4
5
|
WoodchopperDispatcherAsyncState["running"] = "running";
|
|
@@ -14,7 +15,7 @@ export class WoodchopperDispatcherAsync {
|
|
|
14
15
|
buffer = [];
|
|
15
16
|
state = WoodchopperDispatcherAsyncState.running;
|
|
16
17
|
wake;
|
|
17
|
-
constructor(sink, capacity = tools.IntegerPositive
|
|
18
|
+
constructor(sink, capacity = v.parse(tools.IntegerPositive, 256)) {
|
|
18
19
|
this.sink = sink;
|
|
19
20
|
this.capacity = capacity;
|
|
20
21
|
this.run();
|
|
@@ -35,7 +36,7 @@ export class WoodchopperDispatcherAsync {
|
|
|
35
36
|
// Stryker restore all
|
|
36
37
|
this.state = WoodchopperDispatcherAsyncState.closed;
|
|
37
38
|
if (this.buffer.length > 0) {
|
|
38
|
-
const message = WoodchopperDispatcherAsyncError.ClosedWithBufferedEntries(tools.IntegerPositive
|
|
39
|
+
const message = WoodchopperDispatcherAsyncError.ClosedWithBufferedEntries(v.parse(tools.IntegerPositive, this.buffer.length));
|
|
39
40
|
this.onError?.(new Error(message));
|
|
40
41
|
}
|
|
41
42
|
this.buffer.length = 0;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woodchopper.d.ts","sourceRoot":"","sources":["../src/woodchopper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"woodchopper.d.ts","sourceRoot":"","sources":["../src/woodchopper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EACL,KAAK,aAAa,EAIlB,KAAK,UAAU,EACf,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,qBAAqB,CAAC;IAClC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,8BAA8B,CAAC;CAC9C,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAYzC,qBAAa,WAAY,YAAW,UAAU,EAAE,uBAAuB;IAKnE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAG7B,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,YAAY;IAUrC,OAAO,CAAC,GAAG;IA6CX,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAkD;IAC5E,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAiD;IACzE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAiD;IACzE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAiD;IACzE,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAoD;IAClF,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAkD;IAC5E,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAkD;IAE5E,KAAK;IAOL,QAAQ,IAAI,mBAAmB;CAGhC"}
|
package/dist/woodchopper.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import * as v from "valibot";
|
|
2
3
|
import { ErrorNormalizer } from "./error-normalizer.service";
|
|
3
4
|
import { LogLevelEnum, } from "./logger.port";
|
|
4
5
|
import { LoggerState, } from "./logger-stats-provider.port";
|
|
5
6
|
import { WoodchopperStats } from "./woodchopper-stats.service";
|
|
6
7
|
const LOG_LEVEL_PRIORITY = {
|
|
7
|
-
[LogLevelEnum.error]: tools.IntegerNonNegative
|
|
8
|
-
[LogLevelEnum.warn]: tools.IntegerNonNegative
|
|
9
|
-
[LogLevelEnum.info]: tools.IntegerNonNegative
|
|
10
|
-
[LogLevelEnum.http]: tools.IntegerNonNegative
|
|
11
|
-
[LogLevelEnum.verbose]: tools.IntegerNonNegative
|
|
12
|
-
[LogLevelEnum.debug]: tools.IntegerNonNegative
|
|
13
|
-
[LogLevelEnum.silly]: tools.IntegerNonNegative
|
|
8
|
+
[LogLevelEnum.error]: v.parse(tools.IntegerNonNegative, 0),
|
|
9
|
+
[LogLevelEnum.warn]: v.parse(tools.IntegerNonNegative, 1),
|
|
10
|
+
[LogLevelEnum.info]: v.parse(tools.IntegerNonNegative, 2),
|
|
11
|
+
[LogLevelEnum.http]: v.parse(tools.IntegerNonNegative, 3),
|
|
12
|
+
[LogLevelEnum.verbose]: v.parse(tools.IntegerNonNegative, 4),
|
|
13
|
+
[LogLevelEnum.debug]: v.parse(tools.IntegerNonNegative, 5),
|
|
14
|
+
[LogLevelEnum.silly]: v.parse(tools.IntegerNonNegative, 6),
|
|
14
15
|
};
|
|
15
16
|
export class Woodchopper {
|
|
16
17
|
config;
|
package/dist/woodchopper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woodchopper.js","sourceRoot":"","sources":["../src/woodchopper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"woodchopper.js","sourceRoot":"","sources":["../src/woodchopper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bgord/bun",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Bartosz Gordon",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"@biomejs/biome": "2.4.7",
|
|
24
24
|
"@commitlint/cli": "20.5.0",
|
|
25
25
|
"@commitlint/config-conventional": "20.5.0",
|
|
26
|
+
"@standard-schema/spec": "1.1.0",
|
|
26
27
|
"@stryker-mutator/core": "9.6.0",
|
|
27
28
|
"@types/bun": "1.3.10",
|
|
28
29
|
"@types/nodemailer": "7.0.11",
|
|
@@ -30,20 +31,19 @@
|
|
|
30
31
|
"better-auth": "1.5.5",
|
|
31
32
|
"cspell": "9.7.0",
|
|
32
33
|
"csv": "6.4.1",
|
|
33
|
-
"knip": "5.
|
|
34
|
+
"knip": "5.87.0",
|
|
34
35
|
"lefthook": "2.1.4",
|
|
35
36
|
"lockfile-lint": "5.0.0",
|
|
36
37
|
"nodemailer": "8.0.2",
|
|
37
38
|
"only-allow": "1.2.2",
|
|
38
|
-
"resend": "6.9.
|
|
39
|
+
"resend": "6.9.4",
|
|
39
40
|
"sharp": "0.34.5",
|
|
40
41
|
"shellcheck": "4.1.0",
|
|
41
42
|
"typescript": "5.9.3",
|
|
42
|
-
"yazl": "3.3.1"
|
|
43
|
-
"zod": "4.3.6"
|
|
43
|
+
"yazl": "3.3.1"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@bgord/tools": "1.
|
|
46
|
+
"@bgord/tools": "1.4.1",
|
|
47
47
|
"emittery": "2.0.0",
|
|
48
48
|
"hono": "4.12.8",
|
|
49
49
|
"node-cache": "5.1.2"
|
|
@@ -52,10 +52,9 @@
|
|
|
52
52
|
"better-auth": "1.5.5",
|
|
53
53
|
"csv": "6.4.1",
|
|
54
54
|
"nodemailer": "8.0.2",
|
|
55
|
-
"resend": "6.9.
|
|
55
|
+
"resend": "6.9.4",
|
|
56
56
|
"sharp": "0.34.5",
|
|
57
|
-
"yazl": "3.3.1"
|
|
58
|
-
"zod": "4.3.6"
|
|
57
|
+
"yazl": "3.3.1"
|
|
59
58
|
},
|
|
60
59
|
"peerDependenciesMeta": {
|
|
61
60
|
"better-auth": {
|
package/readme.md
CHANGED
|
@@ -107,7 +107,6 @@ src/
|
|
|
107
107
|
├── environment-loader-process-safe.adapter.ts
|
|
108
108
|
├── environment-loader-process.adapter.ts
|
|
109
109
|
├── environment-loader.port.ts
|
|
110
|
-
├── environment-schema.port.ts
|
|
111
110
|
├── error-normalizer.service.ts
|
|
112
111
|
├── etag-extractor-hono.middleware.ts
|
|
113
112
|
├── etag-extractor.middleware.ts
|
|
@@ -130,7 +129,7 @@ src/
|
|
|
130
129
|
├── event-store.adapter.ts
|
|
131
130
|
├── event-store.port.ts
|
|
132
131
|
├── event-stream.vo.ts
|
|
133
|
-
├── event-validator-registry
|
|
132
|
+
├── event-validator-registry.adapter.ts
|
|
134
133
|
├── event-validator-registry.port.ts
|
|
135
134
|
├── event.types.ts
|
|
136
135
|
├── file-cleaner-forgiving.adapter.ts
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import * as v from "valibot";
|
|
2
3
|
import type { AbVariant } from "./ab-variant.vo";
|
|
3
4
|
import type { AbVariants } from "./ab-variants.vo";
|
|
4
5
|
import type { Hash } from "./hash.vo";
|
|
@@ -14,10 +15,10 @@ export class AbVariantSelector {
|
|
|
14
15
|
select(hash: Hash): AbVariant {
|
|
15
16
|
const bucket = HashBucket.fromHash(hash);
|
|
16
17
|
|
|
17
|
-
let cumulative = tools.IntegerNonNegative
|
|
18
|
+
let cumulative = v.parse(tools.IntegerNonNegative, 0);
|
|
18
19
|
|
|
19
20
|
for (const variant of this.variants.variants) {
|
|
20
|
-
cumulative = tools.IntegerNonNegative
|
|
21
|
+
cumulative = v.parse(tools.IntegerNonNegative, cumulative + variant.config.weight);
|
|
21
22
|
|
|
22
23
|
if (bucket.isLessThan(cumulative)) return variant;
|
|
23
24
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const AbVariantWeightErrors = { MinMax: "ab.variant.weight.min.max" };
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
.
|
|
9
|
-
.
|
|
10
|
-
|
|
11
|
-
.brand("AbVariantWeight")
|
|
5
|
+
export const AbVariantWeight = v.pipe(
|
|
6
|
+
v.number(AbVariantWeightErrors.MinMax),
|
|
7
|
+
v.integer(AbVariantWeightErrors.MinMax),
|
|
8
|
+
v.minValue(1, AbVariantWeightErrors.MinMax),
|
|
9
|
+
v.maxValue(99, AbVariantWeightErrors.MinMax),
|
|
10
|
+
// Stryker disable next-line StringLiteral
|
|
11
|
+
v.brand("AbVariantWeight"),
|
|
12
|
+
);
|
|
12
13
|
|
|
13
|
-
export type AbVariantWeightType =
|
|
14
|
+
export type AbVariantWeightType = v.InferOutput<typeof AbVariantWeight>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const BasicAuthPasswordError = {
|
|
4
4
|
Type: "basic.auth.password.type",
|
|
@@ -6,12 +6,12 @@ export const BasicAuthPasswordError = {
|
|
|
6
6
|
TooLong: "basic.auth.password.too.long",
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
|
|
9
|
+
export const BasicAuthPassword = v.pipe(
|
|
10
|
+
v.string(BasicAuthPasswordError.Type),
|
|
11
|
+
v.minLength(1, BasicAuthPasswordError.Empty),
|
|
12
|
+
v.maxLength(128, BasicAuthPasswordError.TooLong),
|
|
13
|
+
// Stryker disable next-line StringLiteral
|
|
14
|
+
v.brand("BasicAuthPassword"),
|
|
15
|
+
);
|
|
16
16
|
|
|
17
|
-
export type BasicAuthPasswordType =
|
|
17
|
+
export type BasicAuthPasswordType = v.InferOutput<typeof BasicAuthPassword>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const BasicAuthUsernameError = {
|
|
4
4
|
Type: "basic.auth.username.type",
|
|
@@ -6,12 +6,12 @@ export const BasicAuthUsernameError = {
|
|
|
6
6
|
TooLong: "basic.auth.username.too.long",
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
|
|
9
|
+
export const BasicAuthUsername = v.pipe(
|
|
10
|
+
v.string(BasicAuthUsernameError.Type),
|
|
11
|
+
v.minLength(1, BasicAuthUsernameError.Empty),
|
|
12
|
+
v.maxLength(128, BasicAuthUsernameError.TooLong),
|
|
13
|
+
// Stryker disable next-line StringLiteral
|
|
14
|
+
v.brand("BasicAuthUsername"),
|
|
15
|
+
);
|
|
16
16
|
|
|
17
|
-
export type BasicAuthUsernameType =
|
|
17
|
+
export type BasicAuthUsernameType = v.InferOutput<typeof BasicAuthUsername>;
|
package/src/binary.vo.ts
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
|
-
export const BinaryError = {
|
|
4
|
-
Type: "binary.type",
|
|
5
|
-
Empty: "binary.empty",
|
|
6
|
-
TooLong: "binary.too.long",
|
|
7
|
-
BadChars: "binary.bad.chars",
|
|
8
|
-
};
|
|
3
|
+
export const BinaryError = { Type: "binary.type", BadChars: "binary.bad.chars" };
|
|
9
4
|
|
|
10
5
|
// One to sixty four letters, digits, hyphens, or underscores
|
|
11
|
-
const CHARS_WHITELIST = /^[a-zA-Z0-
|
|
6
|
+
const CHARS_WHITELIST = /^[a-zA-Z0-9_-]{1,64}$/;
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
.
|
|
18
|
-
|
|
19
|
-
.regex(CHARS_WHITELIST, BinaryError.BadChars)
|
|
20
|
-
.brand("Binary");
|
|
8
|
+
export const Binary = v.pipe(
|
|
9
|
+
v.string(BinaryError.Type),
|
|
10
|
+
v.regex(CHARS_WHITELIST, BinaryError.BadChars),
|
|
11
|
+
// Stryker disable next-line StringLiteral
|
|
12
|
+
v.brand("Binary"),
|
|
13
|
+
);
|
|
21
14
|
|
|
22
|
-
export type BinaryType =
|
|
15
|
+
export type BinaryType = v.InferOutput<typeof Binary>;
|
package/src/client-ip.vo.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const ClientIpError = { Invalid: "client.ip.invalid" };
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export const ClientIp = v.pipe(
|
|
6
|
+
v.string(ClientIpError.Invalid),
|
|
7
|
+
v.ipv4(ClientIpError.Invalid),
|
|
8
|
+
// Stryker disable next-line StringLiteral
|
|
9
|
+
v.brand("ClientIp"),
|
|
10
|
+
);
|
|
8
11
|
|
|
9
|
-
export type ClientIpType =
|
|
12
|
+
export type ClientIpType = v.InferOutput<typeof ClientIp>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const ClientUserAgentError = {
|
|
4
4
|
Type: "client.user.agent.type",
|
|
@@ -8,11 +8,11 @@ export const ClientUserAgentError = {
|
|
|
8
8
|
// ASCII printable characters
|
|
9
9
|
const CHARS_BLACKLIST = /^[\x20-\x7E]{1,256}$/;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
.
|
|
16
|
-
|
|
11
|
+
export const ClientUserAgent = v.pipe(
|
|
12
|
+
v.string(ClientUserAgentError.Type),
|
|
13
|
+
v.regex(CHARS_BLACKLIST, ClientUserAgentError.Invalid),
|
|
14
|
+
// Stryker disable next-line StringLiteral
|
|
15
|
+
v.brand("ClientUserAgent"),
|
|
16
|
+
);
|
|
17
17
|
|
|
18
|
-
export type ClientUserAgentType =
|
|
18
|
+
export type ClientUserAgentType = v.InferOutput<typeof ClientUserAgent>;
|
package/src/client.vo.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
1
2
|
import { ClientIp, type ClientIpType } from "./client-ip.vo";
|
|
2
3
|
import { ClientUserAgent, type ClientUserAgentType } from "./client-user-agent.vo";
|
|
3
4
|
|
|
@@ -8,10 +9,13 @@ export class Client {
|
|
|
8
9
|
) {}
|
|
9
10
|
|
|
10
11
|
static fromParts(ip: string | undefined, ua: string | undefined): Client {
|
|
11
|
-
const parsedIp =
|
|
12
|
-
const parsedUa =
|
|
12
|
+
const parsedIp = v.safeParse(ClientIp, ip);
|
|
13
|
+
const parsedUa = v.safeParse(ClientUserAgent, ua);
|
|
13
14
|
|
|
14
|
-
return new Client(parsedIp.
|
|
15
|
+
if (parsedIp.success && parsedUa.success) return new Client(parsedIp.output, parsedUa.output);
|
|
16
|
+
if (parsedIp.success && !parsedUa.success) return new Client(parsedIp.output, undefined);
|
|
17
|
+
if (!parsedIp.success && parsedUa.success) return new Client(undefined, parsedUa.output);
|
|
18
|
+
return new Client(undefined, undefined);
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
static fromSafeParts(ip: ClientIpType | undefined, ua: ClientUserAgentType | undefined): Client {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const CommitShaValueError = {
|
|
4
4
|
Type: "commit.sha.value.type",
|
|
@@ -8,11 +8,11 @@ export const CommitShaValueError = {
|
|
|
8
8
|
// 40 hex chars allowed
|
|
9
9
|
const CHARS_WHITELIST = /^[a-fA-F0-9]{40}$/;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
.
|
|
16
|
-
|
|
11
|
+
export const CommitShaValue = v.pipe(
|
|
12
|
+
v.string(CommitShaValueError.Type),
|
|
13
|
+
v.regex(CHARS_WHITELIST, CommitShaValueError.InvalidHex),
|
|
14
|
+
// Stryker disable next-line StringLiteral
|
|
15
|
+
v.brand("CommitShaValue"),
|
|
16
|
+
);
|
|
17
17
|
|
|
18
|
-
export type CommitShaValueType =
|
|
18
|
+
export type CommitShaValueType = v.InferOutput<typeof CommitShaValue>;
|
package/src/commit-sha.vo.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
1
2
|
import { CommitShaValue, type CommitShaValueType } from "./commit-sha-value.vo";
|
|
2
3
|
|
|
3
4
|
export class CommitSha {
|
|
4
5
|
private constructor(private readonly value: CommitShaValueType) {}
|
|
5
6
|
|
|
6
7
|
static fromString(candidate: string): CommitSha {
|
|
7
|
-
return new CommitSha(
|
|
8
|
+
return new CommitSha(v.parse(CommitShaValue, candidate));
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
static fromStringSafe(value: CommitShaValueType): CommitSha {
|
package/src/correlation-id.vo.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type * as
|
|
1
|
+
import type * as v from "valibot";
|
|
2
2
|
import { UUID } from "./uuid.vo";
|
|
3
3
|
|
|
4
4
|
export const CorrelationId = UUID;
|
|
5
5
|
|
|
6
|
-
export type CorrelationIdType =
|
|
6
|
+
export type CorrelationIdType = v.InferOutput<typeof CorrelationId>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
1
2
|
import type { IdProviderPort } from "./id-provider.port";
|
|
2
3
|
import type { HasRequestHeader } from "./request-context.port";
|
|
3
4
|
import { UUID, type UUIDType } from "./uuid.vo";
|
|
@@ -12,9 +13,9 @@ export class CorrelationMiddleware {
|
|
|
12
13
|
evaluate(context: HasRequestHeader): UUIDType {
|
|
13
14
|
const incoming = context.request.header(CorrelationMiddleware.HEADER_NAME);
|
|
14
15
|
|
|
15
|
-
const existing =
|
|
16
|
+
const existing = v.safeParse(UUID, incoming);
|
|
16
17
|
|
|
17
|
-
if (existing.success) return existing.
|
|
18
|
+
if (existing.success) return existing.output;
|
|
18
19
|
return this.deps.IdProvider.generate();
|
|
19
20
|
}
|
|
20
21
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
|
|
3
3
|
export const EncryptionKeyValueError = {
|
|
4
4
|
Type: "encryption.key.value.type",
|
|
@@ -8,11 +8,11 @@ export const EncryptionKeyValueError = {
|
|
|
8
8
|
// 64 hex chars allowed
|
|
9
9
|
const CHARS_WHITELIST = /^[a-fA-F0-9]{64}$/;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
.
|
|
16
|
-
|
|
11
|
+
export const EncryptionKeyValue = v.pipe(
|
|
12
|
+
v.string(EncryptionKeyValueError.Type),
|
|
13
|
+
v.regex(CHARS_WHITELIST, EncryptionKeyValueError.InvalidHex),
|
|
14
|
+
// Stryker disable next-line StringLiteral
|
|
15
|
+
v.brand("EncryptionKeyValue"),
|
|
16
|
+
);
|
|
17
17
|
|
|
18
|
-
export type EncryptionKeyValueType =
|
|
18
|
+
export type EncryptionKeyValueType = v.InferOutput<typeof EncryptionKeyValue>;
|
package/src/encryption-key.vo.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
1
2
|
import { EncryptionKeyValue, type EncryptionKeyValueType } from "./encryption-key-value.vo";
|
|
2
3
|
|
|
3
4
|
export const EncryptionKeyError = { InvalidBuffer: "encryption.key.invalid.buffer" };
|
|
@@ -10,7 +11,7 @@ export class EncryptionKey {
|
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
static fromString(candidate: string): EncryptionKey {
|
|
13
|
-
return new EncryptionKey(
|
|
14
|
+
return new EncryptionKey(v.parse(EncryptionKeyValue, candidate));
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
static fromBytes(buffer: Uint8Array): EncryptionKey {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import util from "node:util";
|
|
2
2
|
import type * as tools from "@bgord/tools";
|
|
3
3
|
import type { EncryptionPort } from "./encryption.port";
|
|
4
|
-
import
|
|
5
|
-
EnvironmentLoaderConfig,
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import {
|
|
5
|
+
type EnvironmentLoaderConfig,
|
|
6
|
+
EnvironmentLoaderError,
|
|
7
|
+
type EnvironmentLoaderPort,
|
|
8
|
+
type EnvironmentResultType,
|
|
8
9
|
} from "./environment-loader.port";
|
|
9
10
|
|
|
10
11
|
type Dependencies = { Encryption: EncryptionPort };
|
|
@@ -21,6 +22,10 @@ export class EnvironmentLoaderEncryptedAdapter<T extends object> implements Envi
|
|
|
21
22
|
const plaintext = new TextDecoder().decode(file);
|
|
22
23
|
const env = util.parseEnv(plaintext);
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
const result = this.config.EnvironmentSchema["~standard"].validate(env);
|
|
26
|
+
if (result instanceof Promise) throw new Error(EnvironmentLoaderError.NoAsyncSchema);
|
|
27
|
+
// Stryker disable next-line OptionalChaining
|
|
28
|
+
if (result.issues) throw new Error(result.issues[0]?.message);
|
|
29
|
+
return Object.freeze({ ...result.value, type: this.config.type });
|
|
25
30
|
}
|
|
26
31
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
EnvironmentLoaderConfig,
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import {
|
|
2
|
+
type EnvironmentLoaderConfig,
|
|
3
|
+
EnvironmentLoaderError,
|
|
4
|
+
type EnvironmentLoaderPort,
|
|
5
|
+
type EnvironmentResultType,
|
|
5
6
|
} from "./environment-loader.port";
|
|
6
7
|
|
|
7
8
|
export class EnvironmentLoaderNoopAdapter<T extends object> implements EnvironmentLoaderPort<T> {
|
|
@@ -11,9 +12,10 @@ export class EnvironmentLoaderNoopAdapter<T extends object> implements Environme
|
|
|
11
12
|
) {}
|
|
12
13
|
|
|
13
14
|
async load(): Promise<Readonly<EnvironmentResultType<T>>> {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const result = this.config.EnvironmentSchema["~standard"].validate(this.deterministic);
|
|
16
|
+
if (result instanceof Promise) throw new Error(EnvironmentLoaderError.NoAsyncSchema);
|
|
17
|
+
// Stryker disable next-line OptionalChaining
|
|
18
|
+
if (result.issues) throw new Error(result.issues[0]?.message);
|
|
19
|
+
return Object.freeze({ ...result.value, type: this.config.type });
|
|
18
20
|
}
|
|
19
21
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { CacheResolverStrategy } from "./cache-resolver.strategy";
|
|
2
|
-
import
|
|
3
|
-
EnvironmentLoaderConfig,
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import {
|
|
3
|
+
type EnvironmentLoaderConfig,
|
|
4
|
+
EnvironmentLoaderError,
|
|
5
|
+
type EnvironmentLoaderPort,
|
|
6
|
+
type EnvironmentResultType,
|
|
6
7
|
} from "./environment-loader.port";
|
|
7
8
|
import type { HashContentStrategy } from "./hash-content.strategy";
|
|
8
9
|
import { SubjectApplicationResolver } from "./subject-application-resolver.vo";
|
|
@@ -21,12 +22,16 @@ export class EnvironmentLoaderProcessSafeAdapter<T extends object> implements En
|
|
|
21
22
|
const resolver = new SubjectApplicationResolver([new SubjectSegmentFixedStrategy("env")], this.deps);
|
|
22
23
|
const subject = await resolver.resolve();
|
|
23
24
|
|
|
24
|
-
const
|
|
25
|
-
this.config.EnvironmentSchema.
|
|
26
|
-
|
|
25
|
+
const parsed = await this.deps.CacheResolver.resolve(subject.hex, async () => {
|
|
26
|
+
const result = this.config.EnvironmentSchema["~standard"].validate(this.env);
|
|
27
|
+
if (result instanceof Promise) throw new Error(EnvironmentLoaderError.NoAsyncSchema);
|
|
28
|
+
// Stryker disable next-line OptionalChaining
|
|
29
|
+
if (result.issues) throw new Error(result.issues[0]?.message);
|
|
30
|
+
return result.value;
|
|
31
|
+
});
|
|
27
32
|
|
|
28
|
-
for (const key of Object.keys(
|
|
33
|
+
for (const key of Object.keys(parsed)) delete process.env[key];
|
|
29
34
|
|
|
30
|
-
return Object.freeze({ ...
|
|
35
|
+
return Object.freeze({ ...parsed, type: this.config.type });
|
|
31
36
|
}
|
|
32
37
|
}
|