@adcp/client 0.2.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/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/lib/agents/index.generated.d.ts +147 -0
- package/dist/lib/agents/index.generated.d.ts.map +1 -0
- package/dist/lib/agents/index.generated.js +218 -0
- package/dist/lib/agents/index.generated.js.map +1 -0
- package/dist/lib/auth/index.d.ts +22 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +73 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/core/ADCPClient.d.ts +233 -0
- package/dist/lib/core/ADCPClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPClient.js +287 -0
- package/dist/lib/core/ADCPClient.js.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +308 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.js +468 -0
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -0
- package/dist/lib/core/AgentClient.d.ts +124 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -0
- package/dist/lib/core/AgentClient.js +242 -0
- package/dist/lib/core/AgentClient.js.map +1 -0
- package/dist/lib/core/ConfigurationManager.d.ts +79 -0
- package/dist/lib/core/ConfigurationManager.d.ts.map +1 -0
- package/dist/lib/core/ConfigurationManager.js +254 -0
- package/dist/lib/core/ConfigurationManager.js.map +1 -0
- package/dist/lib/core/ConversationTypes.d.ts +242 -0
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -0
- package/dist/lib/core/ConversationTypes.js +5 -0
- package/dist/lib/core/ConversationTypes.js.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts +45 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.js +82 -0
- package/dist/lib/core/ProtocolResponseParser.js.map +1 -0
- package/dist/lib/core/TaskExecutor.d.ts +108 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -0
- package/dist/lib/core/TaskExecutor.js +422 -0
- package/dist/lib/core/TaskExecutor.js.map +1 -0
- package/dist/lib/errors/index.d.ts +125 -0
- package/dist/lib/errors/index.d.ts.map +1 -0
- package/dist/lib/errors/index.js +211 -0
- package/dist/lib/errors/index.js.map +1 -0
- package/dist/lib/handlers/types.d.ts +119 -0
- package/dist/lib/handlers/types.d.ts.map +1 -0
- package/dist/lib/handlers/types.js +239 -0
- package/dist/lib/handlers/types.js.map +1 -0
- package/dist/lib/index.d.ts +51 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +122 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/protocols/a2a.d.ts +2 -0
- package/dist/lib/protocols/a2a.d.ts.map +1 -0
- package/dist/lib/protocols/a2a.js +70 -0
- package/dist/lib/protocols/a2a.js.map +1 -0
- package/dist/lib/protocols/index.d.ts +22 -0
- package/dist/lib/protocols/index.d.ts.map +1 -0
- package/dist/lib/protocols/index.js +47 -0
- package/dist/lib/protocols/index.js.map +1 -0
- package/dist/lib/protocols/mcp.d.ts +2 -0
- package/dist/lib/protocols/mcp.d.ts.map +1 -0
- package/dist/lib/protocols/mcp.js +127 -0
- package/dist/lib/protocols/mcp.js.map +1 -0
- package/dist/lib/storage/MemoryStorage.d.ts +93 -0
- package/dist/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/dist/lib/storage/MemoryStorage.js +219 -0
- package/dist/lib/storage/MemoryStorage.js.map +1 -0
- package/dist/lib/storage/interfaces.d.ts +195 -0
- package/dist/lib/storage/interfaces.d.ts.map +1 -0
- package/dist/lib/storage/interfaces.js +5 -0
- package/dist/lib/storage/interfaces.js.map +1 -0
- package/dist/lib/types/adcp.d.ts +407 -0
- package/dist/lib/types/adcp.d.ts.map +1 -0
- package/dist/lib/types/adcp.js +5 -0
- package/dist/lib/types/adcp.js.map +1 -0
- package/dist/lib/types/core.generated.d.ts +469 -0
- package/dist/lib/types/core.generated.d.ts.map +1 -0
- package/dist/lib/types/core.generated.js +5 -0
- package/dist/lib/types/core.generated.js.map +1 -0
- package/dist/lib/types/index.d.ts +3 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/types/index.js +19 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/tools.generated.d.ts +1674 -0
- package/dist/lib/types/tools.generated.d.ts.map +1 -0
- package/dist/lib/types/tools.generated.js +8 -0
- package/dist/lib/types/tools.generated.js.map +1 -0
- package/dist/lib/utils/index.d.ts +25 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +109 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/validation/index.d.ts +29 -0
- package/dist/lib/validation/index.d.ts.map +1 -0
- package/dist/lib/validation/index.js +186 -0
- package/dist/lib/validation/index.js.map +1 -0
- package/dist/lib/version.d.ts +22 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +32 -0
- package/dist/lib/version.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Default in-memory storage implementation
|
|
3
|
+
// Works out of the box without any external dependencies
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.MemoryStorage = void 0;
|
|
6
|
+
exports.createMemoryStorage = createMemoryStorage;
|
|
7
|
+
exports.createMemoryStorageConfig = createMemoryStorageConfig;
|
|
8
|
+
/**
|
|
9
|
+
* In-memory storage implementation with TTL support
|
|
10
|
+
*
|
|
11
|
+
* This is the default storage used when no external storage is configured.
|
|
12
|
+
* Features:
|
|
13
|
+
* - TTL support with automatic cleanup
|
|
14
|
+
* - Pattern matching
|
|
15
|
+
* - Batch operations
|
|
16
|
+
* - Memory-efficient (garbage collection of expired items)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const storage = new MemoryStorage<string>();
|
|
21
|
+
* await storage.set('key', 'value', 60); // TTL of 60 seconds
|
|
22
|
+
* const value = await storage.get('key');
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
class MemoryStorage {
|
|
26
|
+
options;
|
|
27
|
+
store = new Map();
|
|
28
|
+
cleanupInterval;
|
|
29
|
+
lastCleanup = 0;
|
|
30
|
+
constructor(options = {}) {
|
|
31
|
+
this.options = options;
|
|
32
|
+
const { cleanupIntervalMs = 5 * 60 * 1000, // 5 minutes
|
|
33
|
+
autoCleanup = true } = options;
|
|
34
|
+
if (autoCleanup) {
|
|
35
|
+
this.cleanupInterval = setInterval(() => {
|
|
36
|
+
this.cleanupExpired();
|
|
37
|
+
}, cleanupIntervalMs);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async get(key) {
|
|
41
|
+
const item = this.store.get(key);
|
|
42
|
+
if (!item) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
// Check if expired
|
|
46
|
+
if (item.expiresAt && Date.now() > item.expiresAt) {
|
|
47
|
+
this.store.delete(key);
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
return item.value;
|
|
51
|
+
}
|
|
52
|
+
async set(key, value, ttl) {
|
|
53
|
+
const now = Date.now();
|
|
54
|
+
const expiresAt = ttl ? now + ttl * 1000 : undefined;
|
|
55
|
+
this.store.set(key, {
|
|
56
|
+
value,
|
|
57
|
+
expiresAt,
|
|
58
|
+
createdAt: now
|
|
59
|
+
});
|
|
60
|
+
// Force cleanup if we're approaching max items
|
|
61
|
+
const maxItems = this.options.maxItems || 10000;
|
|
62
|
+
if (this.store.size > maxItems) {
|
|
63
|
+
this.cleanupExpired();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async delete(key) {
|
|
67
|
+
this.store.delete(key);
|
|
68
|
+
}
|
|
69
|
+
async has(key) {
|
|
70
|
+
const value = await this.get(key);
|
|
71
|
+
return value !== undefined;
|
|
72
|
+
}
|
|
73
|
+
async clear() {
|
|
74
|
+
this.store.clear();
|
|
75
|
+
}
|
|
76
|
+
async keys() {
|
|
77
|
+
// Return only non-expired keys
|
|
78
|
+
const keys = [];
|
|
79
|
+
const now = Date.now();
|
|
80
|
+
for (const [key, item] of this.store) {
|
|
81
|
+
if (!item.expiresAt || now <= item.expiresAt) {
|
|
82
|
+
keys.push(key);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return keys;
|
|
86
|
+
}
|
|
87
|
+
async size() {
|
|
88
|
+
// Count only non-expired items
|
|
89
|
+
const keys = await this.keys();
|
|
90
|
+
return keys.length;
|
|
91
|
+
}
|
|
92
|
+
// ====== BATCH OPERATIONS ======
|
|
93
|
+
async mget(keys) {
|
|
94
|
+
const promises = keys.map(key => this.get(key));
|
|
95
|
+
return Promise.all(promises);
|
|
96
|
+
}
|
|
97
|
+
async mset(entries) {
|
|
98
|
+
const promises = entries.map(({ key, value, ttl }) => this.set(key, value, ttl));
|
|
99
|
+
await Promise.all(promises);
|
|
100
|
+
}
|
|
101
|
+
async mdel(keys) {
|
|
102
|
+
let deleted = 0;
|
|
103
|
+
for (const key of keys) {
|
|
104
|
+
if (this.store.has(key)) {
|
|
105
|
+
this.store.delete(key);
|
|
106
|
+
deleted++;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return deleted;
|
|
110
|
+
}
|
|
111
|
+
// ====== PATTERN OPERATIONS ======
|
|
112
|
+
async scan(pattern) {
|
|
113
|
+
const regex = this.patternToRegex(pattern);
|
|
114
|
+
const allKeys = await this.keys();
|
|
115
|
+
return allKeys.filter(key => regex.test(key));
|
|
116
|
+
}
|
|
117
|
+
async deletePattern(pattern) {
|
|
118
|
+
const keys = await this.scan(pattern);
|
|
119
|
+
return this.mdel(keys);
|
|
120
|
+
}
|
|
121
|
+
// ====== UTILITY METHODS ======
|
|
122
|
+
/**
|
|
123
|
+
* Manually trigger cleanup of expired items
|
|
124
|
+
*/
|
|
125
|
+
cleanupExpired() {
|
|
126
|
+
const now = Date.now();
|
|
127
|
+
let cleaned = 0;
|
|
128
|
+
for (const [key, item] of this.store) {
|
|
129
|
+
if (item.expiresAt && now > item.expiresAt) {
|
|
130
|
+
this.store.delete(key);
|
|
131
|
+
cleaned++;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
this.lastCleanup = now;
|
|
135
|
+
return cleaned;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get storage statistics
|
|
139
|
+
*/
|
|
140
|
+
getStats() {
|
|
141
|
+
const now = Date.now();
|
|
142
|
+
let expiredItems = 0;
|
|
143
|
+
let oldestItem;
|
|
144
|
+
let newestItem;
|
|
145
|
+
for (const [, item] of this.store) {
|
|
146
|
+
if (item.expiresAt && now > item.expiresAt) {
|
|
147
|
+
expiredItems++;
|
|
148
|
+
}
|
|
149
|
+
if (!oldestItem || item.createdAt < oldestItem) {
|
|
150
|
+
oldestItem = item.createdAt;
|
|
151
|
+
}
|
|
152
|
+
if (!newestItem || item.createdAt > newestItem) {
|
|
153
|
+
newestItem = item.createdAt;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
totalItems: this.store.size,
|
|
158
|
+
expiredItems,
|
|
159
|
+
memoryUsage: this.estimateMemoryUsage(),
|
|
160
|
+
lastCleanup: this.lastCleanup,
|
|
161
|
+
oldestItem,
|
|
162
|
+
newestItem
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Estimate memory usage (rough approximation)
|
|
167
|
+
*/
|
|
168
|
+
estimateMemoryUsage() {
|
|
169
|
+
let bytes = 0;
|
|
170
|
+
for (const [key, item] of this.store) {
|
|
171
|
+
// Rough estimate: string length * 2 (UTF-16) + object overhead
|
|
172
|
+
bytes += key.length * 2;
|
|
173
|
+
bytes += JSON.stringify(item.value).length * 2;
|
|
174
|
+
bytes += 64; // Overhead for object and metadata
|
|
175
|
+
}
|
|
176
|
+
return bytes;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Convert glob-style pattern to regex
|
|
180
|
+
*/
|
|
181
|
+
patternToRegex(pattern) {
|
|
182
|
+
// Escape special regex characters except * and ?
|
|
183
|
+
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
|
|
184
|
+
// Convert glob wildcards to regex
|
|
185
|
+
const regexPattern = escaped
|
|
186
|
+
.replace(/\*/g, '.*') // * matches any sequence
|
|
187
|
+
.replace(/\?/g, '.'); // ? matches any single character
|
|
188
|
+
return new RegExp(`^${regexPattern}$`);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Destroy the storage and cleanup resources
|
|
192
|
+
*/
|
|
193
|
+
destroy() {
|
|
194
|
+
if (this.cleanupInterval) {
|
|
195
|
+
clearInterval(this.cleanupInterval);
|
|
196
|
+
this.cleanupInterval = undefined;
|
|
197
|
+
}
|
|
198
|
+
this.store.clear();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.MemoryStorage = MemoryStorage;
|
|
202
|
+
/**
|
|
203
|
+
* Factory function to create a memory storage instance
|
|
204
|
+
*/
|
|
205
|
+
function createMemoryStorage(options) {
|
|
206
|
+
return new MemoryStorage(options);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Create a complete storage configuration using memory storage
|
|
210
|
+
*/
|
|
211
|
+
function createMemoryStorageConfig() {
|
|
212
|
+
return {
|
|
213
|
+
capabilities: createMemoryStorage({ maxItems: 1000 }),
|
|
214
|
+
conversations: createMemoryStorage({ maxItems: 5000 }),
|
|
215
|
+
tokens: createMemoryStorage({ maxItems: 10000 }),
|
|
216
|
+
debugLogs: createMemoryStorage({ maxItems: 50000 })
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=MemoryStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryStorage.js","sourceRoot":"","sources":["../../../src/lib/storage/MemoryStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic storage interface for caching and persistence
|
|
3
|
+
*
|
|
4
|
+
* Users can provide their own implementations (Redis, database, etc.)
|
|
5
|
+
* The library provides a default in-memory implementation
|
|
6
|
+
*/
|
|
7
|
+
export interface Storage<T> {
|
|
8
|
+
/**
|
|
9
|
+
* Get a value by key
|
|
10
|
+
* @param key - Storage key
|
|
11
|
+
* @returns Value or undefined if not found
|
|
12
|
+
*/
|
|
13
|
+
get(key: string): Promise<T | undefined>;
|
|
14
|
+
/**
|
|
15
|
+
* Set a value with optional TTL
|
|
16
|
+
* @param key - Storage key
|
|
17
|
+
* @param value - Value to store
|
|
18
|
+
* @param ttl - Time to live in seconds (optional)
|
|
19
|
+
*/
|
|
20
|
+
set(key: string, value: T, ttl?: number): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Delete a value by key
|
|
23
|
+
* @param key - Storage key
|
|
24
|
+
*/
|
|
25
|
+
delete(key: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Check if a key exists
|
|
28
|
+
* @param key - Storage key
|
|
29
|
+
*/
|
|
30
|
+
has(key: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Clear all stored values (optional)
|
|
33
|
+
*/
|
|
34
|
+
clear?(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Get all keys (optional, for debugging)
|
|
37
|
+
*/
|
|
38
|
+
keys?(): Promise<string[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Get storage size/count (optional, for monitoring)
|
|
41
|
+
*/
|
|
42
|
+
size?(): Promise<number>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Agent capabilities for caching
|
|
46
|
+
*/
|
|
47
|
+
export interface AgentCapabilities {
|
|
48
|
+
/** Agent ID */
|
|
49
|
+
agentId: string;
|
|
50
|
+
/** Supported task names */
|
|
51
|
+
supportedTasks: string[];
|
|
52
|
+
/** Task schemas/definitions */
|
|
53
|
+
taskSchemas?: Record<string, any>;
|
|
54
|
+
/** Agent metadata */
|
|
55
|
+
metadata?: {
|
|
56
|
+
version?: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
lastUpdated?: string;
|
|
59
|
+
[key: string]: any;
|
|
60
|
+
};
|
|
61
|
+
/** When capabilities were cached */
|
|
62
|
+
cachedAt: string;
|
|
63
|
+
/** Cache expiration time */
|
|
64
|
+
expiresAt?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Conversation state for persistence
|
|
68
|
+
*/
|
|
69
|
+
export interface ConversationState {
|
|
70
|
+
/** Conversation ID */
|
|
71
|
+
conversationId: string;
|
|
72
|
+
/** Agent ID */
|
|
73
|
+
agentId: string;
|
|
74
|
+
/** Message history */
|
|
75
|
+
messages: Array<{
|
|
76
|
+
id: string;
|
|
77
|
+
role: 'user' | 'agent' | 'system';
|
|
78
|
+
content: any;
|
|
79
|
+
timestamp: string;
|
|
80
|
+
metadata?: Record<string, any>;
|
|
81
|
+
}>;
|
|
82
|
+
/** Current task information */
|
|
83
|
+
currentTask?: {
|
|
84
|
+
taskId: string;
|
|
85
|
+
taskName: string;
|
|
86
|
+
status: string;
|
|
87
|
+
params: any;
|
|
88
|
+
};
|
|
89
|
+
/** When conversation was created */
|
|
90
|
+
createdAt: string;
|
|
91
|
+
/** When conversation was last updated */
|
|
92
|
+
updatedAt: string;
|
|
93
|
+
/** Additional metadata */
|
|
94
|
+
metadata?: Record<string, any>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Deferred task state for resumption
|
|
98
|
+
*/
|
|
99
|
+
export interface DeferredTaskState {
|
|
100
|
+
/** Unique token for this deferred task */
|
|
101
|
+
token: string;
|
|
102
|
+
/** Task ID */
|
|
103
|
+
taskId: string;
|
|
104
|
+
/** Task name */
|
|
105
|
+
taskName: string;
|
|
106
|
+
/** Agent ID */
|
|
107
|
+
agentId: string;
|
|
108
|
+
/** Task parameters */
|
|
109
|
+
params: any;
|
|
110
|
+
/** Message history up to deferral point */
|
|
111
|
+
messages: Array<{
|
|
112
|
+
id: string;
|
|
113
|
+
role: 'user' | 'agent' | 'system';
|
|
114
|
+
content: any;
|
|
115
|
+
timestamp: string;
|
|
116
|
+
metadata?: Record<string, any>;
|
|
117
|
+
}>;
|
|
118
|
+
/** Pending input request that caused deferral */
|
|
119
|
+
pendingInput?: {
|
|
120
|
+
question: string;
|
|
121
|
+
field?: string;
|
|
122
|
+
expectedType?: string;
|
|
123
|
+
suggestions?: any[];
|
|
124
|
+
validation?: Record<string, any>;
|
|
125
|
+
};
|
|
126
|
+
/** When task was deferred */
|
|
127
|
+
deferredAt: string;
|
|
128
|
+
/** When token expires */
|
|
129
|
+
expiresAt: string;
|
|
130
|
+
/** Additional metadata */
|
|
131
|
+
metadata?: Record<string, any>;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Storage configuration for different data types
|
|
135
|
+
*/
|
|
136
|
+
export interface StorageConfig {
|
|
137
|
+
/** Storage for agent capabilities caching */
|
|
138
|
+
capabilities?: Storage<AgentCapabilities>;
|
|
139
|
+
/** Storage for conversation state persistence */
|
|
140
|
+
conversations?: Storage<ConversationState>;
|
|
141
|
+
/** Storage for deferred task tokens */
|
|
142
|
+
tokens?: Storage<DeferredTaskState>;
|
|
143
|
+
/** Storage for debug logs (optional) */
|
|
144
|
+
debugLogs?: Storage<any>;
|
|
145
|
+
/** Custom storage instances */
|
|
146
|
+
custom?: Record<string, Storage<any>>;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Storage factory interface for creating storage instances
|
|
150
|
+
*/
|
|
151
|
+
export interface StorageFactory {
|
|
152
|
+
/**
|
|
153
|
+
* Create a storage instance for a specific data type
|
|
154
|
+
*/
|
|
155
|
+
createStorage<T>(type: string, options?: any): Storage<T>;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Utility type for storage middleware/decorators
|
|
159
|
+
*/
|
|
160
|
+
export type StorageMiddleware<T> = (storage: Storage<T>) => Storage<T>;
|
|
161
|
+
/**
|
|
162
|
+
* Helper interface for batch operations
|
|
163
|
+
*/
|
|
164
|
+
export interface BatchStorage<T> extends Storage<T> {
|
|
165
|
+
/**
|
|
166
|
+
* Get multiple values at once
|
|
167
|
+
*/
|
|
168
|
+
mget(keys: string[]): Promise<(T | undefined)[]>;
|
|
169
|
+
/**
|
|
170
|
+
* Set multiple values at once
|
|
171
|
+
*/
|
|
172
|
+
mset(entries: Array<{
|
|
173
|
+
key: string;
|
|
174
|
+
value: T;
|
|
175
|
+
ttl?: number;
|
|
176
|
+
}>): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Delete multiple keys at once
|
|
179
|
+
*/
|
|
180
|
+
mdel(keys: string[]): Promise<number>;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Helper interface for pattern-based operations
|
|
184
|
+
*/
|
|
185
|
+
export interface PatternStorage<T> extends Storage<T> {
|
|
186
|
+
/**
|
|
187
|
+
* Get keys matching a pattern
|
|
188
|
+
*/
|
|
189
|
+
scan(pattern: string): Promise<string[]>;
|
|
190
|
+
/**
|
|
191
|
+
* Delete keys matching a pattern
|
|
192
|
+
*/
|
|
193
|
+
deletePattern(pattern: string): Promise<number>;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/lib/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/lib/storage/interfaces.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,wEAAwE"}
|