n8n-nodes-chat2crm 0.1.14 → 0.1.16

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.
@@ -96,8 +96,28 @@ class Chat2CrmTrigger {
96
96
  // Создаем подключения к Redis только для нужных баз данных
97
97
  const redisConnections = new Map();
98
98
  for (const db of streamsByDb.keys()) {
99
+ // Создаем отдельное соединение для каждой базы данных
100
+ // ВАЖНО: Каждое соединение уже настроено на свою базу данных через параметр db
99
101
  const redis = await RedisConnection_1.createRedisConnection.call(this, credentials, db);
100
102
  redisConnections.set(db, redis);
103
+ // ДИАГНОСТИКА: Сразу после создания соединения проверяем stream'ы
104
+ try {
105
+ const testKeys = await redis.keys('*');
106
+ console.log(`[Chat2Crm Trigger] Keys in DB ${db} immediately after connection:`, testKeys);
107
+ // Проверяем конкретно N8N_INCOMING_MESSAGE
108
+ if (streamsByDb.get(db)?.includes('N8N_INCOMING_MESSAGE')) {
109
+ try {
110
+ const testInfo = await redis.xinfo('STREAM', 'N8N_INCOMING_MESSAGE');
111
+ console.log(`[Chat2Crm Trigger] N8N_INCOMING_MESSAGE found immediately after connection!`, testInfo);
112
+ }
113
+ catch (e) {
114
+ console.error(`[Chat2Crm Trigger] N8N_INCOMING_MESSAGE NOT found immediately after connection:`, e.message);
115
+ }
116
+ }
117
+ }
118
+ catch (error) {
119
+ console.error(`[Chat2Crm Trigger] Error checking keys in DB ${db}:`, error.message);
120
+ }
101
121
  }
102
122
  // Храним последние прочитанные ID для каждого stream
103
123
  const lastReadIds = new Map();
@@ -108,16 +128,63 @@ class Chat2CrmTrigger {
108
128
  const redis = redisConnections.get(db);
109
129
  // ИСПРАВЛЕНИЕ: Явно выбираем базу данных перед проверкой stream'ов
110
130
  try {
111
- await redis.select(db);
112
- console.log(`[Chat2Crm Trigger] Selected DB ${db} before checking streams`);
131
+ const selectResult = await redis.select(db);
132
+ console.log(`[Chat2Crm Trigger] SELECT ${db} result:`, selectResult);
133
+ // ДИАГНОСТИКА: Проверяем текущую базу данных через CLIENT INFO или другой способ
134
+ // Попробуем напрямую проверить stream после SELECT
135
+ for (const stream of dbStreams) {
136
+ try {
137
+ console.log(`[Chat2Crm Trigger] Direct XINFO check for "${stream}" immediately after SELECT ${db}`);
138
+ const directInfo = await redis.xinfo('STREAM', stream);
139
+ console.log(`[Chat2Crm Trigger] Direct XINFO SUCCESS for "${stream}":`, directInfo);
140
+ }
141
+ catch (directError) {
142
+ console.error(`[Chat2Crm Trigger] Direct XINFO FAILED for "${stream}":`, directError.message);
143
+ }
144
+ }
145
+ // ДИАГНОСТИКА: Проверяем все stream'ы через SCAN
146
+ const streamKeys = [];
147
+ let cursor = '0';
148
+ do {
149
+ const [nextCursor, keys] = await redis.scan(cursor, 'MATCH', '*', 'COUNT', 100);
150
+ cursor = nextCursor;
151
+ for (const key of keys) {
152
+ const keyType = await redis.type(key);
153
+ if (keyType === 'stream') {
154
+ streamKeys.push(key);
155
+ }
156
+ }
157
+ } while (cursor !== '0');
158
+ console.log(`[Chat2Crm Trigger] Found ${streamKeys.length} streams in DB ${db}:`, streamKeys);
159
+ console.log(`[Chat2Crm Trigger] Looking for:`, dbStreams);
160
+ // ДИАГНОСТИКА: Проверяем конкретно N8N_INCOMING_MESSAGE через разные методы
161
+ if (dbStreams.includes('N8N_INCOMING_MESSAGE')) {
162
+ console.log(`[Chat2Crm Trigger] Special check for N8N_INCOMING_MESSAGE in DB ${db}`);
163
+ try {
164
+ const exists = await redis.exists('N8N_INCOMING_MESSAGE');
165
+ console.log(`[Chat2Crm Trigger] EXISTS check for N8N_INCOMING_MESSAGE:`, exists);
166
+ }
167
+ catch (e) {
168
+ console.error(`[Chat2Crm Trigger] EXISTS check failed:`, e.message);
169
+ }
170
+ try {
171
+ const type = await redis.type('N8N_INCOMING_MESSAGE');
172
+ console.log(`[Chat2Crm Trigger] TYPE check for N8N_INCOMING_MESSAGE:`, type);
173
+ }
174
+ catch (e) {
175
+ console.error(`[Chat2Crm Trigger] TYPE check failed:`, e.message);
176
+ }
177
+ }
113
178
  }
114
179
  catch (error) {
115
180
  console.error(`[Chat2Crm Trigger] Failed to select DB ${db}:`, error.message);
116
181
  }
117
182
  for (const stream of dbStreams) {
118
183
  try {
184
+ console.log(`[Chat2Crm Trigger] Checking stream "${stream}" in DB ${db}`);
119
185
  // Пытаемся получить информацию о stream
120
186
  const streamInfo = await redis.xinfo('STREAM', stream);
187
+ console.log(`[Chat2Crm Trigger] Stream "${stream}" found! Info:`, streamInfo);
121
188
  if (streamInfo && Array.isArray(streamInfo)) {
122
189
  // Ищем 'last-entry' в информации о stream
123
190
  const lastEntryIndex = streamInfo.indexOf('last-entry');
@@ -172,7 +172,7 @@ async function createRedisConnection(credentials, db = 0) {
172
172
  const redis = new ioredis_1.default({
173
173
  host: redisHost,
174
174
  port: redisPort,
175
- db: selectedDb, // Явно используем переданный параметр db
175
+ db: selectedDb,
176
176
  password: credentials.password,
177
177
  enableReadyCheck: true,
178
178
  maxRetriesPerRequest: 3,
@@ -182,6 +182,18 @@ async function createRedisConnection(credentials, db = 0) {
182
182
  return delay;
183
183
  },
184
184
  });
185
+ // Ждем подключения и явно выбираем базу данных
186
+ await new Promise((resolve, reject) => {
187
+ redis.once('ready', () => {
188
+ resolve();
189
+ });
190
+ redis.once('error', (err) => {
191
+ reject(err);
192
+ });
193
+ });
194
+ // Явно выбираем базу данных после подключения
195
+ await redis.select(selectedDb);
196
+ console.log(`[Redis Connection] Explicitly selected DB ${selectedDb} after connection`);
185
197
  // Добавляем обработчики событий для диагностики
186
198
  redis.on('connect', () => {
187
199
  console.log(`[Redis Connection] Connected to Redis at ${redisHost}:${redisPort}, DB ${selectedDb}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-chat2crm",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "n8n node for Chat2Crm Redis integration",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",