homebridge-adt-pulse 3.0.0-beta.12 → 3.0.0-beta.13

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.
@@ -1,43 +1,63 @@
1
1
  import axios from 'axios';
2
- import _ from 'lodash';
3
2
  import { serializeError } from 'serialize-error';
3
+ import { doSubmitHandlerRelativeUrlItems, doSubmitHandlerUrlParamsArmItems, doSubmitHandlerUrlParamsArmStateItems, doSubmitHandlerUrlParamsHrefItems, gatewayInformationStatusItems, orbSecurityButtonButtonTextItems, orbSecurityButtonLoadingTextItems, orbSecurityButtonRelativeUrlItems, orbSecurityButtonUrlParamsArmItems, orbSecurityButtonUrlParamsArmStateItems, orbSecurityButtonUrlParamsHrefItems, panelInformationStatusItems, portalVersionItems, sensorInformationDeviceTypeItems, sensorInformationStatusItems, sensorStatusIconItems, sensorStatusStatusItems, } from './items.js';
4
4
  import { debugLog, isPluginOutdated, removePersonalIdentifiableInformation, stackTracer, } from './utility.js';
5
+ export async function detectedNewDeviceContext(context, logger, debugMode) {
6
+ const cleanedData = removePersonalIdentifiableInformation(context);
7
+ try {
8
+ const outdated = await isPluginOutdated();
9
+ if (outdated) {
10
+ if (logger !== null) {
11
+ logger.warn('Plugin has detected new device context. You are running an older plugin version, please update soon.');
12
+ }
13
+ if (debugMode) {
14
+ debugLog(logger, 'detect.ts / detectedNewDeviceContext()', 'warn', 'Plugin has detected new device context. You are running an older plugin version, please update soon');
15
+ }
16
+ return false;
17
+ }
18
+ }
19
+ catch (error) {
20
+ if (debugMode === true) {
21
+ debugLog(logger, 'detect.ts / detectedNewDeviceContext()', 'error', 'Failed to check if plugin is outdated');
22
+ stackTracer('serialize-error', serializeError(error));
23
+ }
24
+ return false;
25
+ }
26
+ if (logger !== null) {
27
+ logger.warn('Plugin has detected new device context. Notifying plugin author about this discovery ...');
28
+ }
29
+ if (debugMode) {
30
+ debugLog(logger, 'detect.ts / detectedNewDeviceContext()', 'warn', 'Plugin has detected new device context. Notifying plugin author about this discovery');
31
+ }
32
+ stackTracer('detect-content', cleanedData);
33
+ try {
34
+ await axios.post('https://fs65kt4c5xf8.ntfy.mrjackyliang.com', [
35
+ 'Please update the plugin as soon as possible.',
36
+ JSON.stringify(cleanedData, null, 2),
37
+ ].join('\n\n'), {
38
+ family: 4,
39
+ headers: {
40
+ 'User-Agent': 'homebridge-adt-pulse',
41
+ 'X-Title': 'Detected new device context',
42
+ },
43
+ });
44
+ return true;
45
+ }
46
+ catch (error) {
47
+ if (debugMode === true) {
48
+ debugLog(logger, 'detect.ts / detectedNewDeviceContext()', 'error', 'Failed to notify plugin author about the new device context');
49
+ stackTracer('serialize-error', serializeError(error));
50
+ }
51
+ return false;
52
+ }
53
+ }
5
54
  export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
