@bgord/bun 1.21.11 → 1.22.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/alert-channel-composite.adapter.d.ts.map +1 -1
- package/dist/alert-channel-composite.adapter.js +1 -0
- package/dist/alert-channel-composite.adapter.js.map +1 -1
- package/dist/api-version.middleware.d.ts +1 -0
- package/dist/api-version.middleware.d.ts.map +1 -1
- package/dist/api-version.middleware.js +3 -1
- package/dist/api-version.middleware.js.map +1 -1
- package/dist/cache-codec-identity.strategy.d.ts +7 -0
- package/dist/cache-codec-identity.strategy.d.ts.map +1 -0
- package/dist/cache-codec-identity.strategy.js +9 -0
- package/dist/cache-codec-identity.strategy.js.map +1 -0
- package/dist/cache-codec-sitemap-entries.strategy.d.ts +11 -0
- package/dist/cache-codec-sitemap-entries.strategy.d.ts.map +1 -0
- package/dist/cache-codec-sitemap-entries.strategy.js +13 -0
- package/dist/cache-codec-sitemap-entries.strategy.js.map +1 -0
- package/dist/cache-codec.strategy.d.ts +6 -0
- package/dist/cache-codec.strategy.d.ts.map +1 -0
- package/dist/cache-codec.strategy.js +2 -0
- package/dist/cache-codec.strategy.js.map +1 -0
- package/dist/cache-repository-node-cache.adapter.d.ts +3 -2
- package/dist/cache-repository-node-cache.adapter.d.ts.map +1 -1
- package/dist/cache-repository-node-cache.adapter.js +6 -4
- package/dist/cache-repository-node-cache.adapter.js.map +1 -1
- package/dist/cache-repository-noop.adapter.d.ts +3 -2
- package/dist/cache-repository-noop.adapter.d.ts.map +1 -1
- package/dist/cache-repository-noop.adapter.js.map +1 -1
- package/dist/cache-repository-redis.adapter.d.ts +3 -2
- package/dist/cache-repository-redis.adapter.d.ts.map +1 -1
- package/dist/cache-repository-redis.adapter.js +8 -5
- package/dist/cache-repository-redis.adapter.js.map +1 -1
- package/dist/cache-repository.port.d.ts +3 -2
- package/dist/cache-repository.port.d.ts.map +1 -1
- package/dist/cache-resolver-noop.strategy.d.ts +8 -0
- package/dist/cache-resolver-noop.strategy.d.ts.map +1 -0
- package/dist/cache-resolver-noop.strategy.js +7 -0
- package/dist/cache-resolver-noop.strategy.js.map +1 -0
- package/dist/cache-resolver-read-through.strategy.d.ts +15 -0
- package/dist/cache-resolver-read-through.strategy.d.ts.map +1 -0
- package/dist/cache-resolver-read-through.strategy.js +21 -0
- package/dist/cache-resolver-read-through.strategy.js.map +1 -0
- package/dist/cache-resolver.strategy.d.ts +2 -9
- package/dist/cache-resolver.strategy.d.ts.map +1 -1
- package/dist/cache-resolver.strategy.js +1 -5
- package/dist/cache-resolver.strategy.js.map +1 -1
- package/dist/cache-value.vo.d.ts +6 -0
- package/dist/cache-value.vo.d.ts.map +1 -0
- package/dist/cache-value.vo.js +2 -0
- package/dist/cache-value.vo.js.map +1 -0
- package/dist/correlation-id.vo.d.ts.map +1 -1
- package/dist/correlation-id.vo.js +1 -0
- package/dist/correlation-id.vo.js.map +1 -1
- package/dist/cron-scheduler-with-logger.adapter.d.ts +3 -0
- package/dist/cron-scheduler-with-logger.adapter.d.ts.map +1 -1
- package/dist/cron-scheduler-with-logger.adapter.js +29 -7
- package/dist/cron-scheduler-with-logger.adapter.js.map +1 -1
- package/dist/cron-task-handler-with-logger.strategy.js +1 -1
- package/dist/cron-task-handler-with-logger.strategy.js.map +1 -1
- package/dist/crypto-key-provider-with-memo.adapter.d.ts +12 -0
- package/dist/crypto-key-provider-with-memo.adapter.d.ts.map +1 -0
- package/dist/crypto-key-provider-with-memo.adapter.js +17 -0
- package/dist/crypto-key-provider-with-memo.adapter.js.map +1 -0
- package/dist/environment-loader-process-safe.adapter.d.ts +3 -1
- package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process-safe.adapter.js +4 -2
- package/dist/environment-loader-process-safe.adapter.js.map +1 -1
- package/dist/event-store-with-logger.adapter.d.ts +3 -0
- package/dist/event-store-with-logger.adapter.d.ts.map +1 -1
- package/dist/event-store-with-logger.adapter.js +88 -27
- package/dist/event-store-with-logger.adapter.js.map +1 -1
- package/dist/event-stream.vo.d.ts.map +1 -1
- package/dist/event-stream.vo.js +3 -1
- package/dist/event-stream.vo.js.map +1 -1
- package/dist/file-draft-tar-gz.service.d.ts +8 -0
- package/dist/file-draft-tar-gz.service.d.ts.map +1 -0
- package/dist/file-draft-tar-gz.service.js +19 -0
- package/dist/file-draft-tar-gz.service.js.map +1 -0
- package/dist/file-reader-json-with-cache.adapter.d.ts +1 -0
- package/dist/file-reader-json-with-cache.adapter.d.ts.map +1 -1
- package/dist/file-reader-json-with-cache.adapter.js +3 -1
- package/dist/file-reader-json-with-cache.adapter.js.map +1 -1
- package/dist/file-reader-text-with-cache.adapter.d.ts +1 -0
- package/dist/file-reader-text-with-cache.adapter.d.ts.map +1 -1
- package/dist/file-reader-text-with-cache.adapter.js +3 -1
- package/dist/file-reader-text-with-cache.adapter.js.map +1 -1
- package/dist/healthcheck-hono.handler.js +2 -2
- package/dist/healthcheck-hono.handler.js.map +1 -1
- package/dist/healthcheck.handler.d.ts +1 -0
- package/dist/healthcheck.handler.d.ts.map +1 -1
- package/dist/healthcheck.handler.js +1 -0
- package/dist/healthcheck.handler.js.map +1 -1
- package/dist/http-logger-hono.middleware.d.ts.map +1 -1
- package/dist/http-logger-hono.middleware.js +0 -3
- package/dist/http-logger-hono.middleware.js.map +1 -1
- package/dist/http-logger.middleware.d.ts +0 -1
- package/dist/http-logger.middleware.d.ts.map +1 -1
- package/dist/http-logger.middleware.js +0 -1
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/idempotency-store-cache.adapter.d.ts +13 -0
- package/dist/idempotency-store-cache.adapter.d.ts.map +1 -0
- package/dist/idempotency-store-cache.adapter.js +14 -0
- package/dist/idempotency-store-cache.adapter.js.map +1 -0
- package/dist/idempotency-store-noop.adapter.d.ts +6 -0
- package/dist/idempotency-store-noop.adapter.d.ts.map +1 -0
- package/dist/idempotency-store-noop.adapter.js +6 -0
- package/dist/idempotency-store-noop.adapter.js.map +1 -0
- package/dist/idempotency-store-with-logger.adapter.d.ts +17 -0
- package/dist/idempotency-store-with-logger.adapter.d.ts.map +1 -0
- package/dist/idempotency-store-with-logger.adapter.js +48 -0
- package/dist/idempotency-store-with-logger.adapter.js.map +1 -0
- package/dist/idempotency-store.port.d.ts +5 -0
- package/dist/idempotency-store.port.d.ts.map +1 -0
- package/dist/idempotency-store.port.js +2 -0
- package/dist/idempotency-store.port.js.map +1 -0
- package/dist/image-generator-web-view.adapter.js +8 -72
- package/dist/image-generator-web-view.adapter.js.map +1 -1
- package/dist/index.d.ts +19 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -6
- package/dist/index.js.map +1 -1
- package/dist/job-queue-with-logger.adapter.d.ts +2 -0
- package/dist/job-queue-with-logger.adapter.d.ts.map +1 -1
- package/dist/job-queue-with-logger.adapter.js +133 -36
- package/dist/job-queue-with-logger.adapter.js.map +1 -1
- package/dist/logger.port.d.ts +0 -1
- package/dist/logger.port.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/message-bus-with-logger.adapter.d.ts +2 -0
- package/dist/message-bus-with-logger.adapter.d.ts.map +1 -1
- package/dist/message-bus-with-logger.adapter.js +28 -8
- package/dist/message-bus-with-logger.adapter.js.map +1 -1
- package/dist/modules/preferences/invariants/user-language-has-changed.d.ts +0 -1
- package/dist/modules/preferences/invariants/user-language-has-changed.d.ts.map +1 -1
- package/dist/modules/preferences/invariants/user-language-has-changed.js +0 -4
- package/dist/modules/preferences/invariants/user-language-has-changed.js.map +1 -1
- package/dist/modules/system/invariants/feature-flag-enabled.d.ts +0 -1
- package/dist/modules/system/invariants/feature-flag-enabled.d.ts.map +1 -1
- package/dist/modules/system/invariants/feature-flag-enabled.js +0 -4
- package/dist/modules/system/invariants/feature-flag-enabled.js.map +1 -1
- package/dist/prerequisite-verifier-sqlite.adapter.js +1 -1
- package/dist/prerequisite-verifier-sqlite.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-with-cache.adapter.d.ts +2 -0
- package/dist/prerequisite-verifier-with-cache.adapter.d.ts.map +1 -1
- package/dist/prerequisite-verifier-with-cache.adapter.js +8 -5
- package/dist/prerequisite-verifier-with-cache.adapter.js.map +1 -1
- package/dist/rate-limiter.service.d.ts +22 -0
- package/dist/rate-limiter.service.d.ts.map +1 -0
- package/dist/rate-limiter.service.js +31 -0
- package/dist/rate-limiter.service.js.map +1 -0
- package/dist/reactive-config-with-cache.adapter.d.ts +3 -1
- package/dist/reactive-config-with-cache.adapter.d.ts.map +1 -1
- package/dist/reactive-config-with-cache.adapter.js +3 -1
- package/dist/reactive-config-with-cache.adapter.js.map +1 -1
- package/dist/request-context-hono.adapter.d.ts.map +1 -1
- package/dist/request-context-hono.adapter.js +4 -1
- package/dist/request-context-hono.adapter.js.map +1 -1
- package/dist/secure-key-generator-crypto.adapter.js +1 -1
- package/dist/secure-key-generator-crypto.adapter.js.map +1 -1
- package/dist/security-rule-violation-threshold.strategy.d.ts.map +1 -1
- package/dist/security-rule-violation-threshold.strategy.js +5 -3
- package/dist/security-rule-violation-threshold.strategy.js.map +1 -1
- package/dist/shield-rate-limit-hono.strategy.d.ts +2 -2
- package/dist/shield-rate-limit-hono.strategy.d.ts.map +1 -1
- package/dist/shield-rate-limit.strategy.d.ts +2 -2
- package/dist/shield-rate-limit.strategy.d.ts.map +1 -1
- package/dist/shield-rate-limit.strategy.js +8 -2
- package/dist/shield-rate-limit.strategy.js.map +1 -1
- package/dist/shield-webhook-hono.strategy.d.ts +2 -2
- package/dist/shield-webhook-hono.strategy.d.ts.map +1 -1
- package/dist/shield-webhook-hono.strategy.js +7 -3
- package/dist/shield-webhook-hono.strategy.js.map +1 -1
- package/dist/shield-webhook.strategy.d.ts +23 -3
- package/dist/shield-webhook.strategy.d.ts.map +1 -1
- package/dist/shield-webhook.strategy.js +18 -4
- package/dist/shield-webhook.strategy.js.map +1 -1
- package/dist/sitemap-entries-provider-with-cache.adapter.d.ts +2 -0
- package/dist/sitemap-entries-provider-with-cache.adapter.d.ts.map +1 -1
- package/dist/sitemap-entries-provider-with-cache.adapter.js +8 -5
- package/dist/sitemap-entries-provider-with-cache.adapter.js.map +1 -1
- package/dist/sitemap-entry.vo.d.ts +11 -10
- package/dist/sitemap-entry.vo.d.ts.map +1 -1
- package/dist/sitemap-entry.vo.js +19 -0
- package/dist/sitemap-entry.vo.js.map +1 -1
- package/dist/smtp-port.vo.d.ts.map +1 -1
- package/dist/smtp-port.vo.js +1 -0
- package/dist/smtp-port.vo.js.map +1 -1
- package/dist/sse-registry-with-logger.adapter.d.ts +2 -0
- package/dist/sse-registry-with-logger.adapter.d.ts.map +1 -1
- package/dist/sse-registry-with-logger.adapter.js +80 -22
- package/dist/sse-registry-with-logger.adapter.js.map +1 -1
- package/dist/translations-provider-with-cache.adapter.d.ts +21 -0
- package/dist/translations-provider-with-cache.adapter.d.ts.map +1 -0
- package/dist/translations-provider-with-cache.adapter.js +22 -0
- package/dist/translations-provider-with-cache.adapter.js.map +1 -0
- package/dist/uuid.vo.js +1 -0
- package/dist/uuid.vo.js.map +1 -1
- package/dist/webhook-id-extractor-header.strategy.d.ts +9 -0
- package/dist/webhook-id-extractor-header.strategy.d.ts.map +1 -0
- package/dist/webhook-id-extractor-header.strategy.js +13 -0
- package/dist/webhook-id-extractor-header.strategy.js.map +1 -0
- package/dist/webhook-id-extractor-json-field.strategy.d.ts +9 -0
- package/dist/webhook-id-extractor-json-field.strategy.d.ts.map +1 -0
- package/dist/webhook-id-extractor-json-field.strategy.js +14 -0
- package/dist/webhook-id-extractor-json-field.strategy.js.map +1 -0
- package/dist/webhook-id-extractor.strategy.d.ts +6 -0
- package/dist/webhook-id-extractor.strategy.d.ts.map +1 -0
- package/dist/webhook-id-extractor.strategy.js +2 -0
- package/dist/webhook-id-extractor.strategy.js.map +1 -0
- package/dist/webhook-id.vo.d.ts +9 -0
- package/dist/webhook-id.vo.d.ts.map +1 -0
- package/dist/webhook-id.vo.js +10 -0
- package/dist/webhook-id.vo.js.map +1 -0
- package/dist/{webhook-signature-extractor-header-exact.strategy.d.ts → webhook-signature-extractor-header.strategy.d.ts} +2 -2
- package/dist/webhook-signature-extractor-header.strategy.d.ts.map +1 -0
- package/dist/{webhook-signature-extractor-header-exact.strategy.js → webhook-signature-extractor-header.strategy.js} +2 -2
- package/dist/webhook-signature-extractor-header.strategy.js.map +1 -0
- package/package.json +12 -18
- package/readme.md +19 -6
- package/src/alert-channel-composite.adapter.ts +1 -0
- package/src/api-version.middleware.ts +6 -2
- package/src/cache-codec-identity.strategy.ts +12 -0
- package/src/cache-codec-sitemap-entries.strategy.ts +17 -0
- package/src/cache-codec.strategy.ts +6 -0
- package/src/cache-repository-node-cache.adapter.ts +9 -5
- package/src/cache-repository-noop.adapter.ts +3 -2
- package/src/cache-repository-redis.adapter.ts +10 -7
- package/src/cache-repository.port.ts +3 -2
- package/src/cache-resolver-noop.strategy.ts +11 -0
- package/src/cache-resolver-read-through.strategy.ts +27 -0
- package/src/cache-resolver.strategy.ts +2 -11
- package/src/cache-value.vo.ts +9 -0
- package/src/correlation-id.vo.ts +1 -0
- package/src/cron-scheduler-with-logger.adapter.ts +35 -9
- package/src/cron-task-handler-with-logger.strategy.ts +1 -1
- package/src/crypto-key-provider-with-memo.adapter.ts +21 -0
- package/src/environment-loader-process-safe.adapter.ts +12 -4
- package/src/event-store-with-logger.adapter.ts +97 -27
- package/src/event-stream.vo.ts +1 -0
- package/src/file-draft-tar-gz.service.ts +23 -0
- package/src/file-reader-json-with-cache.adapter.ts +7 -2
- package/src/file-reader-text-with-cache.adapter.ts +8 -1
- package/src/healthcheck-hono.handler.ts +2 -2
- package/src/healthcheck.handler.ts +2 -0
- package/src/http-logger-hono.middleware.ts +0 -3
- package/src/http-logger.middleware.ts +0 -2
- package/src/idempotency-store-cache.adapter.ts +19 -0
- package/src/idempotency-store-noop.adapter.ts +8 -0
- package/src/idempotency-store-with-logger.adapter.ts +59 -0
- package/src/idempotency-store.port.ts +5 -0
- package/src/index.ts +19 -6
- package/src/job-queue-with-logger.adapter.ts +156 -43
- package/src/logger.port.ts +0 -1
- package/src/message-bus-with-logger.adapter.ts +37 -10
- package/src/modules/preferences/invariants/user-language-has-changed.ts +1 -6
- package/src/modules/system/invariants/feature-flag-enabled.ts +1 -6
- package/src/prerequisite-verifier-sqlite.adapter.ts +1 -1
- package/src/prerequisite-verifier-with-cache.adapter.ts +13 -7
- package/src/rate-limiter.service.ts +45 -0
- package/src/reactive-config-with-cache.adapter.ts +8 -2
- package/src/request-context-hono.adapter.ts +5 -1
- package/src/security-rule-violation-threshold.strategy.ts +5 -6
- package/src/shield-rate-limit-hono.strategy.ts +2 -2
- package/src/shield-rate-limit.strategy.ts +14 -7
- package/src/shield-webhook-hono.strategy.ts +11 -3
- package/src/shield-webhook.strategy.ts +41 -6
- package/src/sitemap-entries-provider-with-cache.adapter.ts +13 -7
- package/src/sitemap-entry.vo.ts +23 -11
- package/src/smtp-port.vo.ts +1 -0
- package/src/sse-registry-with-logger.adapter.ts +94 -25
- package/src/translations-provider-with-cache.adapter.ts +38 -0
- package/src/uuid.vo.ts +1 -1
- package/src/webhook-id-extractor-header.strategy.ts +14 -0
- package/src/webhook-id-extractor-json-field.strategy.ts +16 -0
- package/src/webhook-id-extractor.strategy.ts +6 -0
- package/src/webhook-id.vo.ts +17 -0
- package/src/{webhook-signature-extractor-header-exact.strategy.ts → webhook-signature-extractor-header.strategy.ts} +1 -1
- package/dist/cache-resolver-simple.strategy.d.ts +0 -18
- package/dist/cache-resolver-simple.strategy.d.ts.map +0 -1
- package/dist/cache-resolver-simple.strategy.js +0 -23
- package/dist/cache-resolver-simple.strategy.js.map +0 -1
- package/dist/cache-response-hono.middleware.d.ts +0 -9
- package/dist/cache-response-hono.middleware.d.ts.map +0 -1
- package/dist/cache-response-hono.middleware.js +0 -34
- package/dist/cache-response-hono.middleware.js.map +0 -1
- package/dist/cache-response.middleware.d.ts +0 -28
- package/dist/cache-response.middleware.d.ts.map +0 -1
- package/dist/cache-response.middleware.js +0 -20
- package/dist/cache-response.middleware.js.map +0 -1
- package/dist/crypto-key-provider-with-cache.adapter.d.ts +0 -19
- package/dist/crypto-key-provider-with-cache.adapter.d.ts.map +0 -1
- package/dist/crypto-key-provider-with-cache.adapter.js +0 -19
- package/dist/crypto-key-provider-with-cache.adapter.js.map +0 -1
- package/dist/file-draft-zip.service.d.ts +0 -14
- package/dist/file-draft-zip.service.d.ts.map +0 -1
- package/dist/file-draft-zip.service.js +0 -41
- package/dist/file-draft-zip.service.js.map +0 -1
- package/dist/webhook-signature-extractor-header-exact.strategy.d.ts.map +0 -1
- package/dist/webhook-signature-extractor-header-exact.strategy.js.map +0 -1
- package/src/cache-resolver-simple.strategy.ts +0 -33
- package/src/cache-response-hono.middleware.ts +0 -53
- package/src/cache-response.middleware.ts +0 -47
- package/src/crypto-key-provider-with-cache.adapter.ts +0 -30
- package/src/file-draft-zip.service.ts +0 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context-hono.adapter.js","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,yBAAyB;IAC3B,OAAO,CAA4B;IACnC,QAAQ,CAA6B;IACrC,UAAU,CAA+B;IAElD,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;YAC1B,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;YAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;YACtC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YAChE,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YAChC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACpC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YACjC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAC1C,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,
|
|
1
|
+
{"version":3,"file":"request-context-hono.adapter.js","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export class SecureKeyGeneratorCryptoAdapter {
|
|
2
2
|
// crypto.getRandomValues is spec-limited to a 65536-byte view
|
|
3
|
-
static MAX_BYTES =
|
|
3
|
+
static MAX_BYTES = 65_536;
|
|
4
4
|
generate(bytes) {
|
|
5
5
|
const buffer = new Uint8Array(bytes);
|
|
6
6
|
// Stryker disable next-line EqualityOperator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-key-generator-crypto.adapter.js","sourceRoot":"","sources":["../src/secure-key-generator-crypto.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IAC1C,8DAA8D;IAC9D,MAAM,CAAU,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"secure-key-generator-crypto.adapter.js","sourceRoot":"","sources":["../src/secure-key-generator-crypto.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IAC1C,8DAA8D;IAC9D,MAAM,CAAU,SAAS,GAAG,MAAM,CAAC;IAEnC,QAAQ,CAAC,KAAgC;QACvC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAErC,6CAA6C;QAC7C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,+BAA+B,CAAC,SAAS,EAAE,CAAC;YACzF,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC;QACtG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-rule-violation-threshold.strategy.d.ts","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAKtF,KAAK,YAAY,GAAG;IAAE,eAAe,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAC/F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAA;CAAE,CAAC;AAEvD,qBAAa,sCAAuC,YAAW,oBAAoB;IAE/E,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACmB,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EACjC;IAGE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"security-rule-violation-threshold.strategy.d.ts","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAKtF,KAAK,YAAY,GAAG;IAAE,eAAe,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAC/F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAA;CAAE,CAAC;AAEvD,qBAAa,sCAAuC,YAAW,oBAAoB;IAE/E,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACmB,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EACjC;IAGE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAuB1D;IAED,IAAI,IAAI,IAAI,oBAAoB,CAE/B;CACF"}
|
|
@@ -21,9 +21,11 @@ export class SecurityRuleViolationThresholdStrategy {
|
|
|
21
21
|
if (!violated)
|
|
22
22
|
return false;
|
|
23
23
|
try {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
const cached = await this.deps.CacheRepository.get(subject.hex);
|
|
25
|
+
const count = typeof cached === "number" ? cached : 0;
|
|
26
|
+
const next = tools.Int.nonNegative(count + 1);
|
|
27
|
+
await this.deps.CacheRepository.set(subject.hex, next);
|
|
28
|
+
if (next >= this.config.threshold)
|
|
27
29
|
return true;
|
|
28
30
|
return false;
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-rule-violation-threshold.strategy.js","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAK7B,OAAO,EAAE,gBAAgB,EAA6B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,MAAM,OAAO,sCAAsC;IAE9B,IAAI;IACJ,MAAM;IACN,IAAI;IAHvB,YACmB,IAA0B,EAC1B,MAAc,EACd,IAAkB;oBAFlB,IAAI;sBACJ,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,4FAA4F;IAC5F,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,wBAAwB,EAAE,CAAC,EAC5E,IAAI,CAAC,IAAI,CACV,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,
|
|
1
|
+
{"version":3,"file":"security-rule-violation-threshold.strategy.js","sourceRoot":"","sources":["../src/security-rule-violation-threshold.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAK7B,OAAO,EAAE,gBAAgB,EAA6B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,MAAM,OAAO,sCAAsC;IAE9B,IAAI;IACJ,MAAM;IACN,IAAI;IAHvB,YACmB,IAA0B,EAC1B,MAAc,EACd,IAAkB;oBAFlB,IAAI;sBACJ,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,4FAA4F;IAC5F,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,wBAAwB,EAAE,CAAC,EAC5E,IAAI,CAAC,IAAI,CACV,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAE9C,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEvD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,uBAAuB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrG,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from "hono";
|
|
2
|
-
import type {
|
|
2
|
+
import type { CacheRepositoryPort } from "./cache-repository.port";
|
|
3
3
|
import type { ClockPort } from "./clock.port";
|
|
4
4
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
5
5
|
import { type ShieldRateLimitConfig } from "./shield-rate-limit.strategy";
|
|
6
6
|
type Dependencies = {
|
|
7
7
|
Clock: ClockPort;
|
|
8
|
-
|
|
8
|
+
CacheRepository: CacheRepositoryPort;
|
|
9
9
|
};
|
|
10
10
|
export declare class ShieldRateLimitHonoStrategy implements MiddlewareHonoPort {
|
|
11
11
|
private readonly strategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-rate-limit-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shield-rate-limit-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-rate-limit-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,8BAA8B,CAAC;AAEtC,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/E,qBAAa,2BAA4B,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD,YAAY,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAE5D;IAED,MAAM,IAAI,iBAAiB,CAW1B;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
-
import type {
|
|
2
|
+
import type { CacheRepositoryPort } from "./cache-repository.port";
|
|
3
3
|
import type { ClockPort } from "./clock.port";
|
|
4
4
|
import type { RequestContext } from "./request-context.port";
|
|
5
5
|
import type { SubjectRequestResolver } from "./subject-request-resolver.vo";
|
|
@@ -15,7 +15,7 @@ type ShieldRateLimitResult = {
|
|
|
15
15
|
};
|
|
16
16
|
type Dependencies = {
|
|
17
17
|
Clock: ClockPort;
|
|
18
|
-
|
|
18
|
+
CacheRepository: CacheRepositoryPort;
|
|
19
19
|
};
|
|
20
20
|
export declare const ShieldRateLimitStrategyError: {
|
|
21
21
|
Rejected: string;
|
|
@@ -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,
|
|
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,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,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,eAAe,EAAE,mBAAmB,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,CAsBtE;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
|
+
import { RateLimiter } from "./rate-limiter.service";
|
|
2
3
|
export const ShieldRateLimitStrategyError = { Rejected: "shield.rate.limit.rejected" };
|
|
3
4
|
export class ShieldRateLimitStrategy {
|
|
4
5
|
config;
|
|
@@ -10,10 +11,15 @@ export class ShieldRateLimitStrategy {
|
|
|
10
11
|
}
|
|
11
12
|
async evaluate(context) {
|
|
12
13
|
const subject = await this.config.resolver.resolve(context);
|
|
13
|
-
const
|
|
14
|
+
const state = await this.deps.CacheRepository.get(subject.hex);
|
|
15
|
+
const limiter = state === null
|
|
16
|
+
? new RateLimiter(this.config.interval)
|
|
17
|
+
: RateLimiter.fromState(this.config.interval, state);
|
|
14
18
|
const decision = limiter.verify(this.deps.Clock.now());
|
|
15
|
-
if (decision.allowed)
|
|
19
|
+
if (decision.allowed) {
|
|
20
|
+
await this.deps.CacheRepository.set(subject.hex, limiter.toJSON());
|
|
16
21
|
return { allowed: true };
|
|
22
|
+
}
|
|
17
23
|
return {
|
|
18
24
|
allowed: false,
|
|
19
25
|
retryAfter: tools.Duration.Seconds(this.rounding.round(decision.remaining.seconds)),
|
|
@@ -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;
|
|
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;AAGtC,OAAO,EAAE,WAAW,EAA6B,MAAM,wBAAwB,CAAC;AAShF,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,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/D,MAAM,OAAO,GACX,KAAK,KAAK,IAAI;YACZ,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAA6B,CAAC,CAAC;QAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,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,9 +1,9 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from "hono";
|
|
2
2
|
import type { MiddlewareHonoPort } from "./middleware-hono.port";
|
|
3
|
-
import { type ShieldWebhookStrategyConfig } from "./shield-webhook.strategy";
|
|
3
|
+
import { type ShieldWebhookStrategyConfig, type ShieldWebhookStrategyDependencies } from "./shield-webhook.strategy";
|
|
4
4
|
export declare class ShieldWebhookHonoStrategy implements MiddlewareHonoPort {
|
|
5
5
|
private readonly strategy;
|
|
6
|
-
constructor(config: ShieldWebhookStrategyConfig);
|
|
6
|
+
constructor(config: ShieldWebhookStrategyConfig, deps: ShieldWebhookStrategyDependencies);
|
|
7
7
|
handle(): MiddlewareHandler;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=shield-webhook-hono.strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-webhook-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,2BAA2B,
|
|
1
|
+
{"version":3,"file":"shield-webhook-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EAEvC,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAEjD,YAAY,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,iCAAiC,EAEvF;IAED,MAAM,IAAI,iBAAiB,CAc1B;CACF"}
|
|
@@ -3,14 +3,18 @@ import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
|
|
|
3
3
|
import { ShieldWebhookStrategy, ShieldWebhookStrategyError, } from "./shield-webhook.strategy";
|
|
4
4
|
export class ShieldWebhookHonoStrategy {
|
|
5
5
|
strategy;
|
|
6
|
-
constructor(config) {
|
|
7
|
-
this.strategy = new ShieldWebhookStrategy(config);
|
|
6
|
+
constructor(config, deps) {
|
|
7
|
+
this.strategy = new ShieldWebhookStrategy(config, deps);
|
|
8
8
|
}
|
|
9
9
|
handle() {
|
|
10
10
|
return async (c, next) => {
|
|
11
11
|
const context = new RequestContextHonoAdapter(c);
|
|
12
|
-
|
|
12
|
+
const result = await this.strategy.evaluate(context);
|
|
13
|
+
if (result.accepted)
|
|
13
14
|
return next();
|
|
15
|
+
if (result.reason === "duplicate") {
|
|
16
|
+
return c.json({ message: ShieldWebhookStrategyError.Duplicate }, 200);
|
|
17
|
+
}
|
|
14
18
|
throw new HTTPException(401, { message: ShieldWebhookStrategyError.Rejected });
|
|
15
19
|
};
|
|
16
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-webhook-hono.strategy.js","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"shield-webhook-hono.strategy.js","sourceRoot":"","sources":["../src/shield-webhook-hono.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EAGrB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,OAAO,yBAAyB;IACnB,QAAQ,CAAwB;IAEjD,YAAY,MAAmC,EAAE,IAAuC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErD,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,IAAI,EAAE,CAAC;YAEnC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,18 +1,38 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HashContentStrategy } from "./hash-content.strategy";
|
|
2
|
+
import type { IdempotencyStorePort } from "./idempotency-store.port";
|
|
3
|
+
import type { HasRequestHeader, HasRequestJson, HasRequestText } from "./request-context.port";
|
|
2
4
|
import type { WebhookBodyBuilderStrategy } from "./webhook-body-builder.strategy";
|
|
5
|
+
import type { WebhookIdExtractorStrategy } from "./webhook-id-extractor.strategy";
|
|
3
6
|
import type { WebhookSignatureExtractorStrategy } from "./webhook-signature-extractor.strategy";
|
|
4
7
|
import type { WebhookVerifierStrategy } from "./webhook-verifier.strategy";
|
|
5
8
|
export declare const ShieldWebhookStrategyError: {
|
|
6
9
|
Rejected: string;
|
|
10
|
+
Duplicate: string;
|
|
11
|
+
};
|
|
12
|
+
export type ShieldWebhookStrategyResult = {
|
|
13
|
+
accepted: true;
|
|
14
|
+
} | {
|
|
15
|
+
accepted: false;
|
|
16
|
+
reason: "rejected";
|
|
17
|
+
} | {
|
|
18
|
+
accepted: false;
|
|
19
|
+
reason: "duplicate";
|
|
7
20
|
};
|
|
8
21
|
export type ShieldWebhookStrategyConfig = {
|
|
22
|
+
namespace: string;
|
|
9
23
|
WebhookBodyBuilder: WebhookBodyBuilderStrategy;
|
|
24
|
+
WebhookIdExtractor: WebhookIdExtractorStrategy;
|
|
10
25
|
WebhookSignatureExtractor: WebhookSignatureExtractorStrategy;
|
|
11
26
|
WebhookVerifier: WebhookVerifierStrategy;
|
|
12
27
|
};
|
|
28
|
+
export type ShieldWebhookStrategyDependencies = {
|
|
29
|
+
HashContent: HashContentStrategy;
|
|
30
|
+
IdempotencyStore: IdempotencyStorePort;
|
|
31
|
+
};
|
|
13
32
|
export declare class ShieldWebhookStrategy {
|
|
14
33
|
private readonly config;
|
|
15
|
-
|
|
16
|
-
|
|
34
|
+
private readonly deps;
|
|
35
|
+
constructor(config: ShieldWebhookStrategyConfig, deps: ShieldWebhookStrategyDependencies);
|
|
36
|
+
evaluate(context: HasRequestHeader & HasRequestJson & HasRequestText): Promise<ShieldWebhookStrategyResult>;
|
|
17
37
|
}
|
|
18
38
|
//# 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,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"shield-webhook.strategy.d.ts","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,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;IACrC,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACvC;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,yBAAyB,EAAE,iCAAiC,CAAC;IAC7D,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,2BAA2B,EACnC,IAAI,EAAE,iCAAiC,EACtD;IAEE,QAAQ,CACZ,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAC1D,OAAO,CAAC,2BAA2B,CAAC,CAoBtC;CACF"}
|
|
@@ -1,15 +1,29 @@
|
|
|
1
|
-
export const ShieldWebhookStrategyError = {
|
|
1
|
+
export const ShieldWebhookStrategyError = {
|
|
2
|
+
Rejected: "shield.webhook.rejected",
|
|
3
|
+
Duplicate: "shield.webhook.duplicate",
|
|
4
|
+
};
|
|
2
5
|
export class ShieldWebhookStrategy {
|
|
3
6
|
config;
|
|
4
|
-
|
|
7
|
+
deps;
|
|
8
|
+
constructor(config, deps) {
|
|
5
9
|
this.config = config;
|
|
10
|
+
this.deps = deps;
|
|
6
11
|
}
|
|
7
12
|
async evaluate(context) {
|
|
8
13
|
const signature = this.config.WebhookSignatureExtractor.extract(context);
|
|
9
14
|
if (!signature)
|
|
10
|
-
return false;
|
|
15
|
+
return { accepted: false, reason: "rejected" };
|
|
11
16
|
const body = await this.config.WebhookBodyBuilder.build(context);
|
|
12
|
-
|
|
17
|
+
if (!this.config.WebhookVerifier.verify(body, signature))
|
|
18
|
+
return { accepted: false, reason: "rejected" };
|
|
19
|
+
const id = await this.config.WebhookIdExtractor.extract(context);
|
|
20
|
+
if (!id)
|
|
21
|
+
return { accepted: false, reason: "rejected" };
|
|
22
|
+
const subject = await this.deps.HashContent.hash(JSON.stringify([[this.config.namespace, id]]));
|
|
23
|
+
const claimed = await this.deps.IdempotencyStore.claim(subject);
|
|
24
|
+
if (!claimed)
|
|
25
|
+
return { accepted: false, reason: "duplicate" };
|
|
26
|
+
return { accepted: true };
|
|
13
27
|
}
|
|
14
28
|
}
|
|
15
29
|
//# sourceMappingURL=shield-webhook.strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-webhook.strategy.js","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shield-webhook.strategy.js","sourceRoot":"","sources":["../src/shield-webhook.strategy.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,QAAQ,EAAE,yBAAyB;IACnC,SAAS,EAAE,0BAA0B;CACtC,CAAC;AAoBF,MAAM,OAAO,qBAAqB;IAEb,MAAM;IACN,IAAI;IAFvB,YACmB,MAAmC,EACnC,IAAuC;sBADvC,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CACZ,OAA2D;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzE,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAEzG,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAExD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAE9D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -13,6 +13,8 @@ type Dependencies = {
|
|
|
13
13
|
export declare class SitemapEntriesProviderWithCacheAdapter implements SitemapEntriesProvider {
|
|
14
14
|
private readonly config;
|
|
15
15
|
private readonly deps;
|
|
16
|
+
private readonly codec;
|
|
17
|
+
private readonly resolver;
|
|
16
18
|
constructor(config: Config, deps: Dependencies);
|
|
17
19
|
produce(): Promise<ReadonlyArray<SitemapEntry>>;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-entries-provider-with-cache.adapter.d.ts","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sitemap-entries-provider-with-cache.adapter.d.ts","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAC5D,KAAK,YAAY,GAAG;IAAE,aAAa,EAAE,qBAAqB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/F,qBAAa,sCAAuC,YAAW,sBAAsB;IAKjF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YACmB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EASpC;IAEK,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAQpD;CACF"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
+
import { CacheCodecSitemapEntriesStrategy } from "./cache-codec-sitemap-entries.strategy";
|
|
1
2
|
import { SubjectApplicationResolver } from "./subject-application-resolver.vo";
|
|
2
3
|
import { SubjectSegmentFixedStrategy } from "./subject-segment-fixed.strategy";
|
|
3
4
|
export class SitemapEntriesProviderWithCacheAdapter {
|
|
4
5
|
config;
|
|
5
6
|
deps;
|
|
7
|
+
codec = new CacheCodecSitemapEntriesStrategy();
|
|
8
|
+
resolver;
|
|
6
9
|
constructor(config, deps) {
|
|
7
10
|
this.config = config;
|
|
8
11
|
this.deps = deps;
|
|
9
|
-
|
|
10
|
-
async produce() {
|
|
11
|
-
const resolver = new SubjectApplicationResolver([
|
|
12
|
+
this.resolver = new SubjectApplicationResolver([
|
|
12
13
|
new SubjectSegmentFixedStrategy("sitemap_entries_provider"),
|
|
13
14
|
new SubjectSegmentFixedStrategy(this.config.id),
|
|
14
15
|
], this.deps);
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
}
|
|
17
|
+
async produce() {
|
|
18
|
+
const subject = await this.resolver.resolve();
|
|
19
|
+
return this.deps.CacheResolver.resolve(subject.hex, async () => this.config.inner.produce(), this.codec);
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
//# sourceMappingURL=sitemap-entries-provider-with-cache.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-entries-provider-with-cache.adapter.js","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sitemap-entries-provider-with-cache.adapter.js","sourceRoot":"","sources":["../src/sitemap-entries-provider-with-cache.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAK1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAK/E,MAAM,OAAO,sCAAsC;IAK9B,MAAM;IACN,IAAI;IALN,KAAK,GAAG,IAAI,gCAAgC,EAAE,CAAC;IAC/C,QAAQ,CAA6B;IAEtD,YACmB,MAAc,EACd,IAAkB;sBADlB,MAAM;oBACN,IAAI;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAA0B,CAC5C;YACE,IAAI,2BAA2B,CAAC,0BAA0B,CAAC;YAC3D,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SAChD,EACD,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CACpC,OAAO,CAAC,GAAG,EACX,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACvC,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { SitemapChangefreqEnum } from "./sitemap-changefreq.vo";
|
|
3
|
+
export declare const SitemapEntrySchema: v.ObjectSchema<{
|
|
4
|
+
readonly loc: v.SchemaWithPipe<readonly [v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<string>, v.UrlAction<string, string>, v.EndsWithAction<string, "/", string>, v.BrandAction<string, "UrlWithSlash">]>, v.SchemaWithPipe<readonly [v.StringSchema<string>, v.UrlAction<string, string>, v.CheckAction<string, string>, v.BrandAction<string, "UrlWithoutSlash">]>], string>, v.BrandAction<(string & v.Brand<"UrlWithSlash">) | (string & v.Brand<"UrlWithoutSlash">), "SitemapUrl">]>;
|
|
5
|
+
readonly lastmod: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<string>, v.RegexAction<string, string>, v.CheckAction<string, string>, v.BrandAction<string, "DayIsoId">]>, undefined>;
|
|
6
|
+
readonly changefreq: v.OptionalSchema<v.EnumSchema<typeof SitemapChangefreqEnum, undefined>, undefined>;
|
|
7
|
+
readonly priority: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<string>, v.MinValueAction<number, 0, string>, v.MaxValueAction<number, 1, string>, v.CheckAction<number, string>, v.BrandAction<number, "SitemapPriority">]>, undefined>;
|
|
8
|
+
}, undefined>;
|
|
9
|
+
export type SitemapEntryType = v.InferOutput<typeof SitemapEntrySchema>;
|
|
11
10
|
export declare class SitemapEntry {
|
|
12
11
|
private readonly entry;
|
|
13
12
|
constructor(entry: SitemapEntryType);
|
|
14
13
|
private escapeXml;
|
|
14
|
+
static fromJSON(raw: unknown): SitemapEntry;
|
|
15
|
+
toJSON(): SitemapEntryType;
|
|
15
16
|
toXml(): string;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=sitemap-entry.vo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-entry.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sitemap-entry.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,eAAO,MAAM,kBAAkB;;;;;aAK7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,gBAAgB,EAAI;IAExD,OAAO,CAAC,SAAS;IASjB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAE1C;IAED,MAAM,IAAI,gBAAgB,CAEzB;IAED,KAAK,IAAI,MAAM,CAQd;CACF"}
|
package/dist/sitemap-entry.vo.js
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
// cspell:ignore apos
|
|
2
|
+
import * as tools from "@bgord/tools";
|
|
3
|
+
import * as v from "valibot";
|
|
4
|
+
import { SitemapChangefreqEnum } from "./sitemap-changefreq.vo";
|
|
5
|
+
import { SitemapPriority } from "./sitemap-priority.vo";
|
|
6
|
+
import { SitemapUrl } from "./sitemap-url.vo";
|
|
7
|
+
import { StandardSchemaValidator } from "./standard-schema-validator.service";
|
|
8
|
+
export const SitemapEntrySchema = v.object({
|
|
9
|
+
loc: SitemapUrl,
|
|
10
|
+
lastmod: v.optional(tools.DayIsoId),
|
|
11
|
+
changefreq: v.optional(v.enum(SitemapChangefreqEnum)),
|
|
12
|
+
priority: v.optional(SitemapPriority),
|
|
13
|
+
});
|
|
1
14
|
export class SitemapEntry {
|
|
2
15
|
entry;
|
|
3
16
|
constructor(entry) {
|
|
@@ -11,6 +24,12 @@ export class SitemapEntry {
|
|
|
11
24
|
.replace(/"/g, """)
|
|
12
25
|
.replace(/'/g, "'");
|
|
13
26
|
}
|
|
27
|
+
static fromJSON(raw) {
|
|
28
|
+
return new SitemapEntry(StandardSchemaValidator.validate(SitemapEntrySchema, raw));
|
|
29
|
+
}
|
|
30
|
+
toJSON() {
|
|
31
|
+
return { ...this.entry };
|
|
32
|
+
}
|
|
14
33
|
toXml() {
|
|
15
34
|
const loc = `<loc>${this.escapeXml(this.entry.loc)}</loc>`;
|
|
16
35
|
const lastmod = this.entry.lastmod ? `<lastmod>${this.entry.lastmod}</lastmod>` : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-entry.vo.js","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sitemap-entry.vo.js","sourceRoot":"","sources":["../src/sitemap-entry.vo.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;CACtC,CAAC,CAAC;AAIH,MAAM,OAAO,YAAY;IACM,KAAK;IAAlC,YAA6B,KAAuB;qBAAvB,KAAK;IAAqB,CAAC;IAEhD,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG;aACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAY;QAC1B,OAAO,IAAI,YAAY,CAAC,uBAAuB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpG,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp-port.vo.d.ts","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"smtp-port.vo.d.ts","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAI7B,eAAO,MAAM,QAAQ,gWAAoC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC"}
|
package/dist/smtp-port.vo.js
CHANGED
package/dist/smtp-port.vo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp-port.vo.js","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"smtp-port.vo.js","sourceRoot":"","sources":["../src/smtp-port.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClockPort } from "./clock.port";
|
|
1
2
|
import type { HashValueType } from "./hash-value.vo";
|
|
2
3
|
import type { LoggerPort } from "./logger.port";
|
|
3
4
|
import type { Message } from "./message.types";
|
|
@@ -5,6 +6,7 @@ import type { SseRegistryPort, SseSenderType } from "./sse-registry.port";
|
|
|
5
6
|
type Dependencies<Messages extends Message> = {
|
|
6
7
|
inner: SseRegistryPort<Messages>;
|
|
7
8
|
Logger: LoggerPort;
|
|
9
|
+
Clock: ClockPort;
|
|
8
10
|
};
|
|
9
11
|
export declare class SseRegistryWithLoggerAdapter<Messages extends Message> implements SseRegistryPort<Messages> {
|
|
10
12
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-registry-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sse-registry-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG1E,KAAK,YAAY,CAAC,QAAQ,SAAS,OAAO,IAAI;IAC5C,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,qBAAa,4BAA4B,CAAC,QAAQ,SAAS,OAAO,CAAE,YAAW,eAAe,CAAC,QAAQ,CAAC;IAG1F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqD;IAE1E,YAA6B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAI;IAE7D,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAgC1E;IAED,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CA8BzE;IAEK,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BjF;IAED,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAErC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CorrelationStorage } from "./correlation-storage.service";
|
|
2
|
+
import { Stopwatch } from "./stopwatch.service";
|
|
2
3
|
export class SseRegistryWithLoggerAdapter {
|
|
3
4
|
deps;
|
|
4
5
|
base = { component: "infra", operation: "sse_registry" };
|
|
@@ -6,32 +7,89 @@ export class SseRegistryWithLoggerAdapter {
|
|
|
6
7
|
this.deps = deps;
|
|
7
8
|
}
|
|
8
9
|
register(identity, sender) {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
const duration = new Stopwatch(this.deps);
|
|
11
|
+
try {
|
|
12
|
+
this.deps.Logger.info({
|
|
13
|
+
message: "SSE registry register attempt",
|
|
14
|
+
correlationId: CorrelationStorage.get(),
|
|
15
|
+
metadata: { identity },
|
|
16
|
+
...this.base,
|
|
17
|
+
});
|
|
18
|
+
const registered = this.deps.inner.register(identity, sender);
|
|
19
|
+
this.deps.Logger.info({
|
|
20
|
+
message: "SSE registry register success",
|
|
21
|
+
correlationId: CorrelationStorage.get(),
|
|
22
|
+
metadata: { identity, registered, duration: duration.stop() },
|
|
23
|
+
...this.base,
|
|
24
|
+
});
|
|
25
|
+
return registered;
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
this.deps.Logger.error({
|
|
29
|
+
message: "SSE registry register error",
|
|
30
|
+
correlationId: CorrelationStorage.get(),
|
|
31
|
+
error,
|
|
32
|
+
metadata: { identity, duration: duration.stop() },
|
|
33
|
+
...this.base,
|
|
34
|
+
});
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
17
37
|
}
|
|
18
38
|
unregister(identity, sender) {
|
|
19
|
-
this.deps
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
const duration = new Stopwatch(this.deps);
|
|
40
|
+
try {
|
|
41
|
+
this.deps.Logger.info({
|
|
42
|
+
message: "SSE registry unregister attempt",
|
|
43
|
+
correlationId: CorrelationStorage.get(),
|
|
44
|
+
metadata: { identity },
|
|
45
|
+
...this.base,
|
|
46
|
+
});
|
|
47
|
+
this.deps.inner.unregister(identity, sender);
|
|
48
|
+
this.deps.Logger.info({
|
|
49
|
+
message: "SSE registry unregister success",
|
|
50
|
+
correlationId: CorrelationStorage.get(),
|
|
51
|
+
metadata: { identity, duration: duration.stop() },
|
|
52
|
+
...this.base,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
this.deps.Logger.error({
|
|
57
|
+
message: "SSE registry unregister error",
|
|
58
|
+
correlationId: CorrelationStorage.get(),
|
|
59
|
+
error,
|
|
60
|
+
metadata: { identity, duration: duration.stop() },
|
|
61
|
+
...this.base,
|
|
62
|
+
});
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
26
65
|
}
|
|
27
66
|
async emit(identity, message) {
|
|
28
|
-
this.deps
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
67
|
+
const duration = new Stopwatch(this.deps);
|
|
68
|
+
try {
|
|
69
|
+
this.deps.Logger.info({
|
|
70
|
+
message: "SSE registry emit attempt",
|
|
71
|
+
correlationId: CorrelationStorage.get(),
|
|
72
|
+
metadata: { identity, message },
|
|
73
|
+
...this.base,
|
|
74
|
+
});
|
|
75
|
+
await this.deps.inner.emit(identity, message);
|
|
76
|
+
this.deps.Logger.info({
|
|
77
|
+
message: "SSE registry emit success",
|
|
78
|
+
correlationId: CorrelationStorage.get(),
|
|
79
|
+
metadata: { identity, message, duration: duration.stop() },
|
|
80
|
+
...this.base,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
this.deps.Logger.error({
|
|
85
|
+
message: "SSE registry emit error",
|
|
86
|
+
correlationId: CorrelationStorage.get(),
|
|
87
|
+
error,
|
|
88
|
+
metadata: { identity, message, duration: duration.stop() },
|
|
89
|
+
...this.base,
|
|
90
|
+
});
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
35
93
|
}
|
|
36
94
|
count(identity) {
|
|
37
95
|
return this.deps.inner.count(identity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-registry-with-logger.adapter.js","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sse-registry-with-logger.adapter.js","sourceRoot":"","sources":["../src/sse-registry-with-logger.adapter.ts"],"names":[],"mappings":"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"}
|