@hamim_4444/pulsar 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/cluster/Nebula.d.ts +30 -0
- package/dist/cluster/Nebula.d.ts.map +1 -0
- package/dist/dispatch/ConsumerDispatch.d.ts +9 -0
- package/dist/dispatch/ConsumerDispatch.d.ts.map +1 -0
- package/dist/dispatch/Dispatcher.d.ts +6 -0
- package/dist/dispatch/Dispatcher.d.ts.map +1 -0
- package/dist/dispatch/HandlerDispatcher.d.ts +7 -0
- package/dist/dispatch/HandlerDispatcher.d.ts.map +1 -0
- package/dist/dispatch/HttpDispatcher.d.ts +7 -0
- package/dist/dispatch/HttpDispatcher.d.ts.map +1 -0
- package/dist/dispatch/dispatchTypes.d.ts +12 -0
- package/dist/dispatch/dispatchTypes.d.ts.map +1 -0
- package/dist/helpers/computeConfigDelta.d.ts +18 -0
- package/dist/helpers/computeConfigDelta.d.ts.map +1 -0
- package/dist/helpers/defineQueue.d.ts +13 -0
- package/dist/helpers/defineQueue.d.ts.map +1 -0
- package/dist/helpers/generateShaHash.d.ts +2 -0
- package/dist/helpers/generateShaHash.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +42 -0
- package/dist/integrations/PulsarEventsIntegrations.d.ts +7 -0
- package/dist/integrations/PulsarEventsIntegrations.d.ts.map +1 -0
- package/dist/integrations/PulsarLoggerIntegrations.d.ts +12 -0
- package/dist/integrations/PulsarLoggerIntegrations.d.ts.map +1 -0
- package/dist/integrations/index.d.ts +4 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/index.js.map +15 -0
- package/dist/modules/Queue.module.d.ts +45 -0
- package/dist/modules/Queue.module.d.ts.map +1 -0
- package/dist/modules/Scheduler.module.d.ts +42 -0
- package/dist/modules/Scheduler.module.d.ts.map +1 -0
- package/dist/modules/Tick.module.d.ts +38 -0
- package/dist/modules/Tick.module.d.ts.map +1 -0
- package/dist/modules/TickController.module.d.ts +36 -0
- package/dist/modules/TickController.module.d.ts.map +1 -0
- package/dist/monitoring/PulsarMonitoringStreamProducer.d.ts +2 -0
- package/dist/monitoring/PulsarMonitoringStreamProducer.d.ts.map +1 -0
- package/dist/monitoring/index.d.ts +2 -0
- package/dist/monitoring/index.d.ts.map +1 -0
- package/dist/monitoring/server/PulsarMonitoringStream.d.ts +2 -0
- package/dist/monitoring/server/PulsarMonitoringStream.d.ts.map +1 -0
- package/dist/network/NetworkInterface.d.ts +12 -0
- package/dist/network/NetworkInterface.d.ts.map +1 -0
- package/dist/network/UnifiedTransportManager.d.ts +19 -0
- package/dist/network/UnifiedTransportManager.d.ts.map +1 -0
- package/dist/network/abstract/BaseNetworkDriver.d.ts +18 -0
- package/dist/network/abstract/BaseNetworkDriver.d.ts.map +1 -0
- package/dist/network/auth/Authenticator.d.ts +2 -0
- package/dist/network/auth/Authenticator.d.ts.map +1 -0
- package/dist/network/drivers/HttpNetworkDriver.d.ts +30 -0
- package/dist/network/drivers/HttpNetworkDriver.d.ts.map +1 -0
- package/dist/network/drivers/ServerlessNetworkDriver.d.ts +13 -0
- package/dist/network/drivers/ServerlessNetworkDriver.d.ts.map +1 -0
- package/dist/network/drivers/WebSocketNetworkDriver.d.ts +24 -0
- package/dist/network/drivers/WebSocketNetworkDriver.d.ts.map +1 -0
- package/dist/network/helpers/httpQueueOperations.d.ts +2 -0
- package/dist/network/helpers/httpQueueOperations.d.ts.map +1 -0
- package/dist/network/interfaces/network.types.d.ts +13 -0
- package/dist/network/interfaces/network.types.d.ts.map +1 -0
- package/dist/run/Queues.d.ts +2 -0
- package/dist/run/Queues.d.ts.map +1 -0
- package/dist/run/index.d.ts +2 -0
- package/dist/run/index.d.ts.map +1 -0
- package/dist/run/index2.d.ts +2 -0
- package/dist/run/index2.d.ts.map +1 -0
- package/dist/runtimes/IsolateRuntime.d.ts +17 -0
- package/dist/runtimes/IsolateRuntime.d.ts.map +1 -0
- package/dist/runtimes/PersistentRuntime.d.ts +21 -0
- package/dist/runtimes/PersistentRuntime.d.ts.map +1 -0
- package/dist/runtimes/ServerlessRuntime.d.ts +15 -0
- package/dist/runtimes/ServerlessRuntime.d.ts.map +1 -0
- package/dist/runtimes/runtimeTypes.d.ts +15 -0
- package/dist/runtimes/runtimeTypes.d.ts.map +1 -0
- package/dist/server/PulsarRequestHandler.d.ts +41 -0
- package/dist/server/PulsarRequestHandler.d.ts.map +1 -0
- package/dist/server/helpers/acquireRedisLock.d.ts +14 -0
- package/dist/server/helpers/acquireRedisLock.d.ts.map +1 -0
- package/dist/server/helpers/checkFencingValidity.d.ts +14 -0
- package/dist/server/helpers/checkFencingValidity.d.ts.map +1 -0
- package/dist/server/helpers/performIsolateRestart.d.ts +20 -0
- package/dist/server/helpers/performIsolateRestart.d.ts.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +53 -0
- package/dist/server/index.js.map +20 -0
- package/dist/server/parser/parseRequest.d.ts +10 -0
- package/dist/server/parser/parseRequest.d.ts.map +1 -0
- package/dist/server/utility/extract-headers.d.ts +13 -0
- package/dist/server/utility/extract-headers.d.ts.map +1 -0
- package/dist/service/ConfigurationStore.d.ts +23 -0
- package/dist/service/ConfigurationStore.d.ts.map +1 -0
- package/dist/service/Isolate.service.d.ts +12 -0
- package/dist/service/Isolate.service.d.ts.map +1 -0
- package/dist/service/Pulsar.service.d.ts +40 -0
- package/dist/service/Pulsar.service.d.ts.map +1 -0
- package/dist/service/PulsarBaseService.d.ts +51 -0
- package/dist/service/PulsarBaseService.d.ts.map +1 -0
- package/dist/service/PulsarEventBus.d.ts +33 -0
- package/dist/service/PulsarEventBus.d.ts.map +1 -0
- package/dist/service/SwarmBudgetTracker.d.ts +14 -0
- package/dist/service/SwarmBudgetTracker.d.ts.map +1 -0
- package/dist/service/consumers/PulsarWorker.d.ts +10 -0
- package/dist/service/consumers/PulsarWorker.d.ts.map +1 -0
- package/dist/shared/PulsarRuntimeCore.d.ts +55 -0
- package/dist/shared/PulsarRuntimeCore.d.ts.map +1 -0
- package/dist/static/TimingProfile.d.ts +9 -0
- package/dist/static/TimingProfile.d.ts.map +1 -0
- package/dist/static/static.d.ts +3 -0
- package/dist/static/static.d.ts.map +1 -0
- package/dist/storage/PulsarStorage.d.ts +42 -0
- package/dist/storage/PulsarStorage.d.ts.map +1 -0
- package/dist/storage/drivers/PostgresDriver.d.ts +20 -0
- package/dist/storage/drivers/PostgresDriver.d.ts.map +1 -0
- package/dist/storage/drivers/RedisDriver.d.ts +20 -0
- package/dist/storage/drivers/RedisDriver.d.ts.map +1 -0
- package/dist/storage/drivers/types.d.ts +27 -0
- package/dist/storage/drivers/types.d.ts.map +1 -0
- package/dist/storage/index.d.ts +4 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +393 -0
- package/dist/storage/index.js.map +25 -0
- package/dist/storage/repositories/PostgresEngineOperationRepository.d.ts +39 -0
- package/dist/storage/repositories/PostgresEngineOperationRepository.d.ts.map +1 -0
- package/dist/storage/repositories/PostgresQueueRepository.d.ts +25 -0
- package/dist/storage/repositories/PostgresQueueRepository.d.ts.map +1 -0
- package/dist/storage/repositories/QueueRepository.d.ts +19 -0
- package/dist/storage/repositories/QueueRepository.d.ts.map +1 -0
- package/dist/storage/repositories/RedisQueueRepository.d.ts +27 -0
- package/dist/storage/repositories/RedisQueueRepository.d.ts.map +1 -0
- package/dist/subsys/DeferredTickEvaluator.d.ts +23 -0
- package/dist/subsys/DeferredTickEvaluator.d.ts.map +1 -0
- package/dist/subsys/EventBus.d.ts +13 -0
- package/dist/subsys/EventBus.d.ts.map +1 -0
- package/dist/subsys/ExecutionProfileSwitcher.d.ts +10 -0
- package/dist/subsys/ExecutionProfileSwitcher.d.ts.map +1 -0
- package/dist/subsys/LoggerService.d.ts +15 -0
- package/dist/subsys/LoggerService.d.ts.map +1 -0
- package/dist/subsys/PulsarClock.d.ts +32 -0
- package/dist/subsys/PulsarClock.d.ts.map +1 -0
- package/dist/subsys/RuntimeCacheStorage.d.ts +18 -0
- package/dist/subsys/RuntimeCacheStorage.d.ts.map +1 -0
- package/dist/subsys/RuntimeEventBridge.d.ts +14 -0
- package/dist/subsys/RuntimeEventBridge.d.ts.map +1 -0
- package/dist/transport/PulsarTransportManager.d.ts +10 -0
- package/dist/transport/PulsarTransportManager.d.ts.map +1 -0
- package/dist/transport/strategies/PollingTransport.d.ts +13 -0
- package/dist/transport/strategies/PollingTransport.d.ts.map +1 -0
- package/dist/transport/strategies/TcpListenTransport.d.ts +11 -0
- package/dist/transport/strategies/TcpListenTransport.d.ts.map +1 -0
- package/dist/transport/strategies/WebhookTransport.d.ts +9 -0
- package/dist/transport/strategies/WebhookTransport.d.ts.map +1 -0
- package/dist/transport/types.d.ts +41 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/types/base.types.d.ts +54 -0
- package/dist/types/base.types.d.ts.map +1 -0
- package/dist/types/config.types.d.ts +54 -0
- package/dist/types/config.types.d.ts.map +1 -0
- package/dist/types/consumer.types.d.ts +36 -0
- package/dist/types/consumer.types.d.ts.map +1 -0
- package/dist/types/engine.types.d.ts +115 -0
- package/dist/types/engine.types.d.ts.map +1 -0
- package/dist/types/eventTriggerStrategry.types.d.ts +34 -0
- package/dist/types/eventTriggerStrategry.types.d.ts.map +1 -0
- package/dist/types/integrations.types.d.ts +16 -0
- package/dist/types/integrations.types.d.ts.map +1 -0
- package/dist/types/nebula.types.d.ts +65 -0
- package/dist/types/nebula.types.d.ts.map +1 -0
- package/dist/types/queue.types.d.ts +95 -0
- package/dist/types/queue.types.d.ts.map +1 -0
- package/dist/types/runtime.types.d.ts +89 -0
- package/dist/types/runtime.types.d.ts.map +1 -0
- package/package.json +72 -5
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { QueueService } from "../modules/Queue.module.d.ts";
|
|
2
|
+
import type { PulsarClock } from "../subsys/PulsarClock.d.ts";
|
|
3
|
+
import type { IPulsarRuntime, IRuntimeExecutionContext } from "../runtimes/runtimeTypes.d.ts";
|
|
4
|
+
import type { EngineQueuesConfig } from "../types/queue.types.d.ts";
|
|
5
|
+
import type { IsolateInstance } from "../service/Isolate.service.d.ts";
|
|
6
|
+
import type { PulsarUnifiedStorage } from "../storage/PulsarStorage.d.ts";
|
|
7
|
+
import type { PulsarEventBus } from "../service/PulsarEventBus.d.ts";
|
|
8
|
+
import type { Scheduler } from "../modules/Scheduler.module.d.ts";
|
|
9
|
+
import { type ILogger } from "../subsys/LoggerService.d.ts";
|
|
10
|
+
export interface RuntimeDependencies {
|
|
11
|
+
queueService: QueueService;
|
|
12
|
+
clock: PulsarClock;
|
|
13
|
+
storage: PulsarUnifiedStorage;
|
|
14
|
+
queues: EngineQueuesConfig[];
|
|
15
|
+
events: PulsarEventBus;
|
|
16
|
+
isolate: IsolateInstance;
|
|
17
|
+
scheduler: Scheduler;
|
|
18
|
+
}
|
|
19
|
+
interface ISelfInvocationState {
|
|
20
|
+
idpInvoked: boolean;
|
|
21
|
+
continuationScheduledForCurrentLock: boolean;
|
|
22
|
+
}
|
|
23
|
+
interface ExecuteSelfInvocation {
|
|
24
|
+
queue: string;
|
|
25
|
+
pooler: string;
|
|
26
|
+
delaySec: number;
|
|
27
|
+
continuationOwnerId: string;
|
|
28
|
+
isIdpLock: boolean;
|
|
29
|
+
isEdpLock: boolean;
|
|
30
|
+
targetEdpQueue: string | null;
|
|
31
|
+
}
|
|
32
|
+
export declare abstract class PulsarRuntimeCore implements IPulsarRuntime {
|
|
33
|
+
abstract readonly type: "PERSISTENT" | "SERVERLESS_VM" | "V8_ISOLATE";
|
|
34
|
+
abstract readonly shouldShutdownOnCycleComplete: boolean;
|
|
35
|
+
/** Minimum runtime required to make booting up the engine worth it (in seconds) */
|
|
36
|
+
abstract readonly minBootRequirementSec: number;
|
|
37
|
+
protected queueService: QueueService;
|
|
38
|
+
protected clock: PulsarClock;
|
|
39
|
+
protected queues: EngineQueuesConfig[];
|
|
40
|
+
protected storage: PulsarUnifiedStorage;
|
|
41
|
+
protected isolate: IsolateInstance;
|
|
42
|
+
protected events: PulsarEventBus;
|
|
43
|
+
protected scheduler: Scheduler;
|
|
44
|
+
protected logger: ILogger;
|
|
45
|
+
constructor(deps: RuntimeDependencies);
|
|
46
|
+
abstract onStart(ctx: IRuntimeExecutionContext): Promise<void>;
|
|
47
|
+
abstract handleCycleCompletion(ctx: IRuntimeExecutionContext): Promise<boolean>;
|
|
48
|
+
abstract handleRestart(ctx: IRuntimeExecutionContext): Promise<void>;
|
|
49
|
+
abstract executeTick(queueConfig: EngineQueuesConfig, tickRunner: () => Promise<void>): Promise<void>;
|
|
50
|
+
abstract scheduleTick(queueConfig: EngineQueuesConfig, tickRunner: () => Promise<void>): Promise<void>;
|
|
51
|
+
protected executeQueuesTick(runTick: IRuntimeExecutionContext["runTick"]): Promise<void>;
|
|
52
|
+
protected triggerSelfInvocation(args: ExecuteSelfInvocation): Promise<ISelfInvocationState>;
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=PulsarRuntimeCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PulsarRuntimeCore.d.ts","sourceRoot":"","sources":["../../src/shared/PulsarRuntimeCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type TimingProfileType = 'REALTIME' | 'STANDARD' | 'RELAXED' | 'ULTRA_EFFICIENT' | 'BALANCED' | 'CUSTOM';
|
|
2
|
+
export interface TimingProfile {
|
|
3
|
+
activePollMs: number;
|
|
4
|
+
backoffPollMs: number;
|
|
5
|
+
idlePollMs?: number;
|
|
6
|
+
maxTimerMs: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const TIMING_PROFILES: Record<Exclude<TimingProfileType, 'CUSTOM'>, TimingProfile>;
|
|
9
|
+
//# sourceMappingURL=TimingProfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimingProfile.d.ts","sourceRoot":"","sources":["../../src/static/TimingProfile.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,GAAI,QAAQ,CAAC;AAEjH,MAAM,WAAW,aAAa;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,aAAa,CAoCvF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../src/static/static.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAG1D,eAAO,MAAM,aAAa,QAAY,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { PostgresDriver } from "./drivers/PostgresDriver.d.ts";
|
|
2
|
+
import type { RedisDriver } from "./drivers/RedisDriver.d.ts";
|
|
3
|
+
import type { IQueueRepository } from "./repositories/QueueRepository.d.ts";
|
|
4
|
+
import { PostgresEngineOperationRepository } from "./repositories/PostgresEngineOperationRepository.d.ts";
|
|
5
|
+
export type StorageStrategy = "AUTO" | "REDIS_CACHE" | "PG_UNLOGGED";
|
|
6
|
+
export interface PulsarStorageOptions {
|
|
7
|
+
cache?: RedisDriver;
|
|
8
|
+
db: PostgresDriver;
|
|
9
|
+
/**
|
|
10
|
+
* Storage Pooling Strategies:
|
|
11
|
+
* - "AUTO" : Uses Redis if `cache` is defined; otherwise falls back to PG_UNLOGGED.
|
|
12
|
+
* - "REDIS_CACHE" : Forces in-memory Redis buffers for maximum speed (Requires Redis).
|
|
13
|
+
* - "PG_UNLOGGED" : Uses Postgres Unlogged tables for fast volatile queueing (No Redis needed).
|
|
14
|
+
*/
|
|
15
|
+
strategy?: StorageStrategy;
|
|
16
|
+
syncIntervalMs?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Unified storage orchestrator for Pulsar queueing mechanics.
|
|
20
|
+
*
|
|
21
|
+
* Manages the initialization, strategy resolution, and connection lifecycles of underlying
|
|
22
|
+
* storage drivers (Postgres and optional Redis). Depending on the selected `StorageStrategy`,
|
|
23
|
+
* it dynamically delegates queue operations to a high-throughput Redis memory store or
|
|
24
|
+
* an optimized PostgreSQL repository (such as unlogged tables) while guaranteeing core
|
|
25
|
+
* database mechanics for engine orchestration.
|
|
26
|
+
*/
|
|
27
|
+
export declare class PulsarUnifiedStorage {
|
|
28
|
+
readonly repository: IQueueRepository;
|
|
29
|
+
readonly cache?: RedisDriver;
|
|
30
|
+
readonly db: PostgresDriver;
|
|
31
|
+
readonly ops: PostgresEngineOperationRepository;
|
|
32
|
+
private readonly logger;
|
|
33
|
+
readonly strategy: StorageStrategy;
|
|
34
|
+
readonly syncIntervalMs: number;
|
|
35
|
+
private isConnected;
|
|
36
|
+
constructor(options: PulsarStorageOptions);
|
|
37
|
+
bindInstanceId(instanceId: string): void;
|
|
38
|
+
connect(): Promise<void>;
|
|
39
|
+
disconnect(): Promise<void>;
|
|
40
|
+
healthCheck(): Promise<Record<string, any>>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=PulsarStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PulsarStorage.d.ts","sourceRoot":"","sources":["../../src/storage/PulsarStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAK1E,OAAO,EAAE,iCAAiC,EAAE,MAAM,qDAAqD,CAAC;AAGxG,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,cAAc,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAoB;IAC7B,SAAgB,UAAU,EAAG,gBAAgB,CAAC;IAE9C,SAAgB,KAAK,CAAC,EAAG,WAAW,CAAC;IACrC,SAAgB,EAAE,EAAG,cAAc,CAAC;IACpC,SAAgB,GAAG,EAAG,iCAAiC,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAElC,SAAgB,QAAQ,EAAG,eAAe,CAAC;IAC3C,SAAgB,cAAc,EAAG,MAAM,CAAC;IACxC,OAAO,CAAC,WAAW,CAAmB;gBAE1B,OAAO,EAAG,oBAAoB;IAqCnC,cAAc,CAAC,UAAU,EAAE,MAAM;IAS3B,OAAO;IAYP,UAAU;IAUV,WAAW;CAK3B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IPulsarDriver, PostgresDriverOptions, StorageHealth } from "./types.d.ts";
|
|
2
|
+
import postgres from "postgres";
|
|
3
|
+
export declare class PostgresDriver implements IPulsarDriver {
|
|
4
|
+
readonly options: PostgresDriverOptions;
|
|
5
|
+
readonly type = "database";
|
|
6
|
+
readonly name = "PostgresDriver";
|
|
7
|
+
private sql;
|
|
8
|
+
private isConnected;
|
|
9
|
+
prefix?: string;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
constructor(options: PostgresDriverOptions);
|
|
12
|
+
private initClient;
|
|
13
|
+
setKeyPrefix(instanceId: string): void;
|
|
14
|
+
connect(): Promise<void>;
|
|
15
|
+
disconnect(): Promise<void>;
|
|
16
|
+
healthCheck(): Promise<StorageHealth>;
|
|
17
|
+
getNativeClient<T = postgres.Sql>(): T;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=PostgresDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresDriver.d.ts","sourceRoot":"","sources":["../../../src/storage/drivers/PostgresDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGtF,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,qBAAa,cAAe,YAAW,aAAa;aASpB,OAAO,EAAE,qBAAqB;IAR1D,SAAgB,IAAI,cAAc;IAClC,SAAgB,IAAI,oBAAoB;IACxC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAErB,MAAM,CAAC,EAAG,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEN,OAAO,EAAE,qBAAqB;IAI1D,OAAO,CAAC,UAAU;IAMX,YAAY,CAAC,UAAU,EAAG,MAAM;IAI1B,OAAO;IAeP,UAAU;IAQV,WAAW,IAAK,OAAO,CAAC,aAAa,CAAC;IAY5C,eAAe,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,KAAM,CAAC;IAKxC,KAAK;CAGd"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Redis as RedisTCP } from "ioredis";
|
|
2
|
+
import { Redis as RedisHTTP } from "@upstash/redis";
|
|
3
|
+
import type { IPulsarDriver, RedisDriverOptions, StorageHealth } from "./types.d.ts";
|
|
4
|
+
export declare class RedisDriver implements IPulsarDriver {
|
|
5
|
+
readonly options: RedisDriverOptions;
|
|
6
|
+
readonly type = "cache";
|
|
7
|
+
readonly name = "RedisDriver";
|
|
8
|
+
private tcpClient?;
|
|
9
|
+
private httpClient?;
|
|
10
|
+
prefix?: string;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
constructor(options: RedisDriverOptions);
|
|
13
|
+
private initClients;
|
|
14
|
+
setKeyPrefix(instanceId: string): void;
|
|
15
|
+
connect(): Promise<void>;
|
|
16
|
+
disconnect(): Promise<void>;
|
|
17
|
+
healthCheck(): Promise<StorageHealth>;
|
|
18
|
+
getNativeClient<T = RedisTCP | RedisHTTP>(protocol?: "tcp" | "http"): T;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=RedisDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../src/storage/drivers/RedisDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAInF,qBAAa,WAAY,YAAW,aAAa;aAUjB,OAAO,EAAG,kBAAkB;IATxD,SAAgB,IAAI,WAAW;IAC/B,SAAgB,IAAI,iBAAiB;IAErC,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAY;IAExB,MAAM,CAAC,EAAG,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEN,OAAO,EAAG,kBAAkB;IAIxD,OAAO,CAAC,WAAW;IAeZ,YAAY,CAAC,UAAU,EAAG,MAAM;IAI1B,OAAO;IAkCP,UAAU;IAeV,WAAW,IAAK,OAAO,CAAC,aAAa,CAAC;IAgB5C,eAAe,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM;CAW7E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface StorageHealth {
|
|
2
|
+
status: "up" | "down" | "degraded";
|
|
3
|
+
latencyMs: number;
|
|
4
|
+
details?: Record<string, any>;
|
|
5
|
+
}
|
|
6
|
+
export interface IPulsarDriver {
|
|
7
|
+
readonly type: "cache" | "database";
|
|
8
|
+
readonly name: string;
|
|
9
|
+
connect(): Promise<void>;
|
|
10
|
+
disconnect(): Promise<void>;
|
|
11
|
+
healthCheck(): Promise<StorageHealth>;
|
|
12
|
+
setKeyPrefix(instanceId: string): void;
|
|
13
|
+
getNativeClient<T = any>(): T;
|
|
14
|
+
}
|
|
15
|
+
export type RedisDriverOptions = {
|
|
16
|
+
connectionString: string;
|
|
17
|
+
protocol: "tcp";
|
|
18
|
+
} | {
|
|
19
|
+
protocol: "http";
|
|
20
|
+
token: string;
|
|
21
|
+
url: string;
|
|
22
|
+
};
|
|
23
|
+
export interface PostgresDriverOptions {
|
|
24
|
+
connectionString: string;
|
|
25
|
+
connectionProtocol: "tcp" | "transactional" | "session";
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/drivers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAG,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,CAAC,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,IAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvC,YAAY,CAAC,UAAU,EAAG,MAAM,GAAI,IAAI,CAAC;IAEzC,eAAe,CAAC,CAAC,GAAG,GAAG,KAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,gBAAgB,EAAG,MAAM,CAAC;IAC1B,QAAQ,EAAG,KAAK,CAAC;CACpB,GAAG;IAAE,QAAQ,EAAG,MAAM,CAAC;IAAC,KAAK,EAAG,MAAM,CAAC;IAAC,GAAG,EAAG,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAG,MAAM,CAAC;IAC1B,kBAAkB,EAAG,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;CAC5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
|