@neurosity/sdk 6.2.0 → 6.2.1-next.0

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.
Files changed (306) hide show
  1. package/dist/{cjs/Neurosity.d.ts → Neurosity.d.ts} +116 -2
  2. package/dist/{cjs/api → api}/bluetooth/BluetoothClient.d.ts +6 -6
  3. package/dist/{cjs/api → api}/bluetooth/constants.d.ts +0 -0
  4. package/dist/{cjs/api → api}/bluetooth/index.d.ts +1 -0
  5. package/dist/{esm/api → api}/bluetooth/react-native/ReactNativeTransport.d.ts +4 -4
  6. package/dist/{cjs/api → api}/bluetooth/types/index.d.ts +2 -2
  7. package/dist/{cjs/api → api}/bluetooth/utils/create6DigitPin.d.ts +0 -0
  8. package/dist/{cjs/api → api}/bluetooth/utils/csvBufferToEpoch.d.ts +0 -0
  9. package/dist/{cjs/api → api}/bluetooth/utils/encoding.d.ts +0 -0
  10. package/dist/{cjs/api → api}/bluetooth/utils/osHasBluetoothSupport.d.ts +0 -0
  11. package/dist/{cjs/api → api}/bluetooth/utils/stitch.d.ts +1 -1
  12. package/dist/{esm/api → api}/bluetooth/web/WebBluetoothTransport.d.ts +1 -1
  13. package/dist/{cjs/api → api}/bluetooth/web/isMaybeWebWorkerContext.d.ts +0 -0
  14. package/dist/{cjs/api → api}/bluetooth/web/isWebBluetoothSupported.d.ts +0 -0
  15. package/dist/{cjs/api → api}/firebase/FirebaseApp.d.ts +0 -0
  16. package/dist/{cjs/api → api}/firebase/FirebaseDevice.d.ts +1 -1
  17. package/dist/{cjs/api → api}/firebase/FirebaseUser.d.ts +0 -0
  18. package/dist/{cjs/api → api}/firebase/config.d.ts +0 -0
  19. package/dist/{cjs/api → api}/firebase/deviceStore.d.ts +0 -0
  20. package/dist/{cjs/api → api}/firebase/index.d.ts +0 -0
  21. package/dist/{cjs/api → api}/https/config.d.ts +0 -0
  22. package/dist/{cjs/api → api}/https/createOAuthURL.d.ts +0 -0
  23. package/dist/{cjs/api → api}/https/getOAuthToken.d.ts +0 -0
  24. package/dist/{cjs/api → api}/https/utils.d.ts +0 -0
  25. package/dist/{esm/api → api}/index.d.ts +8 -0
  26. package/dist/index.cjs +2 -0
  27. package/dist/index.cjs.map +1 -0
  28. package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
  29. package/dist/index.m.js +2 -0
  30. package/dist/index.m.js.map +1 -0
  31. package/dist/index.umd.js +2 -0
  32. package/dist/index.umd.js.map +1 -0
  33. package/dist/{cjs/subscriptions → subscriptions}/SubscriptionManager.d.ts +0 -0
  34. package/dist/{cjs/timesync → timesync}/Timesync.d.ts +1 -1
  35. package/dist/{cjs/timesync → timesync}/index.d.ts +0 -0
  36. package/dist/{cjs/types → types}/status.d.ts +0 -0
  37. package/dist/{cjs/types → types}/streaming.d.ts +0 -0
  38. package/dist/{cjs/utils → utils}/errors.d.ts +0 -0
  39. package/dist/{cjs/utils → utils}/filterInternalKeys.d.ts +0 -0
  40. package/dist/{cjs/utils → utils}/hapticEffects.d.ts +0 -0
  41. package/dist/{cjs/utils → utils}/heartbeat.d.ts +0 -0
  42. package/dist/{cjs/utils → utils}/is-node.d.ts +0 -0
  43. package/dist/utils/metrics.d.ts +6 -0
  44. package/dist/{cjs/utils → utils}/oauth.d.ts +1 -1
  45. package/dist/{cjs/utils → utils}/pipes.d.ts +0 -0
  46. package/dist/{cjs/utils → utils}/platform.d.ts +0 -0
  47. package/dist/{cjs/utils → utils}/subscription.d.ts +0 -0
  48. package/dist/{cjs/utils → utils}/whileOnline.d.ts +1 -1
  49. package/package.json +15 -23
  50. package/CHANGELOG.md +0 -25
  51. package/dist/browser/neurosity.iife.js +0 -48712
  52. package/dist/browser/neurosity.js +0 -666
  53. package/dist/browser/neurosity.js.map +0 -1
  54. package/dist/cjs/Neurosity.js +0 -1244
  55. package/dist/cjs/api/bluetooth/BluetoothClient.js +0 -310
  56. package/dist/cjs/api/bluetooth/BluetoothTransport.d.ts +0 -33
  57. package/dist/cjs/api/bluetooth/BluetoothTransport.js +0 -2
  58. package/dist/cjs/api/bluetooth/constants.js +0 -9
  59. package/dist/cjs/api/bluetooth/index.js +0 -20
  60. package/dist/cjs/api/bluetooth/react-native/ReactNativeTransport.d.ts +0 -70
  61. package/dist/cjs/api/bluetooth/react-native/ReactNativeTransport.js +0 -406
  62. package/dist/cjs/api/bluetooth/react-native/types/BleManagerTypes.d.ts +0 -63
  63. package/dist/cjs/api/bluetooth/react-native/types/BleManagerTypes.js +0 -11
  64. package/dist/cjs/api/bluetooth/react-native/types/ReactNativeTypes.d.ts +0 -180
  65. package/dist/cjs/api/bluetooth/react-native/types/ReactNativeTypes.js +0 -10
  66. package/dist/cjs/api/bluetooth/types/index.js +0 -22
  67. package/dist/cjs/api/bluetooth/utils/create6DigitPin.js +0 -8
  68. package/dist/cjs/api/bluetooth/utils/csvBufferToEpoch.js +0 -36
  69. package/dist/cjs/api/bluetooth/utils/encoding.js +0 -22
  70. package/dist/cjs/api/bluetooth/utils/osHasBluetoothSupport.js +0 -23
  71. package/dist/cjs/api/bluetooth/utils/stitch.js +0 -22
  72. package/dist/cjs/api/bluetooth/web/WebBluetoothTransport.d.ts +0 -54
  73. package/dist/cjs/api/bluetooth/web/WebBluetoothTransport.js +0 -430
  74. package/dist/cjs/api/bluetooth/web/isMaybeWebWorkerContext.js +0 -8
  75. package/dist/cjs/api/bluetooth/web/isWebBluetoothSupported.js +0 -11
  76. package/dist/cjs/api/firebase/FirebaseApp.js +0 -70
  77. package/dist/cjs/api/firebase/FirebaseDevice.js +0 -146
  78. package/dist/cjs/api/firebase/FirebaseUser.js +0 -434
  79. package/dist/cjs/api/firebase/config.js +0 -11
  80. package/dist/cjs/api/firebase/deviceStore.js +0 -191
  81. package/dist/cjs/api/firebase/index.js +0 -19
  82. package/dist/cjs/api/https/config.js +0 -4
  83. package/dist/cjs/api/https/createOAuthURL.js +0 -18
  84. package/dist/cjs/api/https/getOAuthToken.js +0 -34
  85. package/dist/cjs/api/https/utils.js +0 -13
  86. package/dist/cjs/api/index.d.ts +0 -109
  87. package/dist/cjs/api/index.js +0 -307
  88. package/dist/cjs/index.js +0 -18
  89. package/dist/cjs/subscriptions/SubscriptionManager.js +0 -27
  90. package/dist/cjs/timesync/Timesync.js +0 -78
  91. package/dist/cjs/timesync/index.js +0 -17
  92. package/dist/cjs/types/accelerometer.d.ts +0 -10
  93. package/dist/cjs/types/accelerometer.js +0 -2
  94. package/dist/cjs/types/actions.d.ts +0 -16
  95. package/dist/cjs/types/actions.js +0 -2
  96. package/dist/cjs/types/awareness.d.ts +0 -1
  97. package/dist/cjs/types/awareness.js +0 -2
  98. package/dist/cjs/types/brainwaves.d.ts +0 -26
  99. package/dist/cjs/types/brainwaves.js +0 -2
  100. package/dist/cjs/types/calm.d.ts +0 -6
  101. package/dist/cjs/types/calm.js +0 -2
  102. package/dist/cjs/types/client.d.ts +0 -22
  103. package/dist/cjs/types/client.js +0 -2
  104. package/dist/cjs/types/credentials.d.ts +0 -12
  105. package/dist/cjs/types/credentials.js +0 -2
  106. package/dist/cjs/types/deviceInfo.d.ts +0 -18
  107. package/dist/cjs/types/deviceInfo.js +0 -2
  108. package/dist/cjs/types/epoch.d.ts +0 -12
  109. package/dist/cjs/types/epoch.js +0 -2
  110. package/dist/cjs/types/experiment.d.ts +0 -9
  111. package/dist/cjs/types/experiment.js +0 -2
  112. package/dist/cjs/types/focus.d.ts +0 -6
  113. package/dist/cjs/types/focus.js +0 -2
  114. package/dist/cjs/types/hapticEffects.d.ts +0 -125
  115. package/dist/cjs/types/hapticEffects.js +0 -2
  116. package/dist/cjs/types/kinesis.d.ts +0 -6
  117. package/dist/cjs/types/kinesis.js +0 -2
  118. package/dist/cjs/types/marker.d.ts +0 -7
  119. package/dist/cjs/types/marker.js +0 -2
  120. package/dist/cjs/types/metrics.d.ts +0 -21
  121. package/dist/cjs/types/metrics.js +0 -2
  122. package/dist/cjs/types/oauth.d.ts +0 -20
  123. package/dist/cjs/types/oauth.js +0 -2
  124. package/dist/cjs/types/options.d.ts +0 -51
  125. package/dist/cjs/types/options.js +0 -2
  126. package/dist/cjs/types/sample.d.ts +0 -15
  127. package/dist/cjs/types/sample.js +0 -2
  128. package/dist/cjs/types/settings.d.ts +0 -13
  129. package/dist/cjs/types/settings.js +0 -2
  130. package/dist/cjs/types/signalQuality.d.ts +0 -13
  131. package/dist/cjs/types/signalQuality.js +0 -2
  132. package/dist/cjs/types/skill.d.ts +0 -68
  133. package/dist/cjs/types/skill.js +0 -2
  134. package/dist/cjs/types/status.js +0 -22
  135. package/dist/cjs/types/streaming.js +0 -20
  136. package/dist/cjs/types/subscriptions.d.ts +0 -23
  137. package/dist/cjs/types/subscriptions.js +0 -2
  138. package/dist/cjs/types/training.d.ts +0 -19
  139. package/dist/cjs/types/training.js +0 -2
  140. package/dist/cjs/types/user.d.ts +0 -12
  141. package/dist/cjs/types/user.js +0 -2
  142. package/dist/cjs/utils/errors.js +0 -17
  143. package/dist/cjs/utils/filterInternalKeys.js +0 -21
  144. package/dist/cjs/utils/hapticEffects.js +0 -130
  145. package/dist/cjs/utils/heartbeat.js +0 -41
  146. package/dist/cjs/utils/is-node.js +0 -9
  147. package/dist/cjs/utils/metrics.d.ts +0 -1
  148. package/dist/cjs/utils/metrics.js +0 -56
  149. package/dist/cjs/utils/oauth.js +0 -92
  150. package/dist/cjs/utils/pick.d.ts +0 -1
  151. package/dist/cjs/utils/pick.js +0 -5
  152. package/dist/cjs/utils/pipes.js +0 -71
  153. package/dist/cjs/utils/platform.js +0 -47
  154. package/dist/cjs/utils/subscription.js +0 -55
  155. package/dist/cjs/utils/transferDevice.d.ts +0 -9
  156. package/dist/cjs/utils/transferDevice.js +0 -2
  157. package/dist/cjs/utils/whileOnline.js +0 -15
  158. package/dist/electron/index.js +0 -86
  159. package/dist/electron/index.js.map +0 -1
  160. package/dist/esm/Neurosity.d.ts +0 -619
  161. package/dist/esm/Neurosity.js +0 -1213
  162. package/dist/esm/api/bluetooth/BluetoothClient.d.ts +0 -72
  163. package/dist/esm/api/bluetooth/BluetoothClient.js +0 -306
  164. package/dist/esm/api/bluetooth/BluetoothTransport.d.ts +0 -33
  165. package/dist/esm/api/bluetooth/BluetoothTransport.js +0 -1
  166. package/dist/esm/api/bluetooth/constants.d.ts +0 -4
  167. package/dist/esm/api/bluetooth/constants.js +0 -6
  168. package/dist/esm/api/bluetooth/index.d.ts +0 -4
  169. package/dist/esm/api/bluetooth/index.js +0 -4
  170. package/dist/esm/api/bluetooth/react-native/ReactNativeTransport.js +0 -402
  171. package/dist/esm/api/bluetooth/react-native/types/BleManagerTypes.d.ts +0 -63
  172. package/dist/esm/api/bluetooth/react-native/types/BleManagerTypes.js +0 -8
  173. package/dist/esm/api/bluetooth/react-native/types/ReactNativeTypes.d.ts +0 -180
  174. package/dist/esm/api/bluetooth/react-native/types/ReactNativeTypes.js +0 -9
  175. package/dist/esm/api/bluetooth/types/index.d.ts +0 -31
  176. package/dist/esm/api/bluetooth/types/index.js +0 -19
  177. package/dist/esm/api/bluetooth/utils/create6DigitPin.d.ts +0 -1
  178. package/dist/esm/api/bluetooth/utils/create6DigitPin.js +0 -4
  179. package/dist/esm/api/bluetooth/utils/csvBufferToEpoch.d.ts +0 -11
  180. package/dist/esm/api/bluetooth/utils/csvBufferToEpoch.js +0 -31
  181. package/dist/esm/api/bluetooth/utils/encoding.d.ts +0 -3
  182. package/dist/esm/api/bluetooth/utils/encoding.js +0 -17
  183. package/dist/esm/api/bluetooth/utils/osHasBluetoothSupport.d.ts +0 -2
  184. package/dist/esm/api/bluetooth/utils/osHasBluetoothSupport.js +0 -16
  185. package/dist/esm/api/bluetooth/utils/stitch.d.ts +0 -5
  186. package/dist/esm/api/bluetooth/utils/stitch.js +0 -18
  187. package/dist/esm/api/bluetooth/web/WebBluetoothTransport.js +0 -426
  188. package/dist/esm/api/bluetooth/web/isMaybeWebWorkerContext.d.ts +0 -1
  189. package/dist/esm/api/bluetooth/web/isMaybeWebWorkerContext.js +0 -4
  190. package/dist/esm/api/bluetooth/web/isWebBluetoothSupported.d.ts +0 -1
  191. package/dist/esm/api/bluetooth/web/isWebBluetoothSupported.js +0 -7
  192. package/dist/esm/api/firebase/FirebaseApp.d.ts +0 -20
  193. package/dist/esm/api/firebase/FirebaseApp.js +0 -63
  194. package/dist/esm/api/firebase/FirebaseDevice.d.ts +0 -68
  195. package/dist/esm/api/firebase/FirebaseDevice.js +0 -139
  196. package/dist/esm/api/firebase/FirebaseUser.d.ts +0 -53
  197. package/dist/esm/api/firebase/FirebaseUser.js +0 -426
  198. package/dist/esm/api/firebase/config.d.ts +0 -8
  199. package/dist/esm/api/firebase/config.js +0 -8
  200. package/dist/esm/api/firebase/deviceStore.d.ts +0 -26
  201. package/dist/esm/api/firebase/deviceStore.js +0 -184
  202. package/dist/esm/api/firebase/index.d.ts +0 -3
  203. package/dist/esm/api/firebase/index.js +0 -3
  204. package/dist/esm/api/https/config.d.ts +0 -1
  205. package/dist/esm/api/https/config.js +0 -1
  206. package/dist/esm/api/https/createOAuthURL.d.ts +0 -3
  207. package/dist/esm/api/https/createOAuthURL.js +0 -11
  208. package/dist/esm/api/https/getOAuthToken.d.ts +0 -3
  209. package/dist/esm/api/https/getOAuthToken.js +0 -27
  210. package/dist/esm/api/https/utils.d.ts +0 -2
  211. package/dist/esm/api/https/utils.js +0 -9
  212. package/dist/esm/api/index.js +0 -300
  213. package/dist/esm/index.d.ts +0 -2
  214. package/dist/esm/index.js +0 -2
  215. package/dist/esm/neurosity.mjs +0 -48700
  216. package/dist/esm/subscriptions/SubscriptionManager.d.ts +0 -11
  217. package/dist/esm/subscriptions/SubscriptionManager.js +0 -23
  218. package/dist/esm/timesync/Timesync.d.ts +0 -20
  219. package/dist/esm/timesync/Timesync.js +0 -71
  220. package/dist/esm/timesync/index.d.ts +0 -1
  221. package/dist/esm/timesync/index.js +0 -1
  222. package/dist/esm/types/accelerometer.d.ts +0 -10
  223. package/dist/esm/types/accelerometer.js +0 -1
  224. package/dist/esm/types/actions.d.ts +0 -16
  225. package/dist/esm/types/actions.js +0 -1
  226. package/dist/esm/types/awareness.d.ts +0 -1
  227. package/dist/esm/types/awareness.js +0 -1
  228. package/dist/esm/types/brainwaves.d.ts +0 -26
  229. package/dist/esm/types/brainwaves.js +0 -1
  230. package/dist/esm/types/calm.d.ts +0 -6
  231. package/dist/esm/types/calm.js +0 -1
  232. package/dist/esm/types/client.d.ts +0 -22
  233. package/dist/esm/types/client.js +0 -1
  234. package/dist/esm/types/credentials.d.ts +0 -12
  235. package/dist/esm/types/credentials.js +0 -1
  236. package/dist/esm/types/deviceInfo.d.ts +0 -18
  237. package/dist/esm/types/deviceInfo.js +0 -1
  238. package/dist/esm/types/epoch.d.ts +0 -12
  239. package/dist/esm/types/epoch.js +0 -1
  240. package/dist/esm/types/experiment.d.ts +0 -9
  241. package/dist/esm/types/experiment.js +0 -1
  242. package/dist/esm/types/focus.d.ts +0 -6
  243. package/dist/esm/types/focus.js +0 -1
  244. package/dist/esm/types/hapticEffects.d.ts +0 -125
  245. package/dist/esm/types/hapticEffects.js +0 -1
  246. package/dist/esm/types/kinesis.d.ts +0 -6
  247. package/dist/esm/types/kinesis.js +0 -1
  248. package/dist/esm/types/marker.d.ts +0 -7
  249. package/dist/esm/types/marker.js +0 -1
  250. package/dist/esm/types/metrics.d.ts +0 -21
  251. package/dist/esm/types/metrics.js +0 -1
  252. package/dist/esm/types/oauth.d.ts +0 -20
  253. package/dist/esm/types/oauth.js +0 -1
  254. package/dist/esm/types/options.d.ts +0 -51
  255. package/dist/esm/types/options.js +0 -1
  256. package/dist/esm/types/sample.d.ts +0 -15
  257. package/dist/esm/types/sample.js +0 -1
  258. package/dist/esm/types/settings.d.ts +0 -13
  259. package/dist/esm/types/settings.js +0 -1
  260. package/dist/esm/types/signalQuality.d.ts +0 -13
  261. package/dist/esm/types/signalQuality.js +0 -1
  262. package/dist/esm/types/skill.d.ts +0 -68
  263. package/dist/esm/types/skill.js +0 -1
  264. package/dist/esm/types/status.d.ts +0 -26
  265. package/dist/esm/types/status.js +0 -19
  266. package/dist/esm/types/streaming.d.ts +0 -15
  267. package/dist/esm/types/streaming.js +0 -17
  268. package/dist/esm/types/subscriptions.d.ts +0 -23
  269. package/dist/esm/types/subscriptions.js +0 -1
  270. package/dist/esm/types/training.d.ts +0 -19
  271. package/dist/esm/types/training.js +0 -1
  272. package/dist/esm/types/user.d.ts +0 -12
  273. package/dist/esm/types/user.js +0 -1
  274. package/dist/esm/utils/errors.d.ts +0 -5
  275. package/dist/esm/utils/errors.js +0 -11
  276. package/dist/esm/utils/filterInternalKeys.d.ts +0 -3
  277. package/dist/esm/utils/filterInternalKeys.js +0 -17
  278. package/dist/esm/utils/hapticEffects.d.ts +0 -123
  279. package/dist/esm/utils/hapticEffects.js +0 -125
  280. package/dist/esm/utils/heartbeat.d.ts +0 -4
  281. package/dist/esm/utils/heartbeat.js +0 -33
  282. package/dist/esm/utils/is-node.d.ts +0 -1
  283. package/dist/esm/utils/is-node.js +0 -5
  284. package/dist/esm/utils/metrics.d.ts +0 -1
  285. package/dist/esm/utils/metrics.js +0 -52
  286. package/dist/esm/utils/oauth.d.ts +0 -9
  287. package/dist/esm/utils/oauth.js +0 -64
  288. package/dist/esm/utils/pick.d.ts +0 -1
  289. package/dist/esm/utils/pick.js +0 -1
  290. package/dist/esm/utils/pipes.d.ts +0 -46
  291. package/dist/esm/utils/pipes.js +0 -65
  292. package/dist/esm/utils/platform.d.ts +0 -30
  293. package/dist/esm/utils/platform.js +0 -41
  294. package/dist/esm/utils/subscription.d.ts +0 -6
  295. package/dist/esm/utils/subscription.js +0 -24
  296. package/dist/esm/utils/transferDevice.d.ts +0 -9
  297. package/dist/esm/utils/transferDevice.js +0 -1
  298. package/dist/esm/utils/whileOnline.d.ts +0 -8
  299. package/dist/esm/utils/whileOnline.js +0 -11
  300. package/dist/examples/auth.html +0 -32
  301. package/dist/examples/cloud.html +0 -17
  302. package/dist/examples/index.html +0 -1
  303. package/dist/examples/neurosity.iife.js +0 -48712
  304. package/dist/examples/neurosity.js +0 -666
  305. package/dist/examples/neurosity.mjs +0 -48700
  306. package/dist/examples/training.html +0 -49
