@homebridge-plugins/homebridge-sharkiq 1.5.3-beta.5 → 1.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
- ## v1.5.3 (Pending Release)
5
+ ## v1.6.0 (Pending Release)
6
6
 
7
7
  ### Changed
8
8
 
@@ -12,6 +12,8 @@ All notable changes to this project will be documented in this file. This projec
12
12
  - chore: log the start command and whether shark accepts it in debug mode, to diagnose a vacuum that will not leave the dock from homekit (#68)
13
13
  - style(ui): standardise the custom ui layout and sync the support tab with the readme
14
14
  - fix(ui): fall back to the older copy command when the clipboard api is unavailable, so the oauth url copy button works over plain http (#84)
15
+ - feat: send vacuum commands through the newer sharkninja api that the current sharkclean app uses, so newer vacuums actually respond, keeping ayla as the fallback (#68)
16
+ - chore: log whether each vacuum is live on the new api and read the state back after a mode command, to diagnose a start command that the api accepts but the vacuum ignores (#68)
15
17
 
16
18
  ## v1.5.2 (2026-07-22)
17
19
 
package/dist/config.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import type { AuthData, OAuthData } from './type';
1
+ import type { Auth0Data, AuthData, OAuthData } from './type';
2
2
  export declare function getAuthData(authFilePath: string): Promise<AuthData>;
3
3
  export declare function setAuthData(authFilePath: string, data: AuthData): Promise<void>;
4
4
  export declare function getOAuthData(oAuthFilePath: string): Promise<OAuthData>;
5
+ export declare function getAuth0Data(auth0FilePath: string): Promise<Auth0Data>;
6
+ export declare function setAuth0Data(auth0FilePath: string, data: Auth0Data): Promise<void>;
5
7
  export declare function removeFile(filePath: string): Promise<void>;
6
8
  export declare function generateURL(oauth_file_path: string, europe?: boolean): Promise<string>;
7
9
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAOjD,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQzE;AAED,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrF;AAED,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ5E;AAUD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AAED,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B1F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAO5D,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQzE;AAED,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrF;AAED,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ5E;AAUD,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAO5E;AAED,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxF;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AAED,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B1F"}
package/dist/config.js CHANGED
@@ -37,6 +37,23 @@ async function setOAuthData(oAuthFilePath, data) {
37
37
  return Promise.reject(new Error(`Error writing OAuth data: ${error}`));
38
38
  }
39
39
  }
40
+ export async function getAuth0Data(auth0FilePath) {
41
+ try {
42
+ const data = await fs.readFile(auth0FilePath, 'utf8');
43
+ return JSON.parse(data);
44
+ }
45
+ catch (error) {
46
+ return Promise.reject(new Error(`Error reading Auth0 data: ${error}`));
47
+ }
48
+ }
49
+ export async function setAuth0Data(auth0FilePath, data) {
50
+ try {
51
+ await fs.writeFile(auth0FilePath, JSON.stringify(data, null, 4), 'utf8');
52
+ }
53
+ catch (error) {
54
+ return Promise.reject(new Error(`Error writing Auth0 data: ${error}`));
55
+ }
56
+ }
40
57
  export async function removeFile(filePath) {
41
58
  try {
42
59
  await fs.unlink(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAQxC,UAAU,WAAW;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CACvD;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,UAAQ,EACd,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED,qBAAa,KAAK;IACT,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;gBAEV,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAY3J,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAoC1B,aAAa;CAW5B"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AASxC,UAAU,WAAW;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CACvD;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,UAAQ,EACd,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED,qBAAa,KAAK;IACT,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;gBAEV,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAY3J,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAoC1B,aAAa;CAW5B"}
package/dist/login.js CHANGED
@@ -1,5 +1,6 @@
1
+ import { join } from 'node:path';
1
2
  import process from 'node:process';
2
- import { generateURL, getAuthData, getOAuthData, removeFile, setAuthData } from './config.js';
3
+ import { generateURL, getAuthData, getOAuthData, removeFile, setAuth0Data, setAuthData } from './config.js';
3
4
  import { global_vars } from './sharkiq-js/const.js';
4
5
  import { addSeconds } from './utils.js';
5
6
  export async function exchangeOAuthCodeForAuthTokens(auth_file, oauth_file, code, europe = false, app_id, app_secret, log) {
@@ -30,6 +31,17 @@ export async function exchangeOAuthCodeForAuthTokens(auth_file, oauth_file, code
30
31
  }
31
32
  const tokenData = await response.json();
32
33
  log?.debug('Token Data:', JSON.stringify(tokenData));
34
+ // Keep the Auth0 token set too - the newer SharkNinja device API signs its
35
+ // requests with the id_token directly, and the refresh token lets the
36
+ // plugin renew it without another browser sign-in
37
+ if (tokenData.refresh_token) {
38
+ const auth0File = join(auth_file, '..', global_vars.AUTH0_FILE);
39
+ await setAuth0Data(auth0File, {
40
+ id_token: tokenData.id_token,
41
+ refresh_token: tokenData.refresh_token,
42
+ expiration: addSeconds(new Date(), tokenData.expires_in ?? 3600),
43
+ }).catch(() => undefined);
44
+ }
33
45
  const reqData2 = {
34
46
  method: 'POST',
35
47
  headers: {
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMvC,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,SAAiB,EACjB,UAAkB,EAClB,IAAY,EACZ,MAAM,GAAG,KAAK,EACd,MAAe,EACf,UAAmB,EACnB,GAAiB;IAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAA;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAA;IAC1E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACjG,MAAM,iBAAiB,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IACjH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAA;IAEhD,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,IAAI;QACJ,aAAa,EAAE,SAAS,CAAC,WAAW;QACpC,YAAY,EAAE,WAAW,CAAC,YAAY;KACvC,CAAA;IAED,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,WAAW,CAAC,YAAY;SACzC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAA;IACD,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0B,CAAA;IAC/D,GAAG,EAAE,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAEpD,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,iBAAiB;YAC7B,KAAK,EAAE,SAAS,CAAC,QAAQ;SAC1B,CAAC;QACJ,yFAAyF;KACzE,CAAA;IAEhB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,uBAAuB,EAAE,QAAQ,CAAC,CAAA;IAC3E,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAClG,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,IAAI,EAAkD,CAAA;IAC5F,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;IAC1B,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACxE,GAAG,EAAE,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAEjE,MAAM,WAAW,CAAC,SAAS,EAAE,aAAqD,CAAC,CAAA;IACnF,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,OAAO,KAAK;IACT,GAAG,CAAQ;IACX,SAAS,CAAQ;IACjB,UAAU,CAAQ;IAClB,KAAK,CAAQ;IACb,QAAQ,CAAQ;IAChB,MAAM,CAAQ;IACd,UAAU,CAAQ;IAClB,SAAS,CAAQ;IACjB,MAAM,CAAS;IAEtB,YAAY,GAAW,EAAE,SAAiB,EAAE,UAAkB,EAAE,KAAa,EAAE,QAAgB,EAAE,SAAiB,EAAE,MAAM,GAAG,KAAK,EAAE,MAAe,EAAE,UAAmB;QACtK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QACzF,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IAC3G,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAA;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YACjC,IAAI,KAAK,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC3F,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC9B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC1C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAA;wBACrG,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAA;gBACpF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;gBACpF,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAY;QACtC,MAAM,8BAA8B,CAClC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,GAAG,CACT,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare class SharkIQPlatform implements DynamicPlatformPlugin {
10
10
  vacuumDevices: SharkIqVacuum[];
11
11
  constructor(log: Logger, config: PlatformConfig, api: API);
12
12
  login: () => Promise<SharkIqVacuum[]>;
13
+ enableSkegox: (devices: SharkIqVacuum[], storagePath: string, europe: boolean) => Promise<void>;
13
14
  configureAccessory(accessory: PlatformAccessory): void;
14
15
  discoverDevices(): void;
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEhI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAYzD,qBAAa,eAAgB,YAAW,qBAAqB;aAUzC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAX1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAA;IAGrD,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAK;IAE9C,aAAa,EAAE,aAAa,EAAE,CAAK;gBAGxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA8C1B,KAAK,QAAa,OAAO,CAAC,aAAa,EAAE,CAAC,CAgCzC;IAGD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOtD,eAAe,IAAI,IAAI;CA6DxB"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEhI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAazD,qBAAa,eAAgB,YAAW,qBAAqB;aAUzC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAX1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAA;IAGrD,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAK;IAE9C,aAAa,EAAE,aAAa,EAAE,CAAK;gBAGxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA8C1B,KAAK,QAAa,OAAO,CAAC,aAAa,EAAE,CAAC,CAiCzC;IAOD,YAAY,GAAU,SAAS,aAAa,EAAE,EAAE,aAAa,MAAM,EAAE,QAAQ,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAgBnG;IAGD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOtD,eAAe,IAAI,IAAI;CA6DxB"}
package/dist/platform.js CHANGED
@@ -5,6 +5,7 @@ import { SharkIQAccessory } from './platformAccessory.js';
5
5
  import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
6
6
  import { get_ayla_api } from './sharkiq-js/ayla_api.js';
7
7
  import { global_vars } from './sharkiq-js/const.js';
8
+ import { SkegoxApi } from './sharkiq-js/skegox_api.js';
8
9
  // SharkIQPlatform Main Class
9
10
  export class SharkIQPlatform {
10
11
  log;
@@ -90,12 +91,37 @@ export class SharkIQPlatform {
90
91
  const ayla_api = get_ayla_api(auth_file, this.log, europe);
91
92
  await ayla_api.sign_in();
92
93
  const devices = await ayla_api.get_devices();
94
+ await this.enableSkegox(devices, storagePath, europe);
93
95
  return devices;
94
96
  }
95
97
  catch (error) {
96
98
  return Promise.reject(error);
97
99
  }
98
100
  };
101
+ // Connect to the newer SharkNinja device API and link each vacuum to it.
102
+ // Newer vacuums only act on commands sent through this API, so commands are
103
+ // routed there first when the vacuum is known to it (#68). Needs the Auth0
104
+ // token set that the OAuth Assistant stores at sign-in - without it the
105
+ // plugin keeps working through the Ayla API alone.
106
+ enableSkegox = async (devices, storagePath, europe) => {
107
+ const auth0_file = join(storagePath, global_vars.AUTH0_FILE);
108
+ try {
109
+ const skegox = new SkegoxApi(this.log, auth0_file, europe);
110
+ const mapped = await skegox.init();
111
+ if (mapped > 0) {
112
+ devices.forEach((device) => {
113
+ device.skegox = skegox;
114
+ });
115
+ this.log.info(`Connected to the new SharkNinja API (${mapped} vacuum(s) linked) - commands will be sent there first.`);
116
+ }
117
+ else {
118
+ this.log.info('No vacuums found on the new SharkNinja API - commands will use the Ayla API.');
119
+ }
120
+ }
121
+ catch (error) {
122
+ this.log.info(`Could not connect to the new SharkNinja API - commands will use the Ayla API. If a vacuum ignores start/stop commands, sign in again through the OAuth Assistant in the plugin settings to enable the new API. (${error})`);
123
+ }
124
+ };
99
125
  // Restore accessory cache.
100
126
  configureAccessory(accessory) {
101
127
  this.log.info('Loading accessory from cache:', accessory.displayName);
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,19 @@ declare const global_vars: {
22
22
  FILE: string;
23
23
  };
24
24
  FILE: string;
25
+ AUTH0_FILE: string;
25
26
  EU_DEVICE_URL: string;
26
27
  EU_LOGIN_URL: string;
27
28
  EU_SHARK_APP_ID: string;
28
29
  EU_SHARK_APP_SECRET: string;
30
+ SKEGOX: {
31
+ BASE_URL: string;
32
+ API_KEY: string;
33
+ };
34
+ EU_SKEGOX: {
35
+ BASE_URL: string;
36
+ API_KEY: string;
37
+ };
29
38
  };
30
39
  export { global_vars };
31
40
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/const.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BhB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/const.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyChB,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -23,10 +23,23 @@ const global_vars = {
23
23
  FILE: '.sharkiq_oauth.json',
24
24
  },
25
25
  FILE: '.sharkiq.json',
26
+ AUTH0_FILE: '.sharkiq_auth0.json',
26
27
  EU_DEVICE_URL: 'https://ads-eu.aylanetworks.com',
27
28
  EU_LOGIN_URL: 'https://user-field-eu.aylanetworks.com',
28
29
  EU_SHARK_APP_ID: 'android_shark_prod-lg-id',
29
30
  EU_SHARK_APP_SECRET: 'android_shark_prod-xuf9mlHOo0p3Ty5bboFROSyRBlE',
31
+ // The newer SharkNinja device API used by the current SharkClean app.
32
+ // Newer vacuums only act on commands sent here - the Ayla API accepts
33
+ // them but the vacuum ignores them. Endpoint and key values are from the
34
+ // MIT-licensed shark2mqtt project (github.com/CamSoper/shark2mqtt).
35
+ SKEGOX: {
36
+ BASE_URL: 'https://stakra.slatra.thor.skegox.com',
37
+ API_KEY: 'QQdbSrgicK2PxvACI1a2P5AN2xgO78Lw1VvnYczb',
38
+ },
39
+ EU_SKEGOX: {
40
+ BASE_URL: 'https://stakra.rannsaka.thor.skegox.com',
41
+ API_KEY: 'T5m8d45crZDV9I5aCEZr4n2gSqJW64r2RNXqqhh1',
42
+ },
30
43
  };
31
44
  export { global_vars };
32
45
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/sharkiq-js/const.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,WAAW,GAAG;IAClB,UAAU,EAAE,6CAA6C;IACzD,SAAS,EAAE,8CAA8C;IACzD,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,4CAA4C;IAC9D,KAAK,EAAE;QACL,SAAS,EAAE,kCAAkC;QAC7C,QAAQ,EAAE,wCAAwC;QAClD,SAAS,EAAE,0CAA0C;QACrD,YAAY,EAAE,+EAA+E;QAC7F,YAAY,EAAE,sGAAsG;QACpH,MAAM,EAAE,uFAAuF;QAC/F,IAAI,EAAE,qBAAqB;KAC5B;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,kCAAkC;QAC7C,QAAQ,EAAE,0CAA0C;QACpD,SAAS,EAAE,4CAA4C;QACvD,YAAY,EAAE,+EAA+E;QAC7F,YAAY,EAAE,sGAAsG;QACpH,MAAM,EAAE,uFAAuF;QAC/F,IAAI,EAAE,qBAAqB;KAC5B;IACD,IAAI,EAAE,eAAe;IACrB,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,wCAAwC;IACtD,eAAe,EAAE,0BAA0B;IAC3C,mBAAmB,EAAE,gDAAgD;CACtE,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/sharkiq-js/const.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,WAAW,GAAG;IAClB,UAAU,EAAE,6CAA6C;IACzD,SAAS,EAAE,8CAA8C;IACzD,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,4CAA4C;IAC9D,KAAK,EAAE;QACL,SAAS,EAAE,kCAAkC;QAC7C,QAAQ,EAAE,wCAAwC;QAClD,SAAS,EAAE,0CAA0C;QACrD,YAAY,EAAE,+EAA+E;QAC7F,YAAY,EAAE,sGAAsG;QACpH,MAAM,EAAE,uFAAuF;QAC/F,IAAI,EAAE,qBAAqB;KAC5B;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,kCAAkC;QAC7C,QAAQ,EAAE,0CAA0C;QACpD,SAAS,EAAE,4CAA4C;QACvD,YAAY,EAAE,+EAA+E;QAC7F,YAAY,EAAE,sGAAsG;QACpH,MAAM,EAAE,uFAAuF;QAC/F,IAAI,EAAE,qBAAqB;KAC5B;IACD,IAAI,EAAE,eAAe;IACrB,UAAU,EAAE,qBAAqB;IACjC,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,wCAAwC;IACtD,eAAe,EAAE,0BAA0B;IAC3C,mBAAmB,EAAE,gDAAgD;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,EAAE;QACN,QAAQ,EAAE,uCAAuC;QACjD,OAAO,EAAE,0CAA0C;KACpD;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,yCAAyC;QACnD,OAAO,EAAE,0CAA0C;KACpD;CACF,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import type { Logger } from 'homebridge';
2
2
  import type { AylaApi } from './ayla_api.js';
3
+ import type { SkegoxApi } from './skegox_api.js';
3
4
  import { OperatingModes, PowerModes, Properties } from './properties.js';
4
5
  export interface DeviceDct {
5
6
  dsn: string;
@@ -29,6 +30,7 @@ declare class SharkIqVacuum {
29
30
  _firmware_version: string;
30
31
  log: Logger;
31
32
  _error: string | null;
33
+ skegox: SkegoxApi | null;
32
34
  constructor(ayla_api: AylaApi, device_dct: DeviceDct, log: Log, europe?: boolean);
33
35
  get oem_model_number(): string;
34
36
  get vac_model_number(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"sharkiq.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharkiq.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ class SharkIqVacuum {
29
29
  _firmware_version;
30
30
  log;
31
31
  _error;
32
+ skegox;
32
33
  // Shark IQ vacuum entity
33
34
  constructor(ayla_api, device_dct, log, europe = false) {
34
35
  this.ayla_api = ayla_api;
@@ -45,6 +46,7 @@ class SharkIqVacuum {
45
46
  this._firmware_version = '';
46
47
  this.log = log;
47
48
  this._error = null;
49
+ this.skegox = null;
48
50
  }
49
51
  // Get oem model number
50
52
  get oem_model_number() {
@@ -108,6 +110,33 @@ class SharkIqVacuum {
108
110
  if (value.value) {
109
111
  value = value.value;
110
112
  }
113
+ // Newer vacuums only act on commands sent through the newer SharkNinja
114
+ // API - the Ayla request below succeeds but the vacuum ignores it (#68).
115
+ // Try the new API first when this vacuum is known to it, and fall back
116
+ // to Ayla on any error so older setups keep working.
117
+ if (this.skegox?.available(this._dsn)) {
118
+ try {
119
+ await this.skegox.setProperty(this._dsn, property_name, value);
120
+ this.log.debug(`Set property ${property_name} to ${value} via the new SharkNinja API.`);
121
+ this.properties_full[property_name] = value;
122
+ // Read the state back shortly after a mode command, to show in the
123
+ // debug log whether the vacuum actually picked the command up
124
+ if (property_name === Properties.OPERATING_MODE) {
125
+ setTimeout(async () => {
126
+ try {
127
+ this.log.debug(`New-API state check for ${this._dsn}: ${await this.skegox.describeState(this._dsn)}`);
128
+ }
129
+ catch (error) {
130
+ this.log.debug(`New-API state check failed for ${this._dsn}: ${error}`);
131
+ }
132
+ }, 4000);
133
+ }
134
+ return;
135
+ }
136
+ catch (error) {
137
+ this.log.debug(`New SharkNinja API could not set ${property_name} (${error}), falling back to the Ayla API.`);
138
+ }
139
+ }
111
140
  const end_point = this.set_property_endpoint(`SET_${property_name}`);
112
141
  const data = { datapoint: { value } };
113
142
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"sharkiq.js","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharkiq.js","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Logger } from 'homebridge';
2
+ export declare class SkegoxApi {
3
+ private log;
4
+ private auth0_file;
5
+ private europe;
6
+ private base_url;
7
+ private api_key;
8
+ private user_id;
9
+ private household_id;
10
+ private dsn_to_device_id;
11
+ constructor(log: Logger, auth0_file: string, europe?: boolean);
12
+ private getIdToken;
13
+ private refreshIdToken;
14
+ private headers;
15
+ private request;
16
+ init(): Promise<number>;
17
+ available(dsn: string): boolean;
18
+ setProperty(dsn: string, propertyName: string, value: unknown): Promise<void>;
19
+ describeState(dsn: string): Promise<string>;
20
+ }
21
+ //# sourceMappingURL=skegox_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skegox_api.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/skegox_api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAexC,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,gBAAgB,CAAiC;gBAE7C,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAQ;YAY7C,UAAU;YASV,cAAc;IA+B5B,OAAO,CAAC,OAAO;YAeD,OAAO;IAqBf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA+C7B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMzB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWlD"}
@@ -0,0 +1,175 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import crypto from 'node:crypto';
3
+ import { getAuth0Data, setAuth0Data } from '../config.js';
4
+ import { global_vars } from './const.js';
5
+ // Client for the newer SharkNinja device API used by the current SharkClean
6
+ // app. Newer vacuums only act on commands sent through this API - the Ayla
7
+ // API accepts the same commands but the vacuum ignores them (#68).
8
+ // Protocol details are from the MIT-licensed shark2mqtt project
9
+ // (github.com/CamSoper/shark2mqtt).
10
+ export class SkegoxApi {
11
+ log;
12
+ auth0_file;
13
+ europe;
14
+ base_url;
15
+ api_key;
16
+ user_id = null;
17
+ household_id = null;
18
+ dsn_to_device_id = new Map();
19
+ constructor(log, auth0_file, europe = false) {
20
+ this.log = log;
21
+ this.auth0_file = auth0_file;
22
+ this.europe = europe;
23
+ const skegox = europe ? global_vars.EU_SKEGOX : global_vars.SKEGOX;
24
+ this.base_url = skegox.BASE_URL;
25
+ this.api_key = skegox.API_KEY;
26
+ }
27
+ // Load the stored Auth0 token set, refreshing it first when it is close to
28
+ // expiry. Rejects when no token set is stored (the user has not signed in
29
+ // through the OAuth Assistant since this feature was added).
30
+ async getIdToken(forceRefresh = false) {
31
+ const auth0Data = await getAuth0Data(this.auth0_file);
32
+ const expiration = new Date(auth0Data.expiration);
33
+ if (!forceRefresh && expiration.getTime() - Date.now() > 120 * 1000) {
34
+ return auth0Data.id_token;
35
+ }
36
+ return this.refreshIdToken(auth0Data);
37
+ }
38
+ async refreshIdToken(auth0Data) {
39
+ const oauthConfig = this.europe ? global_vars.EU_OAUTH : global_vars.OAUTH;
40
+ const response = await fetch(oauthConfig.TOKEN_URL, {
41
+ method: 'POST',
42
+ headers: {
43
+ 'Content-Type': 'application/json',
44
+ 'Auth0-Client': oauthConfig.AUTH0_CLIENT,
45
+ },
46
+ body: JSON.stringify({
47
+ grant_type: 'refresh_token',
48
+ client_id: oauthConfig.CLIENT_ID,
49
+ refresh_token: auth0Data.refresh_token,
50
+ }),
51
+ });
52
+ if (!response.ok) {
53
+ return Promise.reject(new Error(`Unable to refresh the SharkNinja sign-in token. HTTP ${response.status}`));
54
+ }
55
+ const tokenData = await response.json();
56
+ const updated = {
57
+ id_token: tokenData.id_token,
58
+ // Auth0 may rotate the refresh token - keep the old one when it does not
59
+ refresh_token: tokenData.refresh_token ?? auth0Data.refresh_token,
60
+ expiration: new Date(Date.now() + (tokenData.expires_in ?? 3600) * 1000),
61
+ };
62
+ await setAuth0Data(this.auth0_file, updated);
63
+ this.log.debug('Refreshed the SharkNinja sign-in token for the new API.');
64
+ return updated.id_token;
65
+ }
66
+ // The signature header is required to be present but its value is not
67
+ // validated by the server, so random bytes are sufficient.
68
+ headers(idToken) {
69
+ const now = new Date().toISOString().replace(/[-:]/g, '').replace(/\.\d{3}/, '');
70
+ return {
71
+ 'Authorization': `Bearer ${idToken}`,
72
+ 'content-type': 'application/json',
73
+ 'x-api-key': this.api_key,
74
+ 'x-iotn-request-signature': `SN-HMAC-SHA256 Credential=x/${now}/*/end-user-api/sn_request, `
75
+ + 'SignedHeaders=host;x-sn-date;x-sn-nonce, '
76
+ + `Signature=${crypto.randomBytes(32).toString('hex')}`,
77
+ 'x-iotn-caller': 'ENDUSER_MOBILEAPP',
78
+ 'x-sn-nonce': crypto.randomBytes(16).toString('hex'),
79
+ 'x-sn-date': now,
80
+ };
81
+ }
82
+ async request(method, path, body, attempt = 0) {
83
+ const idToken = await this.getIdToken(attempt > 0);
84
+ const response = await fetch(`${this.base_url}${path}`, {
85
+ method,
86
+ headers: this.headers(idToken),
87
+ body: body === undefined ? undefined : JSON.stringify(body),
88
+ });
89
+ if (response.status === 401 && attempt === 0) {
90
+ return this.request(method, path, body, attempt + 1);
91
+ }
92
+ if (!response.ok) {
93
+ const text = await response.text().catch(() => '');
94
+ return Promise.reject(new Error(`SharkNinja API error (HTTP ${response.status}): ${text}`));
95
+ }
96
+ // Some endpoints reply with an empty body, which is still a success
97
+ return response.json().catch(() => null);
98
+ }
99
+ // Discover the user id (from the signed-in token), the household, and each
100
+ // device, and build a map from each vacuum's Ayla DSN to its device id on
101
+ // this API. Returns the number of vacuums that were mapped.
102
+ async init() {
103
+ const idToken = await this.getIdToken();
104
+ // The user id is the JWT subject claim, minus the identity-provider prefix
105
+ const payload = idToken.split('.')[1];
106
+ const claims = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
107
+ const sub = claims.sub ?? '';
108
+ this.user_id = sub.includes('|') ? sub.split('|', 2)[1] : sub;
109
+ const householdData = await this.request('GET', `/householdsEndUser?userId=${encodeURIComponent(this.user_id ?? '')}`);
110
+ const households = householdData?.households ?? [];
111
+ if (households.length === 0) {
112
+ return Promise.reject(new Error('No households found on the SharkNinja account.'));
113
+ }
114
+ this.household_id = households[0];
115
+ const deviceData = await this.request('GET', `/devicesEndUserController/${this.household_id}/users/${this.user_id}`);
116
+ const items = Array.isArray(deviceData) ? deviceData : (deviceData?.items ?? []);
117
+ for (const item of items) {
118
+ const deviceId = item?.deviceId ?? item?.snd;
119
+ if (!deviceId) {
120
+ continue;
121
+ }
122
+ try {
123
+ const device = await this.request('GET', `/devicesEndUserController/${this.household_id}/devices/${deviceId}`);
124
+ // The battery serial number has the format "<Ayla DSN>-<device id>",
125
+ // which links the device on this API to the one Ayla reports
126
+ const batterySerial = device?.registry?.Battery_Serial_Num ?? '';
127
+ if (batterySerial.includes('-')) {
128
+ const dsn = batterySerial.split('-')[0].trim().toUpperCase();
129
+ this.dsn_to_device_id.set(dsn, deviceId);
130
+ // A vacuum can exist in the new registry without actually being
131
+ // live on it - its shadow then accepts writes that nothing reads
132
+ const connected = device?.connectivityStatus?.connected === true;
133
+ this.log.debug(`Mapped vacuum DSN ${dsn} to new-API device ${deviceId} (connected: ${connected}).`);
134
+ }
135
+ else {
136
+ this.log.debug(`No battery serial number for new-API device ${deviceId}, cannot map it to a DSN.`);
137
+ }
138
+ }
139
+ catch (error) {
140
+ this.log.debug(`Unable to read new-API device ${deviceId}: ${error}`);
141
+ }
142
+ }
143
+ return this.dsn_to_device_id.size;
144
+ }
145
+ // Whether commands for this vacuum can be sent through this API
146
+ available(dsn) {
147
+ return this.dsn_to_device_id.has(String(dsn).trim().toUpperCase());
148
+ }
149
+ // Set a device property through the desired-state shadow - this is how the
150
+ // SharkClean app sends every command (start, stop, dock, power mode, ...)
151
+ async setProperty(dsn, propertyName, value) {
152
+ const deviceId = this.dsn_to_device_id.get(String(dsn).trim().toUpperCase());
153
+ if (!deviceId || !this.household_id) {
154
+ return Promise.reject(new Error(`Vacuum ${dsn} is not mapped on the new SharkNinja API.`));
155
+ }
156
+ const response = await this.request('PATCH', `/devicesEndUserController/${this.household_id}/devices/${deviceId}`, {
157
+ shadow: { properties: { desired: { [propertyName]: value } } },
158
+ });
159
+ this.log.debug(`New-API response for setting ${propertyName}: ${JSON.stringify(response)}`);
160
+ }
161
+ // One-line summary of what the new API currently holds for this vacuum,
162
+ // used after a command to see whether the write landed and was picked up
163
+ async describeState(dsn) {
164
+ const deviceId = this.dsn_to_device_id.get(String(dsn).trim().toUpperCase());
165
+ if (!deviceId || !this.household_id) {
166
+ return Promise.reject(new Error(`Vacuum ${dsn} is not mapped on the new SharkNinja API.`));
167
+ }
168
+ const device = await this.request('GET', `/devicesEndUserController/${this.household_id}/devices/${deviceId}`);
169
+ const desired = device?.shadow?.properties?.desired?.Operating_Mode;
170
+ const reported = device?.shadow?.properties?.reported?.Operating_Mode;
171
+ const connected = device?.connectivityStatus?.connected;
172
+ return `desired Operating_Mode=${JSON.stringify(desired)}, reported Operating_Mode=${JSON.stringify(reported)}, connected=${JSON.stringify(connected)}`;
173
+ }
174
+ }
175
+ //# sourceMappingURL=skegox_api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skegox_api.js","sourceRoot":"","sources":["../../src/sharkiq-js/skegox_api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=skegox_api.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skegox_api.test.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/skegox_api.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import { mkdtempSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
6
+ import { SkegoxApi } from './skegox_api.js';
7
+ const log = { debug: vi.fn(), info: vi.fn(), warn: vi.fn(), error: vi.fn() };
8
+ function fakeJwt(sub) {
9
+ const payload = Buffer.from(JSON.stringify({ sub })).toString('base64url');
10
+ return `header.${payload}.signature`;
11
+ }
12
+ function writeAuth0File(dir, msUntilExpiry = 3600 * 1000) {
13
+ const file = join(dir, '.sharkiq_auth0.json');
14
+ writeFileSync(file, JSON.stringify({
15
+ id_token: fakeJwt('auth0|user123'),
16
+ refresh_token: 'refresh-1',
17
+ expiration: new Date(Date.now() + msUntilExpiry),
18
+ }));
19
+ return file;
20
+ }
21
+ // A fetch stub that answers the discovery, command and token-refresh routes
22
+ function stubFetch(overrides = {}) {
23
+ let patchCount = 0;
24
+ const mock = vi.fn(async (url, options = {}) => {
25
+ const ok = (data) => ({ ok: true, status: 200, json: async () => data, text: async () => '' });
26
+ if (url.includes('/oauth/token')) {
27
+ return ok({ id_token: fakeJwt('auth0|user123'), refresh_token: 'refresh-2', expires_in: 3600 });
28
+ }
29
+ if (url.includes('/householdsEndUser')) {
30
+ return ok({ households: ['HH1'] });
31
+ }
32
+ if (url.includes('/users/user123')) {
33
+ return ok({ items: [{ deviceId: 'SND1' }] });
34
+ }
35
+ if (url.includes('/devices/SND1') && options.method === 'GET') {
36
+ return ok({ registry: { Battery_Serial_Num: 'DSN123-SND1' } });
37
+ }
38
+ if (options.method === 'PATCH') {
39
+ patchCount += 1;
40
+ if (overrides.failFirstPatch && patchCount === 1) {
41
+ return { ok: false, status: 401, json: async () => ({}), text: async () => 'expired' };
42
+ }
43
+ return ok({});
44
+ }
45
+ return { ok: false, status: 404, json: async () => ({}), text: async () => 'not found' };
46
+ });
47
+ vi.stubGlobal('fetch', mock);
48
+ return mock;
49
+ }
50
+ describe('skegoxApi', () => {
51
+ let dir;
52
+ beforeEach(() => {
53
+ dir = mkdtempSync(join(tmpdir(), 'skegox-test-'));
54
+ });
55
+ afterEach(() => {
56
+ vi.unstubAllGlobals();
57
+ vi.clearAllMocks();
58
+ });
59
+ it('discovers the household and maps vacuums by their Ayla DSN', async () => {
60
+ stubFetch();
61
+ const api = new SkegoxApi(log, writeAuth0File(dir));
62
+ await expect(api.init()).resolves.toBe(1);
63
+ expect(api.available('DSN123')).toBe(true);
64
+ expect(api.available(' dsn123 ')).toBe(true);
65
+ expect(api.available('OTHER')).toBe(false);
66
+ });
67
+ it('sends commands as a desired-state shadow patch', async () => {
68
+ const fetchMock = stubFetch();
69
+ const api = new SkegoxApi(log, writeAuth0File(dir));
70
+ await api.init();
71
+ await api.setProperty('dsn123', 'Operating_Mode', 2);
72
+ const patch = fetchMock.mock.calls.find(([, options]) => options?.method === 'PATCH');
73
+ expect(patch).toBeDefined();
74
+ expect(patch[0]).toContain('/devicesEndUserController/HH1/devices/SND1');
75
+ expect(JSON.parse(patch[1].body)).toEqual({
76
+ shadow: { properties: { desired: { Operating_Mode: 2 } } },
77
+ });
78
+ });
79
+ it('refreshes an expired token first and stores the rotated refresh token', async () => {
80
+ const fetchMock = stubFetch();
81
+ const file = writeAuth0File(dir, -1000);
82
+ const api = new SkegoxApi(log, file);
83
+ await api.init();
84
+ expect(fetchMock.mock.calls[0][0]).toContain('/oauth/token');
85
+ const saved = JSON.parse(readFileSync(file, 'utf8'));
86
+ expect(saved.refresh_token).toBe('refresh-2');
87
+ });
88
+ it('retries a command once with a fresh token after a 401', async () => {
89
+ const fetchMock = stubFetch({ failFirstPatch: true });
90
+ const api = new SkegoxApi(log, writeAuth0File(dir));
91
+ await api.init();
92
+ await api.setProperty('DSN123', 'Operating_Mode', 2);
93
+ const patches = fetchMock.mock.calls.filter(([, options]) => options?.method === 'PATCH');
94
+ expect(patches).toHaveLength(2);
95
+ const refreshes = fetchMock.mock.calls.filter(([url]) => url.includes('/oauth/token'));
96
+ expect(refreshes).toHaveLength(1);
97
+ });
98
+ it('rejects init when no token set is stored', async () => {
99
+ stubFetch();
100
+ const api = new SkegoxApi(log, join(dir, 'missing.json'));
101
+ await expect(api.init()).rejects.toThrow();
102
+ });
103
+ it('rejects a command for an unmapped vacuum', async () => {
104
+ stubFetch();
105
+ const api = new SkegoxApi(log, writeAuth0File(dir));
106
+ await api.init();
107
+ await expect(api.setProperty('UNKNOWN', 'Operating_Mode', 2)).rejects.toThrow('not mapped');
108
+ });
109
+ it('describes the shadow state for a mapped vacuum', async () => {
110
+ stubFetch();
111
+ const api = new SkegoxApi(log, writeAuth0File(dir));
112
+ await api.init();
113
+ const state = await api.describeState('DSN123');
114
+ expect(state).toContain('desired Operating_Mode=');
115
+ expect(state).toContain('connected=');
116
+ });
117
+ });
118
+ //# sourceMappingURL=skegox_api.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skegox_api.test.js","sourceRoot":"","sources":["../../src/sharkiq-js/skegox_api.test.ts"],"names":[],"mappings":"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"}
package/dist/type.d.ts CHANGED
@@ -8,5 +8,10 @@ interface OAuthData {
8
8
  code_verify: string;
9
9
  code_challenge: string;
10
10
  }
11
- export { AuthData, OAuthData };
11
+ interface Auth0Data {
12
+ id_token: string;
13
+ refresh_token: string;
14
+ expiration: Date;
15
+ }
16
+ export { Auth0Data, AuthData, OAuthData };
12
17
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-sharkiq",
3
3
  "displayName": "SharkIQ Plugin",
4
4
  "type": "module",
5
- "version": "1.5.3-beta.5",
5
+ "version": "1.6.0-beta.1",
6
6
  "description": "A Homebridge plugin to connect your Shark Vacuum to homebridge.",
7
7
  "author": {
8
8
  "name": "Bubba8291",