@ledgerhq/live-common 26.0.0-next.2 → 26.0.1-nightly.1

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 (242) hide show
  1. package/README.md +1 -1
  2. package/lib/__tests__/test-helpers/environment.d.ts +2 -0
  3. package/lib/__tests__/test-helpers/environment.d.ts.map +1 -0
  4. package/lib/__tests__/test-helpers/environment.js +107 -0
  5. package/lib/__tests__/test-helpers/environment.js.map +1 -0
  6. package/lib/__tests__/test-helpers/setup.d.ts +1 -1
  7. package/lib/__tests__/test-helpers/setup.d.ts.map +1 -1
  8. package/lib/__tests__/test-helpers/setup.js +1 -101
  9. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  10. package/lib/ble/hooks/useBleDevicePairing.d.ts +18 -0
  11. package/lib/ble/hooks/useBleDevicePairing.d.ts.map +1 -0
  12. package/lib/ble/hooks/useBleDevicePairing.js +57 -0
  13. package/lib/ble/hooks/useBleDevicePairing.js.map +1 -0
  14. package/lib/ble/hooks/useBleDevicePairing.test.d.ts +2 -0
  15. package/lib/ble/hooks/useBleDevicePairing.test.d.ts.map +1 -0
  16. package/lib/ble/hooks/useBleDevicePairing.test.js +159 -0
  17. package/lib/ble/hooks/useBleDevicePairing.test.js.map +1 -0
  18. package/lib/ble/hooks/useBleDevicesScanning.d.ts +25 -0
  19. package/lib/ble/hooks/useBleDevicesScanning.d.ts.map +1 -0
  20. package/lib/ble/hooks/useBleDevicesScanning.js +117 -0
  21. package/lib/ble/hooks/useBleDevicesScanning.js.map +1 -0
  22. package/lib/ble/hooks/useBleDevicesScanning.test.d.ts +2 -0
  23. package/lib/ble/hooks/useBleDevicesScanning.test.d.ts.map +1 -0
  24. package/lib/ble/hooks/useBleDevicesScanning.test.js +281 -0
  25. package/lib/ble/hooks/useBleDevicesScanning.test.js.map +1 -0
  26. package/lib/ble/types.d.ts +21 -0
  27. package/lib/ble/types.d.ts.map +1 -0
  28. package/lib/ble/types.js +3 -0
  29. package/lib/ble/types.js.map +1 -0
  30. package/lib/bot/bot-test-context.d.ts +3 -0
  31. package/lib/bot/bot-test-context.d.ts.map +1 -0
  32. package/lib/bot/bot-test-context.js +26 -0
  33. package/lib/bot/bot-test-context.js.map +1 -0
  34. package/lib/bot/bot-test-context.test.d.ts +2 -0
  35. package/lib/bot/bot-test-context.test.d.ts.map +1 -0
  36. package/lib/bot/bot-test-context.test.js +41 -0
  37. package/lib/bot/bot-test-context.test.js.map +1 -0
  38. package/lib/bot/cli.d.ts +2 -0
  39. package/lib/bot/cli.d.ts.map +1 -0
  40. package/lib/bot/cli.js +14 -0
  41. package/lib/bot/cli.js.map +1 -0
  42. package/lib/bot/engine.d.ts +3 -2
  43. package/lib/bot/engine.d.ts.map +1 -1
  44. package/lib/bot/engine.js +116 -85
  45. package/lib/bot/engine.js.map +1 -1
  46. package/lib/bot/formatters.d.ts +2 -2
  47. package/lib/bot/formatters.d.ts.map +1 -1
  48. package/lib/bot/formatters.js +37 -13
  49. package/lib/bot/formatters.js.map +1 -1
  50. package/lib/bot/index.d.ts.map +1 -1
  51. package/lib/bot/index.js +39 -12
  52. package/lib/bot/index.js.map +1 -1
  53. package/lib/bot/specs.d.ts +2 -1
  54. package/lib/bot/specs.d.ts.map +1 -1
  55. package/lib/bot/specs.js +13 -9
  56. package/lib/bot/specs.js.map +1 -1
  57. package/lib/bot/types.d.ts +4 -2
  58. package/lib/bot/types.d.ts.map +1 -1
  59. package/lib/env.js +1 -1
  60. package/lib/families/algorand/specs.d.ts.map +1 -1
  61. package/lib/families/algorand/specs.js +16 -10
  62. package/lib/families/algorand/specs.js.map +1 -1
  63. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  64. package/lib/families/bitcoin/specs.js +39 -26
  65. package/lib/families/bitcoin/specs.js.map +1 -1
  66. package/lib/families/cardano/js-estimateMaxSpendable.d.ts.map +1 -1
  67. package/lib/families/cardano/js-estimateMaxSpendable.js +3 -1
  68. package/lib/families/cardano/js-estimateMaxSpendable.js.map +1 -1
  69. package/lib/families/cardano/specs.d.ts.map +1 -1
  70. package/lib/families/cardano/specs.js +17 -8
  71. package/lib/families/cardano/specs.js.map +1 -1
  72. package/lib/families/cosmos/specs.d.ts.map +1 -1
  73. package/lib/families/cosmos/specs.js +41 -27
  74. package/lib/families/cosmos/specs.js.map +1 -1
  75. package/lib/families/elrond/specs.d.ts.map +1 -1
  76. package/lib/families/elrond/specs.js +4 -2
  77. package/lib/families/elrond/specs.js.map +1 -1
  78. package/lib/families/ethereum/specs.d.ts.map +1 -1
  79. package/lib/families/ethereum/specs.js +30 -12
  80. package/lib/families/ethereum/specs.js.map +1 -1
  81. package/lib/families/hedera/specs.d.ts.map +1 -1
  82. package/lib/families/hedera/specs.js +9 -3
  83. package/lib/families/hedera/specs.js.map +1 -1
  84. package/lib/families/osmosis/specs.d.ts.map +1 -1
  85. package/lib/families/osmosis/specs.js +11 -5
  86. package/lib/families/osmosis/specs.js.map +1 -1
  87. package/lib/families/polkadot/bridge.integration.test.js +3 -3
  88. package/lib/families/polkadot/bridge.integration.test.js.map +1 -1
  89. package/lib/families/polkadot/specs.d.ts.map +1 -1
  90. package/lib/families/polkadot/specs.js +7 -4
  91. package/lib/families/polkadot/specs.js.map +1 -1
  92. package/lib/families/ripple/specs.d.ts.map +1 -1
  93. package/lib/families/ripple/specs.js +7 -4
  94. package/lib/families/ripple/specs.js.map +1 -1
  95. package/lib/families/solana/specs.d.ts.map +1 -1
  96. package/lib/families/solana/specs.js +28 -11
  97. package/lib/families/solana/specs.js.map +1 -1
  98. package/lib/families/stellar/api/horizon.d.ts.map +1 -1
  99. package/lib/families/stellar/api/horizon.js +15 -10
  100. package/lib/families/stellar/api/horizon.js.map +1 -1
  101. package/lib/families/stellar/specs.d.ts.map +1 -1
  102. package/lib/families/stellar/specs.js +28 -12
  103. package/lib/families/stellar/specs.js.map +1 -1
  104. package/lib/families/tron/specs.d.ts.map +1 -1
  105. package/lib/families/tron/specs.js +43 -17
  106. package/lib/families/tron/specs.js.map +1 -1
  107. package/lib/featureFlags/provider.d.ts +5 -1
  108. package/lib/featureFlags/provider.d.ts.map +1 -1
  109. package/lib/featureFlags/provider.js +6 -4
  110. package/lib/featureFlags/provider.js.map +1 -1
  111. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  112. package/lib/featureFlags/useFeature.js +3 -1
  113. package/lib/featureFlags/useFeature.js.map +1 -1
  114. package/lib/generated/account.d.ts.map +1 -1
  115. package/lib/generated/account.js.map +1 -1
  116. package/lib/generated/bridge/js.d.ts.map +1 -1
  117. package/lib/generated/bridge/js.js.map +1 -1
  118. package/lib/generated/bridge/mock.d.ts.map +1 -1
  119. package/lib/generated/bridge/mock.js.map +1 -1
  120. package/lib/generated/cli-transaction.d.ts.map +1 -1
  121. package/lib/generated/cli-transaction.js.map +1 -1
  122. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  123. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  124. package/lib/generated/exchange.d.ts.map +1 -1
  125. package/lib/generated/exchange.js.map +1 -1
  126. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  127. package/lib/generated/hw-getAddress.js.map +1 -1
  128. package/lib/generated/hw-signMessage.d.ts.map +1 -1
  129. package/lib/generated/hw-signMessage.js.map +1 -1
  130. package/lib/generated/mock.d.ts.map +1 -1
  131. package/lib/generated/mock.js.map +1 -1
  132. package/lib/generated/platformAdapter.d.ts.map +1 -1
  133. package/lib/generated/platformAdapter.js.map +1 -1
  134. package/lib/generated/presync.d.ts.map +1 -1
  135. package/lib/generated/presync.js.map +1 -1
  136. package/lib/generated/specs.d.ts.map +1 -1
  137. package/lib/generated/specs.js.map +1 -1
  138. package/lib/generated/speculos-deviceActions.d.ts.map +1 -1
  139. package/lib/generated/speculos-deviceActions.js.map +1 -1
  140. package/lib/generated/transaction.d.ts.map +1 -1
  141. package/lib/generated/transaction.js.map +1 -1
  142. package/lib/generated/types.d.ts.map +1 -1
  143. package/lib/hw/getGenuineCheckFromDeviceId.d.ts +22 -0
  144. package/lib/hw/getGenuineCheckFromDeviceId.d.ts.map +1 -0
  145. package/lib/hw/getGenuineCheckFromDeviceId.js +49 -0
  146. package/lib/hw/getGenuineCheckFromDeviceId.js.map +1 -0
  147. package/lib/hw/getGenuineCheckFromDeviceId.test.d.ts +2 -0
  148. package/lib/hw/getGenuineCheckFromDeviceId.test.d.ts.map +1 -0
  149. package/lib/hw/getGenuineCheckFromDeviceId.test.js +84 -0
  150. package/lib/hw/getGenuineCheckFromDeviceId.test.js.map +1 -0
  151. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.d.ts +17 -0
  152. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.d.ts.map +1 -0
  153. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.js +27 -0
  154. package/lib/hw/getLatestAvailableFirmwareFromDeviceId.js.map +1 -0
  155. package/lib/hw/hooks/useGenuineCheck.d.ts +34 -0
  156. package/lib/hw/hooks/useGenuineCheck.d.ts.map +1 -0
  157. package/lib/hw/hooks/useGenuineCheck.js +115 -0
  158. package/lib/hw/hooks/useGenuineCheck.js.map +1 -0
  159. package/lib/hw/hooks/useGenuineCheck.test.d.ts +2 -0
  160. package/lib/hw/hooks/useGenuineCheck.test.d.ts.map +1 -0
  161. package/lib/hw/hooks/useGenuineCheck.test.js +316 -0
  162. package/lib/hw/hooks/useGenuineCheck.test.js.map +1 -0
  163. package/lib/hw/hooks/useGetLatestAvailableFirmware.d.ts +29 -0
  164. package/lib/hw/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -0
  165. package/lib/hw/hooks/useGetLatestAvailableFirmware.js +72 -0
  166. package/lib/hw/hooks/useGetLatestAvailableFirmware.js.map +1 -0
  167. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.d.ts +2 -0
  168. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.d.ts.map +1 -0
  169. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.js +155 -0
  170. package/lib/hw/hooks/useGetLatestAvailableFirmware.test.js.map +1 -0
  171. package/lib/load/speculos.d.ts +1 -0
  172. package/lib/load/speculos.d.ts.map +1 -1
  173. package/lib/load/speculos.js +2 -1
  174. package/lib/load/speculos.js.map +1 -1
  175. package/lib/platform/react.d.ts.map +1 -1
  176. package/lib/platform/react.js +6 -3
  177. package/lib/platform/react.js.map +1 -1
  178. package/package.json +23 -24
  179. package/src/__tests__/test-helpers/environment.ts +91 -0
  180. package/src/__tests__/test-helpers/setup.ts +2 -91
  181. package/src/ble/hooks/useBleDevicePairing.test.ts +91 -0
  182. package/src/ble/hooks/useBleDevicePairing.ts +51 -0
  183. package/src/ble/hooks/useBleDevicesScanning.test.ts +252 -0
  184. package/src/ble/hooks/useBleDevicesScanning.ts +147 -0
  185. package/src/ble/types.ts +42 -0
  186. package/src/bot/bot-test-context.test.ts +37 -0
  187. package/src/bot/bot-test-context.ts +24 -0
  188. package/src/bot/cli.ts +18 -0
  189. package/src/bot/engine.ts +61 -34
  190. package/src/bot/formatters.ts +37 -13
  191. package/src/bot/index.ts +60 -12
  192. package/src/bot/specs.ts +10 -5
  193. package/src/bot/types.ts +4 -2
  194. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +1 -36
  195. package/src/env.ts +1 -1
  196. package/src/families/algorand/specs.ts +23 -16
  197. package/src/families/bitcoin/specs.ts +53 -41
  198. package/src/families/cardano/js-estimateMaxSpendable.ts +3 -1
  199. package/src/families/cardano/specs.ts +26 -11
  200. package/src/families/cosmos/specs.ts +44 -30
  201. package/src/families/elrond/specs.ts +5 -3
  202. package/src/families/ethereum/specs.ts +41 -23
  203. package/src/families/hedera/specs.ts +11 -5
  204. package/src/families/osmosis/specs.ts +13 -7
  205. package/src/families/polkadot/bridge.integration.test.ts +3 -3
  206. package/src/families/polkadot/specs.ts +8 -5
  207. package/src/families/ripple/specs.ts +10 -7
  208. package/src/families/solana/specs.ts +32 -14
  209. package/src/families/stellar/api/horizon.ts +10 -6
  210. package/src/families/stellar/specs.ts +35 -19
  211. package/src/families/tron/specs.ts +56 -30
  212. package/src/featureFlags/provider.tsx +11 -1
  213. package/src/featureFlags/useFeature.ts +6 -2
  214. package/src/generated/account.ts +0 -8
  215. package/src/generated/bridge/js.ts +0 -18
  216. package/src/generated/bridge/mock.ts +0 -8
  217. package/src/generated/cli-transaction.ts +0 -17
  218. package/src/generated/deviceTransactionConfig.ts +15 -31
  219. package/src/generated/exchange.ts +0 -5
  220. package/src/generated/hw-getAddress.ts +0 -18
  221. package/src/generated/hw-signMessage.ts +0 -3
  222. package/src/generated/mock.ts +0 -3
  223. package/src/generated/platformAdapter.ts +0 -4
  224. package/src/generated/presync.ts +0 -1
  225. package/src/generated/specs.ts +0 -17
  226. package/src/generated/speculos-deviceActions.ts +0 -17
  227. package/src/generated/transaction.ts +0 -18
  228. package/src/generated/types.ts +7 -4
  229. package/src/hw/getGenuineCheckFromDeviceId.test.ts +98 -0
  230. package/src/hw/getGenuineCheckFromDeviceId.ts +61 -0
  231. package/src/hw/getLatestAvailableFirmwareFromDeviceId.ts +37 -0
  232. package/src/hw/hooks/useGenuineCheck.test.ts +232 -0
  233. package/src/hw/hooks/useGenuineCheck.ts +138 -0
  234. package/src/hw/hooks/useGetLatestAvailableFirmware.test.ts +111 -0
  235. package/src/hw/hooks/useGetLatestAvailableFirmware.ts +90 -0
  236. package/src/load/speculos.ts +2 -0
  237. package/src/platform/react.ts +7 -3
  238. package/lib/bot/test.bot.d.ts +0 -2
  239. package/lib/bot/test.bot.d.ts.map +0 -1
  240. package/lib/bot/test.bot.js +0 -62
  241. package/lib/bot/test.bot.js.map +0 -1
  242. package/src/bot/test.bot.ts +0 -21
