@matter/nodejs-ble 0.16.0-alpha.0-20250809-ee8375bcb → 0.16.0-alpha.0-20250812-285b75d83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/BlenoBleServer.d.ts +1 -1
- package/dist/cjs/BlenoBleServer.d.ts.map +1 -1
- package/dist/cjs/BlenoBleServer.js +3 -2
- package/dist/cjs/BlenoBleServer.js.map +1 -1
- package/dist/cjs/{BlePeripheralInterface.d.ts → BlenoPeripheralInterface.d.ts} +5 -2
- package/dist/cjs/BlenoPeripheralInterface.d.ts.map +1 -0
- package/dist/cjs/{BlePeripheralInterface.js → BlenoPeripheralInterface.js} +12 -6
- package/dist/cjs/{BlePeripheralInterface.js.map → BlenoPeripheralInterface.js.map} +2 -2
- package/dist/cjs/NobleBleChannel.js +2 -2
- package/dist/cjs/NobleBleChannel.js.map +1 -1
- package/dist/cjs/NobleBleClient.js +3 -3
- package/dist/cjs/NobleBleClient.js.map +1 -1
- package/dist/cjs/NodeJsBle.d.ts +6 -6
- package/dist/cjs/NodeJsBle.d.ts.map +1 -1
- package/dist/cjs/NodeJsBle.js +7 -15
- package/dist/cjs/NodeJsBle.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/BlenoBleServer.d.ts +1 -1
- package/dist/esm/BlenoBleServer.d.ts.map +1 -1
- package/dist/esm/BlenoBleServer.js +4 -3
- package/dist/esm/BlenoBleServer.js.map +1 -1
- package/dist/esm/{BlePeripheralInterface.d.ts → BlenoPeripheralInterface.d.ts} +5 -2
- package/dist/esm/BlenoPeripheralInterface.d.ts.map +1 -0
- package/dist/esm/{BlePeripheralInterface.js → BlenoPeripheralInterface.js} +9 -3
- package/dist/esm/{BlePeripheralInterface.js.map → BlenoPeripheralInterface.js.map} +2 -2
- package/dist/esm/NobleBleChannel.js +3 -3
- package/dist/esm/NobleBleChannel.js.map +1 -1
- package/dist/esm/NobleBleClient.js +4 -4
- package/dist/esm/NobleBleClient.js.map +1 -1
- package/dist/esm/NodeJsBle.d.ts +6 -6
- package/dist/esm/NodeJsBle.d.ts.map +1 -1
- package/dist/esm/NodeJsBle.js +7 -15
- package/dist/esm/NodeJsBle.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +5 -5
- package/src/BlenoBleServer.ts +5 -3
- package/src/{BlePeripheralInterface.ts → BlenoPeripheralInterface.ts} +10 -1
- package/src/NobleBleChannel.ts +3 -3
- package/src/NobleBleClient.ts +4 -4
- package/src/NodeJsBle.ts +10 -19
- package/src/index.ts +0 -1
- package/dist/cjs/BleBroadcaster.d.ts +0 -20
- package/dist/cjs/BleBroadcaster.d.ts.map +0 -1
- package/dist/cjs/BleBroadcaster.js +0 -121
- package/dist/cjs/BleBroadcaster.js.map +0 -6
- package/dist/cjs/BlePeripheralInterface.d.ts.map +0 -1
- package/dist/esm/BleBroadcaster.d.ts +0 -20
- package/dist/esm/BleBroadcaster.d.ts.map +0 -1
- package/dist/esm/BleBroadcaster.js +0 -104
- package/dist/esm/BleBroadcaster.js.map +0 -6
- package/dist/esm/BlePeripheralInterface.d.ts.map +0 -1
- package/src/BleBroadcaster.ts +0 -127
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { ImplementationError, Logger } from "#general";
|
|
7
|
-
import {
|
|
8
|
-
BtpCodec,
|
|
9
|
-
CommissioningMode
|
|
10
|
-
} from "#protocol";
|
|
11
|
-
const logger = Logger.get("BleBroadcaster");
|
|
12
|
-
class BleBroadcaster {
|
|
13
|
-
#blenoServer;
|
|
14
|
-
#additionalAdvertisementData;
|
|
15
|
-
#vendorId;
|
|
16
|
-
#productId;
|
|
17
|
-
#discriminator;
|
|
18
|
-
#advertise = false;
|
|
19
|
-
#isClosed = false;
|
|
20
|
-
constructor(blenoServer, additionalAdvertisementData) {
|
|
21
|
-
this.#blenoServer = blenoServer;
|
|
22
|
-
this.#additionalAdvertisementData = additionalAdvertisementData;
|
|
23
|
-
}
|
|
24
|
-
async setCommissionMode(mode, { name: deviceName, deviceType, vendorId, productId, discriminator }) {
|
|
25
|
-
this.#assertOpen();
|
|
26
|
-
if (mode !== CommissioningMode.Basic) {
|
|
27
|
-
this.#advertise = false;
|
|
28
|
-
logger.info(
|
|
29
|
-
`skip BLE announce because of commissioning mode ${mode} ${deviceName} ${deviceType} ${vendorId} ${productId} ${discriminator}`
|
|
30
|
-
);
|
|
31
|
-
await this.#blenoServer.stopAdvertising();
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
logger.debug(
|
|
35
|
-
`set data for commissioning mode ${mode} ${deviceName} ${deviceType} ${vendorId} ${productId} ${discriminator}`
|
|
36
|
-
);
|
|
37
|
-
this.#productId = productId;
|
|
38
|
-
this.#vendorId = vendorId;
|
|
39
|
-
this.#discriminator = discriminator;
|
|
40
|
-
process.env["BLENO_DEVICE_NAME"] = deviceName;
|
|
41
|
-
this.#advertise = true;
|
|
42
|
-
}
|
|
43
|
-
async setFabrics() {
|
|
44
|
-
this.#assertOpen();
|
|
45
|
-
this.#advertise = false;
|
|
46
|
-
logger.debug(`skip BLE announce because announcing an operational device is not supported`);
|
|
47
|
-
await this.#blenoServer.stopAdvertising();
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
async setCommissionerInfo(_commissionerData) {
|
|
51
|
-
this.#assertOpen();
|
|
52
|
-
this.#advertise = false;
|
|
53
|
-
logger.error(`skip BLE announce because announcing a commissioner is not supported`);
|
|
54
|
-
}
|
|
55
|
-
async announce() {
|
|
56
|
-
this.#assertOpen();
|
|
57
|
-
if (this.#vendorId === void 0 || this.#productId === void 0 || this.#discriminator === void 0) {
|
|
58
|
-
logger.debug(
|
|
59
|
-
`skip BLE announce because of missing commissioning data vendorId, productId or discriminator`
|
|
60
|
-
);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (!this.#advertise) {
|
|
64
|
-
logger.debug(`skip BLE announce because nothing to advertise`);
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const advertisementData = BtpCodec.encodeBleAdvertisementData(
|
|
68
|
-
this.#discriminator,
|
|
69
|
-
this.#vendorId,
|
|
70
|
-
this.#productId,
|
|
71
|
-
this.#additionalAdvertisementData !== void 0 && this.#additionalAdvertisementData.length > 0
|
|
72
|
-
);
|
|
73
|
-
process.env["BLENO_ADVERTISING_INTERVAL"] = "100";
|
|
74
|
-
await this.#blenoServer.advertise(advertisementData, this.#additionalAdvertisementData);
|
|
75
|
-
}
|
|
76
|
-
async expireCommissioningAnnouncement() {
|
|
77
|
-
this.#assertOpen();
|
|
78
|
-
this.#advertise = false;
|
|
79
|
-
await this.#blenoServer.stopAdvertising();
|
|
80
|
-
}
|
|
81
|
-
async expireFabricAnnouncement() {
|
|
82
|
-
}
|
|
83
|
-
async expireAllAnnouncements() {
|
|
84
|
-
this.#assertOpen();
|
|
85
|
-
this.#advertise = false;
|
|
86
|
-
await this.#blenoServer.stopAdvertising();
|
|
87
|
-
}
|
|
88
|
-
async close() {
|
|
89
|
-
if (this.#isClosed) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
this.#isClosed = true;
|
|
93
|
-
await this.#blenoServer.stopAdvertising();
|
|
94
|
-
}
|
|
95
|
-
#assertOpen() {
|
|
96
|
-
if (this.#isClosed) {
|
|
97
|
-
throw new ImplementationError("Illegal operation on closed BleBroadcaster");
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
export {
|
|
102
|
-
BleBroadcaster
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=BleBroadcaster.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/BleBroadcaster.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB,cAAc;AAC5C;AAAA,EACI;AAAA,EAEA;AAAA,OAGG;AAIP,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAEnC,MAAM,eAA8C;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,YAAY,aAA6B,6BAA0C;AAC/E,SAAK,eAAe;AACpB,SAAK,+BAA+B;AAAA,EACxC;AAAA,EAEA,MAAM,kBACF,MACA,EAAE,MAAM,YAAY,YAAY,UAAU,WAAW,cAAc,GACrE;AACE,SAAK,YAAY;AACjB,QAAI,SAAS,kBAAkB,OAAO;AAClC,WAAK,aAAa;AAClB,aAAO;AAAA,QACH,mDAAmD,IAAI,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa;AAAA,MACjI;AACA,YAAM,KAAK,aAAa,gBAAgB;AACxC;AAAA,IACJ;AACA,WAAO;AAAA,MACH,mCAAmC,IAAI,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa;AAAA,IACjH;AACA,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,SAAK,iBAAiB;AACtB,YAAQ,IAAI,mBAAmB,IAAI;AACnC,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,MAAM,aAAa;AACf,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,WAAO,MAAM,6EAA6E;AAC1F,UAAM,KAAK,aAAa,gBAAgB;AACxC;AAAA,EACJ;AAAA,EAEA,MAAM,oBAAoB,mBAA6C;AACnE,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,WAAO,MAAM,sEAAsE;AAAA,EACvF;AAAA,EAEA,MAAM,WAAW;AACb,SAAK,YAAY;AACjB,QAAI,KAAK,cAAc,UAAa,KAAK,eAAe,UAAa,KAAK,mBAAmB,QAAW;AACpG,aAAO;AAAA,QACH;AAAA,MACJ;AACA;AAAA,IACJ;AACA,QAAI,CAAC,KAAK,YAAY;AAClB,aAAO,MAAM,gDAAgD;AAC7D;AAAA,IACJ;AAEA,UAAM,oBAAoB,SAAS;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,iCAAiC,UAAa,KAAK,6BAA6B,SAAS;AAAA,IAClG;AAGA,YAAQ,IAAI,4BAA4B,IAAI;AAE5C,UAAM,KAAK,aAAa,UAAU,mBAAmB,KAAK,4BAA4B;AAAA,EAC1F;AAAA,EAEA,MAAM,kCAAkC;AACpC,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,UAAM,KAAK,aAAa,gBAAgB;AAAA,EAC5C;AAAA,EAEA,MAAM,2BAA2B;AAAA,EAEjC;AAAA,EAEA,MAAM,yBAAyB;AAC3B,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,UAAM,KAAK,aAAa,gBAAgB;AAAA,EAC5C;AAAA,EAEA,MAAM,QAAQ;AACV,QAAI,KAAK,WAAW;AAChB;AAAA,IACJ;AACA,SAAK,YAAY;AAEjB,UAAM,KAAK,aAAa,gBAAgB;AAAA,EAC5C;AAAA,EAEA,cAAc;AACV,QAAI,KAAK,WAAW;AAChB,YAAM,IAAI,oBAAoB,4CAA4C;AAAA,IAC9E;AAAA,EACJ;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BlePeripheralInterface.d.ts","sourceRoot":"","sources":["../../src/BlePeripheralInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,sBAAuB,YAAW,kBAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,cAAc;IAGxD,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,kBAAkB,CAAC,QAAQ;IAOhG,KAAK;IAIX,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;CAW/C"}
|
package/src/BleBroadcaster.ts
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { ImplementationError, Logger } from "#general";
|
|
8
|
-
import {
|
|
9
|
-
BtpCodec,
|
|
10
|
-
CommissionerInstanceData,
|
|
11
|
-
CommissioningMode,
|
|
12
|
-
CommissioningModeInstanceData,
|
|
13
|
-
InstanceBroadcaster,
|
|
14
|
-
} from "#protocol";
|
|
15
|
-
import { VendorId } from "#types";
|
|
16
|
-
import { BlenoBleServer } from "./BlenoBleServer.js";
|
|
17
|
-
|
|
18
|
-
const logger = Logger.get("BleBroadcaster");
|
|
19
|
-
|
|
20
|
-
export class BleBroadcaster implements InstanceBroadcaster {
|
|
21
|
-
#blenoServer: BlenoBleServer;
|
|
22
|
-
#additionalAdvertisementData?: Uint8Array;
|
|
23
|
-
#vendorId: VendorId | undefined;
|
|
24
|
-
#productId: number | undefined;
|
|
25
|
-
#discriminator: number | undefined;
|
|
26
|
-
#advertise = false;
|
|
27
|
-
#isClosed = false;
|
|
28
|
-
|
|
29
|
-
constructor(blenoServer: BlenoBleServer, additionalAdvertisementData?: Uint8Array) {
|
|
30
|
-
this.#blenoServer = blenoServer;
|
|
31
|
-
this.#additionalAdvertisementData = additionalAdvertisementData;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async setCommissionMode(
|
|
35
|
-
mode: number,
|
|
36
|
-
{ name: deviceName, deviceType, vendorId, productId, discriminator }: CommissioningModeInstanceData,
|
|
37
|
-
) {
|
|
38
|
-
this.#assertOpen();
|
|
39
|
-
if (mode !== CommissioningMode.Basic) {
|
|
40
|
-
this.#advertise = false;
|
|
41
|
-
logger.info(
|
|
42
|
-
`skip BLE announce because of commissioning mode ${mode} ${deviceName} ${deviceType} ${vendorId} ${productId} ${discriminator}`,
|
|
43
|
-
);
|
|
44
|
-
await this.#blenoServer.stopAdvertising();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
logger.debug(
|
|
48
|
-
`set data for commissioning mode ${mode} ${deviceName} ${deviceType} ${vendorId} ${productId} ${discriminator}`,
|
|
49
|
-
);
|
|
50
|
-
this.#productId = productId;
|
|
51
|
-
this.#vendorId = vendorId;
|
|
52
|
-
this.#discriminator = discriminator;
|
|
53
|
-
process.env["BLENO_DEVICE_NAME"] = deviceName;
|
|
54
|
-
this.#advertise = true;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async setFabrics() {
|
|
58
|
-
this.#assertOpen();
|
|
59
|
-
this.#advertise = false;
|
|
60
|
-
logger.debug(`skip BLE announce because announcing an operational device is not supported`);
|
|
61
|
-
await this.#blenoServer.stopAdvertising();
|
|
62
|
-
return; // Not needed because we only advertise un-commissioned devices
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
async setCommissionerInfo(_commissionerData: CommissionerInstanceData) {
|
|
66
|
-
this.#assertOpen();
|
|
67
|
-
this.#advertise = false;
|
|
68
|
-
logger.error(`skip BLE announce because announcing a commissioner is not supported`);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async announce() {
|
|
72
|
-
this.#assertOpen();
|
|
73
|
-
if (this.#vendorId === undefined || this.#productId === undefined || this.#discriminator === undefined) {
|
|
74
|
-
logger.debug(
|
|
75
|
-
`skip BLE announce because of missing commissioning data vendorId, productId or discriminator`,
|
|
76
|
-
);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (!this.#advertise) {
|
|
80
|
-
logger.debug(`skip BLE announce because nothing to advertise`);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const advertisementData = BtpCodec.encodeBleAdvertisementData(
|
|
85
|
-
this.#discriminator,
|
|
86
|
-
this.#vendorId,
|
|
87
|
-
this.#productId,
|
|
88
|
-
this.#additionalAdvertisementData !== undefined && this.#additionalAdvertisementData.length > 0,
|
|
89
|
-
);
|
|
90
|
-
|
|
91
|
-
// TODO if needed implement this according to the spec 5.4.2.5.3. (first 30s 20-60ms, 150-1285ms after)
|
|
92
|
-
process.env["BLENO_ADVERTISING_INTERVAL"] = "100"; // use statically 100ms for now
|
|
93
|
-
|
|
94
|
-
await this.#blenoServer.advertise(advertisementData, this.#additionalAdvertisementData);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
async expireCommissioningAnnouncement() {
|
|
98
|
-
this.#assertOpen();
|
|
99
|
-
this.#advertise = false;
|
|
100
|
-
await this.#blenoServer.stopAdvertising();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
async expireFabricAnnouncement() {
|
|
104
|
-
// nothing to do
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
async expireAllAnnouncements() {
|
|
108
|
-
this.#assertOpen();
|
|
109
|
-
this.#advertise = false;
|
|
110
|
-
await this.#blenoServer.stopAdvertising();
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
async close() {
|
|
114
|
-
if (this.#isClosed) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
this.#isClosed = true;
|
|
118
|
-
|
|
119
|
-
await this.#blenoServer.stopAdvertising();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
#assertOpen() {
|
|
123
|
-
if (this.#isClosed) {
|
|
124
|
-
throw new ImplementationError("Illegal operation on closed BleBroadcaster");
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|