homebridge-kasa-python 2.8.0-beta.5 → 2.8.0-beta.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.
@@ -2,6 +2,7 @@
2
2
  "pluginAlias": "KasaPython",
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
+ "strictValidation": true,
5
6
  "headerDisplay": "Kasa Python Plugin.<p>Most users do not require configuration and can just click \"Save\" to get started. See [README](https://github.com/ZeliardM/homebridge-kasa-python/blob/master/README.md) for more information.</p>",
6
7
  "footerDisplay": "",
7
8
  "schema": {
@@ -111,6 +112,13 @@
111
112
  "description": "The time to wait to combine similar commands for a device before sending a command to a device (milliseconds). Default: 100.",
112
113
  "default": 100
113
114
  },
115
+ "pythonPath": {
116
+ "title": "Python Path",
117
+ "type": "string",
118
+ "description": "Path to the Python executable. If not set, the plugin will use the default Python path.",
119
+ "placeholder": "Enter a custom Python path if needed.",
120
+ "minLength": 1
121
+ },
114
122
  "advancedPythonLogging": {
115
123
  "title": "Advanced Python Logging",
116
124
  "type": "boolean",
@@ -212,6 +220,7 @@
212
220
  "expandable": true,
213
221
  "items": [
214
222
  "waitTimeUpdate",
223
+ "pythonPath",
215
224
  "advancedPythonLogging"
216
225
  ]
217
226
  }
package/dist/config.d.ts CHANGED
@@ -18,6 +18,7 @@ export interface KasaPythonConfigInput {
18
18
  manualDevices?: (string | ConfigDevice)[];
19
19
  excludeMacAddresses?: string[];
20
20
  waitTimeUpdate?: number;
21
+ pythonPath?: string;
21
22
  advancedPythonLogging?: boolean;
22
23
  }
23
24
  export type KasaPythonConfig = {
@@ -38,6 +39,7 @@ export type KasaPythonConfig = {
38
39
  };
39
40
  advancedOptions: {
40
41
  waitTimeUpdate: number;
42
+ pythonPath?: string;
41
43
  advancedPythonLogging: boolean;
42
44
  };
43
45
  };
package/dist/config.js CHANGED
@@ -43,6 +43,7 @@ export const defaultConfig = {
43
43
  },
44
44
  advancedOptions: {
45
45
  waitTimeUpdate: 100,
46
+ pythonPath: '',
46
47
  advancedPythonLogging: false,
47
48
  },
48
49
  };
@@ -83,6 +84,7 @@ function validateConfig(config) {
83
84
  errors.push('`excludeMacAddresses` should be an array of strings.');
84
85
  }
85
86
  validateType(config, 'waitTimeUpdate', 'number', errors);
87
+ validateType(config, 'pythonPath', 'string', errors);
86
88
  validateType(config, 'advancedPythonLogging', 'boolean', errors);
87
89
  return errors;
88
90
  }
@@ -118,6 +120,7 @@ export function parseConfig(config) {
118
120
  },
119
121
  advancedOptions: {
120
122
  waitTimeUpdate: c.waitTimeUpdate ?? defaultConfig.advancedOptions.waitTimeUpdate,
123
+ pythonPath: c.pythonPath ?? defaultConfig.advancedOptions.pythonPath,
121
124
  advancedPythonLogging: c.advancedPythonLogging ?? defaultConfig.advancedOptions.advancedPythonLogging,
122
125
  },
123
126
  };