package/README.md CHANGED
@@ -79,6 +79,6 @@ This part of the repository is where you will add most of your code.
79
79
 
80
80
  For a smooth and quick integration:
81
81
  - See the developers’ documentation on the [Developer Portal](https://developers.ledger.com/docs/coin/general-process/) and
82
- - Go on Discord to chat with developer support and the developer community. See you there! If you are new to Ledger OP3N Discord server [click here](https://discord.gg/Ledger), otherwise directly join [the Blockchain channel](https://discord.com/channels/885256081289379850/907623688759803935).
82
+ - Go on [Discord](https://developers.ledger.com/discord-pro/) to chat with developer support and the developer community.
83
83
 
84
84
  ---
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/environment.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ exports.__esModule = true;
28
+ var winston_1 = __importDefault(require("winston"));
29
+ var logs_1 = require("@ledgerhq/logs");
30
+ var currencies_1 = require("../../currencies");
31
+ var version_1 = require("../../platform/version");
32
+ var env_1 = require("../../env");
33
+ (0, version_1.setPlatformVersion)("1.1.0");
34
+ (0, currencies_1.setSupportedCurrencies)([
35
+ "bitcoin",
36
+ "ethereum",
37
+ "bsc",
38
+ "polygon",
39
+ "elrond",
40
+ "ripple",
41
+ "bitcoin_cash",
42
+ "litecoin",
43
+ "dash",
44
+ "ethereum_classic",
45
+ "tezos",
46
+ "qtum",
47
+ "zcash",
48
+ "bitcoin_gold",
49
+ "stratis",
50
+ "dogecoin",
51
+ "digibyte",
52
+ "komodo",
53
+ "pivx",
54
+ "zencash",
55
+ "vertcoin",
56
+ "peercoin",
57
+ "viacoin",
58
+ "stakenet",
59
+ "stealthcoin",
60
+ "decred",
61
+ "tron",
62
+ "stellar",
63
+ "cosmos",
64
+ "algorand",
65
+ "polkadot",
66
+ "bitcoin_testnet",
67
+ "ethereum_ropsten",
68
+ "ethereum_goerli",
69
+ "cosmos_testnet",
70
+ "crypto_org_croeseid",
71
+ "crypto_org",
72
+ "filecoin",
73
+ "solana",
74
+ "celo",
75
+ "hedera",
76
+ "cardano",
77
+ "cardano_testnet",
78
+ "osmosis",
79
+ "filecoin",
80
+ ]);
81
+ for (var k in process.env)
82
+ (0, env_1.setEnvUnsafe)(k, process.env[k]);
83
+ var _a = process.env, VERBOSE = _a.VERBOSE, VERBOSE_FILE = _a.VERBOSE_FILE;
84
+ var logger = winston_1["default"].createLogger({
85
+ level: "debug",
86
+ transports: []
87
+ });
88
+ var format = winston_1["default"].format;
89
+ var combine = format.combine, timestamp = format.timestamp, json = format.json;
90
+ var winstonFormat = combine(timestamp(), json());
91
+ if (VERBOSE_FILE) {
92
+ logger.add(new winston_1["default"].transports.File({
93
+ format: winstonFormat,
94
+ filename: VERBOSE_FILE,
95
+ level: "debug"
96
+ }));
97
+ }
98
+ logger.add(new winston_1["default"].transports.Console({
99
+ format: winstonFormat,
100
+ silent: !VERBOSE
101
+ }));
102
+ // eslint-disable-next-line no-unused-vars
103
+ (0, logs_1.listen)(function (_a) {
104
+ var type = _a.type, message = _a.message, rest = __rest(_a, ["type", "message"]);
105
+ logger.log("debug", __assign({ message: type + (message ? ": " + message : "") }, rest));
106
+ });
107
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/environment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;AAC9B,uCAAwC;AACxC,+CAA0D;AAC1D,kDAA4D;AAC5D,iCAAkD;AAElD,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAC;AAE5B,IAAA,mCAAsB,EAAC;IACrB,SAAS;IACT,UAAU;IACV,KAAK;IACL,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,UAAU;IACV,MAAM;IACN,kBAAkB;IAClB,OAAO;IACP,MAAM;IACN,OAAO;IACP,cAAc;IACd,SAAS;IACT,UAAU;IACV,UAAU;IACV,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;IACV,aAAa;IACb,QAAQ;IACR,MAAM;IACN,SAAS;IACT,QAAQ;IACR,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,SAAS;IACT,iBAAiB;IACjB,SAAS;IACT,UAAU;CACX,CAAC,CAAC;AAEH,KAAK,IAAM,CAAC,IAAI,OAAO,CAAC,GAAG;IAAE,IAAA,kBAAY,EAAC,CAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,IAAA,KAA4B,OAAO,CAAC,GAAG,EAArC,OAAO,aAAA,EAAE,YAAY,kBAAgB,CAAC;AAC9C,IAAM,MAAM,GAAG,oBAAO,CAAC,YAAY,CAAC;IAClC,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,EAAE;CACf,CAAC,CAAC;AACK,IAAA,MAAM,GAAK,oBAAO,OAAZ,CAAa;AACnB,IAAA,OAAO,GAAsB,MAAM,QAA5B,EAAE,SAAS,GAAW,MAAM,UAAjB,EAAE,IAAI,GAAK,MAAM,KAAX,CAAY;AAC5C,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnD,IAAI,YAAY,EAAE;IAChB,MAAM,CAAC,GAAG,CACR,IAAI,oBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,OAAO;KACf,CAAC,CACH,CAAC;CACH;AAED,MAAM,CAAC,GAAG,CACR,IAAI,oBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;IAC7B,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,CAAC,OAAO;CACjB,CAAC,CACH,CAAC;AACF,0CAA0C;AAC1C,IAAA,aAAM,EAAC,UAAC,EAA0B;IAAxB,IAAA,IAAI,UAAA,EAAE,OAAO,aAAA,EAAK,IAAI,cAAxB,mBAA0B,CAAF;IAC9B,MAAM,CAAC,GAAG,CAAC,OAAO,aAChB,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAE5C,IAAI,EACP,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ import "./environment";
2
2
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/setup.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/setup.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
@@ -1,36 +1,10 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
25
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
4
  };
27
5
  exports.__esModule = true;
28
- var winston_1 = __importDefault(require("winston"));
29
- var logs_1 = require("@ledgerhq/logs");
6
+ require("./environment");
30
7
  var bignumber_js_1 = __importDefault(require("bignumber.js"));
31
- var currencies_1 = require("../../currencies");
32
- var version_1 = require("../../platform/version");
33
- var env_1 = require("../../env");
34
8
  jest.setTimeout(360000);
35
9
  expect.extend({
36
10
  toBeBigNumber: function (value) {
@@ -41,78 +15,4 @@ expect.extend({
41
15
  return { message: message, pass: pass };
42
16
  }
43
17
  });
44
- (0, version_1.setPlatformVersion)("1.1.0");
45
- (0, currencies_1.setSupportedCurrencies)([
46
- "bitcoin",
47
- "ethereum",
48
- "bsc",
49
- "polygon",
50
- "elrond",
51
- "ripple",
52
- "bitcoin_cash",
53
- "litecoin",
54
- "dash",
55
- "ethereum_classic",
56
- "tezos",
57
- "qtum",
58
- "zcash",
59
- "bitcoin_gold",
60
- "stratis",
61
- "dogecoin",
62
- "digibyte",
63
- "komodo",
64
- "pivx",
65
- "zencash",
66
- "vertcoin",
67
- "peercoin",
68
- "viacoin",
69
- "stakenet",
70
- "stealthcoin",
71
- "decred",
72
- "tron",
73
- "stellar",
74
- "cosmos",
75
- "algorand",
76
- "polkadot",
77
- "bitcoin_testnet",
78
- "ethereum_ropsten",
79
- "ethereum_goerli",
80
- "cosmos_testnet",
81
- "crypto_org_croeseid",
82
- "crypto_org",
83
- "filecoin",
84
- "solana",
85
- "celo",
86
- "hedera",
87
- "cardano",
88
- "cardano_testnet",
89
- "osmosis",
90
- "filecoin",
91
- ]);
92
- for (var k in process.env)
93
- (0, env_1.setEnvUnsafe)(k, process.env[k]);
94
- var _a = process.env, VERBOSE = _a.VERBOSE, VERBOSE_FILE = _a.VERBOSE_FILE;
95
- var logger = winston_1["default"].createLogger({
96
- level: "debug",
97
- transports: []
98
- });
99
- var format = winston_1["default"].format;
100
- var combine = format.combine, timestamp = format.timestamp, json = format.json;
101
- var winstonFormat = combine(timestamp(), json());
102
- if (VERBOSE_FILE) {
103
- logger.add(new winston_1["default"].transports.File({
104
- format: winstonFormat,
105
- filename: VERBOSE_FILE,
106
- level: "debug"
107
- }));
108
- }
109
- logger.add(new winston_1["default"].transports.Console({
110
- format: winstonFormat,
111
- silent: !VERBOSE
112
- }));
113
- // eslint-disable-next-line no-unused-vars
114
- (0, logs_1.listen)(function (_a) {
115
- var type = _a.type, message = _a.message, rest = __rest(_a, ["type", "message"]);
116
- logger.log("debug", __assign({ message: type + (message ? ": " + message : "") }, rest));
117
- });
118
18
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/setup.ts"],"names":[],"mappings":";;;;;AAAA,yBAAuB;AAEvB,8DAAqC;AAErC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,CAAC;IACZ,aAAa,YAAC,KAAK;QACjB,IAAM,IAAI,GAAG,yBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAM,OAAO,GAAG,IAAI;YAClB,CAAC,CAAC,cAAM,OAAA,UAAG,KAAK,oBAAiB,EAAzB,CAAyB;YACjC,CAAC,CAAC,cAAM,OAAA,UAAG,KAAK,wBAAqB,EAA7B,CAA6B,CAAC;QAExC,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { BleError } from "../types";
2
+ export declare type useBleDevicePairingArgs = {
3
+ deviceId: string;
4
+ };
5
+ export declare type PairingError = BleError | null;
6
+ export declare type useBleDevicePairingResult = {
7
+ isPaired: boolean;
8
+ pairingError: PairingError;
9
+ };
10
+ /**
11
+ * Triggers a BLE pairing with a device
12
+ * @param deviceId A BLE device id
13
+ * @returns An object containing:
14
+ * - isPaired: a boolean set to true if the device has been paired, false otherwise
15
+ * - pairingError: any PairingError that occurred, null otherwise
16
+ */
17
+ export declare const useBleDevicePairing: ({ deviceId, }: useBleDevicePairingArgs) => useBleDevicePairingResult;
18
+ //# sourceMappingURL=useBleDevicePairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBleDevicePairing.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE3C,oBAAY,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,kBAE7B,uBAAuB,KAAG,yBAsB5B,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ exports.__esModule = true;
22
+ exports.useBleDevicePairing = void 0;
23
+ var react_1 = require("react");
24
+ var rxjs_1 = require("rxjs");
25
+ var operators_1 = require("rxjs/operators");
26
+ var deviceAccess_1 = require("../../hw/deviceAccess");
27
+ var getVersion_1 = __importDefault(require("../../hw/getVersion"));
28
+ /**
29
+ * Triggers a BLE pairing with a device
30
+ * @param deviceId A BLE device id
31
+ * @returns An object containing:
32
+ * - isPaired: a boolean set to true if the device has been paired, false otherwise
33
+ * - pairingError: any PairingError that occurred, null otherwise
34
+ */
35
+ var useBleDevicePairing = function (_a) {
36
+ var deviceId = _a.deviceId;
37
+ var _b = __read((0, react_1.useState)(false), 2), isPaired = _b[0], setIsPaired = _b[1];
38
+ var _c = __read((0, react_1.useState)(null), 2), pairingError = _c[0], setPairingError = _c[1];
39
+ (0, react_1.useEffect)(function () {
40
+ var requestObservable = (0, deviceAccess_1.withDevice)(deviceId)(function (t) {
41
+ return (0, rxjs_1.from)((0, getVersion_1["default"])(t));
42
+ }).pipe((0, operators_1.first)());
43
+ requestObservable.subscribe({
44
+ next: function (_value) {
45
+ setIsPaired(true);
46
+ setPairingError(null);
47
+ },
48
+ error: function (error) {
49
+ setIsPaired(false);
50
+ setPairingError(error);
51
+ }
52
+ });
53
+ }, [deviceId]);
54
+ return { isPaired: isPaired, pairingError: pairingError };
55
+ };
56
+ exports.useBleDevicePairing = useBleDevicePairing;
57
+ //# sourceMappingURL=useBleDevicePairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBleDevicePairing.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA4C;AAC5C,6BAA4B;AAC5B,4CAAuC;AAEvC,sDAAmD;AACnD,mEAA6C;AAc7C;;;;;;GAMG;AACI,IAAM,mBAAmB,GAAG,UAAC,EAEV;QADxB,QAAQ,cAAA;IAEF,IAAA,KAAA,OAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACnD,IAAA,KAAA,OAAkC,IAAA,gBAAQ,EAAe,IAAI,CAAC,IAAA,EAA7D,YAAY,QAAA,EAAE,eAAe,QAAgC,CAAC;IAErE,IAAA,iBAAS,EAAC;QACR,IAAM,iBAAiB,GAAG,IAAA,yBAAU,EAAC,QAAQ,CAAC,CAAC,UAAC,CAAC;YAC/C,OAAA,IAAA,WAAI,EAAC,IAAA,uBAAU,EAAC,CAAC,CAAC,CAAC;QAAnB,CAAmB,CACpB,CAAC,IAAI,CAAC,IAAA,iBAAK,GAAE,CAAC,CAAC;QAEhB,iBAAiB,CAAC,SAAS,CAAC;YAC1B,IAAI,EAAE,UAAC,MAAoB;gBACzB,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YACD,KAAK,EAAE,UAAC,KAAe;gBACrB,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnB,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;SACF,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,EAAE,QAAQ,UAAA,EAAE,YAAY,cAAA,EAAE,CAAC;AACpC,CAAC,CAAC;AAxBW,QAAA,mBAAmB,uBAwB9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useBleDevicePairing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBleDevicePairing.test.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
56
+ exports.__esModule = true;
57
+ var react_hooks_1 = require("@testing-library/react-hooks");
58
+ var rxjs_1 = require("rxjs");
59
+ var devices_1 = require("@ledgerhq/devices");
60
+ var hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
61
+ var deviceAccess_1 = require("../../hw/deviceAccess");
62
+ var getVersion_1 = __importDefault(require("../../hw/getVersion"));
63
+ var useBleDevicePairing_1 = require("./useBleDevicePairing");
64
+ jest.mock("../../hw/deviceAccess");
65
+ jest.mock("../../hw/getVersion");
66
+ jest.mock("@ledgerhq/hw-transport");
67
+ jest.useFakeTimers();
68
+ var mockedGetVersion = jest.mocked(getVersion_1["default"]);
69
+ var mockedWithDevice = jest.mocked(deviceAccess_1.withDevice);
70
+ mockedWithDevice.mockReturnValue(function (job) { return (0, rxjs_1.from)(job(new hw_transport_1["default"]())); });
71
+ var aFirmwareInfo = {
72
+ isBootloader: false,
73
+ rawVersion: "",
74
+ targetId: 0,
75
+ mcuVersion: "",
76
+ flags: Buffer.from([])
77
+ };
78
+ var aDevice = {
79
+ deviceId: "DEVICE_ID_A",
80
+ deviceName: "DEVICE_NAME_A",
81
+ modelId: devices_1.DeviceModelId.nanoFTS,
82
+ wired: false
83
+ };
84
+ // FIXME: once we have our own definition of BleError class, this won't be needed
85
+ var BleError = /** @class */ (function (_super) {
86
+ __extends(BleError, _super);
87
+ function BleError(message, errorCode) {
88
+ var _this = _super.call(this, message) || this;
89
+ _this.errorCode = errorCode;
90
+ return _this;
91
+ }
92
+ return BleError;
93
+ }(Error));
94
+ describe("useBleDevicePairing", function () {
95
+ afterEach(function () {
96
+ mockedGetVersion.mockClear();
97
+ jest.clearAllTimers();
98
+ });
99
+ describe("When the request sent with the BLE transport to the device gets a success response", function () {
100
+ beforeEach(function () {
101
+ mockedGetVersion.mockResolvedValue(aFirmwareInfo);
102
+ });
103
+ it("should inform the hook consumer that the device is paired", function () { return __awaiter(void 0, void 0, void 0, function () {
104
+ var result;
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ result = (0, react_hooks_1.renderHook)(function () {
109
+ return (0, useBleDevicePairing_1.useBleDevicePairing)({
110
+ deviceId: aDevice.deviceId
111
+ });
112
+ }).result;
113
+ return [4 /*yield*/, (0, react_hooks_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
114
+ return __generator(this, function (_a) {
115
+ jest.advanceTimersByTime(1);
116
+ return [2 /*return*/];
117
+ });
118
+ }); })];
119
+ case 1:
120
+ _a.sent();
121
+ expect(result.current.isPaired).toBe(true);
122
+ expect(result.current.pairingError).toBeNull();
123
+ return [2 /*return*/];
124
+ }
125
+ });
126
+ }); });
127
+ });
128
+ describe("When the request sent with the BLE transport is rejected with an error", function () {
129
+ beforeEach(function () {
130
+ var bleError = new BleError("An error during pairing", 201);
131
+ mockedGetVersion.mockRejectedValue(bleError);
132
+ });
133
+ it("should inform the hook consumer an error occurred", function () { return __awaiter(void 0, void 0, void 0, function () {
134
+ var result;
135
+ return __generator(this, function (_a) {
136
+ switch (_a.label) {
137
+ case 0:
138
+ result = (0, react_hooks_1.renderHook)(function () {
139
+ return (0, useBleDevicePairing_1.useBleDevicePairing)({
140
+ deviceId: aDevice.deviceId
141
+ });
142
+ }).result;
143
+ return [4 /*yield*/, (0, react_hooks_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
144
+ return __generator(this, function (_a) {
145
+ jest.advanceTimersByTime(1);
146
+ return [2 /*return*/];
147
+ });
148
+ }); })];
149
+ case 1:
150
+ _a.sent();
151
+ expect(result.current.isPaired).toBe(false);
152
+ expect(result.current.pairingError).not.toBeNull();
153
+ return [2 /*return*/];
154
+ }
155
+ });
156
+ }); });
157
+ });
158
+ });
159
+ //# sourceMappingURL=useBleDevicePairing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBleDevicePairing.test.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { DeviceModelId } from "@ledgerhq/types-devices";
2
+ import type { Observer as TransportObserver, Subscription as TransportSubscription, DescriptorEvent } from "@ledgerhq/hw-transport";
3
+ import { TransportBleDevice, ScannedDevice, BleError } from "../types";
4
+ export declare type ScanningBleError = BleError | null;
5
+ export declare type UseBleDevicesScanningResult = {
6
+ scannedDevices: ScannedDevice[];
7
+ scanningBleError: ScanningBleError;
8
+ };
9
+ export declare type UseBleDevicesScanningDependencies = {
10
+ bleTransportListen: (observer: TransportObserver<DescriptorEvent<TransportBleDevice | null>>) => TransportSubscription;
11
+ };
12
+ export declare type UseBleDevicesScanningOptions = {
13
+ stopBleScanning?: boolean;
14
+ filterByModelIds?: DeviceModelId[];
15
+ };
16
+ /**
17
+ * Scans the BLE devices around the user
18
+ * @param filterByModelIds An array of model ids to filter on
19
+ * @param stopBleScanning Flag to stop or continue the scanning
20
+ * @returns An object containing:
21
+ * - scannedDevices: list of ScannedDevice found by the scanning
22
+ * - scanningBleError: if an error occurred, a BleError, otherwise null
23
+ */
24
+ export declare const useBleDevicesScanning: ({ bleTransportListen, stopBleScanning, filterByModelIds, }: UseBleDevicesScanningDependencies & UseBleDevicesScanningOptions) => UseBleDevicesScanningResult;
25
+ //# sourceMappingURL=useBleDevicesScanning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBleDevicesScanning.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACV,QAAQ,IAAI,iBAAiB,EAC7B,YAAY,IAAI,qBAAqB,EACrC,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvE,oBAAY,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE/C,oBAAY,2BAA2B,GAAG;IACxC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,kBAAkB,EAAE,CAClB,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,KACpE,qBAAqB,CAAC;CAC5B,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;CACpC,CAAC;AAIF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,+DAI/B,iCAAiC,GAClC,4BAA4B,KAAG,2BAoGhC,CAAC"}