@ovok/native 1.16.1-dev.2185 → 1.16.1-dev.2187
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/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js +13 -1
- package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/connections.js +25 -0
- package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/errors.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/runtime.js +13 -0
- package/lib/commonjs/modules/next/bluetooth/runtime.js.map +1 -1
- package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js +13 -1
- package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/connections.js +25 -0
- package/lib/module/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/errors.js.map +1 -1
- package/lib/module/modules/next/bluetooth/runtime.js +13 -0
- package/lib/module/modules/next/bluetooth/runtime.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +15 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts +7 -0
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts +8 -0
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts +7 -0
- package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +15 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -55,7 +55,19 @@ const legacyDriver = (creator, deviceName) => (peripheral, signal) => {
|
|
|
55
55
|
}) => events.push({
|
|
56
56
|
kind: "error",
|
|
57
57
|
error: (0, _bleErrors.fromBleError)(error)
|
|
58
|
-
})
|
|
58
|
+
}),
|
|
59
|
+
onConnectionEvent: ({
|
|
60
|
+
kind,
|
|
61
|
+
recording
|
|
62
|
+
}) => {
|
|
63
|
+
if (kind === "recording") {
|
|
64
|
+
events.push({
|
|
65
|
+
kind: "recording",
|
|
66
|
+
recording: recording ?? null,
|
|
67
|
+
stop: () => managed.stopRecording()
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
59
71
|
});
|
|
60
72
|
signal.addEventListener("abort", stop, {
|
|
61
73
|
once: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_deviceStatus","require","_channel","_driver","_bleErrors","_blePeripheral","STATUSES","DeviceStatus","CONNECTED","MEASURING","DISCONNECTED","legacyDriver","creator","deviceName","peripheral","signal","stop","events","end","Channel","removeEventListener","managed","disconnect","createDevice","device","bleDeviceOf","onResult","id","data","reading","push","kind","isTimestamped","onDeviceStatusChanged","status","mapped","onError","error","fromBleError","addEventListener","once","connect","catch","fail","exports"],"sourceRoot":"../../../../../../src","sources":["modules/next/bluetooth/ble-plx/legacy-driver.ts"],"mappings":";;;;;;AAKA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEA,MAAMK,QAAmF,GAAG;EAC1F,CAACC,0BAAY,CAACC,SAAS,GAAG,WAAW;EACrC,CAACD,0BAAY,CAACE,SAAS,GAAG,WAAW;EACrC,CAACF,0BAAY,CAACG,YAAY,GAAG;AAC/B,CAAC;;AAED;AACA,MAAMC,YAAY,GAAGA,CAACC,OAAiD,EAAEC,UAAqB,KAC5F,CAACC,UAAU,EAAEC,MAAM,KAAK;EACtB,MAAMC,IAAI,GAAGA,CAAA,KAAMC,MAAM,CAACC,GAAG,CAAC,CAAC;EAE/B,MAAMD,MAAM,GAAG,IAAIE,gBAAO,CAAc,MAAM;IAC5CJ,MAAM,CAACK,mBAAmB,CAAC,OAAO,EAAEJ,IAAI,CAAC;IACzC,KAAKK,OAAO,CAACC,UAAU,CAAC,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMD,OAAO,GAAGT,OAAO,CAACW,YAAY,CAAC;IACnCC,MAAM,EAAE,IAAAC,0BAAW,EAACX,UAAU,CAAC;IAC/BD,UAAU;IACVa,QAAQ,EAAEA,CAAC;MAAEC,EAAE;MAAEC;IAAK,CAAC,KAAK;MAC1B,MAAMC,OAAO,GAAGD,IAAmB;MAEnCX,MAAM,CAACa,IAAI,CAAC;QAAEC,IAAI,EAAE,SAAS;QAAEJ,EAAE,EAAE,IAAAK,qBAAa,EAACH,OAAO,CAAC,GAAGF,EAAE,GAAG,IAAI;QAAEE;MAAQ,CAAC,CAAC;IACnF,CAAC;IACDI,qBAAqB,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK;MACrC,MAAMC,MAAM,GAAG7B,QAAQ,CAAC4B,MAAM,CAAC;MAE/B,IAAIC,MAAM,EAAE;QACVlB,MAAM,CAACa,IAAI,CAAC;UAAEC,IAAI,EAAE,QAAQ;UAAEG,MAAM,EAAEC;QAAO,CAAC,CAAC;MACjD;MACA,IAAID,MAAM,KAAK3B,0BAAY,CAACG,YAAY,EAAE;QACxCO,MAAM,CAACC,GAAG,CAAC,CAAC;MACd;IACF,CAAC;IACDkB,OAAO,EAAEA,CAAC;MAAEC;IAAM,CAAC,KAAKpB,MAAM,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEM,KAAK,EAAE,IAAAC,uBAAY,EAACD,KAAK;IAAE,CAAC;
|
|
1
|
+
{"version":3,"names":["_deviceStatus","require","_channel","_driver","_bleErrors","_blePeripheral","STATUSES","DeviceStatus","CONNECTED","MEASURING","DISCONNECTED","legacyDriver","creator","deviceName","peripheral","signal","stop","events","end","Channel","removeEventListener","managed","disconnect","createDevice","device","bleDeviceOf","onResult","id","data","reading","push","kind","isTimestamped","onDeviceStatusChanged","status","mapped","onError","error","fromBleError","onConnectionEvent","recording","stopRecording","addEventListener","once","connect","catch","fail","exports"],"sourceRoot":"../../../../../../src","sources":["modules/next/bluetooth/ble-plx/legacy-driver.ts"],"mappings":";;;;;;AAKA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEA,MAAMK,QAAmF,GAAG;EAC1F,CAACC,0BAAY,CAACC,SAAS,GAAG,WAAW;EACrC,CAACD,0BAAY,CAACE,SAAS,GAAG,WAAW;EACrC,CAACF,0BAAY,CAACG,YAAY,GAAG;AAC/B,CAAC;;AAED;AACA,MAAMC,YAAY,GAAGA,CAACC,OAAiD,EAAEC,UAAqB,KAC5F,CAACC,UAAU,EAAEC,MAAM,KAAK;EACtB,MAAMC,IAAI,GAAGA,CAAA,KAAMC,MAAM,CAACC,GAAG,CAAC,CAAC;EAE/B,MAAMD,MAAM,GAAG,IAAIE,gBAAO,CAAc,MAAM;IAC5CJ,MAAM,CAACK,mBAAmB,CAAC,OAAO,EAAEJ,IAAI,CAAC;IACzC,KAAKK,OAAO,CAACC,UAAU,CAAC,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMD,OAAO,GAAGT,OAAO,CAACW,YAAY,CAAC;IACnCC,MAAM,EAAE,IAAAC,0BAAW,EAACX,UAAU,CAAC;IAC/BD,UAAU;IACVa,QAAQ,EAAEA,CAAC;MAAEC,EAAE;MAAEC;IAAK,CAAC,KAAK;MAC1B,MAAMC,OAAO,GAAGD,IAAmB;MAEnCX,MAAM,CAACa,IAAI,CAAC;QAAEC,IAAI,EAAE,SAAS;QAAEJ,EAAE,EAAE,IAAAK,qBAAa,EAACH,OAAO,CAAC,GAAGF,EAAE,GAAG,IAAI;QAAEE;MAAQ,CAAC,CAAC;IACnF,CAAC;IACDI,qBAAqB,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK;MACrC,MAAMC,MAAM,GAAG7B,QAAQ,CAAC4B,MAAM,CAAC;MAE/B,IAAIC,MAAM,EAAE;QACVlB,MAAM,CAACa,IAAI,CAAC;UAAEC,IAAI,EAAE,QAAQ;UAAEG,MAAM,EAAEC;QAAO,CAAC,CAAC;MACjD;MACA,IAAID,MAAM,KAAK3B,0BAAY,CAACG,YAAY,EAAE;QACxCO,MAAM,CAACC,GAAG,CAAC,CAAC;MACd;IACF,CAAC;IACDkB,OAAO,EAAEA,CAAC;MAAEC;IAAM,CAAC,KAAKpB,MAAM,CAACa,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEM,KAAK,EAAE,IAAAC,uBAAY,EAACD,KAAK;IAAE,CAAC,CAAC;IAClFE,iBAAiB,EAAEA,CAAC;MAAER,IAAI;MAAES;IAAU,CAAC,KAAK;MAC1C,IAAIT,IAAI,KAAK,WAAW,EAAE;QACxBd,MAAM,CAACa,IAAI,CAAC;UAAEC,IAAI,EAAE,WAAW;UAAES,SAAS,EAAEA,SAAS,IAAI,IAAI;UAAExB,IAAI,EAAEA,CAAA,KAAMK,OAAO,CAACoB,aAAa,CAAC;QAAE,CAAC,CAAC;MACvG;IACF;EACF,CAAC,CAAC;EAEF1B,MAAM,CAAC2B,gBAAgB,CAAC,OAAO,EAAE1B,IAAI,EAAE;IAAE2B,IAAI,EAAE;EAAK,CAAC,CAAC;EACtDtB,OAAO,CAACuB,OAAO,CAAC,CAAC,CAACC,KAAK,CAAER,KAAc,IAAKpB,MAAM,CAAC6B,IAAI,CAAC,IAAAR,uBAAY,EAACD,KAAK,CAAC,CAAC,CAAC;EAE7E,OAAOpB,MAAM;AACf,CAAC;AAAC8B,OAAA,CAAApC,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ const endedBeforeConnecting = () => new _errors.BluetoothError("connection-faile
|
|
|
11
11
|
/** One driver run per connected device, its events folded into the snapshot. */
|
|
12
12
|
class Connections {
|
|
13
13
|
sessions = new Map();
|
|
14
|
+
recordingStops = new Map();
|
|
14
15
|
constructor(store, readings, policy, onEnded) {
|
|
15
16
|
this.store = store;
|
|
16
17
|
this.readings = readings;
|
|
@@ -36,6 +37,21 @@ class Connections {
|
|
|
36
37
|
await session?.ended;
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Stops the recording a connected device holds open.
|
|
42
|
+
*
|
|
43
|
+
* @throws BluetoothError `no-open-recording` when the device holds none.
|
|
44
|
+
*/
|
|
45
|
+
async stopRecording(id) {
|
|
46
|
+
const stop = this.recordingStops.get(id);
|
|
47
|
+
if (!stop || !this.store.device(id)?.recording) {
|
|
48
|
+
throw new _errors.BluetoothError("no-open-recording", "The device holds no open recording to stop");
|
|
49
|
+
}
|
|
50
|
+
await stop().catch(error => {
|
|
51
|
+
throw (0, _errors.asBluetoothError)(error, "no-open-recording");
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
39
55
|
/** Disconnects every device; resolves once every connection has ended. */
|
|
40
56
|
async disconnectAll() {
|
|
41
57
|
await Promise.all([...this.sessions.keys()].map(id => this.disconnect(id)));
|
|
@@ -71,6 +87,10 @@ class Connections {
|
|
|
71
87
|
failConnecting(failure);
|
|
72
88
|
}).finally(() => {
|
|
73
89
|
this.sessions.delete(id);
|
|
90
|
+
this.recordingStops.delete(id);
|
|
91
|
+
this.store.updateDevice(id, {
|
|
92
|
+
recording: undefined
|
|
93
|
+
});
|
|
74
94
|
this.onEnded(id);
|
|
75
95
|
});
|
|
76
96
|
const session = {
|
|
@@ -98,6 +118,11 @@ class Connections {
|
|
|
98
118
|
this.store.updateDevice(id, {
|
|
99
119
|
information: event.information
|
|
100
120
|
});
|
|
121
|
+
} else if (event.kind === "recording") {
|
|
122
|
+
this.recordingStops.set(id, event.stop);
|
|
123
|
+
this.store.updateDevice(id, {
|
|
124
|
+
recording: event.recording ?? undefined
|
|
125
|
+
});
|
|
101
126
|
} else if (event.kind === "reading") {
|
|
102
127
|
const device = this.store.device(id);
|
|
103
128
|
if (device) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_errors","require","_resultPolicy","endedBeforeConnecting","BluetoothError","Connections","sessions","Map","constructor","store","readings","policy","onEnded","isActive","id","has","connect","peripheral","driver","current","get","controller","signal","aborted","ended","start","connected","disconnect","session","abort","disconnectAll","Promise","all","keys","map","AbortController","markConnected","undefined","failConnecting","resolve","reject","updateDevice","connection","
|
|
1
|
+
{"version":3,"names":["_errors","require","_resultPolicy","endedBeforeConnecting","BluetoothError","Connections","sessions","Map","recordingStops","constructor","store","readings","policy","onEnded","isActive","id","has","connect","peripheral","driver","current","get","controller","signal","aborted","ended","start","connected","disconnect","session","abort","stopRecording","stop","device","recording","catch","error","asBluetoothError","disconnectAll","Promise","all","keys","map","AbortController","markConnected","undefined","failConnecting","resolve","reject","updateDevice","connection","run","then","failure","finally","delete","set","event","keepReadings","apply","kind","status","information","receive","reading","exports"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/connections.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAMA,MAAME,qBAAqB,GAAGA,CAAA,KAC5B,IAAIC,sBAAc,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;;AAExF;AACA,MAAMC,WAAW,CAAC;EACCC,QAAQ,GAAG,IAAIC,GAAG,CAAkB,CAAC;EACrCC,cAAc,GAAG,IAAID,GAAG,CAA8B,CAAC;EAEjEE,WAAWA,CACCC,KAAoB,EACpBC,QAAoB,EACpBC,MAAoB,EACpBC,OAA6B,EAC9C;IAAA,KAJiBH,KAAoB,GAApBA,KAAoB;IAAA,KACpBC,QAAoB,GAApBA,QAAoB;IAAA,KACpBC,MAAoB,GAApBA,MAAoB;IAAA,KACpBC,OAA6B,GAA7BA,OAA6B;EAC7C;EAEIC,QAAQA,CAACC,EAAU,EAAW;IACnC,OAAO,IAAI,CAACT,QAAQ,CAACU,GAAG,CAACD,EAAE,CAAC;EAC9B;;EAEA;EACA,MAAaE,OAAOA,CAACC,UAAsB,EAAEC,MAAc,EAAiB;IAC1E,MAAMC,OAAO,GAAG,IAAI,CAACd,QAAQ,CAACe,GAAG,CAACH,UAAU,CAACH,EAAE,CAAC;IAEhD,IAAIK,OAAO,EAAEE,UAAU,CAACC,MAAM,CAACC,OAAO,EAAE;MACtC,MAAMJ,OAAO,CAACK,KAAK;MAEnB,OAAO,IAAI,CAACR,OAAO,CAACC,UAAU,EAAEC,MAAM,CAAC;IACzC;IAEA,OAAO,CAACC,OAAO,IAAI,IAAI,CAACM,KAAK,CAACR,UAAU,EAAEC,MAAM,CAAC,EAAEQ,SAAS;EAC9D;EAEA,MAAaC,UAAUA,CAACb,EAAU,EAAiB;IACjD,MAAMc,OAAO,GAAG,IAAI,CAACvB,QAAQ,CAACe,GAAG,CAACN,EAAE,CAAC;IAErCc,OAAO,EAAEP,UAAU,CAACQ,KAAK,CAAC,CAAC;IAC3B,MAAMD,OAAO,EAAEJ,KAAK;EACtB;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAaM,aAAaA,CAAChB,EAAU,EAAiB;IACpD,MAAMiB,IAAI,GAAG,IAAI,CAACxB,cAAc,CAACa,GAAG,CAACN,EAAE,CAAC;IAExC,IAAI,CAACiB,IAAI,IAAI,CAAC,IAAI,CAACtB,KAAK,CAACuB,MAAM,CAAClB,EAAE,CAAC,EAAEmB,SAAS,EAAE;MAC9C,MAAM,IAAI9B,sBAAc,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;IAC7F;IAEA,MAAM4B,IAAI,CAAC,CAAC,CAACG,KAAK,CAAEC,KAAc,IAAK;MACrC,MAAM,IAAAC,wBAAgB,EAACD,KAAK,EAAE,mBAAmB,CAAC;IACpD,CAAC,CAAC;EACJ;;EAEA;EACA,MAAaE,aAAaA,CAAA,EAAkB;IAC1C,MAAMC,OAAO,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAClC,QAAQ,CAACmC,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAE3B,EAAE,IAAK,IAAI,CAACa,UAAU,CAACb,EAAE,CAAC,CAAC,CAAC;EAC/E;EAEQW,KAAKA,CAACR,UAAsB,EAAEC,MAAc,EAAW;IAC7D,MAAM;MAAEJ;IAAG,CAAC,GAAGG,UAAU;IACzB,MAAMI,UAAU,GAAG,IAAIqB,eAAe,CAAC,CAAC;IACxC,IAAIC,aAAa,GAAGA,CAAA,KAAMC,SAAiB;IAC3C,IAAIC,cAA+C,GAAGA,CAAA,KAAMD,SAAS;IAErE,MAAMlB,SAAS,GAAG,IAAIY,OAAO,CAAO,CAACQ,OAAO,EAAEC,MAAM,KAAK;MACvDJ,aAAa,GAAGG,OAAO;MACvBD,cAAc,GAAGE,MAAM;IACzB,CAAC,CAAC;IAEF,IAAI,CAACtC,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;MAAEmC,UAAU,EAAE,YAAY;MAAEd,KAAK,EAAE;IAAK,CAAC,CAAC;IAEtE,MAAMX,KAAK,GAAG,IAAI,CAAC0B,GAAG,CAACjC,UAAU,EAAEC,MAAM,EAAEG,UAAU,CAACC,MAAM,EAAE,MAAMqB,aAAa,CAAC,CAAC,CAAC,CACjFQ,IAAI,CAAC,MAAM;MACV,IAAI,CAAC1C,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;QAAEmC,UAAU,EAAE;MAAe,CAAC,CAAC;MAC3DJ,cAAc,CAAC3C,qBAAqB,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CACDgC,KAAK,CAAEC,KAAc,IAAK;MACzB,MAAMiB,OAAO,GAAG,IAAAhB,wBAAgB,EAACD,KAAK,EAAE,mBAAmB,CAAC;MAE5D,IAAI,CAAC1B,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAEO,UAAU,CAACC,MAAM,CAACC,OAAO,GACjD;QAAE0B,UAAU,EAAE;MAAe,CAAC,GAC9B;QAAEA,UAAU,EAAE,QAAQ;QAAEd,KAAK,EAAEiB;MAAQ,CAAC,CAAC;MAC7CP,cAAc,CAACO,OAAO,CAAC;IACzB,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;MACb,IAAI,CAAChD,QAAQ,CAACiD,MAAM,CAACxC,EAAE,CAAC;MACxB,IAAI,CAACP,cAAc,CAAC+C,MAAM,CAACxC,EAAE,CAAC;MAC9B,IAAI,CAACL,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;QAAEmB,SAAS,EAAEW;MAAU,CAAC,CAAC;MACrD,IAAI,CAAChC,OAAO,CAACE,EAAE,CAAC;IAClB,CAAC,CAAC;IAEJ,MAAMc,OAAO,GAAG;MAAEP,UAAU;MAAEK,SAAS;MAAEF;IAAM,CAAC;IAEhD,IAAI,CAACnB,QAAQ,CAACkD,GAAG,CAACzC,EAAE,EAAEc,OAAO,CAAC;IAE9B,OAAOA,OAAO;EAChB;EAEA,MAAcsB,GAAGA,CAACjC,UAAsB,EAAEC,MAAc,EAAEI,MAAmB,EAAEI,SAAqB,EAAiB;IACnH,WAAW,MAAM8B,KAAK,IAAI,IAAAC,0BAAY,EAACvC,MAAM,CAACD,UAAU,EAAEK,MAAM,CAAC,EAAE,IAAI,CAACX,MAAM,CAAC,EAAE;MAC/E,IAAI,CAAC+C,KAAK,CAACzC,UAAU,CAACH,EAAE,EAAE0C,KAAK,EAAE9B,SAAS,CAAC;IAC7C;EACF;EAEQgC,KAAKA,CAAC5C,EAAU,EAAE0C,KAAkB,EAAE9B,SAAqB,EAAQ;IACzE,IAAI8B,KAAK,CAACG,IAAI,KAAK,QAAQ,EAAE;MAC3B,IAAIH,KAAK,CAACI,MAAM,KAAK,cAAc,EAAE;QACnClC,SAAS,CAAC,CAAC;MACb;MACA,IAAI,CAACjB,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;QAAEmC,UAAU,EAAEO,KAAK,CAACI;MAAO,CAAC,CAAC;IAC3D,CAAC,MAAM,IAAIJ,KAAK,CAACG,IAAI,KAAK,aAAa,EAAE;MACvC,IAAI,CAAClD,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;QAAE+C,WAAW,EAAEL,KAAK,CAACK;MAAY,CAAC,CAAC;IACjE,CAAC,MAAM,IAAIL,KAAK,CAACG,IAAI,KAAK,WAAW,EAAE;MACrC,IAAI,CAACpD,cAAc,CAACgD,GAAG,CAACzC,EAAE,EAAE0C,KAAK,CAACzB,IAAI,CAAC;MACvC,IAAI,CAACtB,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;QAAEmB,SAAS,EAAEuB,KAAK,CAACvB,SAAS,IAAIW;MAAU,CAAC,CAAC;IAC1E,CAAC,MAAM,IAAIY,KAAK,CAACG,IAAI,KAAK,SAAS,EAAE;MACnC,MAAM3B,MAAM,GAAG,IAAI,CAACvB,KAAK,CAACuB,MAAM,CAAClB,EAAE,CAAC;MAEpC,IAAIkB,MAAM,EAAE;QACV,IAAI,CAACtB,QAAQ,CAACoD,OAAO,CAAC9B,MAAM,EAAEwB,KAAK,CAAC1C,EAAE,EAAE0C,KAAK,CAACO,OAAO,CAAC;MACxD;IACF,CAAC,MAAM;MACL,IAAI,CAACtD,KAAK,CAACuC,YAAY,CAAClC,EAAE,EAAE;QAAEqB,KAAK,EAAEqB,KAAK,CAACrB;MAAM,CAAC,CAAC;IACrD;EACF;AACF;AAAC6B,OAAA,CAAA5D,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stableHash","require","isTimestamped","reading","temporal","recordedAt","start","end","some","value","Date","exports","readingId","key","peripheral","stableHash","id","gattDriver","protocol","signal","link","openLink","kind","status","deviceInformation","information","close"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/driver.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_stableHash","require","isTimestamped","reading","temporal","recordedAt","start","end","some","value","Date","exports","readingId","key","peripheral","stableHash","id","gattDriver","protocol","signal","link","openLink","kind","status","deviceInformation","information","close"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/driver.ts"],"mappings":";;;;;;AAKA,IAAAA,WAAA,GAAAC,OAAA;AAGA;;AAiDA;;AAGA;;AAGA;AACA,MAAMC,aAAa,GAAIC,OAAoB,IAAc;EACvD,MAAMC,QAAQ,GAAGD,OAAmE;EAEpF,OAAO,CAACC,QAAQ,CAACC,UAAU,EAAED,QAAQ,CAACE,KAAK,EAAEF,QAAQ,CAACG,GAAG,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,YAAYC,IAAI,CAAC;AACnG,CAAC;;AAED;AAAAC,OAAA,CAAAT,aAAA,GAAAA,aAAA;AACA,MAAMU,SAAS,GAAGA,CAACC,GAAW,EAAEC,UAAsB,EAAEX,OAAoB,KAC1ED,aAAa,CAACC,OAAO,CAAC,GAAG,QAAQ,IAAAY,sBAAU,EAAC;EAAEF,GAAG;EAAEC,UAAU,EAAEA,UAAU,CAACE,EAAE;EAAEb;AAAQ,CAAC,CAAC,EAAE,GAAG,IAAI;;AAEnG;AACA,MAAMc,UAAU,GAAGA,CAACJ,GAAW,EAAEK,QAAwB,KACvD,iBAAiBJ,UAAU,EAAEK,MAAM,EAAE;EACnC,MAAMC,IAAI,GAAG,MAAMN,UAAU,CAACO,QAAQ,CAACF,MAAM,CAAC;EAE9C,IAAI;IACF,MAAM;MAAEG,IAAI,EAAE,QAAQ;MAAEC,MAAM,EAAE;IAAY,CAAC;IAC7C,IAAIH,IAAI,CAACI,iBAAiB,EAAE;MAC1B,MAAM;QAAEF,IAAI,EAAE,aAAa;QAAEG,WAAW,EAAEL,IAAI,CAACI;MAAkB,CAAC;IACpE;IACA,WAAW,MAAMrB,OAAO,IAAIe,QAAQ,CAACE,IAAI,CAAC,EAAE;MAC1C,MAAM;QAAEE,IAAI,EAAE,SAAS;QAAEN,EAAE,EAAEJ,SAAS,CAACC,GAAG,EAAEC,UAAU,EAAEX,OAAO,CAAC;QAAEA;MAAQ,CAAC;IAC7E;IACA,MAAM;MAAEmB,IAAI,EAAE,QAAQ;MAAEC,MAAM,EAAE;IAAe,CAAC;EAClD,CAAC,SAAS;IACR,MAAMH,IAAI,CAACM,KAAK,CAAC,CAAC;EACpB;AACF,CAAC;AAACf,OAAA,CAAAM,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BluetoothError","Error","name","constructor","code","message","cause","exports","asBluetoothError","error","String"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/errors.ts"],"mappings":";;;;;;AAAA;;
|
|
1
|
+
{"version":3,"names":["BluetoothError","Error","name","constructor","code","message","cause","exports","asBluetoothError","error","String"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/errors.ts"],"mappings":";;;;;;AAAA;;AAkBA;AACA,MAAMA,cAAc,SAASC,KAAK,CAAC;EACjC;EACgBC,IAAI,GAAG,gBAAgB;EAEhCC,WAAWA,CAEhB;EACgBC,IAAwB,EACxCC,OAAe,EACfC,KAAe,EACf;IACA,KAAK,CAACD,OAAO,EAAE;MAAEC;IAAM,CAAC,CAAC;IAAC,KAJVF,IAAwB,GAAxBA,IAAwB;EAK1C;AACF;;AAEA;AAAAG,OAAA,CAAAP,cAAA,GAAAA,cAAA;AACA,MAAMQ,gBAAgB,GAAGA,CAACC,KAAc,EAAEL,IAAwB,KAChEK,KAAK,YAAYT,cAAc,GAC3BS,KAAK,GACL,IAAIT,cAAc,CAACI,IAAI,EAAEK,KAAK,YAAYR,KAAK,GAAGQ,KAAK,CAACJ,OAAO,GAAGK,MAAM,CAACD,KAAK,CAAC,EAAEA,KAAK,CAAC;AAACF,OAAA,CAAAC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -13,6 +13,8 @@ var _readings = require("./readings.js");
|
|
|
13
13
|
var _resultPolicy = require("./result-policy.js");
|
|
14
14
|
var _scanLoop = require("./scan-loop.js");
|
|
15
15
|
var _store = require("./store.js");
|
|
16
|
+
/* eslint-disable max-lines */
|
|
17
|
+
|
|
16
18
|
/** What a `BluetoothRuntime` is built from. */
|
|
17
19
|
|
|
18
20
|
/**
|
|
@@ -109,6 +111,17 @@ class BluetoothRuntime {
|
|
|
109
111
|
await this.connections.connect(peripheral, match.driver);
|
|
110
112
|
}
|
|
111
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Stops the recording a connected recorder holds open, for instance once the user confirms it while
|
|
116
|
+
* its `recording.leadOffSince` is set. The stored recording then arrives as a reading.
|
|
117
|
+
*
|
|
118
|
+
* @throws BluetoothError `no-open-recording` when the device holds none; `runtime-disposed` after `dispose`.
|
|
119
|
+
*/
|
|
120
|
+
async stopRecording(deviceId) {
|
|
121
|
+
this.assertLive();
|
|
122
|
+
await this.connections.stopRecording(deviceId);
|
|
123
|
+
}
|
|
124
|
+
|
|
112
125
|
/** Disconnects a device; a paired one stays disconnected until `connect` or `pair` is called again. */
|
|
113
126
|
async disconnect(deviceId) {
|
|
114
127
|
this.held.add(deviceId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_autoConnect","require","_connections","_devices","_errors","_paired","_readings","_resultPolicy","_scanLoop","_store","BluetoothRuntime","store","SnapshotStore","known","Map","held","Set","backoff","AutoConnectBackoff","retryTimers","scanRequest","disposed","constructor","options","readings","ReadingLog","sink","connections","Connections","resultPolicy","everyReading","id","connectionEnded","paired","PairedDevices","set","pairedStorage","scan","ScanLoop","scanner","peripheral","found","unwatchAdapter","watchState","adapter","sync","checkPermission","catch","undefined","getSnapshot","get","subscribe","listener","recordPermission","permissions","check","requestPermission","request","openPermissionSettings","openSettings","startScan","assertLive","permission","BluetoothError","scanning","stopScan","connect","deviceId","match","delete","driver","disconnect","add","pair","forget","remove","retrySaves","dispose","close","forEach","clearTimeout","disconnectAll","matchDevice","devices","advertisement","device","key","name","connection","error","connectIfPaired","waiting","has","isActive","allows","succeeded","restartScan","timer","setTimeout","failed","running","restart","exports"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/runtime.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_autoConnect","require","_connections","_devices","_errors","_paired","_readings","_resultPolicy","_scanLoop","_store","BluetoothRuntime","store","SnapshotStore","known","Map","held","Set","backoff","AutoConnectBackoff","retryTimers","scanRequest","disposed","constructor","options","readings","ReadingLog","sink","connections","Connections","resultPolicy","everyReading","id","connectionEnded","paired","PairedDevices","set","pairedStorage","scan","ScanLoop","scanner","peripheral","found","unwatchAdapter","watchState","adapter","sync","checkPermission","catch","undefined","getSnapshot","get","subscribe","listener","recordPermission","permissions","check","requestPermission","request","openPermissionSettings","openSettings","startScan","assertLive","permission","BluetoothError","scanning","stopScan","connect","deviceId","match","delete","driver","stopRecording","disconnect","add","pair","forget","remove","retrySaves","dispose","close","forEach","clearTimeout","disconnectAll","matchDevice","devices","advertisement","device","key","name","connection","error","connectIfPaired","waiting","has","isActive","allows","succeeded","restartScan","timer","setTimeout","failed","running","restart","exports"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/runtime.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -51,7 +51,19 @@ const legacyDriver = (creator, deviceName) => (peripheral, signal) => {
|
|
|
51
51
|
}) => events.push({
|
|
52
52
|
kind: "error",
|
|
53
53
|
error: fromBleError(error)
|
|
54
|
-
})
|
|
54
|
+
}),
|
|
55
|
+
onConnectionEvent: ({
|
|
56
|
+
kind,
|
|
57
|
+
recording
|
|
58
|
+
}) => {
|
|
59
|
+
if (kind === "recording") {
|
|
60
|
+
events.push({
|
|
61
|
+
kind: "recording",
|
|
62
|
+
recording: recording ?? null,
|
|
63
|
+
stop: () => managed.stopRecording()
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
55
67
|
});
|
|
56
68
|
signal.addEventListener("abort", stop, {
|
|
57
69
|
once: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeviceStatus","Channel","isTimestamped","fromBleError","bleDeviceOf","STATUSES","CONNECTED","MEASURING","DISCONNECTED","legacyDriver","creator","deviceName","peripheral","signal","stop","events","end","removeEventListener","managed","disconnect","createDevice","device","onResult","id","data","reading","push","kind","onDeviceStatusChanged","status","mapped","onError","error","addEventListener","once","connect","catch","fail"],"sourceRoot":"../../../../../../src","sources":["modules/next/bluetooth/ble-plx/legacy-driver.ts"],"mappings":";;AAKA,SAASA,YAAY,QAAQ,+CAA4C;AACzE,SAASC,OAAO,QAAQ,eAAY;AACpC,SAA8BC,aAAa,QAAQ,cAAW;AAE9D,SAASC,YAAY,QAAQ,iBAAc;AAC3C,SAASC,WAAW,QAAQ,qBAAkB;AAE9C,MAAMC,QAAmF,GAAG;EAC1F,CAACL,YAAY,CAACM,SAAS,GAAG,WAAW;EACrC,CAACN,YAAY,CAACO,SAAS,GAAG,WAAW;EACrC,CAACP,YAAY,CAACQ,YAAY,GAAG;AAC/B,CAAC;;AAED;AACA,MAAMC,YAAY,GAAGA,CAACC,OAAiD,EAAEC,UAAqB,KAC5F,CAACC,UAAU,EAAEC,MAAM,KAAK;EACtB,MAAMC,IAAI,GAAGA,CAAA,KAAMC,MAAM,CAACC,GAAG,CAAC,CAAC;EAE/B,MAAMD,MAAM,GAAG,IAAId,OAAO,CAAc,MAAM;IAC5CY,MAAM,CAACI,mBAAmB,CAAC,OAAO,EAAEH,IAAI,CAAC;IACzC,KAAKI,OAAO,CAACC,UAAU,CAAC,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMD,OAAO,GAAGR,OAAO,CAACU,YAAY,CAAC;IACnCC,MAAM,EAAEjB,WAAW,CAACQ,UAAU,CAAC;IAC/BD,UAAU;IACVW,QAAQ,EAAEA,CAAC;MAAEC,EAAE;MAAEC;IAAK,CAAC,KAAK;MAC1B,MAAMC,OAAO,GAAGD,IAAmB;MAEnCT,MAAM,CAACW,IAAI,CAAC;QAAEC,IAAI,EAAE,SAAS;QAAEJ,EAAE,EAAErB,aAAa,CAACuB,OAAO,CAAC,GAAGF,EAAE,GAAG,IAAI;QAAEE;MAAQ,CAAC,CAAC;IACnF,CAAC;IACDG,qBAAqB,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK;MACrC,MAAMC,MAAM,GAAGzB,QAAQ,CAACwB,MAAM,CAAC;MAE/B,IAAIC,MAAM,EAAE;QACVf,MAAM,CAACW,IAAI,CAAC;UAAEC,IAAI,EAAE,QAAQ;UAAEE,MAAM,EAAEC;QAAO,CAAC,CAAC;MACjD;MACA,IAAID,MAAM,KAAK7B,YAAY,CAACQ,YAAY,EAAE;QACxCO,MAAM,CAACC,GAAG,CAAC,CAAC;MACd;IACF,CAAC;IACDe,OAAO,EAAEA,CAAC;MAAEC;IAAM,CAAC,KAAKjB,MAAM,CAACW,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEK,KAAK,EAAE7B,YAAY,CAAC6B,KAAK;IAAE,CAAC;
|
|
1
|
+
{"version":3,"names":["DeviceStatus","Channel","isTimestamped","fromBleError","bleDeviceOf","STATUSES","CONNECTED","MEASURING","DISCONNECTED","legacyDriver","creator","deviceName","peripheral","signal","stop","events","end","removeEventListener","managed","disconnect","createDevice","device","onResult","id","data","reading","push","kind","onDeviceStatusChanged","status","mapped","onError","error","onConnectionEvent","recording","stopRecording","addEventListener","once","connect","catch","fail"],"sourceRoot":"../../../../../../src","sources":["modules/next/bluetooth/ble-plx/legacy-driver.ts"],"mappings":";;AAKA,SAASA,YAAY,QAAQ,+CAA4C;AACzE,SAASC,OAAO,QAAQ,eAAY;AACpC,SAA8BC,aAAa,QAAQ,cAAW;AAE9D,SAASC,YAAY,QAAQ,iBAAc;AAC3C,SAASC,WAAW,QAAQ,qBAAkB;AAE9C,MAAMC,QAAmF,GAAG;EAC1F,CAACL,YAAY,CAACM,SAAS,GAAG,WAAW;EACrC,CAACN,YAAY,CAACO,SAAS,GAAG,WAAW;EACrC,CAACP,YAAY,CAACQ,YAAY,GAAG;AAC/B,CAAC;;AAED;AACA,MAAMC,YAAY,GAAGA,CAACC,OAAiD,EAAEC,UAAqB,KAC5F,CAACC,UAAU,EAAEC,MAAM,KAAK;EACtB,MAAMC,IAAI,GAAGA,CAAA,KAAMC,MAAM,CAACC,GAAG,CAAC,CAAC;EAE/B,MAAMD,MAAM,GAAG,IAAId,OAAO,CAAc,MAAM;IAC5CY,MAAM,CAACI,mBAAmB,CAAC,OAAO,EAAEH,IAAI,CAAC;IACzC,KAAKI,OAAO,CAACC,UAAU,CAAC,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMD,OAAO,GAAGR,OAAO,CAACU,YAAY,CAAC;IACnCC,MAAM,EAAEjB,WAAW,CAACQ,UAAU,CAAC;IAC/BD,UAAU;IACVW,QAAQ,EAAEA,CAAC;MAAEC,EAAE;MAAEC;IAAK,CAAC,KAAK;MAC1B,MAAMC,OAAO,GAAGD,IAAmB;MAEnCT,MAAM,CAACW,IAAI,CAAC;QAAEC,IAAI,EAAE,SAAS;QAAEJ,EAAE,EAAErB,aAAa,CAACuB,OAAO,CAAC,GAAGF,EAAE,GAAG,IAAI;QAAEE;MAAQ,CAAC,CAAC;IACnF,CAAC;IACDG,qBAAqB,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK;MACrC,MAAMC,MAAM,GAAGzB,QAAQ,CAACwB,MAAM,CAAC;MAE/B,IAAIC,MAAM,EAAE;QACVf,MAAM,CAACW,IAAI,CAAC;UAAEC,IAAI,EAAE,QAAQ;UAAEE,MAAM,EAAEC;QAAO,CAAC,CAAC;MACjD;MACA,IAAID,MAAM,KAAK7B,YAAY,CAACQ,YAAY,EAAE;QACxCO,MAAM,CAACC,GAAG,CAAC,CAAC;MACd;IACF,CAAC;IACDe,OAAO,EAAEA,CAAC;MAAEC;IAAM,CAAC,KAAKjB,MAAM,CAACW,IAAI,CAAC;MAAEC,IAAI,EAAE,OAAO;MAAEK,KAAK,EAAE7B,YAAY,CAAC6B,KAAK;IAAE,CAAC,CAAC;IAClFC,iBAAiB,EAAEA,CAAC;MAAEN,IAAI;MAAEO;IAAU,CAAC,KAAK;MAC1C,IAAIP,IAAI,KAAK,WAAW,EAAE;QACxBZ,MAAM,CAACW,IAAI,CAAC;UAAEC,IAAI,EAAE,WAAW;UAAEO,SAAS,EAAEA,SAAS,IAAI,IAAI;UAAEpB,IAAI,EAAEA,CAAA,KAAMI,OAAO,CAACiB,aAAa,CAAC;QAAE,CAAC,CAAC;MACvG;IACF;EACF,CAAC,CAAC;EAEFtB,MAAM,CAACuB,gBAAgB,CAAC,OAAO,EAAEtB,IAAI,EAAE;IAAEuB,IAAI,EAAE;EAAK,CAAC,CAAC;EACtDnB,OAAO,CAACoB,OAAO,CAAC,CAAC,CAACC,KAAK,CAAEP,KAAc,IAAKjB,MAAM,CAACyB,IAAI,CAACrC,YAAY,CAAC6B,KAAK,CAAC,CAAC,CAAC;EAE7E,OAAOjB,MAAM;AACf,CAAC;AAEH,SAASN,YAAY","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ const endedBeforeConnecting = () => new BluetoothError("connection-failed", "The
|
|
|
7
7
|
/** One driver run per connected device, its events folded into the snapshot. */
|
|
8
8
|
class Connections {
|
|
9
9
|
sessions = new Map();
|
|
10
|
+
recordingStops = new Map();
|
|
10
11
|
constructor(store, readings, policy, onEnded) {
|
|
11
12
|
this.store = store;
|
|
12
13
|
this.readings = readings;
|
|
@@ -32,6 +33,21 @@ class Connections {
|
|
|
32
33
|
await session?.ended;
|
|
33
34
|
}
|
|
34
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Stops the recording a connected device holds open.
|
|
38
|
+
*
|
|
39
|
+
* @throws BluetoothError `no-open-recording` when the device holds none.
|
|
40
|
+
*/
|
|
41
|
+
async stopRecording(id) {
|
|
42
|
+
const stop = this.recordingStops.get(id);
|
|
43
|
+
if (!stop || !this.store.device(id)?.recording) {
|
|
44
|
+
throw new BluetoothError("no-open-recording", "The device holds no open recording to stop");
|
|
45
|
+
}
|
|
46
|
+
await stop().catch(error => {
|
|
47
|
+
throw asBluetoothError(error, "no-open-recording");
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
35
51
|
/** Disconnects every device; resolves once every connection has ended. */
|
|
36
52
|
async disconnectAll() {
|
|
37
53
|
await Promise.all([...this.sessions.keys()].map(id => this.disconnect(id)));
|
|
@@ -67,6 +83,10 @@ class Connections {
|
|
|
67
83
|
failConnecting(failure);
|
|
68
84
|
}).finally(() => {
|
|
69
85
|
this.sessions.delete(id);
|
|
86
|
+
this.recordingStops.delete(id);
|
|
87
|
+
this.store.updateDevice(id, {
|
|
88
|
+
recording: undefined
|
|
89
|
+
});
|
|
70
90
|
this.onEnded(id);
|
|
71
91
|
});
|
|
72
92
|
const session = {
|
|
@@ -94,6 +114,11 @@ class Connections {
|
|
|
94
114
|
this.store.updateDevice(id, {
|
|
95
115
|
information: event.information
|
|
96
116
|
});
|
|
117
|
+
} else if (event.kind === "recording") {
|
|
118
|
+
this.recordingStops.set(id, event.stop);
|
|
119
|
+
this.store.updateDevice(id, {
|
|
120
|
+
recording: event.recording ?? undefined
|
|
121
|
+
});
|
|
97
122
|
} else if (event.kind === "reading") {
|
|
98
123
|
const device = this.store.device(id);
|
|
99
124
|
if (device) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["asBluetoothError","BluetoothError","keepReadings","endedBeforeConnecting","Connections","sessions","Map","constructor","store","readings","policy","onEnded","isActive","id","has","connect","peripheral","driver","current","get","controller","signal","aborted","ended","start","connected","disconnect","session","abort","disconnectAll","Promise","all","keys","map","AbortController","markConnected","undefined","failConnecting","resolve","reject","updateDevice","connection","
|
|
1
|
+
{"version":3,"names":["asBluetoothError","BluetoothError","keepReadings","endedBeforeConnecting","Connections","sessions","Map","recordingStops","constructor","store","readings","policy","onEnded","isActive","id","has","connect","peripheral","driver","current","get","controller","signal","aborted","ended","start","connected","disconnect","session","abort","stopRecording","stop","device","recording","catch","error","disconnectAll","Promise","all","keys","map","AbortController","markConnected","undefined","failConnecting","resolve","reject","updateDevice","connection","run","then","failure","finally","delete","set","event","apply","kind","status","information","receive","reading"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/connections.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stableHash","isTimestamped","reading","temporal","recordedAt","start","end","some","value","Date","readingId","key","peripheral","id","gattDriver","protocol","signal","link","openLink","kind","status","deviceInformation","information","close"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/driver.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["stableHash","isTimestamped","reading","temporal","recordedAt","start","end","some","value","Date","readingId","key","peripheral","id","gattDriver","protocol","signal","link","openLink","kind","status","deviceInformation","information","close"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/driver.ts"],"mappings":";;AAKA,SAASA,UAAU,QAAQ,kBAAe;;AAG1C;;AAiDA;;AAGA;;AAGA;AACA,MAAMC,aAAa,GAAIC,OAAoB,IAAc;EACvD,MAAMC,QAAQ,GAAGD,OAAmE;EAEpF,OAAO,CAACC,QAAQ,CAACC,UAAU,EAAED,QAAQ,CAACE,KAAK,EAAEF,QAAQ,CAACG,GAAG,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,YAAYC,IAAI,CAAC;AACnG,CAAC;;AAED;AACA,MAAMC,SAAS,GAAGA,CAACC,GAAW,EAAEC,UAAsB,EAAEV,OAAoB,KAC1ED,aAAa,CAACC,OAAO,CAAC,GAAG,QAAQF,UAAU,CAAC;EAAEW,GAAG;EAAEC,UAAU,EAAEA,UAAU,CAACC,EAAE;EAAEX;AAAQ,CAAC,CAAC,EAAE,GAAG,IAAI;;AAEnG;AACA,MAAMY,UAAU,GAAGA,CAACH,GAAW,EAAEI,QAAwB,KACvD,iBAAiBH,UAAU,EAAEI,MAAM,EAAE;EACnC,MAAMC,IAAI,GAAG,MAAML,UAAU,CAACM,QAAQ,CAACF,MAAM,CAAC;EAE9C,IAAI;IACF,MAAM;MAAEG,IAAI,EAAE,QAAQ;MAAEC,MAAM,EAAE;IAAY,CAAC;IAC7C,IAAIH,IAAI,CAACI,iBAAiB,EAAE;MAC1B,MAAM;QAAEF,IAAI,EAAE,aAAa;QAAEG,WAAW,EAAEL,IAAI,CAACI;MAAkB,CAAC;IACpE;IACA,WAAW,MAAMnB,OAAO,IAAIa,QAAQ,CAACE,IAAI,CAAC,EAAE;MAC1C,MAAM;QAAEE,IAAI,EAAE,SAAS;QAAEN,EAAE,EAAEH,SAAS,CAACC,GAAG,EAAEC,UAAU,EAAEV,OAAO,CAAC;QAAEA;MAAQ,CAAC;IAC7E;IACA,MAAM;MAAEiB,IAAI,EAAE,QAAQ;MAAEC,MAAM,EAAE;IAAe,CAAC;EAClD,CAAC,SAAS;IACR,MAAMH,IAAI,CAACM,KAAK,CAAC,CAAC;EACpB;AACF,CAAC;AAEH,SAAST,UAAU,EAAEb,aAAa","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BluetoothError","Error","name","constructor","code","message","cause","asBluetoothError","error","String"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/errors.ts"],"mappings":";;AAAA;;
|
|
1
|
+
{"version":3,"names":["BluetoothError","Error","name","constructor","code","message","cause","asBluetoothError","error","String"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/errors.ts"],"mappings":";;AAAA;;AAkBA;AACA,MAAMA,cAAc,SAASC,KAAK,CAAC;EACjC;EACgBC,IAAI,GAAG,gBAAgB;EAEhCC,WAAWA,CAEhB;EACgBC,IAAwB,EACxCC,OAAe,EACfC,KAAe,EACf;IACA,KAAK,CAACD,OAAO,EAAE;MAAEC;IAAM,CAAC,CAAC;IAAC,KAJVF,IAAwB,GAAxBA,IAAwB;EAK1C;AACF;;AAEA;AACA,MAAMG,gBAAgB,GAAGA,CAACC,KAAc,EAAEJ,IAAwB,KAChEI,KAAK,YAAYR,cAAc,GAC3BQ,KAAK,GACL,IAAIR,cAAc,CAACI,IAAI,EAAEI,KAAK,YAAYP,KAAK,GAAGO,KAAK,CAACH,OAAO,GAAGI,MAAM,CAACD,KAAK,CAAC,EAAEA,KAAK,CAAC;AAE7F,SAASD,gBAAgB,EAAEP,cAAc","ignoreList":[]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/* eslint-disable max-lines */
|
|
4
|
+
|
|
3
5
|
import { AutoConnectBackoff } from "./auto-connect.js";
|
|
4
6
|
import { Connections } from "./connections.js";
|
|
5
7
|
import { matchDevice } from "./devices.js";
|
|
@@ -106,6 +108,17 @@ class BluetoothRuntime {
|
|
|
106
108
|
await this.connections.connect(peripheral, match.driver);
|
|
107
109
|
}
|
|
108
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Stops the recording a connected recorder holds open, for instance once the user confirms it while
|
|
113
|
+
* its `recording.leadOffSince` is set. The stored recording then arrives as a reading.
|
|
114
|
+
*
|
|
115
|
+
* @throws BluetoothError `no-open-recording` when the device holds none; `runtime-disposed` after `dispose`.
|
|
116
|
+
*/
|
|
117
|
+
async stopRecording(deviceId) {
|
|
118
|
+
this.assertLive();
|
|
119
|
+
await this.connections.stopRecording(deviceId);
|
|
120
|
+
}
|
|
121
|
+
|
|
109
122
|
/** Disconnects a device; a paired one stays disconnected until `connect` or `pair` is called again. */
|
|
110
123
|
async disconnect(deviceId) {
|
|
111
124
|
this.held.add(deviceId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AutoConnectBackoff","Connections","matchDevice","BluetoothError","PairedDevices","ReadingLog","everyReading","ScanLoop","SnapshotStore","BluetoothRuntime","store","known","Map","held","Set","backoff","retryTimers","scanRequest","disposed","constructor","options","readings","sink","connections","resultPolicy","id","connectionEnded","paired","set","pairedStorage","scan","scanner","peripheral","found","unwatchAdapter","watchState","adapter","sync","checkPermission","catch","undefined","getSnapshot","get","subscribe","listener","recordPermission","permissions","check","requestPermission","request","openPermissionSettings","openSettings","startScan","assertLive","permission","scanning","stopScan","connect","deviceId","match","require","delete","driver","disconnect","add","pair","forget","remove","retrySaves","dispose","close","forEach","clearTimeout","disconnectAll","devices","advertisement","device","key","name","connection","error","connectIfPaired","waiting","has","isActive","allows","succeeded","restartScan","timer","setTimeout","failed","running","restart"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/runtime.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["AutoConnectBackoff","Connections","matchDevice","BluetoothError","PairedDevices","ReadingLog","everyReading","ScanLoop","SnapshotStore","BluetoothRuntime","store","known","Map","held","Set","backoff","retryTimers","scanRequest","disposed","constructor","options","readings","sink","connections","resultPolicy","id","connectionEnded","paired","set","pairedStorage","scan","scanner","peripheral","found","unwatchAdapter","watchState","adapter","sync","checkPermission","catch","undefined","getSnapshot","get","subscribe","listener","recordPermission","permissions","check","requestPermission","request","openPermissionSettings","openSettings","startScan","assertLive","permission","scanning","stopScan","connect","deviceId","match","require","delete","driver","stopRecording","disconnect","add","pair","forget","remove","retrySaves","dispose","close","forEach","clearTimeout","disconnectAll","devices","advertisement","device","key","name","connection","error","connectIfPaired","waiting","has","isActive","allows","succeeded","restartScan","timer","setTimeout","failed","running","restart"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/runtime.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-driver.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/legacy-driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAe,MAAM,EAAiB,MAAM,WAAW,CAAC;AAW/D,4GAA4G;AAC5G,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"legacy-driver.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/legacy-driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAe,MAAM,EAAiB,MAAM,WAAW,CAAC;AAW/D,4GAA4G;AAC5G,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,MAuC9F,CAAC;AAEJ,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -10,11 +10,18 @@ declare class Connections {
|
|
|
10
10
|
private readonly policy;
|
|
11
11
|
private readonly onEnded;
|
|
12
12
|
private readonly sessions;
|
|
13
|
+
private readonly recordingStops;
|
|
13
14
|
constructor(store: SnapshotStore, readings: ReadingLog, policy: ResultPolicy, onEnded: (id: string) => void);
|
|
14
15
|
isActive(id: string): boolean;
|
|
15
16
|
/** Resolves once connected; joins a connection still opening or open, and waits out one being closed. */
|
|
16
17
|
connect(peripheral: Peripheral, driver: Driver): Promise<void>;
|
|
17
18
|
disconnect(id: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Stops the recording a connected device holds open.
|
|
21
|
+
*
|
|
22
|
+
* @throws BluetoothError `no-open-recording` when the device holds none.
|
|
23
|
+
*/
|
|
24
|
+
stopRecording(id: string): Promise<void>;
|
|
18
25
|
/** Disconnects every device; resolves once every connection has ended. */
|
|
19
26
|
disconnectAll(): Promise<void>;
|
|
20
27
|
private start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;IAKb,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;gBAGtD,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;IAGzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC,yGAAyG;IAC5F,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD;;;;OAIG;IACU,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,0EAA0E;IAC7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,OAAO,CAAC,KAAK;YAwCC,GAAG;IAMjB,OAAO,CAAC,KAAK;CAqBd;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Measurement } from "@ovok/core/next";
|
|
2
2
|
import { BluetoothError } from "./errors";
|
|
3
3
|
import { DeviceInformation, Link } from "./link";
|
|
4
|
+
import { DeviceRecording } from "./snapshot";
|
|
4
5
|
import { Peripheral } from "./transport";
|
|
5
6
|
/** What a driver reports while it runs. */
|
|
6
7
|
type DeviceEvent = {
|
|
@@ -20,6 +21,13 @@ type DeviceEvent = {
|
|
|
20
21
|
id: string | null;
|
|
21
22
|
/** The decoded reading. */
|
|
22
23
|
reading: Measurement;
|
|
24
|
+
} | {
|
|
25
|
+
/** The recording the device holds open changed. */
|
|
26
|
+
kind: "recording";
|
|
27
|
+
/** The open recording, or `null` once it has closed. */
|
|
28
|
+
recording: DeviceRecording | null;
|
|
29
|
+
/** Stops the open recording. */
|
|
30
|
+
stop: () => Promise<void>;
|
|
23
31
|
} | {
|
|
24
32
|
/** The device or its protocol reported an error; the connection may continue. */
|
|
25
33
|
kind: "error";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2CAA2C;AAC3C,KAAK,WAAW,GACZ;IAEA,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,CAAC;IAEf,2BAA2B;IAC3B,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACpD,GACC;IAEA,gFAAgF;IAChF,IAAI,EAAE,aAAa,CAAC;IAEpB,wBAAwB;IACxB,WAAW,EAAE,iBAAiB,CAAC;CAChC,GACC;IAEA,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAEhB,+GAA+G;IAC/G,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAElB,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB,GACC;IAEA,mDAAmD;IACnD,IAAI,EAAE,WAAW,CAAC;IAElB,wDAAwD;IACxD,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAElC,gCAAgC;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,GACC;IAEA,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IAEd,iBAAiB;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,iGAAiG;AACjG,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAE1F,0EAA0E;AAC1E,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAEjE,8GAA8G;AAC9G,QAAA,MAAM,aAAa,GAAI,SAAS,WAAW,KAAG,OAI7C,CAAC;AAMF,yCAAyC;AACzC,QAAA,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,cAAc,KAAG,MAgBzD,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Why a Bluetooth operation failed. */
|
|
2
|
-
type BluetoothErrorCode = "permission-denied" | "powered-off" | "unsupported" | "scan-failed" | "connection-failed" | "pairing-required" | "discovery-failed" | "device-error" | "frame-invalid" | "measurement-failed" | "device-not-found" | "runtime-disposed" | "save-failed" | "unknown";
|
|
2
|
+
type BluetoothErrorCode = "permission-denied" | "powered-off" | "unsupported" | "scan-failed" | "connection-failed" | "pairing-required" | "discovery-failed" | "device-error" | "frame-invalid" | "measurement-failed" | "device-not-found" | "no-open-recording" | "runtime-disposed" | "save-failed" | "unknown";
|
|
3
3
|
/** Every failure the Bluetooth runtime reports; `cause` holds the underlying error, when any. */
|
|
4
4
|
declare class BluetoothError extends Error {
|
|
5
5
|
/** Why it failed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,KAAK,kBAAkB,GACnB,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,SAAS,CAAC;AAEd,iGAAiG;AACjG,cAAM,cAAe,SAAQ,KAAK;IAM9B,qBAAqB;aACL,IAAI,EAAE,kBAAkB;IAN1C,iCAAiC;IACjC,SAAgB,IAAI,oBAAoB;;IAItC,qBAAqB;IACL,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO;CAIlB;AAED,oFAAoF;AACpF,QAAA,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,KAAG,cAGwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,KAAK,kBAAkB,GACnB,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,SAAS,CAAC;AAEd,iGAAiG;AACjG,cAAM,cAAe,SAAQ,KAAK;IAM9B,qBAAqB;aACL,IAAI,EAAE,kBAAkB;IAN1C,iCAAiC;IACjC,SAAgB,IAAI,oBAAoB;;IAItC,qBAAqB;IACL,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO;CAIlB;AAED,oFAAoF;AACpF,QAAA,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,KAAG,cAGwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -11,7 +11,7 @@ export { BluetoothRuntime } from "./runtime";
|
|
|
11
11
|
export type { BluetoothRuntimeOptions } from "./runtime";
|
|
12
12
|
export { BluetoothError } from "./errors";
|
|
13
13
|
export type { BluetoothErrorCode } from "./errors";
|
|
14
|
-
export type { BluetoothSnapshot, ConnectionState, DeviceReading, NearbyDevice, SaveState } from "./snapshot";
|
|
14
|
+
export type { BluetoothSnapshot, ConnectionState, DeviceReading, DeviceRecording, NearbyDevice, SaveState } from "./snapshot";
|
|
15
15
|
export type { AdapterState, Advertisement, BluetoothScanner, Peripheral } from "./transport";
|
|
16
16
|
export type { BluetoothPermission, BluetoothPermissions } from "./permissions";
|
|
17
17
|
export type { ReadingSink, SaveResult } from "./sink";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9H,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -63,6 +63,13 @@ declare class BluetoothRuntime {
|
|
|
63
63
|
* @throws BluetoothError `device-not-found`, `connection-failed` or the driver's failure.
|
|
64
64
|
*/
|
|
65
65
|
connect(deviceId: string): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Stops the recording a connected recorder holds open, for instance once the user confirms it while
|
|
68
|
+
* its `recording.leadOffSince` is set. The stored recording then arrives as a reading.
|
|
69
|
+
*
|
|
70
|
+
* @throws BluetoothError `no-open-recording` when the device holds none; `runtime-disposed` after `dispose`.
|
|
71
|
+
*/
|
|
72
|
+
stopRecording(deviceId: string): Promise<void>;
|
|
66
73
|
/** Disconnects a device; a paired one stays disconnected until `connect` or `pair` is called again. */
|
|
67
74
|
disconnect(deviceId: string): Promise<void>;
|
|
68
75
|
/** Remembers a device, so it connects whenever the scan finds it, and connects to it now. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,20 @@ type NearbyDevice = {
|
|
|
19
19
|
error: BluetoothError | null;
|
|
20
20
|
/** What the device reported about itself on its last connection; absent until it has connected. */
|
|
21
21
|
information?: DeviceInformation;
|
|
22
|
+
/** The recording the device holds open, for recorders that report one; absent when none is open. */
|
|
23
|
+
recording?: DeviceRecording;
|
|
24
|
+
};
|
|
25
|
+
/** A recording a recorder holds open, as its last realtime answer reported it. */
|
|
26
|
+
type DeviceRecording = {
|
|
27
|
+
/** Seconds recorded so far, as of the last change. */
|
|
28
|
+
seconds: number;
|
|
29
|
+
/**
|
|
30
|
+
* When the electrodes lost contact, while they have none; the recording stays open until it is
|
|
31
|
+
* stopped. An app can offer `stopRecording` once this is old enough, as the vendor app does.
|
|
32
|
+
*/
|
|
33
|
+
leadOffSince?: Date;
|
|
34
|
+
/** Stopping now stores the recording; a shorter one is discarded by the device. */
|
|
35
|
+
storesOnStop: boolean;
|
|
22
36
|
};
|
|
23
37
|
/** Where saving a reading stands. */
|
|
24
38
|
type SaveState = {
|
|
@@ -68,5 +82,5 @@ type BluetoothSnapshot = {
|
|
|
68
82
|
/** Recent readings, oldest first. */
|
|
69
83
|
readings: readonly DeviceReading[];
|
|
70
84
|
};
|
|
71
|
-
export type { BluetoothSnapshot, ConnectionState, DeviceReading, NearbyDevice, SaveState };
|
|
85
|
+
export type { BluetoothSnapshot, ConnectionState, DeviceReading, DeviceRecording, NearbyDevice, SaveState };
|
|
72
86
|
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0CAA0C;AAC1C,KAAK,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErG,6CAA6C;AAC7C,KAAK,YAAY,GAAG;IAElB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC;IAE5B,yDAAyD;IACzD,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAE7B,mGAAmG;IACnG,WAAW,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0CAA0C;AAC1C,KAAK,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErG,6CAA6C;AAC7C,KAAK,YAAY,GAAG;IAElB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC;IAE5B,yDAAyD;IACzD,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAE7B,mGAAmG;IACnG,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC,oGAAoG;IACpG,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,kFAAkF;AAClF,KAAK,eAAe,GAAG;IAErB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,mFAAmF;IACnF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,qCAAqC;AACrC,KAAK,SAAS,GACV;IAEA,qCAAqC;IACrC,MAAM,EAAE,QAAQ,CAAC;CAClB,GACC;IAEA,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,GACC;IAEA,uDAAuD;IACvD,MAAM,EAAE,QAAQ,CAAC;IAEjB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IAEA,qEAAqE;IACrE,MAAM,EAAE,QAAQ,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,8DAA8D;AAC9D,KAAK,aAAa,GAAG;IAEnB,mFAAmF;IACnF,EAAE,EAAE,MAAM,CAAC;IAEX,+BAA+B;IAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC;IAElE,+BAA+B;IAC/B,WAAW,EAAE,WAAW,CAAC;IAEzB,gCAAgC;IAChC,UAAU,EAAE,IAAI,CAAC;IAEjB,8BAA8B;IAC9B,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,6EAA6E;AAC7E,KAAK,iBAAiB,GAAG;IAEvB,+BAA+B;IAC/B,OAAO,EAAE,YAAY,CAAC;IAEtB,2DAA2D;IAC3D,UAAU,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAE5C,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAElB,kEAAkE;IAClE,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,uDAAuD;IACvD,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAEjC,6EAA6E;IAC7E,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,qCAAqC;IACrC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CACpC,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-driver.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/legacy-driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAe,MAAM,EAAiB,MAAM,WAAW,CAAC;AAW/D,4GAA4G;AAC5G,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"legacy-driver.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/legacy-driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAe,MAAM,EAAiB,MAAM,WAAW,CAAC;AAW/D,4GAA4G;AAC5G,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,MAuC9F,CAAC;AAEJ,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -10,11 +10,18 @@ declare class Connections {
|
|
|
10
10
|
private readonly policy;
|
|
11
11
|
private readonly onEnded;
|
|
12
12
|
private readonly sessions;
|
|
13
|
+
private readonly recordingStops;
|
|
13
14
|
constructor(store: SnapshotStore, readings: ReadingLog, policy: ResultPolicy, onEnded: (id: string) => void);
|
|
14
15
|
isActive(id: string): boolean;
|
|
15
16
|
/** Resolves once connected; joins a connection still opening or open, and waits out one being closed. */
|
|
16
17
|
connect(peripheral: Peripheral, driver: Driver): Promise<void>;
|
|
17
18
|
disconnect(id: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Stops the recording a connected device holds open.
|
|
21
|
+
*
|
|
22
|
+
* @throws BluetoothError `no-open-recording` when the device holds none.
|
|
23
|
+
*/
|
|
24
|
+
stopRecording(id: string): Promise<void>;
|
|
18
25
|
/** Disconnects every device; resolves once every connection has ended. */
|
|
19
26
|
disconnectAll(): Promise<void>;
|
|
20
27
|
private start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;IAKb,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;gBAGtD,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;IAGzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC,yGAAyG;IAC5F,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD;;;;OAIG;IACU,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,0EAA0E;IAC7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,OAAO,CAAC,KAAK;YAwCC,GAAG;IAMjB,OAAO,CAAC,KAAK;CAqBd;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Measurement } from "@ovok/core/next";
|
|
2
2
|
import { BluetoothError } from "./errors";
|
|
3
3
|
import { DeviceInformation, Link } from "./link";
|
|
4
|
+
import { DeviceRecording } from "./snapshot";
|
|
4
5
|
import { Peripheral } from "./transport";
|
|
5
6
|
/** What a driver reports while it runs. */
|
|
6
7
|
type DeviceEvent = {
|
|
@@ -20,6 +21,13 @@ type DeviceEvent = {
|
|
|
20
21
|
id: string | null;
|
|
21
22
|
/** The decoded reading. */
|
|
22
23
|
reading: Measurement;
|
|
24
|
+
} | {
|
|
25
|
+
/** The recording the device holds open changed. */
|
|
26
|
+
kind: "recording";
|
|
27
|
+
/** The open recording, or `null` once it has closed. */
|
|
28
|
+
recording: DeviceRecording | null;
|
|
29
|
+
/** Stops the open recording. */
|
|
30
|
+
stop: () => Promise<void>;
|
|
23
31
|
} | {
|
|
24
32
|
/** The device or its protocol reported an error; the connection may continue. */
|
|
25
33
|
kind: "error";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2CAA2C;AAC3C,KAAK,WAAW,GACZ;IAEA,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,CAAC;IAEf,2BAA2B;IAC3B,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACpD,GACC;IAEA,gFAAgF;IAChF,IAAI,EAAE,aAAa,CAAC;IAEpB,wBAAwB;IACxB,WAAW,EAAE,iBAAiB,CAAC;CAChC,GACC;IAEA,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAEhB,+GAA+G;IAC/G,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAElB,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB,GACC;IAEA,mDAAmD;IACnD,IAAI,EAAE,WAAW,CAAC;IAElB,wDAAwD;IACxD,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAElC,gCAAgC;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,GACC;IAEA,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IAEd,iBAAiB;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,iGAAiG;AACjG,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAE1F,0EAA0E;AAC1E,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAEjE,8GAA8G;AAC9G,QAAA,MAAM,aAAa,GAAI,SAAS,WAAW,KAAG,OAI7C,CAAC;AAMF,yCAAyC;AACzC,QAAA,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,cAAc,KAAG,MAgBzD,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Why a Bluetooth operation failed. */
|
|
2
|
-
type BluetoothErrorCode = "permission-denied" | "powered-off" | "unsupported" | "scan-failed" | "connection-failed" | "pairing-required" | "discovery-failed" | "device-error" | "frame-invalid" | "measurement-failed" | "device-not-found" | "runtime-disposed" | "save-failed" | "unknown";
|
|
2
|
+
type BluetoothErrorCode = "permission-denied" | "powered-off" | "unsupported" | "scan-failed" | "connection-failed" | "pairing-required" | "discovery-failed" | "device-error" | "frame-invalid" | "measurement-failed" | "device-not-found" | "no-open-recording" | "runtime-disposed" | "save-failed" | "unknown";
|
|
3
3
|
/** Every failure the Bluetooth runtime reports; `cause` holds the underlying error, when any. */
|
|
4
4
|
declare class BluetoothError extends Error {
|
|
5
5
|
/** Why it failed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,KAAK,kBAAkB,GACnB,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,SAAS,CAAC;AAEd,iGAAiG;AACjG,cAAM,cAAe,SAAQ,KAAK;IAM9B,qBAAqB;aACL,IAAI,EAAE,kBAAkB;IAN1C,iCAAiC;IACjC,SAAgB,IAAI,oBAAoB;;IAItC,qBAAqB;IACL,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO;CAIlB;AAED,oFAAoF;AACpF,QAAA,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,KAAG,cAGwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,KAAK,kBAAkB,GACnB,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,SAAS,CAAC;AAEd,iGAAiG;AACjG,cAAM,cAAe,SAAQ,KAAK;IAM9B,qBAAqB;aACL,IAAI,EAAE,kBAAkB;IAN1C,iCAAiC;IACjC,SAAgB,IAAI,oBAAoB;;IAItC,qBAAqB;IACL,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO;CAIlB;AAED,oFAAoF;AACpF,QAAA,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,KAAG,cAGwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -11,7 +11,7 @@ export { BluetoothRuntime } from "./runtime";
|
|
|
11
11
|
export type { BluetoothRuntimeOptions } from "./runtime";
|
|
12
12
|
export { BluetoothError } from "./errors";
|
|
13
13
|
export type { BluetoothErrorCode } from "./errors";
|
|
14
|
-
export type { BluetoothSnapshot, ConnectionState, DeviceReading, NearbyDevice, SaveState } from "./snapshot";
|
|
14
|
+
export type { BluetoothSnapshot, ConnectionState, DeviceReading, DeviceRecording, NearbyDevice, SaveState } from "./snapshot";
|
|
15
15
|
export type { AdapterState, Advertisement, BluetoothScanner, Peripheral } from "./transport";
|
|
16
16
|
export type { BluetoothPermission, BluetoothPermissions } from "./permissions";
|
|
17
17
|
export type { ReadingSink, SaveResult } from "./sink";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9H,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -63,6 +63,13 @@ declare class BluetoothRuntime {
|
|
|
63
63
|
* @throws BluetoothError `device-not-found`, `connection-failed` or the driver's failure.
|
|
64
64
|
*/
|
|
65
65
|
connect(deviceId: string): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Stops the recording a connected recorder holds open, for instance once the user confirms it while
|
|
68
|
+
* its `recording.leadOffSince` is set. The stored recording then arrives as a reading.
|
|
69
|
+
*
|
|
70
|
+
* @throws BluetoothError `no-open-recording` when the device holds none; `runtime-disposed` after `dispose`.
|
|
71
|
+
*/
|
|
72
|
+
stopRecording(deviceId: string): Promise<void>;
|
|
66
73
|
/** Disconnects a device; a paired one stays disconnected until `connect` or `pair` is called again. */
|
|
67
74
|
disconnect(deviceId: string): Promise<void>;
|
|
68
75
|
/** Remembers a device, so it connects whenever the scan finds it, and connects to it now. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,20 @@ type NearbyDevice = {
|
|
|
19
19
|
error: BluetoothError | null;
|
|
20
20
|
/** What the device reported about itself on its last connection; absent until it has connected. */
|
|
21
21
|
information?: DeviceInformation;
|
|
22
|
+
/** The recording the device holds open, for recorders that report one; absent when none is open. */
|
|
23
|
+
recording?: DeviceRecording;
|
|
24
|
+
};
|
|
25
|
+
/** A recording a recorder holds open, as its last realtime answer reported it. */
|
|
26
|
+
type DeviceRecording = {
|
|
27
|
+
/** Seconds recorded so far, as of the last change. */
|
|
28
|
+
seconds: number;
|
|
29
|
+
/**
|
|
30
|
+
* When the electrodes lost contact, while they have none; the recording stays open until it is
|
|
31
|
+
* stopped. An app can offer `stopRecording` once this is old enough, as the vendor app does.
|
|
32
|
+
*/
|
|
33
|
+
leadOffSince?: Date;
|
|
34
|
+
/** Stopping now stores the recording; a shorter one is discarded by the device. */
|
|
35
|
+
storesOnStop: boolean;
|
|
22
36
|
};
|
|
23
37
|
/** Where saving a reading stands. */
|
|
24
38
|
type SaveState = {
|
|
@@ -68,5 +82,5 @@ type BluetoothSnapshot = {
|
|
|
68
82
|
/** Recent readings, oldest first. */
|
|
69
83
|
readings: readonly DeviceReading[];
|
|
70
84
|
};
|
|
71
|
-
export type { BluetoothSnapshot, ConnectionState, DeviceReading, NearbyDevice, SaveState };
|
|
85
|
+
export type { BluetoothSnapshot, ConnectionState, DeviceReading, DeviceRecording, NearbyDevice, SaveState };
|
|
72
86
|
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0CAA0C;AAC1C,KAAK,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErG,6CAA6C;AAC7C,KAAK,YAAY,GAAG;IAElB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC;IAE5B,yDAAyD;IACzD,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAE7B,mGAAmG;IACnG,WAAW,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0CAA0C;AAC1C,KAAK,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErG,6CAA6C;AAC7C,KAAK,YAAY,GAAG;IAElB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC;IAE5B,yDAAyD;IACzD,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAE7B,mGAAmG;IACnG,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC,oGAAoG;IACpG,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,kFAAkF;AAClF,KAAK,eAAe,GAAG;IAErB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,mFAAmF;IACnF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,qCAAqC;AACrC,KAAK,SAAS,GACV;IAEA,qCAAqC;IACrC,MAAM,EAAE,QAAQ,CAAC;CAClB,GACC;IAEA,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,GACC;IAEA,uDAAuD;IACvD,MAAM,EAAE,QAAQ,CAAC;IAEjB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IAEA,qEAAqE;IACrE,MAAM,EAAE,QAAQ,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,8DAA8D;AAC9D,KAAK,aAAa,GAAG;IAEnB,mFAAmF;IACnF,EAAE,EAAE,MAAM,CAAC;IAEX,+BAA+B;IAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC;IAElE,+BAA+B;IAC/B,WAAW,EAAE,WAAW,CAAC;IAEzB,gCAAgC;IAChC,UAAU,EAAE,IAAI,CAAC;IAEjB,8BAA8B;IAC9B,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,6EAA6E;AAC7E,KAAK,iBAAiB,GAAG;IAEvB,+BAA+B;IAC/B,OAAO,EAAE,YAAY,CAAC;IAEtB,2DAA2D;IAC3D,UAAU,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAE5C,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAElB,kEAAkE;IAClE,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,uDAAuD;IACvD,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAEjC,6EAA6E;IAC7E,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,qCAAqC;IACrC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CACpC,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
|