@homebridge/hap-client 4.0.5-beta.2 → 4.0.5-beta.3
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/.github/dependabot.yml +44 -44
- package/.github/workflows/codeql-analysis.yml +3 -3
- package/.vscode/settings.json +1 -1
- package/CHANGELOG.md +2 -0
- package/README.md +5 -4
- package/dist/eventedHttpClient/httpParser.d.ts +1 -0
- package/dist/eventedHttpClient/httpParser.js +29 -28
- package/dist/eventedHttpClient/httpParser.js.map +1 -1
- package/dist/eventedHttpClient/index.js +7 -6
- package/dist/eventedHttpClient/index.js.map +1 -1
- package/dist/monitor.js +1 -1
- package/dist/monitor.js.map +1 -1
- package/package.json +28 -28
package/.github/dependabot.yml
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
version: 2
|
|
2
2
|
updates:
|
|
3
|
-
- package-ecosystem: npm
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
3
|
+
- package-ecosystem: npm
|
|
4
|
+
directory: /
|
|
5
|
+
schedule:
|
|
6
|
+
interval: daily
|
|
7
|
+
time: '10:00'
|
|
8
|
+
open-pull-requests-limit: 10
|
|
9
|
+
assignees:
|
|
10
|
+
- NorthernMan54
|
|
11
|
+
labels:
|
|
12
|
+
- dependencies
|
|
13
|
+
# Group related updates together (optional)
|
|
14
|
+
groups:
|
|
15
|
+
packages:
|
|
16
|
+
patterns:
|
|
17
|
+
- '*'
|
|
18
|
+
# Automatically rebase PRs when conflicts occur
|
|
19
|
+
rebase-strategy: auto
|
|
20
|
+
# Commit message prefix
|
|
21
|
+
commit-message:
|
|
22
|
+
prefix: chore
|
|
23
|
+
prefix-development: chore
|
|
24
|
+
include: scope
|
|
25
25
|
|
|
26
|
-
- package-ecosystem:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
26
|
+
- package-ecosystem: github-actions
|
|
27
|
+
directory: /
|
|
28
|
+
schedule:
|
|
29
|
+
interval: daily
|
|
30
|
+
time: '09:00'
|
|
31
|
+
# Create PRs for out-of-date actions
|
|
32
|
+
open-pull-requests-limit: 10
|
|
33
|
+
# Add labels to PRs
|
|
34
|
+
labels:
|
|
35
|
+
- dependencies
|
|
36
|
+
# Group related updates together (optional)
|
|
37
|
+
groups:
|
|
38
|
+
actions:
|
|
39
|
+
patterns:
|
|
40
|
+
- '*'
|
|
41
|
+
# Automatically rebase PRs when conflicts occur
|
|
42
|
+
rebase-strategy: auto
|
|
43
|
+
# Commit message prefix
|
|
44
|
+
commit-message:
|
|
45
|
+
prefix: chore
|
|
46
|
+
prefix-development: chore
|
|
47
|
+
include: scope
|
package/.vscode/settings.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -25,6 +25,8 @@ All notable changes to `@homebridge/hap-client` will be documented in this file.
|
|
|
25
25
|
- fix: parse multiple HTTP messages per TCP chunk in monitor
|
|
26
26
|
- chore: add and format eslint rules for test files
|
|
27
27
|
- chore: remove unused `tslint.json` file
|
|
28
|
+
- fix: harden httpParser request-line regex against ReDoS
|
|
29
|
+
- chore: lint whole repo via `"eslint ."` and apply autofix formatting
|
|
28
30
|
- chore: dependency updates
|
|
29
31
|
|
|
30
32
|
### Homebridge Dependencies
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://homebridge.io"><img src="https://raw.githubusercontent.com/homebridge/branding/latest/logos/homebridge-color-round-stylized.png" height="140"></a>
|
|
2
|
+
<a href="https://homebridge.io"><img src="https://raw.githubusercontent.com/homebridge/branding/latest/logos/homebridge-color-round-stylized.png" alt="Homebridge Logo" height="140"></a>
|
|
3
3
|
</p>
|
|
4
4
|
<span align="center">
|
|
5
5
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
A client for an insecure HAP-NodeJS instance. Provides a Typescript based interface based on the homekit accessory protocol, allowing the creation of clients able to connect to and control Homebridge devices.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
## API
|
|
17
17
|
|
|
18
18
|
```
|
|
19
19
|
const { HapClient } = require('@homebridge/hap-client');
|
|
@@ -28,6 +28,7 @@ this.monitor = await this.hapClient.monitorCharacteristics(services?: ServiceTyp
|
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
The discovery timeout can be configured by setting the `discoveryTimeout` property in the `config` object.
|
|
31
|
+
|
|
31
32
|
```
|
|
32
33
|
const { HapClient } = require('@homebridge/hap-client');
|
|
33
34
|
|
|
@@ -42,6 +43,7 @@ this.hapClient = new HapClient({
|
|
|
42
43
|
|
|
43
44
|
It's possible to control the discovery process manually, by settings the `autoStartDiscovery` property to `false` and then calling `this.hapClient.startDiscovery(discoveryTimeout?: number)` when ready. If no timeout is provided to the function, the `discoveryTimeout` property will be used from the `config` object, and if that is not provided either, the default discovery timeout (60 seconds) will be used.
|
|
44
45
|
It's also possible to stop the discovery process manually by calling `stopDiscovery()`
|
|
46
|
+
|
|
45
47
|
```
|
|
46
48
|
const { HapClient } = require('@homebridge/hap-client');
|
|
47
49
|
|
|
@@ -79,8 +81,7 @@ this.monitor.on('monitor-error', this.monitorError(instance, error)); // Emitted
|
|
|
79
81
|
this.monitor.on('monitor-refresh', this.monitorRefresh(instance, error)); // Emitted when the connection to a homebridge instance has been refreshed or restarted
|
|
80
82
|
```
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
# Dependant Applications
|
|
84
|
+
## Dependant Applications
|
|
84
85
|
|
|
85
86
|
- homebridge-config-ui-x
|
|
86
87
|
- homebridge-gsh
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
1
2
|
function httpMessageParser(message) {
|
|
2
3
|
const result = {
|
|
3
4
|
protocol: null,
|
|
@@ -25,9 +26,9 @@ function httpMessageParser(message) {
|
|
|
25
26
|
else {
|
|
26
27
|
return result;
|
|
27
28
|
}
|
|
28
|
-
messageString = messageString.replace(/\r\n/
|
|
29
|
+
messageString = messageString.replace(/\r\n/g, '\n');
|
|
29
30
|
(function () {
|
|
30
|
-
const firstNonWhitespaceRegex = /[\w-]+/
|
|
31
|
+
const firstNonWhitespaceRegex = /[\w-]+/g;
|
|
31
32
|
const firstNonWhitespaceIndex = messageString.search(firstNonWhitespaceRegex);
|
|
32
33
|
if (firstNonWhitespaceIndex > 0) {
|
|
33
34
|
message = message.slice(firstNonWhitespaceIndex, message.length);
|
|
@@ -39,8 +40,8 @@ function httpMessageParser(message) {
|
|
|
39
40
|
const requestLineMatch = possibleRequestLine.match(httpMessageParser._requestLineRegex);
|
|
40
41
|
if (Array.isArray(requestLineMatch) && requestLineMatch.length > 1) {
|
|
41
42
|
result.protocol = requestLineMatch[1];
|
|
42
|
-
result.httpVersion = parseFloat(requestLineMatch[2]);
|
|
43
|
-
result.statusCode = parseInt(requestLineMatch[3], 10);
|
|
43
|
+
result.httpVersion = Number.parseFloat(requestLineMatch[2]);
|
|
44
|
+
result.statusCode = Number.parseInt(requestLineMatch[3], 10);
|
|
44
45
|
result.statusMessage = requestLineMatch[4];
|
|
45
46
|
}
|
|
46
47
|
else {
|
|
@@ -48,7 +49,7 @@ function httpMessageParser(message) {
|
|
|
48
49
|
if (Array.isArray(responseLineMath) && responseLineMath.length > 1) {
|
|
49
50
|
result.method = responseLineMath[1];
|
|
50
51
|
result.url = responseLineMath[2];
|
|
51
|
-
result.httpVersion = parseFloat(responseLineMath[3]);
|
|
52
|
+
result.httpVersion = Number.parseFloat(responseLineMath[3]);
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
})();
|
|
@@ -72,7 +73,7 @@ function httpMessageParser(message) {
|
|
|
72
73
|
if (!result.boundary) {
|
|
73
74
|
const boundaryMatch = messageString.match(httpMessageParser._boundaryRegex);
|
|
74
75
|
if (Array.isArray(boundaryMatch) && boundaryMatch.length) {
|
|
75
|
-
fullBoundary = boundaryMatch[0].replace(/[\r\n]+/
|
|
76
|
+
fullBoundary = boundaryMatch[0].replace(/[\r\n]+/g, '');
|
|
76
77
|
result.boundary = fullBoundary.replace(/^--/, '');
|
|
77
78
|
}
|
|
78
79
|
}
|
|
@@ -89,8 +90,8 @@ function httpMessageParser(message) {
|
|
|
89
90
|
const body = messageString.slice(start, end);
|
|
90
91
|
result.additional = messageString.slice(end);
|
|
91
92
|
if (body && body.length) {
|
|
92
|
-
if ((result.headers && result.headers['Content-Type'] === 'application/hap+json')
|
|
93
|
-
(result.headers && result.headers['Content-Type'] === 'application/json')) {
|
|
93
|
+
if ((result.headers && result.headers['Content-Type'] === 'application/hap+json')
|
|
94
|
+
|| (result.headers && result.headers['Content-Type'] === 'application/json')) {
|
|
94
95
|
try {
|
|
95
96
|
if (result.headers['Content-Length']) {
|
|
96
97
|
result.body = body;
|
|
@@ -113,9 +114,9 @@ function httpMessageParser(message) {
|
|
|
113
114
|
const multipartStart = messageString.indexOf(fullBoundary) + fullBoundary.length;
|
|
114
115
|
const multipartEnd = messageString.lastIndexOf(fullBoundary);
|
|
115
116
|
const multipartBody = messageString.substring(multipartStart, multipartEnd);
|
|
116
|
-
const splitRegex = new RegExp(
|
|
117
|
+
const splitRegex = new RegExp(`^${fullBoundary}.*[\n\r]?$`, 'gm');
|
|
117
118
|
const parts = multipartBody.split(splitRegex);
|
|
118
|
-
result.multipart = parts.filter(httpMessageParser._isTruthy).map(
|
|
119
|
+
result.multipart = parts.filter(httpMessageParser._isTruthy).map((part, i) => {
|
|
119
120
|
const result = {
|
|
120
121
|
headers: null,
|
|
121
122
|
body: null,
|
|
@@ -128,7 +129,7 @@ function httpMessageParser(message) {
|
|
|
128
129
|
},
|
|
129
130
|
},
|
|
130
131
|
};
|
|
131
|
-
const newlineRegex = /\n\n|\r\n\r\n/
|
|
132
|
+
const newlineRegex = /\n\n|\r\n\r\n/g;
|
|
132
133
|
let newlineIndex = 0;
|
|
133
134
|
let newlineMatch = newlineRegex.exec(part);
|
|
134
135
|
let body;
|
|
@@ -157,9 +158,9 @@ function httpMessageParser(message) {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
const boundaryNewlineIndexes = [];
|
|
160
|
-
boundaryIndexes.slice(0, boundaryIndexes.length - 1).forEach(
|
|
161
|
+
boundaryIndexes.slice(0, boundaryIndexes.length - 1).forEach((m, k) => {
|
|
161
162
|
const partBody = message.slice(boundaryIndexes[k], boundaryIndexes[k + 1]).toString();
|
|
162
|
-
let headerNewlineIndex = partBody.search(/\n\n|\r\n\r\n/
|
|
163
|
+
let headerNewlineIndex = partBody.search(/\n\n|\r\n\r\n/g) + 2;
|
|
163
164
|
headerNewlineIndex = boundaryIndexes[k] + headerNewlineIndex;
|
|
164
165
|
boundaryNewlineIndexes.push(headerNewlineIndex);
|
|
165
166
|
});
|
|
@@ -187,34 +188,34 @@ httpMessageParser._isTruthy = function _isTruthy(v) {
|
|
|
187
188
|
return !!v;
|
|
188
189
|
};
|
|
189
190
|
httpMessageParser._isNumeric = function _isNumeric(v) {
|
|
190
|
-
if (typeof v === 'number' && !isNaN(v)) {
|
|
191
|
+
if (typeof v === 'number' && !Number.isNaN(v)) {
|
|
191
192
|
return true;
|
|
192
193
|
}
|
|
193
194
|
v = (v || '').toString().trim();
|
|
194
195
|
if (!v) {
|
|
195
196
|
return false;
|
|
196
197
|
}
|
|
197
|
-
return !isNaN(v);
|
|
198
|
+
return !Number.isNaN(v);
|
|
198
199
|
};
|
|
199
200
|
httpMessageParser._isBuffer = function (item) {
|
|
200
|
-
return ((httpMessageParser._isNodeBufferSupported()
|
|
201
|
-
typeof
|
|
202
|
-
|
|
203
|
-
(item instanceof Object
|
|
204
|
-
item._isBuffer));
|
|
201
|
+
return ((httpMessageParser._isNodeBufferSupported()
|
|
202
|
+
&& typeof globalThis === 'object'
|
|
203
|
+
&& Buffer.isBuffer(item))
|
|
204
|
+
|| (item instanceof Object
|
|
205
|
+
&& item._isBuffer));
|
|
205
206
|
};
|
|
206
207
|
httpMessageParser._isNodeBufferSupported = function () {
|
|
207
|
-
return (typeof
|
|
208
|
-
typeof
|
|
209
|
-
typeof
|
|
208
|
+
return (typeof globalThis === 'object'
|
|
209
|
+
&& typeof Buffer === 'function'
|
|
210
|
+
&& typeof Buffer.isBuffer === 'function');
|
|
210
211
|
};
|
|
211
212
|
httpMessageParser._parseHeaders = function _parseHeaders(body) {
|
|
212
213
|
const headers = {};
|
|
213
214
|
if (typeof body !== 'string') {
|
|
214
215
|
return headers;
|
|
215
216
|
}
|
|
216
|
-
body.split(/[\r\n]/).forEach(
|
|
217
|
-
const match = string.match(/([\w-]+):\s*(.*)/
|
|
217
|
+
body.split(/[\r\n]/).forEach((string) => {
|
|
218
|
+
const match = string.match(/([\w-]+):\s*(.*)/);
|
|
218
219
|
if (Array.isArray(match) && match.length === 3) {
|
|
219
220
|
const key = match[1];
|
|
220
221
|
const value = match[2];
|
|
@@ -223,9 +224,9 @@ httpMessageParser._parseHeaders = function _parseHeaders(body) {
|
|
|
223
224
|
});
|
|
224
225
|
return headers;
|
|
225
226
|
};
|
|
226
|
-
httpMessageParser._requestLineRegex = /(HTTP|EVENT)\/(1\.0|1\.1|2\.0)\s+(\d+)\s+([\w\s-
|
|
227
|
-
httpMessageParser._responseLineRegex = /(GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD|TRACE|CONNECT)\s+(
|
|
228
|
-
httpMessageParser._headerNewlineRegex = /^[\r\n]+/
|
|
227
|
+
httpMessageParser._requestLineRegex = /(HTTP|EVENT)\/(1\.0|1\.1|2\.0)\s+(\d+)\s+([\w\s-]+)/i;
|
|
228
|
+
httpMessageParser._responseLineRegex = /(GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD|TRACE|CONNECT)\s+(\S+)\s+HTTP\/(1\.0|1\.1|2\.0)/i;
|
|
229
|
+
httpMessageParser._headerNewlineRegex = /^[\r\n]+/gm;
|
|
229
230
|
httpMessageParser._boundaryRegex = /(\n|\r\n)+--[\w-]+(\n|\r\n)+/g;
|
|
230
231
|
httpMessageParser._createBuffer = function (data) {
|
|
231
232
|
return Buffer.from(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpParser.js","sourceRoot":"","sources":["../../src/eventedHttpClient/httpParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpParser.js","sourceRoot":"","sources":["../../src/eventedHttpClient/httpParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
1
2
|
import { createConnection as netCreateConnection } from 'node:net';
|
|
2
3
|
import httpMessageParser from './httpParser.js';
|
|
3
4
|
export const parseMessage = httpMessageParser;
|
|
@@ -8,7 +9,7 @@ export function createConnection(instance, pin, body) {
|
|
|
8
9
|
});
|
|
9
10
|
client.write(_buildMessage({
|
|
10
11
|
method: 'PUT',
|
|
11
|
-
url:
|
|
12
|
+
url: `http://${instance.ipAddress}:${instance.port}/characteristics`,
|
|
12
13
|
maxAttempts: 1,
|
|
13
14
|
headers: {
|
|
14
15
|
'Content-Type': 'Application/json',
|
|
@@ -22,24 +23,24 @@ export function createConnection(instance, pin, body) {
|
|
|
22
23
|
function _headersToString(headers) {
|
|
23
24
|
let response = '';
|
|
24
25
|
for (const header of Object.keys(headers)) {
|
|
25
|
-
response = response + header
|
|
26
|
+
response = `${response + header}: ${headers[header]}\r\n`;
|
|
26
27
|
}
|
|
27
28
|
return (response);
|
|
28
29
|
}
|
|
29
30
|
function _buildMessage(request) {
|
|
30
31
|
const context = new URL(request.url);
|
|
31
32
|
let message;
|
|
32
|
-
message = request.method
|
|
33
|
+
message = `${request.method} ${context.pathname}`;
|
|
33
34
|
if (context.search) {
|
|
34
35
|
message = message + context.search;
|
|
35
36
|
}
|
|
36
|
-
message = message
|
|
37
|
+
message = `${message} HTTP/1.1\r\nHost: ${context.host}\r\n${_headersToString(request.headers)}`;
|
|
37
38
|
if (request.body) {
|
|
38
39
|
const contentLength = Buffer.byteLength(request.body, 'utf8');
|
|
39
|
-
message = message
|
|
40
|
+
message = `${message}Content-Length: ${contentLength}\r\n\r\n${request.body}\r\n\r\n`;
|
|
40
41
|
}
|
|
41
42
|
else {
|
|
42
|
-
message = message
|
|
43
|
+
message = `${message}\r\n\r\n`;
|
|
43
44
|
}
|
|
44
45
|
return (message);
|
|
45
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eventedHttpClient/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eventedHttpClient/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAElE,OAAO,iBAAiB,MAAM,iBAAiB,CAAA;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAA;AAE7C,MAAM,UAAU,gBAAgB,CAAC,QAAQ,EAAE,GAAW,EAAE,IAAI;IAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,IAAI,EAAE,QAAQ,CAAC,SAAS;QACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;KACpB,CAAC,CAAA;IAEF,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;QACzB,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,UAAU,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,kBAAkB;QACpE,WAAW,EAAE,CAAC;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,GAAG;YACpB,YAAY,EAAE,YAAY;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,CAAA;IAEH,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAO;IAC/B,IAAI,QAAQ,GAAG,EAAE,CAAA;IAEjB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,QAAQ,GAAG,GAAG,QAAQ,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;IAC3D,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,OAAO;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,OAAO,CAAA;IAEX,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAA;IACjD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IACpC,CAAC;IACD,OAAO,GAAG,GAAG,OAAO,sBAAsB,OAAO,CAAC,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;IAChG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7D,OAAO,GAAG,GAAG,OAAO,mBAAmB,aAAa,WAAW,OAAO,CAAC,IAAI,UAAU,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,GAAG,OAAO,UAAU,CAAA;IAChC,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,CAAA;AAClB,CAAC"}
|
package/dist/monitor.js
CHANGED
|
@@ -11,7 +11,7 @@ export function findMessageBoundary(buffer) {
|
|
|
11
11
|
const bodyStart = sepMatch.index + sepMatch[0].length;
|
|
12
12
|
const contentLengthMatch = headers.match(/Content-Length:\s*(\d+)/i);
|
|
13
13
|
if (!contentLengthMatch) {
|
|
14
|
-
return
|
|
14
|
+
return bodyStart;
|
|
15
15
|
}
|
|
16
16
|
const messageEnd = bodyStart + Number(contentLengthMatch[1]);
|
|
17
17
|
if (buffer.length < messageEnd) {
|
package/dist/monitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAO7E,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAKhD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAGrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAErD,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACpE,IAAI,CAAC,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homebridge/hap-client",
|
|
3
|
-
"version": "4.0.5-beta.2",
|
|
4
|
-
"description": "A client for HAP-NodeJS.",
|
|
5
3
|
"type": "module",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
4
|
+
"version": "4.0.5-beta.3",
|
|
5
|
+
"description": "A client for HAP-NodeJS.",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Homebridge"
|
|
8
|
+
},
|
|
9
|
+
"contributors": [
|
|
10
|
+
{
|
|
11
|
+
"name": "homebridge",
|
|
12
|
+
"url": "https://github.com/homebridge"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"homepage": "https://github.com/homebridge/hap-client/blob/latest#readme",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/homebridge/hap-client.git"
|
|
20
|
+
},
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/homebridge/hap-client/issues/"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"hap",
|
|
26
|
+
"homebridge",
|
|
27
|
+
"api"
|
|
28
|
+
],
|
|
8
29
|
"exports": {
|
|
9
30
|
".": {
|
|
10
31
|
"types": "./dist/index.d.ts",
|
|
@@ -15,10 +36,12 @@
|
|
|
15
36
|
"default": "./dist/hap-types.js"
|
|
16
37
|
}
|
|
17
38
|
},
|
|
39
|
+
"main": "dist/index.js",
|
|
40
|
+
"types": "dist/index.d.ts",
|
|
18
41
|
"scripts": {
|
|
19
42
|
"check": "npm install && npm outdated",
|
|
20
43
|
"clean": "rimraf ./dist",
|
|
21
|
-
"lint": "eslint
|
|
44
|
+
"lint": "eslint .",
|
|
22
45
|
"lint:fix": "npm run lint -- --fix",
|
|
23
46
|
"build": "tsc",
|
|
24
47
|
"prepublishOnly": "npm run lint && npm run build",
|
|
@@ -26,29 +49,6 @@
|
|
|
26
49
|
"test-coverage": "vitest run --coverage",
|
|
27
50
|
"gen": "ts-node --esm scripts/gen-hap-types.ts"
|
|
28
51
|
},
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "git",
|
|
31
|
-
"url": "git+https://github.com/homebridge/hap-client.git"
|
|
32
|
-
},
|
|
33
|
-
"keywords": [
|
|
34
|
-
"hap",
|
|
35
|
-
"homebridge",
|
|
36
|
-
"api"
|
|
37
|
-
],
|
|
38
|
-
"author": {
|
|
39
|
-
"name": "Homebridge"
|
|
40
|
-
},
|
|
41
|
-
"contributors": [
|
|
42
|
-
{
|
|
43
|
-
"name": "homebridge",
|
|
44
|
-
"url": "https://github.com/homebridge"
|
|
45
|
-
}
|
|
46
|
-
],
|
|
47
|
-
"license": "MIT",
|
|
48
|
-
"bugs": {
|
|
49
|
-
"url": "https://github.com/homebridge/hap-client/issues/"
|
|
50
|
-
},
|
|
51
|
-
"homepage": "https://github.com/homebridge/hap-client/blob/latest#readme",
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"axios": "1.16.1",
|
|
54
54
|
"bonjour-service": "1.3.0",
|