n8n-nodes-zalo-loma-funnel 1.0.3 → 1.1.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.
Files changed (128) hide show
  1. package/{LICENSE → LICENSE.md} +7 -9
  2. package/README.md +67 -56
  3. package/dist/credentials/N8nZaloApi.credentials.d.ts +8 -0
  4. package/dist/credentials/N8nZaloApi.credentials.js +31 -0
  5. package/dist/credentials/N8nZaloApi.credentials.js.map +1 -0
  6. package/dist/credentials/N8nZaloApi.credentials.ts +32 -0
  7. package/dist/credentials/{zalo-api.credentials.d.ts → ZaloApi.credentials.d.ts} +2 -2
  8. package/dist/credentials/ZaloApi.credentials.js +64 -0
  9. package/dist/credentials/ZaloApi.credentials.js.map +1 -0
  10. package/dist/credentials/ZaloApi.credentials.ts +66 -0
  11. package/dist/credentials/shared/n8n.png +0 -0
  12. package/dist/credentials/shared/zalo.svg +10 -0
  13. package/dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.d.ts +12 -0
  14. package/dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.js +129 -0
  15. package/dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.js.map +1 -0
  16. package/dist/nodes/{ZaloSend/zalo-send.node.d.ts → ZaloGroup/ZaloGroup.node.d.ts} +1 -2
  17. package/dist/nodes/ZaloGroup/ZaloGroup.node.js +228 -0
  18. package/dist/nodes/ZaloGroup/ZaloGroup.node.js.map +1 -0
  19. package/dist/nodes/ZaloGroup/ZaloGroupDescription.d.ts +3 -0
  20. package/dist/nodes/ZaloGroup/ZaloGroupDescription.js +348 -0
  21. package/dist/nodes/ZaloGroup/ZaloGroupDescription.js.map +1 -0
  22. package/dist/nodes/{ZaloManage/zalo-manage.node.d.ts → ZaloLoginByQr/ZaloLoginByQr.node.d.ts} +1 -2
  23. package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js +422 -0
  24. package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js.map +1 -0
  25. package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.d.ts +12 -0
  26. package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.js +147 -0
  27. package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.js.map +1 -0
  28. package/dist/nodes/ZaloPoll/ZaloPoll.node.d.ts +5 -0
  29. package/dist/nodes/ZaloPoll/ZaloPoll.node.js +187 -0
  30. package/dist/nodes/ZaloPoll/ZaloPoll.node.js.map +1 -0
  31. package/dist/nodes/ZaloPoll/ZaloPollDescription.d.ts +3 -0
  32. package/dist/nodes/ZaloPoll/ZaloPollDescription.js +260 -0
  33. package/dist/nodes/ZaloPoll/ZaloPollDescription.js.map +1 -0
  34. package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.d.ts +5 -0
  35. package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js +307 -0
  36. package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js.map +1 -0
  37. package/dist/nodes/ZaloTag/ZaloTag.node.d.ts +5 -0
  38. package/dist/nodes/ZaloTag/ZaloTag.node.js +81 -0
  39. package/dist/nodes/ZaloTag/ZaloTag.node.js.map +1 -0
  40. package/dist/nodes/ZaloUser/ZaloUser.node.d.ts +5 -0
  41. package/dist/nodes/ZaloUser/ZaloUser.node.js +229 -0
  42. package/dist/nodes/ZaloUser/ZaloUser.node.js.map +1 -0
  43. package/dist/nodes/ZaloUser/ZaloUserDescription.d.ts +3 -0
  44. package/dist/nodes/ZaloUser/ZaloUserDescription.js +361 -0
  45. package/dist/nodes/ZaloUser/ZaloUserDescription.js.map +1 -0
  46. package/dist/nodes/shared/zalo.svg +10 -0
  47. package/dist/nodes/utils/helper.d.ts +2 -0
  48. package/dist/nodes/utils/helper.js +42 -0
  49. package/dist/nodes/utils/helper.js.map +1 -0
  50. package/dist/package.json +74 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -0
  52. package/package.json +72 -74
  53. package/dist/bridge/zalo-bridge.d.ts +0 -46
  54. package/dist/bridge/zalo-bridge.d.ts.map +0 -1
  55. package/dist/bridge/zalo-bridge.js +0 -213
  56. package/dist/bridge/zalo-bridge.js.map +0 -1
  57. package/dist/credentials/zalo-api.credentials.d.ts.map +0 -1
  58. package/dist/credentials/zalo-api.credentials.js +0 -82
  59. package/dist/credentials/zalo-api.credentials.js.map +0 -1
  60. package/dist/index.d.ts +0 -9
  61. package/dist/index.d.ts.map +0 -1
  62. package/dist/index.js +0 -36
  63. package/dist/index.js.map +0 -1
  64. package/dist/interfaces/auth.interface.d.ts +0 -33
  65. package/dist/interfaces/auth.interface.d.ts.map +0 -1
  66. package/dist/interfaces/auth.interface.js +0 -3
  67. package/dist/interfaces/auth.interface.js.map +0 -1
  68. package/dist/interfaces/config.interface.d.ts +0 -37
  69. package/dist/interfaces/config.interface.d.ts.map +0 -1
  70. package/dist/interfaces/config.interface.js +0 -3
  71. package/dist/interfaces/config.interface.js.map +0 -1
  72. package/dist/interfaces/index.d.ts +0 -4
  73. package/dist/interfaces/index.d.ts.map +0 -1
  74. package/dist/interfaces/index.js +0 -20
  75. package/dist/interfaces/index.js.map +0 -1
  76. package/dist/interfaces/zalo.interface.d.ts +0 -74
  77. package/dist/interfaces/zalo.interface.d.ts.map +0 -1
  78. package/dist/interfaces/zalo.interface.js +0 -14
  79. package/dist/interfaces/zalo.interface.js.map +0 -1
  80. package/dist/nodes/ZaloManage/zalo-manage.node.d.ts.map +0 -1
  81. package/dist/nodes/ZaloManage/zalo-manage.node.js +0 -426
  82. package/dist/nodes/ZaloManage/zalo-manage.node.js.map +0 -1
  83. package/dist/nodes/ZaloManage/zalo.svg +0 -5
  84. package/dist/nodes/ZaloSend/zalo-send.node.d.ts.map +0 -1
  85. package/dist/nodes/ZaloSend/zalo-send.node.js +0 -538
  86. package/dist/nodes/ZaloSend/zalo-send.node.js.map +0 -1
  87. package/dist/nodes/ZaloSend/zalo.svg +0 -5
  88. package/dist/nodes/ZaloTrigger/zalo-trigger.node.d.ts +0 -6
  89. package/dist/nodes/ZaloTrigger/zalo-trigger.node.d.ts.map +0 -1
  90. package/dist/nodes/ZaloTrigger/zalo-trigger.node.js +0 -308
  91. package/dist/nodes/ZaloTrigger/zalo-trigger.node.js.map +0 -1
  92. package/dist/nodes/ZaloTrigger/zalo.svg +0 -5
  93. package/dist/queues/in-memory-queue.d.ts +0 -20
  94. package/dist/queues/in-memory-queue.d.ts.map +0 -1
  95. package/dist/queues/in-memory-queue.js +0 -68
  96. package/dist/queues/in-memory-queue.js.map +0 -1
  97. package/dist/queues/index.d.ts +0 -4
  98. package/dist/queues/index.d.ts.map +0 -1
  99. package/dist/queues/index.js +0 -8
  100. package/dist/queues/index.js.map +0 -1
  101. package/dist/queues/queue.interface.d.ts +0 -15
  102. package/dist/queues/queue.interface.d.ts.map +0 -1
  103. package/dist/queues/queue.interface.js +0 -3
  104. package/dist/queues/queue.interface.js.map +0 -1
  105. package/dist/queues/redis-queue.d.ts +0 -22
  106. package/dist/queues/redis-queue.d.ts.map +0 -1
  107. package/dist/queues/redis-queue.js +0 -65
  108. package/dist/queues/redis-queue.js.map +0 -1
  109. package/dist/services/error-handler.service.d.ts +0 -67
  110. package/dist/services/error-handler.service.d.ts.map +0 -1
  111. package/dist/services/error-handler.service.js +0 -201
  112. package/dist/services/error-handler.service.js.map +0 -1
  113. package/dist/services/index.d.ts +0 -4
  114. package/dist/services/index.d.ts.map +0 -1
  115. package/dist/services/index.js +0 -13
  116. package/dist/services/index.js.map +0 -1
  117. package/dist/services/rate-limiter.service.d.ts +0 -68
  118. package/dist/services/rate-limiter.service.d.ts.map +0 -1
  119. package/dist/services/rate-limiter.service.js +0 -149
  120. package/dist/services/rate-limiter.service.js.map +0 -1
  121. package/dist/services/zalo-connection-manager.service.d.ts +0 -85
  122. package/dist/services/zalo-connection-manager.service.d.ts.map +0 -1
  123. package/dist/services/zalo-connection-manager.service.js +0 -243
  124. package/dist/services/zalo-connection-manager.service.js.map +0 -1
  125. package/dist/utils/auth-helpers.d.ts +0 -25
  126. package/dist/utils/auth-helpers.d.ts.map +0 -1
  127. package/dist/utils/auth-helpers.js +0 -66
  128. package/dist/utils/auth-helpers.js.map +0 -1
