@dongdev/fca-unofficial 2.0.8 → 2.0.11
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/DOCS.md +1699 -1434
- package/README.md +250 -168
- package/package.json +53 -27
- package/src/api/socket/listenMqtt.js +1 -1
- package/CHANGELOG.md +0 -55
- package/LICENSE-MIT +0 -21
- package/func/checkUpdate.js +0 -58
- package/func/logger.js +0 -48
- package/func/login.js +0 -0
- package/index.d.ts +0 -618
- package/module/config.js +0 -34
- package/module/login.js +0 -47
- package/module/loginHelper.js +0 -635
- package/module/options.js +0 -45
package/README.md
CHANGED
@@ -1,238 +1,320 @@
|
|
1
|
-
|
1
|
+
# @dongdev/fca-unofficial
|
2
2
|
|
3
|
-
](https://www.npmjs.com/package/@dongdev/fca-unofficial)
|
4
|
+
[](https://www.npmjs.com/package/@dongdev/fca-unofficial)
|
4
5
|
|
5
|
-
|
6
|
+
> **Unofficial Facebook Chat API for Node.js** - Interact with Facebook Messenger programmatically
|
6
7
|
|
7
|
-
|
8
|
+
## ⚠️ Important Disclaimer
|
8
9
|
|
9
|
-
|
10
|
+
**We are not responsible if your account gets banned for spammy activities such as:**
|
11
|
+
- Sending lots of messages to people you don't know
|
12
|
+
- Sending messages very quickly
|
13
|
+
- Sending spammy looking URLs
|
14
|
+
- Logging in and out very quickly
|
10
15
|
|
11
|
-
|
16
|
+
**Recommendation:** Use Firefox browser or [this website](https://fca.dongdev.id.vn) to reduce logout issues, especially for iOS users.
|
12
17
|
|
13
|
-
If you encounter errors
|
18
|
+
**Support:** If you encounter errors, contact us [here](https://www.facebook.com/minhdong.dev)
|
14
19
|
|
15
|
-
|
20
|
+
## 🔍 Introduction
|
16
21
|
|
17
|
-
|
22
|
+
Facebook now has an [official API for chat bots](https://developers.facebook.com/docs/messenger-platform), however it's only available for Facebook Pages.
|
18
23
|
|
19
|
-
|
24
|
+
`@dongdev/fca-unofficial` is the only API that allows you to automate chat functionalities on a **user account** by emulating the browser. This means:
|
25
|
+
- Making the exact same GET/POST requests as a browser
|
26
|
+
- Does not work with auth tokens
|
27
|
+
- Requires Facebook account credentials (email/password) or AppState
|
20
28
|
|
21
|
-
|
29
|
+
## 📦 Installation
|
22
30
|
|
23
31
|
```bash
|
24
32
|
npm install @dongdev/fca-unofficial@latest
|
25
33
|
```
|
26
34
|
|
27
|
-
|
35
|
+
## 🚀 Basic Usage
|
28
36
|
|
29
|
-
|
37
|
+
### 1. Login and Simple Echo Bot
|
30
38
|
|
31
39
|
```javascript
|
32
40
|
const login = require("@dongdev/fca-unofficial");
|
33
41
|
|
34
42
|
login({ appState: [] }, (err, api) => {
|
35
|
-
if (err) return console.error(err);
|
36
|
-
|
37
|
-
api.listenMqtt((err, event) => {
|
38
43
|
if (err) return console.error(err);
|
39
44
|
|
40
|
-
api.
|
41
|
-
|
45
|
+
api.listenMqtt((err, event) => {
|
46
|
+
if (err) return console.error(err);
|
47
|
+
|
48
|
+
// Echo back the received message
|
49
|
+
api.sendMessage(event.body, event.threadID);
|
50
|
+
});
|
42
51
|
});
|
43
52
|
```
|
44
53
|
|
45
|
-
|
46
|
-
|
47
|
-
<img width="517" alt="screen shot 2016-11-04 at 14 36 00" src="https://cloud.githubusercontent.com/assets/4534692/20023545/f8c24130-a29d-11e6-9ef7-47568bdbc1f2.png">
|
48
|
-
|
49
|
-
## Main Functionality
|
50
|
-
|
51
|
-
### Sending a message
|
54
|
+
### 2. Send Text Message
|
52
55
|
|
53
|
-
|
56
|
+
```javascript
|
57
|
+
const login = require("@dongdev/fca-unofficial");
|
54
58
|
|
55
|
-
|
59
|
+
login({ appState: [] }, (err, api) => {
|
60
|
+
if (err) {
|
61
|
+
console.error("Login Error:", err);
|
62
|
+
return;
|
63
|
+
}
|
56
64
|
|
57
|
-
|
58
|
-
|
59
|
-
- _File or image:_ Set field `attachment` to a readable stream or an array of readable streams.
|
60
|
-
- _URL:_ set a field `url` to the desired URL.
|
61
|
-
- _Emoji:_ set field `emoji` to the desired emoji as a string and set field `emojiSize` with size of the emoji (`small`, `medium`, `large`)
|
65
|
+
let yourID = "000000000000000"; // Replace with actual Facebook ID
|
66
|
+
let msg = "Hey!";
|
62
67
|
|
63
|
-
|
68
|
+
api.sendMessage(msg, yourID, err => {
|
69
|
+
if (err) console.error("Message Sending Error:", err);
|
70
|
+
else console.log("Message sent successfully!");
|
71
|
+
});
|
72
|
+
});
|
73
|
+
```
|
64
74
|
|
65
|
-
**Tip
|
75
|
+
**Tip:** To find your Facebook ID, look inside the cookies under the name `c_user`
|
66
76
|
|
67
|
-
|
77
|
+
### 3. Send File/Image
|
68
78
|
|
69
|
-
```
|
79
|
+
```javascript
|
70
80
|
const login = require("@dongdev/fca-unofficial");
|
81
|
+
const fs = require("fs");
|
71
82
|
|
72
83
|
login({ appState: [] }, (err, api) => {
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
let yourID = "000000000000000"; // Replace with actual Facebook ID
|
79
|
-
let msg = "Hey!";
|
80
|
-
|
81
|
-
api.sendMessage(msg, yourID, err => {
|
82
|
-
if (err) console.error("Message Sending Error:", err);
|
83
|
-
else console.log("Message sent successfully!");
|
84
|
-
});
|
85
|
-
});
|
86
|
-
```
|
84
|
+
if (err) {
|
85
|
+
console.error("Login Error:", err);
|
86
|
+
return;
|
87
|
+
}
|
87
88
|
|
88
|
-
|
89
|
+
let yourID = "000000000000000";
|
90
|
+
let imagePath = __dirname + "/image.jpg";
|
89
91
|
|
90
|
-
|
91
|
-
|
92
|
-
|
92
|
+
// Check if file exists
|
93
|
+
if (!fs.existsSync(imagePath)) {
|
94
|
+
console.error("Error: Image file not found!");
|
95
|
+
return;
|
96
|
+
}
|
93
97
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
// Check if the file exists before sending
|
104
|
-
if (!fs.existsSync(imagePath)) {
|
105
|
-
console.error("Error: Image file not found!");
|
106
|
-
return;
|
107
|
-
}
|
108
|
-
|
109
|
-
let msg = {
|
110
|
-
body: "Hey!",
|
111
|
-
attachment: fs.createReadStream(imagePath)
|
112
|
-
};
|
113
|
-
|
114
|
-
api.sendMessage(msg, yourID, err => {
|
115
|
-
if (err) console.error("Message Sending Error:", err);
|
116
|
-
else console.log("Message sent successfully!");
|
117
|
-
});
|
98
|
+
let msg = {
|
99
|
+
body: "Hey!",
|
100
|
+
attachment: fs.createReadStream(imagePath)
|
101
|
+
};
|
102
|
+
|
103
|
+
api.sendMessage(msg, yourID, err => {
|
104
|
+
if (err) console.error("Message Sending Error:", err);
|
105
|
+
else console.log("Message sent successfully!");
|
106
|
+
});
|
118
107
|
});
|
119
108
|
```
|
120
109
|
|
121
|
-
|
110
|
+
## 📝 Message Types
|
111
|
+
|
112
|
+
| Type | Usage |
|
113
|
+
| ---------------- | --------------------------------------------------------------- |
|
114
|
+
| **Regular text** | `{ body: "message text" }` |
|
115
|
+
| **Sticker** | `{ sticker: "sticker_id" }` |
|
116
|
+
| **File/Image** | `{ attachment: fs.createReadStream(path) }` or array of streams |
|
117
|
+
| **URL** | `{ url: "https://example.com" }` |
|
118
|
+
| **Large emoji** | `{ emoji: "👍", emojiSize: "large" }` (small/medium/large) |
|
122
119
|
|
123
|
-
|
120
|
+
**Note:** A message can only be a regular message (which can be empty) and optionally **one of the following**: a sticker, an attachment, or a URL.
|
124
121
|
|
125
|
-
|
122
|
+
## 💾 Saving AppState to Avoid Re-login
|
126
123
|
|
127
|
-
|
124
|
+
### Save AppState
|
128
125
|
|
129
|
-
```
|
126
|
+
```javascript
|
130
127
|
const fs = require("fs");
|
131
128
|
const login = require("@dongdev/fca-unofficial");
|
132
129
|
|
133
130
|
const credentials = { appState: [] };
|
134
131
|
|
135
132
|
login(credentials, (err, api) => {
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
133
|
+
if (err) {
|
134
|
+
console.error("Login Error:", err);
|
135
|
+
return;
|
136
|
+
}
|
137
|
+
|
138
|
+
try {
|
139
|
+
const appState = JSON.stringify(api.getAppState(), null, 2);
|
140
|
+
fs.writeFileSync("appstate.json", appState);
|
141
|
+
console.log("✅ AppState saved successfully!");
|
142
|
+
} catch (error) {
|
143
|
+
console.error("Error saving AppState:", error);
|
144
|
+
}
|
148
145
|
});
|
149
146
|
```
|
150
147
|
|
151
|
-
|
148
|
+
### Use Saved AppState
|
152
149
|
|
153
|
-
|
150
|
+
```javascript
|
151
|
+
const fs = require("fs");
|
152
|
+
const login = require("@dongdev/fca-unofficial");
|
154
153
|
|
155
|
-
|
154
|
+
login(
|
155
|
+
{ appState: JSON.parse(fs.readFileSync("appstate.json", "utf8")) },
|
156
|
+
(err, api) => {
|
157
|
+
if (err) {
|
158
|
+
console.error("Login Error:", err);
|
159
|
+
return;
|
160
|
+
}
|
156
161
|
|
157
|
-
|
162
|
+
console.log("✅ Logged in successfully!");
|
163
|
+
// Your code here
|
164
|
+
}
|
165
|
+
);
|
166
|
+
```
|
167
|
+
|
168
|
+
**Alternative:** Use [c3c-fbstate](https://github.com/c3cbot/c3c-fbstate) to get fbstate.json
|
158
169
|
|
159
|
-
|
170
|
+
## 👂 Listening for Messages
|
160
171
|
|
161
|
-
|
172
|
+
### Echo Bot with Stop Command
|
162
173
|
|
163
|
-
```
|
174
|
+
```javascript
|
164
175
|
const fs = require("fs");
|
165
176
|
const login = require("@dongdev/fca-unofficial");
|
166
177
|
|
167
|
-
// Simple echo bot: Repeats everything you say. Stops when you say "/stop".
|
168
178
|
login(
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
179
|
+
{ appState: JSON.parse(fs.readFileSync("appstate.json", "utf8")) },
|
180
|
+
(err, api) => {
|
181
|
+
if (err) {
|
182
|
+
console.error("Login Error:", err);
|
183
|
+
return;
|
184
|
+
}
|
185
|
+
|
186
|
+
// Enable listening to events (join/leave, title change, etc.)
|
187
|
+
api.setOptions({ listenEvents: true });
|
188
|
+
|
189
|
+
const stopListening = api.listenMqtt((err, event) => {
|
190
|
+
if (err) {
|
191
|
+
console.error("Listen Error:", err);
|
192
|
+
return;
|
193
|
+
}
|
194
|
+
|
195
|
+
// Mark as read
|
196
|
+
api.markAsRead(event.threadID, err => {
|
197
|
+
if (err) console.error("Mark as read error:", err);
|
198
|
+
});
|
199
|
+
|
200
|
+
// Handle different event types
|
201
|
+
switch (event.type) {
|
202
|
+
case "message":
|
203
|
+
if (event.body && event.body.trim().toLowerCase() === "/stop") {
|
204
|
+
api.sendMessage("Goodbye…", event.threadID);
|
205
|
+
stopListening();
|
206
|
+
return;
|
207
|
+
}
|
208
|
+
api.sendMessage(`TEST BOT: ${event.body}`, event.threadID);
|
209
|
+
break;
|
210
|
+
|
211
|
+
case "event":
|
212
|
+
console.log("Event Received:", event);
|
213
|
+
break;
|
214
|
+
}
|
215
|
+
});
|
174
216
|
}
|
217
|
+
);
|
218
|
+
```
|
175
219
|
|
176
|
-
|
220
|
+
### Listen Options
|
177
221
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
// Mark message as read
|
185
|
-
api.markAsRead(event.threadID, err => {
|
186
|
-
if (err) console.error("Mark as read error:", err);
|
187
|
-
});
|
188
|
-
|
189
|
-
// Handle different event types
|
190
|
-
switch (event.type) {
|
191
|
-
case "message":
|
192
|
-
if (event.body && event.body.trim().toLowerCase() === "/stop") {
|
193
|
-
api.sendMessage("Goodbye…", event.threadID);
|
194
|
-
stopListening();
|
195
|
-
return;
|
196
|
-
}
|
197
|
-
api.sendMessage(`TEST BOT: ${event.body}`, event.threadID);
|
198
|
-
break;
|
199
|
-
|
200
|
-
case "event":
|
201
|
-
console.log("Event Received:", event);
|
202
|
-
break;
|
203
|
-
}
|
204
|
-
});
|
205
|
-
}
|
206
|
-
);
|
222
|
+
```javascript
|
223
|
+
api.setOptions({
|
224
|
+
listenEvents: true, // Receive events (join/leave, rename, etc.)
|
225
|
+
selfListen: true, // Receive messages from yourself
|
226
|
+
logLevel: "silent" // Disable logs (silent/error/warn/info/verbose)
|
227
|
+
});
|
207
228
|
```
|
208
229
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
- [
|
219
|
-
- [
|
220
|
-
- [
|
221
|
-
- [
|
222
|
-
- [
|
223
|
-
- [
|
224
|
-
- [
|
225
|
-
- [
|
226
|
-
- [
|
227
|
-
- [
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
-
|
235
|
-
-
|
236
|
-
-
|
237
|
-
-
|
238
|
-
-
|
230
|
+
**By default:**
|
231
|
+
- `listenEvents` is `false` - won't receive events like joining/leaving chat, title changes
|
232
|
+
- `selfListen` is `false` - will ignore messages sent by the current account
|
233
|
+
|
234
|
+
## 🛠️ Projects Using This API
|
235
|
+
|
236
|
+
- **[c3c](https://github.com/lequanglam/c3c)** - Customizable bot with plugins, supports Facebook & Discord
|
237
|
+
- **[Miraiv2](https://github.com/miraiPr0ject/miraiv2)** - Simple Facebook Messenger Bot
|
238
|
+
- **[Messer](https://github.com/mjkaufer/Messer)** - Command-line messaging for Facebook Messenger
|
239
|
+
- **[messen](https://github.com/tomquirk/messen)** - Rapidly build Facebook Messenger apps in Node.js
|
240
|
+
- **[Concierge](https://github.com/concierge/Concierge)** - Highly modular chat bot with built-in package manager
|
241
|
+
- **[Marc Zuckerbot](https://github.com/bsansouci/marc-zuckerbot)** - Facebook chat bot
|
242
|
+
- **[Botyo](https://github.com/ivkos/botyo)** - Modular bot for group chat rooms
|
243
|
+
- **[matrix-puppet-facebook](https://github.com/matrix-hacks/matrix-puppet-facebook)** - Facebook bridge for Matrix
|
244
|
+
- **[Miscord](https://github.com/Bjornskjald/miscord)** - Easy-to-use Facebook bridge for Discord
|
245
|
+
- **[chat-bridge](https://github.com/rexx0520/chat-bridge)** - Messenger, Telegram and IRC chat bridge
|
246
|
+
- **[Botium](https://github.com/codeforequity-at/botium-core)** - The Selenium for Chatbots
|
247
|
+
- **[Messenger-CLI](https://github.com/AstroCB/Messenger-CLI)** - Command-line interface for Facebook Messenger
|
248
|
+
- **[BotCore](https://github.com/AstroCB/BotCore)** - Tools for writing and managing Facebook Messenger bots
|
249
|
+
|
250
|
+
[See more projects...](https://github.com/Donix-VN/fca-unofficial#projects-using-this-api)
|
251
|
+
|
252
|
+
## 📚 Full API Documentation
|
253
|
+
|
254
|
+
See [DOCS.md](./DOCS.md) for detailed information about:
|
255
|
+
- All available API methods
|
256
|
+
- Parameters and options
|
257
|
+
- Event types
|
258
|
+
- Error handling
|
259
|
+
- Advanced usage examples
|
260
|
+
|
261
|
+
## 🎯 Quick Reference
|
262
|
+
|
263
|
+
### Common API Methods
|
264
|
+
|
265
|
+
```javascript
|
266
|
+
// Send message
|
267
|
+
api.sendMessage(message, threadID, callback);
|
268
|
+
|
269
|
+
// Send typing indicator
|
270
|
+
api.sendTypingIndicator(threadID, callback);
|
271
|
+
|
272
|
+
// Mark as read
|
273
|
+
api.markAsRead(threadID, callback);
|
274
|
+
|
275
|
+
// Get user info
|
276
|
+
api.getUserInfo(userID, callback);
|
277
|
+
|
278
|
+
// Get thread info
|
279
|
+
api.getThreadInfo(threadID, callback);
|
280
|
+
|
281
|
+
// Change thread color
|
282
|
+
api.changeThreadColor(color, threadID, callback);
|
283
|
+
|
284
|
+
// Change thread emoji
|
285
|
+
api.changeThreadEmoji(emoji, threadID, callback);
|
286
|
+
|
287
|
+
// Set message reaction
|
288
|
+
api.setMessageReaction(reaction, messageID, callback);
|
289
|
+
```
|
290
|
+
|
291
|
+
## 🤝 Contributing
|
292
|
+
|
293
|
+
Contributions are welcome! Please:
|
294
|
+
1. Fork the repository
|
295
|
+
2. Create a new branch (`git checkout -b feature/AmazingFeature`)
|
296
|
+
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
297
|
+
4. Push to the branch (`git push origin feature/AmazingFeature`)
|
298
|
+
5. Open a Pull Request
|
299
|
+
|
300
|
+
## 📄 License
|
301
|
+
|
302
|
+
MIT License - See [LICENSE](./LICENSE) for details.
|
303
|
+
|
304
|
+
## 👨💻 Author
|
305
|
+
|
306
|
+
**DongDev** - [Facebook](https://www.facebook.com/mdong.dev)
|
307
|
+
|
308
|
+
## ⭐ Support
|
309
|
+
|
310
|
+
If this project is helpful, please give it a ⭐ on GitHub!
|
311
|
+
|
312
|
+
## 🔗 Links
|
313
|
+
|
314
|
+
- [NPM Package](https://www.npmjs.com/package/@dongdev/fca-unofficial)
|
315
|
+
- [GitHub Repository](https://github.com/Donix-VN/fca-unofficial)
|
316
|
+
- [Issue Tracker](https://github.com/Donix-VN/fca-unofficial/issues)
|
317
|
+
|
318
|
+
---
|
319
|
+
|
320
|
+
**Disclaimer:** This is an unofficial API and is not officially supported by Facebook. Use responsibly and comply with [Facebook Terms of Service](https://www.facebook.com/terms.php).
|
package/package.json
CHANGED
@@ -1,14 +1,50 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dongdev/fca-unofficial",
|
3
|
-
"version": "2.0.
|
4
|
-
"description": "
|
3
|
+
"version": "2.0.11",
|
4
|
+
"description": "Unofficial Facebook Chat API for Node.js - Interact with Facebook Messenger programmatically",
|
5
5
|
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "mocha",
|
8
|
+
"lint": "eslint .",
|
9
|
+
"prepublishOnly": "npm test"
|
10
|
+
},
|
6
11
|
"repository": {
|
7
12
|
"type": "git",
|
8
13
|
"url": "git+https://github.com/Donix-VN/fca-unofficial.git"
|
9
14
|
},
|
10
|
-
"
|
15
|
+
"keywords": [
|
16
|
+
"facebook",
|
17
|
+
"chat",
|
18
|
+
"api",
|
19
|
+
"messenger",
|
20
|
+
"bot",
|
21
|
+
"unofficial",
|
22
|
+
"automation",
|
23
|
+
"facebook-api",
|
24
|
+
"facebook-chat",
|
25
|
+
"facebook-messenger",
|
26
|
+
"chatbot",
|
27
|
+
"nodejs",
|
28
|
+
"fca"
|
29
|
+
],
|
30
|
+
"author": {
|
31
|
+
"name": "DongDev",
|
32
|
+
"url": "https://www.facebook.com/mdong.dev"
|
33
|
+
},
|
34
|
+
"contributors": [
|
35
|
+
{
|
36
|
+
"name": "DongDev",
|
37
|
+
"url": "https://github.com/Donix-VN"
|
38
|
+
}
|
39
|
+
],
|
11
40
|
"license": "MIT",
|
41
|
+
"bugs": {
|
42
|
+
"url": "https://github.com/Donix-VN/fca-unofficial/issues"
|
43
|
+
},
|
44
|
+
"homepage": "https://github.com/Donix-VN/fca-unofficial#readme",
|
45
|
+
"engines": {
|
46
|
+
"node": ">=12.0.0"
|
47
|
+
},
|
12
48
|
"dependencies": {
|
13
49
|
"axios": "latest",
|
14
50
|
"axios-cookiejar-support": "^5.0.5",
|
@@ -27,31 +63,21 @@
|
|
27
63
|
"ws": "^8.18.1"
|
28
64
|
},
|
29
65
|
"devDependencies": {
|
30
|
-
"eslint": "^
|
31
|
-
"mocha": "^10.2.0"
|
32
|
-
"prettier": "^3.3.3"
|
33
|
-
},
|
34
|
-
"scripts": {
|
35
|
-
"test": "mocha",
|
36
|
-
"lint": "eslint . --ext .js,.cjs,.mjs,.ts,.tsx",
|
37
|
-
"prettier": "prettier \"**/*.{js,cjs,mjs,ts,tsx,json,md,css,scss,html,yml,yaml}\" --ignore-unknown --write"
|
66
|
+
"eslint": "^8.50.0",
|
67
|
+
"mocha": "^10.2.0"
|
38
68
|
},
|
39
|
-
"
|
40
|
-
|
41
|
-
|
42
|
-
"
|
43
|
-
"
|
44
|
-
"
|
69
|
+
"optionalDependencies": {},
|
70
|
+
"peerDependencies": {},
|
71
|
+
"files": [
|
72
|
+
"index.js",
|
73
|
+
"src/",
|
74
|
+
"utils/",
|
75
|
+
"README.md",
|
76
|
+
"LICENSE",
|
77
|
+
"DOCS.md"
|
45
78
|
],
|
46
|
-
"
|
47
|
-
"
|
48
|
-
|
49
|
-
"types": "index.d.ts",
|
50
|
-
"homepage": "https://github.com/Donix-VN/fca-unofficial#readme",
|
51
|
-
"bugs": {
|
52
|
-
"url": "https://github.com/Donix-VN/fca-unofficial/issues"
|
53
|
-
},
|
54
|
-
"directories": {
|
55
|
-
"test": "test"
|
79
|
+
"publishConfig": {
|
80
|
+
"access": "public",
|
81
|
+
"registry": "https://registry.npmjs.org/"
|
56
82
|
}
|
57
83
|
}
|
@@ -3,7 +3,7 @@ const mqtt = require("mqtt");
|
|
3
3
|
const WebSocket = require("ws");
|
4
4
|
const HttpsProxyAgent = require("https-proxy-agent");
|
5
5
|
const EventEmitter = require("events");
|
6
|
-
const logger = require("../../../func/logger");
|
6
|
+
const logger = require("../../../func/logger.js");
|
7
7
|
const { parseAndCheckLogin } = require("../../utils/client");
|
8
8
|
const { buildProxy, buildStream } = require("./detail/buildStream");
|
9
9
|
const { topics } = require("./detail/constants");
|
package/CHANGELOG.md
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
# Changelog
|
2
|
-
Too lazy to write changelog, sorry! (will write changelog in the next release, through.)
|
3
|
-
## v1.0.10 - 2025-04-24
|
4
|
-
- Hotfix / auto bump
|
5
|
-
|
6
|
-
## v1.0.11 - 2025-04-24
|
7
|
-
- Hotfix / auto bump
|
8
|
-
|
9
|
-
## v1.0.12 - 2025-04-28
|
10
|
-
- Hotfix / auto bump
|
11
|
-
|
12
|
-
## v1.0.13 - 2025-04-28
|
13
|
-
- Hotfix / auto bump
|
14
|
-
|
15
|
-
## v1.0.14 - 2025-04-28
|
16
|
-
- Hotfix / auto bump
|
17
|
-
|
18
|
-
## v1.0.15 - 2025-05-03
|
19
|
-
- Hotfix / auto bump
|
20
|
-
|
21
|
-
## v1.0.16 - 2025-05-07
|
22
|
-
- Hotfix / auto bump
|
23
|
-
|
24
|
-
## v1.0.17 - 2025-05-07
|
25
|
-
- Hotfix / auto bump
|
26
|
-
|
27
|
-
## v1.0.18 - 2025-05-22
|
28
|
-
- Hotfix / auto bump
|
29
|
-
|
30
|
-
## v1.0.19 - 2025-05-23
|
31
|
-
- Hotfix / auto bump
|
32
|
-
|
33
|
-
## v2.0.0 - 2025-10-05
|
34
|
-
- Hotfix / auto bump
|
35
|
-
|
36
|
-
## v2.0.1 - 2025-10-05
|
37
|
-
- Hotfix / auto bump
|
38
|
-
|
39
|
-
## v2.0.2 - 2025-10-05
|
40
|
-
- Hotfix / auto bump
|
41
|
-
|
42
|
-
## v2.0.3 - 2025-10-05
|
43
|
-
- Hotfix / auto bump
|
44
|
-
|
45
|
-
## v2.0.4 - 2025-10-05
|
46
|
-
- Hotfix / auto bump
|
47
|
-
|
48
|
-
## v2.0.5 - 2025-10-06
|
49
|
-
- Now you can turn on/off autoLogin in config file.
|
50
|
-
- Added autoUpdate feature.
|
51
|
-
## v2.0.6-beta - 2025-10-06
|
52
|
-
- Hotfix / auto bump
|
53
|
-
|
54
|
-
## v2.0.7 - 2025-10-06
|
55
|
-
- Hotfix / auto bump
|