Skip to content

Commit d4b7d80

Browse files
committed
dep updates
1 parent 71cde62 commit d4b7d80

9 files changed

Lines changed: 46 additions & 39 deletions

File tree

package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@
1111
"watch": "rollup -c -w --watch.onEnd=\"streamdeck restart com.ntanis.essentials-for-spotify\""
1212
},
1313
"devDependencies": {
14-
"@elgato/cli": "^0.1.0",
15-
"@rollup/plugin-commonjs": "^25.0.5",
16-
"@rollup/plugin-node-resolve": "^15.2.3",
14+
"@elgato/cli": "^1.7.1",
15+
"@rollup/plugin-commonjs": "^29.0.0",
16+
"@rollup/plugin-node-resolve": "^16.0.3",
1717
"@rollup/plugin-terser": "^0.4.4",
18-
"@rollup/plugin-typescript": "^11.1.5",
19-
"@types/node": "20.1.7",
20-
"rollup": "^4.0.2",
18+
"@rollup/plugin-typescript": "^12.3.0",
19+
"@types/node": "^22.0.0",
20+
"rollup": "^4.57.1",
2121
"tslib": "^2.6.2",
22-
"typescript": "^5.3.3"
22+
"typescript": "^5.9.3"
2323
},
2424
"dependencies": {
25-
"@elgato/streamdeck": "^0.1.0",
25+
"@elgato/streamdeck": "^2.0.1",
2626
"@rollup/plugin-json": "^6.1.0",
27-
"@tsconfig/node20": "^20.1.2",
27+
"@tsconfig/node20": "^20.1.9",
2828
"cacheable-lookup": "^7.0.0",
29-
"express": "^4.18.2",
29+
"express": "^5.2.1",
3030
"rollup-plugin-copy": "^3.5.0",
31-
"undici": "^6.22.0",
31+
"undici": "^7.21.0",
3232
"uuid": "^13.0.0"
3333
}
3434
}

