@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-schema.d.ts","sourceRoot":"","sources":["../../../src/auth/system/better-auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;CAavB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;CAS1B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;
|
|
1
|
+
{"version":3,"file":"better-auth-schema.d.ts","sourceRoot":"","sources":["../../../src/auth/system/better-auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;CAavB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;CAS1B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;EAY7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;EAgB7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;EAiBvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;EAqB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;EAgCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAqBpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAwB5C,CAAC;AAEX;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAG/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAgB9F"}
|
|
@@ -53,9 +53,7 @@ exports.verificationTable = (0, definition_js_1.defineTable)({
|
|
|
53
53
|
createdAt: definition_js_1.v.datetime(),
|
|
54
54
|
updatedAt: definition_js_1.v.datetime(),
|
|
55
55
|
}, {
|
|
56
|
-
indexes: [
|
|
57
|
-
{ fields: ["identifier"], name: "idx_system_auth_verification_identifier" },
|
|
58
|
-
],
|
|
56
|
+
indexes: [{ fields: ["identifier"], name: "idx_system_auth_verification_identifier" }],
|
|
59
57
|
});
|
|
60
58
|
/**
|
|
61
59
|
* Better-Auth organization table
|
|
@@ -85,10 +83,7 @@ exports.memberTable = (0, definition_js_1.defineTable)({
|
|
|
85
83
|
.id()
|
|
86
84
|
.foreignKey("system_auth_organization", "_id", { onDelete: "CASCADE" })
|
|
87
85
|
.index(),
|
|
88
|
-
userId: definition_js_1.v
|
|
89
|
-
.id()
|
|
90
|
-
.foreignKey("system_auth_user", "_id", { onDelete: "CASCADE" })
|
|
91
|
-
.index(),
|
|
86
|
+
userId: definition_js_1.v.id().foreignKey("system_auth_user", "_id", { onDelete: "CASCADE" }).index(),
|
|
92
87
|
role: definition_js_1.v.string().default("member"),
|
|
93
88
|
createdAt: definition_js_1.v.datetime(),
|
|
94
89
|
}, {
|
|
@@ -109,15 +104,10 @@ exports.invitationTable = (0, definition_js_1.defineTable)({
|
|
|
109
104
|
.index(),
|
|
110
105
|
email: definition_js_1.v.string(),
|
|
111
106
|
role: definition_js_1.v.string(),
|
|
112
|
-
status: definition_js_1.v
|
|
113
|
-
.string()
|
|
114
|
-
.default("pending"),
|
|
107
|
+
status: definition_js_1.v.string().default("pending"),
|
|
115
108
|
expiresAt: definition_js_1.v.datetime().optional(),
|
|
116
109
|
createdAt: definition_js_1.v.datetime(),
|
|
117
|
-
inviterId: definition_js_1.v
|
|
118
|
-
.id()
|
|
119
|
-
.foreignKey("system_auth_user", "_id", { onDelete: "CASCADE" })
|
|
120
|
-
.index(),
|
|
110
|
+
inviterId: definition_js_1.v.id().foreignKey("system_auth_user", "_id", { onDelete: "CASCADE" }).index(),
|
|
121
111
|
}, {
|
|
122
112
|
indexes: [
|
|
123
113
|
{ fields: ["organizationId", "email"], name: "idx_system_auth_invitation_org_email" },
|
|
@@ -135,10 +125,7 @@ exports.apiKeyTable = (0, definition_js_1.defineTable)({
|
|
|
135
125
|
start: definition_js_1.v.string().optional(),
|
|
136
126
|
prefix: definition_js_1.v.string().optional(),
|
|
137
127
|
key: definition_js_1.v.string(),
|
|
138
|
-
userId: definition_js_1.v
|
|
139
|
-
.id()
|
|
140
|
-
.foreignKey("system_auth_user", "_id", { onDelete: "CASCADE" })
|
|
141
|
-
.index(),
|
|
128
|
+
userId: definition_js_1.v.id().foreignKey("system_auth_user", "_id", { onDelete: "CASCADE" }).index(),
|
|
142
129
|
refillInterval: definition_js_1.v.number().optional(),
|
|
143
130
|
refillAmount: definition_js_1.v.number().optional(),
|
|
144
131
|
lastRefillAt: definition_js_1.v.number().optional(),
|
|
@@ -205,11 +192,7 @@ exports.ROLE_PERMISSIONS = {
|
|
|
205
192
|
"settings.write",
|
|
206
193
|
],
|
|
207
194
|
// Member roles (default)
|
|
208
|
-
member: [
|
|
209
|
-
"organizations.read",
|
|
210
|
-
"profile.read",
|
|
211
|
-
"profile.write",
|
|
212
|
-
],
|
|
195
|
+
member: ["organizations.read", "profile.read", "profile.write"],
|
|
213
196
|
// Owner role (from organization plugin)
|
|
214
197
|
owner: [
|
|
215
198
|
"admin.*",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-schema.js","sourceRoot":"","sources":["../../../src/auth/system/better-auth-schema.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"better-auth-schema.js","sourceRoot":"","sources":["../../../src/auth/system/better-auth-schema.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAiOH,sDAGC;AAKD,8CAgBC;AAvPD,8DAA4D;AAE5D;;;GAGG;AACU,QAAA,oBAAoB,GAAG;IAChC,sBAAsB;IACtB,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,iBAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,SAAS,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,yBAAyB;IACzB,QAAQ,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEtC,yBAAyB;IACzB,WAAW,EAAE,iBAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjC,CAAC;AAEX;;;GAGG;AACU,QAAA,uBAAuB,GAAG;IACnC,kEAAkE;IAClE,KAAK,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE5B,uCAAuC;IACvC,cAAc,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAErC,sDAAsD;IACtD,oBAAoB,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;AAEX;;;GAGG;AACU,QAAA,iBAAiB,GAAG,IAAA,2BAAW,EACxC;IACI,GAAG,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE;IACxB,UAAU,EAAE,iBAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,iBAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE;IACvB,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE;IACvB,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE;CAC1B,EACD;IACI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;CACzF,CACJ,CAAC;AAEF;;;GAGG;AACU,QAAA,iBAAiB,GAAG,IAAA,2BAAW,EACxC;IACI,GAAG,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE;IACxB,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,iBAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE;IACvB,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACrC,EACD;IACI,OAAO,EAAE;QACL,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,MAAM,EAAE,IAAI,EAAE;QAC7E,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE;KAClE;CACJ,CACJ,CAAC;AAEF;;;GAGG;AACU,QAAA,WAAW,GAAG,IAAA,2BAAW,EAClC;IACI,GAAG,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE;IACxB,cAAc,EAAE,iBAAC;SACZ,EAAE,EAAE;SACJ,UAAU,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;SACtE,KAAK,EAAE;IACZ,MAAM,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;IACrF,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClC,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE;CAC1B,EACD;IACI,OAAO,EAAE;QACL,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE;QACjF,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE;KAC9D;CACJ,CACJ,CAAC;AAEF;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,2BAAW,EACtC;IACI,GAAG,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE;IACxB,cAAc,EAAE,iBAAC;SACZ,EAAE,EAAE;SACJ,UAAU,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;SACtE,KAAK,EAAE;IACZ,KAAK,EAAE,iBAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACrC,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,iBAAC,CAAC,QAAQ,EAAE;IACvB,SAAS,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;CAC3F,EACD;IACI,OAAO,EAAE;QACL,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,sCAAsC,EAAE;QACrF,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE;QAC/D,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE;KACpE;CACJ,CACJ,CAAC;AAEF;;;GAGG;AACU,QAAA,WAAW,GAAG,IAAA,2BAAW,EAClC;IACI,GAAG,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE;IACxB,IAAI,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,GAAG,EAAE,iBAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,iBAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;IACrF,cAAc,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,YAAY,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,iBAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,gBAAgB,EAAE,iBAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,mBAAmB,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,YAAY,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,SAAS,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,iBAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,iBAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,iBAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAChC,EACD;IACI,OAAO,EAAE;QACL,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE;QAC9D,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,IAAI,EAAE;QACtE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE;QAChE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE;KACvE;CACJ,CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAG;IAC7B,8CAA8C;IAC9C,YAAY,EAAE;QACV,KAAK,EAAE,qBAAqB;QAC5B,MAAM,EAAE,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE,IAAI;KACf;IACD,0CAA0C;IAC1C,QAAQ,EAAE;QACN,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,CAAC,UAAU,CAAC;QACpB,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE,IAAI;KACf;IACD,gCAAgC;IAChC,sBAAsB,EAAE;QACpB,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,CAAC,YAAY,CAAC;QACtB,IAAI,EAAE,yCAAyC;KAClD;CACK,CAAC;AAEX;;;GAGG;AACU,QAAA,gBAAgB,GAA6B;IACtD,gCAAgC;IAChC,KAAK,EAAE;QACH,SAAS;QACT,YAAY;QACZ,aAAa;QACb,cAAc;QACd,oBAAoB;QACpB,qBAAqB;QACrB,sBAAsB;QACtB,eAAe;QACf,gBAAgB;KACnB;IACD,yBAAyB;IACzB,MAAM,EAAE,CAAC,oBAAoB,EAAE,cAAc,EAAE,eAAe,CAAC;IAC/D,wCAAwC;IACxC,KAAK,EAAE;QACH,SAAS;QACT,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,YAAY;KACf;CACK,CAAC;AAEX;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAA+B;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,wBAAgB,CAAC,IAAI,CAAC,IAAI,wBAAgB,CAAC,MAAM,IAAI,EAAE,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAA+B,EAAE,UAAkB;IACjF,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEhD,iCAAiC;IACjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit Breaker pattern implementation for Redis operations
|
|
3
|
+
*
|
|
4
|
+
* Provides resilience by:
|
|
5
|
+
* - Tracking operation failures
|
|
6
|
+
* - Opening circuit when failure threshold is reached
|
|
7
|
+
* - Degrading to fallback behavior when circuit is open
|
|
8
|
+
* - Auto-recovering when Redis becomes healthy again
|
|
9
|
+
*/
|
|
10
|
+
export declare enum CircuitState {
|
|
11
|
+
CLOSED = "CLOSED",// Normal operation
|
|
12
|
+
OPEN = "OPEN",// Failure threshold reached, failing fast
|
|
13
|
+
HALF_OPEN = "HALF_OPEN"
|
|
14
|
+
}
|
|
15
|
+
export declare class CircuitBreakerOpenError extends Error {
|
|
16
|
+
constructor(message?: string);
|
|
17
|
+
}
|
|
18
|
+
export interface CircuitBreakerOptions {
|
|
19
|
+
failureThreshold?: number;
|
|
20
|
+
resetTimeoutMs?: number;
|
|
21
|
+
halfOpenMaxCalls?: number;
|
|
22
|
+
name?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface CircuitBreakerStats {
|
|
25
|
+
state: CircuitState;
|
|
26
|
+
failureCount: number;
|
|
27
|
+
lastFailureTime: number;
|
|
28
|
+
halfOpenCalls: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class CircuitBreaker {
|
|
31
|
+
private state;
|
|
32
|
+
private failureCount;
|
|
33
|
+
private lastFailureTime;
|
|
34
|
+
private readonly failureThreshold;
|
|
35
|
+
private readonly resetTimeoutMs;
|
|
36
|
+
private readonly halfOpenMaxCalls;
|
|
37
|
+
private halfOpenCalls;
|
|
38
|
+
private readonly name;
|
|
39
|
+
constructor(options?: CircuitBreakerOptions);
|
|
40
|
+
/**
|
|
41
|
+
* Execute operation with circuit breaker protection
|
|
42
|
+
*
|
|
43
|
+
* State Machine:
|
|
44
|
+
* - CLOSED: Execute operations normally
|
|
45
|
+
* - OPEN: Fail fast without attempting operation (if resetTimeout hasn't passed)
|
|
46
|
+
* - HALF_OPEN: Allow limited test calls after resetTimeout
|
|
47
|
+
*/
|
|
48
|
+
execute<T>(operation: () => Promise<T>): Promise<T>;
|
|
49
|
+
/**
|
|
50
|
+
* Record a successful operation
|
|
51
|
+
*
|
|
52
|
+
* State Transitions:
|
|
53
|
+
* - HALF_OPEN → CLOSED: After halfOpenMaxCalls successful calls
|
|
54
|
+
*/
|
|
55
|
+
private recordSuccess;
|
|
56
|
+
/**
|
|
57
|
+
* Record a failed operation
|
|
58
|
+
*
|
|
59
|
+
* State Transitions:
|
|
60
|
+
* - CLOSED → OPEN: When failureCount >= failureThreshold
|
|
61
|
+
* - HALF_OPEN → OPEN: Any failure in half-open state
|
|
62
|
+
*/
|
|
63
|
+
private recordFailure;
|
|
64
|
+
/**
|
|
65
|
+
* Transition to a new state with logging
|
|
66
|
+
*/
|
|
67
|
+
private transitionTo;
|
|
68
|
+
/**
|
|
69
|
+
* Get current state
|
|
70
|
+
*/
|
|
71
|
+
getState(): CircuitState;
|
|
72
|
+
/**
|
|
73
|
+
* Get statistics
|
|
74
|
+
*/
|
|
75
|
+
getStats(): CircuitBreakerStats;
|
|
76
|
+
/**
|
|
77
|
+
* Manual reset (for testing or admin intervention)
|
|
78
|
+
*/
|
|
79
|
+
reset(): void;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/cache/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oBAAY,YAAY;IACpB,MAAM,WAAW,CAAE,mBAAmB;IACtC,IAAI,SAAS,CAAE,0CAA0C;IACzD,SAAS,cAAc;CAC1B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBAClC,OAAO,GAAE,MAAkC;CAI1D;AAED,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,OAAO,GAAE,qBAA0B;IAO/C;;;;;;;OAOG;IACG,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAiCzD;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAarB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,QAAQ,IAAI,YAAY;IAIxB;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IAS/B;;OAEG;IACH,KAAK,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Circuit Breaker pattern implementation for Redis operations
|
|
4
|
+
*
|
|
5
|
+
* Provides resilience by:
|
|
6
|
+
* - Tracking operation failures
|
|
7
|
+
* - Opening circuit when failure threshold is reached
|
|
8
|
+
* - Degrading to fallback behavior when circuit is open
|
|
9
|
+
* - Auto-recovering when Redis becomes healthy again
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CircuitBreaker = exports.CircuitBreakerOpenError = exports.CircuitState = void 0;
|
|
13
|
+
var CircuitState;
|
|
14
|
+
(function (CircuitState) {
|
|
15
|
+
CircuitState["CLOSED"] = "CLOSED";
|
|
16
|
+
CircuitState["OPEN"] = "OPEN";
|
|
17
|
+
CircuitState["HALF_OPEN"] = "HALF_OPEN";
|
|
18
|
+
})(CircuitState || (exports.CircuitState = CircuitState = {}));
|
|
19
|
+
class CircuitBreakerOpenError extends Error {
|
|
20
|
+
constructor(message = "Circuit breaker is open") {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = "CircuitBreakerOpenError";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.CircuitBreakerOpenError = CircuitBreakerOpenError;
|
|
26
|
+
class CircuitBreaker {
|
|
27
|
+
state = CircuitState.CLOSED;
|
|
28
|
+
failureCount = 0;
|
|
29
|
+
lastFailureTime = 0;
|
|
30
|
+
failureThreshold;
|
|
31
|
+
resetTimeoutMs;
|
|
32
|
+
halfOpenMaxCalls;
|
|
33
|
+
halfOpenCalls = 0;
|
|
34
|
+
name;
|
|
35
|
+
constructor(options = {}) {
|
|
36
|
+
this.failureThreshold = options.failureThreshold ?? 5;
|
|
37
|
+
this.resetTimeoutMs = options.resetTimeoutMs ?? 30000;
|
|
38
|
+
this.halfOpenMaxCalls = options.halfOpenMaxCalls ?? 3;
|
|
39
|
+
this.name = options.name ?? "CircuitBreaker";
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execute operation with circuit breaker protection
|
|
43
|
+
*
|
|
44
|
+
* State Machine:
|
|
45
|
+
* - CLOSED: Execute operations normally
|
|
46
|
+
* - OPEN: Fail fast without attempting operation (if resetTimeout hasn't passed)
|
|
47
|
+
* - HALF_OPEN: Allow limited test calls after resetTimeout
|
|
48
|
+
*/
|
|
49
|
+
async execute(operation) {
|
|
50
|
+
// Check if we should transition from OPEN to HALF_OPEN
|
|
51
|
+
if (this.state === CircuitState.OPEN) {
|
|
52
|
+
const timeSinceLastFailure = Date.now() - this.lastFailureTime;
|
|
53
|
+
if (timeSinceLastFailure >= this.resetTimeoutMs) {
|
|
54
|
+
this.transitionTo(CircuitState.HALF_OPEN);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new CircuitBreakerOpenError(`Circuit breaker '${this.name}' is OPEN. Try again after ${this.resetTimeoutMs - timeSinceLastFailure}ms`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// In HALF_OPEN state, track the number of test calls
|
|
61
|
+
if (this.state === CircuitState.HALF_OPEN) {
|
|
62
|
+
if (this.halfOpenCalls >= this.halfOpenMaxCalls) {
|
|
63
|
+
throw new CircuitBreakerOpenError(`Circuit breaker '${this.name}' is HALF_OPEN and has reached max test calls (${this.halfOpenMaxCalls})`);
|
|
64
|
+
}
|
|
65
|
+
this.halfOpenCalls++;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
const result = await operation();
|
|
69
|
+
this.recordSuccess();
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.recordFailure();
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Record a successful operation
|
|
79
|
+
*
|
|
80
|
+
* State Transitions:
|
|
81
|
+
* - HALF_OPEN → CLOSED: After halfOpenMaxCalls successful calls
|
|
82
|
+
*/
|
|
83
|
+
recordSuccess() {
|
|
84
|
+
if (this.state === CircuitState.HALF_OPEN) {
|
|
85
|
+
// Check if we've had enough successful calls to close the circuit
|
|
86
|
+
if (this.halfOpenCalls >= this.halfOpenMaxCalls) {
|
|
87
|
+
this.transitionTo(CircuitState.CLOSED);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Reset failure count on any success in CLOSED state
|
|
91
|
+
if (this.state === CircuitState.CLOSED && this.failureCount > 0) {
|
|
92
|
+
this.failureCount = 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Record a failed operation
|
|
97
|
+
*
|
|
98
|
+
* State Transitions:
|
|
99
|
+
* - CLOSED → OPEN: When failureCount >= failureThreshold
|
|
100
|
+
* - HALF_OPEN → OPEN: Any failure in half-open state
|
|
101
|
+
*/
|
|
102
|
+
recordFailure() {
|
|
103
|
+
this.failureCount++;
|
|
104
|
+
this.lastFailureTime = Date.now();
|
|
105
|
+
if (this.state === CircuitState.CLOSED) {
|
|
106
|
+
// Log failures before threshold is reached
|
|
107
|
+
if (this.failureCount < this.failureThreshold) {
|
|
108
|
+
console.warn(`Circuit breaker '${this.name}': Failure ${this.failureCount}/${this.failureThreshold} recorded`);
|
|
109
|
+
}
|
|
110
|
+
// Transition to OPEN when threshold is reached
|
|
111
|
+
if (this.failureCount >= this.failureThreshold) {
|
|
112
|
+
this.transitionTo(CircuitState.OPEN);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (this.state === CircuitState.HALF_OPEN) {
|
|
116
|
+
// Any failure in HALF_OPEN state immediately opens the circuit again
|
|
117
|
+
this.transitionTo(CircuitState.OPEN);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Transition to a new state with logging
|
|
122
|
+
*/
|
|
123
|
+
transitionTo(newState) {
|
|
124
|
+
const oldState = this.state;
|
|
125
|
+
this.state = newState;
|
|
126
|
+
if (newState === CircuitState.OPEN) {
|
|
127
|
+
console.error(`Circuit breaker '${this.name}': OPENED after ${this.failureCount} failures (was ${oldState})`);
|
|
128
|
+
}
|
|
129
|
+
else if (newState === CircuitState.CLOSED) {
|
|
130
|
+
console.log(`Circuit breaker '${this.name}': CLOSED - service recovered (was ${oldState})`);
|
|
131
|
+
// Reset counters when circuit closes
|
|
132
|
+
this.failureCount = 0;
|
|
133
|
+
this.halfOpenCalls = 0;
|
|
134
|
+
this.lastFailureTime = 0;
|
|
135
|
+
}
|
|
136
|
+
else if (newState === CircuitState.HALF_OPEN) {
|
|
137
|
+
console.log(`Circuit breaker '${this.name}': HALF_OPEN - testing service recovery (was ${oldState})`);
|
|
138
|
+
this.halfOpenCalls = 0;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get current state
|
|
143
|
+
*/
|
|
144
|
+
getState() {
|
|
145
|
+
return this.state;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get statistics
|
|
149
|
+
*/
|
|
150
|
+
getStats() {
|
|
151
|
+
return {
|
|
152
|
+
state: this.state,
|
|
153
|
+
failureCount: this.failureCount,
|
|
154
|
+
lastFailureTime: this.lastFailureTime,
|
|
155
|
+
halfOpenCalls: this.halfOpenCalls,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Manual reset (for testing or admin intervention)
|
|
160
|
+
*/
|
|
161
|
+
reset() {
|
|
162
|
+
console.log(`Circuit breaker '${this.name}': Manual reset`);
|
|
163
|
+
this.state = CircuitState.CLOSED;
|
|
164
|
+
this.failureCount = 0;
|
|
165
|
+
this.lastFailureTime = 0;
|
|
166
|
+
this.halfOpenCalls = 0;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.CircuitBreaker = CircuitBreaker;
|
|
170
|
+
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/cache/circuit-breaker.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/client.d.ts
CHANGED
|
@@ -23,16 +23,19 @@ export declare class CacheClient {
|
|
|
23
23
|
set(key: string, value: any, partition?: "query" | "function" | "document" | "aggregate", ttl?: number): Promise<void>;
|
|
24
24
|
/**
|
|
25
25
|
* Delete specific key
|
|
26
|
+
* TRULY NON-BLOCKING: Uses send() for fire-and-forget (no response wait)
|
|
26
27
|
*/
|
|
27
|
-
delete(key: string, partition?: "query" | "function" | "document" | "aggregate"):
|
|
28
|
+
delete(key: string, partition?: "query" | "function" | "document" | "aggregate"): void;
|
|
28
29
|
/**
|
|
29
30
|
* Invalidate multiple keys
|
|
31
|
+
* TRULY NON-BLOCKING: Uses send() for fire-and-forget (no response wait)
|
|
30
32
|
*/
|
|
31
|
-
invalidate(keys: string[]):
|
|
33
|
+
invalidate(keys: string[]): void;
|
|
32
34
|
/**
|
|
33
35
|
* Invalidate keys matching pattern
|
|
36
|
+
* TRULY NON-BLOCKING: Uses send() for fire-and-forget (no response wait)
|
|
34
37
|
*/
|
|
35
|
-
invalidatePattern(pattern: string, partition?: "query" | "function" | "document" | "aggregate"):
|
|
38
|
+
invalidatePattern(pattern: string, partition?: "query" | "function" | "document" | "aggregate"): void;
|
|
36
39
|
/**
|
|
37
40
|
* Add dependency relationship
|
|
38
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cache/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,oBAAoB,CAA4C;gBAE5D,kBAAkB,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EACb,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAqB,GACrE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBpB;;OAEG;IACG,GAAG,CACL,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,SAAS,GAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAqB,EACpE,GAAG,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAqBhB
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cache/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,oBAAoB,CAA4C;gBAE5D,kBAAkB,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EACb,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAqB,GACrE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBpB;;OAEG;IACG,GAAG,CACL,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,SAAS,GAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAqB,EACpE,GAAG,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;OAGG;IACH,MAAM,CACF,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAqB,GACrE,IAAI;IAKP;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAKhC;;;OAGG;IACH,iBAAiB,CACb,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAqB,GACrE,IAAI;IAKP;;OAEG;IACG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E;;OAEG;IACG,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvF;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAgB9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAO3D;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAI5C;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnF"}
|
package/dist/cache/client.js
CHANGED
|
@@ -91,68 +91,27 @@ class CacheClient {
|
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
93
93
|
* Delete specific key
|
|
94
|
+
* TRULY NON-BLOCKING: Uses send() for fire-and-forget (no response wait)
|
|
94
95
|
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
key,
|
|
99
|
-
partition,
|
|
100
|
-
});
|
|
101
|
-
return result.deleted;
|
|
102
|
-
}
|
|
103
|
-
catch (err) {
|
|
104
|
-
logger_js_1.logger.log({
|
|
105
|
-
timestamp: Date.now(),
|
|
106
|
-
level: "error",
|
|
107
|
-
kind: "cache",
|
|
108
|
-
message: "[CacheClient] Delete failed:",
|
|
109
|
-
context: { error: err instanceof Error ? err.message : String(err) },
|
|
110
|
-
});
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
96
|
+
delete(key, partition = "query") {
|
|
97
|
+
// TRULY fire-and-forget: send() doesn't wait for response
|
|
98
|
+
this.client.send("CACHE_DELETE", { key, partition });
|
|
113
99
|
}
|
|
114
100
|
/**
|
|
115
101
|
* Invalidate multiple keys
|
|
102
|
+
* TRULY NON-BLOCKING: Uses send() for fire-and-forget (no response wait)
|
|
116
103
|
*/
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
keys,
|
|
121
|
-
});
|
|
122
|
-
return result.invalidated;
|
|
123
|
-
}
|
|
124
|
-
catch (err) {
|
|
125
|
-
logger_js_1.logger.log({
|
|
126
|
-
timestamp: Date.now(),
|
|
127
|
-
level: "error",
|
|
128
|
-
kind: "cache",
|
|
129
|
-
message: "[CacheClient] Invalidate failed:",
|
|
130
|
-
context: { error: err instanceof Error ? err.message : String(err) },
|
|
131
|
-
});
|
|
132
|
-
return [];
|
|
133
|
-
}
|
|
104
|
+
invalidate(keys) {
|
|
105
|
+
// TRULY fire-and-forget: send() doesn't wait for response
|
|
106
|
+
this.client.send("CACHE_INVALIDATE", { keys });
|
|
134
107
|
}
|
|
135
108
|
/**
|
|
136
109
|
* Invalidate keys matching pattern
|
|
110
|
+
* TRULY NON-BLOCKING: Uses send() for fire-and-forget (no response wait)
|
|
137
111
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
pattern,
|
|
142
|
-
partition,
|
|
143
|
-
});
|
|
144
|
-
return result.invalidated;
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
logger_js_1.logger.log({
|
|
148
|
-
timestamp: Date.now(),
|
|
149
|
-
level: "error",
|
|
150
|
-
kind: "cache",
|
|
151
|
-
message: "[CacheClient] Invalidate pattern failed:",
|
|
152
|
-
context: { error: err instanceof Error ? err.message : String(err) },
|
|
153
|
-
});
|
|
154
|
-
return [];
|
|
155
|
-
}
|
|
112
|
+
invalidatePattern(pattern, partition = "query") {
|
|
113
|
+
// TRULY fire-and-forget: send() doesn't wait for response
|
|
114
|
+
this.client.send("CACHE_INVALIDATE_PATTERN", { pattern, partition });
|
|
156
115
|
}
|
|
157
116
|
/**
|
|
158
117
|
* Add dependency relationship
|
package/dist/cache/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cache/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cache/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/index.d.ts
CHANGED
|
@@ -6,4 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { DocumentCache, QueryCache, AggregateCache } from "./layers.js";
|
|
8
8
|
export type { CacheCommand, CacheResponse, CacheStats } from "./protocol.js";
|
|
9
|
+
export { CircuitBreaker, CircuitState, CircuitBreakerOpenError } from "./circuit-breaker.js";
|
|
10
|
+
export type { CircuitBreakerOptions, CircuitBreakerStats } from "./circuit-breaker.js";
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/cache/index.js
CHANGED
|
@@ -6,9 +6,13 @@
|
|
|
6
6
|
* with automatic invalidation and monitoring.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.AggregateCache = exports.QueryCache = exports.DocumentCache = void 0;
|
|
9
|
+
exports.CircuitBreakerOpenError = exports.CircuitState = exports.CircuitBreaker = exports.AggregateCache = exports.QueryCache = exports.DocumentCache = void 0;
|
|
10
10
|
var layers_js_1 = require("./layers.js");
|
|
11
11
|
Object.defineProperty(exports, "DocumentCache", { enumerable: true, get: function () { return layers_js_1.DocumentCache; } });
|
|
12
12
|
Object.defineProperty(exports, "QueryCache", { enumerable: true, get: function () { return layers_js_1.QueryCache; } });
|
|
13
13
|
Object.defineProperty(exports, "AggregateCache", { enumerable: true, get: function () { return layers_js_1.AggregateCache; } });
|
|
14
|
+
var circuit_breaker_js_1 = require("./circuit-breaker.js");
|
|
15
|
+
Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return circuit_breaker_js_1.CircuitBreaker; } });
|
|
16
|
+
Object.defineProperty(exports, "CircuitState", { enumerable: true, get: function () { return circuit_breaker_js_1.CircuitState; } });
|
|
17
|
+
Object.defineProperty(exports, "CircuitBreakerOpenError", { enumerable: true, get: function () { return circuit_breaker_js_1.CircuitBreakerOpenError; } });
|
|
14
18
|
//# sourceMappingURL=index.js.map
|
package/dist/cache/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAwE;AAA/D,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,2GAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAwE;AAA/D,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,2GAAA,cAAc,OAAA;AAElD,2DAA6F;AAApF,oHAAA,cAAc,OAAA;AAAE,kHAAA,YAAY,OAAA;AAAE,6HAAA,uBAAuB,OAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
interface QueueStats {
|
|
2
|
+
queued: number;
|
|
3
|
+
failed: number;
|
|
4
|
+
succeeded: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* InvalidationRetryQueue
|
|
8
|
+
*
|
|
9
|
+
* A retry queue for failed cache invalidation publish operations.
|
|
10
|
+
* Uses exponential backoff with jitter to retry failed invalidations,
|
|
11
|
+
* preventing cache divergence across instances.
|
|
12
|
+
*
|
|
13
|
+
* Features:
|
|
14
|
+
* - In-memory queue (no external dependencies)
|
|
15
|
+
* - Exponential backoff with jitter
|
|
16
|
+
* - Maximum retry limit (prevents infinite queue growth)
|
|
17
|
+
* - Background processing every 5 seconds
|
|
18
|
+
* - Comprehensive logging
|
|
19
|
+
*/
|
|
20
|
+
export declare class InvalidationRetryQueue {
|
|
21
|
+
private publishFn;
|
|
22
|
+
private queue;
|
|
23
|
+
private isProcessing;
|
|
24
|
+
private processingInterval;
|
|
25
|
+
private readonly maxRetries;
|
|
26
|
+
private readonly baseDelay;
|
|
27
|
+
private readonly maxDelay;
|
|
28
|
+
private readonly processIntervalMs;
|
|
29
|
+
private stats;
|
|
30
|
+
constructor(publishFn: (keys: string[], pattern?: string) => Promise<void>);
|
|
31
|
+
/**
|
|
32
|
+
* Add a failed invalidation to the retry queue
|
|
33
|
+
*/
|
|
34
|
+
enqueue(keys: string[], pattern?: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Start background processing of the retry queue
|
|
37
|
+
*/
|
|
38
|
+
start(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Stop background processing
|
|
41
|
+
*/
|
|
42
|
+
stop(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Process the retry queue with exponential backoff
|
|
45
|
+
*/
|
|
46
|
+
private processQueue;
|
|
47
|
+
/**
|
|
48
|
+
* Calculate the next retry time using exponential backoff with jitter
|
|
49
|
+
*
|
|
50
|
+
* Formula: delay = min(baseDelay × (2^attempt) + random jitter, maxDelay)
|
|
51
|
+
*/
|
|
52
|
+
private calculateNextRetry;
|
|
53
|
+
/**
|
|
54
|
+
* Get current queue statistics
|
|
55
|
+
*/
|
|
56
|
+
getStats(): QueueStats;
|
|
57
|
+
/**
|
|
58
|
+
* Clear all queued items (useful for testing)
|
|
59
|
+
*/
|
|
60
|
+
clear(): void;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=invalidation-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidation-queue.d.ts","sourceRoot":"","sources":["../../src/cache/invalidation-queue.ts"],"names":[],"mappings":"AASA,UAAU,UAAU;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IAUnB,OAAO,CAAC,SAAS;IAT7B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,KAAK,CAAsE;gBAE/D,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAElF;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IA8B/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAwBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAcZ;;OAEG;YACW,YAAY;IAmE1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,QAAQ,IAAI,UAAU;IAQtB;;OAEG;IACH,KAAK,IAAI,IAAI;CAIhB"}
|