@bharper/atv-js 0.2.3 → 0.2.6
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/airplay/auth.js +4 -2
- package/dist/airplay/auth.js.map +1 -1
- package/dist/companion/connection.js +2 -1
- package/dist/companion/connection.js.map +1 -1
- package/dist/companion/pairing_keepalive.js +6 -3
- package/dist/companion/pairing_keepalive.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -6
- package/dist/index.js.map +1 -1
- package/package.json +15 -2
- package/src/index.ts +65 -8
package/dist/airplay/auth.js
CHANGED
|
@@ -86,7 +86,8 @@ function touchAgent(entry) {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
}, AIRPLAY_AGENT_IDLE_MS);
|
|
89
|
-
entry.timer.unref
|
|
89
|
+
if (typeof entry.timer.unref === 'function')
|
|
90
|
+
entry.timer.unref();
|
|
90
91
|
}
|
|
91
92
|
function getPairingAgent(host, port) {
|
|
92
93
|
const key = agentKey(host, port);
|
|
@@ -107,7 +108,8 @@ function getPairingAgent(host, port) {
|
|
|
107
108
|
agentCache.delete(key);
|
|
108
109
|
}, AIRPLAY_AGENT_IDLE_MS),
|
|
109
110
|
};
|
|
110
|
-
entry.timer.unref
|
|
111
|
+
if (typeof entry.timer.unref === 'function')
|
|
112
|
+
entry.timer.unref();
|
|
111
113
|
agentCache.set(key, entry);
|
|
112
114
|
return agent;
|
|
113
115
|
}
|
package/dist/airplay/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/airplay/auth.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2GH,kDAyBC;AAMD,oDAiEC;AAzMD,2CAA6B;AAC7B,wCAAgD;AAEhD,wCAA6D;AAE7D,MAAM,eAAe,GAA2B;IAC9C,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,YAAY;IAC1B,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,0BAA0B;CAC3C,CAAC;AAEF,KAAK,UAAU,QAAQ,CACrB,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAa,EACb,KAAkB;IAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAoC,EAAE,GAAG,eAAe,EAAE,CAAC;QACxE,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/F,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,IAAI;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAQ5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEjD,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB;IACnC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,KAAK;QAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YACzD,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,8BAA8B;YAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;gBACtC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBACpB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1B,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/airplay/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,7 +86,8 @@ class CompanionConnection {
|
|
|
86
86
|
return new Promise((resolve, reject) => {
|
|
87
87
|
this.socket = net.createConnection({ host: this.host, port: this.port }, () => {
|
|
88
88
|
this.connected = true;
|
|
89
|
-
this.socket
|
|
89
|
+
if (this.socket && typeof this.socket.unref === 'function')
|
|
90
|
+
this.socket.unref();
|
|
90
91
|
resolve();
|
|
91
92
|
});
|
|
92
93
|
this.socket.on('data', (data) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/companion/connection.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAA2B;AAE3B,iDAAqE;AAGrE,IAAY,SAkBX;AAlBD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,yCAAQ,CAAA;IACR,iDAAY,CAAA;IACZ,+CAAW,CAAA;IACX,iDAAY,CAAA;IACZ,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,8CAAW,CAAA;IACX,8CAAW,CAAA;IACX,wEAAwB,CAAA;IACxB,0EAAyB,CAAA;IACzB,wDAAgB,CAAA;IAChB,4EAA0B,CAAA;IAC1B,8EAA2B,CAAA;IAC3B,0EAAyB,CAAA;AAC3B,CAAC,EAlBW,SAAS,yBAAT,SAAS,QAkBpB;AAED,MAAM,aAAa,GAAG,CAAC,CAAC;AAOxB,MAAa,mBAAmB;IACtB,MAAM,GAAsB,IAAI,CAAC;IACjC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,GAA0B,IAAI,CAAC;IACrC,QAAQ,CAAgB;IACxB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,IAAY,EAAE,IAAY,EAAE,QAAwB;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACpF,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;gBAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/companion/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,8 @@ function scheduleCleanup(key, entry) {
|
|
|
18
18
|
connectionCache.delete(key);
|
|
19
19
|
}
|
|
20
20
|
}, COMPANION_AGENT_IDLE_MS);
|
|
21
|
-
entry.timer.unref
|
|
21
|
+
if (typeof entry.timer.unref === 'function')
|
|
22
|
+
entry.timer.unref();
|
|
22
23
|
}
|
|
23
24
|
function getCompanionPairingConnection(host, port) {
|
|
24
25
|
const key = connectionKey(host, port);
|
|
@@ -40,7 +41,8 @@ function getCompanionPairingConnection(host, port) {
|
|
|
40
41
|
connectionCache.delete(key);
|
|
41
42
|
}, COMPANION_AGENT_IDLE_MS),
|
|
42
43
|
};
|
|
43
|
-
entry.timer.unref
|
|
44
|
+
if (typeof entry.timer.unref === 'function')
|
|
45
|
+
entry.timer.unref();
|
|
44
46
|
connectionCache.set(key, entry);
|
|
45
47
|
return connection;
|
|
46
48
|
}
|
|
@@ -59,7 +61,8 @@ function releaseCompanionPairingConnection(connection) {
|
|
|
59
61
|
connectionCache.delete(key);
|
|
60
62
|
}, COMPANION_AGENT_IDLE_MS),
|
|
61
63
|
};
|
|
62
|
-
entry.timer.unref
|
|
64
|
+
if (typeof entry.timer.unref === 'function')
|
|
65
|
+
entry.timer.unref();
|
|
63
66
|
connectionCache.set(key, entry);
|
|
64
67
|
}
|
|
65
68
|
// Detach listener to avoid delivering stale events.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing_keepalive.js","sourceRoot":"","sources":["../../src/companion/pairing_keepalive.ts"],"names":[],"mappings":";;AA4BA,sEAwBC;AAED,8EAoBC;AA1ED,6CAAmD;AAEnD,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAQ9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiB,CAAC;AAEjD,SAAS,aAAa,CAAC,IAAY,EAAE,IAAY;IAC/C,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,KAAY;IAChD,IAAI,KAAK,CAAC,KAAK;QAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,uBAAuB,EAAE,CAAC;YAC3D,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC5B,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"pairing_keepalive.js","sourceRoot":"","sources":["../../src/companion/pairing_keepalive.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAuB,MAAM,QAAQ,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAM/D,OAAO,EAAE,cAAc,EAAE,WAAW,EAA0C,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EACL,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAgB,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAKL,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,gBAAgB;IAChB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,gBAAgB;IAChB,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,gBAAgB;IAChB,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;CACnD;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAGxF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAe1F;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAYzB;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB;IAChB,mBAAmB,EAAE,kBAAkB,CAAC;CACzC;AAqCD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAiF5B;AAID;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAIlC;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAErF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAEhG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAE5D"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,7 @@ Object.defineProperty(exports, "HidCommand", { enumerable: true, get: function (
|
|
|
28
28
|
Object.defineProperty(exports, "MediaControlCommand", { enumerable: true, get: function () { return remote_1.MediaControlCommand; } });
|
|
29
29
|
var keyboard_1 = require("./companion/keyboard");
|
|
30
30
|
Object.defineProperty(exports, "KeyboardFocusState", { enumerable: true, get: function () { return keyboard_1.KeyboardFocusState; } });
|
|
31
|
+
const mdns_2 = require("./mdns");
|
|
31
32
|
const connection_1 = require("./companion/connection");
|
|
32
33
|
const protocol_1 = require("./companion/protocol");
|
|
33
34
|
const auth_1 = require("./companion/auth");
|
|
@@ -88,16 +89,65 @@ async function finishCompanionPairing(session, pin, displayName) {
|
|
|
88
89
|
}
|
|
89
90
|
return creds;
|
|
90
91
|
}
|
|
92
|
+
function errorMessage(error) {
|
|
93
|
+
if (error instanceof Error)
|
|
94
|
+
return error.message;
|
|
95
|
+
return String(error);
|
|
96
|
+
}
|
|
97
|
+
function matchesDevice(target, candidate) {
|
|
98
|
+
if (target.identifier && candidate.identifier === target.identifier)
|
|
99
|
+
return true;
|
|
100
|
+
if (candidate.address === target.address)
|
|
101
|
+
return true;
|
|
102
|
+
return candidate.name === target.name;
|
|
103
|
+
}
|
|
104
|
+
function mergeDiscoveredDevice(target, discovered) {
|
|
105
|
+
return {
|
|
106
|
+
...target,
|
|
107
|
+
...discovered,
|
|
108
|
+
properties: { ...target.properties, ...discovered.properties },
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
async function connectCompanion(device, companionCredentials) {
|
|
112
|
+
const connection = new connection_1.CompanionConnection(device.address, device.port);
|
|
113
|
+
const protocol = new protocol_1.CompanionProtocol(connection, companionCredentials);
|
|
114
|
+
connection.setListener(protocol);
|
|
115
|
+
await protocol.start();
|
|
116
|
+
return protocol;
|
|
117
|
+
}
|
|
118
|
+
async function discoverLatestDevice(device) {
|
|
119
|
+
const discovered = await (0, mdns_2.scan)(3000, false);
|
|
120
|
+
return discovered.find((candidate) => matchesDevice(device, candidate)) || null;
|
|
121
|
+
}
|
|
91
122
|
/**
|
|
92
123
|
* Connect to an Apple TV using stored credentials.
|
|
93
124
|
* Performs pair-verify and sets up encrypted Companion channel.
|
|
94
125
|
*/
|
|
95
126
|
async function connect(device, credentials) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
127
|
+
let activeDevice = device;
|
|
128
|
+
let protocol;
|
|
129
|
+
try {
|
|
130
|
+
protocol = await connectCompanion(activeDevice, credentials.companion);
|
|
131
|
+
}
|
|
132
|
+
catch (initialError) {
|
|
133
|
+
let discovered = null;
|
|
134
|
+
try {
|
|
135
|
+
discovered = await discoverLatestDevice(activeDevice);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
discovered = null;
|
|
139
|
+
}
|
|
140
|
+
if (!discovered || discovered.port === activeDevice.port) {
|
|
141
|
+
throw initialError;
|
|
142
|
+
}
|
|
143
|
+
activeDevice = mergeDiscoveredDevice(activeDevice, discovered);
|
|
144
|
+
try {
|
|
145
|
+
protocol = await connectCompanion(activeDevice, credentials.companion);
|
|
146
|
+
}
|
|
147
|
+
catch (retryError) {
|
|
148
|
+
throw new Error(`Companion connection failed on saved port ${device.port} and discovered port ${activeDevice.port}: ${errorMessage(retryError)}`, { cause: initialError instanceof Error ? initialError : undefined });
|
|
149
|
+
}
|
|
150
|
+
}
|
|
101
151
|
// Post-connection initialization (order matters!)
|
|
102
152
|
// 1. Send system info
|
|
103
153
|
// Client ID is stored hex-encoded in credentials, decode to get the actual UUID bytes
|
|
@@ -133,7 +183,7 @@ async function connect(device, credentials) {
|
|
|
133
183
|
protocol.subscribeEvent('_iMC');
|
|
134
184
|
const conn = {
|
|
135
185
|
protocol,
|
|
136
|
-
device,
|
|
186
|
+
device: activeDevice,
|
|
137
187
|
credentials,
|
|
138
188
|
_keyboardFocusState: keyboard_2.KeyboardFocusState.Unknown,
|
|
139
189
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkDH,kDAGC;AAKD,oDASC;AAMD,sDAeC;AAKD,wDAgBC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bharper/atv-js",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Apple TV control library - mDNS discovery, AirPlay/Companion pairing, remote control, keyboard input",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"remote": "ts-node examples/remote.ts"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
+
"@bharper/atv-js": "^0.2.3",
|
|
18
19
|
"@noble/ciphers": "^2.1.1",
|
|
19
20
|
"bplist-creator": "^0.1.0",
|
|
20
21
|
"bplist-parser": "^0.3.2",
|
|
@@ -29,5 +30,17 @@
|
|
|
29
30
|
},
|
|
30
31
|
"engines": {
|
|
31
32
|
"node": ">=18.0.0"
|
|
32
|
-
}
|
|
33
|
+
},
|
|
34
|
+
"directories": {
|
|
35
|
+
"example": "examples",
|
|
36
|
+
"test": "test"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [],
|
|
39
|
+
"author": "",
|
|
40
|
+
"license": "ISC",
|
|
41
|
+
"type": "commonjs",
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/bsharper/atvjs/issues"
|
|
44
|
+
},
|
|
45
|
+
"homepage": "https://github.com/bsharper/atvjs#readme"
|
|
33
46
|
}
|
package/src/index.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { HapCredentials, Credentials, parseCredentials, serializeCredentials } f
|
|
|
8
8
|
export { RemoteKey, HidCommand, MediaControlCommand } from './companion/remote';
|
|
9
9
|
export { KeyboardFocusState } from './companion/keyboard';
|
|
10
10
|
|
|
11
|
-
import { AppleTVDevice } from './mdns';
|
|
11
|
+
import { AppleTVDevice, scan as scanDevices } from './mdns';
|
|
12
12
|
import { CompanionConnection } from './companion/connection';
|
|
13
13
|
import { CompanionProtocol } from './companion/protocol';
|
|
14
14
|
import { CompanionPairSetupProcedure } from './companion/auth';
|
|
@@ -122,6 +122,41 @@ export interface AppleTVConnection {
|
|
|
122
122
|
_keyboardFocusState: KeyboardFocusState;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
function errorMessage(error: unknown): string {
|
|
126
|
+
if (error instanceof Error) return error.message;
|
|
127
|
+
return String(error);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function matchesDevice(target: AppleTVDevice, candidate: AppleTVDevice): boolean {
|
|
131
|
+
if (target.identifier && candidate.identifier === target.identifier) return true;
|
|
132
|
+
if (candidate.address === target.address) return true;
|
|
133
|
+
return candidate.name === target.name;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function mergeDiscoveredDevice(target: AppleTVDevice, discovered: AppleTVDevice): AppleTVDevice {
|
|
137
|
+
return {
|
|
138
|
+
...target,
|
|
139
|
+
...discovered,
|
|
140
|
+
properties: { ...target.properties, ...discovered.properties },
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
async function connectCompanion(
|
|
145
|
+
device: AppleTVDevice,
|
|
146
|
+
companionCredentials: string,
|
|
147
|
+
): Promise<CompanionProtocol> {
|
|
148
|
+
const connection = new CompanionConnection(device.address, device.port);
|
|
149
|
+
const protocol = new CompanionProtocol(connection, companionCredentials);
|
|
150
|
+
connection.setListener(protocol);
|
|
151
|
+
await protocol.start();
|
|
152
|
+
return protocol;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
async function discoverLatestDevice(device: AppleTVDevice): Promise<AppleTVDevice | null> {
|
|
156
|
+
const discovered = await scanDevices(3000, false);
|
|
157
|
+
return discovered.find((candidate) => matchesDevice(device, candidate)) || null;
|
|
158
|
+
}
|
|
159
|
+
|
|
125
160
|
/**
|
|
126
161
|
* Connect to an Apple TV using stored credentials.
|
|
127
162
|
* Performs pair-verify and sets up encrypted Companion channel.
|
|
@@ -130,12 +165,34 @@ export async function connect(
|
|
|
130
165
|
device: AppleTVDevice,
|
|
131
166
|
credentials: Credentials,
|
|
132
167
|
): Promise<AppleTVConnection> {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
168
|
+
let activeDevice = device;
|
|
169
|
+
let protocol: CompanionProtocol;
|
|
170
|
+
|
|
171
|
+
try {
|
|
172
|
+
protocol = await connectCompanion(activeDevice, credentials.companion);
|
|
173
|
+
} catch (initialError) {
|
|
174
|
+
let discovered: AppleTVDevice | null = null;
|
|
175
|
+
try {
|
|
176
|
+
discovered = await discoverLatestDevice(activeDevice);
|
|
177
|
+
} catch {
|
|
178
|
+
discovered = null;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (!discovered || discovered.port === activeDevice.port) {
|
|
182
|
+
throw initialError;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
activeDevice = mergeDiscoveredDevice(activeDevice, discovered);
|
|
186
|
+
|
|
187
|
+
try {
|
|
188
|
+
protocol = await connectCompanion(activeDevice, credentials.companion);
|
|
189
|
+
} catch (retryError) {
|
|
190
|
+
throw new Error(
|
|
191
|
+
`Companion connection failed on saved port ${device.port} and discovered port ${activeDevice.port}: ${errorMessage(retryError)}`,
|
|
192
|
+
{ cause: initialError instanceof Error ? initialError : undefined },
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
139
196
|
|
|
140
197
|
// Post-connection initialization (order matters!)
|
|
141
198
|
// 1. Send system info
|
|
@@ -177,7 +234,7 @@ export async function connect(
|
|
|
177
234
|
|
|
178
235
|
const conn: AppleTVConnection = {
|
|
179
236
|
protocol,
|
|
180
|
-
device,
|
|
237
|
+
device: activeDevice,
|
|
181
238
|
credentials,
|
|
182
239
|
_keyboardFocusState: KeyboardFocusState.Unknown,
|
|
183
240
|
};
|