@basmilius/apple-devices 0.0.54 → 0.0.55

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/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { type AirPlayDevice, AIRPLAY } from "./airplay";
2
- export { type CompanionLinkDevice, COMPANION_LINK } from "./companion-link";
1
+ export { AirPlayDevice, AIRPLAY } from "./airplay";
2
+ export { CompanionLinkDevice, COMPANION_LINK } from "./companion-link";
3
3
  export { AppleTV, HomePod, HomePodMini } from "./model";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var h=2000,s=Symbol("com.basmilius.airplay:protocol"),r=Symbol("com.basmilius.airplay:subscribe"),c=Symbol("com.basmilius.airplay:unsubscribe");import{EventEmitter as k}from"node:events";import{AirPlay as E}from"@basmilius/apple-airplay";import{reporter as l}from"@basmilius/apple-common";import{Proto as A}from"@basmilius/apple-airplay";import{waitFor as P}from"@basmilius/apple-common";class C{get#t(){return this.#s.dataStream}get#s(){return this.#i[s]}#i;constructor(t){this.#i=t}async up(){await this.pressAndRelease(1,140)}async down(){await this.pressAndRelease(1,141)}async left(){await this.pressAndRelease(1,139)}async right(){await this.pressAndRelease(1,138)}async menu(){await this.pressAndRelease(1,134)}async play(){await this.pressAndRelease(12,176)}async playPause(){if(this.#i.state.nowPlayingClient?.playbackState===A.PlaybackState_Enum.Playing)await this.pause();else await this.play()}async pause(){await this.pressAndRelease(12,177)}async next(){await this.pressAndRelease(12,181)}async previous(){await this.pressAndRelease(12,182)}async suspend(){await this.pressAndRelease(1,130)}async select(){await this.pressAndRelease(1,137)}async wake(){await this.pressAndRelease(1,131)}async home(){await this.pressAndRelease(12,64)}async volumeUp(){await this.pressAndRelease(12,233)}async volumeDown(){await this.pressAndRelease(12,234)}async mute(){await this.pressAndRelease(12,226)}async doublePress(t,e){await this.pressAndRelease(t,e),await P(150),await this.pressAndRelease(t,e)}async longPress(t,e,i=1000){await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!0)),await P(i),await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!1))}async pressAndRelease(t,e){await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!0)),await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!1))}}import{EventEmitter as x}from"node:events";import{Proto as S}from"@basmilius/apple-airplay";class m{get bundleIdentifier(){return this.#t}get displayName(){return this.#s}get playbackQueue(){return this.#i}get playbackState(){return this.#n}get playbackStateTimestamp(){return this.#e}get supportedCommands(){return this.#a}#t;#s;#i=null;#n;#e;#a=[];constructor(t,e){this.#t=t,this.#s=e,this.#n=S.PlaybackState_Enum.Unknown,this.#a=[]}isCommandSupported(t){return this.#a.some((e)=>e.command===t)}setPlaybackQueue(t){this.#i=t}setPlaybackState(t,e){this.#n=t,this.#e=e}setSupportedCommands(t){this.#a=t}}class v extends x{get#t(){return this.#s.dataStream}get#s(){return this.#n[s]}get clients(){return this.#i}get nowPlayingClient(){return this.#e?this.#i[this.#e]??null:null}get volume(){return this.#a}get volumeAvailable(){return this.#c}get volumeCapabilities(){return this.#r}#i={};#n;#e;#a;#c;#r;constructor(t){super();this.#n=t,this.#e=null,this.#a=0,this.onDeviceInfo=this.onDeviceInfo.bind(this),this.onOriginClientProperties=this.onOriginClientProperties.bind(this),this.onPlayerClientProperties=this.onPlayerClientProperties.bind(this),this.onSendCommandResult=this.onSendCommandResult.bind(this),this.onSetArtwork=this.onSetArtwork.bind(this),this.onSetDefaultSupportedCommands=this.onSetDefaultSupportedCommands.bind(this),this.onSetNowPlayingClient=this.onSetNowPlayingClient.bind(this),this.onSetNowPlayingPlayer=this.onSetNowPlayingPlayer.bind(this),this.onSetState=this.onSetState.bind(this),this.onUpdateClient=this.onUpdateClient.bind(this),this.onUpdateContentItem=this.onUpdateContentItem.bind(this),this.onUpdateContentItemArtwork=this.onUpdateContentItemArtwork.bind(this),this.onUpdatePlayer=this.onUpdatePlayer.bind(this),this.onUpdateOutputDevice=this.onUpdateOutputDevice.bind(this),this.onVolumeControlAvailability=this.onVolumeControlAvailability.bind(this),this.onVolumeControlCapabilitiesDidChange=this.onVolumeControlCapabilitiesDidChange.bind(this),this.onVolumeDidChange=this.onVolumeDidChange.bind(this)}async[r](){this.#t.on("deviceInfo",this.onDeviceInfo),this.#t.on("originClientProperties",this.onOriginClientProperties),this.#t.on("playerClientProperties",this.onPlayerClientProperties),this.#t.on("sendCommandResult",this.onSendCommandResult),this.#t.on("setArtwork",this.onSetArtwork),this.#t.on("setDefaultSupportedCommands",this.onSetDefaultSupportedCommands),this.#t.on("setNowPlayingClient",this.onSetNowPlayingClient),this.#t.on("setNowPlayingPlayer",this.onSetNowPlayingPlayer),this.#t.on("setState",this.onSetState),this.#t.on("updateClient",this.onUpdateClient),this.#t.on("updateContentItem",this.onUpdateContentItem),this.#t.on("updateContentItemArtwork",this.onUpdateContentItemArtwork),this.#t.on("updatePlayer",this.onUpdatePlayer),this.#t.on("updateOutputDevice",this.onUpdateOutputDevice),this.#t.on("volumeControlAvailability",this.onVolumeControlAvailability),this.#t.on("volumeControlCapabilitiesDidChange",this.onVolumeControlCapabilitiesDidChange),this.#t.on("volumeDidChange",this.onVolumeDidChange)}async[c](){this.#t.off("deviceInfo",this.onDeviceInfo),this.#t.off("originClientProperties",this.onOriginClientProperties),this.#t.off("playerClientProperties",this.onPlayerClientProperties),this.#t.off("sendCommandResult",this.onSendCommandResult),this.#t.off("setArtwork",this.onSetArtwork),this.#t.off("setDefaultSupportedCommands",this.onSetDefaultSupportedCommands),this.#t.off("setNowPlayingClient",this.onSetNowPlayingClient),this.#t.off("setNowPlayingPlayer",this.onSetNowPlayingPlayer),this.#t.off("setState",this.onSetState),this.#t.off("updateClient",this.onUpdateClient),this.#t.off("updateContentItem",this.onUpdateContentItem),this.#t.off("updateContentItemArtwork",this.onUpdateContentItemArtwork),this.#t.off("updatePlayer",this.onUpdatePlayer),this.#t.off("updateOutputDevice",this.onUpdateOutputDevice),this.#t.off("volumeControlAvailability",this.onVolumeControlAvailability),this.#t.off("volumeControlCapabilitiesDidChange",this.onVolumeControlCapabilitiesDidChange),this.#t.off("volumeDidChange",this.onVolumeDidChange)}async onDeviceInfo(t){this.emit("deviceInfo",t)}async onOriginClientProperties(t){this.emit("originClientProperties",t)}async onPlayerClientProperties(t){this.emit("playerClientProperties",t)}async onSendCommandResult(t){this.emit("sendCommandResult",t)}async onSetArtwork(t){this.emit("setArtwork",t)}async onSetDefaultSupportedCommands(t){this.emit("setDefaultSupportedCommands",t)}async onSetNowPlayingClient(t){this.#e=t.client?.bundleIdentifier??null,this.emit("setNowPlayingClient",t)}async onSetNowPlayingPlayer(t){this.emit("setNowPlayingPlayer",t)}async onSetState(t){let e=this.#o(t.playerPath.client.bundleIdentifier,t.displayName);if(t.playbackState)e.setPlaybackState(t.playbackState,t.playbackStateTimestamp);if(t.supportedCommands)e.setSupportedCommands(t.supportedCommands.supportedCommands);if(t.playbackQueue)e.setPlaybackQueue(t.playbackQueue);this.emit("setState",t)}async onUpdateContentItem(t){this.emit("updateContentItem",t)}async onUpdateContentItemArtwork(t){this.emit("updateContentItemArtwork",t)}async onUpdatePlayer(t){this.emit("updatePlayer",t)}async onUpdateClient(t){this.#o(t.client.bundleIdentifier,t.client.displayName),this.emit("clients",this.#i)}async onUpdateOutputDevice(t){this.emit("updateOutputDevice",t)}async onVolumeControlAvailability(t){this.#c=t.volumeControlAvailable,this.#r=t.volumeCapabilities,this.emit("volumeControlAvailability",t.volumeControlAvailable,t.volumeCapabilities)}async onVolumeControlCapabilitiesDidChange(t){this.#c=t.capabilities.volumeControlAvailable,this.#r=t.capabilities.volumeCapabilities,this.emit("volumeControlCapabilitiesDidChange",t.capabilities.volumeControlAvailable,t.capabilities.volumeCapabilities)}async onVolumeDidChange(t){this.#a=t.volume,this.emit("volumeDidChange",t.volume)}#o(t,e){if(t in this.#i)return this.#i[t];else{let i=new m(t,e);return this.#i[t]=i,this.emit("clients",this.#i),i}}}class a extends k{get[s](){return this.#o}get#t(){return this.#o.dataStream}get isConnected(){return this.#o?.rtsp?.isConnected??!1}get remote(){return this.#s}get state(){return this.#i}#s;#i;#n;#e=!1;#a;#c;#r;#o;constructor(t){super();this.#a=t,this.#s=new C(this),this.#i=new v(this)}async connect(){if(this.#e=!1,this.#o=new E(this.#a),this.#o.rtsp.on("close",async()=>this.#l()),this.#o.rtsp.on("error",async(t)=>this.#d(t)),this.#o.rtsp.on("timeout",async()=>this.#y()),await this.#o.connect(),this.#n)this.#r=await this.#o.verify.start(this.#n);else await this.#o.pairing.start(),this.#r=await this.#o.pairing.transient();await this.#u(),this.emit("connected")}async disconnect(){this.#e=!0,clearInterval(this.#c),await this.#h(),await this.#o.disconnect(),this.emit("disconnected",!1)}async disconnectSafely(){try{await this.disconnect()}catch(t){}}async requestPlaybackQueue(t){await this.#t.exchange(this.#t.messages.playbackQueueRequest(0,t))}async sendCommand(t,e){await this.#t.exchange(this.#t.messages.sendCommand(t,e))}async setVolume(t){await this.#t.exchange(this.#t.messages.setVolume(t))}async setCredentials(t){this.#n=t}async setDiscoveryResult(t){this.#a=t}async#m(){try{await this.#o.feedback()}catch(t){l.error("Feedback error",t)}}async#l(){if(this.#e)return;this.emit("disconnected",!0)}async#d(t){l.error("AirPlay error",t),await this.disconnectSafely(),this.emit("disconnected",!0)}async#y(){l.error("AirPlay timeout"),await this.disconnectSafely(),this.emit("disconnected",!0)}async#u(){let t=this.#r;await this.#o.rtsp.enableEncryption(t.accessoryToControllerKey,t.controllerToAccessoryKey),await this.#o.setupEventStream(t.pairingId,t.sharedSecret),await this.#o.setupDataStream(t.sharedSecret),await this.#p(),this.#c=setInterval(async()=>await this.#m(),h);let e=this.#a.packet.additionals.find((i)=>("rdata"in i)&&typeof i.rdata==="object"&&("gid"in i.rdata))?.rdata.gid;if(e)await this.#t.exchange(this.#t.messages.configureConnection(e));await this.#t.exchange(this.#t.messages.deviceInfo(t.pairingId)),this.#t.on("deviceInfo",async()=>{await this.#t.exchange(this.#t.messages.setConnectionState()),await this.#t.exchange(this.#t.messages.clientUpdatesConfig())})}async#p(){await this.#i[r]()}async#h(){try{await this.#i[c]()}catch(t){l.error("State unsubscribe error",t)}}}var d=Symbol("com.basmilius.companion-link:protocol");import{EventEmitter as R}from"node:events";import{CompanionLink as D}from"@basmilius/apple-companion-link";import{reporter as u}from"@basmilius/apple-common";class p extends R{get[d](){return this.#e}get isConnected(){return this.#e?.socket?.isConnected??!1}#t;#s=!1;#i;#n;#e;constructor(t){super();this.#i=t,this.onSystemStatus=this.onSystemStatus.bind(this),this.onTVSystemStatus=this.onTVSystemStatus.bind(this)}async connect(){if(!this.#t)throw Error("Credentials are required to connect to a Companion Link device.");this.#s=!1,this.#e=new D(this.#i),this.#e.socket.on("close",async()=>this.#a()),this.#e.socket.on("error",async(t)=>this.#c(t)),await this.#e.connect(),this.#n=await this.#e.verify.start(this.#t),await this.#r(),this.emit("connected")}async disconnect(){this.#s=!0,await this.#m(),await this.#e.disconnect(),this.emit("disconnected",!1)}async setCredentials(t){this.#t=t}async setDiscoveryResult(t){this.#i=t}async getAttentionState(){return await this.#e.api.getAttentionState()}async getLaunchableApps(){return await this.#e.api.getLaunchableApps()}async getUserAccounts(){return await this.#e.api.getUserAccounts()}async launchApp(t){await this.#e.api.launchApp(t)}async launchUrl(t){await this.#e.api.launchUrl(t)}async mediaControlCommand(t,e){await this.#e.api.mediaControlCommand(t,e)}async pressButton(t,e,i){await this.#e.api.pressButton(t,e,i)}async switchUserAccount(t){await this.#e.api.switchUserAccount(t)}async#a(){if(this.#s)return;this.emit("disconnected",!0)}async#c(t){u.error("Companion Link error",t);try{await this.disconnect()}catch(e){}this.emit("disconnected",!0)}async#r(){let t=this.#n;await this.#e.socket.enableEncryption(t.accessoryToControllerKey,t.controllerToAccessoryKey),await this.#e.api._systemInfo(this.#t.pairingId),await this.#e.api._touchStart(),await this.#e.api._sessionStart(),await this.#e.api._tvrcSessionStart(),await this.#e.api._unsubscribe("_iMC"),await this.#o()}async#o(){await this.#e.api._subscribe("SystemStatus",this.onSystemStatus),await this.#e.api._subscribe("TVSystemStatus",this.onTVSystemStatus);let t=await this.getAttentionState();this.emit("power",t==="awake"||t==="screensaver")}async#m(){await this.#e.api._unsubscribe("SystemStatus",this.onSystemStatus),await this.#e.api._unsubscribe("TVSystemStatus",this.onTVSystemStatus)}async onSystemStatus(t){u.info("System Status",t),this.emit("power",t.state===2||t.state===3)}async onTVSystemStatus(t){u.info("TV System Status",t),this.emit("power",t.state===2||t.state===3)}}import{EventEmitter as T}from"node:events";import{Proto as o}from"@basmilius/apple-airplay";class w extends T{get airplay(){return this.#t}get companionLink(){return this.#s}get bundleIdentifier(){return this.#t.state.nowPlayingClient?.bundleIdentifier??null}get displayName(){return this.#t.state.nowPlayingClient?.displayName??null}get isConnected(){return this.#t.isConnected&&this.#s.isConnected}get isPlaying(){return this.playbackState===o.PlaybackState_Enum.Playing}get playbackQueue(){return this.#t.state.nowPlayingClient?.playbackQueue??null}get playbackState(){return this.#t.state.nowPlayingClient?.playbackState??o.PlaybackState_Enum.Unknown}get playbackStateTimestamp(){return this.#t.state.nowPlayingClient?.playbackStateTimestamp??-1}#t;#s;#i=!1;constructor(t,e){super();this.#t=new a(t),this.#s=new p(e),this.#t.on("connected",()=>this.#n()),this.#t.on("disconnected",(i)=>this.#e(i)),this.#s.on("connected",()=>this.#n()),this.#s.on("disconnected",(i)=>this.#e(i))}async connect(t){await this.#t.setCredentials(t),await this.#s.setCredentials(t),await this.#t.connect(),await this.#s.connect(),this.#i=!1}async disconnect(){await this.#t.disconnect(),await this.#s.disconnect()}async turnOff(){await this.#t.remote.suspend()}async turnOn(){await this.#t.remote.wake()}async pause(){await this.#t.sendCommand(o.Command.Pause)}async playPause(){await this.#t.sendCommand(o.Command.TogglePlayPause)}async play(){await this.#t.sendCommand(o.Command.Play)}async stop(){await this.#t.sendCommand(o.Command.Stop)}async next(){await this.#t.sendCommand(o.Command.NextInContext)}async previous(){await this.#t.sendCommand(o.Command.PreviousInContext)}async volumeDown(){await this.#t.remote.volumeDown()}async volumeMute(){await this.#t.remote.mute()}async volumeUp(){await this.#t.remote.volumeUp()}async getCommandInfo(t){let e=this.#t.state.nowPlayingClient;if(!e)return null;return e.supportedCommands.find((i)=>i.command===t)??null}async isCommandSupported(t){let e=this.#t.state.nowPlayingClient;if(!e)return!1;return e.isCommandSupported(t)}async#n(){if(!this.#t.isConnected||!this.#s.isConnected)return;this.emit("connected")}async#e(t){if(this.#i)return;this.#i=!0,await this.disconnect(),this.emit("disconnected",t)}}import{EventEmitter as L}from"node:events";import{Proto as n}from"@basmilius/apple-airplay";class y extends L{get airplay(){return this.#t}get bundleIdentifier(){return this.#t.state.nowPlayingClient?.bundleIdentifier??null}get displayName(){return this.#t.state.nowPlayingClient?.displayName??null}get isConnected(){return this.#t.isConnected}get isPlaying(){return this.playbackState===n.PlaybackState_Enum.Playing}get playbackQueue(){return this.#t.state.nowPlayingClient?.playbackQueue??null}get playbackState(){return this.#t.state.nowPlayingClient?.playbackState??n.PlaybackState_Enum.Unknown}get playbackStateTimestamp(){return this.#t.state.nowPlayingClient?.playbackStateTimestamp??-1}get volume(){return this.#t.state.volume??0}#t;#s=!1;constructor(t){super();this.#t=new a(t),this.#t.on("connected",()=>this.#i()),this.#t.on("disconnected",(e)=>this.#n(e))}async connect(){await this.#t.connect(),this.#s=!1}async disconnect(){await this.#t.disconnect()}async pause(){await this.#t.sendCommand(n.Command.Pause)}async playPause(){await this.#t.sendCommand(n.Command.TogglePlayPause)}async play(){await this.#t.sendCommand(n.Command.Play)}async stop(){await this.#t.sendCommand(n.Command.Stop)}async next(){await this.#t.sendCommand(n.Command.NextInContext)}async previous(){await this.#t.sendCommand(n.Command.PreviousInContext)}async setVolume(t){await this.#t.setVolume(t)}async getCommandInfo(t){let e=this.#t.state.nowPlayingClient;if(!e)return null;return e.supportedCommands.find((i)=>i.command===t)??null}async isCommandSupported(t){let e=this.#t.state.nowPlayingClient;if(!e)return!1;return e.isCommandSupported(t)}async#i(){this.emit("connected")}async#n(t){if(this.#s)return;this.#s=!0,await this.disconnect(),this.emit("disconnected",t)}}class b extends y{}class f extends y{}export{f as HomePodMini,b as HomePod,d as COMPANION_LINK,w as AppleTV,s as AIRPLAY};
1
+ var h=2000,s=Symbol("com.basmilius.airplay:protocol"),r=Symbol("com.basmilius.airplay:subscribe"),c=Symbol("com.basmilius.airplay:unsubscribe");import{EventEmitter as k}from"node:events";import{AirPlay as E}from"@basmilius/apple-airplay";import{reporter as l}from"@basmilius/apple-common";import{Proto as A}from"@basmilius/apple-airplay";import{waitFor as P}from"@basmilius/apple-common";class C{get#t(){return this.#s.dataStream}get#s(){return this.#i[s]}#i;constructor(t){this.#i=t}async up(){await this.pressAndRelease(1,140)}async down(){await this.pressAndRelease(1,141)}async left(){await this.pressAndRelease(1,139)}async right(){await this.pressAndRelease(1,138)}async menu(){await this.pressAndRelease(1,134)}async play(){await this.pressAndRelease(12,176)}async playPause(){if(this.#i.state.nowPlayingClient?.playbackState===A.PlaybackState_Enum.Playing)await this.pause();else await this.play()}async pause(){await this.pressAndRelease(12,177)}async next(){await this.pressAndRelease(12,181)}async previous(){await this.pressAndRelease(12,182)}async suspend(){await this.pressAndRelease(1,130)}async select(){await this.pressAndRelease(1,137)}async wake(){await this.pressAndRelease(1,131)}async home(){await this.pressAndRelease(12,64)}async volumeUp(){await this.pressAndRelease(12,233)}async volumeDown(){await this.pressAndRelease(12,234)}async mute(){await this.pressAndRelease(12,226)}async doublePress(t,e){await this.pressAndRelease(t,e),await P(150),await this.pressAndRelease(t,e)}async longPress(t,e,i=1000){await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!0)),await P(i),await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!1))}async pressAndRelease(t,e){await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!0)),await this.#t.exchange(this.#t.messages.sendHIDEvent(t,e,!1))}}import{EventEmitter as x}from"node:events";import{Proto as S}from"@basmilius/apple-airplay";class m{get bundleIdentifier(){return this.#t}get displayName(){return this.#s}get playbackQueue(){return this.#i}get playbackState(){return this.#n}get playbackStateTimestamp(){return this.#e}get supportedCommands(){return this.#a}#t;#s;#i=null;#n;#e;#a=[];constructor(t,e){this.#t=t,this.#s=e,this.#n=S.PlaybackState_Enum.Unknown,this.#a=[]}isCommandSupported(t){return this.#a.some((e)=>e.command===t)}setPlaybackQueue(t){this.#i=t}setPlaybackState(t,e){this.#n=t,this.#e=e}setSupportedCommands(t){this.#a=t}}class v extends x{get#t(){return this.#s.dataStream}get#s(){return this.#n[s]}get clients(){return this.#i}get nowPlayingClient(){return this.#e?this.#i[this.#e]??null:null}get volume(){return this.#a}get volumeAvailable(){return this.#c}get volumeCapabilities(){return this.#r}#i={};#n;#e;#a;#c;#r;constructor(t){super();this.#n=t,this.#e=null,this.#a=0,this.onDeviceInfo=this.onDeviceInfo.bind(this),this.onOriginClientProperties=this.onOriginClientProperties.bind(this),this.onPlayerClientProperties=this.onPlayerClientProperties.bind(this),this.onSendCommandResult=this.onSendCommandResult.bind(this),this.onSetArtwork=this.onSetArtwork.bind(this),this.onSetDefaultSupportedCommands=this.onSetDefaultSupportedCommands.bind(this),this.onSetNowPlayingClient=this.onSetNowPlayingClient.bind(this),this.onSetNowPlayingPlayer=this.onSetNowPlayingPlayer.bind(this),this.onSetState=this.onSetState.bind(this),this.onUpdateClient=this.onUpdateClient.bind(this),this.onUpdateContentItem=this.onUpdateContentItem.bind(this),this.onUpdateContentItemArtwork=this.onUpdateContentItemArtwork.bind(this),this.onUpdatePlayer=this.onUpdatePlayer.bind(this),this.onUpdateOutputDevice=this.onUpdateOutputDevice.bind(this),this.onVolumeControlAvailability=this.onVolumeControlAvailability.bind(this),this.onVolumeControlCapabilitiesDidChange=this.onVolumeControlCapabilitiesDidChange.bind(this),this.onVolumeDidChange=this.onVolumeDidChange.bind(this)}async[r](){this.#t.on("deviceInfo",this.onDeviceInfo),this.#t.on("originClientProperties",this.onOriginClientProperties),this.#t.on("playerClientProperties",this.onPlayerClientProperties),this.#t.on("sendCommandResult",this.onSendCommandResult),this.#t.on("setArtwork",this.onSetArtwork),this.#t.on("setDefaultSupportedCommands",this.onSetDefaultSupportedCommands),this.#t.on("setNowPlayingClient",this.onSetNowPlayingClient),this.#t.on("setNowPlayingPlayer",this.onSetNowPlayingPlayer),this.#t.on("setState",this.onSetState),this.#t.on("updateClient",this.onUpdateClient),this.#t.on("updateContentItem",this.onUpdateContentItem),this.#t.on("updateContentItemArtwork",this.onUpdateContentItemArtwork),this.#t.on("updatePlayer",this.onUpdatePlayer),this.#t.on("updateOutputDevice",this.onUpdateOutputDevice),this.#t.on("volumeControlAvailability",this.onVolumeControlAvailability),this.#t.on("volumeControlCapabilitiesDidChange",this.onVolumeControlCapabilitiesDidChange),this.#t.on("volumeDidChange",this.onVolumeDidChange)}async[c](){this.#t.off("deviceInfo",this.onDeviceInfo),this.#t.off("originClientProperties",this.onOriginClientProperties),this.#t.off("playerClientProperties",this.onPlayerClientProperties),this.#t.off("sendCommandResult",this.onSendCommandResult),this.#t.off("setArtwork",this.onSetArtwork),this.#t.off("setDefaultSupportedCommands",this.onSetDefaultSupportedCommands),this.#t.off("setNowPlayingClient",this.onSetNowPlayingClient),this.#t.off("setNowPlayingPlayer",this.onSetNowPlayingPlayer),this.#t.off("setState",this.onSetState),this.#t.off("updateClient",this.onUpdateClient),this.#t.off("updateContentItem",this.onUpdateContentItem),this.#t.off("updateContentItemArtwork",this.onUpdateContentItemArtwork),this.#t.off("updatePlayer",this.onUpdatePlayer),this.#t.off("updateOutputDevice",this.onUpdateOutputDevice),this.#t.off("volumeControlAvailability",this.onVolumeControlAvailability),this.#t.off("volumeControlCapabilitiesDidChange",this.onVolumeControlCapabilitiesDidChange),this.#t.off("volumeDidChange",this.onVolumeDidChange)}async onDeviceInfo(t){this.emit("deviceInfo",t)}async onOriginClientProperties(t){this.emit("originClientProperties",t)}async onPlayerClientProperties(t){this.emit("playerClientProperties",t)}async onSendCommandResult(t){this.emit("sendCommandResult",t)}async onSetArtwork(t){this.emit("setArtwork",t)}async onSetDefaultSupportedCommands(t){this.emit("setDefaultSupportedCommands",t)}async onSetNowPlayingClient(t){this.#e=t.client?.bundleIdentifier??null,this.emit("setNowPlayingClient",t)}async onSetNowPlayingPlayer(t){this.emit("setNowPlayingPlayer",t)}async onSetState(t){let e=this.#o(t.playerPath.client.bundleIdentifier,t.displayName);if(t.playbackState)e.setPlaybackState(t.playbackState,t.playbackStateTimestamp);if(t.supportedCommands)e.setSupportedCommands(t.supportedCommands.supportedCommands);if(t.playbackQueue)e.setPlaybackQueue(t.playbackQueue);this.emit("setState",t)}async onUpdateContentItem(t){this.emit("updateContentItem",t)}async onUpdateContentItemArtwork(t){this.emit("updateContentItemArtwork",t)}async onUpdatePlayer(t){this.emit("updatePlayer",t)}async onUpdateClient(t){this.#o(t.client.bundleIdentifier,t.client.displayName),this.emit("clients",this.#i)}async onUpdateOutputDevice(t){this.emit("updateOutputDevice",t)}async onVolumeControlAvailability(t){this.#c=t.volumeControlAvailable,this.#r=t.volumeCapabilities,this.emit("volumeControlAvailability",t.volumeControlAvailable,t.volumeCapabilities)}async onVolumeControlCapabilitiesDidChange(t){this.#c=t.capabilities.volumeControlAvailable,this.#r=t.capabilities.volumeCapabilities,this.emit("volumeControlCapabilitiesDidChange",t.capabilities.volumeControlAvailable,t.capabilities.volumeCapabilities)}async onVolumeDidChange(t){this.#a=t.volume,this.emit("volumeDidChange",t.volume)}#o(t,e){if(t in this.#i)return this.#i[t];else{let i=new m(t,e);return this.#i[t]=i,this.emit("clients",this.#i),i}}}class a extends k{get[s](){return this.#o}get#t(){return this.#o.dataStream}get isConnected(){return this.#o?.rtsp?.isConnected??!1}get remote(){return this.#s}get state(){return this.#i}#s;#i;#n;#e=!1;#a;#c;#r;#o;constructor(t){super();this.#a=t,this.#s=new C(this),this.#i=new v(this)}async connect(){if(this.#e=!1,this.#o=new E(this.#a),this.#o.rtsp.on("close",async()=>this.#l()),this.#o.rtsp.on("error",async(t)=>this.#d(t)),this.#o.rtsp.on("timeout",async()=>this.#y()),await this.#o.connect(),this.#n)this.#r=await this.#o.verify.start(this.#n);else await this.#o.pairing.start(),this.#r=await this.#o.pairing.transient();await this.#u(),this.emit("connected")}async disconnect(){this.#e=!0,clearInterval(this.#c),await this.#h(),await this.#o.disconnect(),this.emit("disconnected",!1)}async disconnectSafely(){try{await this.disconnect()}catch(t){}}async requestPlaybackQueue(t){await this.#t.exchange(this.#t.messages.playbackQueueRequest(0,t))}async sendCommand(t,e){await this.#t.exchange(this.#t.messages.sendCommand(t,e))}async setVolume(t){await this.#t.exchange(this.#t.messages.setVolume(t))}async setCredentials(t){this.#n=t}async setDiscoveryResult(t){this.#a=t}async#m(){try{await this.#o.feedback()}catch(t){l.error("Feedback error",t)}}async#l(){if(this.#e)return;this.emit("disconnected",!0)}async#d(t){l.error("AirPlay error",t),await this.disconnectSafely(),this.emit("disconnected",!0)}async#y(){l.error("AirPlay timeout"),await this.disconnectSafely(),this.emit("disconnected",!0)}async#u(){let t=this.#r;await this.#o.rtsp.enableEncryption(t.accessoryToControllerKey,t.controllerToAccessoryKey),await this.#o.setupEventStream(t.pairingId,t.sharedSecret),await this.#o.setupDataStream(t.sharedSecret),await this.#p(),this.#c=setInterval(async()=>await this.#m(),h);let e=this.#a.packet.additionals.find((i)=>("rdata"in i)&&typeof i.rdata==="object"&&("gid"in i.rdata))?.rdata.gid;if(e)await this.#t.exchange(this.#t.messages.configureConnection(e));await this.#t.exchange(this.#t.messages.deviceInfo(t.pairingId)),this.#t.on("deviceInfo",async()=>{await this.#t.exchange(this.#t.messages.setConnectionState()),await this.#t.exchange(this.#t.messages.clientUpdatesConfig())})}async#p(){await this.#i[r]()}async#h(){try{await this.#i[c]()}catch(t){l.error("State unsubscribe error",t)}}}var d=Symbol("com.basmilius.companion-link:protocol");import{EventEmitter as R}from"node:events";import{CompanionLink as D}from"@basmilius/apple-companion-link";import{reporter as p}from"@basmilius/apple-common";class y extends R{get[d](){return this.#e}get isConnected(){return this.#e?.socket?.isConnected??!1}#t;#s=!1;#i;#n;#e;constructor(t){super();this.#i=t,this.onSystemStatus=this.onSystemStatus.bind(this),this.onTVSystemStatus=this.onTVSystemStatus.bind(this)}async connect(){if(!this.#t)throw Error("Credentials are required to connect to a Companion Link device.");this.#s=!1,this.#e=new D(this.#i),this.#e.socket.on("close",async()=>this.#a()),this.#e.socket.on("error",async(t)=>this.#c(t)),await this.#e.connect(),this.#n=await this.#e.verify.start(this.#t),await this.#r(),this.emit("connected")}async disconnect(){this.#s=!0,await this.#m(),await this.#e.disconnect(),this.emit("disconnected",!1)}async setCredentials(t){this.#t=t}async setDiscoveryResult(t){this.#i=t}async getAttentionState(){return await this.#e.api.getAttentionState()}async getLaunchableApps(){return await this.#e.api.getLaunchableApps()}async getUserAccounts(){return await this.#e.api.getUserAccounts()}async launchApp(t){await this.#e.api.launchApp(t)}async launchUrl(t){await this.#e.api.launchUrl(t)}async mediaControlCommand(t,e){await this.#e.api.mediaControlCommand(t,e)}async pressButton(t,e,i){await this.#e.api.pressButton(t,e,i)}async switchUserAccount(t){await this.#e.api.switchUserAccount(t)}async#a(){if(this.#s)return;this.emit("disconnected",!0)}async#c(t){p.error("Companion Link error",t);try{await this.disconnect()}catch(e){}this.emit("disconnected",!0)}async#r(){let t=this.#n;await this.#e.socket.enableEncryption(t.accessoryToControllerKey,t.controllerToAccessoryKey),await this.#e.api._systemInfo(this.#t.pairingId),await this.#e.api._touchStart(),await this.#e.api._sessionStart(),await this.#e.api._tvrcSessionStart(),await this.#e.api._unsubscribe("_iMC"),await this.#o()}async#o(){await this.#e.api._subscribe("SystemStatus",this.onSystemStatus),await this.#e.api._subscribe("TVSystemStatus",this.onTVSystemStatus);let t=await this.getAttentionState();this.emit("power",t==="awake"||t==="screensaver")}async#m(){await this.#e.api._unsubscribe("SystemStatus",this.onSystemStatus),await this.#e.api._unsubscribe("TVSystemStatus",this.onTVSystemStatus)}async onSystemStatus(t){p.info("System Status",t),this.emit("power",t.state===2||t.state===3)}async onTVSystemStatus(t){p.info("TV System Status",t),this.emit("power",t.state===2||t.state===3)}}import{EventEmitter as T}from"node:events";import{Proto as o}from"@basmilius/apple-airplay";class w extends T{get airplay(){return this.#t}get companionLink(){return this.#s}get bundleIdentifier(){return this.#t.state.nowPlayingClient?.bundleIdentifier??null}get displayName(){return this.#t.state.nowPlayingClient?.displayName??null}get isConnected(){return this.#t.isConnected&&this.#s.isConnected}get isPlaying(){return this.playbackState===o.PlaybackState_Enum.Playing}get playbackQueue(){return this.#t.state.nowPlayingClient?.playbackQueue??null}get playbackState(){return this.#t.state.nowPlayingClient?.playbackState??o.PlaybackState_Enum.Unknown}get playbackStateTimestamp(){return this.#t.state.nowPlayingClient?.playbackStateTimestamp??-1}#t;#s;#i=!1;constructor(t,e){super();this.#t=new a(t),this.#s=new y(e),this.#t.on("connected",()=>this.#n()),this.#t.on("disconnected",(i)=>this.#e(i)),this.#s.on("connected",()=>this.#n()),this.#s.on("disconnected",(i)=>this.#e(i))}async connect(t){await this.#t.setCredentials(t),await this.#s.setCredentials(t),await this.#t.connect(),await this.#s.connect(),this.#i=!1}async disconnect(){await this.#t.disconnect(),await this.#s.disconnect()}async turnOff(){await this.#t.remote.suspend()}async turnOn(){await this.#t.remote.wake()}async pause(){await this.#t.sendCommand(o.Command.Pause)}async playPause(){await this.#t.sendCommand(o.Command.TogglePlayPause)}async play(){await this.#t.sendCommand(o.Command.Play)}async stop(){await this.#t.sendCommand(o.Command.Stop)}async next(){await this.#t.sendCommand(o.Command.NextInContext)}async previous(){await this.#t.sendCommand(o.Command.PreviousInContext)}async volumeDown(){await this.#t.remote.volumeDown()}async volumeMute(){await this.#t.remote.mute()}async volumeUp(){await this.#t.remote.volumeUp()}async getCommandInfo(t){let e=this.#t.state.nowPlayingClient;if(!e)return null;return e.supportedCommands.find((i)=>i.command===t)??null}async isCommandSupported(t){let e=this.#t.state.nowPlayingClient;if(!e)return!1;return e.isCommandSupported(t)}async#n(){if(!this.#t.isConnected||!this.#s.isConnected)return;this.emit("connected")}async#e(t){if(this.#i)return;this.#i=!0,await this.disconnect(),this.emit("disconnected",t)}}import{EventEmitter as L}from"node:events";import{Proto as n}from"@basmilius/apple-airplay";class u extends L{get airplay(){return this.#t}get bundleIdentifier(){return this.#t.state.nowPlayingClient?.bundleIdentifier??null}get displayName(){return this.#t.state.nowPlayingClient?.displayName??null}get isConnected(){return this.#t.isConnected}get isPlaying(){return this.playbackState===n.PlaybackState_Enum.Playing}get playbackQueue(){return this.#t.state.nowPlayingClient?.playbackQueue??null}get playbackState(){return this.#t.state.nowPlayingClient?.playbackState??n.PlaybackState_Enum.Unknown}get playbackStateTimestamp(){return this.#t.state.nowPlayingClient?.playbackStateTimestamp??-1}get volume(){return this.#t.state.volume??0}#t;#s=!1;constructor(t){super();this.#t=new a(t),this.#t.on("connected",()=>this.#i()),this.#t.on("disconnected",(e)=>this.#n(e))}async connect(){await this.#t.connect(),this.#s=!1}async disconnect(){await this.#t.disconnect()}async pause(){await this.#t.sendCommand(n.Command.Pause)}async playPause(){await this.#t.sendCommand(n.Command.TogglePlayPause)}async play(){await this.#t.sendCommand(n.Command.Play)}async stop(){await this.#t.sendCommand(n.Command.Stop)}async next(){await this.#t.sendCommand(n.Command.NextInContext)}async previous(){await this.#t.sendCommand(n.Command.PreviousInContext)}async setVolume(t){await this.#t.setVolume(t)}async getCommandInfo(t){let e=this.#t.state.nowPlayingClient;if(!e)return null;return e.supportedCommands.find((i)=>i.command===t)??null}async isCommandSupported(t){let e=this.#t.state.nowPlayingClient;if(!e)return!1;return e.isCommandSupported(t)}async#i(){this.emit("connected")}async#n(t){if(this.#s)return;this.#s=!0,await this.disconnect(),this.emit("disconnected",t)}}class b extends u{}class f extends u{}export{f as HomePodMini,b as HomePod,y as CompanionLinkDevice,d as COMPANION_LINK,w as AppleTV,a as AirPlayDevice,s as AIRPLAY};
2
2
 
3
- //# debugId=882A6B361C94826064756E2164756E21
3
+ //# debugId=52304CBD8278A25364756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -15,6 +15,6 @@
15
15
  "import HomePodBase from './homepod-base';\n\nexport default class extends HomePodBase {}\n"
16
16
  ],
17
17
  "mappings": "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",
18
- "debugId": "882A6B361C94826064756E2164756E21",
18
+ "debugId": "52304CBD8278A25364756E2164756E21",
19
19
  "names": []
20
20
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@basmilius/apple-devices",
3
3
  "description": "Exposes various Apple devices to connect with either AirPlay or Companion Link.",
4
- "version": "0.0.54",
4
+ "version": "0.0.55",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": {
@@ -43,9 +43,9 @@
43
43
  }
44
44
  },
45
45
  "dependencies": {
46
- "@basmilius/apple-airplay": "0.0.54",
47
- "@basmilius/apple-common": "0.0.54",
48
- "@basmilius/apple-companion-link": "0.0.54"
46
+ "@basmilius/apple-airplay": "0.0.55",
47
+ "@basmilius/apple-common": "0.0.55",
48
+ "@basmilius/apple-companion-link": "0.0.55"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@basmilius/tools": "^2.23.0",