package/package.json CHANGED
@@ -1,76 +1,74 @@
1
1
  {
2
- "name": "n8n-nodes-zalo-loma-funnel",
3
- "version": "1.0.3",
4
- "description": "n8n community nodes for Zalo messaging via zca-js",
5
- "keywords": [
6
- "n8n",
7
- "n8n-community-node-package",
8
- "zalo",
9
- "messaging",
10
- "automation"
11
- ],
12
- "license": "MIT",
13
- "author": {
14
- "name": "Loma Funnel",
15
- "email": "contact@lomafunnel.com"
16
- },
17
- "repository": {
18
- "type": "git",
19
- "url": "https://github.com/thotran113254/n8n-node-zalo-loma-funnel.git"
20
- },
21
- "main": "index.js",
22
- "scripts": {
23
- "copy:assets": "node scripts/copy-assets.js",
24
- "build": "tsc && npm run copy:assets",
25
- "dev": "tsc --watch",
26
- "lint": "eslint src --ext .ts",
27
- "lint:fix": "eslint src --ext .ts --fix",
28
- "format": "prettier --write src/**/*.ts",
29
- "test": "jest",
30
- "prepublishOnly": "npm run build",
31
- "publish:patch": "node scripts/publish.js patch",
32
- "publish:minor": "node scripts/publish.js minor",
33
- "publish:major": "node scripts/publish.js major",
34
- "version:show": "node scripts/version.js show",
35
- "version:bump": "node scripts/version.js bump"
36
- },
37
- "files": [
38
- "dist",
39
- "index.js"
40
- ],
41
- "n8n": {
42
- "n8nNodesApiVersion": 1,
43
- "credentials": [
44
- "dist/credentials/zalo-api.credentials.js"
45
- ],
46
- "nodes": [
47
- "dist/nodes/ZaloTrigger/zalo-trigger.node.js",
48
- "dist/nodes/ZaloSend/zalo-send.node.js",
49
- "dist/nodes/ZaloManage/zalo-manage.node.js"
50
- ]
51
- },
52
- "dependencies": {
53
- "ioredis": "^5.4.1",
54
- "uuid": "^9.0.1",
55
- "zca-js": "^2.0.4"
56
- },
57
- "peerDependencies": {
58
- "n8n-workflow": ">=1.0.0"
59
- },
60
- "devDependencies": {
61
- "@types/jest": "^29.5.11",
62
- "@types/node": "^20.10.0",
63
- "@types/uuid": "^9.0.7",
64
- "@typescript-eslint/eslint-plugin": "^6.15.0",
65
- "@typescript-eslint/parser": "^6.15.0",
66
- "eslint": "^8.56.0",
67
- "jest": "^29.7.0",
68
- "n8n-workflow": "^1.22.0",
69
- "prettier": "^3.1.1",
70
- "ts-jest": "^29.1.1",
71
- "typescript": "^5.3.3"
72
- },
73
- "engines": {
74
- "node": ">=18.0.0"
75
- }
2
+ "name": "n8n-nodes-zalo-loma-funnel",
3
+ "version": "1.1.0",
4
+ "description": "n8n community nodes for Zalo messaging via zca-js",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "zalo-nodes",
8
+ "zalo",
9
+ "n8n",
10
+ "messaging",
11
+ "automation"
12
+ ],
13
+ "license": "MIT",
14
+ "homepage": "https://github.com/thotran113254/n8n-node-zalo-loma-funnel",
15
+ "author": {
16
+ "name": "Loma Funnel",
17
+ "email": "contact@lomafunnel.com"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/thotran113254/n8n-node-zalo-loma-funnel.git"
22
+ },
23
+ "engines": {
24
+ "node": ">=18.10"
25
+ },
26
+ "main": "index.js",
27
+ "scripts": {
28
+ "build": "tsc && gulp build:icons",
29
+ "dev": "tsc --watch",
30
+ "format": "prettier nodes --write",
31
+ "lint": "eslint nodes package.json",
32
+ "lintfix": "eslint nodes package.json --fix",
33
+ "prepublishOnly": "npm run build"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "index.js"
38
+ ],
39
+ "n8n": {
40
+ "n8nNodesApiVersion": 1,
41
+ "credentials": [
42
+ "dist/credentials/ZaloApi.credentials.js"
43
+ ],
44
+ "nodes": [
45
+ "dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js",
46
+ "dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js",
47
+ "dist/nodes/ZaloUser/ZaloUser.node.js",
48
+ "dist/nodes/ZaloGroup/ZaloGroup.node.js",
49
+ "dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.js",
50
+ "dist/nodes/ZaloFriendTrigger/ZaloFriendTrigger.node.js",
51
+ "dist/nodes/ZaloPoll/ZaloPoll.node.js",
52
+ "dist/nodes/ZaloTag/ZaloTag.node.js"
53
+ ]
54
+ },
55
+ "devDependencies": {
56
+ "@typescript-eslint/parser": "^7.15.0",
57
+ "eslint": "^8.56.0",
58
+ "eslint-plugin-n8n-nodes-base": "^1.16.1",
59
+ "gulp": "^4.0.2",
60
+ "prettier": "^3.3.2",
61
+ "typescript": "^5.5.3"
62
+ },
63
+ "optionalDependencies": {
64
+ "sharp": "^0.32.1"
65
+ },
66
+ "peerDependencies": {
67
+ "n8n-core": ">=1.0.0",
68
+ "n8n-workflow": ">=1.0.0"
69
+ },
70
+ "dependencies": {
71
+ "axios": "^1.8.4",
72
+ "zca-js": "^2.0.0-beta.24"
73
+ }
76
74
  }
