@homebridge-plugins/homebridge-sharkiq 1.4.1-beta.1 → 1.4.1-beta.11
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 +5 -0
- package/README.md +1 -1
- package/config.schema.json +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -57
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +17 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +17 -0
- package/dist/constants.js.map +1 -0
- package/dist/errorHandling.d.ts +19 -0
- package/dist/errorHandling.d.ts.map +1 -0
- package/dist/errorHandling.js +27 -0
- package/dist/errorHandling.js.map +1 -0
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/server.js +1 -1
- package/dist/homebridge-ui/server.js.map +1 -1
- package/dist/login.d.ts +2 -1
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +32 -16
- package/dist/login.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +12 -6
- package/dist/platform.js.map +1 -1
- package/dist/platformAccessory.d.ts +1 -0
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +36 -50
- package/dist/platformAccessory.js.map +1 -1
- package/dist/settings.d.ts +1 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +1 -1
- package/dist/settings.js.map +1 -1
- package/dist/sharkiq-js/ayla_api.d.ts +4 -3
- package/dist/sharkiq-js/ayla_api.d.ts.map +1 -1
- package/dist/sharkiq-js/ayla_api.js +35 -8
- package/dist/sharkiq-js/ayla_api.js.map +1 -1
- package/dist/sharkiq-js/const.d.ts +9 -0
- package/dist/sharkiq-js/const.d.ts.map +1 -1
- package/dist/sharkiq-js/const.js +11 -2
- package/dist/sharkiq-js/const.js.map +1 -1
- package/dist/sharkiq-js/sharkiq.d.ts.map +1 -1
- package/dist/sharkiq-js/sharkiq.js +27 -16
- package/dist/sharkiq-js/sharkiq.js.map +1 -1
- package/docs/functions/default.html +1 -1
- package/docs/index.html +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
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
|
+
## [1.4.1] (TBD)
|
|
6
|
+
|
|
7
|
+
### What's Changed
|
|
8
|
+
- Fix ARM64 OAuth code handling for users with both email/password and OAuth code [#54](https://github.com/homebridge-plugins/homebridge-sharkiq/issues/54)
|
|
9
|
+
|
|
5
10
|
## [1.4.0](https://github.com/homebridge-plugins/homebridge-sharkiq/releases/tag/v1.4.0) (2025-07-17)
|
|
6
11
|
|
|
7
12
|
### What's Changes
|
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ If you would like to manually obtain your Shark Clean credentials without using
|
|
|
59
59
|
|
|
60
60
|
The Vacuums array is a list of your vacuum's device serial numbers (DSN). If you only have one vacuum, just include the one's DSN. The DSN(s) can be found in the SharkClean mobile app.
|
|
61
61
|
|
|
62
|
-
If you are in Europe, set the `europe` config value to `true`. SharkClean has separate servers for the U.S. and Europe. The default value is `false`, which connects to the U.S. server.
|
|
62
|
+
If you are in Europe or the UK, set the `europe` config value to `true`. SharkClean has separate servers for the U.S. and Europe. The default value is `false`, which connects to the U.S. server.
|
|
63
63
|
|
|
64
64
|
The default interval between updating the docked status is 30 seconds (30000 ms). To change the docked status interval, add `dockedUpdateInterval` to your config. Value is in milliseconds. If the interval is too low, you have the risk of your account being rate limited.
|
|
65
65
|
|
package/config.schema.json
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"europe": {
|
|
40
40
|
"title": "SharkClean European Server",
|
|
41
|
+
"description": "Set to true if you are located in Europe or the UK. SharkClean uses different servers for US and European regions.",
|
|
41
42
|
"type": "boolean",
|
|
42
43
|
"required": false,
|
|
43
44
|
"default": false
|
package/dist/config.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ 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
5
|
export declare function removeFile(filePath: string): Promise<void>;
|
|
6
|
-
export declare function generateURL(oauth_file_path: string): Promise<string>;
|
|
6
|
+
export declare function generateURL(oauth_file_path: string, europe?: boolean): Promise<string>;
|
|
7
7
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/config.js
CHANGED
|
@@ -11,30 +11,6 @@ export async function getAuthData(authFilePath) {
|
|
|
11
11
|
return Promise.reject(new Error(`Error reading OAuth data: ${error}`));
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
// export async function getAuthData(configPath: string): Promise<AuthData> {
|
|
15
|
-
// try {
|
|
16
|
-
// const data = await fs.readFile(configPath, 'utf8');
|
|
17
|
-
// const currentConfig = JSON.parse(data);
|
|
18
|
-
// if (!Array.isArray(currentConfig.platforms)) {
|
|
19
|
-
// return Promise.reject('No platforms array found in config');
|
|
20
|
-
// }
|
|
21
|
-
// const pluginConfig = currentConfig.platforms.find((x: { platform: string }) => x.platform === PLATFORM_NAME);
|
|
22
|
-
// if (!pluginConfig) {
|
|
23
|
-
// return Promise.reject(`${PLATFORM_NAME} platform not found in config`);
|
|
24
|
-
// }
|
|
25
|
-
// if (typeof pluginConfig.credentials !== 'object') {
|
|
26
|
-
// return Promise.reject(`No credentials object found in ${PLATFORM_NAME} platform config`);
|
|
27
|
-
// }
|
|
28
|
-
// if (typeof pluginConfig.credentials.access_token !== 'string' ||
|
|
29
|
-
// typeof pluginConfig.credentials.refresh_token !== 'string' ||
|
|
30
|
-
// typeof pluginConfig.credentials.expiration !== 'string') {
|
|
31
|
-
// return Promise.reject('Invalid types found in credentials object');
|
|
32
|
-
// }
|
|
33
|
-
// return pluginConfig.credentials;
|
|
34
|
-
// } catch (error) {
|
|
35
|
-
// return Promise.reject('Error reading auth data from config: ' + error);
|
|
36
|
-
// }
|
|
37
|
-
// }
|
|
38
14
|
export async function setAuthData(authFilePath, data) {
|
|
39
15
|
try {
|
|
40
16
|
await fs.writeFile(authFilePath, JSON.stringify(data, null, 4), 'utf8');
|
|
@@ -43,35 +19,6 @@ export async function setAuthData(authFilePath, data) {
|
|
|
43
19
|
return Promise.reject(new Error(`Error writing auth data: ${error}`));
|
|
44
20
|
}
|
|
45
21
|
}
|
|
46
|
-
// export async function setAuthData(configPath: string, data: AuthData): Promise<void> {
|
|
47
|
-
// try {
|
|
48
|
-
// if (!data) {
|
|
49
|
-
// return Promise.reject('No data provided');
|
|
50
|
-
// }
|
|
51
|
-
// const currentConfigData = await fs.readFile(configPath, 'utf8');
|
|
52
|
-
// const currentConfig = JSON.parse(currentConfigData);
|
|
53
|
-
// if (!Array.isArray(currentConfig.platforms)) {
|
|
54
|
-
// return Promise.reject('No platforms array found in config');
|
|
55
|
-
// }
|
|
56
|
-
// const pluginConfig = currentConfig.platforms.find((x: { platform: string }) => x.platform === PLATFORM_NAME);
|
|
57
|
-
// if (!pluginConfig) {
|
|
58
|
-
// return Promise.reject('No platform found in config');
|
|
59
|
-
// }
|
|
60
|
-
// if (typeof pluginConfig.credentials !== 'object') {
|
|
61
|
-
// pluginConfig.credentials = {};
|
|
62
|
-
// }
|
|
63
|
-
// pluginConfig.credentials.access_token = data.access_token;
|
|
64
|
-
// pluginConfig.credentials.refresh_token = data.refresh_token;
|
|
65
|
-
// pluginConfig.credentials.expiration = data.expiration;
|
|
66
|
-
// try {
|
|
67
|
-
// await fs.writeFile(configPath, JSON.stringify(currentConfig, null, 4), 'utf8');
|
|
68
|
-
// } catch (error) {
|
|
69
|
-
// return Promise.reject(`${error}`);
|
|
70
|
-
// }
|
|
71
|
-
// } catch (error) {
|
|
72
|
-
// return Promise.reject('Error writing auth data to config: ' + error);
|
|
73
|
-
// }
|
|
74
|
-
// }
|
|
75
22
|
export async function getOAuthData(oAuthFilePath) {
|
|
76
23
|
try {
|
|
77
24
|
const data = await fs.readFile(oAuthFilePath, 'utf8');
|
|
@@ -98,7 +45,7 @@ export async function removeFile(filePath) {
|
|
|
98
45
|
return Promise.reject(new Error(`Error removing file: ${error}`));
|
|
99
46
|
}
|
|
100
47
|
}
|
|
101
|
-
export async function generateURL(oauth_file_path) {
|
|
48
|
+
export async function generateURL(oauth_file_path, europe = false) {
|
|
102
49
|
const state = generateRandomString(43);
|
|
103
50
|
const code_verify = generateRandomString(43);
|
|
104
51
|
const code_challenge = crypto.createHash('sha256').update(code_verify).digest('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
@@ -109,10 +56,11 @@ export async function generateURL(oauth_file_path) {
|
|
|
109
56
|
};
|
|
110
57
|
try {
|
|
111
58
|
await setOAuthData(oauth_file_path, oAuthData);
|
|
112
|
-
const
|
|
113
|
-
|
|
59
|
+
const oauthConfig = europe ? global_vars.EU_OAUTH : global_vars.OAUTH;
|
|
60
|
+
const url = `${oauthConfig.AUTH_URL}?response_type=code`
|
|
61
|
+
+ `&client_id=${encodeURIComponent(oauthConfig.CLIENT_ID)}&state=${encodeURIComponent(oAuthData.state)}&scope=${encodeURIComponent(oauthConfig.SCOPES)}&redirect_uri=${encodeURIComponent(oauthConfig.REDIRECT_URI)}&code_challenge=${encodeURIComponent(oAuthData.code_challenge)}&code_challenge_method=S256`
|
|
114
62
|
+ `&ui_locales=en`
|
|
115
|
-
+ `&auth0Client=${
|
|
63
|
+
+ `&auth0Client=${oauthConfig.AUTH0_CLIENT}`;
|
|
116
64
|
return url;
|
|
117
65
|
}
|
|
118
66
|
catch (error) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,YAAoB;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application constants for homebridge-sharkiq
|
|
3
|
+
*/
|
|
4
|
+
export declare const VACUUM_SPEEDS: {
|
|
5
|
+
readonly OFF: 0;
|
|
6
|
+
readonly ECO: 30;
|
|
7
|
+
readonly NORMAL: 60;
|
|
8
|
+
readonly MAX: 90;
|
|
9
|
+
};
|
|
10
|
+
export declare const TIMEOUTS: {
|
|
11
|
+
readonly LOGIN_DELAY: 1000;
|
|
12
|
+
readonly CAPTCHA_DELAY: 5000;
|
|
13
|
+
readonly PAUSED_UPDATE_DELAY: 100;
|
|
14
|
+
readonly DEFAULT_DOCKED_UPDATE_INTERVAL: 5000;
|
|
15
|
+
readonly TOKEN_EXPIRATION_BUFFER: 600;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application constants for homebridge-sharkiq
|
|
3
|
+
*/
|
|
4
|
+
export const VACUUM_SPEEDS = {
|
|
5
|
+
OFF: 0,
|
|
6
|
+
ECO: 30,
|
|
7
|
+
NORMAL: 60,
|
|
8
|
+
MAX: 90,
|
|
9
|
+
};
|
|
10
|
+
export const TIMEOUTS = {
|
|
11
|
+
LOGIN_DELAY: 1000,
|
|
12
|
+
CAPTCHA_DELAY: 5000,
|
|
13
|
+
PAUSED_UPDATE_DELAY: 100,
|
|
14
|
+
DEFAULT_DOCKED_UPDATE_INTERVAL: 5000,
|
|
15
|
+
TOKEN_EXPIRATION_BUFFER: 600,
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,GAAG,EAAE,EAAE;CACC,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,GAAG;IACxB,8BAA8B,EAAE,IAAI;IACpC,uBAAuB,EAAE,GAAG;CACpB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from 'homebridge';
|
|
2
|
+
/**
|
|
3
|
+
* Centralized error handling utilities
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Logs a rejected promise with consistent formatting
|
|
7
|
+
* @param log - The logger instance
|
|
8
|
+
* @param operation - Description of the operation that failed
|
|
9
|
+
* @param error - Optional error details
|
|
10
|
+
*/
|
|
11
|
+
export declare function logRejectedPromise(log: Logger, operation: string, error?: unknown): void;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a promise rejection handler that logs the error
|
|
14
|
+
* @param log - The logger instance
|
|
15
|
+
* @param operation - Description of the operation that failed
|
|
16
|
+
* @returns A function that can be used with .catch()
|
|
17
|
+
*/
|
|
18
|
+
export declare function createPromiseRejectionHandler(log: Logger, operation: string): (error?: unknown) => void;
|
|
19
|
+
//# sourceMappingURL=errorHandling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandling.d.ts","sourceRoot":"","sources":["../src/errorHandling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAKxF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IAClE,QAAQ,OAAO,UAGxB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized error handling utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Logs a rejected promise with consistent formatting
|
|
6
|
+
* @param log - The logger instance
|
|
7
|
+
* @param operation - Description of the operation that failed
|
|
8
|
+
* @param error - Optional error details
|
|
9
|
+
*/
|
|
10
|
+
export function logRejectedPromise(log, operation, error) {
|
|
11
|
+
log.debug(`Promise Rejected with ${operation}.`);
|
|
12
|
+
if (error) {
|
|
13
|
+
log.debug(`Error details: ${error}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a promise rejection handler that logs the error
|
|
18
|
+
* @param log - The logger instance
|
|
19
|
+
* @param operation - Description of the operation that failed
|
|
20
|
+
* @returns A function that can be used with .catch()
|
|
21
|
+
*/
|
|
22
|
+
export function createPromiseRejectionHandler(log, operation) {
|
|
23
|
+
return (error) => {
|
|
24
|
+
logRejectedPromise(log, operation, error);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=errorHandling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../src/errorHandling.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAe;IAChF,GAAG,CAAC,KAAK,CAAC,yBAAyB,SAAS,GAAG,CAAC,CAAA;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAW,EAAE,SAAiB;IAC1E,OAAO,CAAC,KAAe,EAAE,EAAE;QACzB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
document.getElementById('menuWrapper').style.display = 'inline-flex';
|
|
189
189
|
showDevices();
|
|
190
190
|
} else {
|
|
191
|
-
currentConfig.push({ name: '
|
|
191
|
+
currentConfig.push({ name: 'SharkIQ' });
|
|
192
192
|
await homebridge.updatePluginConfig(currentConfig);
|
|
193
193
|
showIntro();
|
|
194
194
|
}
|
|
@@ -13,7 +13,7 @@ class PluginUiServer extends HomebridgePluginUiServer {
|
|
|
13
13
|
*/
|
|
14
14
|
this.onRequest('getCachedAccessories', () => {
|
|
15
15
|
try {
|
|
16
|
-
const plugin = 'homebridge-sharkiq';
|
|
16
|
+
const plugin = '@homebridge-plugins/homebridge-sharkiq';
|
|
17
17
|
const devicesToReturn = [];
|
|
18
18
|
// The path and file of the cached accessories
|
|
19
19
|
const accFile = `${this.homebridgeStoragePath}/accessories/cachedAccessories`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB;;;GAGG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,MAAM,cAAe,SAAQ,wBAAwB;IACnD;QACE,KAAK,EAAE,CAAA;QACP;;;UAGE;QACF,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB;;;GAGG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,MAAM,cAAe,SAAQ,wBAAwB;IACnD;QACE,KAAK,EAAE,CAAA;QACP;;;UAGE;QACF,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,wCAAwC,CAAA;gBACvD,MAAM,eAAe,GAAG,EAAE,CAAA;gBAE1B,8CAA8C;gBAC9C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,qBAAqB,gCAAgC,CAAA;gBAE7E,wBAAwB;gBACxB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,mCAAmC;oBACnC,MAAM,iBAAiB,GAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;oBAE7E,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;wBAC3C,0CAA0C;wBAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;4BAChC,wCAAwC;4BACxC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAkB,CAAC,CAAA;wBACpD,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,mBAAmB;gBACnB,OAAO,eAAe,CAAA;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;gBAC5D,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;CACF;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,cAAc,EAAE,CAAA;AAC7B,CAAC;AAED,mBAAmB,EAAE,CAAA"}
|
package/dist/login.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ export declare class Login {
|
|
|
8
8
|
app_id: string;
|
|
9
9
|
app_secret: string;
|
|
10
10
|
oAuthCode: string;
|
|
11
|
-
|
|
11
|
+
europe: boolean;
|
|
12
|
+
constructor(log: Logger, auth_file: string, oauth_file: string, email: string, password: string, oAuthCode: string, europe?: boolean, app_id?: string, app_secret?: string);
|
|
12
13
|
checkLogin(): Promise<void>;
|
|
13
14
|
private login;
|
|
14
15
|
private loginCallback;
|
package/dist/login.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAgBxC,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;YAsE1B,KAAK;YAmGL,aAAa;CA2D5B"}
|
package/dist/login.js
CHANGED
|
@@ -6,6 +6,7 @@ import StealthPlugin from 'puppeteer-extra-plugin-stealth';
|
|
|
6
6
|
import { generateURL, getAuthData, getOAuthData, removeFile, setAuthData } from './config.js';
|
|
7
7
|
import { global_vars } from './sharkiq-js/const.js';
|
|
8
8
|
import { addSeconds } from './utils.js';
|
|
9
|
+
import { TIMEOUTS } from './constants.js';
|
|
9
10
|
export class Login {
|
|
10
11
|
log;
|
|
11
12
|
auth_file;
|
|
@@ -15,15 +16,17 @@ export class Login {
|
|
|
15
16
|
app_id;
|
|
16
17
|
app_secret;
|
|
17
18
|
oAuthCode;
|
|
18
|
-
|
|
19
|
+
europe;
|
|
20
|
+
constructor(log, auth_file, oauth_file, email, password, oAuthCode, europe = false, app_id, app_secret) {
|
|
19
21
|
this.log = log;
|
|
20
22
|
this.auth_file = auth_file;
|
|
21
23
|
this.oauth_file = oauth_file;
|
|
22
24
|
this.email = email;
|
|
23
25
|
this.password = password;
|
|
24
26
|
this.oAuthCode = oAuthCode;
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
+
this.europe = europe;
|
|
28
|
+
this.app_id = app_id || (europe ? global_vars.EU_SHARK_APP_ID : global_vars.SHARK_APP_ID);
|
|
29
|
+
this.app_secret = app_secret || (europe ? global_vars.EU_SHARK_APP_SECRET : global_vars.SHARK_APP_SECRET);
|
|
27
30
|
}
|
|
28
31
|
async checkLogin() {
|
|
29
32
|
try {
|
|
@@ -39,7 +42,7 @@ export class Login {
|
|
|
39
42
|
if (email === '' && password === '') {
|
|
40
43
|
if (this.oAuthCode === '') {
|
|
41
44
|
try {
|
|
42
|
-
const url = await generateURL(this.oauth_file);
|
|
45
|
+
const url = await generateURL(this.oauth_file, this.europe);
|
|
43
46
|
return Promise.reject(new Error(`Please login to Shark using the following URL: ${url}`));
|
|
44
47
|
}
|
|
45
48
|
catch (error) {
|
|
@@ -65,11 +68,22 @@ export class Login {
|
|
|
65
68
|
else {
|
|
66
69
|
if (platform === 'linux' && architecure === 'arm64') {
|
|
67
70
|
this.log.warn(`${platform} ${architecure} architecture does not support automatic login. Please use OAuth code login method.`);
|
|
68
|
-
|
|
71
|
+
if (this.oAuthCode !== '') {
|
|
72
|
+
try {
|
|
73
|
+
const ouath_data = await getOAuthData(this.oauth_file);
|
|
74
|
+
await this.loginCallback(this.oAuthCode, ouath_data);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
this.log.warn('OAuth data not found with OAuth code set. Please clear the OAuth code and try again.');
|
|
79
|
+
return Promise.reject(error);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const url = await generateURL(this.oauth_file, this.europe);
|
|
69
83
|
return Promise.reject(new Error(`Please login to Shark using the following URL: ${url}`));
|
|
70
84
|
}
|
|
71
85
|
try {
|
|
72
|
-
const url = await generateURL(this.oauth_file);
|
|
86
|
+
const url = await generateURL(this.oauth_file, this.europe);
|
|
73
87
|
await this.login(email, password, url);
|
|
74
88
|
if (this.oAuthCode === '') {
|
|
75
89
|
return Promise.reject(new Error('Error: No OAuth code found'));
|
|
@@ -111,7 +125,7 @@ export class Login {
|
|
|
111
125
|
this.log.debug('Retrieving login response...');
|
|
112
126
|
if (!response.ok() && ![301, 302].includes(response.status())) {
|
|
113
127
|
this.log.debug('Error logging in: HTTP', response.status());
|
|
114
|
-
await setTimeout(
|
|
128
|
+
await setTimeout(TIMEOUTS.LOGIN_DELAY);
|
|
115
129
|
await page.screenshot({ path: 'login_error.png' });
|
|
116
130
|
const errorMessages = await page.$$eval('span[class="ulp-input-error-message"]', el => el.map(x => x.textContent?.trim() || ''));
|
|
117
131
|
const promptAlert = await page.$('div[id="prompt-alert"]');
|
|
@@ -144,15 +158,15 @@ export class Login {
|
|
|
144
158
|
if (headless) {
|
|
145
159
|
this.log.debug('Inputing login info...');
|
|
146
160
|
await page.waitForSelector('button[name="action"]');
|
|
147
|
-
await setTimeout(
|
|
161
|
+
await setTimeout(TIMEOUTS.LOGIN_DELAY);
|
|
148
162
|
await page.waitForSelector('input[inputMode="email"]');
|
|
149
163
|
await page.type('input[inputMode="email"]', email);
|
|
150
|
-
await setTimeout(
|
|
164
|
+
await setTimeout(TIMEOUTS.LOGIN_DELAY);
|
|
151
165
|
await page.type('input[type="password"]', password);
|
|
152
166
|
let verified = false;
|
|
153
167
|
let attempts = 0;
|
|
154
168
|
while (!verified) {
|
|
155
|
-
await setTimeout(
|
|
169
|
+
await setTimeout(TIMEOUTS.CAPTCHA_DELAY);
|
|
156
170
|
const captchaInput = await page.$('input[name="captcha"]');
|
|
157
171
|
const needsCaptcha = await captchaInput?.$eval('input[name="captcha"]', el => el.value === '');
|
|
158
172
|
if (!needsCaptcha) {
|
|
@@ -174,7 +188,7 @@ export class Login {
|
|
|
174
188
|
}
|
|
175
189
|
}
|
|
176
190
|
await page.click('button[name="action"]');
|
|
177
|
-
await setTimeout(
|
|
191
|
+
await setTimeout(TIMEOUTS.CAPTCHA_DELAY);
|
|
178
192
|
}
|
|
179
193
|
}
|
|
180
194
|
catch (error) {
|
|
@@ -185,23 +199,25 @@ export class Login {
|
|
|
185
199
|
}
|
|
186
200
|
}
|
|
187
201
|
async loginCallback(code, oAuthData) {
|
|
202
|
+
const oauthConfig = this.europe ? global_vars.EU_OAUTH : global_vars.OAUTH;
|
|
203
|
+
const loginUrl = this.europe ? global_vars.EU_LOGIN_URL : global_vars.LOGIN_URL;
|
|
188
204
|
const data = {
|
|
189
205
|
grant_type: 'authorization_code',
|
|
190
|
-
client_id:
|
|
206
|
+
client_id: oauthConfig.CLIENT_ID,
|
|
191
207
|
code,
|
|
192
208
|
code_verifier: oAuthData.code_verify,
|
|
193
|
-
redirect_uri:
|
|
209
|
+
redirect_uri: oauthConfig.REDIRECT_URI,
|
|
194
210
|
};
|
|
195
211
|
const reqData = {
|
|
196
212
|
method: 'POST',
|
|
197
213
|
headers: {
|
|
198
214
|
'Content-Type': 'application/json',
|
|
199
|
-
'Auth0-Client':
|
|
215
|
+
'Auth0-Client': oauthConfig.AUTH0_CLIENT,
|
|
200
216
|
},
|
|
201
217
|
body: JSON.stringify(data),
|
|
202
218
|
};
|
|
203
219
|
this.log.debug('Request Data', JSON.stringify(data));
|
|
204
|
-
const response = await fetch(
|
|
220
|
+
const response = await fetch(oauthConfig.TOKEN_URL, reqData);
|
|
205
221
|
if (!response.ok) {
|
|
206
222
|
return Promise.reject(new Error(`Unable to get token data. HTTP ${response.status}`));
|
|
207
223
|
}
|
|
@@ -218,7 +234,7 @@ export class Login {
|
|
|
218
234
|
token: tokenData.id_token,
|
|
219
235
|
}),
|
|
220
236
|
};
|
|
221
|
-
const response2 = await fetch(`${
|
|
237
|
+
const response2 = await fetch(`${loginUrl}/api/v1/token_sign_in`, reqData2);
|
|
222
238
|
if (!response2.ok) {
|
|
223
239
|
return Promise.reject(new Error(`Unable to get authorization tokens. HTTP ${response2.status}`));
|
|
224
240
|
}
|
package/dist/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,SAAS,MAAM,iBAAiB,CAAA;AACvC,OAAO,aAAa,MAAM,gCAAgC,CAAA;AAE1D,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;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -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;
|
|
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;IA+B1B,KAAK,QAAa,OAAO,CAAC,aAAa,EAAE,CAAC,CAgCzC;IAGD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOtD,eAAe,IAAI,IAAI;CAsCxB"}
|
package/dist/platform.js
CHANGED
|
@@ -3,6 +3,7 @@ import { Login } from './login.js';
|
|
|
3
3
|
import { SharkIQAccessory } from './platformAccessory.js';
|
|
4
4
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
5
5
|
import { get_ayla_api } from './sharkiq-js/ayla_api.js';
|
|
6
|
+
import { TIMEOUTS } from './constants.js';
|
|
6
7
|
import { global_vars } from './sharkiq-js/const.js';
|
|
7
8
|
// SharkIQPlatform Main Class
|
|
8
9
|
export class SharkIQPlatform {
|
|
@@ -54,17 +55,22 @@ export class SharkIQPlatform {
|
|
|
54
55
|
const oAuthCode = this.config.oAuthCode || '';
|
|
55
56
|
const email = this.config.email || '';
|
|
56
57
|
const password = this.config.password || '';
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
// Log which login method is being used based on user configuration
|
|
59
|
+
// Email/password takes precedence if both are provided (matches Login class logic)
|
|
60
|
+
if (email && typeof email === 'string' && email.trim() !== '' &&
|
|
61
|
+
password && typeof password === 'string' && password.trim() !== '') {
|
|
62
|
+
this.log.info('Valid email and password present, using email and password login method.');
|
|
60
63
|
}
|
|
61
|
-
else if (
|
|
64
|
+
else if (oAuthCode && typeof oAuthCode === 'string' && oAuthCode.trim() !== '') {
|
|
65
|
+
this.log.info('Valid OAuth code present, using OAuth login method.');
|
|
66
|
+
}
|
|
67
|
+
if (email !== '' && password === '') {
|
|
62
68
|
return Promise.reject(new Error('Password must be present in the config if email is provided.'));
|
|
63
69
|
}
|
|
64
70
|
else if (email === '' && password !== '') {
|
|
65
71
|
return Promise.reject(new Error('Email must be present in the config if password is provided.'));
|
|
66
72
|
}
|
|
67
|
-
const login = new Login(this.log, auth_file, oauth_file, email, password, oAuthCode);
|
|
73
|
+
const login = new Login(this.log, auth_file, oauth_file, email, password, oAuthCode, europe);
|
|
68
74
|
try {
|
|
69
75
|
await login.checkLogin();
|
|
70
76
|
const ayla_api = get_ayla_api(auth_file, this.log, europe);
|
|
@@ -86,7 +92,7 @@ export class SharkIQPlatform {
|
|
|
86
92
|
const devices = [];
|
|
87
93
|
const unusedDeviceAccessories = this.accessories;
|
|
88
94
|
const invertDockedStatus = this.config.invertDockedStatus || false;
|
|
89
|
-
const dockedUpdateInterval = this.config.dockedUpdateInterval ||
|
|
95
|
+
const dockedUpdateInterval = this.config.dockedUpdateInterval || TIMEOUTS.DEFAULT_DOCKED_UPDATE_INTERVAL;
|
|
90
96
|
this.vacuumDevices.forEach((vacuumDevice) => {
|
|
91
97
|
const uuid = this.api.hap.uuid.generate(vacuumDevice._dsn.toString());
|
|
92
98
|
let accessory = unusedDeviceAccessories.find(accessory => accessory.UUID === uuid);
|
package/dist/platform.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -13,6 +13,7 @@ export declare class SharkIQAccessory {
|
|
|
13
13
|
private dockedStatusService;
|
|
14
14
|
private vacuumPausedService;
|
|
15
15
|
constructor(platform: SharkIQPlatform, accessory: PlatformAccessory, device: SharkIqVacuum, UUIDGen: typeof uuid, log: Logger, invertDockedStatus: boolean, dockedUpdateInterval: number, dockedDelay?: number);
|
|
16
|
+
private calculateDockedStatus;
|
|
16
17
|
retrieveVacuumStateInterval(): Promise<void>;
|
|
17
18
|
retrieveDockedStatus(): Promise<boolean>;
|
|
18
19
|
retrieveOperatingMode(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAW,IAAI,EAAE,MAAM,YAAY,CAAA;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAW,IAAI,EAAE,MAAM,YAAY,CAAA;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAM5D,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,WAAW;IAZrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,mBAAmB,CAAS;gBAGjB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,EACrC,MAAM,EAAE,aAAa,EAC7B,OAAO,EAAE,OAAO,IAAI,EACH,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,OAAO,EAC3B,oBAAoB,EAAE,MAAM,EACrC,WAAW,GAAE,MAAU;IAuDjC,OAAO,CAAC,qBAAqB;IASvB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC3C,YAAY,IAAI,IAAI;IAgBd,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAc7B,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpD,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYnC,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAqB9B,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgC7D"}
|