homebridge-adt-pulse 3.3.0 → 3.3.5

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.
@@ -0,0 +1,563 @@
1
+ import { faker } from '@faker-js/faker';
2
+ import _ from 'lodash';
3
+ import { DateTime } from 'luxon';
4
+ import { UAParser } from 'ua-parser-js';
5
+ export function generateFakeDynatracePCHeaderValue(mode) {
6
+ const serverId = _.sample([1, 3, 5, 6, 7]);
7
+ const currentMillis = Date.now().toString();
8
+ const slicedMillis = (mode === 'keep-alive') ? currentMillis.slice(-8) : currentMillis.slice(-9);
9
+ const randomThreeDigit = Math.floor(Math.random() * (932 - 218 + 1)) + 218;
10
+ const randomOneToTwoDigit = Math.floor(Math.random() * (29 - 1 + 1)) + 1;
11
+ const randomAlphabet = _.range(32).map(() => _.sample('ABCDEFGHIJKLMNOPQRSTUVW')).join('');
12
+ return `${serverId}$${slicedMillis}_${randomThreeDigit}h${randomOneToTwoDigit}v${randomAlphabet}-0e0`;
13
+ }
14
+ export function generateFakeFingerprintFonts() {
15
+ const availableFonts = [
16
+ 'Academy Engraved LET',
17
+ 'Aharoni',
18
+ 'American Typewriter',
19
+ 'Andale Mono',
20
+ 'Andalus',
21
+ 'Angsana New',
22
+ 'AngsanaUPC',
23
+ 'Aparajita',
24
+ 'Apple Chancery',
25
+ 'Apple Color Emoji',
26
+ 'Apple SD Gothic Neo',
27
+ 'Arabic Typesetting',
28
+ 'Arial',
29
+ 'Arial Black',
30
+ 'Arial Hebrew',
31
+ 'Arial Narrow',
32
+ 'Arial Rounded MT Bold',
33
+ 'Arial Unicode MS',
34
+ 'AVENIR',
35
+ 'Ayuthaya',
36
+ 'Bangla Sangam MN',
37
+ 'Baskerville',
38
+ 'Batang',
39
+ 'BatangChe',
40
+ 'Bauhaus 93',
41
+ 'Big Caslon',
42
+ 'Bodoni 72',
43
+ 'Bodoni 72 Oldstyle',
44
+ 'Bodoni 72 Smallcaps',
45
+ 'Bookshelf Symbol 7',
46
+ 'Bradley Hand',
47
+ 'Browallia New',
48
+ 'BrowalliaUPC',
49
+ 'Brush Script MT',
50
+ 'Calibri',
51
+ 'Cambria',
52
+ 'Cambria Math',
53
+ 'Candara',
54
+ 'Chalkboard',
55
+ 'Chalkboard SE',
56
+ 'Chalkduster',
57
+ 'Cochin',
58
+ 'Comic Sans MS',
59
+ 'Constantia',
60
+ 'Copperplate',
61
+ 'Corbel',
62
+ 'Cordia New',
63
+ 'CordiaUPC',
64
+ 'Courier',
65
+ 'Courier New',
66
+ 'DaunPenh',
67
+ 'David',
68
+ 'Devanagari Sangam MN',
69
+ 'DFKai-SB',
70
+ 'Didot',
71
+ 'DilleniaUPC',
72
+ 'DokChampa',
73
+ 'Dotum',
74
+ 'DotumChe',
75
+ 'Ebrima',
76
+ 'English 111 Vivace BT',
77
+ 'Estrangelo Edessa',
78
+ 'EucrosiaUPC',
79
+ 'Euphemia',
80
+ 'Euphemia UCAS',
81
+ 'FangSong',
82
+ 'Franklin Gothic',
83
+ 'Franklin Gothic Heavy',
84
+ 'Franklin Gothic Medium',
85
+ 'FrankRuehl',
86
+ 'FreesiaUPC',
87
+ 'Futura',
88
+ 'Gabriola',
89
+ 'Gautami',
90
+ 'Geeza Pro',
91
+ 'Geneva',
92
+ 'Georgia',
93
+ 'GeoSlab 703 Lt BT',
94
+ 'GeoSlab 703 XBd BT',
95
+ 'Gill Sans',
96
+ 'Gisha',
97
+ 'GOTHAM',
98
+ 'GOTHAM BOLD',
99
+ 'Gujarati Sangam MN',
100
+ 'Gulim',
101
+ 'GulimChe',
102
+ 'Gungsuh',
103
+ 'GungsuhChe',
104
+ 'Gurmukhi MN',
105
+ 'Heiti SC',
106
+ 'Heiti TC',
107
+ 'HELV',
108
+ 'Helvetica',
109
+ 'Helvetica Neue',
110
+ 'Hiragino Kaku Gothic ProN',
111
+ 'Hiragino Mincho ProN',
112
+ 'Hoefler Text',
113
+ 'Humanst 521 Cn BT',
114
+ 'Impact',
115
+ 'IrisUPC',
116
+ 'Iskoola Pota',
117
+ 'JasmineUPC',
118
+ 'Kailasa',
119
+ 'KaiTi',
120
+ 'Kalinga',
121
+ 'Kannada Sangam MN',
122
+ 'Kartika',
123
+ 'Khmer UI',
124
+ 'KodchiangUPC',
125
+ 'Kokila',
126
+ 'Krungthep',
127
+ 'Lao UI',
128
+ 'Latha',
129
+ 'Leelawadee',
130
+ 'Levenim MT',
131
+ 'LilyUPC',
132
+ 'Lucida Console',
133
+ 'LUCIDA GRANDE',
134
+ 'Lucida Sans Unicode',
135
+ 'Malayalam Sangam MN',
136
+ 'Malgun Gothic',
137
+ 'Mangal',
138
+ 'Marion',
139
+ 'Marker Felt',
140
+ 'Marlett',
141
+ 'Meiryo',
142
+ 'Meiryo UI',
143
+ 'Microsoft Himalaya',
144
+ 'Microsoft JhengHei',
145
+ 'Microsoft New Tai Lue',
146
+ 'Microsoft PhagsPa',
147
+ 'Microsoft Sans Serif',
148
+ 'Microsoft Tai Le',
149
+ 'Microsoft Uighur',
150
+ 'Microsoft YaHei',
151
+ 'Microsoft Yi Baiti',
152
+ 'MingLiU',
153
+ 'MingLiU-ExtB',
154
+ 'MingLiU_HKSCS',
155
+ 'MingLiU_HKSCS-ExtB',
156
+ 'Miriam',
157
+ 'Miriam Fixed',
158
+ 'Modern No. 20',
159
+ 'Monaco',
160
+ 'Mongolian Baiti',
161
+ 'MoolBoran',
162
+ 'MS Gothic',
163
+ 'MS Mincho',
164
+ 'MS PGothic',
165
+ 'MS PMincho',
166
+ 'MS Sans Serif',
167
+ 'MS Serif',
168
+ 'MS UI Gothic',
169
+ 'MV Boli',
170
+ 'MYRIAD PRO',
171
+ 'Nadeem',
172
+ 'Narkisim',
173
+ 'Noteworthy',
174
+ 'NSimSun',
175
+ 'Nyala',
176
+ 'OPTIMA',
177
+ 'Oriya Sangam MN',
178
+ 'Palatino',
179
+ 'Palatino Linotype',
180
+ 'Papyrus',
181
+ 'Party LET',
182
+ 'Plantagenet Cherokee',
183
+ 'PMingLiU',
184
+ 'PMingLiU-ExtB',
185
+ 'Raavi',
186
+ 'Rockwell',
187
+ 'Rod',
188
+ 'Roman',
189
+ 'Sakkal Majalla',
190
+ 'Savoye LET',
191
+ 'Segoe Print',
192
+ 'Segoe Script',
193
+ 'Segoe UI',
194
+ 'Segoe UI Light',
195
+ 'Segoe UI Semibold',
196
+ 'Segoe UI Symbol',
197
+ 'Shonar Bangla',
198
+ 'Shruti',
199
+ 'SimHei',
200
+ 'Simplified Arabic',
201
+ 'Simplified Arabic Fixed',
202
+ 'SimSun',
203
+ 'SimSun-ExtB',
204
+ 'Sinhala Sangam MN',
205
+ 'Skia',
206
+ 'Small Fonts',
207
+ 'Snell Roundhand',
208
+ 'Sylfaen',
209
+ 'Tahoma',
210
+ 'Tamil Sangam MN',
211
+ 'Telugu Sangam MN',
212
+ 'Thonburi',
213
+ 'Times',
214
+ 'Times New Roman',
215
+ 'Traditional Arabic',
216
+ 'Trebuchet MS',
217
+ 'Tunga',
218
+ 'Univers CE 55 Medium',
219
+ 'Utsaah',
220
+ 'Vani',
221
+ 'Verdana',
222
+ 'Vijaya',
223
+ 'Vrinda',
224
+ 'Wingdings',
225
+ 'Wingdings 2',
226
+ 'Wingdings 3',
227
+ 'Zapfino',
228
+ ];
229
+ return _.take(_.shuffle(availableFonts), _.random(50, availableFonts.length)).sort();
230
+ }
231
+ export function generateFakeFingerprintPlugins() {
232
+ const availablePlugins = [
233
+ 'Adobe Flash Player.application/x-shockwave-flash::swf',
234
+ 'Java Runtime Environment.application/x-java-applet::class',
235
+ 'Microsoft Silverlight.application/x-silverlight::xap',
236
+ 'Portable Document Format.application/pdf::pdf',
237
+ 'QuickTime Media Player.video/quicktime::mov',
238
+ 'Windows Media Player.application/x-mplayer2::wmv',
239
+ ];
240
+ return _.take(_.shuffle(availablePlugins), _.random(1, availablePlugins.length)).sort();
241
+ }
242
+ export function generateFakeFingerprintScreenResolution() {
243
+ const availableResolutions = [
244
+ {
245
+ width: 1024,
246
+ height: 768,
247
+ },
248
+ {
249
+ width: 2048,
250
+ height: 1536,
251
+ },
252
+ {
253
+ width: 1280,
254
+ height: 800,
255
+ },
256
+ {
257
+ width: 1920,
258
+ height: 1080,
259
+ },
260
+ {
261
+ width: 2560,
262
+ height: 1440,
263
+ },
264
+ {
265
+ width: 3840,
266
+ height: 2160,
267
+ },
268
+ {
269
+ width: 320,
270
+ height: 480,
271
+ },
272
+ {
273
+ width: 750,
274
+ height: 1334,
275
+ },
276
+ {
277
+ width: 1080,
278
+ height: 1920,
279
+ },
280
+ {
281
+ width: 1280,
282
+ height: 720,
283
+ },
284
+ {
285
+ width: 1920,
286
+ height: 1080,
287
+ },
288
+ {
289
+ width: 3840,
290
+ height: 2160,
291
+ },
292
+ {
293
+ width: 2732,
294
+ height: 2048,
295
+ },
296
+ {
297
+ width: 2160,
298
+ height: 1620,
299
+ },
300
+ {
301
+ width: 2560,
302
+ height: 1600,
303
+ },
304
+ {
305
+ width: 3440,
306
+ height: 1440,
307
+ },
308
+ {
309
+ width: 5120,
310
+ height: 2880,
311
+ },
312
+ {
313
+ width: 3840,
314
+ height: 1600,
315
+ },
316
+ {
317
+ width: 2560,
318
+ height: 1080,
319
+ },
320
+ {
321
+ width: 4096,
322
+ height: 2160,
323
+ },
324
+ {
325
+ width: 3840,
326
+ height: 1080,
327
+ },
328
+ {
329
+ width: 2960,
330
+ height: 1440,
331
+ },
332
+ {
333
+ width: 3120,
334
+ height: 1440,
335
+ },
336
+ {
337
+ width: 2560,
338
+ height: 1312,
339
+ },
340
+ {
341
+ width: 3840,
342
+ height: 1200,
343
+ },
344
+ {
345
+ width: 3840,
346
+ height: 2160,
347
+ },
348
+ {
349
+ width: 7680,
350
+ height: 4320,
351
+ },
352
+ {
353
+ width: 5120,
354
+ height: 2160,
355
+ },
356
+ ];
357
+ return _.sample(availableResolutions) ?? availableResolutions[0];
358
+ }
359
+ export function generateFakeFingerprintTimezone() {
360
+ const fakeTimeZone = faker.location.timeZone();
361
+ const dateTime = DateTime.now().setZone(fakeTimeZone);
362
+ return {
363
+ timezone: dateTime.zoneName ?? 'UTC',
364
+ timezoneOffset: (dateTime.zoneName !== null) ? dateTime.offset : 0,
365
+ };
366
+ }
367
+ export function generateFakeFingerprintUserAgent() {
368
+ const fakeUserAgent = faker.internet.userAgent();
369
+ const parsedUserAgent = UAParser(fakeUserAgent);
370
+ const isWindows = (parsedUserAgent.os.name === 'Windows') ? 'Win32' : null;
371
+ const isMacintosh = (parsedUserAgent.os.name === 'macOS') ? 'MacIntel' : null;
372
+ const isLinux = (parsedUserAgent.os.name === 'Linux') ? 'Linux x86_64' : null;
373
+ return {
374
+ browser: {
375
+ major: parsedUserAgent.browser.major ?? null,
376
+ name: parsedUserAgent.browser.name ?? null,
377
+ version: parsedUserAgent.browser.version ?? null,
378
+ },
379
+ cpu: {
380
+ architecture: parsedUserAgent.cpu.architecture ?? null,
381
+ },
382
+ device: {
383
+ model: parsedUserAgent.device.model ?? null,
384
+ type: parsedUserAgent.device.type ?? null,
385
+ vendor: parsedUserAgent.device.vendor ?? null,
386
+ },
387
+ engine: {
388
+ name: parsedUserAgent.engine.name ?? null,
389
+ version: parsedUserAgent.engine.version ?? null,
390
+ },
391
+ os: {
392
+ name: parsedUserAgent.os.name ?? null,
393
+ version: parsedUserAgent.os.version ?? null,
394
+ },
395
+ platform: isWindows ?? isMacintosh ?? isLinux ?? null,
396
+ ua: parsedUserAgent.ua,
397
+ };
398
+ }
399
+ export function generateFakeLoginFingerprint() {
400
+ const fakeTimezone = generateFakeFingerprintTimezone();
401
+ const fakeResolution = generateFakeFingerprintScreenResolution();
402
+ const fakeUserAgent = generateFakeFingerprintUserAgent();
403
+ const fakeFingerprint = {
404
+ fingerprint: {
405
+ uaBrowser: {
406
+ name: fakeUserAgent.browser.name,
407
+ version: fakeUserAgent.browser.version,
408
+ major: fakeUserAgent.browser.major,
409
+ },
410
+ uaString: fakeUserAgent.ua,
411
+ uaDevice: {
412
+ model: fakeUserAgent.device.model,
413
+ type: fakeUserAgent.device.type,
414
+ vendor: fakeUserAgent.device.vendor,
415
+ },
416
+ uaEngine: {
417
+ name: fakeUserAgent.engine.name,
418
+ version: fakeUserAgent.engine.version,
419
+ },
420
+ uaOS: {
421
+ name: fakeUserAgent.os.name,
422
+ version: fakeUserAgent.os.version,
423
+ },
424
+ uaCPU: {
425
+ architecture: fakeUserAgent.cpu.architecture,
426
+ },
427
+ uaPlatform: fakeUserAgent.platform,
428
+ language: 'en-US',
429
+ colorDepth: 24,
430
+ pixelRatio: _.sample([1, 2, 3, 4]),
431
+ screenResolution: `${fakeResolution.width}x${fakeResolution.height}`,
432
+ availableScreenResolution: `${fakeResolution.width}x${fakeResolution.height}`,
433
+ timezone: fakeTimezone.timezone,
434
+ timezoneOffset: fakeTimezone.timezoneOffset,
435
+ localStorage: true,
436
+ sessionStorage: true,
437
+ indexedDb: true,
438
+ addBehavior: false,
439
+ openDatabase: false,
440
+ cpuClass: null,
441
+ platform: fakeUserAgent.platform,
442
+ doNotTrack: _.sample(['1', '0', null]),
443
+ plugins: generateFakeFingerprintPlugins().join(','),
444
+ canvas: _.random(1111111111, 9999999999),
445
+ webGl: _.random(1111111111, 9999999999),
446
+ adBlock: false,
447
+ userTamperLanguage: false,
448
+ userTamperScreenResolution: false,
449
+ userTamperOS: false,
450
+ userTamperBrowser: false,
451
+ touchSupport: {
452
+ maxTouchPoints: 0,
453
+ touchEvent: false,
454
+ touchStart: false,
455
+ },
456
+ cookieSupport: true,
457
+ fonts: generateFakeFingerprintFonts().join(','),
458
+ },
459
+ };
460
+ return Buffer.from(JSON.stringify(fakeFingerprint)).toString('base64');
461
+ }
462
+ export function generateFakeReadyButtons(buttons, isCleanState, options) {
463
+ const readyButtons = [];
464
+ if (buttons.length === 1 && buttons[0].buttonText === 'Disarming') {
465
+ const displayedButtons = [
466
+ {
467
+ buttonText: 'Arm Away',
468
+ loadingText: 'Arming Away',
469
+ arm: 'away',
470
+ },
471
+ {
472
+ buttonText: 'Arm Stay',
473
+ loadingText: 'Arming Stay',
474
+ arm: 'stay',
475
+ },
476
+ ];
477
+ displayedButtons.forEach((displayedButton, displayedButtonIndex) => {
478
+ readyButtons.push({
479
+ buttonId: `security_button_${displayedButtonIndex}`,
480
+ buttonDisabled: false,
481
+ buttonIndex: displayedButtonIndex,
482
+ buttonText: displayedButton.buttonText,
483
+ changeAccessCode: false,
484
+ loadingText: displayedButton.loadingText,
485
+ relativeUrl: options.relativeUrl,
486
+ totalButtons: buttons.length,
487
+ urlParams: {
488
+ arm: displayedButton.arm,
489
+ armState: (isCleanState) ? 'off' : 'disarmed',
490
+ href: options.href,
491
+ sat: options.sat,
492
+ },
493
+ });
494
+ });
495
+ return readyButtons;
496
+ }
497
+ buttons.forEach((button, buttonIndex) => {
498
+ if (!button.buttonDisabled) {
499
+ readyButtons.push(button);
500
+ return;
501
+ }
502
+ switch (button.buttonText) {
503
+ case 'Arming Away':
504
+ readyButtons.push({
505
+ buttonId: button.buttonId,
506
+ buttonDisabled: false,
507
+ buttonIndex,
508
+ buttonText: 'Disarm',
509
+ changeAccessCode: false,
510
+ loadingText: 'Disarming',
511
+ relativeUrl: options.relativeUrl,
512
+ totalButtons: buttons.length,
513
+ urlParams: {
514
+ arm: 'off',
515
+ armState: (isCleanState) ? 'away' : 'away',
516
+ href: options.href,
517
+ sat: options.sat,
518
+ },
519
+ });
520
+ break;
521
+ case 'Arming Night':
522
+ readyButtons.push({
523
+ buttonId: button.buttonId,
524
+ buttonDisabled: false,
525
+ buttonIndex,
526
+ buttonText: 'Disarm',
527
+ changeAccessCode: false,
528
+ loadingText: 'Disarming',
529
+ relativeUrl: options.relativeUrl,
530
+ totalButtons: buttons.length,
531
+ urlParams: {
532
+ arm: 'off',
533
+ armState: (isCleanState) ? 'night' : 'night+stay',
534
+ href: options.href,
535
+ sat: options.sat,
536
+ },
537
+ });
538
+ break;
539
+ case 'Arming Stay':
540
+ readyButtons.push({
541
+ buttonId: button.buttonId,
542
+ buttonDisabled: false,
543
+ buttonIndex,
544
+ buttonText: 'Disarm',
545
+ changeAccessCode: false,
546
+ loadingText: 'Disarming',
547
+ relativeUrl: options.relativeUrl,
548
+ totalButtons: buttons.length,
549
+ urlParams: {
550
+ arm: 'off',
551
+ armState: (isCleanState) ? 'stay' : 'stay',
552
+ href: options.href,
553
+ sat: options.sat,
554
+ },
555
+ });
556
+ break;
557
+ default:
558
+ break;
559
+ }
560
+ });
561
+ return readyButtons;
562
+ }
563
+ //# sourceMappingURL=fake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake.js","sourceRoot":"","sources":["../../src/lib/fake.ts"],"names":[],"mappings":"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"}