6
- const knownRelativeUrls = [
7
- '16.0.0-131',
8
- '17.0.0-69',
9
- '18.0.0-78',
10
- '19.0.0-89',
11
- '20.0.0-221',
12
- '20.0.0-244',
13
- '21.0.0-344',
14
- '21.0.0-353',
15
- '21.0.0-354',
16
- '22.0.0-233',
17
- '23.0.0-99',
18
- '24.0.0-117',
19
- '25.0.0-21',
20
- '26.0.0-32',
21
- '27.0.0-140',
22
- ].map((version) => `/myhome/${version}/quickcontrol/serv/RunRRACommand`);
23
- const knownUrlParamsArm = [
24
- 'away',
25
- 'night',
26
- 'stay',
27
- ];
28
- const knownUrlParamsArmState = [
29
- 'forcearm',
30
- ];
31
- const knownUrlParamsHref = [
32
- 'rest/adt/ui/client/security/setForceArm',
33
- 'rest/adt/ui/client/security/setCancelProtest',
34
- ];
35
- const detectedNewHandlers = handlers.filter((handler) => (!knownRelativeUrls.includes(handler.relativeUrl)
55
+ const detectedNewHandlers = handlers.filter((handler) => (!doSubmitHandlerRelativeUrlItems.includes(handler.relativeUrl)
36
56
  || (handler.urlParams.arm !== null
37
- && !knownUrlParamsArm.includes(handler.urlParams.arm))
57
+ && !doSubmitHandlerUrlParamsArmItems.includes(handler.urlParams.arm))
38
58
  || (handler.urlParams.armState !== null
39
- && !knownUrlParamsArmState.includes(handler.urlParams.armState))
40
- || !knownUrlParamsHref.includes(handler.urlParams.href)));
59
+ && !doSubmitHandlerUrlParamsArmStateItems.includes(handler.urlParams.armState))
60
+ || !doSubmitHandlerUrlParamsHrefItems.includes(handler.urlParams.href)));
41
61
  if (detectedNewHandlers.length > 0) {
42
62
  const cleanedData = removePersonalIdentifiableInformation(detectedNewHandlers);
43
63
  try {
@@ -57,6 +77,7 @@ export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
57
77
  debugLog(logger, 'detect.ts / detectedNewDoSubmitHandlers()', 'error', 'Failed to check if plugin is outdated');
58
78
  stackTracer('serialize-error', serializeError(error));
59
79
  }
80
+ return false;
60
81
  }
61
82
  if (logger !== null) {
62
83
  logger.warn('Plugin has detected new do submit handlers. Notifying plugin author about this discovery ...');
@@ -76,24 +97,20 @@ export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
76
97
  'X-Title': 'Detected new do submit handlers',
77
98
  },
78
99
  });
100
+ return true;
79
101
  }
80
102
  catch (error) {
81
103
  if (debugMode === true) {
82
104
  debugLog(logger, 'detect.ts / detectedNewDoSubmitHandlers()', 'error', 'Failed to notify plugin author about the new do submit handlers');
83
105
  stackTracer('serialize-error', serializeError(error));
84
106
  }
107
+ return false;
85
108
  }
86
- return true;
87
109
  }
88
110
  return false;
89
111
  }
90
112
  export async function detectedNewGatewayInformation(device, logger, debugMode) {
91
- const knownStatuses = [
92
- 'Offline',
93
- 'Online',
94
- 'Status Unknown',
95
- ];
96
- const detectedNewStatus = (device.status !== null && !knownStatuses.includes(device.status));
113
+ const detectedNewStatus = (device.status !== null && !gatewayInformationStatusItems.includes(device.status));
97
114
  if (detectedNewStatus) {
98
115
  const cleanedData = removePersonalIdentifiableInformation(device);
99
116
  try {
@@ -113,6 +130,7 @@ export async function detectedNewGatewayInformation(device, logger, debugMode) {
113
130
  debugLog(logger, 'detect.ts / detectedNewGatewayInformation()', 'error', 'Failed to check if plugin is outdated');
114
131
  stackTracer('serialize-error', serializeError(error));
115
132
  }
133
+ return false;
116
134
  }
117
135
  if (logger !== null) {
118
136
  logger.warn('Plugin has detected new gateway information. Notifying plugin author about this discovery ...');
@@ -132,64 +150,30 @@ export async function detectedNewGatewayInformation(device, logger, debugMode) {
132
150
  'X-Title': 'Detected new gateway information',
133
151
  },
134
152
  });
153
+ return true;
135
154
  }