@@ -1,46 +0,0 @@
1
- /**
2
- * External Bridge Service for Zalo
3
- *
4
- * Standalone service that:
5
- * 1. Connects to Zalo via zca-js WebSocket
6
- * 2. Pushes received messages to Redis queue
7
- * 3. n8n ZaloTrigger polls this queue
8
- *
9
- * Benefits:
10
- * - Survives n8n restarts
11
- * - Single WebSocket connection for multiple workflows
12
- * - Can run on separate server
13
- *
14
- * Usage:
15
- * REDIS_URL=redis://localhost:6379 \
16
- * ZALO_COOKIE='[...]' \
17
- * ZALO_IMEI='...' \
18
- * ZALO_USER_AGENT='...' \
19
- * npx ts-node src/bridge/zalo-bridge.ts
20
- */
21
- interface BridgeConfig {
22
- redisUrl: string;
23
- cookie: string;
24
- imei: string;
25
- userAgent: string;
26
- accountId?: string;
27
- queuePrefix?: string;
28
- ttlSeconds?: number;
29
- retryOnDisconnect?: boolean;
30
- }
31
- declare class ZaloBridge {
32
- private redis;
33
- private config;
34
- private isRunning;
35
- constructor(config: BridgeConfig);
36
- start(): Promise<void>;
37
- stop(): Promise<void>;
38
- private parseCredentials;
39
- private parseCookieString;
40
- private generateAccountId;
41
- private convertMessage;
42
- private getMessageType;
43
- private pushToQueue;
44
- }
45
- export { ZaloBridge, BridgeConfig };
46
- //# sourceMappingURL=zalo-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zalo-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/zalo-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,cAAM,UAAU;IACd,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,YAAY;IAU1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,cAAc;YAaR,WAAW;CAmB1B;AA8BD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -1,213 +0,0 @@
1
- "use strict";
2
- /**
3
- * External Bridge Service for Zalo
4
- *
5
- * Standalone service that:
6
- * 1. Connects to Zalo via zca-js WebSocket
7
- * 2. Pushes received messages to Redis queue
8
- * 3. n8n ZaloTrigger polls this queue
9
- *
10
- * Benefits:
11
- * - Survives n8n restarts
12
- * - Single WebSocket connection for multiple workflows
13
- * - Can run on separate server
14
- *
15
- * Usage:
16
- * REDIS_URL=redis://localhost:6379 \
17
- * ZALO_COOKIE='[...]' \
18
- * ZALO_IMEI='...' \
19
- * ZALO_USER_AGENT='...' \
20
- * npx ts-node src/bridge/zalo-bridge.ts
21
- */
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ZaloBridge = void 0;
27
- const zca_js_1 = require("zca-js");
28
- const ioredis_1 = __importDefault(require("ioredis"));
29
- const zalo_interface_1 = require("../interfaces/zalo.interface");
30
- class ZaloBridge {
31
- constructor(config) {
32
- this.isRunning = false;
33
- this.config = {
34
- queuePrefix: 'zalo:trigger:',
35
- ttlSeconds: 86400,
36
- retryOnDisconnect: true,
37
- ...config,
38
- };
39
- this.redis = new ioredis_1.default(config.redisUrl);
40
- }
41
- async start() {
42
- console.log('[ZaloBridge] Starting...');
43
- // Parse credentials
44
- const credentials = this.parseCredentials();
45
- // Connect to Zalo
46
- const zalo = new zca_js_1.Zalo();
47
- const api = await zalo.login(credentials);
48
- const accountId = this.config.accountId || this.generateAccountId();
49
- console.log(`[ZaloBridge] Connected as account: ${accountId}`);
50
- // Set up message listener
51
- const listener = api.listener;
52
- listener.on('connected', () => {
53
- console.log('[ZaloBridge] WebSocket connected');
54
- this.isRunning = true;
55
- });
56
- listener.on('message', async (message) => {
57
- try {
58
- const converted = this.convertMessage(message);
59
- await this.pushToQueue(accountId, converted);
60
- console.log(`[ZaloBridge] Message queued: ${converted.msgId}`);
61
- }
62
- catch (error) {
63
- console.error('[ZaloBridge] Failed to queue message:', error);
64
- }
65
- });
66
- listener.on('error', (error) => {
67
- console.error('[ZaloBridge] WebSocket error:', error);
68
- });
69
- listener.on('closed', (code, reason) => {
70
- console.log(`[ZaloBridge] WebSocket closed: ${code} - ${reason}`);
71
- this.isRunning = false;
72
- });
73
- listener.start({ retryOnClose: this.config.retryOnDisconnect ?? true });
74
- // Handle graceful shutdown
75
- process.on('SIGINT', () => this.stop());
76
- process.on('SIGTERM', () => this.stop());
77
- console.log('[ZaloBridge] Listening for messages...');
78
- }
79
- async stop() {
80
- console.log('[ZaloBridge] Shutting down...');
81
- this.isRunning = false;
82
- await this.redis.quit();
83
- process.exit(0);
84
- }
85
- parseCredentials() {
86
- let cookie;
87
- try {
88
- const parsed = JSON.parse(this.config.cookie);
89
- if (Array.isArray(parsed)) {
90
- cookie = parsed;
91
- }
92
- else {
93
- cookie = [parsed];
94
- }
95
- }
96
- catch {
97
- // Cookie is a string, convert to Cookie array
98
- cookie = this.parseCookieString(this.config.cookie);
99
- }
100
- return {
101
- imei: this.config.imei,
102
- cookie,
103
- userAgent: this.config.userAgent,
104
- };
105
- }
106
- parseCookieString(cookieStr) {
107
- const cookies = [];
108
- const pairs = cookieStr.split(';').map((p) => p.trim());
109
- for (const pair of pairs) {
110
- const [name, ...valueParts] = pair.split('=');
111
- if (!name)
112
- continue;
113
- cookies.push({
114
- domain: '.zalo.me',
115
- expirationDate: Date.now() / 1000 + 86400 * 365,
116
- hostOnly: false,
117
- httpOnly: true,
118
- name: name.trim(),
119
- path: '/',
120
- sameSite: 'lax',
121
- secure: true,
122
- session: false,
123
- storeId: '0',
124
- value: valueParts.join('='),
125
- });
126
- }
127
- return cookies;
128
- }
129
- generateAccountId() {
130
- let hash = 0;
131
- for (let i = 0; i < this.config.cookie.length; i++) {
132
- const char = this.config.cookie.charCodeAt(i);
133
- hash = (hash << 5) - hash + char;
134
- hash = hash & hash;
135
- }
136
- return `zalo_${Math.abs(hash).toString(16)}`;
137
- }
138
- convertMessage(message) {
139
- const data = message.data;
140
- const content = typeof data.content === 'string' ? data.content : JSON.stringify(data.content);
141
- return {
142
- msgId: data.msgId,
143
- threadId: message.threadId,
144
- senderId: data.uidFrom,
145
- senderName: data.dName,
146
- content,
147
- type: this.getMessageType(data.msgType),
148
- timestamp: parseInt(data.ts, 10),
149
- quote: data.quote
150
- ? {
151
- msgId: String(data.quote.globalMsgId),
152
- content: data.quote.msg,
153
- senderId: data.quote.ownerId,
154
- }
155
- : undefined,
156
- };
157
- }
158
- getMessageType(msgType) {
159
- const typeMap = {
160
- text: zalo_interface_1.ZaloMessageType.TEXT,
161
- image: zalo_interface_1.ZaloMessageType.IMAGE,
162
- video: zalo_interface_1.ZaloMessageType.VIDEO,
163
- file: zalo_interface_1.ZaloMessageType.FILE,
164
- sticker: zalo_interface_1.ZaloMessageType.STICKER,
165
- gif: zalo_interface_1.ZaloMessageType.GIF,
166
- voice: zalo_interface_1.ZaloMessageType.VOICE,
167
- };
168
- return typeMap[msgType.toLowerCase()] || zalo_interface_1.ZaloMessageType.TEXT;
169
- }
170
- async pushToQueue(accountId, message) {
171
- const queueKey = `${this.config.queuePrefix}${accountId}`;
172
- const dedupKey = `${this.config.queuePrefix}dedup:${accountId}`;
173
- // Check for duplicate
174
- const exists = await this.redis.sismember(dedupKey, message.msgId);
175
- if (exists) {
176
- return;
177
- }
178
- // Push to queue
179
- const data = JSON.stringify(message);
180
- await this.redis.rpush(queueKey, data);
181
- await this.redis.expire(queueKey, this.config.ttlSeconds);
182
- // Add to dedup set
183
- await this.redis.sadd(dedupKey, message.msgId);
184
- await this.redis.expire(dedupKey, 3600);
185
- }
186
- }
187
- exports.ZaloBridge = ZaloBridge;
188
- // Run if executed directly
189
- if (require.main === module) {
190
- const config = {
191
- redisUrl: process.env.REDIS_URL || 'redis://localhost:6379',
192
- cookie: process.env.ZALO_COOKIE || '',
193
- imei: process.env.ZALO_IMEI || '',
194
- userAgent: process.env.ZALO_USER_AGENT || '',
195
- accountId: process.env.ZALO_ACCOUNT_ID,
196
- queuePrefix: process.env.QUEUE_PREFIX || 'zalo:trigger:',
197
- ttlSeconds: parseInt(process.env.TTL_SECONDS || '86400', 10),
198
- retryOnDisconnect: process.env.RETRY_ON_DISCONNECT !== 'false',
199
- };
200
- if (!config.cookie || !config.imei || !config.userAgent) {
201
- console.error('Missing required environment variables:');
202
- console.error(' ZALO_COOKIE: Zalo cookie JSON array or string');
203
- console.error(' ZALO_IMEI: Device IMEI');
204
- console.error(' ZALO_USER_AGENT: User agent string');
205
- process.exit(1);
206
- }
207
- const bridge = new ZaloBridge(config);
208
- bridge.start().catch((error) => {
209
- console.error('[ZaloBridge] Failed to start:', error);
210
- process.exit(1);
211
- });
212
- }
213
- //# sourceMappingURL=zalo-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zalo-bridge.js","sourceRoot":"","sources":["../../src/bridge/zalo-bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"zalo-api.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/zalo-api.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,qBAAa,OAAQ,YAAW,eAAe;IAC7C,IAAI,SAAa;IACjB,WAAW,SAAc;IACzB,gBAAgB,SAA8D;IAE9E,UAAU,EAAE,eAAe,EAAE,CA0E3B;CACH"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZaloApi = void 0;
4
- class ZaloApi {
5
- constructor() {
6
- this.name = 'zaloApi';
7
- this.displayName = 'Zalo API';
8
- this.documentationUrl = 'https://github.com/lomafunnel/n8n-nodes-zalo-loma-funnel';
9
- this.properties = [
10
- // Warning notice
11
- {
12
- displayName: 'Important Notice',
13
- name: 'notice',
14
- type: 'notice',
15
- default: '',
16
- // eslint-disable-next-line max-len
17
- description: '⚠️ This node uses unofficial Zalo API (zca-js). Using this may violate Zalo Terms of Service. Your account could be banned. Use at your own risk.',
18
- },
19
- // Account identifier (optional)
20
- {
21
- displayName: 'Account Name',
22
- name: 'accountName',
23
- type: 'string',
24
- default: '',
25
- placeholder: 'My Zalo Account',
26
- description: 'Optional friendly name for this account (for multi-account identification)',
27
- },
28
- // Cookie (required) - stored encrypted by n8n
29
- {
30
- displayName: 'Cookie',
31
- name: 'cookie',
32
- type: 'string',
33
- typeOptions: { password: true },
34
- default: '',
35
- required: true,
36
- placeholder: 'zpw_sek=...; zpsid=...',
37
- description: 'Zalo Web cookies from chat.zalo.me',
38
- },
39
- // IMEI (required)
40
- {
41
- displayName: 'IMEI',
42
- name: 'imei',
43
- type: 'string',
44
- default: '',
45
- required: true,
46
- placeholder: '1234567890-abcdef123456',
47
- description: 'Device IMEI from browser localStorage (key: zalo_imei)',
48
- },
49
- // User Agent (required)
50
- {
51
- displayName: 'User Agent',
52
- name: 'userAgent',
53
- type: 'string',
54
- default: '',
55
- required: true,
56
- placeholder: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...',
57
- description: 'Browser User Agent used when getting cookies',
58
- },
59
- // Hidden auto-managed fields
60
- {
61
- displayName: 'Account ID',
62
- name: 'accountId',
63
- type: 'hidden',
64
- default: '',
65
- },
66
- {
67
- displayName: 'Session Data',
68
- name: 'sessionData',
69
- type: 'hidden',
70
- default: '',
71
- },
72
- {
73
- displayName: 'Last Login',
74
- name: 'lastLogin',
75
- type: 'hidden',
76
- default: 0,
77
- },
78
- ];
79
- }
80
- }
81
- exports.ZaloApi = ZaloApi;
82
- //# sourceMappingURL=zalo-api.credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zalo-api.credentials.js","sourceRoot":"","sources":["../../src/credentials/zalo-api.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAApB;QACE,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,UAAU,CAAC;QACzB,qBAAgB,GAAG,0DAA0D,CAAC;QAE9E,eAAU,GAAsB;YAC9B,iBAAiB;YACjB;gBACE,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,mCAAmC;gBACnC,WAAW,EAAE,mJAAmJ;aACjK;YAED,gCAAgC;YAChC;gBACE,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,iBAAiB;gBAC9B,WAAW,EAAE,4EAA4E;aAC1F;YAED,8CAA8C;YAC9C;gBACE,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wBAAwB;gBACrC,WAAW,EAAE,oCAAoC;aAClD;YAED,kBAAkB;YAClB;gBACE,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,yBAAyB;gBACtC,WAAW,EAAE,wDAAwD;aACtE;YAED,wBAAwB;YACxB;gBACE,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,+CAA+C;gBAC5D,WAAW,EAAE,8CAA8C;aAC5D;YAED,6BAA6B;YAC7B;gBACE,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;aACX;SACF,CAAC;IACJ,CAAC;CAAA;AAhFD,0BAgFC"}
package/dist/index.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export * from './credentials/zalo-api.credentials';
2
- export * from './nodes/ZaloTrigger/zalo-trigger.node';
3
- export * from './nodes/ZaloSend/zalo-send.node';
4
- export * from './nodes/ZaloManage/zalo-manage.node';
5
- export * from './services';
6
- export * from './queues';
7
- export * from './interfaces';
8
- export { ZaloBridge, type BridgeConfig } from './bridge/zalo-bridge';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,oCAAoC,CAAC;AAGnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js DELETED
@@ -1,36 +0,0 @@
1
- "use strict";
2
- // Main entry point - exports all nodes and credentials
3
- // n8n uses the n8n section in package.json to find nodes/credentials
4
- // This file is for programmatic imports
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.ZaloBridge = void 0;
21
- // Credentials
22
- __exportStar(require("./credentials/zalo-api.credentials"), exports);
23
- // Nodes
24
- __exportStar(require("./nodes/ZaloTrigger/zalo-trigger.node"), exports);
25
- __exportStar(require("./nodes/ZaloSend/zalo-send.node"), exports);
26
- __exportStar(require("./nodes/ZaloManage/zalo-manage.node"), exports);
27
- // Services
28
- __exportStar(require("./services"), exports);
29
- // Queues
30
- __exportStar(require("./queues"), exports);
31
- // Interfaces
32
- __exportStar(require("./interfaces"), exports);
33
- // Bridge
34
- var zalo_bridge_1 = require("./bridge/zalo-bridge");
35
- Object.defineProperty(exports, "ZaloBridge", { enumerable: true, get: function () { return zalo_bridge_1.ZaloBridge; } });
36
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,qEAAqE;AACrE,wCAAwC;;;;;;;;;;;;;;;;;AAExC,cAAc;AACd,qEAAmD;AAEnD,QAAQ;AACR,wEAAsD;AACtD,kEAAgD;AAChD,sEAAoD;AAEpD,WAAW;AACX,6CAA2B;AAE3B,SAAS;AACT,2CAAyB;AAEzB,aAAa;AACb,+CAA6B;AAE7B,SAAS;AACT,oDAAqE;AAA5D,yGAAA,UAAU,OAAA"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Zalo API Auth Interface
3
- * Used for authentication with zca-js
4
- */
5
- export interface IZaloApiAuth {
6
- cookie: string;
7
- imei: string;
8
- userAgent: string;
9
- accountName?: string;
10
- accountId?: string;
11
- sessionData?: string;
12
- lastLogin?: number;
13
- }
14
- /**
15
- * Parsed session data from zca-js
16
- */
17
- export interface IZaloSessionData {
18
- zpwServiceMap?: Record<string, unknown>;
19
- selfInfo?: {
20
- id: string;
21
- name: string;
22
- avatar?: string;
23
- };
24
- }
25
- /**
26
- * Validated auth with required session
27
- */
28
- export interface IZaloValidatedAuth extends IZaloApiAuth {
29
- accountId: string;
30
- sessionData: string;
31
- lastLogin: number;
32
- }
33
- //# sourceMappingURL=auth.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/auth.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAE3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=auth.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.interface.js","sourceRoot":"","sources":["../../src/interfaces/auth.interface.ts"],"names":[],"mappings":""}