fit-file-parser 4.0.0 → 4.0.1

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/dist/binary.js CHANGED
@@ -319,6 +319,20 @@ function applyOptions(data, field, options, fields) {
319
319
  return data;
320
320
  }
321
321
  }
322
+ function applyGarminProductName(fields) {
323
+ if (fields.product_name !== undefined || fields.manufacturer !== 'garmin') {
324
+ return;
325
+ }
326
+ const product = fields.product;
327
+ if (typeof product !== 'number') {
328
+ return;
329
+ }
330
+ const productName = FIT.types.garmin_product[product];
331
+ if (typeof productName === 'string') {
332
+ // Keep the raw protocol ID and expose the SDK product name separately.
333
+ fields.product_name = productName;
334
+ }
335
+ }
322
336
  export function readRecord(blob, messageTypes, developerFields, startIndex, options, startDate, pausedTime, dataView = new DataView(blob.buffer, blob.byteOffset, blob.byteLength)) {
323
337
  var _a, _b, _c, _d, _e;
324
338
  const recordHeader = blob[startIndex];
@@ -464,6 +478,7 @@ export function readRecord(blob, messageTypes, developerFields, startIndex, opti
464
478
  }
465
479
  }
466
480
  }
481
+ applyGarminProductName(fields);
467
482
  if (validFieldCount > 0 && message.name === 'record' && options.elapsedRecordField) {
468
483
  fields.elapsed_time = (fields.timestamp - (startDate || 0)) / 1000;
469
484
  fields.timer_time = fields.elapsed_time - pausedTime;
@@ -325,6 +325,20 @@ function applyOptions(data, field, options, fields) {
325
325
  return data;
326
326
  }
327
327
  }
328
+ function applyGarminProductName(fields) {
329
+ if (fields.product_name !== undefined || fields.manufacturer !== 'garmin') {
330
+ return;
331
+ }
332
+ const product = fields.product;
333
+ if (typeof product !== 'number') {
334
+ return;
335
+ }
336
+ const productName = fit_js_1.FIT.types.garmin_product[product];
337
+ if (typeof productName === 'string') {
338
+ // Keep the raw protocol ID and expose the SDK product name separately.
339
+ fields.product_name = productName;
340
+ }
341
+ }
328
342
  function readRecord(blob, messageTypes, developerFields, startIndex, options, startDate, pausedTime, dataView = new DataView(blob.buffer, blob.byteOffset, blob.byteLength)) {
329
343
  var _a, _b, _c, _d, _e;
330
344
  const recordHeader = blob[startIndex];
@@ -470,6 +484,7 @@ function readRecord(blob, messageTypes, developerFields, startIndex, options, st
470
484
  }
471
485
  }
472
486
  }
