@archlast/server 0.1.7 → 0.1.9
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/LICENSE +21 -21
- package/README.md +14 -10
- package/dist/admin/auth.d.ts +24 -5
- package/dist/admin/auth.js +49 -25
- package/dist/admin/schema.d.ts +122 -32
- package/dist/admin/schema.js +131 -95
- package/dist/admin/seed.d.ts +1 -1
- package/dist/admin/seed.js +79 -47
- package/dist/auth/api-key-resolver.d.ts +1 -1
- package/dist/auth/api-key-resolver.js +7 -3
- package/dist/auth/archlast-auth-adapter.d.ts +2 -5
- package/dist/auth/archlast-auth-adapter.js +1 -1
- package/dist/auth/better-auth-adapter.d.ts.map +1 -1
- package/dist/auth/better-auth-adapter.js +41 -26
- package/dist/auth/better-auth-adapter.js.map +1 -1
- package/dist/auth/better-auth-admin.d.ts.map +1 -1
- package/dist/auth/better-auth-admin.js +1 -1
- package/dist/auth/better-auth-admin.js.map +1 -1
- package/dist/auth/better-auth-api-key-resolver.js +1 -1
- package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
- package/dist/auth/better-auth-instance.d.ts +247 -303
- package/dist/auth/better-auth-instance.d.ts.map +1 -1
- package/dist/auth/better-auth-instance.js +11 -0
- package/dist/auth/better-auth-instance.js.map +1 -1
- package/dist/auth/better-auth-seed.d.ts +5 -2
- package/dist/auth/better-auth-seed.js +31 -22
- package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
- package/dist/auth/better-auth-session-adapter.js +14 -10
- package/dist/auth/better-auth-session-adapter.js.map +1 -1
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/errors.js +11 -11
- package/dist/auth/errors.js.map +1 -1
- package/dist/auth/oauth-proxy.d.ts +5 -2
- package/dist/auth/oauth-proxy.js +23 -27
- package/dist/auth/resolver.d.ts.map +1 -1
- package/dist/auth/resolver.js.map +1 -1
- package/dist/auth/role-helpers.d.ts +1 -1
- package/dist/auth/role-helpers.d.ts.map +1 -1
- package/dist/auth/role-helpers.js.map +1 -1
- package/dist/auth/session-manager.d.ts +2 -5
- package/dist/auth/session-manager.js +16 -6
- package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
- package/dist/auth/system/better-auth-schema.js +6 -23
- package/dist/auth/system/better-auth-schema.js.map +1 -1
- package/dist/cache/circuit-breaker.d.ts +81 -0
- package/dist/cache/circuit-breaker.d.ts.map +1 -0
- package/dist/cache/circuit-breaker.js +170 -0
- package/dist/cache/circuit-breaker.js.map +1 -0
- package/dist/cache/client.d.ts +6 -3
- package/dist/cache/client.d.ts.map +1 -1
- package/dist/cache/client.js +12 -53
- package/dist/cache/client.js.map +1 -1
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +5 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/invalidation-queue.d.ts +63 -0
- package/dist/cache/invalidation-queue.d.ts.map +1 -0
- package/dist/cache/invalidation-queue.js +196 -0
- package/dist/cache/invalidation-queue.js.map +1 -0
- package/dist/cache/layers.d.ts +14 -4
- package/dist/cache/layers.d.ts.map +1 -1
- package/dist/cache/layers.js +66 -72
- package/dist/cache/layers.js.map +1 -1
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +6 -41
- package/dist/cache/manager.js.map +1 -1
- package/dist/cache/protocol.d.ts +4 -39
- package/dist/cache/protocol.d.ts.map +1 -1
- package/dist/cache/protocol.js.map +1 -1
- package/dist/cache/redis-adapter.d.ts +103 -0
- package/dist/cache/redis-adapter.d.ts.map +1 -0
- package/dist/cache/redis-adapter.js +424 -0
- package/dist/cache/redis-adapter.js.map +1 -0
- package/dist/cache/run-sidecar.js +10 -1
- package/dist/cache/run-sidecar.js.map +1 -1
- package/dist/cache/sidecar-server.d.ts +51 -1
- package/dist/cache/sidecar-server.d.ts.map +1 -1
- package/dist/cache/sidecar-server.js +368 -22
- package/dist/cache/sidecar-server.js.map +1 -1
- package/dist/cache/store.d.ts +43 -0
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +69 -76
- package/dist/cache/store.js.map +1 -1
- package/dist/cache/strategies.d.ts +2 -9
- package/dist/cache/strategies.d.ts.map +1 -1
- package/dist/cache/types.d.ts +130 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +60 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/bullmq.d.ts +16 -0
- package/dist/config/bullmq.d.ts.map +1 -0
- package/dist/config/bullmq.js +103 -0
- package/dist/config/bullmq.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +80 -6
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +71 -6
- package/dist/config/schema.js.map +1 -1
- package/dist/config/service.d.ts +54 -4
- package/dist/config/service.d.ts.map +1 -1
- package/dist/config/service.js +56 -2
- package/dist/config/service.js.map +1 -1
- package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
- package/dist/controllers/admin/admin-tokens.controller.js +117 -98
- package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
- package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
- package/dist/controllers/admin/api-keys.controller.js.map +1 -1
- package/dist/controllers/admin/app-users.controller.d.ts +274 -243
- package/dist/controllers/admin/app-users.controller.js +301 -257
- package/dist/controllers/admin/auth.controller.d.ts +260 -236
- package/dist/controllers/admin/auth.controller.js +197 -174
- package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
- package/dist/controllers/admin/backup.controller.js.map +1 -1
- package/dist/controllers/admin/settings.controller.d.ts +1 -1
- package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
- package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
- package/dist/controllers/admin/storage-stats.controller.js +33 -0
- package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
- package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
- package/dist/controllers/admin/tenants.controller.js.map +1 -1
- package/dist/controllers/admin/users.controller.d.ts +1 -1
- package/dist/controllers/admin/users.controller.d.ts.map +1 -1
- package/dist/controllers/admin/users.controller.js.map +1 -1
- package/dist/controllers/auth.controller.d.ts +289 -271
- package/dist/controllers/auth.controller.js +275 -226
- package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
- package/dist/controllers/crud-generator.controller.js +4 -2
- package/dist/controllers/crud-generator.controller.js.map +1 -1
- package/dist/controllers/index.d.ts +1 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/introspection.controller.d.ts +666 -0
- package/dist/controllers/introspection.controller.d.ts.map +1 -1
- package/dist/controllers/introspection.controller.js +628 -0
- package/dist/controllers/introspection.controller.js.map +1 -1
- package/dist/controllers/invite.controller.d.ts +190 -170
- package/dist/controllers/invite.controller.js +183 -164
- package/dist/controllers/mfa.controller.d.ts +205 -183
- package/dist/controllers/mfa.controller.js +131 -111
- package/dist/controllers/otp.controller.d.ts +194 -171
- package/dist/controllers/otp.controller.js +192 -175
- package/dist/controllers/storage.controller.d.ts.map +1 -1
- package/dist/controllers/storage.controller.js.map +1 -1
- package/dist/controllers/system.controller.d.ts +21 -3
- package/dist/controllers/system.controller.d.ts.map +1 -1
- package/dist/controllers/system.controller.js +32 -2
- package/dist/controllers/system.controller.js.map +1 -1
- package/dist/controllers/tenant.controller.d.ts +258 -227
- package/dist/controllers/tenant.controller.js +224 -200
- package/dist/db/cachedclient.d.ts +6 -11
- package/dist/db/cachedclient.d.ts.map +1 -1
- package/dist/db/cachedclient.js +79 -43
- package/dist/db/cachedclient.js.map +1 -1
- package/dist/db/distributed-client.d.ts +79 -24
- package/dist/db/distributed-client.js +23 -24
- package/dist/db/factory.d.ts +3 -8
- package/dist/db/factory.d.ts.map +1 -1
- package/dist/db/factory.js +3 -22
- package/dist/db/factory.js.map +1 -1
- package/dist/db/socket-client.d.ts +7 -0
- package/dist/db/socket-client.d.ts.map +1 -1
- package/dist/db/socket-client.js +140 -11
- package/dist/db/socket-client.js.map +1 -1
- package/dist/deployment/handler.d.ts +10 -2
- package/dist/deployment/handler.d.ts.map +1 -1
- package/dist/deployment/handler.js +103 -21
- package/dist/deployment/handler.js.map +1 -1
- package/dist/deployment/persistence.d.ts.map +1 -1
- package/dist/deployment/persistence.js +6 -1
- package/dist/deployment/persistence.js.map +1 -1
- package/dist/docker/compose.d.ts.map +1 -1
- package/dist/docker/compose.js +76 -0
- package/dist/docker/compose.js.map +1 -1
- package/dist/engine/runner.d.ts.map +1 -1
- package/dist/engine/runner.js +0 -43
- package/dist/engine/runner.js.map +1 -1
- package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
- package/dist/functions/built-in/auth-apikey.js.map +1 -1
- package/dist/functions/built-in/system-cache.d.ts.map +1 -1
- package/dist/functions/built-in/system-cache.js +6 -31
- package/dist/functions/built-in/system-cache.js.map +1 -1
- package/dist/functions/built-in/system-data.d.ts.map +1 -1
- package/dist/functions/built-in/system-data.js +4 -2
- package/dist/functions/built-in/system-data.js.map +1 -1
- package/dist/functions/definition.d.ts.map +1 -1
- package/dist/functions/definition.js +6 -2
- package/dist/functions/definition.js.map +1 -1
- package/dist/http/router.d.ts +1 -0
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +14 -3
- package/dist/http/router.js.map +1 -1
- package/dist/http/routes/metrics.d.ts +42 -0
- package/dist/http/routes/metrics.d.ts.map +1 -0
- package/dist/http/routes/metrics.js +29 -0
- package/dist/http/routes/metrics.js.map +1 -0
- package/dist/http/server.d.ts +1 -0
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +63 -22
- package/dist/http/server.js.map +1 -1
- package/dist/ipc/socket-bridge.d.ts +1 -0
- package/dist/ipc/socket-bridge.d.ts.map +1 -1
- package/dist/ipc/socket-bridge.js +5 -1
- package/dist/ipc/socket-bridge.js.map +1 -1
- package/dist/jobs/bullmq-adapter.d.ts +154 -0
- package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
- package/dist/jobs/bullmq-adapter.js +688 -0
- package/dist/jobs/bullmq-adapter.js.map +1 -0
- package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
- package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
- package/dist/jobs/bullmq-circuit-breaker.js +323 -0
- package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
- package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
- package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
- package/dist/jobs/bullmq-dlq-manager.js +325 -0
- package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
- package/dist/jobs/bullmq-metrics.d.ts +104 -0
- package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
- package/dist/jobs/bullmq-metrics.js +323 -0
- package/dist/jobs/bullmq-metrics.js.map +1 -0
- package/dist/jobs/bullmq-priority-service.d.ts +173 -0
- package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
- package/dist/jobs/bullmq-priority-service.js +390 -0
- package/dist/jobs/bullmq-priority-service.js.map +1 -0
- package/dist/jobs/bullmq-scheduler.d.ts +111 -0
- package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
- package/dist/jobs/bullmq-scheduler.js +300 -0
- package/dist/jobs/bullmq-scheduler.js.map +1 -0
- package/dist/jobs/bullmq-worker.d.ts +155 -0
- package/dist/jobs/bullmq-worker.d.ts.map +1 -0
- package/dist/jobs/bullmq-worker.js +651 -0
- package/dist/jobs/bullmq-worker.js.map +1 -0
- package/dist/jobs/circuit-breaker.d.ts +120 -0
- package/dist/jobs/circuit-breaker.d.ts.map +1 -0
- package/dist/jobs/circuit-breaker.js +262 -0
- package/dist/jobs/circuit-breaker.js.map +1 -0
- package/dist/jobs/index.d.ts +1 -1
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/queue.d.ts +120 -1
- package/dist/jobs/queue.d.ts.map +1 -1
- package/dist/jobs/queue.js +487 -9
- package/dist/jobs/queue.js.map +1 -1
- package/dist/jobs/redis-connection.d.ts +50 -0
- package/dist/jobs/redis-connection.d.ts.map +1 -0
- package/dist/jobs/redis-connection.js +123 -0
- package/dist/jobs/redis-connection.js.map +1 -0
- package/dist/jobs/run-scheduler.js +163 -10
- package/dist/jobs/run-scheduler.js.map +1 -1
- package/dist/jobs/run-worker.js +101 -9
- package/dist/jobs/run-worker.js.map +1 -1
- package/dist/jobs/worker-thread.d.ts +6 -0
- package/dist/jobs/worker-thread.d.ts.map +1 -1
- package/dist/jobs/worker-thread.js +37 -8
- package/dist/jobs/worker-thread.js.map +1 -1
- package/dist/jobs/worker.d.ts +33 -0
- package/dist/jobs/worker.d.ts.map +1 -1
- package/dist/jobs/worker.js +358 -115
- package/dist/jobs/worker.js.map +1 -1
- package/dist/linq/async-enumerable.d.ts.map +1 -1
- package/dist/linq/async-enumerable.js.map +1 -1
- package/dist/linq/enumerable.d.ts.map +1 -1
- package/dist/linq/enumerable.js +10 -10
- package/dist/linq/enumerable.js.map +1 -1
- package/dist/metrics/collector.d.ts +26 -0
- package/dist/metrics/collector.d.ts.map +1 -0
- package/dist/metrics/collector.js +103 -0
- package/dist/metrics/collector.js.map +1 -0
- package/dist/polling/updates.controller.d.ts +57 -0
- package/dist/polling/updates.controller.d.ts.map +1 -0
- package/dist/polling/updates.controller.js +70 -0
- package/dist/polling/updates.controller.js.map +1 -0
- package/dist/repository/db-set.d.ts.map +1 -1
- package/dist/repository/db-set.js +12 -8
- package/dist/repository/db-set.js.map +1 -1
- package/dist/repository/ef-core.d.ts.map +1 -1
- package/dist/repository/ef-core.js +6 -6
- package/dist/repository/ef-core.js.map +1 -1
- package/dist/repository/factory.d.ts +1 -1
- package/dist/repository/factory.d.ts.map +1 -1
- package/dist/repository/factory.js.map +1 -1
- package/dist/repository/interfaces.d.ts.map +1 -1
- package/dist/repository/interfaces.js.map +1 -1
- package/dist/repository/queryable.d.ts.map +1 -1
- package/dist/repository/queryable.js.map +1 -1
- package/dist/rpc/adapter.d.ts.map +1 -1
- package/dist/rpc/adapter.js.map +1 -1
- package/dist/rpc/router.d.ts +2 -2
- package/dist/rpc/router.d.ts.map +1 -1
- package/dist/rpc/router.js +1 -1
- package/dist/rpc/router.js.map +1 -1
- package/dist/schema/input-types.d.ts +1 -1
- package/dist/schema/input-types.d.ts.map +1 -1
- package/dist/schema/input-types.js +4 -3
- package/dist/schema/input-types.js.map +1 -1
- package/dist/schema/modifiers.d.ts +2 -1
- package/dist/schema/modifiers.d.ts.map +1 -1
- package/dist/schema/modifiers.js +41 -5
- package/dist/schema/modifiers.js.map +1 -1
- package/dist/schema/relationship-types.d.ts +7 -2
- package/dist/schema/relationship-types.js +1 -1
- package/dist/schema/type-helpers.d.ts +35 -0
- package/dist/schema/type-helpers.d.ts.map +1 -1
- package/dist/schema/type-helpers.js +32 -21
- package/dist/schema/type-helpers.js.map +1 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/validators.d.ts +1 -1
- package/dist/schema/validators.d.ts.map +1 -1
- package/dist/schema/validators.js +27 -16
- package/dist/schema/validators.js.map +1 -1
- package/dist/services/admin/app-users.service.d.ts +1 -1
- package/dist/services/admin/app-users.service.js +31 -38
- package/dist/services/admin/auth.service.d.ts +1 -1
- package/dist/services/admin/auth.service.js +11 -5
- package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
- package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
- package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
- package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
- package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
- package/dist/services/admin/backup/StorageStreamer.js +16 -55
- package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
- package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
- package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
- package/dist/services/admin/backup/ZipComposer.js +23 -0
- package/dist/services/admin/backup/ZipComposer.js.map +1 -1
- package/dist/services/admin/backup.service.d.ts.map +1 -1
- package/dist/services/admin/backup.service.js.map +1 -1
- package/dist/services/admin/data.service.d.ts.map +1 -1
- package/dist/services/admin/data.service.js +287 -286
- package/dist/services/admin/data.service.js.map +1 -1
- package/dist/services/admin/tenants.service.d.ts.map +1 -1
- package/dist/services/admin/tenants.service.js.map +1 -1
- package/dist/services/auth.service.d.ts +2 -3
- package/dist/services/auth.service.js +16 -16
- package/dist/services/introspection.service.d.ts.map +1 -1
- package/dist/services/introspection.service.js +6 -3
- package/dist/services/introspection.service.js.map +1 -1
- package/dist/services/invite.service.d.ts +1 -1
- package/dist/services/invite.service.js +17 -15
- package/dist/services/storage.service.d.ts.map +1 -1
- package/dist/services/storage.service.js +35 -4
- package/dist/services/storage.service.js.map +1 -1
- package/dist/services/system.service.d.ts +4 -0
- package/dist/services/system.service.d.ts.map +1 -1
- package/dist/services/system.service.js +43 -1
- package/dist/services/system.service.js.map +1 -1
- package/dist/services/tenant.service.d.ts +1 -1
- package/dist/services/tenant.service.js +43 -31
- package/dist/sse/subscriptions.controller.d.ts +57 -0
- package/dist/sse/subscriptions.controller.d.ts.map +1 -0
- package/dist/sse/subscriptions.controller.js +127 -0
- package/dist/sse/subscriptions.controller.js.map +1 -0
- package/dist/startup/bootstrap.d.ts +13 -2
- package/dist/startup/bootstrap.d.ts.map +1 -1
- package/dist/startup/bootstrap.js +85 -13
- package/dist/startup/bootstrap.js.map +1 -1
- package/dist/storage/s3-backend.d.ts.map +1 -1
- package/dist/storage/s3-backend.js +3 -3
- package/dist/storage/s3-backend.js.map +1 -1
- package/dist/websocket/server.d.ts.map +1 -1
- package/dist/websocket/server.js +14 -3
- package/dist/websocket/server.js.map +1 -1
- package/docker/README.md +299 -1
- package/package.json +5 -1
- package/templates/.env.example +76 -16
- package/templates/archlast.config.js +15 -1
- package/templates/docker-compose.dev.yml +8 -8
- package/templates/docker-compose.prod.yml +29 -12
- package/templates/docker-compose.yml +112 -28
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidationRetryQueue = void 0;
|
|
4
|
+
const logger_js_1 = require("../logging/logger.js");
|
|
5
|
+
/**
|
|
6
|
+
* InvalidationRetryQueue
|
|
7
|
+
*
|
|
8
|
+
* A retry queue for failed cache invalidation publish operations.
|
|
9
|
+
* Uses exponential backoff with jitter to retry failed invalidations,
|
|
10
|
+
* preventing cache divergence across instances.
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - In-memory queue (no external dependencies)
|
|
14
|
+
* - Exponential backoff with jitter
|
|
15
|
+
* - Maximum retry limit (prevents infinite queue growth)
|
|
16
|
+
* - Background processing every 5 seconds
|
|
17
|
+
* - Comprehensive logging
|
|
18
|
+
*/
|
|
19
|
+
class InvalidationRetryQueue {
|
|
20
|
+
publishFn;
|
|
21
|
+
queue = [];
|
|
22
|
+
isProcessing = false;
|
|
23
|
+
processingInterval = null;
|
|
24
|
+
maxRetries = 5;
|
|
25
|
+
baseDelay = 1000; // 1 second
|
|
26
|
+
maxDelay = 60000; // 60 seconds
|
|
27
|
+
processIntervalMs = 5000; // 5 seconds
|
|
28
|
+
stats = { failed: 0, succeeded: 0 };
|
|
29
|
+
constructor(publishFn) {
|
|
30
|
+
this.publishFn = publishFn;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Add a failed invalidation to the retry queue
|
|
34
|
+
*/
|
|
35
|
+
enqueue(keys, pattern) {
|
|
36
|
+
const item = {
|
|
37
|
+
keys,
|
|
38
|
+
pattern,
|
|
39
|
+
attempt: 0,
|
|
40
|
+
nextRetry: Date.now(),
|
|
41
|
+
};
|
|
42
|
+
this.queue.push(item);
|
|
43
|
+
logger_js_1.logger.log({
|
|
44
|
+
timestamp: Date.now(),
|
|
45
|
+
level: "info",
|
|
46
|
+
kind: "cache",
|
|
47
|
+
message: `[InvalidationRetryQueue] Enqueued ${keys.length} keys for retry (pattern: ${pattern || "none"})`,
|
|
48
|
+
});
|
|
49
|
+
// Trigger immediate processing attempt if not already running
|
|
50
|
+
if (!this.isProcessing) {
|
|
51
|
+
this.processQueue().catch((err) => {
|
|
52
|
+
logger_js_1.logger.log({
|
|
53
|
+
timestamp: Date.now(),
|
|
54
|
+
level: "warn",
|
|
55
|
+
kind: "cache",
|
|
56
|
+
message: `[InvalidationRetryQueue] Immediate processing error: ${err}`,
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Start background processing of the retry queue
|
|
63
|
+
*/
|
|
64
|
+
start() {
|
|
65
|
+
if (this.processingInterval) {
|
|
66
|
+
return; // Already started
|
|
67
|
+
}
|
|
68
|
+
this.processingInterval = setInterval(() => {
|
|
69
|
+
this.processQueue().catch((err) => {
|
|
70
|
+
logger_js_1.logger.log({
|
|
71
|
+
timestamp: Date.now(),
|
|
72
|
+
level: "error",
|
|
73
|
+
kind: "cache",
|
|
74
|
+
message: `[InvalidationRetryQueue] Background processing error: ${err}`,
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}, this.processIntervalMs);
|
|
78
|
+
logger_js_1.logger.log({
|
|
79
|
+
timestamp: Date.now(),
|
|
80
|
+
level: "info",
|
|
81
|
+
kind: "cache",
|
|
82
|
+
message: `[InvalidationRetryQueue] Started background processing (interval: ${this.processIntervalMs}ms)`,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Stop background processing
|
|
87
|
+
*/
|
|
88
|
+
stop() {
|
|
89
|
+
if (this.processingInterval) {
|
|
90
|
+
clearInterval(this.processingInterval);
|
|
91
|
+
this.processingInterval = null;
|
|
92
|
+
logger_js_1.logger.log({
|
|
93
|
+
timestamp: Date.now(),
|
|
94
|
+
level: "info",
|
|
95
|
+
kind: "cache",
|
|
96
|
+
message: `[InvalidationRetryQueue] Stopped background processing`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Process the retry queue with exponential backoff
|
|
102
|
+
*/
|
|
103
|
+
async processQueue() {
|
|
104
|
+
if (this.isProcessing || this.queue.length === 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.isProcessing = true;
|
|
108
|
+
const now = Date.now();
|
|
109
|
+
const readyItems = [];
|
|
110
|
+
const notReadyItems = [];
|
|
111
|
+
// Separate ready and not-ready items
|
|
112
|
+
for (const item of this.queue) {
|
|
113
|
+
if (item.nextRetry <= now) {
|
|
114
|
+
readyItems.push(item);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
notReadyItems.push(item);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Process ready items
|
|
121
|
+
const stillFailed = [];
|
|
122
|
+
for (const item of readyItems) {
|
|
123
|
+
try {
|
|
124
|
+
await this.publishFn(item.keys, item.pattern);
|
|
125
|
+
// Success!
|
|
126
|
+
this.stats.succeeded++;
|
|
127
|
+
logger_js_1.logger.log({
|
|
128
|
+
timestamp: Date.now(),
|
|
129
|
+
level: "info",
|
|
130
|
+
kind: "cache",
|
|
131
|
+
message: `[InvalidationRetryQueue] Successfully published ${item.keys.length} keys after ${item.attempt + 1} attempt(s)`,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
item.attempt++;
|
|
136
|
+
if (item.attempt >= this.maxRetries) {
|
|
137
|
+
// Max retries exceeded - log and drop
|
|
138
|
+
this.stats.failed++;
|
|
139
|
+
logger_js_1.logger.log({
|
|
140
|
+
timestamp: Date.now(),
|
|
141
|
+
level: "error",
|
|
142
|
+
kind: "cache",
|
|
143
|
+
message: `[InvalidationRetryQueue] PERMANENT FAILURE: Failed to publish ${item.keys.length} keys after ${this.maxRetries} retries. Keys: ${item.keys.join(", ")}. Error: ${err}`,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// Schedule retry
|
|
148
|
+
item.nextRetry = this.calculateNextRetry(item.attempt);
|
|
149
|
+
stillFailed.push(item);
|
|
150
|
+
logger_js_1.logger.log({
|
|
151
|
+
timestamp: Date.now(),
|
|
152
|
+
level: "warn",
|
|
153
|
+
kind: "cache",
|
|
154
|
+
message: `[InvalidationRetryQueue] Retry ${item.attempt}/${this.maxRetries} failed for ${item.keys.length} keys. Next retry at ${new Date(item.nextRetry).toISOString()}. Error: ${err}`,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Update queue with items that need retry + items not yet ready
|
|
160
|
+
this.queue = [...stillFailed, ...notReadyItems];
|
|
161
|
+
this.isProcessing = false;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Calculate the next retry time using exponential backoff with jitter
|
|
165
|
+
*
|
|
166
|
+
* Formula: delay = min(baseDelay × (2^attempt) + random jitter, maxDelay)
|
|
167
|
+
*/
|
|
168
|
+
calculateNextRetry(attempt) {
|
|
169
|
+
// Exponential backoff: baseDelay × (2^attempt)
|
|
170
|
+
const exponentialDelay = this.baseDelay * Math.pow(2, attempt);
|
|
171
|
+
// Add jitter (0-1000ms random) to prevent thundering herd
|
|
172
|
+
const jitter = Math.floor(Math.random() * 1000);
|
|
173
|
+
// Cap at maxDelay
|
|
174
|
+
const totalDelay = Math.min(exponentialDelay + jitter, this.maxDelay);
|
|
175
|
+
return Date.now() + totalDelay;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get current queue statistics
|
|
179
|
+
*/
|
|
180
|
+
getStats() {
|
|
181
|
+
return {
|
|
182
|
+
queued: this.queue.length,
|
|
183
|
+
failed: this.stats.failed,
|
|
184
|
+
succeeded: this.stats.succeeded,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Clear all queued items (useful for testing)
|
|
189
|
+
*/
|
|
190
|
+
clear() {
|
|
191
|
+
this.queue = [];
|
|
192
|
+
this.stats = { failed: 0, succeeded: 0 };
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.InvalidationRetryQueue = InvalidationRetryQueue;
|
|
196
|
+
//# sourceMappingURL=invalidation-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidation-queue.js","sourceRoot":"","sources":["../../src/cache/invalidation-queue.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/layers.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CacheConfig } from "./strategies.js";
|
|
2
2
|
import type { CacheClient } from "./client.js";
|
|
3
|
+
import type { CacheLayerStats } from "./types.js";
|
|
3
4
|
/**
|
|
4
5
|
* Query Result Cache
|
|
5
6
|
* Uses centralized cache sidecar for distributed caching
|
|
@@ -7,6 +8,7 @@ import type { CacheClient } from "./client.js";
|
|
|
7
8
|
export declare class QueryCache {
|
|
8
9
|
private cacheClient;
|
|
9
10
|
private namespace;
|
|
11
|
+
private l2Ttl;
|
|
10
12
|
constructor(config?: Partial<CacheConfig>, cacheClient?: CacheClient | null);
|
|
11
13
|
/**
|
|
12
14
|
* Generate cache key from query name and args
|
|
@@ -18,20 +20,24 @@ export declare class QueryCache {
|
|
|
18
20
|
get<T>(queryName: string, args: any, fetchFn: () => Promise<T>): Promise<T>;
|
|
19
21
|
/**
|
|
20
22
|
* Invalidate all queries for a specific collection
|
|
23
|
+
* NON-BLOCKING: Uses fire-and-forget to avoid slowing reactivity
|
|
21
24
|
*/
|
|
22
25
|
invalidateCollection(collection: string): number;
|
|
23
26
|
/**
|
|
24
27
|
* Invalidate specific query
|
|
28
|
+
* NON-BLOCKING: Uses fire-and-forget to avoid slowing reactivity
|
|
25
29
|
*/
|
|
26
30
|
invalidateQuery(queryName: string, args?: any): boolean;
|
|
27
31
|
/**
|
|
28
32
|
* Clear all query cache
|
|
33
|
+
* NON-BLOCKING: Uses fire-and-forget to avoid slowing reactivity
|
|
29
34
|
*/
|
|
30
35
|
clear(): void;
|
|
31
36
|
/**
|
|
32
37
|
* Get cache stats
|
|
38
|
+
* Returns complete CacheLayerStats with all required fields
|
|
33
39
|
*/
|
|
34
|
-
getStats(): Promise<
|
|
40
|
+
getStats(): Promise<CacheLayerStats>;
|
|
35
41
|
}
|
|
36
42
|
/**
|
|
37
43
|
* Document Cache
|
|
@@ -39,6 +45,7 @@ export declare class QueryCache {
|
|
|
39
45
|
*/
|
|
40
46
|
export declare class DocumentCache {
|
|
41
47
|
private cache;
|
|
48
|
+
private l2Ttl;
|
|
42
49
|
constructor(config?: Partial<CacheConfig>, cacheClient?: CacheClient | null);
|
|
43
50
|
/**
|
|
44
51
|
* Generate cache key for document
|
|
@@ -62,8 +69,9 @@ export declare class DocumentCache {
|
|
|
62
69
|
invalidateCollection(collection: string): number;
|
|
63
70
|
/**
|
|
64
71
|
* Get cache stats
|
|
72
|
+
* Returns complete CacheLayerStats with all required fields
|
|
65
73
|
*/
|
|
66
|
-
getStats(): Promise<
|
|
74
|
+
getStats(): Promise<CacheLayerStats>;
|
|
67
75
|
/**
|
|
68
76
|
* Clear all documents from cache
|
|
69
77
|
*/
|
|
@@ -76,6 +84,7 @@ export declare class DocumentCache {
|
|
|
76
84
|
*/
|
|
77
85
|
export declare class AggregateCache {
|
|
78
86
|
private cache;
|
|
87
|
+
private l2Ttl;
|
|
79
88
|
constructor(config?: Partial<CacheConfig>, cacheClient?: CacheClient | null);
|
|
80
89
|
/**
|
|
81
90
|
* Generate cache key for aggregate query
|
|
@@ -95,8 +104,9 @@ export declare class AggregateCache {
|
|
|
95
104
|
clear(): void;
|
|
96
105
|
/**
|
|
97
106
|
* Get cache stats
|
|
107
|
+
* Returns complete CacheLayerStats with all required fields
|
|
98
108
|
*/
|
|
99
|
-
getStats(): Promise<
|
|
109
|
+
getStats(): Promise<CacheLayerStats>;
|
|
100
110
|
}
|
|
101
111
|
/**
|
|
102
112
|
* Session Cache
|
|
@@ -120,6 +130,6 @@ export declare class SessionCache {
|
|
|
120
130
|
/**
|
|
121
131
|
* Get cache stats
|
|
122
132
|
*/
|
|
123
|
-
getStats(): Promise<import("./
|
|
133
|
+
getStats(): Promise<import("./types.js").LegacyCacheStats>;
|
|
124
134
|
}
|
|
125
135
|
//# sourceMappingURL=layers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/cache/layers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/cache/layers.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/layers.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SessionCache = exports.AggregateCache = exports.DocumentCache = exports.QueryCache = void 0;
|
|
4
4
|
const logger_js_1 = require("../logging/logger.js");
|
|
5
5
|
const manager_js_1 = require("./manager.js");
|
|
6
|
+
const types_js_1 = require("./types.js");
|
|
6
7
|
/**
|
|
7
8
|
* Query Result Cache
|
|
8
9
|
* Uses centralized cache sidecar for distributed caching
|
|
@@ -10,8 +11,11 @@ const manager_js_1 = require("./manager.js");
|
|
|
10
11
|
class QueryCache {
|
|
11
12
|
cacheClient;
|
|
12
13
|
namespace = "query";
|
|
14
|
+
l2Ttl;
|
|
13
15
|
constructor(config, cacheClient) {
|
|
14
16
|
this.cacheClient = cacheClient || null;
|
|
17
|
+
// L2 TTL for Redis cache - default 30 minutes (1800000 ms)
|
|
18
|
+
this.l2Ttl = config?.l2Ttl ?? 1800000;
|
|
15
19
|
// If no sidecar client, we'll fallback to in-memory
|
|
16
20
|
if (!this.cacheClient) {
|
|
17
21
|
logger_js_1.logger.log({
|
|
@@ -56,7 +60,7 @@ class QueryCache {
|
|
|
56
60
|
const result = await fetchFn();
|
|
57
61
|
if (this.cacheClient) {
|
|
58
62
|
try {
|
|
59
|
-
await this.cacheClient.set(key, result, "query",
|
|
63
|
+
await this.cacheClient.set(key, result, "query", this.l2Ttl); // Use L2 TTL
|
|
60
64
|
}
|
|
61
65
|
catch (err) {
|
|
62
66
|
logger_js_1.logger.log({
|
|
@@ -72,94 +76,73 @@ class QueryCache {
|
|
|
72
76
|
}
|
|
73
77
|
/**
|
|
74
78
|
* Invalidate all queries for a specific collection
|
|
79
|
+
* NON-BLOCKING: Uses fire-and-forget to avoid slowing reactivity
|
|
75
80
|
*/
|
|
76
81
|
invalidateCollection(collection) {
|
|
77
82
|
if (!this.cacheClient) {
|
|
78
83
|
return 0;
|
|
79
84
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return 1; // Return success indicator
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
logger_js_1.logger.log({
|
|
89
|
-
timestamp: Date.now(),
|
|
90
|
-
level: "warn",
|
|
91
|
-
kind: "cache",
|
|
92
|
-
message: "[QueryCache] Failed to invalidate collection:",
|
|
93
|
-
context: { err },
|
|
94
|
-
});
|
|
95
|
-
return 0;
|
|
96
|
-
}
|
|
85
|
+
// Use pattern matching to invalidate all queries for this collection
|
|
86
|
+
// Fire-and-forget: don't await, don't block the reactive path
|
|
87
|
+
const pattern = `${this.namespace}:*${collection}*`;
|
|
88
|
+
this.cacheClient.invalidatePattern(pattern); // Fire-and-forget, errors handled internally
|
|
89
|
+
return 1; // Return success indicator
|
|
97
90
|
}
|
|
98
91
|
/**
|
|
99
92
|
* Invalidate specific query
|
|
93
|
+
* NON-BLOCKING: Uses fire-and-forget to avoid slowing reactivity
|
|
100
94
|
*/
|
|
101
95
|
invalidateQuery(queryName, args) {
|
|
102
96
|
if (!this.cacheClient) {
|
|
103
97
|
return false;
|
|
104
98
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
// Invalidate all queries with this name
|
|
112
|
-
const pattern = `${this.namespace}:${queryName}:*`;
|
|
113
|
-
this.cacheClient.invalidatePattern(pattern);
|
|
114
|
-
}
|
|
115
|
-
return true;
|
|
99
|
+
// Fire-and-forget: don't await, don't block the reactive path
|
|
100
|
+
if (args) {
|
|
101
|
+
const key = this.getCacheKey(queryName, args);
|
|
102
|
+
this.cacheClient.delete(key); // Fire-and-forget, errors handled internally
|
|
116
103
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
kind: "cache",
|
|
122
|
-
message: "[QueryCache] Failed to invalidate query:",
|
|
123
|
-
context: { err },
|
|
124
|
-
});
|
|
125
|
-
return false;
|
|
104
|
+
else {
|
|
105
|
+
// Invalidate all queries with this name
|
|
106
|
+
const pattern = `${this.namespace}:${queryName}:*`;
|
|
107
|
+
this.cacheClient.invalidatePattern(pattern); // Fire-and-forget, errors handled internally
|
|
126
108
|
}
|
|
109
|
+
return true;
|
|
127
110
|
}
|
|
128
111
|
/**
|
|
129
112
|
* Clear all query cache
|
|
113
|
+
* NON-BLOCKING: Uses fire-and-forget to avoid slowing reactivity
|
|
130
114
|
*/
|
|
131
115
|
clear() {
|
|
132
116
|
if (!this.cacheClient) {
|
|
133
117
|
return;
|
|
134
118
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
logger_js_1.logger.log({
|
|
141
|
-
timestamp: Date.now(),
|
|
142
|
-
level: "warn",
|
|
143
|
-
kind: "cache",
|
|
144
|
-
message: "[QueryCache] Failed to clear cache:",
|
|
145
|
-
context: { err },
|
|
146
|
-
});
|
|
147
|
-
}
|
|
119
|
+
// Fire-and-forget: don't await, don't block the reactive path
|
|
120
|
+
const pattern = `${this.namespace}:*`;
|
|
121
|
+
this.cacheClient.invalidatePattern(pattern); // Fire-and-forget, errors handled internally
|
|
148
122
|
}
|
|
149
123
|
/**
|
|
150
124
|
* Get cache stats
|
|
125
|
+
* Returns complete CacheLayerStats with all required fields
|
|
151
126
|
*/
|
|
152
127
|
async getStats() {
|
|
128
|
+
const maxSize = 1000; // Query cache max entries
|
|
153
129
|
if (!this.cacheClient) {
|
|
154
|
-
return
|
|
155
|
-
hits: 0,
|
|
156
|
-
misses: 0,
|
|
157
|
-
size: 0,
|
|
158
|
-
hitRate: 0,
|
|
159
|
-
};
|
|
130
|
+
return (0, types_js_1.getEmptyCacheLayerStats)(maxSize);
|
|
160
131
|
}
|
|
161
132
|
try {
|
|
162
|
-
|
|
133
|
+
const stats = await this.cacheClient.getStats();
|
|
134
|
+
// Normalize to CacheLayerStats - ensure all fields present
|
|
135
|
+
return {
|
|
136
|
+
hits: stats.hits ?? 0,
|
|
137
|
+
misses: stats.misses ?? 0,
|
|
138
|
+
hitRate: stats.hitRate ?? 0,
|
|
139
|
+
evictions: stats.evictions ?? 0,
|
|
140
|
+
writes: stats.writes ?? 0,
|
|
141
|
+
deletes: stats.deletes ?? 0,
|
|
142
|
+
size: stats.size ?? 0,
|
|
143
|
+
entries: stats.entries ?? 0,
|
|
144
|
+
maxSize,
|
|
145
|
+
};
|
|
163
146
|
}
|
|
164
147
|
catch (err) {
|
|
165
148
|
logger_js_1.logger.log({
|
|
@@ -169,12 +152,7 @@ class QueryCache {
|
|
|
169
152
|
message: "[QueryCache] Failed to get stats:",
|
|
170
153
|
context: { err },
|
|
171
154
|
});
|
|
172
|
-
return
|
|
173
|
-
hits: 0,
|
|
174
|
-
misses: 0,
|
|
175
|
-
size: 0,
|
|
176
|
-
hitRate: 0,
|
|
177
|
-
};
|
|
155
|
+
return (0, types_js_1.getEmptyCacheLayerStats)(maxSize);
|
|
178
156
|
}
|
|
179
157
|
}
|
|
180
158
|
}
|
|
@@ -185,10 +163,13 @@ exports.QueryCache = QueryCache;
|
|
|
185
163
|
*/
|
|
186
164
|
class DocumentCache {
|
|
187
165
|
cache;
|
|
166
|
+
l2Ttl;
|
|
188
167
|
constructor(config, cacheClient) {
|
|
168
|
+
// L2 TTL for Redis cache - default 30 minutes (1800000 ms)
|
|
169
|
+
this.l2Ttl = config?.l2Ttl ?? 1800000;
|
|
189
170
|
this.cache = new manager_js_1.CacheManager("document-cache", {
|
|
190
171
|
strategy: "write-through",
|
|
191
|
-
ttl: 600000, // 10 minutes default
|
|
172
|
+
ttl: 600000, // 10 minutes default (L1 TTL)
|
|
192
173
|
maxSize: 5000,
|
|
193
174
|
enableInvalidation: true,
|
|
194
175
|
partition: "document",
|
|
@@ -217,7 +198,7 @@ class DocumentCache {
|
|
|
217
198
|
*/
|
|
218
199
|
set(collection, id, doc) {
|
|
219
200
|
const key = this.getCacheKey(collection, id);
|
|
220
|
-
this.cache.set(key, doc);
|
|
201
|
+
this.cache.set(key, doc, { ttl: this.l2Ttl }); // Use L2 TTL for Redis
|
|
221
202
|
}
|
|
222
203
|
/**
|
|
223
204
|
* Delete document from cache
|
|
@@ -235,9 +216,14 @@ class DocumentCache {
|
|
|
235
216
|
}
|
|
236
217
|
/**
|
|
237
218
|
* Get cache stats
|
|
219
|
+
* Returns complete CacheLayerStats with all required fields
|
|
238
220
|
*/
|
|
239
|
-
getStats() {
|
|
240
|
-
|
|
221
|
+
async getStats() {
|
|
222
|
+
const maxSize = 5000; // Document cache max entries
|
|
223
|
+
const stats = await this.cache.getStats();
|
|
224
|
+
// Convert legacy CacheStats to CacheLayerStats (handles Promise)
|
|
225
|
+
const result = (0, types_js_1.toCacheLayerStats)(stats, maxSize);
|
|
226
|
+
return result instanceof Promise ? await result : result;
|
|
241
227
|
}
|
|
242
228
|
/**
|
|
243
229
|
* Clear all documents from cache
|
|
@@ -254,10 +240,13 @@ exports.DocumentCache = DocumentCache;
|
|
|
254
240
|
*/
|
|
255
241
|
class AggregateCache {
|
|
256
242
|
cache;
|
|
243
|
+
l2Ttl;
|
|
257
244
|
constructor(config, cacheClient) {
|
|
245
|
+
// L2 TTL for Redis cache - default 60 minutes (3600000 ms)
|
|
246
|
+
this.l2Ttl = config?.l2Ttl ?? 3600000;
|
|
258
247
|
this.cache = new manager_js_1.CacheManager("aggregate-cache", {
|
|
259
248
|
strategy: "cache-aside",
|
|
260
|
-
ttl: 60000, // 1 minute default
|
|
249
|
+
ttl: 60000, // 1 minute default (L1 TTL)
|
|
261
250
|
maxSize: 500,
|
|
262
251
|
enableInvalidation: true,
|
|
263
252
|
partition: "aggregate",
|
|
@@ -282,7 +271,7 @@ class AggregateCache {
|
|
|
282
271
|
return cached;
|
|
283
272
|
}
|
|
284
273
|
const result = await fetchFn();
|
|
285
|
-
this.cache.set(key, result);
|
|
274
|
+
this.cache.set(key, result, { ttl: this.l2Ttl }); // Use L2 TTL for Redis
|
|
286
275
|
return result;
|
|
287
276
|
}
|
|
288
277
|
/**
|
|
@@ -300,9 +289,14 @@ class AggregateCache {
|
|
|
300
289
|
}
|
|
301
290
|
/**
|
|
302
291
|
* Get cache stats
|
|
292
|
+
* Returns complete CacheLayerStats with all required fields
|
|
303
293
|
*/
|
|
304
|
-
getStats() {
|
|
305
|
-
|
|
294
|
+
async getStats() {
|
|
295
|
+
const maxSize = 500; // Aggregate cache max entries
|
|
296
|
+
const stats = await this.cache.getStats();
|
|
297
|
+
// Convert legacy CacheStats to CacheLayerStats (handles Promise)
|
|
298
|
+
const result = (0, types_js_1.toCacheLayerStats)(stats, maxSize);
|
|
299
|
+
return result instanceof Promise ? await result : result;
|
|
306
300
|
}
|
|
307
301
|
}
|
|
308
302
|
exports.AggregateCache = AggregateCache;
|
package/dist/cache/layers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/cache/layers.ts"],"names":[],"mappings":";;;AACA,oDAA8C;AAG9C,6CAA4C;AAE5C;;;GAGG;AACH,MAAa,UAAU;IACX,WAAW,CAAqB;IAChC,SAAS,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/cache/layers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EACR,WAAW,EAEX,aAAa,EACb,UAAU,EAGb,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,SAAS,CAAkD;gBAEvD,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IA+B/E;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwDxE;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAqD/D;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EACR,WAAW,EAEX,aAAa,EACb,UAAU,EAGb,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,SAAS,CAAkD;gBAEvD,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IA+B/E;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwDxE;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAqD/D;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAe5B;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAmBb;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAW1C;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM;IAsBvD;;OAEG;IACH,OAAO,CAAC,KAAK;IAKb;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;YACW,cAAc;IA8B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAM1B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IAmBrC;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAKhB;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAsBhC;;OAEG;IACH,YAAY,CAAC,QAAQ,GAAE,MAAc,GAAG,IAAI;IAiB5C;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC;CAUzE"}
|