136
155
  catch (error) {
137
156
  if (debugMode === true) {
138
157
  debugLog(logger, 'detect.ts / detectedNewGatewayInformation()', 'error', 'Failed to notify plugin author about the new gateway information');
139
158
  stackTracer('serialize-error', serializeError(error));
140
159
  }
160
+ return false;
141
161
  }
142
- return true;
143
162
  }
144
163
  return false;
145
164
  }
146
165
  export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode) {
147
- const knownButtonText = [
148
- 'Arm Away',
149
- 'Arm Night',
150
- 'Arm Stay',
151
- 'Clear Alarm',
152
- 'Disarm',
153
- ];
154
- const knownLoadingText = [
155
- 'Arming Away',
156
- 'Arming Night',
157
- 'Arming Stay',
158
- 'Disarming',
159
- ];
160
- const knownRelativeUrl = [
161
- 'quickcontrol/armDisarm.jsp',
162
- ];
163
- const knownUrlParamsArm = [
164
- 'away',
165
- 'night',
166
- 'off',
167
- 'stay',
168
- ];
169
- const knownUrlParamsArmState = [
170
- 'away',
171
- 'disarmed',
172
- 'disarmed_with_alarm',
173
- 'disarmed+with+alarm',
174
- 'night',
175
- 'night+stay',
176
- 'off',
177
- 'stay',
178
- ];
179
- const knownUrlParamsHref = [
180
- 'rest/adt/ui/client/security/setArmState',
181
- ];
182
166
  const detectedNewButtons = buttons.filter((button) => ((!button.buttonDisabled
183
167
  && ((button.buttonText !== null
184
- && !knownButtonText.includes(button.buttonText))
185
- || !knownLoadingText.includes(button.loadingText)
186
- || !knownRelativeUrl.includes(button.relativeUrl)
187
- || !knownUrlParamsArm.includes(button.urlParams.arm)
188
- || !knownUrlParamsArmState.includes(button.urlParams.armState)
189
- || !knownUrlParamsHref.includes(button.urlParams.href)))
168
+ && !orbSecurityButtonButtonTextItems.includes(button.buttonText))
169
+ || !orbSecurityButtonLoadingTextItems.includes(button.loadingText)
170
+ || !orbSecurityButtonRelativeUrlItems.includes(button.relativeUrl)
171
+ || !orbSecurityButtonUrlParamsArmItems.includes(button.urlParams.arm)
172
+ || !orbSecurityButtonUrlParamsArmStateItems.includes(button.urlParams.armState)
173
+ || !orbSecurityButtonUrlParamsHrefItems.includes(button.urlParams.href)))
190
174
  || (button.buttonDisabled
191
175
  && (button.buttonText !== null
192
- && !knownLoadingText.includes(button.buttonText)))));
176
+ && !orbSecurityButtonLoadingTextItems.includes(button.buttonText)))));
193
177
  if (detectedNewButtons.length > 0) {
194
178
  const cleanedData = removePersonalIdentifiableInformation(detectedNewButtons);
195
179
  try {
@@ -209,6 +193,7 @@ export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode)
209
193
  debugLog(logger, 'detect.ts / detectedNewOrbSecurityButtons()', 'error', 'Failed to check if plugin is outdated');
210
194
  stackTracer('serialize-error', serializeError(error));
211
195
  }
196
+ return false;
212
197
  }
213
198
  if (logger !== null) {
214
199
  logger.warn('Plugin has detected new orb security buttons. Notifying plugin author about this discovery ...');
@@ -228,23 +213,20 @@ export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode)
228
213
  'X-Title': 'Detected new orb security buttons',
229
214
  },
230
215
  });
216
+ return true;
231
217
  }
232
218
  catch (error) {
233
219
  if (debugMode === true) {
234
220
  debugLog(logger, 'detect.ts / detectedNewOrbSecurityButtons()', 'error', 'Failed to notify plugin author about the new orb security buttons');
235
221
  stackTracer('serialize-error', serializeError(error));
236
222
  }
223
+ return false;
237
224
  }