src/actions/action.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import StreamDeck, {
1+
import {
22
SingletonAction,
33
WillAppearEvent,
44
WillDisappearEvent,
@@ -11,6 +11,7 @@ import logger from '../library/logger.js'
1111
export class Action extends SingletonAction {
1212
settings: any = {}
1313
contexts: Array<string> = []
14+
actionObjects: Map<string, any> = new Map()
1415

1516
constructor() {
1617
super()
@@ -22,10 +23,11 @@ export class Action extends SingletonAction {
2223
})
2324
}
2425

25-
async onWillAppear(ev: WillAppearEvent<object>): Promise<void> {
26+
async onWillAppear(ev: WillAppearEvent<any>): Promise<void> {
2627
await super.onWillAppear?.(ev)
2728

2829
this.contexts.push(ev.action.id)
30+
this.actionObjects.set(ev.action.id, ev.action)
2931

3032
const oldSettings = JSON.parse(JSON.stringify(this.settings[ev.action.id] || {}))
3133

@@ -37,6 +39,7 @@ export class Action extends SingletonAction {
3739

3840
async onWillDisappear(ev: WillDisappearEvent<any>): Promise<void> {
3941
this.contexts.splice(this.contexts.indexOf(ev.action.id), 1)
42+
this.actionObjects.delete(ev.action.id)
4043
}
4144

4245
async onDidReceiveSettings(ev: DidReceiveSettingsEvent<any>): Promise<void> {
@@ -52,7 +55,7 @@ export class Action extends SingletonAction {
5255

5356
Object.assign(this.settings[context], settings)
5457

55-
await StreamDeck.client.setSettings(context, this.settings[context]).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck settings of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
58+
await this.actionObjects.get(context)?.setSettings(this.settings[context]).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck settings of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
5659

5760
if ((!internal) && connector.set)
5861
await this.onSettingsUpdated(context, oldSettings)

src/actions/add-to-playlist-button.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export default class AddToPlaylistButton extends Button {
105105
} catch (e) { }
106106

107107
for (const context of contexts) {
108-
await StreamDeck.client.sendToPropertyInspector(context, {
108+
await StreamDeck.ui.sendToPropertyInspector({
109109
event: 'getPlaylists',
110110
items
111111
}).catch(() => {})

src/actions/button.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import StreamDeck, {
1+
import {
22
KeyDownEvent,
33
KeyUpEvent,
44
WillAppearEvent,
@@ -309,18 +309,18 @@ export class Button extends Action {
309309
this.#lastTitle[context] = title
310310

311311
if (!this.#flashing[context])
312-
await StreamDeck.client.setTitle(context, title).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck title of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
312+
await this.actionObjects.get(context)?.setTitle(title).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck title of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
313313
}
314314

315315
async setImage(context: string, image?: string) {
316316
this.#lastImage[context] = image
317317

318318
if (!this.#flashing[context])
319-
await StreamDeck.client.setImage(context, image).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck image of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
319+
await this.actionObjects.get(context)?.setImage(image).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck image of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
320320
}
321321

322322
async setState(context: string, state: any) {
323-
await StreamDeck.client.setState(context, state).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck state of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
323+
await this.actionObjects.get(context)?.setState(state).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck state of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
324324
}
325325

326326
async onStateSettled(context: string, skipImageReset: boolean = false) {

src/actions/dial.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import StreamDeck, {
1+
import {
22
DialUpEvent,
33
DialDownEvent,
44
DialRotateEvent,
@@ -203,23 +203,23 @@ export class Dial extends Action {
203203
marqueeData.timeout = setTimeout(() => this.marquee(id, marqueeData.key, marqueeData.original, marqueeData.countable, marqueeData.visible, context), isInitial ? constants.DIAL_MARQUEE_INTERVAL_INITIAL : constants.DIAL_MARQUEE_INTERVAL)
204204
}
205205

206-
async onDialRotate(ev: DialRotateEvent<object>): Promise<void> {
206+
async onDialRotate(ev: DialRotateEvent<any>): Promise<void> {
207207
return this.#processAction(ev.action, ev.payload.ticks > 0 ? Dial.TYPES.ROTATE_CLOCKWISE : Dial.TYPES.ROTATE_COUNTERCLOCKWISE)
208208
}
209209

210-
async onDialUp(ev: DialUpEvent<object>): Promise<void> {
210+
async onDialUp(ev: DialUpEvent<any>): Promise<void> {
211211
if ((this.constructor as typeof Dial).HOLDABLE)
212212
while (this.#busy[ev.action.id])
213213
await new Promise(resolve => setTimeout(resolve, 100))
214214

215215
return this.#processAction(ev.action, Dial.TYPES.UP)
216216
}
217217

218-
async onDialDown(ev: DialDownEvent<object>): Promise<void> {
218+
async onDialDown(ev: DialDownEvent<any>): Promise<void> {
219219
return this.#processAction(ev.action, Dial.TYPES.DOWN)
220220
}
221221

222-
async onTouchTap(ev: TouchTapEvent<object>): Promise<void> {
222+
async onTouchTap(ev: TouchTapEvent<any>): Promise<void> {
223223
return this.#processAction(ev.action, ev.payload.hold ? Dial.TYPES.LONG_TAP : Dial.TYPES.TAP)
224224
}
225225

@@ -252,11 +252,11 @@ export class Dial extends Action {
252252
if (((!this.contexts.includes(context)) || (!connector.set)) && (!force))
253253
return
254254

255-
await StreamDeck.client.setFeedback(context, feedback).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
255+
await this.actionObjects.get(context)?.setFeedback(feedback).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
256256
}
257257

258258
async showAlert(context: string) {
259-
await StreamDeck.client.showAlert(context).catch((e: any) => logger.error(`An error occurred while showing the Stream Deck alert of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
259+
await this.actionObjects.get(context)?.showAlert().catch((e: any) => logger.error(`An error occurred while showing the Stream Deck alert of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
260260
}
261261

262262
async setIcon(context: string, icon: string, force = false) {
@@ -265,7 +265,7 @@ export class Dial extends Action {
265265

266266
this.icon = icon
267267

268-
await StreamDeck.client.setFeedback(context, {
268+
await this.actionObjects.get(context)?.setFeedback({
269269
icon
270270
}).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
271271
}
@@ -274,10 +274,10 @@ export class Dial extends Action {
274274
for (const key in this.#marquees)
275275
this.pauseMarquee(context, this.#marquees[key].key)
276276

277-
await StreamDeck.client.setFeedbackLayout(context, this.layout).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback layout of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
277+
await this.actionObjects.get(context)?.setFeedbackLayout(this.layout).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback layout of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
278278

279279
if (feedback)
280-
await StreamDeck.client.setFeedback(context, feedback).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
280+
await this.actionObjects.get(context)?.setFeedback(feedback).catch((e: any) => logger.error(`An error occurred while setting the Stream Deck feedback of "${this.manifestId}": "${e.message || 'No message.'}" @ "${e.stack || 'No stack trace.'}".`))
281281
}
282282

283283
isHolding(context: string) {

src/actions/transfer-playback-button.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export default class TransferPlaybackButton extends Button {
5252
label: deviceOnline ? (this.settings[context].spotify_device_label ?? 'Unknown\nDevice') : (this.settings[context].spotify_device_label ? `${this.settings[context].spotify_device_label} (Offline)` : 'Unknown\nDevice (Offline)')
5353
})
5454

55-
await StreamDeck.client.sendToPropertyInspector(context, {
55+
await StreamDeck.ui.sendToPropertyInspector({
5656
event: 'getDevices',
5757
items
5858
})

src/library/connector.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ class Connector extends EventEmitter {
170170
this.#accessToken = data.access_token
171171
this.#setSetup(true)
172172

173-
StreamDeck.client.setGlobalSettings({
173+
StreamDeck.settings.setGlobalSettings({
174174
clientId: this.#clientId,
175175
clientSecret: this.#clientSecret,
176176
refreshToken: this.#refreshToken,
@@ -218,7 +218,10 @@ class Connector extends EventEmitter {
218218
this.invalidateSetup(true)
219219
})
220220
else
221-
this.#server = this.#app.listen(this.#port, () => logger.info(`Connector setup server listening on port "${this.#port}".`))
221+
this.#server = this.#app.listen(this.#port, (err) => {
222+
if (err) return logger.error(`Failed to start connector setup server on port "${this.#port}": "${err.message || 'No message.'}"`)
223+
logger.info(`Connector setup server listening on port "${this.#port}".`)
224+
})
222225
}
223226

224227
invalidateSetup(force = false) {
@@ -232,9 +235,12 @@ class Connector extends EventEmitter {
232235
this.#clientId = null
233236
this.#clientSecret = null
234237

235-
this.#server = this.#app.listen(this.#port, () => logger.info(`Connector setup server listening on port "${this.#port}".`))
238+
this.#server = this.#app.listen(this.#port, (err) => {
239+
if (err) return logger.error(`Failed to start connector setup server on port "${this.#port}": "${err.message || 'No message.'}"`)
240+
logger.info(`Connector setup server listening on port "${this.#port}".`)
241+
})
236242

237-
StreamDeck.client.setGlobalSettings({
243+
StreamDeck.settings.setGlobalSettings({
238244
clientId: null,
239245
clientSecret: null,
240246
refreshToken: null,

src/library/logger.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import StreamDeck, {
2-
LogLevel
3-
} from '@elgato/streamdeck'
1+
import StreamDeck from '@elgato/streamdeck'
42

5-
export default StreamDeck.logger.setLevel(LogLevel.INFO).createScope('Essentials for Spotify')
3+
export default StreamDeck.logger.setLevel('info').createScope('Essentials for Spotify')

src/plugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ setGlobalDispatcher(dispatcher)
3030
StreamDeck.connect().then(() => {
3131
logger.info('Connected to Stream Deck.')
3232

33-
StreamDeck.client.getGlobalSettings().then(settings => {
33+
StreamDeck.settings.getGlobalSettings().then(settings => {
3434
if (settings.clientId && settings.clientSecret && settings.refreshToken) {
3535
logger.info('Found global settings.')
3636
connector.startSetup(settings.clientId, settings.clientSecret, settings.refreshToken)

0 commit comments

Comments
 (0)