@@ -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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"}
@@ -16,12 +16,14 @@ declare class PythonChecker {
16
16
  allInOne(isUpgrade: boolean): Promise<void>;
17
17
  private ensurePluginDir;
18
18
  private ensurePythonVersion;
19
+ private setPythonExecutables;
20
+ private isPythonSupported;
21
+ private getPythonMajorMinor;
19
22
  private ensureVenvCreated;
20
23
  private isVenvCreated;
21
24
  private createVenv;
22
25
  private ensureVenvUsesCorrectPythonHome;
23
26
  private getPythonHome;
24
- private getSystemPythonVersions;
25
27
  private getUserPath;
26
28
  private ensureVenvPipUpToDate;
27
29
  private updatePip;
@@ -21,8 +21,19 @@ class PythonChecker {
21
21
  constructor(platform) {
22
22
  this.platform = platform;
23
23
  this.log = prefixLogger(this.platform.log, '[Python Check]');
24
- this.advancedPythonLogging = this.platform.config.advancedOptions.advancedPythonLogging ?? false;
25
- this.pythonExecutables = ['python', 'python3', 'python3.11', 'python3.12', 'python3.13'];
24
+ this.advancedPythonLogging = this.platform.config.advancedOptions?.advancedPythonLogging ?? false;
25
+ this.pythonExecutables = [
26
+ 'python',
27
+ 'python3',
28
+ 'python3.11',
29
+ 'python3.12',
30
+ 'python3.13',
31
+ '/usr/bin/python3',
32
+ '/opt/homebrew/bin/python3',
33
+ '/usr/local/bin/python3',
34
+ `${process.env.HOME}/miniforge3/bin/python3`,
35
+ `${process.env.HOME}/miniconda3/bin/python3`,
36
+ ];
26
37
  this.pluginDirPath = path.join(this.platform.storagePath, 'kasa-python');
27
38
  this.venvPath = path.join(this.pluginDirPath, '.venv');
28
39
  this.venvConfigPath = path.join(this.venvPath, 'pyvenv.cfg');
@@ -50,38 +61,63 @@ class PythonChecker {
50
61
  }
51
62
  }
52
63
  async ensurePythonVersion() {
53
- this.log.debug('Ensuring system Python version is supported');
54
- const versions = await this.getSystemPythonVersions();
55
- const versionMap = {
56
- '3.13': 'python3.13',
57
- '3.12': 'python3.12',
58
- '3.11': 'python3.11',
59
- };
60
- versions.sort((a, b) => b.localeCompare(a, undefined, { numeric: true }));
61
- let supported = false;
62
- for (const version of versions) {
63
- const majorMinorVersion = version.split('.').slice(0, 2).join('.');
64
- if (SUPPORTED_PYTHON_VERSIONS.includes(majorMinorVersion)) {
65
- supported = true;
66
- if (versionMap[majorMinorVersion]) {
67
- this.pythonExecutable = versionMap[majorMinorVersion];
68
- this.venvPythonExecutable = path.join(this.venvPath, 'bin', versionMap[majorMinorVersion]);
69
- this.venvPipExecutable = path.join(this.venvPath, 'bin', `pip${majorMinorVersion}`);
70
- this.log.debug(`Using Python executable: ${this.pythonExecutable}`);
71
- }
72
- break;
64
+ this.log.debug('Checking for supported Python version');
65
+ const userPythonPath = this.platform.config.advancedOptions.pythonPath ?? '';
66
+ if (userPythonPath) {
67
+ this.log.debug(`User configured pythonPath: ${userPythonPath}`);
68
+ if (await this.isPythonSupported(userPythonPath)) {
69
+ this.setPythonExecutables(userPythonPath);
70
+ return;
71
+ }
72
+ else {
73
+ this.log.error(`Configured pythonPath (${userPythonPath}) is not supported`);
73
74
  }
74
75
  }
75
- if (!supported) {
76
- this.log.error(`Python ${versions.join(', ')} is installed. However, only Python ` +
77
- `${SUPPORTED_PYTHON_VERSIONS.join(', ')} is supported.`);
78
- this.log.error('Ensure the correct Python version is installed and available in your PATH.');
79
- await delay(300000);
76
+ for (const executable of this.pythonExecutables) {
77
+ if (await this.isPythonSupported(executable)) {
78
+ this.setPythonExecutables(executable);
79
+ return;
80
+ }
81
+ }
82
+ const fallback = '/usr/bin/python3';
83
+ this.log.warn(`Falling back to system Python: ${fallback}`);
84
+ if (await this.isPythonSupported(fallback)) {
85
+ this.setPythonExecutables(fallback);
80
86
  }
81
87
  else {
82
- this.log.debug('System Python version is supported');
88
+ this.log.error(`System Python (${fallback}) is unsupported`);
89
+ throw new Error('No supported Python version found. Install Python 3.11+ and restart Homebridge.');
90
+ }
91
+ }
92
+ setPythonExecutables(pythonPath) {
93
+ const majorMinor = this.getPythonMajorMinor(pythonPath);
94
+ const pipName = `pip${majorMinor}`;
95
+ const pyName = `python${majorMinor}`;
96
+ this.pythonExecutable = pythonPath;
97
+ this.venvPythonExecutable = path.join(this.venvPath, 'bin', pyName);
98
+ this.venvPipExecutable = path.join(this.venvPath, 'bin', pipName);
99
+ this.log.debug(`Selected Python executable: ${this.pythonExecutable}`);
100
+ }
101
+ async isPythonSupported(executable) {
102
+ try {
103
+ const [stdout] = await runCommand(this.log, executable, ['--version']);
104
+ const version = stdout.trim().replace('Python ', '');
105
+ const majorMinor = version.split('.').slice(0, 2).join('.');
106
+ this.log.debug(`Detected Python version ${version} at ${executable}`);
107
+ return SUPPORTED_PYTHON_VERSIONS.includes(majorMinor);
108
+ }
109
+ catch (err) {
110
+ this.log.debug(`Failed to check Python version for ${executable}: ${err}`);
111
+ return false;
83
112
  }
84
113
  }
114
+ getPythonMajorMinor(pythonPath) {
115
+ const match = pythonPath.match(/python(?:3)?\.(\d+)\.(\d+)/);
116
+ if (match) {
117
+ return `${match[1]}.${match[2]}`;
118
+ }
119
+ return '3';
120
+ }
85
121
  async ensureVenvCreated(isUpgrade) {
86
122
  this.log.debug('Ensuring virtual environment is created');
87
123
  if (isUpgrade || !this.isVenvCreated()) {
@@ -100,9 +136,9 @@ class PythonChecker {
100
136
  }
101
137
  async createVenv() {
102
138
  this.log.debug('Creating virtual environment at path:', this.venvPath);
103
- const [stdout] = await runCommand(this.log, this.pythonExecutable, ['-m', 'venv', this.venvPath, '--clear', '--upgrade-deps'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
139
+ const [stdout] = await runCommand(this.log, this.pythonExecutable, ['-m', 'venv', this.venvPath, '--clear', '--upgrade-deps'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
104
140
  if (stdout.includes('not created successfully') || !this.isVenvCreated()) {
105
- this.log.error('virtualenv python module is not installed.');
141
+ this.log.error('Failed to create virtual environment.');
106
142
  await delay(300000);
107
143
  }
108
144
  else {
@@ -113,10 +149,8 @@ class PythonChecker {
113
149
  this.log.debug('Ensuring virtual environment uses correct Python home');
114
150
  const venvPythonHome = await this.getPythonHome(this.venvPythonExecutable);
115
151
  const pythonHome = await this.getPythonHome(this.pythonExecutable);
116
- this.log.debug('Virtual environment Python home:', venvPythonHome);
117
- this.log.debug('System Python home:', pythonHome);
118
152
  if (venvPythonHome !== pythonHome) {
119
- this.log.debug('Python homes do not match, recreating virtual environment');
153
+ this.log.debug('Python homes mismatch, recreating virtual environment');
120
154
  await this.createVenv();
121
155
  }
122
156
  else {
@@ -125,85 +159,44 @@ class PythonChecker {
125
159
  }
126
160
  async getPythonHome(executable) {
127
161
  this.log.debug('Getting Python home for executable:', executable);
128
- const [venvPythonHome] = await runCommand(this.log, executable, [path.join(__dirname, 'pythonHome.py')], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
162
+ const [venvPythonHome] = await runCommand(this.log, executable, [path.join(__dirname, 'pythonHome.py')], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
129
163
  return venvPythonHome.trim();
130
164
  }
131
- async getSystemPythonVersions() {
132
- this.log.debug('Getting system Python versions');
133
- const suppressErrors = this.pythonExecutables.map(exec => `spawn ${exec.toLowerCase()}`);
134
- const versionPromises = this.pythonExecutables.map(async (pythonExecutable) => {
135
- try {
136
- this.log.debug(`Checking Python version for: ${pythonExecutable}`);
137
- const [stdout] = await runCommand(this.log, pythonExecutable, ['--version'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true, false, suppressErrors);
138
- return stdout.trim().replace('Python ', '');
139
- }
140
- catch (error) {
141
- this.log.debug(`Failed to get version for ${pythonExecutable}: ${error}`);
142
- return null;
143
- }
144
- });
145
- const versions = await Promise.all(versionPromises);
146
- const validVersions = Array.from(new Set(versions.filter((version) => version !== null)));
147
- this.log.debug('Found Python versions:', validVersions);
148
- return validVersions;
149
- }
150
165
  async getUserPath() {
151
166
  this.log.debug('Attempting to retrieve user PATH');
152
- let shell, shellArgs;
153
- if (fs.existsSync('/bin/zsh')) {
154
- shell = '/bin/zsh';
155
- shellArgs = [
156
- '--no-rcs',
157
- '-c',
158
- [
159
- 'eval "$(brew shellenv)" 2>/dev/null',
160
- 'source ~/.zprofile 2>/dev/null',
161
- 'source ~/.bash_profile 2>/dev/null',
162
- 'source ~/.profile 2>/dev/null',
163
- 'echo $PATH',
164
- ].join(' && '),
165
- ];
166
- }
167
- else if (fs.existsSync('/bin/bash')) {
168
- shell = '/bin/bash';
169
- shellArgs = [
170
- '--noprofile',
171
- '--norc',
172
- '-c',
173
- [
174
- 'eval "$(brew shellenv)" 2>/dev/null',
175
- 'source ~/.bash_profile 2>/dev/null',
176
- 'source ~/.profile 2>/dev/null',
177
- 'echo $PATH',
178
- ].join(' && '),
179
- ];
180
- }
181
- else {
182
- this.log.debug('No user PATH found - falling back to process.env.PATH');
183
- return process.env.PATH || '';
184
- }
185
- try {
186
- const [stdout] = await runCommand(this.log, shell, shellArgs, undefined, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
187
- const userPath = stdout.trim();
188
- if (userPath) {
189
- this.log.debug('User PATH successfully retrieved:', userPath);
190
- return userPath;
191
- }
192
- else {
193
- this.log.debug('User PATH is empty, falling back to process.env.PATH');
194
- return process.env.PATH || '';
167
+ const shells = ['/bin/zsh', '/bin/bash'];
168
+ for (const shell of shells) {
169
+ if (fs.existsSync(shell)) {
170
+ const shellArgs = [
171
+ '--noprofile', '--norc', '-c',
172
+ [
173
+ 'eval "$(brew shellenv)" 2>/dev/null',
174
+ 'source ~/.zprofile 2>/dev/null',
175
+ 'source ~/.bash_profile 2>/dev/null',
176
+ 'source ~/.profile 2>/dev/null',
177
+ 'echo $PATH',
178
+ ].join(' && '),
179
+ ];
180
+ try {
181
+ const [stdout] = await runCommand(this.log, shell, shellArgs);
182
+ const userPath = stdout.trim();
183
+ if (userPath) {
184
+ this.log.debug('User PATH retrieved:', userPath);
185
+ return userPath;
186
+ }
187
+ }
188
+ catch (err) {
189
+ this.log.error(`Failed to retrieve PATH from ${shell}: ${err}`);
190
+ }
195
191
  }
196
192
  }
197
- catch (error) {
198
- this.log.error('Failed to retrieve user PATH:', error);
199
- return process.env.PATH || '';
200
- }
193
+ this.log.debug('Falling back to process.env.PATH');
194
+ return process.env.PATH ?? '';
201
195
  }
202
196
  async ensureVenvPipUpToDate() {
203
- this.log.debug('Ensuring virtual environment pip is up to date');
204
- const venvPipVersion = await this.getVenvPipVersion();
205
- const mostRecentPipVersion = await this.getMostRecentPipVersion();
206
- if (venvPipVersion !== mostRecentPipVersion) {
197
+ const currentVersion = await this.getVenvPipVersion();
198
+ const latestVersion = await this.getMostRecentPipVersion();
199
+ if (currentVersion !== latestVersion) {
207
200
  await this.updatePip();
208
201
  }
209
202
  else {
@@ -212,7 +205,7 @@ class PythonChecker {
212
205
  }
213
206
  async updatePip() {
214
207
  this.log.debug('Updating pip in virtual environment');
215
- await runCommand(this.log, this.venvPipExecutable, ['install', '--upgrade', 'pip'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
208
+ await runCommand(this.log, this.venvPipExecutable, ['install', '--upgrade', 'pip'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
216
209
  this.log.debug('Pip updated successfully');
217
210
  }
218
211
  async ensureVenvRequirementsSatisfied() {
@@ -220,49 +213,41 @@ class PythonChecker {
220
213
  await this.installRequirements();
221
214
  }
222
215
  else {
223
- this.log.debug('Virtual environment requirements are already satisfied');
216
+ this.log.debug('Virtual environment requirements are satisfied');
224
217
  }
225
218
  }
226
219
  async areRequirementsSatisfied() {
227
- this.log.debug('Checking if virtual environment requirements are satisfied');
228
- const [freezeStdout] = await runCommand(this.log, this.venvPipExecutable, ['freeze'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
229
- const freeze = this.stringToObject(freezeStdout);
230
- this.log.debug('Current virtual environment packages:', JSON.stringify(freeze, null, 2));
231
- const requirementsStdout = fs.readFileSync(this.requirementsPath).toString();
232
- const requirements = this.stringToObject(requirementsStdout);
233
- this.log.debug('Required packages:', JSON.stringify(requirements, null, 2));
234
- const requirementsSatisfied = Object.keys(requirements).every(pkg => freeze[pkg] === requirements[pkg]);
235
- this.log.debug('Requirements satisfied:', requirementsSatisfied);
236
- return requirementsSatisfied;
220
+ const [freezeStdout] = await runCommand(this.log, this.venvPipExecutable, ['freeze'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
221
+ const installed = this.stringToObject(freezeStdout);
222
+ const required = this.stringToObject(fs.readFileSync(this.requirementsPath, 'utf8'));
223
+ return Object.keys(required).every(pkg => installed[pkg] === required[pkg]);
237
224
  }
238
225
  stringToObject(value) {
239
226
  return value.trim().split('\n').reduce((acc, line) => {
240
- const [pkg, version] = line.split('==').map(part => part.trim());
241
- acc[pkg.replaceAll('_', '-').toLowerCase()] = version;
227
+ const [pkg, version] = line.split('==').map(x => x.trim());
228
+ if (pkg && version) {
229
+ acc[pkg.toLowerCase()] = version;
230
+ }
242
231
  return acc;
243
232
  }, {});
244
233
  }
245
234
  async installRequirements() {
246
235
  this.log.debug('Installing requirements from:', this.requirementsPath);
247
- await runCommand(this.log, this.venvPipExecutable, ['install', '-r', this.requirementsPath], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
236
+ await runCommand(this.log, this.venvPipExecutable, ['install', '-r', this.requirementsPath], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
248
237
  this.log.debug('Requirements installed successfully');
249
238
  }
250
239
  async getVenvPipVersion() {
251
- this.log.debug('Getting virtual environment pip version');
252
- const [version] = await runCommand(this.log, this.venvPipExecutable, ['--version'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
253
- this.log.debug('Virtual environment pip version:', version.trim().split(' ')[1]);
254
- return version.trim().split(' ')[1];
240
+ const [stdout] = await runCommand(this.log, this.venvPipExecutable, ['--version'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
241
+ return stdout.trim().split(' ')[1];
255
242
  }
256
243
  async getMostRecentPipVersion() {
257
- this.log.debug('Fetching most recent pip version from PyPI');
258
244
  try {
259
245
  const response = await axios.get('https://pypi.org/pypi/pip/json');
260
- this.log.debug('Most recent pip version fetched:', response.data.info.version);
261
246
  return response.data.info.version;
262
247
  }
263
- catch (e) {
264
- this.log.error(`Error fetching most recent pip version: ${e}`);
265
- return 'error';
248
+ catch (err) {
249
+ this.log.error(`Error fetching latest pip version: ${err}`);
250
+ return '';
266
251
  }
267
252
  }
268
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pythonChecker.js","sourceRoot":"","sources":["../../src/python/pythonChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pythonChecker.js","sourceRoot":"","sources":["../../src/python/pythonChecker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge Kasa Python",
3
3
  "name": "homebridge-kasa-python",
4
- "version": "2.8.0-beta.5",
4
+ "version": "2.8.0-beta.6",
5
5
  "description": "Plugin that uses Python-Kasa API to communicate with Kasa Devices.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -13,9 +13,9 @@
13
13
  "url": "https://github.com/ZeliardM/homebridge-kasa-python/issues"
14
14
  },
15
15
  "engines": {
16
- "homebridge": "^1.10.0 || ^2.0.0-beta.0",
17
- "node": "^18.20.8 || ^20.19.2 || ^22.16.0",
18
- "python": "^3.11.0"
16
+ "homebridge": "^1.11 || ^2.0",
17
+ "node": "^20 || ^22 || ^24",
18
+ "python": "^3.11 || ^3.12 || ^3.13 || ^3.14"
19
19
  },
20
20
  "main": "dist/index.js",
21
21
  "scripts": {
@@ -49,18 +49,18 @@
49
49
  ],
50
50
  "devDependencies": {
51
51
  "@eslint/eslintrc": "^3.3.1",
52
- "@eslint/js": "^9.28.0",
53
- "@stylistic/eslint-plugin": "^4.4.1",
54
- "@types/node": "^24.0.0",
55
- "@typescript-eslint/parser": "^8.34.0",
56
- "eslint": "^9.28.0",
57
- "globals": "^16.2.0",
52
+ "@eslint/js": "^9.31.0",
53
+ "@stylistic/eslint-plugin": "^5.2.0",
54
+ "@types/node": "^24.0.14",
55
+ "@typescript-eslint/parser": "^8.37.0",
56
+ "eslint": "^9.31.0",
57
+ "globals": "^16.3.0",
58
58
  "homebridge": "^2.0.0-beta.29",
59
59
  "node-persist": "^4.0.4",
60
60
  "nodemon": "^3.1.10",
61
61
  "rimraf": "^6.0.1",
62
62
  "ts-node": "^10.9.2",
63
- "typescript-eslint": "^8.34.0"
63
+ "typescript-eslint": "^8.37.0"
64
64
  },
65
65
  "homepage": "https://github.com/ZeliardM/homebridge-kasa-python#readme",
66
66
  "funding": [
@@ -74,9 +74,9 @@
74
74
  }
75
75
  ],
76
76
  "dependencies": {
77
- "axios": "^1.9.0",
77
+ "axios": "^1.10.0",
78
78
  "eventsource": "^4.0.0",
79
- "ts-essentials": "^10.1.0",
79
+ "ts-essentials": "^10.1.1",
80
80
  "typescript": "^5.8.3"
81
81
  },
82
82
  "overrides": {
package/requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
1
  python-kasa==0.10.2
2
2
  quart==0.20.0
3
3
  tzdata==2025.2
4
- uvicorn==0.34.3
4
+ uvicorn==0.35.0