238
- return true;
239
225
  }
240
226
  return false;
241
227
  }
242
228
  export async function detectedNewPanelInformation(device, logger, debugMode) {
243
- const knownStatuses = [
244
- 'Online',
245
- 'Status Unknown',
246
- ];
247
- const detectedNewStatus = (device.status !== null && !knownStatuses.includes(device.status));
229
+ const detectedNewStatus = (device.status !== null && !panelInformationStatusItems.includes(device.status));
248
230
  if (detectedNewStatus) {
249
231
  const cleanedData = removePersonalIdentifiableInformation(device);
250
232
  try {
@@ -264,6 +246,7 @@ export async function detectedNewPanelInformation(device, logger, debugMode) {
264
246
  debugLog(logger, 'detect.ts / detectedNewPanelInformation()', 'error', 'Failed to check if plugin is outdated');
265
247
  stackTracer('serialize-error', serializeError(error));
266
248
  }
249
+ return false;
267
250
  }
268
251
  if (logger !== null) {
269
252
  logger.warn('Plugin has detected new panel information. Notifying plugin author about this discovery ...');
@@ -283,44 +266,21 @@ export async function detectedNewPanelInformation(device, logger, debugMode) {
283
266
  'X-Title': 'Detected new panel information',
284
267
  },
285
268
  });
269
+ return true;
286
270
  }
287
271
  catch (error) {
288
272
  if (debugMode === true) {
289
273
  debugLog(logger, 'detect.ts / detectedNewPanelInformation()', 'error', 'Failed to notify plugin author about the new panel information');
290
274
  stackTracer('serialize-error', serializeError(error));
291
275
  }
276
+ return false;
292
277
  }
293
- return true;
294
278
  }
295
279
  return false;
296
280
  }
297
281
  export async function detectedNewPanelStatus(summary, logger, debugMode) {
298
- const knownStates = [
299
- 'Armed Away',
300
- 'Armed Night',
301
- 'Armed Stay',
302
- 'Disarmed',
303
- 'Status Unavailable',
304
- ];
305
- const knownStatuses = [
306
- '1 Sensor Open',
307
- ..._.range(256).map((_value, index) => `${index + 1} Sensors Open`),
308
- 'All Quiet',
309
- 'BURGLARY ALARM',
310
- 'Carbon Monoxide Alarm',
311
- 'FIRE ALARM',
312
- 'Motion',
313
- 'Sensor Bypassed',
314
- 'Sensor Problem',
315
- 'Sensors Bypassed',
316
- 'Sensors Tripped',
317
- 'Sensor Tripped',
318
- 'Uncleared Alarm',
319
- 'WATER ALARM',
320
- ];
321
- const detectedNewState = (summary.state !== null && !knownStates.includes(summary.state));
322
- const detectedNewStatus = (summary.status !== null && !knownStatuses.includes(summary.status));
323
- if (detectedNewState || detectedNewStatus) {
282
+ const detectedUnknownPieces = summary.rawData.unknownPieces.length > 0;
283
+ if (detectedUnknownPieces) {
324
284
  const cleanedData = removePersonalIdentifiableInformation(summary);
325
285
  try {
326
286
  const outdated = await isPluginOutdated();
@@ -339,6 +299,7 @@ export async function detectedNewPanelStatus(summary, logger, debugMode) {
339
299
  debugLog(logger, 'detect.ts / detectedNewPanelStatus()', 'error', 'Failed to check if plugin is outdated');
340
300
  stackTracer('serialize-error', serializeError(error));
341
301
  }
302
+ return false;
342
303
  }
343
304
  if (logger !== null) {
344
305
  logger.warn('Plugin has detected a new panel state and/or status. Notifying plugin author about this discovery ...');
@@ -358,36 +319,20 @@ export async function detectedNewPanelStatus(summary, logger, debugMode) {
358
319
  'X-Title': 'Detected a new panel state and/or status',
359
320
  },
360
321
  });
322
+ return true;
361
323
  }
362
324
  catch (error) {
363
325
  if (debugMode === true) {
364
326
  debugLog(logger, 'detect.ts / detectedNewPanelStatus()', 'error', 'Failed to notify plugin author about the new panel state and/or status');
365
327
  stackTracer('serialize-error', serializeError(error));
366
328
  }
329
+ return false;
367
330
  }
368
- return true;
369
331
  }