@@ -1,310 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BluetoothClient = void 0;
13
- const rxjs_1 = require("rxjs");
14
- const rxjs_2 = require("rxjs");
15
- const operators_1 = require("rxjs/operators");
16
- const operators_2 = require("rxjs/operators");
17
- const WebBluetoothTransport_1 = require("./web/WebBluetoothTransport");
18
- const ReactNativeTransport_1 = require("./react-native/ReactNativeTransport");
19
- const csvBufferToEpoch_1 = require("./utils/csvBufferToEpoch");
20
- const types_1 = require("./types");
21
- const osHasBluetoothSupport_1 = require("./utils/osHasBluetoothSupport");
22
- class BluetoothClient {
23
- constructor(options) {
24
- this.selectedDevice$ = new rxjs_2.ReplaySubject(1);
25
- this.isAuthenticated$ = new rxjs_2.ReplaySubject(1);
26
- const { transport, selectedDevice$, createBluetoothToken } = options !== null && options !== void 0 ? options : {};
27
- if (!transport) {
28
- throw new Error(`No bluetooth transport provided.`);
29
- }
30
- this.transport = transport;
31
- // Pass events to the internal selectedDevice$ if selectedDevice$ is passed via options
32
- if (selectedDevice$) {
33
- selectedDevice$.subscribe(this.selectedDevice$);
34
- }
35
- // Auto Connect
36
- this.transport._autoConnect(this.selectedDevice$).subscribe({
37
- error: (error) => {
38
- var _a;
39
- this.transport.addLog(`Auto connect: error -> ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error}`);
40
- }
41
- });
42
- // Auto authentication
43
- if (typeof createBluetoothToken === "function") {
44
- this.transport.addLog("Auto authentication enabled");
45
- this._autoAuthenticate(createBluetoothToken).subscribe();
46
- }
47
- else {
48
- this.transport.addLog("Auto authentication not enabled");
49
- }
50
- // Auto manage action notifications
51
- this.transport._autoToggleActionNotifications(this.selectedDevice$);
52
- // Multicast metrics (share)
53
- this._focus$ = this._subscribeWhileAuthenticated("focus");
54
- this._calm$ = this._subscribeWhileAuthenticated("calm");
55
- this._accelerometer$ = this._subscribeWhileAuthenticated("accelerometer");
56
- this._brainwavesRaw$ = this._subscribeWhileAuthenticated("raw");
57
- this._brainwavesRawUnfiltered$ =
58
- this._subscribeWhileAuthenticated("rawUnfiltered");
59
- this._brainwavesPSD$ = this._subscribeWhileAuthenticated("psd");
60
- this._brainwavesPowerByBand$ =
61
- this._subscribeWhileAuthenticated("powerByBand");
62
- this._signalQuality$ = this._subscribeWhileAuthenticated("signalQuality");
63
- this._status$ = this._subscribeWhileAuthenticated("status");
64
- this._settings$ = this._subscribeWhileAuthenticated("settings");
65
- this._wifiNearbyNetworks$ =
66
- this._subscribeWhileAuthenticated("wifiNearbyNetworks");
67
- this._wifiConnections$ =
68
- this._subscribeWhileAuthenticated("wifiConnections");
69
- }
70
- _autoAuthenticate(createBluetoothToken) {
71
- const REAUTHENTICATE_INTERVAL = 3600000; // 1 hour
72
- const reauthenticateInterval$ = (0, rxjs_1.timer)(0, REAUTHENTICATE_INTERVAL).pipe((0, operators_1.tap)(() => {
73
- this.transport.addLog(`Auto authentication in progress...`);
74
- }));
75
- return this.selectedDevice$.pipe((0, operators_1.switchMap)((selectedDevice) => !(0, osHasBluetoothSupport_1.osHasBluetoothSupport)(selectedDevice)
76
- ? rxjs_2.EMPTY
77
- : this.connection().pipe((0, operators_1.switchMap)((connection) => connection === types_1.BLUETOOTH_CONNECTION.CONNECTED
78
- ? reauthenticateInterval$
79
- : rxjs_2.EMPTY), (0, operators_1.switchMap)(() => __awaiter(this, void 0, void 0, function* () { return yield this.isAuthenticated(); })), (0, operators_1.tap)(([isAuthenticated]) => __awaiter(this, void 0, void 0, function* () {
80
- if (!isAuthenticated) {
81
- const token = yield createBluetoothToken();
82
- yield this.authenticate(token);
83
- }
84
- else {
85
- this.transport.addLog(`Already authenticated`);
86
- }
87
- })))));
88
- }
89
- enableAutoConnect(autoConnect) {
90
- this.transport.enableAutoConnect(autoConnect);
91
- }
92
- _hasBluetoothSupport() {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const selectedDevice = yield (0, rxjs_1.firstValueFrom)(this.selectedDevice$);
95
- return (0, osHasBluetoothSupport_1.osHasBluetoothSupport)(selectedDevice);
96
- });
97
- }
98
- authenticate(token) {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- const hasBluetoothSupport = yield this._hasBluetoothSupport();
101
- if (!hasBluetoothSupport) {
102
- const errorMessage = `authenticate method: The OS version does not support Bluetooth.`;
103
- this.transport.addLog(errorMessage);
104
- return Promise.reject(errorMessage);
105
- }
106
- yield this.transport.writeCharacteristic("auth", token);
107
- const isAuthenticatedResponse = yield this.isAuthenticated();
108
- const [isAuthenticated] = isAuthenticatedResponse;
109
- this.transport.addLog(`Authentication ${isAuthenticated ? "succeeded" : "failed"}`);
110
- this.isAuthenticated$.next(isAuthenticated);
111
- return isAuthenticatedResponse;
112
- });
113
- }
114
- isAuthenticated() {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const [isAuthenticated, expiresIn] = yield this.transport.readCharacteristic("auth", true);
117
- this.isAuthenticated$.next(isAuthenticated);
118
- return [isAuthenticated, expiresIn];
119
- });
120
- }
121
- // Method for React Native only
122
- scan(options) {
123
- if (this.transport instanceof ReactNativeTransport_1.ReactNativeTransport) {
124
- return this.transport.scan(options);
125
- }
126
- if (this.transport instanceof WebBluetoothTransport_1.WebBluetoothTransport) {
127
- throw new Error(`scan method is compatibly with the React Native transport only`);
128
- }
129
- throw new Error(`unknown transport`);
130
- }
131
- // Argument for React Native only
132
- connect(deviceNicknameORPeripheral) {
133
- if (this.transport instanceof ReactNativeTransport_1.ReactNativeTransport) {
134
- return this.transport.connect(deviceNicknameORPeripheral);
135
- }
136
- if (this.transport instanceof WebBluetoothTransport_1.WebBluetoothTransport) {
137
- return deviceNicknameORPeripheral
138
- ? this.transport.connect(deviceNicknameORPeripheral)
139
- : this.transport.connect();
140
- }
141
- }
142
- disconnect() {
143
- return this.transport.disconnect();
144
- }
145
- connection() {
146
- return this.transport.connection();
147
- }
148
- logs() {
149
- return this.transport.logs$.asObservable();
150
- }
151
- getDeviceId() {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- // This is a public characteristic and does not require authentication
154
- return this.transport.readCharacteristic("deviceId");
155
- });
156
- }
157
- _withAuthentication(getter) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- // First check if the OS supports Bluetooth before checking if the device is authenticated
160
- const hasBluetoothSupport = yield this._hasBluetoothSupport();
161
- if (!hasBluetoothSupport) {
162
- const errorMessage = `The OS version does not support Bluetooth.`;
163
- this.transport.addLog(errorMessage);
164
- return Promise.reject(errorMessage);
165
- }
166
- const isAuthenticated = yield (0, rxjs_1.firstValueFrom)(this.isAuthenticated$);
167
- if (!isAuthenticated) {
168
- const errorMessage = `Authentication required.`;
169
- this.transport.addLog(errorMessage);
170
- return Promise.reject(errorMessage);
171
- }
172
- return yield getter();
173
- });
174
- }
175
- _subscribeWhileAuthenticated(characteristicName) {
176
- return this.selectedDevice$.pipe((0, operators_1.switchMap)((selectedDevice) => !(0, osHasBluetoothSupport_1.osHasBluetoothSupport)(selectedDevice)
177
- ? rxjs_2.EMPTY
178
- : this.isAuthenticated$.pipe((0, operators_2.distinctUntilChanged)(), (0, operators_1.switchMap)((isAuthenticated) => isAuthenticated
179
- ? this.transport.subscribeToCharacteristic({
180
- characteristicName
181
- })
182
- : rxjs_2.EMPTY))), (0, operators_1.share)());
183
- }
184
- focus() {
185
- return this._focus$;
186
- }
187
- calm() {
188
- return this._calm$;
189
- }
190
- accelerometer() {
191
- return this._accelerometer$;
192
- }
193
- brainwaves(label) {
194
- switch (label) {
195
- default:
196
- case "raw":
197
- return (0, rxjs_1.defer)(() => this.getInfo()).pipe((0, operators_1.switchMap)((deviceInfo) => this._brainwavesRaw$.pipe((0, csvBufferToEpoch_1.csvBufferToEpoch)(deviceInfo))));
198
- case "rawUnfiltered":
199
- return (0, rxjs_1.defer)(() => this.getInfo()).pipe((0, operators_1.switchMap)((deviceInfo) => this._brainwavesRawUnfiltered$.pipe((0, csvBufferToEpoch_1.csvBufferToEpoch)(deviceInfo))));
200
- case "psd":
201
- return this._brainwavesPSD$;
202
- case "powerByBand":
203
- return this._brainwavesPowerByBand$;
204
- }
205
- }
206
- signalQuality() {
207
- return this._signalQuality$;
208
- }
209
- addMarker(label) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- yield this.dispatchAction({
212
- action: "marker",
213
- command: "add",
214
- message: {
215
- timestamp: Date.now(),
216
- label
217
- }
218
- });
219
- });
220
- }
221
- getInfo() {
222
- return __awaiter(this, void 0, void 0, function* () {
223
- return yield this._withAuthentication(() => (0, rxjs_1.firstValueFrom)(this.transport.subscribeToCharacteristic({
224
- characteristicName: "deviceInfo"
225
- })));
226
- });
227
- }
228
- status() {
229
- return this._status$;
230
- }
231
- dispatchAction(action) {
232
- return __awaiter(this, void 0, void 0, function* () {
233
- return yield this._withAuthentication(() => this.transport.dispatchAction({
234
- characteristicName: "actions",
235
- action
236
- }));
237
- });
238
- }
239
- settings() {
240
- return this._settings$;
241
- }
242
- haptics(effects) {
243
- const metric = "haptics";
244
- return this.dispatchAction({
245
- action: metric,
246
- command: "queue",
247
- responseRequired: true,
248
- responseTimeout: 4000,
249
- // @TODO: implement validation logic as per SDK
250
- message: { effects }
251
- });
252
- }
253
- get wifi() {
254
- return {
255
- nearbyNetworks: () => this._wifiNearbyNetworks$,
256
- connections: () => this._wifiConnections$,
257
- connect: (ssid, password) => {
258
- if (!ssid) {
259
- return Promise.reject(`Missing ssid`);
260
- }
261
- return this.dispatchAction({
262
- action: "wifi",
263
- command: "connect",
264
- responseRequired: true,
265
- responseTimeout: 1000 * 60 * 2,
266
- message: {
267
- ssid,
268
- password: password !== null && password !== void 0 ? password : null
269
- }
270
- });
271
- },
272
- forgetConnection: (ssid) => {
273
- if (!ssid) {
274
- return Promise.reject(`Missing ssid`);
275
- }
276
- return this.dispatchAction({
277
- action: "wifi",
278
- command: "forget-connection",
279
- responseRequired: true,
280
- responseTimeout: 1000 * 15,
281
- message: {
282
- ssid
283
- }
284
- });
285
- },
286
- reset: () => {
287
- return this.dispatchAction({
288
- action: "wifi",
289
- command: "reset",
290
- responseRequired: true,
291
- responseTimeout: 1000 * 30,
292
- message: {
293
- // without this, the action will resolve as soon as the
294
- // action is received by the OS
295
- respondOnSuccess: true
296
- }
297
- });
298
- },
299
- speedTest: () => {
300
- return this.dispatchAction({
301
- action: "wifi",
302
- command: "speed-test",
303
- responseRequired: true,
304
- responseTimeout: 1000 * 60 * 1 // 1 minute
305
- });
306
- }
307
- };
308
- }
309
- }
310
- exports.BluetoothClient = BluetoothClient;
@@ -1,33 +0,0 @@
1
- import { Observable, Subject } from "rxjs";
2
- import { BLUETOOTH_CONNECTION, TRANSPORT_TYPE } from "./types";
3
- import { Action } from "../../types/actions";
4
- import { DeviceInfo } from "../../types/deviceInfo";
5
- import { Peripheral } from "./react-native/types/BleManagerTypes";
6
- export declare type DeviceNicknameOrPeripheral = string | Peripheral;
7
- /**
8
- * @hidden
9
- */
10
- export interface BluetoothTransport {
11
- type: TRANSPORT_TYPE;
12
- connect(deviceNicknameORPeripheral?: DeviceNicknameOrPeripheral): Promise<void>;
13
- _autoConnect(selectedDevice$: Observable<DeviceInfo>): Observable<void>;
14
- disconnect(): Promise<void>;
15
- connection(): Observable<BLUETOOTH_CONNECTION>;
16
- requestDevice?(): any;
17
- addLog: (log: string) => void;
18
- logs$: Subject<string>;
19
- enableAutoConnect?(value: boolean): void;
20
- scan?(options?: {
21
- seconds?: number;
22
- }): Observable<Peripheral[]>;
23
- subscribeToCharacteristic(args: {
24
- characteristicName: string;
25
- manageNotifications?: boolean;
26
- }): Observable<any>;
27
- readCharacteristic(characteristicName: string, parse?: boolean): Promise<any>;
28
- writeCharacteristic(characteristicName: string, data: string): Promise<void>;
29
- dispatchAction(args: {
30
- characteristicName: string;
31
- action: Action;
32
- }): Promise<any>;
33
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHARACTERISTIC_UUIDS_TO_NAMES = exports.DEFAULT_ACTION_RESPONSE_TIMEOUT = exports.REACT_NATIVE_MAX_BYTE_SIZE = exports.ANDROID_MAX_MTU = void 0;
4
- const ipk_1 = require("@neurosity/ipk");
5
- exports.ANDROID_MAX_MTU = 512;
6
- exports.REACT_NATIVE_MAX_BYTE_SIZE = 512; // the default is 20
7
- exports.DEFAULT_ACTION_RESPONSE_TIMEOUT = 1000 * 60; // 1 minute
8
- // Reverse BLUETOOTH_CHARACTERISTICS key/values for easy lookup
9
- exports.CHARACTERISTIC_UUIDS_TO_NAMES = Object.fromEntries(Object.entries(ipk_1.BLUETOOTH_CHARACTERISTICS).map((entries) => entries.reverse()));
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./BluetoothClient"), exports);
18
- __exportStar(require("./web/WebBluetoothTransport"), exports);
19
- __exportStar(require("./react-native/ReactNativeTransport"), exports);
20
- __exportStar(require("./utils/osHasBluetoothSupport"), exports);
@@ -1,70 +0,0 @@
1
- import { BehaviorSubject, ReplaySubject } from "rxjs";
2
- import { Observable } from "rxjs";
3
- import { BluetoothTransport } from "../BluetoothTransport";
4
- import { ActionOptions, SubscribeOptions } from "../types";
5
- import { TRANSPORT_TYPE, BLUETOOTH_CONNECTION } from "../types";
6
- import { BleManager } from "./types/BleManagerTypes";
7
- import { Peripheral } from "./types/BleManagerTypes";
8
- import { NativeEventEmitter } from "./types/ReactNativeTypes";
9
- import { PlatformOSType } from "./types/ReactNativeTypes";
10
- import { DeviceInfo } from "../../../types/deviceInfo";
11
- declare type Characteristic = {
12
- characteristicUUID: string;
13
- serviceUUID: string;
14
- peripheralId: string;
15
- };
16
- declare type CharacteristicsByName = {
17
- [name: string]: Characteristic;
18
- };
19
- declare type Options = {
20
- BleManager: BleManager;
21
- bleManagerEmitter: NativeEventEmitter;
22
- platform: PlatformOSType;
23
- autoConnect?: boolean;
24
- };
25
- declare type BleManagerEvents = {
26
- stopScan$: Observable<void>;
27
- discoverPeripheral$: Observable<Peripheral>;
28
- connectPeripheral$: Observable<void>;
29
- disconnectPeripheral$: Observable<void>;
30
- didUpdateValueForCharacteristic$: Observable<any>;
31
- didUpdateState$: Observable<any>;
32
- };
33
- export declare class ReactNativeTransport implements BluetoothTransport {
34
- type: TRANSPORT_TYPE;
35
- options: Options;
36
- BleManager: BleManager;
37
- bleManagerEmitter: NativeEventEmitter;
38
- platform: PlatformOSType;
39
- bleEvents: BleManagerEvents;
40
- device: Peripheral;
41
- characteristicsByName: CharacteristicsByName;
42
- connection$: BehaviorSubject<BLUETOOTH_CONNECTION>;
43
- pendingActions$: BehaviorSubject<any[]>;
44
- logs$: ReplaySubject<string>;
45
- onDisconnected$: Observable<void>;
46
- connectionStream$: Observable<BLUETOOTH_CONNECTION>;
47
- _isAutoConnectEnabled$: ReplaySubject<boolean>;
48
- constructor(options: Options);
49
- addLog(log: string): void;
50
- isConnected(): boolean;
51
- _autoConnect(selectedDevice$: Observable<DeviceInfo>): Observable<void>;
52
- enableAutoConnect(autoConnect: boolean): void;
53
- connection(): Observable<BLUETOOTH_CONNECTION>;
54
- _fromEvent(eventName: string): Observable<any>;
55
- scan(options?: {
56
- seconds?: number;
57
- once?: boolean;
58
- }): Observable<Peripheral[]>;
59
- connect(peripheral: Peripheral): Promise<void>;
60
- disconnect(): Promise<void>;
61
- getCharacteristicByName(characteristicName: string): Characteristic;
62
- subscribeToCharacteristic({ characteristicName, manageNotifications }: SubscribeOptions): Observable<any>;
63
- readCharacteristic(characteristicName: string, parse?: boolean): Promise<any>;
64
- writeCharacteristic(characteristicName: string, data: string): Promise<void>;
65
- _addPendingAction(actionId: number): void;
66
- _removePendingAction(actionId: number): void;
67
- _autoToggleActionNotifications(selectedDevice$: Observable<DeviceInfo>): Promise<void>;
68
- dispatchAction({ characteristicName, action }: ActionOptions): Promise<any>;
69
- }
70
- export {};