fca-smart-shankar 16.0.0 → 18.0.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/.cache/replit/env/latest +47 -47
- package/.cache/replit/env/latest.json +1 -1
- package/.config/configstore/update-notifier-npm.json +1 -1
- package/Extra/ExtraAddons.js +27 -27
- package/Extra/ExtraFindUID.js +3 -3
- package/Extra/ExtraGetThread.js +47 -47
- package/Extra/ExtraUptimeRobot.js +3 -3
- package/Extra/Src/Change_Environment.js +4 -4
- package/Extra/Src/Premium.js +14 -14
- package/Func/AcceptAgreement.js +1 -1
- package/Func/ClearCache.js +8 -8
- package/LICENSE +21 -678
- package/Language/index.json +4 -10
- package/Main.js +28 -206
- package/README.md +1 -53
- package/broadcast.js +3 -3
- package/index.js +19 -19
- package/logger.js +9 -9
- package/package.json +13 -14
- package/src/listenMqtt.js +17 -37
- package/src/unsendMessage.js +20 -28
- package/test/Db2.js +4 -4
- package/utils.js +5 -44
- package/.upm/store.json +0 -1
- package/Extra/Balancer.js +0 -49
- package/src/unsendMqttMessage.js +0 -66
- /package/test/{Shankar_Database → Horizon_Database}/A_README.md +0 -0
- /package/test/{Shankar_Database → Horizon_Database}/Database.db +0 -0
package/package.json
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
{
|
2
2
|
"name": "fca-smart-shankar",
|
3
|
-
"version": "
|
4
|
-
"description": "Facebook-chat-api protect and deploy by
|
3
|
+
"version": "18.0.0",
|
4
|
+
"description": "Facebook-chat-api protect and deploy by Shankar Suman",
|
5
5
|
"main": "index.js",
|
6
6
|
"scripts": {
|
7
7
|
"test": "mocha"
|
8
8
|
},
|
9
|
-
"author": "
|
9
|
+
"author": "Avery, David, Maude, Benjamin, UIRI, KanzuWakazaki",
|
10
10
|
"license": "MIT",
|
11
11
|
"bugs": {
|
12
|
-
"url": "https://github.com/SHANKAR-PROJECT/
|
12
|
+
"url": "https://github.com/SHANKAR-PROJECT/issues"
|
13
13
|
},
|
14
|
-
"homepage": "https://github.com/SHANKAR-PROJECT
|
14
|
+
"homepage": "https://github.com/SHANKAR-PROJECT#readme",
|
15
15
|
"repository": {
|
16
16
|
"type": "git",
|
17
|
-
"url": "https://github.com/SHANKAR-PROJECT
|
17
|
+
"url": "https://github.com/SHANKAR-PROJECT"
|
18
18
|
},
|
19
19
|
"dependencies": {
|
20
20
|
"aes-js": "latest",
|
@@ -23,15 +23,13 @@
|
|
23
23
|
"better-sqlite3": "7.6.2",
|
24
24
|
"bluebird": "latest",
|
25
25
|
"chalk": "4.1.2",
|
26
|
-
"cheerio": "
|
26
|
+
"cheerio": "latest",
|
27
27
|
"crypto-js": "latest",
|
28
28
|
"deasync": "^0.1.28",
|
29
29
|
"duplexify": "^4.1.2",
|
30
30
|
"encode32": "latest",
|
31
31
|
"express": "latest",
|
32
|
-
"figlet": "latest",
|
33
32
|
"file-url": "^3.0.0",
|
34
|
-
"fs-extra": "^11.2.0",
|
35
33
|
"got": "^11.8.6",
|
36
34
|
"https-proxy-agent": "latest",
|
37
35
|
"is-hexcolor": "^1.0.0",
|
@@ -46,11 +44,12 @@
|
|
46
44
|
"readline": "latest",
|
47
45
|
"request": "latest",
|
48
46
|
"speakeasy": "latest",
|
49
|
-
"
|
50
|
-
"totp-generator": "^0.0.14",
|
47
|
+
"totp-generator": "latest",
|
51
48
|
"tough-cookie": "^4.1.2",
|
52
49
|
"uuid": "latest",
|
53
|
-
"ws": "^8.13.0"
|
50
|
+
"ws": "^8.13.0",
|
51
|
+
"sqlite3": "^5.0.2",
|
52
|
+
"figlet": "latest"
|
54
53
|
},
|
55
54
|
"engines": {
|
56
55
|
"node": ">=14.x"
|
@@ -87,9 +86,9 @@
|
|
87
86
|
}
|
88
87
|
},
|
89
88
|
"keywords": [
|
90
|
-
"Fca shankar",
|
91
|
-
"fca-smart-shankar",
|
92
89
|
"fca-shankar-bot",
|
90
|
+
"SHANKAR-PROJECT",
|
91
|
+
"fca-shankar",
|
93
92
|
"shankar"
|
94
93
|
]
|
95
94
|
}
|
package/src/listenMqtt.js
CHANGED
@@ -135,7 +135,7 @@ function listenMqtt(defaultFuncs, api, ctx, globalCallback) {
|
|
135
135
|
headers: {
|
136
136
|
Cookie: cookies,
|
137
137
|
Origin: 'https://www.facebook.com',
|
138
|
-
'User-Agent': ctx.globalOptions.userAgent,
|
138
|
+
'User-Agent': ctx.globalOptions.userAgent || 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36',
|
139
139
|
Referer: 'https://www.facebook.com/',
|
140
140
|
Host: new URL(host).hostname,
|
141
141
|
},
|
@@ -210,7 +210,7 @@ function listenMqtt(defaultFuncs, api, ctx, globalCallback) {
|
|
210
210
|
warningThreshold: 0.7,
|
211
211
|
releaseThreshold: 0.8,
|
212
212
|
maxThreshold: 0.9,
|
213
|
-
interval:
|
213
|
+
interval: 60 * 1000,
|
214
214
|
logLevel: 'warn',
|
215
215
|
logFile: path.join(process.cwd(), 'Horizon_Database' ,'memory.log'),
|
216
216
|
smartReleaseEnabled: true,
|
@@ -558,27 +558,22 @@ function parseDelta(defaultFuncs, api, ctx, globalCallback, {
|
|
558
558
|
messageID: delta.deltaMessageReply.repliedToMessage.messageMetadata.messageId,
|
559
559
|
senderID: delta.deltaMessageReply.repliedToMessage.messageMetadata.actorFbId.toString(),
|
560
560
|
attachments: delta.deltaMessageReply.repliedToMessage.attachments
|
561
|
-
|
562
|
-
|
563
|
-
try {
|
564
|
-
mercury = JSON.parse(att.mercuryJSON);
|
561
|
+
.map((att) => {
|
562
|
+
const mercury = JSON.parse(att.mercuryJSON);
|
565
563
|
Object.assign(att, mercury);
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
x
|
578
|
-
|
579
|
-
}
|
580
|
-
return x;
|
581
|
-
}),
|
564
|
+
return att;
|
565
|
+
})
|
566
|
+
.map((att) => {
|
567
|
+
let x;
|
568
|
+
try {
|
569
|
+
x = utils._formatAttachment(att);
|
570
|
+
} catch (ex) {
|
571
|
+
x = att;
|
572
|
+
x.error = ex;
|
573
|
+
x.type = 'unknown';
|
574
|
+
}
|
575
|
+
return x;
|
576
|
+
}),
|
582
577
|
args: (delta.deltaMessageReply.repliedToMessage.body || '').trim().split(/\s+/),
|
583
578
|
body: delta.deltaMessageReply.repliedToMessage.body || '',
|
584
579
|
isGroup: !!delta.deltaMessageReply.repliedToMessage.messageMetadata.threadKey.threadFbId,
|
@@ -848,23 +843,13 @@ function markDelivery(ctx, api, threadID, messageID) {
|
|
848
843
|
|
849
844
|
module.exports = function(defaultFuncs, api, ctx) {
|
850
845
|
var globalCallback = identity;
|
851
|
-
var okeoke;
|
852
846
|
getSeqID = function getSeqID() {
|
853
847
|
ctx.t_mqttCalled = false;
|
854
848
|
defaultFuncs
|
855
849
|
.post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
|
856
|
-
.then(res => {
|
857
|
-
okeoke = res;
|
858
|
-
return res;
|
859
|
-
})
|
860
850
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
861
851
|
.then((resData) => {
|
862
852
|
if (utils.getType(resData) != "Array") {
|
863
|
-
if (okeoke.request.uri && okeoke.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
|
864
|
-
if (okeoke.request.uri.href.includes('601051028565049')) {
|
865
|
-
return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
|
866
|
-
}
|
867
|
-
}
|
868
853
|
if (global.Fca.Require.FastConfig.AutoLogin) {
|
869
854
|
return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
|
870
855
|
return global.Fca.Action('AutoLogin');
|
@@ -890,11 +875,6 @@ module.exports = function(defaultFuncs, api, ctx) {
|
|
890
875
|
})
|
891
876
|
.catch((err) => {
|
892
877
|
log.error("getSeqId", err);
|
893
|
-
if (okeoke.request.uri && okeoke.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
|
894
|
-
if (okeoke.request.uri.href.includes('601051028565049')) {
|
895
|
-
return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
|
896
|
-
}
|
897
|
-
}
|
898
878
|
if (utils.getType(err) == "Object" && err.error === global.Fca.Require.Language.Index.ErrAppState) ctx.loggedIn = false;
|
899
879
|
return globalCallback(err);
|
900
880
|
});
|
package/src/unsendMessage.js
CHANGED
@@ -1,20 +1,17 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
const Balancer = require('../Extra/Balancer.js');
|
4
3
|
var utils = require("../utils");
|
5
4
|
var log = require("npmlog");
|
6
5
|
|
7
6
|
module.exports = function (defaultFuncs, api, ctx) {
|
8
|
-
|
9
|
-
|
10
|
-
function unsendMessage(messageID, threadID, callback) {
|
7
|
+
return function unsendMessage(messageID, callback) {
|
11
8
|
var resolveFunc = function () { };
|
12
9
|
var rejectFunc = function () { };
|
13
10
|
var returnPromise = new Promise(function (resolve, reject) {
|
14
11
|
resolveFunc = resolve;
|
15
12
|
rejectFunc = reject;
|
16
13
|
});
|
17
|
-
|
14
|
+
|
18
15
|
if (!callback) {
|
19
16
|
callback = function (err, friendList) {
|
20
17
|
if (err) return rejectFunc(err);
|
@@ -22,27 +19,22 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
22
19
|
};
|
23
20
|
}
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
defaultFuncs
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
return callback(err);
|
41
|
-
});
|
42
|
-
|
43
|
-
return returnPromise;
|
44
|
-
}
|
45
|
-
}
|
22
|
+
var form = {
|
23
|
+
message_id: messageID
|
24
|
+
};
|
25
|
+
|
26
|
+
defaultFuncs
|
27
|
+
.post("https://www.facebook.com/messaging/unsend_message/", ctx.jar, form)
|
28
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
29
|
+
.then(function (resData) {
|
30
|
+
if (resData.error) throw resData;
|
31
|
+
return callback();
|
32
|
+
})
|
33
|
+
.catch(function (err) {
|
34
|
+
log.error("unsendMessage", err);
|
35
|
+
return callback(err);
|
36
|
+
});
|
46
37
|
|
47
|
-
|
48
|
-
};
|
38
|
+
return returnPromise;
|
39
|
+
};
|
40
|
+
};
|
package/test/Db2.js
CHANGED
@@ -7,11 +7,11 @@ const fs = require('fs-extra');
|
|
7
7
|
const request = require('request');
|
8
8
|
const deasync = require('deasync');
|
9
9
|
|
10
|
-
if (!fs.existsSync(process.cwd() + '/
|
11
|
-
fs.mkdirSync(process.cwd() + '/
|
12
|
-
fs.writeFileSync(process.cwd() + '/
|
10
|
+
if (!fs.existsSync(process.cwd() + '/Horizon_Database')) {
|
11
|
+
fs.mkdirSync(process.cwd() + '/Horizon_Database');
|
12
|
+
fs.writeFileSync(process.cwd() + '/Horizon_Database/A_README.md', 'This folder is used by ChernobyL(NANI =)) ) to store data. Do not delete this folder or any of the files in it.', 'utf8');
|
13
13
|
}
|
14
|
-
var Database = new sqlite3.Database(process.cwd() + "/
|
14
|
+
var Database = new sqlite3.Database(process.cwd() + "/Horizon_Database/SyntheticDatabase.sqlite");
|
15
15
|
|
16
16
|
Database.serialize(function() {
|
17
17
|
Database.run("CREATE TABLE IF NOT EXISTS json (ID TEXT, json TEXT)");
|
package/utils.js
CHANGED
@@ -2405,41 +2405,13 @@ function formatRead(event) {
|
|
2405
2405
|
function getFrom(str, startToken, endToken) {
|
2406
2406
|
var start = str.indexOf(startToken) + startToken.length;
|
2407
2407
|
if (start < startToken.length) return "";
|
2408
|
+
|
2408
2409
|
var lastHalf = str.substring(start);
|
2409
2410
|
var end = lastHalf.indexOf(endToken);
|
2410
|
-
if (end === -1) throw Error("Could not find endTime " + endToken + " in the given string.");
|
2411
|
+
if (end === -1) throw Error("Could not find endTime `" + endToken + "` in the given string.");
|
2411
2412
|
return lastHalf.substring(0, end);
|
2412
2413
|
}
|
2413
2414
|
|
2414
|
-
|
2415
|
-
function getFroms(str, startToken, endToken) {
|
2416
|
-
//advanced search by kanzuuuuuuuuuu
|
2417
|
-
let results = [];
|
2418
|
-
let currentIndex = 0;
|
2419
|
-
|
2420
|
-
while (true) {
|
2421
|
-
let start = str.indexOf(startToken, currentIndex);
|
2422
|
-
if (start === -1) break;
|
2423
|
-
|
2424
|
-
start += startToken.length;
|
2425
|
-
|
2426
|
-
let lastHalf = str.substring(start);
|
2427
|
-
let end = lastHalf.indexOf(endToken);
|
2428
|
-
|
2429
|
-
if (end === -1) {
|
2430
|
-
if (results.length === 0) {
|
2431
|
-
throw Error("Could not find endToken `" + endToken + "` in the given string.");
|
2432
|
-
}
|
2433
|
-
break;
|
2434
|
-
}
|
2435
|
-
|
2436
|
-
results.push(lastHalf.substring(0, end));
|
2437
|
-
currentIndex = start + end + endToken.length;
|
2438
|
-
}
|
2439
|
-
|
2440
|
-
return results.length === 0 ? "" : results.length === 1 ? results[0] : results;
|
2441
|
-
}
|
2442
|
-
|
2443
2415
|
/**
|
2444
2416
|
* @param {string} html
|
2445
2417
|
*/
|
@@ -2692,12 +2664,7 @@ function parseAndCheckLogin(ctx, defaultFuncs, retryCount) {
|
|
2692
2664
|
const Check = () => new Promise((re) => {
|
2693
2665
|
defaultFuncs.get('https://facebook.com', ctx.jar).then(function(res) {
|
2694
2666
|
if (res.headers.location && res.headers.location.includes('https://www.facebook.com/checkpoint/')) {
|
2695
|
-
if (res.headers.
|
2696
|
-
else if (res.request.uri && res.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
|
2697
|
-
if (res.request.uri.href.includes('601051028565049')) {
|
2698
|
-
return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
|
2699
|
-
}
|
2700
|
-
}
|
2667
|
+
if (res.headers.includes('828281030927956')) return global.Fca.Action('Bypass', ctx, "956", defaultFuncs)
|
2701
2668
|
else return global.Fca.Require.logger.Error(global.Fca.Require.Language.Index.ErrAppState);
|
2702
2669
|
}
|
2703
2670
|
else return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
|
@@ -2708,11 +2675,6 @@ function parseAndCheckLogin(ctx, defaultFuncs, retryCount) {
|
|
2708
2675
|
await Check();
|
2709
2676
|
});
|
2710
2677
|
}
|
2711
|
-
if (res.request.uri && res.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
|
2712
|
-
if (res.request.uri.href.includes('601051028565049')) {
|
2713
|
-
return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
|
2714
|
-
}
|
2715
|
-
}
|
2716
2678
|
if (global.Fca.Require.FastConfig.AutoLogin) {
|
2717
2679
|
return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
|
2718
2680
|
return global.Fca.Action('AutoLogin');
|
@@ -2997,7 +2959,7 @@ function getPaths(obj, parentPath = []) {
|
|
2997
2959
|
}
|
2998
2960
|
return paths;
|
2999
2961
|
}
|
3000
|
-
|
2962
|
+
|
3001
2963
|
function cleanHTML (text) {
|
3002
2964
|
text = text.replace(/(<br>)|(<\/?i>)|(<\/?em>)|(<\/?b>)|(!?~)|(&)|(')|(<)|(>)|(")/g, (match) => {
|
3003
2965
|
switch (match) {
|
@@ -3072,6 +3034,5 @@ module.exports = {
|
|
3072
3034
|
decodeClientPayload,
|
3073
3035
|
getAppState,
|
3074
3036
|
getAdminTextMessageType,
|
3075
|
-
setProxy
|
3076
|
-
getFroms
|
3037
|
+
setProxy
|
3077
3038
|
};
|
package/.upm/store.json
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":2,"languages":{"nodejs-npm":{"specfileHash":"3039add15c652fa50acf2c7c3de87738","lockfileHash":"4b5ed40f46aafc488b8e83e33ea2c216"}}}
|
package/Extra/Balancer.js
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
class APILoadBalancer {
|
2
|
-
constructor(Api1,Api2 ,preferredRatio = 0.85, forceType2) {
|
3
|
-
this.Api1 = Api1;
|
4
|
-
this.Api2 = Api2;
|
5
|
-
this.preferredRatio = preferredRatio;
|
6
|
-
this.totalRequests = 0;
|
7
|
-
this.api2Requests = 0;
|
8
|
-
}
|
9
|
-
|
10
|
-
async makeRequest(requestData) {
|
11
|
-
try {
|
12
|
-
this.totalRequests++;
|
13
|
-
const currentRatio = this.api2Requests / this.totalRequests;
|
14
|
-
|
15
|
-
if (currentRatio < this.preferredRatio) {
|
16
|
-
this.api2Requests++;
|
17
|
-
return await this.Api2(...requestData)
|
18
|
-
} else {
|
19
|
-
return await this.Api1(...requestData);
|
20
|
-
}
|
21
|
-
} catch (error) {
|
22
|
-
return await this.fallbackRequest(requestData);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
async fallbackRequest(requestData) {
|
27
|
-
try {
|
28
|
-
if (this.api2Requests / this.totalRequests >= this.preferredRatio) {
|
29
|
-
this.api2Requests++;
|
30
|
-
return await this.Api2(...requestData);
|
31
|
-
} else {
|
32
|
-
return await this.Api1(...requestData);
|
33
|
-
}
|
34
|
-
} catch (error) {
|
35
|
-
throw new Error('Balancer Error, contact fb.com/Shankar.Suman');
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|
39
|
-
getStats() {
|
40
|
-
return {
|
41
|
-
totalRequests: this.totalRequests,
|
42
|
-
api2Requests: this.api2Requests,
|
43
|
-
api1Requests: this.totalRequests - this.api2Requests,
|
44
|
-
currentRatio: (this.api2Requests / this.totalRequests) * 100
|
45
|
-
};
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
module.exports = APILoadBalancer;
|
package/src/unsendMqttMessage.js
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
/* eslint-disable linebreak-style */
|
2
|
-
"use strict";
|
3
|
-
|
4
|
-
var utils = require("../utils");
|
5
|
-
|
6
|
-
module.exports = function (defaultFuncs, api, ctx) {
|
7
|
-
return function(threadID, messageID ,callback) {
|
8
|
-
var resolveFunc = function () { };
|
9
|
-
var rejectFunc = function () { };
|
10
|
-
|
11
|
-
var returnPromise = new Promise(function (resolve, reject) {
|
12
|
-
resolveFunc = resolve;
|
13
|
-
rejectFunc = reject;
|
14
|
-
});
|
15
|
-
|
16
|
-
if (!callback && utils.getType(messageID) === "AsyncFunction" || !callback && utils.getType(messageID) === "Function") messageID = callback;
|
17
|
-
|
18
|
-
if (!callback) {
|
19
|
-
callback = function (err, data) {
|
20
|
-
if (err) return rejectFunc(err);
|
21
|
-
resolveFunc(data);
|
22
|
-
};
|
23
|
-
}
|
24
|
-
|
25
|
-
const Payload = {
|
26
|
-
message_id:messageID,
|
27
|
-
thread_key:threadID,
|
28
|
-
sync_group: 1
|
29
|
-
};
|
30
|
-
|
31
|
-
if (messageID != undefined || messageID != null) Payload.reply_metadata = {
|
32
|
-
reply_source_id: messageID,
|
33
|
-
reply_source_type: 1,
|
34
|
-
reply_type: 0
|
35
|
-
};
|
36
|
-
|
37
|
-
const Form = JSON.stringify({
|
38
|
-
app_id: "2220391788200892",
|
39
|
-
payload: JSON.stringify({
|
40
|
-
tasks: [{
|
41
|
-
label: 33,
|
42
|
-
payload: JSON.stringify(Payload),
|
43
|
-
queue_name: "unsend_message",
|
44
|
-
task_id: Math.random() * 1001 << 0,
|
45
|
-
failure_count: null,
|
46
|
-
}],
|
47
|
-
epoch_id: utils.generateOfflineThreadingID(),
|
48
|
-
version_id: '9094446350588544',
|
49
|
-
|
50
|
-
}),
|
51
|
-
request_id: ++ctx.req_ID,
|
52
|
-
type: 3
|
53
|
-
});
|
54
|
-
|
55
|
-
ctx.mqttClient.publish('/ls_req', Form,{
|
56
|
-
qos: 1,
|
57
|
-
retain: false,
|
58
|
-
});
|
59
|
-
ctx.callback_Task[ctx.req_ID] = new Object({
|
60
|
-
callback,
|
61
|
-
type: "unsendMqttMessage",
|
62
|
-
});
|
63
|
-
|
64
|
-
return returnPromise;
|
65
|
-
};
|
66
|
-
};
|
File without changes
|
File without changes
|