370
332
  return false;
371
333
  }
372
334
  export async function detectedNewPortalVersion(version, logger, debugMode) {
373
- const knownVersions = [
374
- '16.0.0-131',
375
- '17.0.0-69',
376
- '18.0.0-78',
377
- '19.0.0-89',
378
- '20.0.0-221',
379
- '20.0.0-244',
380
- '21.0.0-344',
381
- '21.0.0-353',
382
- '21.0.0-354',
383
- '22.0.0-233',
384
- '23.0.0-99',
385
- '24.0.0-117',
386
- '25.0.0-21',
387
- '26.0.0-32',
388
- '27.0.0-140',
389
- ];
390
- const detectedNewVersion = (version.version !== null && !knownVersions.includes(version.version));
335
+ const detectedNewVersion = (version.version !== null && !portalVersionItems.includes(version.version));
391
336
  if (detectedNewVersion) {
392
337
  const cleanedData = removePersonalIdentifiableInformation(version);
393
338
  try {
@@ -407,6 +352,7 @@ export async function detectedNewPortalVersion(version, logger, debugMode) {
407
352
  debugLog(logger, 'detect.ts / detectedNewPortalVersion()', 'error', 'Failed to check if plugin is outdated');
408
353
  stackTracer('serialize-error', serializeError(error));
409
354
  }
355
+ return false;
410
356
  }
411
357
  if (logger !== null) {
412
358
  logger.warn('Plugin has detected a new portal version. Notifying plugin author about this discovery ...');
@@ -426,42 +372,21 @@ export async function detectedNewPortalVersion(version, logger, debugMode) {
426
372
  'X-Title': 'Detected a new portal version',
427
373
  },
428
374
  });
375
+ return true;
429
376
  }
430
377
  catch (error) {
431
378
  if (debugMode === true) {
432
379
  debugLog(logger, 'detect.ts / detectedNewPortalVersion()', 'error', 'Failed to notify plugin author about the new portal version');
433
380
  stackTracer('serialize-error', serializeError(error));
434
381
  }
382
+ return false;
435
383
  }
436
- return true;
437
384
  }
438
385
  return false;
439
386
  }
440
387
  export async function detectedNewSensorsInformation(sensors, logger, debugMode) {
441
- const knownDeviceTypes = [
442
- 'Audible Panic Button/Pendant',
443
- 'Carbon Monoxide Detector',
444
- 'Door/Window Sensor',
445
- 'Door Sensor',
446
- 'Fire (Smoke/Heat) Detector',
447
- 'Glass Break Detector',
448
- 'Keypad/Touchpad',
449
- 'Motion Sensor',
450
- 'Motion Sensor (Notable Events Only)',
451
- 'Shock Sensor',
452
- 'Silent Panic Button/Pendant',
453
- 'System/Supervisory',
454
- 'Temperature Sensor',
455
- 'Unknown Device Type',
456
- 'Water/Flood Sensor',
457
- 'Window Sensor',
458
- ];
459
- const knownStatuses = [
460
- 'Online',
461
- 'Status Unknown',
462
- ];
463
- const detectedNewInformation = sensors.filter((sensor) => (!knownDeviceTypes.includes(sensor.deviceType)
464
- || !knownStatuses.includes(sensor.status)));
388
+ const detectedNewInformation = sensors.filter((sensor) => (!sensorInformationDeviceTypeItems.includes(sensor.deviceType)
389
+ || !sensorInformationStatusItems.includes(sensor.status)));
465
390
  if (detectedNewInformation.length > 0) {
466
391
  const cleanedData = removePersonalIdentifiableInformation(detectedNewInformation);
467
392
  try {
@@ -481,6 +406,7 @@ export async function detectedNewSensorsInformation(sensors, logger, debugMode)
481
406
  debugLog(logger, 'detect.ts / detectedNewSensorsInformation()', 'error', 'Failed to check if plugin is outdated');
482
407
  stackTracer('serialize-error', serializeError(error));
483
408
  }
409
+ return false;
484
410
  }
485
411
  if (logger !== null) {
486
412
  logger.warn('Plugin has detected new sensors information. Notifying plugin author about this discovery ...');
@@ -500,48 +426,20 @@ export async function detectedNewSensorsInformation(sensors, logger, debugMode)
500
426
  'X-Title': 'Detected new sensors information',
501
427
  },
502
428
  });
