iobroker.squeezeboxrpc 1.5.2 → 1.6.2

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2019-2024 oweitman <oweitman@gmx.de>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2019-2025 oweitman <oweitman@gmx.de>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ![Logo](admin/squeezeboxrpc.png)
2
2
 
3
- # ioBroker Logitech Squeezebox Adapter over JSON/RPC-Protocol
3
+ # ioBroker Logitech/Lyrion Squeezebox Adapter over JSON/RPC-Protocol
4
4
 
5
5
  [![NPM version](https://img.shields.io/npm/v/iobroker.squeezeboxrpc.svg)](https://www.npmjs.com/package/iobroker.squeezeboxrpc)
6
6
  [![Downloads](https://img.shields.io/npm/dm/iobroker.squeezeboxrpc.svg)](https://www.npmjs.com/package/iobroker.squeezeboxrpc)
@@ -12,24 +12,19 @@
12
12
  **Tests:** ![Test and Release](https://github.com/oweitman/ioBroker.squeezeboxrpc/workflows/Test%20and%20Release/badge.svg)
13
13
 
14
14
  This is an alternative Adapter that uses the `JSON/RPC`-protocol to get data
15
- and send commands to the Logitech Media Server ([LMS](https://de.wikipedia.org/wiki/Logitech_Media_Server))
15
+ and send commands to the Logitech Media Server/Lyrion Media Server ([LMS](https://de.wikipedia.org/wiki/Lyrion_Music_Server))
16
16
  for controlling connected devices like
17
17
 
18
18
  - native [squeezebox](https://de.wikipedia.org/wiki/Squeezebox),
19
19
  - raspberry pi with additional audio module and small linux based firmwares
20
20
  like [picoreplayer](https://picoreplayer.org/) or [max2play](https://www.max2play.com).
21
+ - WiiM Multiroom Audio ([can talk to an LMS/Lyrion server](https://faq.wiimhome.com/en/support/solutions/articles/72000610226-how-to-stream-music-from-lms-to-your-wiim-device-with-squeezelite))
21
22
  - with plugins chromecast, airplay or `UPnP/DLNA`-Devices
22
23
 
23
24
  The `LMS`-Server can manage/provide very big music collections on harddrives
24
25
  or `NAS`, connect to different streaming providers like `Spotify`, `Deezer`,
25
26
  `Soundcloud`, `shoutcast`, `tunein`, `napster`, `pandora`, `tidal` and more
26
27
 
27
- Why another `Squeezebox` adapter?
28
-
29
- The existing adapter use `telnet` to access the `LMS`. The telnet has some disadvantages.
30
- The actual main web interface of the `LMS` also uses the rpc/json-protocol to get
31
- all needed informations or send commands to the server/players.
32
-
33
28
  ## Features
34
29
 
35
30
  - most of [data](#server) that the `LMS`-Service provides is available in the adapter
@@ -49,7 +44,7 @@ all needed informations or send commands to the server/players.
49
44
 
50
45
  - Install the package
51
46
  - Create an instance
52
- - Configure the Instance with the IP of the logitech media server
47
+ - Configure the Instance with the IP of the logitech/Lyrion media server
53
48
  and the port (normaly 9000)
54
49
  - start/restart the instance
55
50
 
@@ -197,7 +192,7 @@ For more information visit the CLI-documentation:
197
192
 
198
193
  ![Player button bar](/widgets/squeezeboxrpc/img/players.png)
199
194
 
200
- All players that are integrated into your Logitech Media Server can be selected\
195
+ All players that are integrated into your Logitech/Lyrion Media Server can be selected\
201
196
  using this widget. After selecting a `squeezerpc.?` instance, the available\
202
197
  players are displayed in the widget.
203
198
 
@@ -227,7 +222,7 @@ players are displayed in the widget.
227
222
  ![Favorites button bar](/widgets/squeezeboxrpc/img/favorites.png)
228
223
 
229
224
  You can use this widget to select all of the favorites that have been\
230
- created in your Logitech Media Server.
225
+ created in your Logitech/Lyrion Media Server.
231
226
  After selecting the Player widget, the available favorites are displayed in the widget.
232
227
 
233
228
  | Group | Attribute | Description |
@@ -440,7 +435,7 @@ you must connect the button to the player widget.
440
435
 
441
436
  ### Playlist
442
437
 
443
- ![Number](/widgets/squeezeboxrpc/img/playlist.png)
438
+ ![Playlist](/widgets/squeezeboxrpc/img/playlist.png)
444
439
 
445
440
  Display the playlist from the server. If you click on an entry the playlist
446
441
  is loaded and the player starts.
@@ -448,19 +443,19 @@ The widged dosent refresh automaticly, you have to press the refreshh button.
448
443
 
449
444
  #### Attributes for Playlist
450
445
 
451
- | Group | Attribute | Description |
452
- | --------------------- | ----------------- | ----------------------------------------------------------------- |
453
- | Player widget | General group | Selection of the player widget. |
446
+ | Group | Attribute | Description |
447
+ | ------------- | ------------- | ------------------------------- |
448
+ | Player widget | General group | Selection of the player widget. |
454
449
 
455
450
  The widget itself has very little formatting.
456
451
  For self formating there are some predefined css-classes:
457
452
 
458
- | CSS-class | description |
459
- | ---------- | ----------------------------------------- |
460
- | plcontainer| Class name assigned to the ul-tag |
461
- | plentry | Class name assigned to the li-tag |
462
- | plrefresh | Class name assigned to the refresh-li tag |
463
- | pltext | Class name assigned to the playlist name |
453
+ | CSS-class | description |
454
+ | ----------- | ----------------------------------------- |
455
+ | plcontainer | Class name assigned to the ul-tag |
456
+ | plentry | Class name assigned to the li-tag |
457
+ | plrefresh | Class name assigned to the refresh-li tag |
458
+ | pltext | Class name assigned to the playlist name |
464
459
 
465
460
  The following CSS for the vis-css tab can serve as an example:
466
461
 
@@ -469,21 +464,21 @@ Dark-mode
469
464
  ```css
470
465
  .plentry {
471
466
  border: 1px #505050 groove;
472
- margin:1px 0px;
473
- padding:5px;
474
- background-color:#202020;
467
+ margin: 1px 0px;
468
+ padding: 5px;
469
+ background-color: #202020;
475
470
  }
476
471
  .plrefresh {
477
- padding:5px;
472
+ padding: 5px;
478
473
  }
479
474
  .plentry:hover {
480
- background-color:#404040;
475
+ background-color: #404040;
481
476
  }
482
477
  .plrefresh svg {
483
- color:#cccccc;
478
+ color: #cccccc;
484
479
  }
485
480
  .plrefresh svg:hover {
486
- color:#ffffff;
481
+ color: #ffffff;
487
482
  filter: drop-shadow(0px 0px 1px #87ceeb);
488
483
  }
489
484
  ```
@@ -493,25 +488,79 @@ Light-mode
493
488
  ```css
494
489
  .plentry {
495
490
  border: 1px #b0b0b0 groove;
496
- margin:1px 0px;
497
- padding:5px;
498
- background-color:#c0c0c0;
491
+ margin: 1px 0px;
492
+ padding: 5px;
493
+ background-color: #c0c0c0;
499
494
  }
500
495
  .plrefresh {
501
- padding:5px;
496
+ padding: 5px;
502
497
  }
503
498
  .plentry:hover {
504
- background-color:#e0e0e0;
499
+ background-color: #e0e0e0;
505
500
  }
506
501
  .plrefresh svg {
507
- color:#444444;
502
+ color: #444444;
508
503
  }
509
504
  .plrefresh svg:hover {
510
- color:#000000;
505
+ color: #000000;
511
506
  filter: drop-shadow(0px 0px 1px #87ceeb);
512
507
  }
513
508
  ```
514
509
 
510
+ ### Browser
511
+
512
+ ![Browser](/widgets/squeezeboxrpc/img/browser.png)
513
+
514
+ Displays music, albums, artists, radio stations, apps, etc. from the server.
515
+ Click on an item to navigate deeper into the hierarchy. The available commands
516
+ are displayed with additional buttons.
517
+ You can go up one level by clicking on the path displayed at the top.
518
+
519
+ #### Attributes for Browser
520
+
521
+ | Group | Attribute | Description |
522
+ | --------------------- | ------------- | ------------------------------------------------------------------- |
523
+ | Player widget | General group | Selection of the player widget. |
524
+ | debug | General group | Enable extra debugging (function reference) in the browser console. |
525
+ | debugwithfetchresults | General group | Enable extra debugging (object reference) in the browser console. |
526
+
527
+ The widget itself has very some formatting.
528
+ For self formating there are some predefined css-classes:
529
+
530
+ | CSS-class | description |
531
+ | ------------------------------------------ | ------------------------------------- |
532
+ | sqbrowser-list-container | container for the widget |
533
+ | sqbrowser-parent-directory | element to show the parent directory |
534
+ | sqbrowser-btn-svg | Class for all svg buttons |
535
+ | sqbrowser-btn-svg-menu | Class for svg menus |
536
+ | sqbrowser-scrollable-area | Class for scroll container |
537
+ | sqbrowser-list-item | Class for single item |
538
+ | sqbrowser-list-item-content | Class for item title |
539
+ | sqbrowser-button-group | Class for button group in a list item |
540
+ | sqbrowser-btn-svg sqbrowser-btn-svg-action | Class for action button |
541
+
542
+ **Note about alpha state of this widget:**
543
+
544
+ - Implementing LMS/Lyrion for browsing is hell.
545
+ - The technical model for this widget is the "Material" theme plugin
546
+ in the LMS/Lyrion server.
547
+ - Not all features are currently implemented.
548
+ - All input field types are not yet available.
549
+ - Not all item types may have been implemented.
550
+ - Optional, extensive debug output has been added for analysis (see also attributes).
551
+ - Output of the function reference: All function names are output in
552
+ order in the browser console.
553
+ - Output of the data reference: All data requested and returned
554
+ by the server is output.
555
+
556
+ If testers encounter errors/problems or missing implementations,
557
+ please provide as detailed a description as possible:
558
+
559
+ - Where does the data come from in the LMS/Lyrion
560
+ (already built-in service/additionally installed plugin)
561
+ - What steps/clicks were performed to create the problem
562
+ - What are the function references and data references?
563
+
515
564
  ## SendTo-Befehle
516
565
 
517
566
  ### cmdGeneral
@@ -524,11 +573,11 @@ Example:
524
573
 
525
574
  ```js
526
575
  async function main() {
527
- let data = await sendToAsync("squeezeboxrpc.0", "cmdGeneral", {
528
- playerid: "",
529
- cmdArray: ["playlists", "0", "999", "tags:us"],
530
- });
531
- console.log(JSON.stringify(data));
576
+ let data = await sendToAsync('squeezeboxrpc.0', 'cmdGeneral', {
577
+ playerid: '',
578
+ cmdArray: ['playlists', '0', '999', 'tags:us'],
579
+ });
580
+ console.log(JSON.stringify(data));
532
581
  }
533
582
  main();
534
583
  ```
@@ -539,11 +588,11 @@ This command is used internally by the adapter to load the favorites.
539
588
 
540
589
  ```js
541
590
  async function main() {
542
- let data = await sendToAsync("squeezeboxrpc.0", "cmdGeneral", {
543
- playerid: "",
544
- cmdArray: ["favorites", "items", "0", "999", "want_url:1", "item_id:"],
545
- });
546
- console.log(JSON.stringify(data));
591
+ let data = await sendToAsync('squeezeboxrpc.0', 'cmdGeneral', {
592
+ playerid: '',
593
+ cmdArray: ['favorites', 'items', '0', '999', 'want_url:1', 'item_id:'],
594
+ });
595
+ console.log(JSON.stringify(data));
547
596
  }
548
597
  main();
549
598
  ```
@@ -581,6 +630,20 @@ are contained in the following CLI documentation:
581
630
  ### **WORK IN PROGRESS**
582
631
 
583
632
  -->
633
+ ### 1.6.2 (2025-05-05)
634
+
635
+ - fix node version in github workflow
636
+
637
+ ### 1.6.1 (2025-05-05)
638
+
639
+ - Fix eslint
640
+
641
+ ### 1.6.0 (2025-05-05)
642
+
643
+ - upgrade dependency js-controller
644
+ - new widget, but only alpha version for testing and improvement
645
+ - fix issues of adapter checker
646
+
584
647
  ### 1.5.2 (2024-12-16)
585
648
 
586
649
  - fix spelling of iobroker upload squeezeboxrpc in readme
@@ -919,4 +982,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
919
982
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
920
983
  SOFTWARE.
921
984
 
922
- Copyright (c) 2019-2024 oweitman
985
+ Copyright (c) 2019-2025 oweitman
package/io-package.json CHANGED
@@ -1,8 +1,47 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "squeezeboxrpc",
4
- "version": "1.5.2",
4
+ "version": "1.6.2",
5
5
  "news": {
6
+ "1.6.2": {
7
+ "en": "fix node version in github workflow",
8
+ "de": "fix node version in github workflow",
9
+ "ru": "версия fix node в рабочем процессе github",
10
+ "pt": "corrigir a versão do nó no fluxo de trabalho do github",
11
+ "nl": "fix node versie in github workflow",
12
+ "fr": "correction de la version noeud dans le flux de travail github",
13
+ "it": "fix nodo versione in github workflow",
14
+ "es": "arreglar versión de nodo en github workflow",
15
+ "pl": "fix wersja węzła w github workflow",
16
+ "uk": "виправити версію вузла в github workflow",
17
+ "zh-cn": "在 github 工作流程中固定节点版本"
18
+ },
19
+ "1.6.1": {
20
+ "en": "Fix eslint",
21
+ "de": "Eslint reparieren",
22
+ "ru": "Исправить Эслинт",
23
+ "pt": "Fix eslint",
24
+ "nl": "Eslint herstellen",
25
+ "fr": "Corriger l'essence",
26
+ "it": "Fissare eslint",
27
+ "es": "Fix eslint",
28
+ "pl": "Napraw eslint",
29
+ "uk": "Фіксація еслінта",
30
+ "zh-cn": "修复丝绸"
31
+ },
32
+ "1.6.0": {
33
+ "en": "upgrade dependency js-controller\nnew widget, but only alpha version for testing and improvement\nfix issues of adapter checker",
34
+ "de": "upgrade abhängigkeit js-controller\nneue widget, aber nur alpha-version für tests und verbesserung\nprobleme des adapter-checkers beheben",
35
+ "ru": "обновление зависимостей js-контроллера\nновый виджет, но только альфа-версия для тестирования и улучшения\nустранение проблем с проверкой адаптера",
36
+ "pt": "upgrade de dependência js-controller\nnovo widget, mas apenas versão alfa para testes e melhoria\ncorrigir problemas do verificador do adaptador",
37
+ "nl": "upgrade afhankelijkheid js-controller\nnieuw widget, maar alleen alfa versie voor testen en verbetering\nproblemen van adaptercontrole oplossen",
38
+ "fr": "upgrade dépendance js-controller\nnouveau widget, mais seulement version alpha pour tester et améliorer\nrésoudre les problèmes de vérification de l'adaptateur",
39
+ "it": "potenziare la dipendenza js-controller\nnuovo widget, ma solo versione alfa per test e miglioramento\nrisolvere problemi di adattatore checker",
40
+ "es": "actualización dependencia js-controller\nnuevo widget, pero sólo versión alfa para pruebas y mejoras\nsolucionar problemas de control de adaptador",
41
+ "pl": "upgrade independent js- controller\nnowy widget, ale tylko wersja alfa do testowania i doskonalenia\nnaprawić problemy z sprawdzaniem adaptera",
42
+ "uk": "оновлення залежності js-controller\nновий віджет, але тільки альфа-версія для тестування та вдосконалення\nвиправити питання перевірки адаптера",
43
+ "zh-cn": "升级依赖性js控制器\n新部件, 但只用于测试和改进的 alpha 版本\n适配器检查器的固定问题"
44
+ },
6
45
  "1.5.2": {
7
46
  "en": "fix spelling of iobroker upload squeezeboxrpc in readme\nfix playtime bar",
8
47
  "de": "fix buchstabierung von iobroker laden pressboxrpc in readme\nspielzeitleiste",
@@ -54,19 +93,6 @@
54
93
  "pl": "naprawić kilka brakujących błędów obiektów\nsanitize więcej nazw graczy w zespołach\ndodaj polecenie sendTo \"cmdGeneral\"\nsanitize more the playername\npoprawić tłumaczenie\njeśli trackartist jest użyteczny, napisz do artysty jeśli pusty\npoprawa obsługi grafiki _ url\nprzenieść dokumentację widget z html do markdown\ndopasowanie odpowiadającego stylu karty\npoprawić widżety atrybutów\nzmienić obsługę TPE2 jeszcze raz\njsonConfig dodać opcje rozmiaru dla różnej wielkości ekranu\ntestowa realizacja obsługi TPE2. przełączanie w ustawieniach\nadd datapoints album _ artist, track _ artist, artistOriginal",
55
94
  "uk": "виправити деякі помилки відсутніх об'єктів\nдезінфікувати більше назв гравців у синкгрупах\nдодати команду \"Команда\"\nсатизувати більше ім'я гравця\nполіпшення перекладу\nякщо трактист - аваїл, то напишіть художника, якщо порожня\nпокращити роботу для арт-роботи_url\nперемістити документацію віджету з html для розмітки\nрегулюйте чуйний стиль вкладки\nполіпшення віджетів атрибутів\nзміна обробки TPE2 ще раз\njsonConfig add sizing options для різних розмірів екрана\nтестування впровадження TPE2 обробки. Перемикач в налаштуваннях\nдодавати альбоми/артист, трек_artist, художникOriginal",
56
95
  "zh-cn": "修正一些缺失的对象错误\n在同步组中消毒更多玩家名\n添加发送到命令“ cmdGeneral ”\n更多消毒玩家名称\n改进翻译\n如果 trackartist 有用, 如果空则写给艺人\n改进对艺术品的处理_ url\n将部件文档从 html 移动到下标记\n调整响应标签样式\n改进属性部件\n再次更改TPE2处理\njsonConfig 添加不同屏幕大小的大小选项\n试验实施TPE2处理。 在设置中切换\n添加数据点相册_艺人,音轨_艺人,艺人"
57
- },
58
- "1.3.17": {
59
- "en": "add edit button to the vie index field of favorites widget",
60
- "de": "fügen sie edit-taste in das vie-index-feld der favoriten widget",
61
- "ru": "добавить редактирующую кнопку в поле индекса vie",
62
- "pt": "adicionar botão de edição para o campo de índice vie de widget favorito",
63
- "nl": "bewerken knop toevoegen aan het vie index veld van favorieten widget",
64
- "fr": "ajouter le bouton d'édition au champ d'index de vie des favoris widget",
65
- "it": "aggiungere il pulsante di modifica al campo indice vie di widget preferiti",
66
- "es": "añadir botón de edición al campo índice vie de favoritos widget",
67
- "pl": "dodaj przycisk edycji do pola indeksu vie ulubionych widget",
68
- "uk": "додати кнопку редагування в vie index поле улюблених віджетів",
69
- "zh-cn": "在最爱部件的vie索引字段中添加编辑按钮"
70
96
  }
71
97
  },
72
98
  "titleLang": {
@@ -134,7 +160,7 @@
134
160
  ],
135
161
  "globalDependencies": [
136
162
  {
137
- "admin": ">=5.1.13"
163
+ "admin": ">=6.17.14"
138
164
  }
139
165
  ]
140
166
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.squeezeboxrpc",
3
- "version": "1.5.2",
3
+ "version": "1.6.2",
4
4
  "description": "ioBroker Logitech Squeezebox Adapter over JSON/RPC-Protocol",
5
5
  "author": {
6
6
  "name": "oweitman",
@@ -20,13 +20,12 @@
20
20
  "url": "https://github.com/oweitman/ioBroker.squeezeboxrpc"
21
21
  },
22
22
  "engines": {
23
- "node": ">= 18"
23
+ "node": ">= 20"
24
24
  },
25
25
  "dependencies": {
26
- "@iobroker/adapter-core": "^3.2.2",
27
- "jayson": "^4.1.2",
26
+ "@iobroker/adapter-core": "^3.2.3",
27
+ "jayson": "^4.2.0",
28
28
  "lodash": "^4.17.4",
29
- "request": "^2.88.0",
30
29
  "super": "^0.2.3"
31
30
  },
32
31
  "devDependencies": {
@@ -34,25 +33,26 @@
34
33
  "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
35
34
  "@alcalzone/release-script-plugin-license": "^3.7.0",
36
35
  "@alcalzone/release-script-plugin-manual-review": "^3.7.0",
37
- "@iobroker/adapter-dev": "^1.3.0",
38
- "@iobroker/eslint-config": "^1.0.0",
39
- "@iobroker/testing": "^5.0.0",
36
+ "@iobroker/adapter-dev": "^1.4.0",
37
+ "@iobroker/eslint-config": "^2.0.1",
38
+ "@iobroker/testing": "^5.0.4",
40
39
  "@tsconfig/node18": "^18.2.4",
41
40
  "@types/chai": "^4.3.16",
42
41
  "@types/chai-as-promised": "^8.0.0",
43
42
  "@types/mocha": "^10.0.9",
44
- "@types/node": "^22.8.6",
43
+ "@types/node": "^22.13.14",
45
44
  "@types/proxyquire": "^1.3.31",
46
45
  "@types/sinon": "^17.0.3",
47
46
  "@types/sinon-chai": "^3.2.12",
48
- "axios": "^1.7.7",
47
+ "axios": "^1.9.0",
49
48
  "chai": "^4.4.1",
50
49
  "chai-as-promised": "^8.0.0",
51
50
  "mocha": "^10.8.2",
51
+ "npm-watch": "^0.13.0",
52
52
  "proxyquire": "^2.1.3",
53
53
  "sinon": "^19.0.2",
54
54
  "sinon-chai": "^3.7.0",
55
- "typescript": "~5.6.3"
55
+ "typescript": "~5.8.3"
56
56
  },
57
57
  "main": "squeezeboxrpc.js",
58
58
  "files": [
@@ -72,7 +72,7 @@
72
72
  "test:integration": "mocha test/integration --exit",
73
73
  "test": "npm run test:js && npm run test:package",
74
74
  "check": "tsc --noEmit -p tsconfig.check.json",
75
- "lint": "eslint -c eslint.config.mjs .",
75
+ "lint": "eslint -c eslint.config.mjs . ",
76
76
  "build": "cd widgets/squeezeboxrpc && npm run build && cd ../..",
77
77
  "repochecker": "npx github:oweitman/ioBroker.repochecker https://github.com/oweitman/ioBroker.squeezeboxrpc --local",
78
78
  "translate": "translate-adapter",
@@ -2,9 +2,13 @@
2
2
  "name": "squeezeboxrpc-vis1-widget",
3
3
  "version": "1.0.0",
4
4
  "main": "squeezeboxrpc/js/squeezeboxrpc.js",
5
+ "watch": {
6
+ "build": "squeezeboxrpc/**/js/*.js"
7
+ },
5
8
  "scripts": {
6
9
  "test": "echo \"Error: no test specified\" && exit 1",
7
- "build": "esbuild squeezeboxrpc/js/bundle.js --bundle --outfile=squeezeboxrpc/js/squeezeboxrpc-dist.js --target=es6 --sourcemap",
10
+ "watch": "npm-watch",
11
+ "build": "esbuild squeezeboxrpc/js/bundle.js --bundle --outfile=squeezeboxrpc/build/squeezeboxrpc-dist.js --target=es6 --sourcemap",
8
12
  "buildxx": "esbuild squeezeboxrpc/js/bundle.js --minify --bundle --outfile=squeezeboxrpc/js/squeezeboxrpc-dist.js --target=es6 --sourcemap"
9
13
  },
10
14
  "author": "",