n8n-nodes-smart-memory 1.0.78 → 1.0.80

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.
@@ -3,6 +3,12 @@ import { CleanMemoryStructure } from './interfaces/MemoryInterfaces';
3
3
  export declare class SmartMemory implements INodeType {
4
4
  description: INodeTypeDescription;
5
5
  execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
6
+ private static _getMemorySettings;
7
+ private static _initializeStorage;
8
+ private static _handleInsertOperation;
9
+ private static _handleGetOperation;
10
+ private static _handleClearOperation;
11
+ private static _cleanupConnections;
6
12
  private static createStorage;
7
13
  private static buildConfig;
8
14
  private static buildInputData;
@@ -1 +1 @@
1
- {"version":3,"file":"SmartMemory.node.d.ts","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAE,oBAAoB,EAAuB,MAAM,+BAA+B,CAAC;AAK1F,qBAAa,WAAY,YAAW,SAAS;IAC3C,WAAW,EAAE,oBAAoB,CAuc/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;mBAyLlD,aAAa;IAqIlC,OAAO,CAAC,MAAM,CAAC,WAAW;IA6F1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAsF7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAuBhC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAIhE"}
1
+ {"version":3,"file":"SmartMemory.node.d.ts","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAE,oBAAoB,EAAuB,MAAM,+BAA+B,CAAC;AAM1F,qBAAa,WAAY,YAAW,SAAS;IAC3C,WAAW,EAAE,oBAAoB,CAgd/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAmEvE,OAAO,CAAC,MAAM,CAAC,kBAAkB;mBA6BZ,kBAAkB;mBAelB,sBAAsB;mBA0BtB,mBAAmB;mBAanB,qBAAqB;mBAwDpB,mBAAmB;mBAiBnB,aAAa;IAqInC,OAAO,CAAC,MAAM,CAAC,WAAW;IA6F1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAsF7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAuBhC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAIhE"}
@@ -10,6 +10,7 @@ const BufferedStorage_1 = require("./storage/BufferedStorage");
10
10
  const OutputCleaner_1 = require("./utils/OutputCleaner");
11
11
  const constants_1 = require("./constants");
12
12
  const NormalizationUtils_1 = require("./utils/NormalizationUtils");
13
+ const WorkflowUtils_1 = require("./utils/WorkflowUtils");
13
14
  class SmartMemory {
14
15
  constructor() {
15
16
  this.description = {
@@ -82,8 +83,9 @@ class SmartMemory {
82
83
  },
83
84
  },
84
85
  options: [
85
- { name: 'Current Backend Only', value: 'current' },
86
+ { name: 'Current Backend (Auto-Detect)', value: 'current' },
86
87
  { name: 'All Backends', value: 'all' },
88
+ { name: 'Custom', value: 'custom' },
87
89
  ],
88
90
  default: 'current',
89
91
  description: 'Clear from current storage backend only, or all backends (Redis, Postgres, SQLite)',
@@ -95,13 +97,12 @@ class SmartMemory {
95
97
  displayOptions: {
96
98
  show: {
97
99
  operation: ['clear'],
98
- clearScope: ['current'],
99
100
  },
100
101
  },
101
102
  default: '',
102
- description: 'Session ID to clear',
103
+ description: 'Session ID to clear. If empty, all sessions will be cleared.',
103
104
  placeholder: 'user123_chat456',
104
- required: true,
105
+ required: false,
105
106
  },
106
107
  {
107
108
  displayName: 'Message Content',
@@ -149,6 +150,15 @@ class SmartMemory {
149
150
  displayName: 'Storage Backend',
150
151
  name: 'storageBackend',
151
152
  type: 'options',
153
+ displayOptions: {
154
+ show: {
155
+ operation: ['insert', 'get', 'clear'],
156
+ },
157
+ hide: {
158
+ operation: ['clear'],
159
+ clearScope: ['current', 'all'],
160
+ },
161
+ },
152
162
  options: [
153
163
  { name: 'In-Memory', value: 'memory' },
154
164
  { name: 'Redis', value: 'redis' },
@@ -472,7 +482,6 @@ class SmartMemory {
472
482
  async execute() {
473
483
  const items = this.getInputData();
474
484
  const returnData = [];
475
- // Track storage instances per backend to reuse connections
476
485
  const storageInstances = new Map();
477
486
  try {
478
487
  for (let i = 0; i < items.length; i++) {
@@ -480,138 +489,42 @@ class SmartMemory {
480
489
  const operation = this.getNodeParameter('operation', i);
481
490
  const sessionIdParam = this.getNodeParameter('sessionId', i);
482
491
  const sessionId = NormalizationUtils_1.NormalizationUtils.toString(sessionIdParam, '').trim();
483
- // For clear operation, empty sessionId means clear all
484
492
  if (operation !== 'clear' && sessionId === '') {
485
493
  throw new Error('Session ID is required and cannot be empty');
486
494
  }
487
- const isInsert = operation === 'insert';
488
- const isGet = operation === 'get';
489
- const isClear = operation === 'clear';
490
- // These parameters only exist for insert/get operations
491
- let memoryWindowSizeParam;
492
495
  let storageBackendParam;
493
- let rawMemorySettings = {};
494
- if (isInsert || isGet) {
495
- memoryWindowSizeParam = this.getNodeParameter('memoryWindowSize', i);
496
- storageBackendParam = this.getNodeParameter('storageBackend', i);
497
- rawMemorySettings =
498
- this.getNodeParameter('memorySettings', i) ?? {};
499
- }
500
- else if (isClear) {
501
- // For clear operation, we need storage backend
496
+ if (operation === 'insert' || operation === 'get') {
502
497
  storageBackendParam = this.getNodeParameter('storageBackend', i);
503
498
  }
504
- const messageSettings = isInsert
505
- ? (this.getNodeParameter('messageSettings', i) ?? {})
506
- : {};
507
- const memoryWindowSize = typeof memoryWindowSizeParam === 'number' && !Number.isNaN(memoryWindowSizeParam)
508
- ? memoryWindowSizeParam
509
- : constants_1.DEFAULT_VALUES.MEMORY_WINDOW_SIZE;
510
- const storageBackend = typeof storageBackendParam === 'string' && storageBackendParam.trim() !== ''
511
- ? storageBackendParam
512
- : constants_1.DEFAULT_VALUES.STORAGE_BACKEND;
513
- const includeTimestamp = rawMemorySettings.includeTimestamp ?? false;
514
- const includeTokenEstimate = rawMemorySettings.includeTokenEstimate ?? false;
515
- const messageIdValue = messageSettings.messageId;
516
- let includeMessageId = false;
517
- if (isInsert && messageIdValue) {
518
- if (typeof messageIdValue === 'string') {
519
- includeMessageId = messageIdValue.trim() !== '';
499
+ else if (operation === 'clear') {
500
+ const clearScope = this.getNodeParameter('clearScope', i);
501
+ if (clearScope === 'custom') {
502
+ storageBackendParam = this.getNodeParameter('storageBackend', i);
520
503
  }
521
- else {
522
- includeMessageId = true;
504
+ else if (clearScope === 'current') {
505
+ const detectedBackend = await WorkflowUtils_1.WorkflowUtils.findStorageBackendInWorkflow(this);
506
+ storageBackendParam = detectedBackend ?? 'memory';
523
507
  }
524
508
  }
525
- const memorySettings = {
526
- ...rawMemorySettings,
527
- includeTimestamp,
528
- includeTokenEstimate,
529
- includeMessageId,
530
- memoryWindowSize,
531
- storageBackend,
532
- };
533
- // Get or create storage instance for this backend
534
- let storage = storageInstances.get(storageBackend);
535
- if (!storage) {
536
- const actualStorage = await SmartMemory.createStorage(storageBackend, this, i);
537
- // Wrap in BufferedStorage for write control
538
- storage = new BufferedStorage_1.BufferedStorage(actualStorage, true);
539
- storageInstances.set(storageBackend, storage);
540
- }
509
+ const storageBackend = storageBackendParam ?? constants_1.DEFAULT_VALUES.STORAGE_BACKEND;
510
+ const storage = await SmartMemory._initializeStorage(this, storageBackend, i, storageInstances);
511
+ const memorySettings = SmartMemory._getMemorySettings(this, i, operation);
541
512
  const config = SmartMemory.buildConfig(operation, memorySettings, this, i);
542
513
  const memoryManager = new SmartMemory_1.PureMemoryManager(config, storage);
514
+ let output;
543
515
  if (operation === 'insert') {
544
- const insertMode = this.getNodeParameter('insertMode', i);
545
- const writeToStorage = this.getNodeParameter('writeToStorage', i, true);
546
- // Control write behavior
547
- if (storage instanceof BufferedStorage_1.BufferedStorage) {
548
- storage.setWriteEnabled(writeToStorage);
549
- if (writeToStorage) {
550
- // Flush any buffered data before this write
551
- await storage.flush();
552
- }
553
- }
554
- const inputData = SmartMemory.buildInputData(sessionId, this, i);
555
- const memory = await memoryManager.insertMessage(inputData, insertMode);
556
- const output = SmartMemory.buildMemoryOutput(memory, includeTokenEstimate);
557
- returnData.push({ json: output });
516
+ output = await SmartMemory._handleInsertOperation(this, i, sessionId, memoryManager, storage);
558
517
  }
559
518
  else if (operation === 'get') {
560
- const memory = await memoryManager.getMemory(sessionId);
561
- const output = SmartMemory.buildMemoryOutput(memory, includeTokenEstimate);
562
- returnData.push({ json: output });
519
+ output = await SmartMemory._handleGetOperation(this, i, sessionId, memoryManager);
563
520
  }
564
521
  else if (operation === 'clear') {
565
- const clearScope = this.getNodeParameter('clearScope', i);
566
- if (clearScope === 'all') {
567
- // Clear from ALL backends
568
- const backends = ['memory', 'redis', 'postgres', 'sqlite'];
569
- const results = [];
570
- for (const backend of backends) {
571
- try {
572
- let backendStorage = storageInstances.get(backend);
573
- if (!backendStorage) {
574
- // Create storage instance for this backend
575
- const actualStorage = await SmartMemory.createStorage(backend, this, i);
576
- backendStorage = new BufferedStorage_1.BufferedStorage(actualStorage, true);
577
- }
578
- const backendManager = new SmartMemory_1.PureMemoryManager(config, backendStorage);
579
- await backendManager.clearMemory(sessionId);
580
- results.push({ backend, success: true });
581
- }
582
- catch (error) {
583
- // Collect errors instead of just logging
584
- const errorMsg = error instanceof Error ? error.message : 'Unknown error';
585
- results.push({ backend, success: false, error: errorMsg });
586
- }
587
- }
588
- const successCount = results.filter(r => r.success).length;
589
- const errors = results.filter(r => !r.success);
590
- returnData.push({
591
- json: {
592
- message: errors.length === 0
593
- ? `Session ${sessionId} cleared from all backends`
594
- : `Session ${sessionId} cleared from ${successCount}/${backends.length} backends`,
595
- cleared: sessionId,
596
- results,
597
- success: errors.length === 0,
598
- ...(errors.length > 0 && { errors: errors.map(e => `${e.backend}: ${e.error}`) })
599
- }
600
- });
601
- }
602
- else {
603
- // Clear from current backend only
604
- await memoryManager.clearMemory(sessionId);
605
- returnData.push({
606
- json: {
607
- message: `Memory cleared for session: ${sessionId}`,
608
- cleared: sessionId,
609
- backend: storageBackend,
610
- success: true
611
- }
612
- });
613
- }
522
+ output = await SmartMemory._handleClearOperation(this, i, sessionId, config, storageInstances, memoryManager, storageBackend);
523
+ }
524
+ else {
525
+ throw new Error(`Unsupported operation: '${operation}'`);
614
526
  }
527
+ returnData.push({ json: output });
615
528
  }
616
529
  catch (error) {
617
530
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
@@ -620,20 +533,109 @@ class SmartMemory {
620
533
  }
621
534
  }
622
535
  finally {
623
- // Clean up all storage connections to prevent hanging (especially important for Redis with TLS)
624
- for (const [backend, storage] of storageInstances.entries()) {
625
- if (storage && typeof storage.close === 'function') {
626
- try {
627
- await storage.close();
628
- }
629
- catch (error) {
630
- // Ignore close errors - connection might already be closed
631
- console.error(`Error closing ${backend} storage:`, error instanceof Error ? error.message : 'Unknown error');
632
- }
536
+ await SmartMemory._cleanupConnections(storageInstances);
537
+ }
538
+ return [returnData];
539
+ }
540
+ static _getMemorySettings(context, itemIndex, operation) {
541
+ if (operation !== 'insert' && operation !== 'get') {
542
+ return {};
543
+ }
544
+ const rawMemorySettings = context.getNodeParameter('memorySettings', itemIndex) ?? {};
545
+ const memoryWindowSize = context.getNodeParameter('memoryWindowSize', itemIndex);
546
+ const storageBackend = context.getNodeParameter('storageBackend', itemIndex);
547
+ return {
548
+ ...rawMemorySettings,
549
+ memoryWindowSize: typeof memoryWindowSize === 'number' && !Number.isNaN(memoryWindowSize)
550
+ ? memoryWindowSize
551
+ : constants_1.DEFAULT_VALUES.MEMORY_WINDOW_SIZE,
552
+ storageBackend: typeof storageBackend === 'string' && storageBackend.trim() !== ''
553
+ ? storageBackend
554
+ : constants_1.DEFAULT_VALUES.STORAGE_BACKEND,
555
+ includeTimestamp: rawMemorySettings.includeTimestamp ?? false,
556
+ includeTokenEstimate: rawMemorySettings.includeTokenEstimate ?? false,
557
+ };
558
+ }
559
+ static async _initializeStorage(context, storageBackend, itemIndex, storageInstances) {
560
+ let storage = storageInstances.get(storageBackend);
561
+ if (!storage) {
562
+ const actualStorage = await SmartMemory.createStorage(storageBackend, context, itemIndex);
563
+ storage = new BufferedStorage_1.BufferedStorage(actualStorage, true);
564
+ storageInstances.set(storageBackend, storage);
565
+ }
566
+ return storage;
567
+ }
568
+ static async _handleInsertOperation(context, itemIndex, sessionId, memoryManager, storage) {
569
+ const insertMode = context.getNodeParameter('insertMode', itemIndex);
570
+ const writeToStorage = context.getNodeParameter('writeToStorage', itemIndex, true);
571
+ if (storage instanceof BufferedStorage_1.BufferedStorage) {
572
+ storage.setWriteEnabled(writeToStorage);
573
+ if (writeToStorage) {
574
+ await storage.flush();
575
+ }
576
+ }
577
+ const inputData = SmartMemory.buildInputData(sessionId, context, itemIndex);
578
+ const memory = await memoryManager.insertMessage(inputData, insertMode);
579
+ const rawMemorySettings = context.getNodeParameter('memorySettings', itemIndex) ?? {};
580
+ const includeTokenEstimate = rawMemorySettings.includeTokenEstimate ?? false;
581
+ return SmartMemory.buildMemoryOutput(memory, includeTokenEstimate);
582
+ }
583
+ static async _handleGetOperation(context, itemIndex, sessionId, memoryManager) {
584
+ const memory = await memoryManager.getMemory(sessionId);
585
+ const rawMemorySettings = context.getNodeParameter('memorySettings', itemIndex) ?? {};
586
+ const includeTokenEstimate = rawMemorySettings.includeTokenEstimate ?? false;
587
+ return SmartMemory.buildMemoryOutput(memory, includeTokenEstimate);
588
+ }
589
+ static async _handleClearOperation(context, itemIndex, sessionId, config, storageInstances, memoryManager, storageBackend) {
590
+ const clearScope = context.getNodeParameter('clearScope', itemIndex);
591
+ if (clearScope === 'all') {
592
+ const backends = Object.values(constants_1.STORAGE_BACKENDS);
593
+ const results = [];
594
+ for (const backend of backends) {
595
+ try {
596
+ const backendStorage = await this._initializeStorage(context, backend, itemIndex, storageInstances);
597
+ const backendManager = new SmartMemory_1.PureMemoryManager(config, backendStorage);
598
+ await backendManager.clearMemory(sessionId);
599
+ results.push({ backend, success: true });
600
+ }
601
+ catch (error) {
602
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
603
+ results.push({ backend, success: false, error: errorMsg });
604
+ }
605
+ }
606
+ const successCount = results.filter((r) => r.success).length;
607
+ const errors = results.filter((r) => !r.success);
608
+ return {
609
+ message: errors.length === 0
610
+ ? `Session ${sessionId} cleared from all backends`
611
+ : `Session ${sessionId} cleared from ${successCount}/${backends.length} backends`,
612
+ cleared: sessionId,
613
+ results,
614
+ success: errors.length === 0,
615
+ ...(errors.length > 0 && { errors: errors.map((e) => `${e.backend}: ${e.error}`) }),
616
+ };
617
+ }
618
+ else {
619
+ await memoryManager.clearMemory(sessionId);
620
+ return {
621
+ message: `Memory cleared for session: ${sessionId}`,
622
+ cleared: sessionId,
623
+ backend: storageBackend,
624
+ success: true,
625
+ };
626
+ }
627
+ }
628
+ static async _cleanupConnections(storageInstances) {
629
+ for (const [backend, storage] of storageInstances.entries()) {
630
+ if (storage && typeof storage.close === 'function') {
631
+ try {
632
+ await storage.close();
633
+ }
634
+ catch (error) {
635
+ console.error(`Error closing ${backend} storage:`, error instanceof Error ? error.message : 'Unknown error');
633
636
  }
634
637
  }
635
638
  }
636
- return [returnData];
637
639
  }
638
640
  static async createStorage(storageBackend, context, itemIndex) {
639
641
  // Validate storage backend early
@@ -1 +1 @@
1
- {"version":3,"file":"SmartMemory.node.js","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SmartMemory.node.js","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,25 @@
1
1
  import { MemoryStorage } from './MemoryStorage';
2
2
  import { CleanMemoryStructure } from '../interfaces/MemoryInterfaces';
3
+ /**
4
+ * Interface compliance utilities for storage backends
5
+ */
6
+ export declare class StorageUtils {
7
+ /**
8
+ * Filter chatInfo based on chat type according to interface specification
9
+ */
10
+ static filterChatInfoByType(chatId: string, chatInfo: any): any;
11
+ /**
12
+ * Filter messages to remove null userInfo and replyTo fields
13
+ */
14
+ static filterMessages(messages: any[]): any[];
15
+ /**
16
+ * Filter out any null/undefined values from an object
17
+ */
18
+ static filterNullValues(obj: any): any;
19
+ }
3
20
  /**
4
21
  * Abstract base class for storage backends.
5
- * Provides default implementations for optional methods.
22
+ * Provides common functionality and interface compliance utilities.
6
23
  */
7
24
  export declare abstract class BaseStorage implements MemoryStorage {
8
25
  abstract getMemory(chatId: string): Promise<CleanMemoryStructure | null>;
@@ -10,5 +27,22 @@ export declare abstract class BaseStorage implements MemoryStorage {
10
27
  abstract clearMemory(chatId?: string): Promise<void>;
11
28
  close(): Promise<void>;
12
29
  initialize(): Promise<void>;
30
+ testConnection(): Promise<boolean>;
31
+ getStats(): Promise<{
32
+ totalKeys: number;
33
+ memoryUsage: number;
34
+ }>;
35
+ /**
36
+ * Utility method to apply interface compliance filtering to chatInfo
37
+ */
38
+ protected applyChatInfoFiltering(chatId: string, chatInfo: any): any;
39
+ /**
40
+ * Utility method to apply interface compliance filtering to messages
41
+ */
42
+ protected applyMessageFiltering(messages: any[]): any[];
43
+ /**
44
+ * Utility method to filter null values from objects
45
+ */
46
+ protected filterNullValues(obj: any): any;
13
47
  }
14
48
  //# sourceMappingURL=BaseStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStorage.d.ts","sourceRoot":"","sources":["../../src/storage/BaseStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;;GAGG;AACH,8BAAsB,WAAY,YAAW,aAAa;IAExD,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACxE,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAChF,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
1
+ {"version":3,"file":"BaseStorage.d.ts","sourceRoot":"","sources":["../../src/storage/BaseStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;IAsC/D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAuB7C;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CASvC;AAED;;;GAGG;AACH,8BAAsB,WAAY,YAAW,aAAa;IAExD,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACxE,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAChF,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAKlC,QAAQ,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAKrE;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;IAIpE;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAIvD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAG1C"}
@@ -1,9 +1,85 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseStorage = void 0;
3
+ exports.BaseStorage = exports.StorageUtils = void 0;
4
+ /**
5
+ * Interface compliance utilities for storage backends
6
+ */
7
+ class StorageUtils {
8
+ /**
9
+ * Filter chatInfo based on chat type according to interface specification
10
+ */
11
+ static filterChatInfoByType(chatId, chatInfo) {
12
+ const filteredChatInfo = {
13
+ id: chatId,
14
+ type: chatInfo.type,
15
+ };
16
+ // Add fields based on chat type (per interface specification)
17
+ switch (chatInfo.type) {
18
+ case 'private':
19
+ // Private chats: id, type, displayName, username
20
+ if (chatInfo.displayName && chatInfo.displayName !== null && chatInfo.displayName.trim()) {
21
+ filteredChatInfo.displayName = chatInfo.displayName;
22
+ }
23
+ if (chatInfo.username && chatInfo.username !== null && chatInfo.username.trim()) {
24
+ filteredChatInfo.username = chatInfo.username;
25
+ }
26
+ break;
27
+ case 'group':
28
+ case 'supergroup':
29
+ case 'channel':
30
+ // Group chats: id, type, name (no displayName/username)
31
+ if (chatInfo.name && chatInfo.name !== null && chatInfo.name.trim()) {
32
+ filteredChatInfo.name = chatInfo.name;
33
+ }
34
+ break;
35
+ default:
36
+ // Unknown chat type - include name if available
37
+ if (chatInfo.name && chatInfo.name !== null && chatInfo.name.trim()) {
38
+ filteredChatInfo.name = chatInfo.name;
39
+ }
40
+ break;
41
+ }
42
+ return filteredChatInfo;
43
+ }
44
+ /**
45
+ * Filter messages to remove null userInfo and replyTo fields
46
+ */
47
+ static filterMessages(messages) {
48
+ return messages.map((msg) => {
49
+ const filteredMsg = {
50
+ role: msg.role,
51
+ content: msg.content,
52
+ messageId: msg.messageId || msg.message_id,
53
+ timestamp: msg.timestamp,
54
+ };
55
+ // Only include userInfo if it exists and is not null
56
+ if (msg.userInfo !== null && msg.userInfo !== undefined) {
57
+ filteredMsg.userInfo = msg.userInfo;
58
+ }
59
+ // Only include replyTo if it exists and is not null
60
+ if (msg.replyTo !== null && msg.replyTo !== undefined) {
61
+ filteredMsg.replyTo = msg.replyTo;
62
+ }
63
+ return filteredMsg;
64
+ });
65
+ }
66
+ /**
67
+ * Filter out any null/undefined values from an object
68
+ */
69
+ static filterNullValues(obj) {
70
+ const filtered = {};
71
+ Object.keys(obj).forEach(key => {
72
+ if (obj[key] !== null && obj[key] !== undefined) {
73
+ filtered[key] = obj[key];
74
+ }
75
+ });
76
+ return filtered;
77
+ }
78
+ }
79
+ exports.StorageUtils = StorageUtils;
4
80
  /**
5
81
  * Abstract base class for storage backends.
6
- * Provides default implementations for optional methods.
82
+ * Provides common functionality and interface compliance utilities.
7
83
  */
8
84
  class BaseStorage {
9
85
  // Optional methods with default implementations
@@ -13,6 +89,32 @@ class BaseStorage {
13
89
  async initialize() {
14
90
  // No-op by default, override for setup (e.g., creating tables)
15
91
  }
92
+ async testConnection() {
93
+ // Default implementation - override for connection testing
94
+ return true;
95
+ }
96
+ async getStats() {
97
+ // Default implementation - override for storage-specific stats
98
+ return { totalKeys: 0, memoryUsage: 0 };
99
+ }
100
+ /**
101
+ * Utility method to apply interface compliance filtering to chatInfo
102
+ */
103
+ applyChatInfoFiltering(chatId, chatInfo) {
104
+ return StorageUtils.filterChatInfoByType(chatId, chatInfo);
105
+ }
106
+ /**
107
+ * Utility method to apply interface compliance filtering to messages
108
+ */
109
+ applyMessageFiltering(messages) {
110
+ return StorageUtils.filterMessages(messages);
111
+ }
112
+ /**
113
+ * Utility method to filter null values from objects
114
+ */
115
+ filterNullValues(obj) {
116
+ return StorageUtils.filterNullValues(obj);
117
+ }
16
118
  }
17
119
  exports.BaseStorage = BaseStorage;
18
120
  //# sourceMappingURL=BaseStorage.js.map