429
+ return true;
503
430
  }
504
431
  catch (error) {
505
432
  if (debugMode === true) {
506
433
  debugLog(logger, 'detect.ts / detectedNewSensorsInformation()', 'error', 'Failed to notify plugin author about the new sensors information');
507
434
  stackTracer('serialize-error', serializeError(error));
508
435
  }
436
+ return false;
509
437
  }
510
- return true;
511
438
  }
512
439
  return false;
513
440
  }
514
441
  export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
515
- const knownIcons = [
516
- 'devStatAlarm',
517
- 'devStatLowBatt',
518
- 'devStatMotion',
519
- 'devStatOK',
520
- 'devStatOpen',
521
- 'devStatTamper',
522
- 'devStatUnknown',
523
- ];
524
- const knownStatuses = [
525
- 'ALARM, Closed',
526
- 'ALARM, Okay',
527
- 'ALARM, Open',
528
- 'Bypassed, Closed',
529
- 'Bypassed, Open',
530
- 'Bypassed, Tripped',
531
- 'Closed',
532
- 'Low Battery, Motion',
533
- 'Low Battery, No Motion',
534
- 'Motion',
535
- 'No Motion',
536
- 'Okay',
537
- 'Open',
538
- 'Tripped',
539
- 'Trouble, Open',
540
- 'Trouble, Closed',
541
- 'Unknown',
542
- ];
543
- const detectedNewStatuses = sensors.filter((sensor) => (!knownIcons.includes(sensor.icon)
544
- || !knownStatuses.includes(sensor.status)));
442
+ const detectedNewStatuses = sensors.filter((sensor) => !sensorStatusIconItems.includes(sensor.icon) || sensor.statuses.some((sensorStatus) => !sensorStatusStatusItems.includes(sensorStatus)));
545
443
  if (detectedNewStatuses.length > 0) {
546
444
  const cleanedData = removePersonalIdentifiableInformation(detectedNewStatuses);
547
445
  try {
@@ -561,6 +459,7 @@ export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
561
459
  debugLog(logger, 'detect.ts / detectedNewSensorsStatus()', 'error', 'Failed to check if plugin is outdated');
562
460
  stackTracer('serialize-error', serializeError(error));
563
461
  }
462
+ return false;
564
463
  }
565
464
  if (logger !== null) {
566
465
  logger.warn('Plugin has detected new sensors status. Notifying plugin author about this discovery ...');
@@ -580,14 +479,15 @@ export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
580
479
  'X-Title': 'Detected new sensors status',
581
480
  },
582
481
  });
482
+ return true;
583
483
  }
584
484
  catch (error) {
585
485
  if (debugMode === true) {
586
486
  debugLog(logger, 'detect.ts / detectedNewSensorsStatus()', 'error', 'Failed to notify plugin author about the new sensors status');
587
487
  stackTracer('serialize-error', serializeError(error));
588
488
  }
489
+ return false;
589
490
  }
590
- return true;
591
491
  }
592
492
  return false;
593
493
  }
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/detect.ts"],"names":[],"mappings":"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"}