487
+ applyGarminProductName(fields);
473
488
  if (validFieldCount > 0 && message.name === 'record' && options.elapsedRecordField) {
474
489
  fields.elapsed_time = (fields.timestamp - (startDate || 0)) / 1000;
475
490
  fields.timer_time = fields.elapsed_time - pausedTime;
package/dist/cjs/fit.js CHANGED
@@ -6353,164 +6353,484 @@ exports.FIT = {
6353
6353
  5759: 'actigraphcorp',
6354
6354
  },
6355
6355
  garmin_product: {
6356
- 0: 'hrm_bike',
6357
6356
  1: 'hrm1',
6358
6357
  2: 'axh01',
6359
6358
  3: 'axb01',
6360
6359
  4: 'axb02',
6361
6360
  5: 'hrm2ss',
6362
- 6: 'dsi_alf02',
6361
+ 6: 'dsiAlf02',
6363
6362
  7: 'hrm3ss',
6364
- 8: 'hrm_run_single_byte_product_id',
6363
+ 8: 'hrmRunSingleByteProductId',
6365
6364
  9: 'bsm',
6366
6365
  10: 'bcm',
6367
6366
  11: 'axs01',
6368
- 12: 'hrm_tri_single_byte_product_id',
6369
- 14: 'fr225_single_byte_product_id',
6370
- 473: 'fr301_china',
6371
- 474: 'fr301_japan',
6372
- 475: 'fr301_korea',
6373
- 494: 'fr301_taiwan',
6367
+ 12: 'hrmTriSingleByteProductId',
6368
+ 13: 'hrm4RunSingleByteProductId',
6369
+ 14: 'fr225SingleByteProductId',
6370
+ 15: 'gen3BsmSingleByteProductId',
6371
+ 16: 'gen3BcmSingleByteProductId',
6372
+ 22: 'hrmFitSingleByteProductId',
6373
+ 255: 'oHR',
6374
+ 473: 'fr301China',
6375
+ 474: 'fr301Japan',
6376
+ 475: 'fr301Korea',
6377
+ 494: 'fr301Taiwan',
6374
6378
  717: 'fr405',
6375
6379
  782: 'fr50',
6376
- 987: 'fr405_japan',
6380
+ 987: 'fr405Japan',
6377
6381
  988: 'fr60',
6378
- 1011: 'dsi_alf01',
6382
+ 1011: 'dsiAlf01',
6379
6383
  1018: 'fr310xt',
6380
6384
  1036: 'edge500',
6381
6385
  1124: 'fr110',
6382
6386
  1169: 'edge800',
6383
- 1199: 'edge500_taiwan',
6384
- 1213: 'edge500_japan',
6387
+ 1199: 'edge500Taiwan',
6388
+ 1213: 'edge500Japan',
6385
6389
  1253: 'chirp',
6386
- 1274: 'fr110_japan',
6390
+ 1274: 'fr110Japan',
6387
6391
  1325: 'edge200',
6388
6392
  1328: 'fr910xt',
6389
- 1333: 'edge800_taiwan',
6390
- 1334: 'edge800_japan',
6393
+ 1333: 'edge800Taiwan',
6394
+ 1334: 'edge800Japan',
6391
6395
  1341: 'alf04',
6392
6396
  1345: 'fr610',
6393
- 1360: 'fr210_japan',
6394
- 1380: 'vector_ss',
6395
- 1381: 'vector_cp',
6396
- 1386: 'edge800_china',
6397
- 1387: 'edge500_china',
6398
- 1410: 'fr610_japan',
6399
- 1422: 'edge500_korea',
6397
+ 1360: 'fr210Japan',
6398
+ 1380: 'vectorSs',
6399
+ 1381: 'vectorCp',
6400
+ 1386: 'edge800China',
6401
+ 1387: 'edge500China',
6402
+ 1405: 'approachG10',
6403
+ 1410: 'fr610Japan',
6404
+ 1422: 'edge500Korea',
6400
6405
  1436: 'fr70',
6401
- 1446: 'fr310xt_4t',
6406
+ 1446: 'fr310xt4t',
6402
6407
  1461: 'amx',
6403
6408
  1482: 'fr10',
6404
- 1497: 'edge800_korea',
6409
+ 1497: 'edge800Korea',
6405
6410
  1499: 'swim',
6406
- 1537: 'fr910xt_china',
6411
+ 1537: 'fr910xtChina',
6407
6412
  1551: 'fenix',
6408
- 1555: 'edge200_taiwan',
6413
+ 1555: 'edge200Taiwan',
6409
6414
  1561: 'edge510',
6410
6415
  1567: 'edge810',
6411
6416
  1570: 'tempe',
6412
- 1600: 'fr910xt_japan',
6417
+ 1600: 'fr910xtJapan',
6413
6418
  1623: 'fr620',
6414
6419
  1632: 'fr220',
6415
- 1664: 'fr910xt_korea',
6416
- 1688: 'fr10_japan',
6417
- 1721: 'edge810_japan',
6418
- 1735: 'virb_elite',
6419
- 1736: 'edge_touring',
6420
- 1742: 'edge510_japan',
6421
- 1743: 'hrm_tri',
6422
- 1752: 'hrm_run',
6420
+ 1664: 'fr910xtKorea',
6421
+ 1688: 'fr10Japan',
6422
+ 1721: 'edge810Japan',
6423
+ 1735: 'virbElite',
6424
+ 1736: 'edgeTouring',
6425
+ 1742: 'edge510Japan',
6426
+ 1743: 'hrmTri',
6427
+ 1752: 'hrmRun',
6423
6428
  1765: 'fr920xt',
6424
- 1821: 'edge510_asia',
6425
- 1822: 'edge810_china',
6426
- 1823: 'edge810_taiwan',
6429
+ 1821: 'edge510Asia',
6430
+ 1822: 'edge810China',
6431
+ 1823: 'edge810Taiwan',
6427
6432
  1836: 'edge1000',
6428
- 1837: 'vivo_fit',
6429
- 1853: 'virb_remote',
6430
- 1885: 'vivo_ki',
6433
+ 1837: 'vivoFit',
6434
+ 1853: 'virbRemote',
6435
+ 1885: 'vivoKi',
6431
6436
  1903: 'fr15',
6432
- 1907: 'vivo_active',
6433
- 1918: 'edge510_korea',
6434
- 1928: 'fr620_japan',
6435
- 1929: 'fr620_china',
6436
- 1930: 'fr220_japan',
6437
- 1931: 'fr220_china',
6438
- 1936: 'approach_s6',
6439
- 1956: 'vivo_smart',
6437
+ 1907: 'vivoActive',
6438
+ 1918: 'edge510Korea',
6439
+ 1928: 'fr620Japan',
6440
+ 1929: 'fr620China',
6441
+ 1930: 'fr220Japan',
6442
+ 1931: 'fr220China',
6443
+ 1936: 'approachS6',
6444
+ 1956: 'vivoSmart',
6440
6445
  1967: 'fenix2',
6441
6446
  1988: 'epix',
6442
6447
  2050: 'fenix3',
6443
- 2052: 'edge1000_taiwan',
6444
- 2053: 'edge1000_japan',
6445
- 2061: 'fr15_japan',
6448
+ 2052: 'edge1000Taiwan',
6449
+ 2053: 'edge1000Japan',
6450
+ 2061: 'fr15Japan',
6446
6451
  2067: 'edge520',
6447
- 2070: 'edge1000_china',
6448
- 2072: 'fr620_russia',
6449
- 2073: 'fr220_russia',
6450
- 2079: 'vector_s',
6451
- 2100: 'edge1000_korea',
6452
- 2130: 'fr920xt_taiwan',
6453
- 2131: 'fr920xt_china',
6454
- 2132: 'fr920xt_japan',
6452
+ 2070: 'edge1000China',
6453
+ 2072: 'fr620Russia',
6454
+ 2073: 'fr220Russia',
6455
+ 2079: 'vectorS',
6456
+ 2100: 'edge1000Korea',
6457
+ 2130: 'fr920xtTaiwan',
6458
+ 2131: 'fr920xtChina',
6459
+ 2132: 'fr920xtJapan',
6455
6460
  2134: 'virbx',
6456
- 2135: 'vivo_smart_apac',
6457
- 2140: 'etrex_touch',
6461
+ 2135: 'vivoSmartApac',
6462
+ 2140: 'etrexTouch',
6458
6463
  2147: 'edge25',
6459
6464
  2148: 'fr25',
6460
- 2150: 'vivo_fit2',
6465
+ 2150: 'vivoFit2',
6461
6466
  2153: 'fr225',
6462
6467
  2156: 'fr630',
6463
6468
  2157: 'fr230',
6464
6469
  2158: 'fr735xt',
6465
- 2160: 'vivo_active_apac',
6466
- 2161: 'vector_2',
6467
- 2162: 'vector_2s',
6470
+ 2160: 'vivoActiveApac',
6471
+ 2161: 'vector2',
6472
+ 2162: 'vector2s',
6468
6473
  2172: 'virbxe',
6469
- 2173: 'fr620_taiwan',
6470
- 2174: 'fr220_taiwan',
6474
+ 2173: 'fr620Taiwan',
6475
+ 2174: 'fr220Taiwan',
6471
6476
  2175: 'truswing',
6472
- 2188: 'fenix3_china',
6473
- 2189: 'fenix3_twn',
6474
- 2192: 'varia_headlight',
6475
- 2193: 'varia_taillight_old',
6476
- 2204: 'edge_explore_1000',
6477
- 2219: 'fr225_asia',
6478
- 2225: 'varia_radar_taillight',
6479
- 2226: 'varia_radar_display',
6477
+ 2187: 'd2airvenu',
6478
+ 2188: 'fenix3China',
6479
+ 2189: 'fenix3Twn',
6480
+ 2192: 'variaHeadlight',
6481
+ 2193: 'variaTaillightOld',
6482
+ 2204: 'edgeExplore1000',
6483
+ 2219: 'fr225Asia',
6484
+ 2225: 'variaRadarTaillight',
6485
+ 2226: 'variaRadarDisplay',
6480
6486
  2238: 'edge20',
6481
- 2262: 'd2_bravo',
6482
- 2266: 'approach_s20',
6483
- 2276: 'varia_remote',
6484
- 2327: 'hrm4_run',
6485
- 2337: 'vivo_active_hr',
6486
- 2348: 'vivo_smart_hr',
6487
- 2368: 'vivo_move',
6488
- 2398: 'varia_vision',
6489
- 2406: 'vivo_fit3',
6490
- 2413: 'fenix3_hr',
6491
- 2417: 'virb_ultra_30',
6492
- 2429: 'index_smart_scale',
6487
+ 2260: 'edge520Asia',
6488
+ 2261: 'edge520Japan',
6489
+ 2262: 'd2Bravo',
6490
+ 2266: 'approachS20',
6491
+ 2271: 'vivoSmart2',
6492
+ 2274: 'edge1000Thai',
6493
+ 2276: 'variaRemote',
6494
+ 2288: 'edge25Asia',
6495
+ 2289: 'edge25Jpn',
6496
+ 2290: 'edge20Asia',
6497
+ 2292: 'approachX40',
6498
+ 2293: 'fenix3Japan',
6499
+ 2294: 'vivoSmartEmea',
6500
+ 2310: 'fr630Asia',
6501
+ 2311: 'fr630Jpn',
6502
+ 2313: 'fr230Jpn',
6503
+ 2327: 'hrm4Run',
6504
+ 2332: 'epixJapan',
6505
+ 2337: 'vivoActiveHr',
6506
+ 2347: 'vivoSmartGpsHr',
6507
+ 2348: 'vivoSmartHr',
6508
+ 2361: 'vivoSmartHrAsia',
6509
+ 2362: 'vivoSmartGpsHrAsia',
6510
+ 2368: 'vivoMove',
6511
+ 2379: 'variaTaillight',
6512
+ 2396: 'fr235Asia',
6513
+ 2397: 'fr235Japan',
6514
+ 2398: 'variaVision',
6515
+ 2406: 'vivoFit3',
6516
+ 2407: 'fenix3Korea',
6517
+ 2408: 'fenix3Sea',
6518
+ 2413: 'fenix3Hr',
6519
+ 2417: 'virbUltra30',
6520
+ 2429: 'indexSmartScale',
6493
6521
  2431: 'fr235',
6494
- 2432: 'fenix3_chronos',
6522
+ 2432: 'fenix3Chronos',
6495
6523
  2441: 'oregon7xx',
6496
6524
  2444: 'rino7xx',
6525
+ 2457: 'epixKorea',
6526
+ 2473: 'fenix3HrChn',
6527
+ 2474: 'fenix3HrTwn',
6528
+ 2475: 'fenix3HrJpn',
6529
+ 2476: 'fenix3HrSea',
6530
+ 2477: 'fenix3HrKor',
6497
6531
  2496: 'nautix',
6498
- 2530: 'edge_820',
6499
- 2531: 'edge_explore_820',
6532
+ 2497: 'vivoActiveHrApac',
6533
+ 2503: 'fr35',
6534
+ 2512: 'oregon7xxWw',
6535
+ 2530: 'edge820',
6536
+ 2531: 'edgeExplore820',
6537
+ 2533: 'fr735xtApac',
6538
+ 2534: 'fr735xtJapan',
6500
6539
  2544: 'fenix5s',
6501
- 2547: 'd2_bravo_titanium',
6502
- 2567: 'varia_ut800',
6503
- 2593: 'running_dynamics_pod',
6540
+ 2547: 'd2BravoTitanium',
6541
+ 2567: 'variaUt800',
6542
+ 2593: 'runningDynamicsPod',
6543
+ 2599: 'edge820China',
6544
+ 2600: 'edge820Japan',
6504
6545
  2604: 'fenix5x',
6505
- 2606: 'vivo_fit_jr',
6546
+ 2606: 'vivoFitJr',
6547
+ 2622: 'vivoSmart3',
6548
+ 2623: 'vivoSport',
6549
+ 2628: 'edge820Taiwan',
6550
+ 2629: 'edge820Korea',
6551
+ 2630: 'edge820Sea',
6552
+ 2650: 'fr35Hebrew',
6553
+ 2656: 'approachS60',
6554
+ 2667: 'fr35Apac',
6555
+ 2668: 'fr35Japan',
6556
+ 2675: 'fenix3ChronosAsia',
6557
+ 2687: 'virb360',
6506
6558
  2691: 'fr935',
6507
6559
  2697: 'fenix5',
6560
+ 2700: 'vivoactive3',
6561
+ 2713: 'edge1030',
6562
+ 2727: 'fr35Sea',
6563
+ 2733: 'fr235ChinaNfc',
6564
+ 2769: 'foretrex601_701',
6565
+ 2772: 'vivoMoveHr',
6566
+ 2787: 'vector3',
6567
+ 2796: 'fenix5Asia',
6568
+ 2797: 'fenix5sAsia',
6569
+ 2798: 'fenix5xAsia',
6570
+ 2806: 'approachZ80',
6571
+ 2814: 'fr35Korea',
6572
+ 2819: 'd2charlie',
6573
+ 2831: 'vivoSmart3Apac',
6574
+ 2832: 'vivoSportApac',
6575
+ 2833: 'fr935Asia',
6508
6576
  2859: 'descent',
6577
+ 2878: 'vivoFit4',
6578
+ 2886: 'fr645',
6579
+ 2888: 'fr645m',
6580
+ 2891: 'fr30',
6581
+ 2900: 'fenix5sPlus',
6582
+ 2909: 'edge130',
6583
+ 2924: 'edge1030Asia',
6584
+ 2927: 'vivosmart4',
6585
+ 2945: 'vivoMoveHrAsia',
6586
+ 2962: 'approachX10',
6587
+ 2977: 'fr30Asia',
6588
+ 2988: 'vivoactive3mW',
6589
+ 3003: 'fr645Asia',
6590
+ 3004: 'fr645mAsia',
6591
+ 3011: 'edgeExplore',
6592
+ 3028: 'gpsmap66',
6593
+ 3049: 'approachS10',
6594
+ 3066: 'vivoactive3mL',
6595
+ 3076: 'fr245',
6596
+ 3077: 'fr245Music',
6597
+ 3085: 'approachG80',
6598
+ 3092: 'edge130Asia',
6599
+ 3095: 'edge1030Bontrager',
6600
+ 3110: 'fenix5Plus',
6601
+ 3111: 'fenix5xPlus',
6602
+ 3112: 'edge520Plus',
6603
+ 3113: 'fr945',
6604
+ 3121: 'edge530',
6605
+ 3122: 'edge830',
6606
+ 3126: 'instinctEsports',
6607
+ 3134: 'fenix5sPlusApac',
6608
+ 3135: 'fenix5xPlusApac',
6609
+ 3142: 'edge520PlusApac',
6610
+ 3143: 'descentT1',
6611
+ 3144: 'fr235lAsia',
6612
+ 3145: 'fr245Asia',
6613
+ 3163: 'vivoActive3mApac',
6614
+ 3192: 'gen3Bsm',
6615
+ 3193: 'gen3Bcm',
6616
+ 3218: 'vivoSmart4Asia',
6617
+ 3224: 'vivoactive4Small',
6618
+ 3225: 'vivoactive4Large',
6619
+ 3226: 'venu',
6620
+ 3246: 'marqDriver',
6621
+ 3247: 'marqAviator',
6622
+ 3248: 'marqCaptain',
6623
+ 3249: 'marqCommander',
6624
+ 3250: 'marqExpedition',
6625
+ 3251: 'marqAthlete',
6626
+ 3258: 'descentMk2',
6627
+ 3282: 'fr45',
6628
+ 3284: 'gpsmap66i',
6629
+ 3287: 'fenix6SSport',
6630
+ 3288: 'fenix6S',
6631
+ 3289: 'fenix6Sport',
6632
+ 3290: 'fenix6',
6633
+ 3291: 'fenix6x',
6634
+ 3299: 'hrmDual',
6635
+ 3300: 'hrmPro',
6636
+ 3308: 'vivoMove3Premium',
6637
+ 3314: 'approachS40',
6638
+ 3321: 'fr245mAsia',
6639
+ 3349: 'edge530Apac',
6640
+ 3350: 'edge830Apac',
6641
+ 3378: 'vivoMove3',
6642
+ 3387: 'vivoActive4SmallAsia',
6643
+ 3388: 'vivoActive4LargeAsia',
6644
+ 3389: 'vivoActive4OledAsia',
6645
+ 3405: 'swim2',
6646
+ 3420: 'marqDriverAsia',
6647
+ 3421: 'marqAviatorAsia',
6648
+ 3422: 'vivoMove3Asia',
6649
+ 3441: 'fr945Asia',
6650
+ 3446: 'vivoActive3tChn',
6651
+ 3448: 'marqCaptainAsia',
6652
+ 3449: 'marqCommanderAsia',
6653
+ 3450: 'marqExpeditionAsia',
6654
+ 3451: 'marqAthleteAsia',
6655
+ 3461: 'indexSmartScale2',
6656
+ 3466: 'instinctSolar',
6657
+ 3469: 'fr45Asia',
6658
+ 3473: 'vivoactive3Daimler',
6659
+ 3498: 'legacyRey',
6660
+ 3499: 'legacyDarthVader',
6661
+ 3500: 'legacyCaptainMarvel',
6662
+ 3501: 'legacyFirstAvenger',
6663
+ 3512: 'fenix6sSportAsia',
6664
+ 3513: 'fenix6sAsia',
6665
+ 3514: 'fenix6SportAsia',
6666
+ 3515: 'fenix6Asia',
6667
+ 3516: 'fenix6xAsia',
6668
+ 3535: 'legacyCaptainMarvelAsia',
6669
+ 3536: 'legacyFirstAvengerAsia',
6670
+ 3537: 'legacyReyAsia',
6671
+ 3538: 'legacyDarthVaderAsia',
6672
+ 3542: 'descentMk2s',
6673
+ 3558: 'edge130Plus',
6674
+ 3570: 'edge1030Plus',
6675
+ 3578: 'rally200',
6676
+ 3589: 'fr745',
6677
+ 3596: 'venusqMusic',
6678
+ 3599: 'venusqMusicV2',
6679
+ 3600: 'venusq',
6680
+ 3615: 'lily',
6681
+ 3624: 'marqAdventurer',
6682
+ 3638: 'enduro',
6683
+ 3639: 'swim2Apac',
6684
+ 3648: 'marqAdventurerAsia',
6685
+ 3652: 'fr945Lte',
6686
+ 3702: 'descentMk2Asia',
6687
+ 3703: 'venu2',
6688
+ 3704: 'venu2s',
6689
+ 3737: 'venuDaimlerAsia',
6690
+ 3739: 'marqGolfer',
6691
+ 3740: 'venuDaimler',
6692
+ 3794: 'fr745Asia',
6693
+ 3808: 'variaRct715',
6694
+ 3809: 'lilyAsia',
6695
+ 3812: 'edge1030PlusAsia',
6696
+ 3813: 'edge130PlusAsia',
6697
+ 3823: 'approachS12',
6698
+ 3837: 'venusqAsia',
6699
+ 3843: 'edge1040',
6700
+ 3850: 'marqGolferAsia',
6701
+ 3851: 'venu2Plus',
6702
+ 3865: 'gnss',
6703
+ 3869: 'fr55',
6704
+ 3872: 'enduroAsia',
6705
+ 3888: 'instinct2',
6706
+ 3889: 'instinct2s',
6707
+ 3905: 'fenix7s',
6708
+ 3906: 'fenix7',
6709
+ 3907: 'fenix7x',
6710
+ 3908: 'fenix7sApac',
6711
+ 3909: 'fenix7Apac',
6712
+ 3910: 'fenix7xApac',
6713
+ 3927: 'approachG12',
6714
+ 3930: 'descentMk2sAsia',
6715
+ 3934: 'approachS42',
6716
+ 3943: 'epixGen2',
6717
+ 3944: 'epixGen2Apac',
6718
+ 3949: 'venu2sAsia',
6719
+ 3950: 'venu2Asia',
6720
+ 3978: 'fr945LteAsia',
6721
+ 3982: 'vivoMoveSport',
6722
+ 3983: 'vivomoveTrend',
6723
+ 3986: 'approachS12Asia',
6724
+ 3990: 'fr255Music',
6725
+ 3991: 'fr255SmallMusic',
6726
+ 3992: 'fr255',
6727
+ 3993: 'fr255Small',
6728
+ 4001: 'approachG12Asia',
6729
+ 4002: 'approachS42Asia',
6730
+ 4005: 'descentG1',
6731
+ 4017: 'venu2PlusAsia',
6732
+ 4024: 'fr955',
6733
+ 4033: 'fr55Asia',
6734
+ 4061: 'edge540',
6735
+ 4062: 'edge840',
6736
+ 4063: 'vivosmart5',
6737
+ 4071: 'instinct2Asia',
6738
+ 4105: 'marqGen2',
6739
+ 4115: 'venusq2',
6740
+ 4116: 'venusq2music',
6741
+ 4124: 'marqGen2Aviator',
6742
+ 4125: 'd2AirX10',
6743
+ 4130: 'hrmProPlus',
6744
+ 4132: 'descentG1Asia',
6745
+ 4135: 'tactix7',
6746
+ 4155: 'instinctCrossover',
6747
+ 4169: 'edgeExplore2',
6748
+ 4222: 'descentMk3',
6749
+ 4223: 'descentMk3i',
6750
+ 4233: 'approachS70',
6751
+ 4257: 'fr265Large',
6752
+ 4258: 'fr265Small',
6753
+ 4260: 'venu3',
6754
+ 4261: 'venu3s',
6755
+ 4265: 'tacxNeoSmart',
6756
+ 4266: 'tacxNeo2Smart',
6757
+ 4267: 'tacxNeo2TSmart',
6758
+ 4268: 'tacxNeoSmartBike',
6759
+ 4269: 'tacxSatoriSmart',
6760
+ 4270: 'tacxFlowSmart',
6761
+ 4271: 'tacxVortexSmart',
6762
+ 4272: 'tacxBushidoSmart',
6763
+ 4273: 'tacxGeniusSmart',
6764
+ 4274: 'tacxFluxFluxSSmart',
6765
+ 4275: 'tacxFlux2Smart',
6766
+ 4276: 'tacxMagnum',
6767
+ 4305: 'edge1040Asia',
6768
+ 4312: 'epixGen2Pro42',
6769
+ 4313: 'epixGen2Pro47',
6770
+ 4314: 'epixGen2Pro51',
6771
+ 4315: 'fr965',
6772
+ 4341: 'enduro2',
6773
+ 4374: 'fenix7sProSolar',
6774
+ 4375: 'fenix7ProSolar',
6775
+ 4376: 'fenix7xProSolar',
6776
+ 4380: 'lily2',
6777
+ 4394: 'instinct2x',
6778
+ 4426: 'vivoactive5',
6779
+ 4432: 'fr165',
6780
+ 4433: 'fr165Music',
6781
+ 4440: 'edge1050',
6782
+ 4442: 'descentT2',
6783
+ 4446: 'hrmFit',
6784
+ 4472: 'marqGen2Commander',
6785
+ 4477: 'lilyAthlete',
6786
+ 4525: 'rallyX10',
6787
+ 4532: 'fenix8Solar',
6788
+ 4533: 'fenix8SolarLarge',
6789
+ 4534: 'fenix8Small',
6790
+ 4536: 'fenix8',
6791
+ 4556: 'd2Mach1Pro',
6792
+ 4575: 'enduro3',
6793
+ 4583: 'instinctE40mm',
6794
+ 4584: 'instinctE45mm',
6795
+ 4585: 'instinct3Solar45mm',
6796
+ 4586: 'instinct3Amoled45mm',
6797
+ 4587: 'instinct3Amoled50mm',
6798
+ 4588: 'descentG2',
6799
+ 4603: 'venuX1',
6800
+ 4606: 'hrm200',
6801
+ 4625: 'vivoactive6',
6802
+ 4631: 'fenix8Pro',
6803
+ 4633: 'edge550',
6804
+ 4634: 'edge850',
6805
+ 4643: 'venu4',
6806
+ 4644: 'venu4s',
6807
+ 4647: 'approachS44',
6808
+ 4655: 'edgeMtb',
6809
+ 4656: 'approachS50',
6810
+ 4666: 'fenixE',
6811
+ 4678: 'instinctCrossoverAmoled',
6812
+ 4745: 'bounce2',
6813
+ 4759: 'instinct3Solar50mm',
6814
+ 4775: 'tactix8Amoled',
6815
+ 4776: 'tactix8Solar',
6816
+ 4814: 'fr170Music',
6817
+ 4815: 'fr170',
6818
+ 4825: 'approachJ1',
6819
+ 4879: 'd2Mach2',
6820
+ 4916: 'fr702026',
6821
+ 4944: 'd2AirX15',
6822
+ 5056: 'd2Mach2Pro',
6509
6823
  10007: 'sdm4',
6510
- 10014: 'edge_remote',
6511
- 20119: 'training_center',
6512
- 65531: 'connectiq_simulator',
6513
- 65532: 'android_antplus_plugin',
6824
+ 10014: 'edgeRemote',
6825
+ 20119: 'trainingCenter',
6826
+ 20533: 'tacxTrainingAppWin',
6827
+ 20534: 'tacxTrainingAppMac',
6828
+ 20565: 'tacxTrainingAppMacCatalyst',
6829
+ 30045: 'tacxTrainingAppAndroid',
6830
+ 30046: 'tacxTrainingAppIos',
6831
+ 30047: 'tacxTrainingAppLegacy',
6832
+ 65531: 'connectiqSimulator',
6833
+ 65532: 'androidAntplusPlugin',
6514
6834
  65534: 'connect',
6515
6835
  },
6516
6836
  antplus_device_type: {