@ledgerhq/device-management-kit-devtools-ui 1.1.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 (373) hide show
  1. package/LICENSE.MD +202 -0
  2. package/lib/build/index.d.ts +2 -0
  3. package/lib/build/index.d.ts.map +1 -0
  4. package/lib/build/index.js +2 -0
  5. package/lib/build/index.js.map +1 -0
  6. package/lib/build/src/Dashboard.d.ts +5 -0
  7. package/lib/build/src/Dashboard.d.ts.map +1 -0
  8. package/lib/build/src/Dashboard.js +50 -0
  9. package/lib/build/src/Dashboard.js.map +1 -0
  10. package/lib/build/src/ErrorBoundary.d.ts +15 -0
  11. package/lib/build/src/ErrorBoundary.d.ts.map +1 -0
  12. package/lib/build/src/ErrorBoundary.js +23 -0
  13. package/lib/build/src/ErrorBoundary.js.map +1 -0
  14. package/lib/build/src/PluginEvents.d.ts +9 -0
  15. package/lib/build/src/PluginEvents.d.ts.map +1 -0
  16. package/lib/build/src/PluginEvents.js +2 -0
  17. package/lib/build/src/PluginEvents.js.map +1 -0
  18. package/lib/build/src/components/DashboardFooter.d.ts +8 -0
  19. package/lib/build/src/components/DashboardFooter.d.ts.map +1 -0
  20. package/lib/build/src/components/DashboardFooter.js +31 -0
  21. package/lib/build/src/components/DashboardFooter.js.map +1 -0
  22. package/lib/build/src/components/DashboardNavigationBar.d.ts +16 -0
  23. package/lib/build/src/components/DashboardNavigationBar.d.ts.map +1 -0
  24. package/lib/build/src/components/DashboardNavigationBar.js +85 -0
  25. package/lib/build/src/components/DashboardNavigationBar.js.map +1 -0
  26. package/lib/build/src/components/DebugDrawer.d.ts +18 -0
  27. package/lib/build/src/components/DebugDrawer.d.ts.map +1 -0
  28. package/lib/build/src/components/DebugDrawer.js +69 -0
  29. package/lib/build/src/components/DebugDrawer.js.map +1 -0
  30. package/lib/build/src/components/SplitView.d.ts +12 -0
  31. package/lib/build/src/components/SplitView.d.ts.map +1 -0
  32. package/lib/build/src/components/SplitView.js +50 -0
  33. package/lib/build/src/components/SplitView.js.map +1 -0
  34. package/lib/build/src/hooks/commandDispatcher.d.ts +28 -0
  35. package/lib/build/src/hooks/commandDispatcher.d.ts.map +1 -0
  36. package/lib/build/src/hooks/commandDispatcher.js +38 -0
  37. package/lib/build/src/hooks/commandDispatcher.js.map +1 -0
  38. package/lib/build/src/hooks/connectorMessageHandlers.d.ts +34 -0
  39. package/lib/build/src/hooks/connectorMessageHandlers.d.ts.map +1 -0
  40. package/lib/build/src/hooks/connectorMessageHandlers.js +85 -0
  41. package/lib/build/src/hooks/connectorMessageHandlers.js.map +1 -0
  42. package/lib/build/src/hooks/useConnectorMessages.d.ts +60 -0
  43. package/lib/build/src/hooks/useConnectorMessages.d.ts.map +1 -0
  44. package/lib/build/src/hooks/useConnectorMessages.js +138 -0
  45. package/lib/build/src/hooks/useConnectorMessages.js.map +1 -0
  46. package/lib/build/src/screens/debugDevTools/index.d.ts +17 -0
  47. package/lib/build/src/screens/debugDevTools/index.d.ts.map +1 -0
  48. package/lib/build/src/screens/debugDevTools/index.js +48 -0
  49. package/lib/build/src/screens/debugDevTools/index.js.map +1 -0
  50. package/lib/build/src/screens/inspector/ApduSender.d.ts +10 -0
  51. package/lib/build/src/screens/inspector/ApduSender.d.ts.map +1 -0
  52. package/lib/build/src/screens/inspector/ApduSender.js +118 -0
  53. package/lib/build/src/screens/inspector/ApduSender.js.map +1 -0
  54. package/lib/build/src/screens/inspector/DeviceCard.d.ts +13 -0
  55. package/lib/build/src/screens/inspector/DeviceCard.d.ts.map +1 -0
  56. package/lib/build/src/screens/inspector/DeviceCard.js +52 -0
  57. package/lib/build/src/screens/inspector/DeviceCard.js.map +1 -0
  58. package/lib/build/src/screens/inspector/DeviceDiscoverySection.d.ts +25 -0
  59. package/lib/build/src/screens/inspector/DeviceDiscoverySection.d.ts.map +1 -0
  60. package/lib/build/src/screens/inspector/DeviceDiscoverySection.js +8 -0
  61. package/lib/build/src/screens/inspector/DeviceDiscoverySection.js.map +1 -0
  62. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.d.ts +12 -0
  63. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.d.ts.map +1 -0
  64. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.js +89 -0
  65. package/lib/build/src/screens/inspector/DiscoveredDeviceCard.js.map +1 -0
  66. package/lib/build/src/screens/inspector/MyLedgerProviderControl.d.ts +9 -0
  67. package/lib/build/src/screens/inspector/MyLedgerProviderControl.d.ts.map +1 -0
  68. package/lib/build/src/screens/inspector/MyLedgerProviderControl.js +78 -0
  69. package/lib/build/src/screens/inspector/MyLedgerProviderControl.js.map +1 -0
  70. package/lib/build/src/screens/inspector/SessionsSection.d.ts +20 -0
  71. package/lib/build/src/screens/inspector/SessionsSection.d.ts.map +1 -0
  72. package/lib/build/src/screens/inspector/SessionsSection.js +37 -0
  73. package/lib/build/src/screens/inspector/SessionsSection.js.map +1 -0
  74. package/lib/build/src/screens/inspector/index.d.ts +34 -0
  75. package/lib/build/src/screens/inspector/index.d.ts.map +1 -0
  76. package/lib/build/src/screens/inspector/index.js +26 -0
  77. package/lib/build/src/screens/inspector/index.js.map +1 -0
  78. package/lib/build/src/screens/inspector/styles.d.ts +41 -0
  79. package/lib/build/src/screens/inspector/styles.d.ts.map +1 -0
  80. package/lib/build/src/screens/inspector/styles.js +266 -0
  81. package/lib/build/src/screens/inspector/styles.js.map +1 -0
  82. package/lib/build/src/screens/logger/FilterInput.d.ts +8 -0
  83. package/lib/build/src/screens/logger/FilterInput.d.ts.map +1 -0
  84. package/lib/build/src/screens/logger/FilterInput.js +179 -0
  85. package/lib/build/src/screens/logger/FilterInput.js.map +1 -0
  86. package/lib/build/src/screens/logger/LoggerOptions.d.ts +18 -0
  87. package/lib/build/src/screens/logger/LoggerOptions.d.ts.map +1 -0
  88. package/lib/build/src/screens/logger/LoggerOptions.js +75 -0
  89. package/lib/build/src/screens/logger/LoggerOptions.js.map +1 -0
  90. package/lib/build/src/screens/logger/LoggerToolbar.d.ts +19 -0
  91. package/lib/build/src/screens/logger/LoggerToolbar.d.ts.map +1 -0
  92. package/lib/build/src/screens/logger/LoggerToolbar.js +16 -0
  93. package/lib/build/src/screens/logger/LoggerToolbar.js.map +1 -0
  94. package/lib/build/src/screens/logger/SearchInput.d.ts +15 -0
  95. package/lib/build/src/screens/logger/SearchInput.d.ts.map +1 -0
  96. package/lib/build/src/screens/logger/SearchInput.js +93 -0
  97. package/lib/build/src/screens/logger/SearchInput.js.map +1 -0
  98. package/lib/build/src/screens/logger/filterUtils.d.ts +43 -0
  99. package/lib/build/src/screens/logger/filterUtils.d.ts.map +1 -0
  100. package/lib/build/src/screens/logger/filterUtils.js +125 -0
  101. package/lib/build/src/screens/logger/filterUtils.js.map +1 -0
  102. package/lib/build/src/screens/logger/filterUtils.test.d.ts +2 -0
  103. package/lib/build/src/screens/logger/filterUtils.test.d.ts.map +1 -0
  104. package/lib/build/src/screens/logger/filterUtils.test.js +300 -0
  105. package/lib/build/src/screens/logger/filterUtils.test.js.map +1 -0
  106. package/lib/build/src/screens/logger/index.d.ts +10 -0
  107. package/lib/build/src/screens/logger/index.d.ts.map +1 -0
  108. package/lib/build/src/screens/logger/index.js +86 -0
  109. package/lib/build/src/screens/logger/index.js.map +1 -0
  110. package/lib/build/src/screens/logger/inputStyles.d.ts +18 -0
  111. package/lib/build/src/screens/logger/inputStyles.d.ts.map +1 -0
  112. package/lib/build/src/screens/logger/inputStyles.js +46 -0
  113. package/lib/build/src/screens/logger/inputStyles.js.map +1 -0
  114. package/lib/build/src/screens/logger/logsTable/LogTableCells.d.ts +13 -0
  115. package/lib/build/src/screens/logger/logsTable/LogTableCells.d.ts.map +1 -0
  116. package/lib/build/src/screens/logger/logsTable/LogTableCells.js +61 -0
  117. package/lib/build/src/screens/logger/logsTable/LogTableCells.js.map +1 -0
  118. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.d.ts +8 -0
  119. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.d.ts.map +1 -0
  120. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.js +20 -0
  121. package/lib/build/src/screens/logger/logsTable/ScrollDownButton.js.map +1 -0
  122. package/lib/build/src/screens/logger/logsTable/TableBody.d.ts +13 -0
  123. package/lib/build/src/screens/logger/logsTable/TableBody.d.ts.map +1 -0
  124. package/lib/build/src/screens/logger/logsTable/TableBody.js +58 -0
  125. package/lib/build/src/screens/logger/logsTable/TableBody.js.map +1 -0
  126. package/lib/build/src/screens/logger/logsTable/TableColumns.d.ts +3 -0
  127. package/lib/build/src/screens/logger/logsTable/TableColumns.d.ts.map +1 -0
  128. package/lib/build/src/screens/logger/logsTable/TableColumns.js +44 -0
  129. package/lib/build/src/screens/logger/logsTable/TableColumns.js.map +1 -0
  130. package/lib/build/src/screens/logger/logsTable/TableHeader.d.ts +9 -0
  131. package/lib/build/src/screens/logger/logsTable/TableHeader.d.ts.map +1 -0
  132. package/lib/build/src/screens/logger/logsTable/TableHeader.js +53 -0
  133. package/lib/build/src/screens/logger/logsTable/TableHeader.js.map +1 -0
  134. package/lib/build/src/screens/logger/logsTable/constants.d.ts +21 -0
  135. package/lib/build/src/screens/logger/logsTable/constants.d.ts.map +1 -0
  136. package/lib/build/src/screens/logger/logsTable/constants.js +21 -0
  137. package/lib/build/src/screens/logger/logsTable/constants.js.map +1 -0
  138. package/lib/build/src/screens/logger/logsTable/index.d.ts +11 -0
  139. package/lib/build/src/screens/logger/logsTable/index.d.ts.map +1 -0
  140. package/lib/build/src/screens/logger/logsTable/index.js +116 -0
  141. package/lib/build/src/screens/logger/logsTable/index.js.map +1 -0
  142. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.d.ts +4 -0
  143. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.d.ts.map +1 -0
  144. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.js +17 -0
  145. package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.js.map +1 -0
  146. package/lib/build/src/screens/logger/logsTable/useResizeObserver.d.ts +2 -0
  147. package/lib/build/src/screens/logger/logsTable/useResizeObserver.d.ts.map +1 -0
  148. package/lib/build/src/screens/logger/logsTable/useResizeObserver.js +28 -0
  149. package/lib/build/src/screens/logger/logsTable/useResizeObserver.js.map +1 -0
  150. package/lib/build/src/screens/logger/logsTable/useScrollLogic.d.ts +12 -0
  151. package/lib/build/src/screens/logger/logsTable/useScrollLogic.d.ts.map +1 -0
  152. package/lib/build/src/screens/logger/logsTable/useScrollLogic.js +86 -0
  153. package/lib/build/src/screens/logger/logsTable/useScrollLogic.js.map +1 -0
  154. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.d.ts +6 -0
  155. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.d.ts.map +1 -0
  156. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.js +17 -0
  157. package/lib/build/src/screens/logger/mapConnectorMessageToLogData.js.map +1 -0
  158. package/lib/build/src/screens/logger/types.d.ts +6 -0
  159. package/lib/build/src/screens/logger/types.d.ts.map +1 -0
  160. package/lib/build/src/screens/logger/types.js +2 -0
  161. package/lib/build/src/screens/logger/types.js.map +1 -0
  162. package/lib/build/src/screens/logger/useColumnSizeVars.d.ts +4 -0
  163. package/lib/build/src/screens/logger/useColumnSizeVars.d.ts.map +1 -0
  164. package/lib/build/src/screens/logger/useColumnSizeVars.js +17 -0
  165. package/lib/build/src/screens/logger/useColumnSizeVars.js.map +1 -0
  166. package/lib/build/src/screens/logger/useLogsDataAndOptions.d.ts +12 -0
  167. package/lib/build/src/screens/logger/useLogsDataAndOptions.d.ts.map +1 -0
  168. package/lib/build/src/screens/logger/useLogsDataAndOptions.js +36 -0
  169. package/lib/build/src/screens/logger/useLogsDataAndOptions.js.map +1 -0
  170. package/lib/build/src/screens/logger/useRecentFilters.d.ts +18 -0
  171. package/lib/build/src/screens/logger/useRecentFilters.d.ts.map +1 -0
  172. package/lib/build/src/screens/logger/useRecentFilters.js +96 -0
  173. package/lib/build/src/screens/logger/useRecentFilters.js.map +1 -0
  174. package/lib/build/src/screens/logger/useSearchState.d.ts +24 -0
  175. package/lib/build/src/screens/logger/useSearchState.d.ts.map +1 -0
  176. package/lib/build/src/screens/logger/useSearchState.js +74 -0
  177. package/lib/build/src/screens/logger/useSearchState.js.map +1 -0
  178. package/lib/build/src/shared/NotConnectedMessage.d.ts +9 -0
  179. package/lib/build/src/shared/NotConnectedMessage.d.ts.map +1 -0
  180. package/lib/build/src/shared/NotConnectedMessage.js +30 -0
  181. package/lib/build/src/shared/NotConnectedMessage.js.map +1 -0
  182. package/lib/build/src/shared/PluginEvents.d.ts +9 -0
  183. package/lib/build/src/shared/PluginEvents.d.ts.map +1 -0
  184. package/lib/build/src/shared/PluginEvents.js +2 -0
  185. package/lib/build/src/shared/PluginEvents.js.map +1 -0
  186. package/lib/build/tsconfig.build.tsbuildinfo +1 -0
  187. package/lib/cjs/index.js +2 -0
  188. package/lib/cjs/index.js.map +7 -0
  189. package/lib/cjs/package.json +73 -0
  190. package/lib/cjs/src/Dashboard.js +12 -0
  191. package/lib/cjs/src/Dashboard.js.map +7 -0
  192. package/lib/cjs/src/ErrorBoundary.js +2 -0
  193. package/lib/cjs/src/ErrorBoundary.js.map +7 -0
  194. package/lib/cjs/src/PluginEvents.js +2 -0
  195. package/lib/cjs/src/PluginEvents.js.map +7 -0
  196. package/lib/cjs/src/components/DashboardFooter.js +25 -0
  197. package/lib/cjs/src/components/DashboardFooter.js.map +7 -0
  198. package/lib/cjs/src/components/DashboardNavigationBar.js +64 -0
  199. package/lib/cjs/src/components/DashboardNavigationBar.js.map +7 -0
  200. package/lib/cjs/src/components/DebugDrawer.js +58 -0
  201. package/lib/cjs/src/components/DebugDrawer.js.map +7 -0
  202. package/lib/cjs/src/components/SplitView.js +37 -0
  203. package/lib/cjs/src/components/SplitView.js.map +7 -0
  204. package/lib/cjs/src/hooks/commandDispatcher.js +2 -0
  205. package/lib/cjs/src/hooks/commandDispatcher.js.map +7 -0
  206. package/lib/cjs/src/hooks/connectorMessageHandlers.js +2 -0
  207. package/lib/cjs/src/hooks/connectorMessageHandlers.js.map +7 -0
  208. package/lib/cjs/src/hooks/useConnectorMessages.js +2 -0
  209. package/lib/cjs/src/hooks/useConnectorMessages.js.map +7 -0
  210. package/lib/cjs/src/screens/debugDevTools/index.js +2 -0
  211. package/lib/cjs/src/screens/debugDevTools/index.js.map +7 -0
  212. package/lib/cjs/src/screens/inspector/ApduSender.js +79 -0
  213. package/lib/cjs/src/screens/inspector/ApduSender.js.map +7 -0
  214. package/lib/cjs/src/screens/inspector/DeviceCard.js +2 -0
  215. package/lib/cjs/src/screens/inspector/DeviceCard.js.map +7 -0
  216. package/lib/cjs/src/screens/inspector/DeviceDiscoverySection.js +2 -0
  217. package/lib/cjs/src/screens/inspector/DeviceDiscoverySection.js.map +7 -0
  218. package/lib/cjs/src/screens/inspector/DiscoveredDeviceCard.js +57 -0
  219. package/lib/cjs/src/screens/inspector/DiscoveredDeviceCard.js.map +7 -0
  220. package/lib/cjs/src/screens/inspector/MyLedgerProviderControl.js +40 -0
  221. package/lib/cjs/src/screens/inspector/MyLedgerProviderControl.js.map +7 -0
  222. package/lib/cjs/src/screens/inspector/SessionsSection.js +2 -0
  223. package/lib/cjs/src/screens/inspector/SessionsSection.js.map +7 -0
  224. package/lib/cjs/src/screens/inspector/index.js +9 -0
  225. package/lib/cjs/src/screens/inspector/index.js.map +7 -0
  226. package/lib/cjs/src/screens/inspector/styles.js +179 -0
  227. package/lib/cjs/src/screens/inspector/styles.js.map +7 -0
  228. package/lib/cjs/src/screens/logger/FilterInput.js +85 -0
  229. package/lib/cjs/src/screens/logger/FilterInput.js.map +7 -0
  230. package/lib/cjs/src/screens/logger/LoggerOptions.js +6 -0
  231. package/lib/cjs/src/screens/logger/LoggerOptions.js.map +7 -0
  232. package/lib/cjs/src/screens/logger/LoggerToolbar.js +9 -0
  233. package/lib/cjs/src/screens/logger/LoggerToolbar.js.map +7 -0
  234. package/lib/cjs/src/screens/logger/SearchInput.js +59 -0
  235. package/lib/cjs/src/screens/logger/SearchInput.js.map +7 -0
  236. package/lib/cjs/src/screens/logger/filterUtils.js +2 -0
  237. package/lib/cjs/src/screens/logger/filterUtils.js.map +7 -0
  238. package/lib/cjs/src/screens/logger/filterUtils.test.js +2 -0
  239. package/lib/cjs/src/screens/logger/filterUtils.test.js.map +7 -0
  240. package/lib/cjs/src/screens/logger/index.js +6 -0
  241. package/lib/cjs/src/screens/logger/index.js.map +7 -0
  242. package/lib/cjs/src/screens/logger/inputStyles.js +31 -0
  243. package/lib/cjs/src/screens/logger/inputStyles.js.map +7 -0
  244. package/lib/cjs/src/screens/logger/logsTable/LogTableCells.js +8 -0
  245. package/lib/cjs/src/screens/logger/logsTable/LogTableCells.js.map +7 -0
  246. package/lib/cjs/src/screens/logger/logsTable/ScrollDownButton.js +15 -0
  247. package/lib/cjs/src/screens/logger/logsTable/ScrollDownButton.js.map +7 -0
  248. package/lib/cjs/src/screens/logger/logsTable/TableBody.js +24 -0
  249. package/lib/cjs/src/screens/logger/logsTable/TableBody.js.map +7 -0
  250. package/lib/cjs/src/screens/logger/logsTable/TableColumns.js +2 -0
  251. package/lib/cjs/src/screens/logger/logsTable/TableColumns.js.map +7 -0
  252. package/lib/cjs/src/screens/logger/logsTable/TableHeader.js +33 -0
  253. package/lib/cjs/src/screens/logger/logsTable/TableHeader.js.map +7 -0
  254. package/lib/cjs/src/screens/logger/logsTable/constants.js +2 -0
  255. package/lib/cjs/src/screens/logger/logsTable/constants.js.map +7 -0
  256. package/lib/cjs/src/screens/logger/logsTable/index.js +26 -0
  257. package/lib/cjs/src/screens/logger/logsTable/index.js.map +7 -0
  258. package/lib/cjs/src/screens/logger/logsTable/useColumnSizeVars.js +2 -0
  259. package/lib/cjs/src/screens/logger/logsTable/useColumnSizeVars.js.map +7 -0
  260. package/lib/cjs/src/screens/logger/logsTable/useResizeObserver.js +2 -0
  261. package/lib/cjs/src/screens/logger/logsTable/useResizeObserver.js.map +7 -0
  262. package/lib/cjs/src/screens/logger/logsTable/useScrollLogic.js +2 -0
  263. package/lib/cjs/src/screens/logger/logsTable/useScrollLogic.js.map +7 -0
  264. package/lib/cjs/src/screens/logger/mapConnectorMessageToLogData.js +2 -0
  265. package/lib/cjs/src/screens/logger/mapConnectorMessageToLogData.js.map +7 -0
  266. package/lib/cjs/src/screens/logger/types.js +2 -0
  267. package/lib/cjs/src/screens/logger/types.js.map +7 -0
  268. package/lib/cjs/src/screens/logger/useColumnSizeVars.js +2 -0
  269. package/lib/cjs/src/screens/logger/useColumnSizeVars.js.map +7 -0
  270. package/lib/cjs/src/screens/logger/useLogsDataAndOptions.js +2 -0
  271. package/lib/cjs/src/screens/logger/useLogsDataAndOptions.js.map +7 -0
  272. package/lib/cjs/src/screens/logger/useRecentFilters.js +2 -0
  273. package/lib/cjs/src/screens/logger/useRecentFilters.js.map +7 -0
  274. package/lib/cjs/src/screens/logger/useSearchState.js +2 -0
  275. package/lib/cjs/src/screens/logger/useSearchState.js.map +7 -0
  276. package/lib/cjs/src/shared/NotConnectedMessage.js +24 -0
  277. package/lib/cjs/src/shared/NotConnectedMessage.js.map +7 -0
  278. package/lib/cjs/src/shared/PluginEvents.js +2 -0
  279. package/lib/cjs/src/shared/PluginEvents.js.map +7 -0
  280. package/lib/esm/index.js +2 -0
  281. package/lib/esm/index.js.map +7 -0
  282. package/lib/esm/package.json +73 -0
  283. package/lib/esm/src/Dashboard.js +12 -0
  284. package/lib/esm/src/Dashboard.js.map +7 -0
  285. package/lib/esm/src/ErrorBoundary.js +2 -0
  286. package/lib/esm/src/ErrorBoundary.js.map +7 -0
  287. package/lib/esm/src/PluginEvents.js +1 -0
  288. package/lib/esm/src/PluginEvents.js.map +7 -0
  289. package/lib/esm/src/components/DashboardFooter.js +25 -0
  290. package/lib/esm/src/components/DashboardFooter.js.map +7 -0
  291. package/lib/esm/src/components/DashboardNavigationBar.js +64 -0
  292. package/lib/esm/src/components/DashboardNavigationBar.js.map +7 -0
  293. package/lib/esm/src/components/DebugDrawer.js +58 -0
  294. package/lib/esm/src/components/DebugDrawer.js.map +7 -0
  295. package/lib/esm/src/components/SplitView.js +37 -0
  296. package/lib/esm/src/components/SplitView.js.map +7 -0
  297. package/lib/esm/src/hooks/commandDispatcher.js +2 -0
  298. package/lib/esm/src/hooks/commandDispatcher.js.map +7 -0
  299. package/lib/esm/src/hooks/connectorMessageHandlers.js +2 -0
  300. package/lib/esm/src/hooks/connectorMessageHandlers.js.map +7 -0
  301. package/lib/esm/src/hooks/useConnectorMessages.js +2 -0
  302. package/lib/esm/src/hooks/useConnectorMessages.js.map +7 -0
  303. package/lib/esm/src/screens/debugDevTools/index.js +2 -0
  304. package/lib/esm/src/screens/debugDevTools/index.js.map +7 -0
  305. package/lib/esm/src/screens/inspector/ApduSender.js +79 -0
  306. package/lib/esm/src/screens/inspector/ApduSender.js.map +7 -0
  307. package/lib/esm/src/screens/inspector/DeviceCard.js +2 -0
  308. package/lib/esm/src/screens/inspector/DeviceCard.js.map +7 -0
  309. package/lib/esm/src/screens/inspector/DeviceDiscoverySection.js +2 -0
  310. package/lib/esm/src/screens/inspector/DeviceDiscoverySection.js.map +7 -0
  311. package/lib/esm/src/screens/inspector/DiscoveredDeviceCard.js +57 -0
  312. package/lib/esm/src/screens/inspector/DiscoveredDeviceCard.js.map +7 -0
  313. package/lib/esm/src/screens/inspector/MyLedgerProviderControl.js +40 -0
  314. package/lib/esm/src/screens/inspector/MyLedgerProviderControl.js.map +7 -0
  315. package/lib/esm/src/screens/inspector/SessionsSection.js +2 -0
  316. package/lib/esm/src/screens/inspector/SessionsSection.js.map +7 -0
  317. package/lib/esm/src/screens/inspector/index.js +9 -0
  318. package/lib/esm/src/screens/inspector/index.js.map +7 -0
  319. package/lib/esm/src/screens/inspector/styles.js +179 -0
  320. package/lib/esm/src/screens/inspector/styles.js.map +7 -0
  321. package/lib/esm/src/screens/logger/FilterInput.js +85 -0
  322. package/lib/esm/src/screens/logger/FilterInput.js.map +7 -0
  323. package/lib/esm/src/screens/logger/LoggerOptions.js +6 -0
  324. package/lib/esm/src/screens/logger/LoggerOptions.js.map +7 -0
  325. package/lib/esm/src/screens/logger/LoggerToolbar.js +9 -0
  326. package/lib/esm/src/screens/logger/LoggerToolbar.js.map +7 -0
  327. package/lib/esm/src/screens/logger/SearchInput.js +59 -0
  328. package/lib/esm/src/screens/logger/SearchInput.js.map +7 -0
  329. package/lib/esm/src/screens/logger/filterUtils.js +2 -0
  330. package/lib/esm/src/screens/logger/filterUtils.js.map +7 -0
  331. package/lib/esm/src/screens/logger/filterUtils.test.js +2 -0
  332. package/lib/esm/src/screens/logger/filterUtils.test.js.map +7 -0
  333. package/lib/esm/src/screens/logger/index.js +6 -0
  334. package/lib/esm/src/screens/logger/index.js.map +7 -0
  335. package/lib/esm/src/screens/logger/inputStyles.js +31 -0
  336. package/lib/esm/src/screens/logger/inputStyles.js.map +7 -0
  337. package/lib/esm/src/screens/logger/logsTable/LogTableCells.js +8 -0
  338. package/lib/esm/src/screens/logger/logsTable/LogTableCells.js.map +7 -0
  339. package/lib/esm/src/screens/logger/logsTable/ScrollDownButton.js +15 -0
  340. package/lib/esm/src/screens/logger/logsTable/ScrollDownButton.js.map +7 -0
  341. package/lib/esm/src/screens/logger/logsTable/TableBody.js +24 -0
  342. package/lib/esm/src/screens/logger/logsTable/TableBody.js.map +7 -0
  343. package/lib/esm/src/screens/logger/logsTable/TableColumns.js +2 -0
  344. package/lib/esm/src/screens/logger/logsTable/TableColumns.js.map +7 -0
  345. package/lib/esm/src/screens/logger/logsTable/TableHeader.js +33 -0
  346. package/lib/esm/src/screens/logger/logsTable/TableHeader.js.map +7 -0
  347. package/lib/esm/src/screens/logger/logsTable/constants.js +2 -0
  348. package/lib/esm/src/screens/logger/logsTable/constants.js.map +7 -0
  349. package/lib/esm/src/screens/logger/logsTable/index.js +26 -0
  350. package/lib/esm/src/screens/logger/logsTable/index.js.map +7 -0
  351. package/lib/esm/src/screens/logger/logsTable/useColumnSizeVars.js +2 -0
  352. package/lib/esm/src/screens/logger/logsTable/useColumnSizeVars.js.map +7 -0
  353. package/lib/esm/src/screens/logger/logsTable/useResizeObserver.js +2 -0
  354. package/lib/esm/src/screens/logger/logsTable/useResizeObserver.js.map +7 -0
  355. package/lib/esm/src/screens/logger/logsTable/useScrollLogic.js +2 -0
  356. package/lib/esm/src/screens/logger/logsTable/useScrollLogic.js.map +7 -0
  357. package/lib/esm/src/screens/logger/mapConnectorMessageToLogData.js +2 -0
  358. package/lib/esm/src/screens/logger/mapConnectorMessageToLogData.js.map +7 -0
  359. package/lib/esm/src/screens/logger/types.js +1 -0
  360. package/lib/esm/src/screens/logger/types.js.map +7 -0
  361. package/lib/esm/src/screens/logger/useColumnSizeVars.js +2 -0
  362. package/lib/esm/src/screens/logger/useColumnSizeVars.js.map +7 -0
  363. package/lib/esm/src/screens/logger/useLogsDataAndOptions.js +2 -0
  364. package/lib/esm/src/screens/logger/useLogsDataAndOptions.js.map +7 -0
  365. package/lib/esm/src/screens/logger/useRecentFilters.js +2 -0
  366. package/lib/esm/src/screens/logger/useRecentFilters.js.map +7 -0
  367. package/lib/esm/src/screens/logger/useSearchState.js +2 -0
  368. package/lib/esm/src/screens/logger/useSearchState.js.map +7 -0
  369. package/lib/esm/src/shared/NotConnectedMessage.js +24 -0
  370. package/lib/esm/src/shared/NotConnectedMessage.js.map +7 -0
  371. package/lib/esm/src/shared/PluginEvents.js +1 -0
  372. package/lib/esm/src/shared/PluginEvents.js.map +7 -0
  373. package/package.json +73 -0
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var e=Object.prototype.hasOwnProperty;var f=(a,r)=>{for(var d in r)h(a,d,{get:r[d],enumerable:!0})},i=(a,r,d,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of D(r))!e.call(a,o)&&o!==d&&h(a,o,{get:()=>r[o],enumerable:!(s=t(r,o))||s.enumerable});return a};var m=a=>i(h({},"__esModule",{value:!0}),a);var n={};f(n,{Dashboard:()=>b.DashboardWithErrorBoundary});module.exports=m(n);var b=require("./src/Dashboard");0&&(module.exports={Dashboard});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../index.ts"],
4
+ "sourcesContent": ["export { DashboardWithErrorBoundary as Dashboard } from \"./src/Dashboard\";\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6DAAAE,EAAAF,GAAA,IAAAG,EAAwD",
6
+ "names": ["index_exports", "__export", "__toCommonJS", "import_Dashboard"]
7
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "dependencies": {
3
+ "@ledgerhq/react-ui": "catalog:",
4
+ "@tanstack/react-table": "8.20.5",
5
+ "@tanstack/react-virtual": "3.10.8",
6
+ "antd": "5.20.0",
7
+ "react-inspector": "9.0.0",
8
+ "react-resizable-panels": "^4.4.1",
9
+ "rxjs": "catalog:",
10
+ "styled-components": "catalog:"
11
+ },
12
+ "devDependencies": {
13
+ "@ledgerhq/device-management-kit": "workspace:^",
14
+ "@ledgerhq/device-management-kit-devtools-core": "workspace:^",
15
+ "@ledgerhq/eslint-config-dsdk": "workspace:^",
16
+ "@ledgerhq/ldmk-tool": "workspace:^",
17
+ "@ledgerhq/prettier-config-dsdk": "workspace:^",
18
+ "@ledgerhq/tsconfig-dsdk": "workspace:^",
19
+ "@ledgerhq/vitest-config-dmk": "workspace:^",
20
+ "@types/react": "catalog:",
21
+ "@types/react-dom": "catalog:",
22
+ "@types/styled-components": "catalog:",
23
+ "@types/styled-system": "^5.1.15",
24
+ "react": "catalog:",
25
+ "react-dom": "catalog:"
26
+ },
27
+ "exports": {
28
+ ".": {
29
+ "import": "./lib/esm/index.js",
30
+ "require": "./lib/cjs/index.js",
31
+ "types": "./lib/types/index.d.ts"
32
+ },
33
+ "./*": {
34
+ "import": "./lib/esm/*",
35
+ "require": "./lib/cjs/*",
36
+ "types": "./lib/types/*"
37
+ }
38
+ },
39
+ "files": [
40
+ "./lib"
41
+ ],
42
+ "license": "Apache-2.0",
43
+ "main": "lib/index.js",
44
+ "name": "@ledgerhq/device-management-kit-devtools-ui",
45
+ "peerDependencies": {
46
+ "@ledgerhq/device-management-kit": "^1.2.0",
47
+ "@ledgerhq/device-management-kit-devtools-core": "workspace:^",
48
+ "react": "catalog:",
49
+ "react-dom": "catalog:"
50
+ },
51
+ "private": false,
52
+ "repository": {
53
+ "type": "git",
54
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
55
+ },
56
+ "scripts": {
57
+ "build": "pnpm ldmk-tool build --entryPoints index.ts,src/*.tsx,src/*.ts,src/**/*.tsx,src/**/*.ts --tsconfig tsconfig.build.json",
58
+ "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
59
+ "lint": "eslint",
60
+ "lint:fix": "pnpm lint --fix",
61
+ "prebuild": "rimraf lib",
62
+ "prettier": "prettier . --check",
63
+ "prettier:fix": "prettier . --write",
64
+ "test": "vitest run",
65
+ "test:coverage": "vitest run --coverage",
66
+ "test:watch": "vitest",
67
+ "typecheck": "tsc --noEmit",
68
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/*.tsx,src/*.ts,src/**/*.tsx,src/**/*.ts --tsconfig tsconfig.build.json",
69
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
70
+ },
71
+ "types": "lib/index.d.ts",
72
+ "version": "1.1.1"
73
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";var J=Object.create;var a=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Y=(e,r)=>{for(var s in r)a(e,s,{get:r[s],enumerable:!0})},C=(e,r,s,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of Q(r))!X.call(e,t)&&t!==s&&a(e,t,{get:()=>r[t],enumerable:!(i=K(r,t))||i.enumerable});return e};var Z=(e,r,s)=>(s=e!=null?J(U(e)):{},C(r||!e||!e.__esModule?a(s,"default",{value:e,enumerable:!0}):s,e)),_=e=>C(a({},"__esModule",{value:!0}),e);var re={};Y(re,{DashboardWithErrorBoundary:()=>oe});module.exports=_(re);var l=require("react"),b=require("@ledgerhq/react-ui/styles/index"),v=Z(require("styled-components")),S=require("./components/DashboardFooter"),n=require("./components/DashboardNavigationBar"),y=require("./components/DebugDrawer"),p=require("./components/SplitView"),L=require("./hooks/useConnectorMessages"),M=require("./screens/inspector"),P=require("./screens/logger"),A=require("./ErrorBoundary"),o=require("react/jsx-runtime");const $=v.default.div`
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100vh;
5
+ overflow: hidden;
6
+ `,j=v.default.div`
7
+ display: flex;
8
+ flex-direction: column;
9
+ flex: 1;
10
+ overflow: hidden;
11
+ `,ee=({connector:e})=>{const{receivedMessages:r,sentMessages:s,logs:i,connectedDevices:t,sessionStates:w,discoveredDevices:x,isListening:B,isActivelyDiscovering:I,isLoggerConnected:u,isInspectorConnected:f,providerValue:O,apduResponses:R,sendMessage:m,clearLogs:V,startListening:E,stopListening:z,startDiscovering:F,stopDiscovering:H,connectDevice:N,getProvider:T,setProvider:W,sendApdu:k}=(0,L.useConnectorMessages)(e),[D,q]=(0,l.useState)(n.DashboardScreen.logs),[d,h]=(0,l.useState)(!1),c=(0,o.jsx)(P.Logger,{logs:i,clearLogs:V,isConnected:u}),g=(0,o.jsx)(M.Inspector,{devices:t,sessionStates:w,discoveredDevices:x,isListening:B,isActivelyDiscovering:I,sendMessage:m,isConnected:f,startListening:E,stopListening:z,startDiscovering:F,stopDiscovering:H,connectDevice:N,providerValue:O,getProvider:T,setProvider:W,sendApdu:k,apduResponses:R}),G=(()=>{switch(D){case n.DashboardScreen.logs:return c;case n.DashboardScreen.inspector:return g;case n.DashboardScreen.splitHorizontal:return(0,o.jsx)(p.SplitView,{direction:"horizontal",first:c,second:g});case n.DashboardScreen.splitVertical:return(0,o.jsx)(p.SplitView,{direction:"vertical",first:c,second:g});default:return c}})();return(0,o.jsxs)($,{children:[(0,o.jsx)(n.DashboardNavigationBar,{currentScreen:D,onScreenChange:q,isLoggerConnected:u,isInspectorConnected:f}),(0,o.jsx)(j,{children:G}),(0,o.jsx)(S.DashboardFooter,{isDebugOpen:d,onToggleDebug:()=>h(!d)}),(0,o.jsx)(y.DebugDrawer,{isOpen:d,onClose:()=>h(!1),sentMessages:s,receivedMessages:r,sendMessage:m})]})};function oe({connector:e}){return(0,o.jsx)(A.ErrorBoundary,{children:(0,o.jsx)(b.StyleProvider,{selectedPalette:"light",children:(0,o.jsx)(ee,{connector:e})})})}0&&(module.exports={DashboardWithErrorBoundary});
12
+ //# sourceMappingURL=Dashboard.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Dashboard.tsx"],
4
+ "sourcesContent": ["import React, { useState } from \"react\";\nimport { type Connector } from \"@ledgerhq/device-management-kit-devtools-core\";\nimport { StyleProvider } from \"@ledgerhq/react-ui/styles/index\";\nimport styled from \"styled-components\";\n\nimport { DashboardFooter } from \"./components/DashboardFooter\";\nimport {\n DashboardNavigationBar,\n DashboardScreen,\n} from \"./components/DashboardNavigationBar\";\nimport { DebugDrawer } from \"./components/DebugDrawer\";\nimport { SplitView } from \"./components/SplitView\";\nimport { useConnectorMessages } from \"./hooks/useConnectorMessages\";\nimport { Inspector } from \"./screens/inspector\";\nimport { Logger } from \"./screens/logger\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\n\nconst DashboardContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100vh;\n overflow: hidden;\n`;\n\nconst ContentArea = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n`;\n\nconst Dashboard: React.FC<{ connector: Connector }> = ({ connector }) => {\n const {\n receivedMessages,\n sentMessages,\n logs,\n connectedDevices,\n sessionStates,\n discoveredDevices,\n isListening,\n isActivelyDiscovering,\n isLoggerConnected,\n isInspectorConnected,\n providerValue,\n apduResponses,\n sendMessage,\n clearLogs,\n startListening,\n stopListening,\n startDiscovering,\n stopDiscovering,\n connectDevice,\n getProvider,\n setProvider,\n sendApdu,\n } = useConnectorMessages(connector);\n\n const [currentScreen, setCurrentScreen] = useState<DashboardScreen>(\n DashboardScreen.logs,\n );\n const [isDebugOpen, setIsDebugOpen] = useState(false);\n\n const logger = (\n <Logger logs={logs} clearLogs={clearLogs} isConnected={isLoggerConnected} />\n );\n\n const inspector = (\n <Inspector\n devices={connectedDevices}\n sessionStates={sessionStates}\n discoveredDevices={discoveredDevices}\n isListening={isListening}\n isActivelyDiscovering={isActivelyDiscovering}\n sendMessage={sendMessage}\n isConnected={isInspectorConnected}\n startListening={startListening}\n stopListening={stopListening}\n startDiscovering={startDiscovering}\n stopDiscovering={stopDiscovering}\n connectDevice={connectDevice}\n providerValue={providerValue}\n getProvider={getProvider}\n setProvider={setProvider}\n sendApdu={sendApdu}\n apduResponses={apduResponses}\n />\n );\n\n const content = (() => {\n switch (currentScreen) {\n case DashboardScreen.logs:\n return logger;\n case DashboardScreen.inspector:\n return inspector;\n case DashboardScreen.splitHorizontal:\n return (\n <SplitView direction=\"horizontal\" first={logger} second={inspector} />\n );\n case DashboardScreen.splitVertical:\n return (\n <SplitView direction=\"vertical\" first={logger} second={inspector} />\n );\n default:\n return logger;\n }\n })();\n\n return (\n <DashboardContainer>\n <DashboardNavigationBar\n currentScreen={currentScreen}\n onScreenChange={setCurrentScreen}\n isLoggerConnected={isLoggerConnected}\n isInspectorConnected={isInspectorConnected}\n />\n <ContentArea>{content}</ContentArea>\n <DashboardFooter\n isDebugOpen={isDebugOpen}\n onToggleDebug={() => setIsDebugOpen(!isDebugOpen)}\n />\n <DebugDrawer\n isOpen={isDebugOpen}\n onClose={() => setIsDebugOpen(false)}\n sentMessages={sentMessages}\n receivedMessages={receivedMessages}\n sendMessage={sendMessage}\n />\n </DashboardContainer>\n );\n};\n\nexport function DashboardWithErrorBoundary({\n connector,\n}: {\n connector: Connector;\n}) {\n return (\n <ErrorBoundary>\n <StyleProvider selectedPalette=\"light\">\n <Dashboard connector={connector} />\n </StyleProvider>\n </ErrorBoundary>\n );\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,gCAAAE,KAAA,eAAAC,EAAAH,IAAA,IAAAI,EAAgC,iBAEhCC,EAA8B,2CAC9BC,EAAmB,gCAEnBC,EAAgC,wCAChCC,EAGO,+CACPC,EAA4B,oCAC5BC,EAA0B,kCAC1BC,EAAqC,wCACrCC,EAA0B,+BAC1BC,EAAuB,4BACvBC,EAA8B,2BAgD1BC,EAAA,6BA9CJ,MAAMC,EAAqB,EAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5BC,EAAc,EAAAD,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrBE,GAAgD,CAAC,CAAE,UAAAC,CAAU,IAAM,CACvE,KAAM,CACJ,iBAAAC,EACA,aAAAC,EACA,KAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,YAAAC,EACA,sBAAAC,EACA,kBAAAC,EACA,qBAAAC,EACA,cAAAC,EACA,cAAAC,EACA,YAAAC,EACA,UAAAC,EACA,eAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,YAAAC,EACA,YAAAC,EACA,SAAAC,CACF,KAAI,wBAAqBtB,CAAS,EAE5B,CAACuB,EAAeC,CAAgB,KAAI,YACxC,kBAAgB,IAClB,EACM,CAACC,EAAaC,CAAc,KAAI,YAAS,EAAK,EAE9CC,KACJ,OAAC,UAAO,KAAMxB,EAAM,UAAWW,EAAW,YAAaL,EAAmB,EAGtEmB,KACJ,OAAC,aACC,QAASxB,EACT,cAAeC,EACf,kBAAmBC,EACnB,YAAaC,EACb,sBAAuBC,EACvB,YAAaK,EACb,YAAaH,EACb,eAAgBK,EAChB,cAAeC,EACf,iBAAkBC,EAClB,gBAAiBC,EACjB,cAAeC,EACf,cAAeR,EACf,YAAaS,EACb,YAAaC,EACb,SAAUC,EACV,cAAeV,EACjB,EAGIiB,GAAW,IAAM,CACrB,OAAQN,EAAe,CACrB,KAAK,kBAAgB,KACnB,OAAOI,EACT,KAAK,kBAAgB,UACnB,OAAOC,EACT,KAAK,kBAAgB,gBACnB,SACE,OAAC,aAAU,UAAU,aAAa,MAAOD,EAAQ,OAAQC,EAAW,EAExE,KAAK,kBAAgB,cACnB,SACE,OAAC,aAAU,UAAU,WAAW,MAAOD,EAAQ,OAAQC,EAAW,EAEtE,QACE,OAAOD,CACX,CACF,GAAG,EAEH,SACE,QAAC/B,EAAA,CACC,oBAAC,0BACC,cAAe2B,EACf,eAAgBC,EAChB,kBAAmBf,EACnB,qBAAsBC,EACxB,KACA,OAACZ,EAAA,CAAa,SAAA+B,EAAQ,KACtB,OAAC,mBACC,YAAaJ,EACb,cAAe,IAAMC,EAAe,CAACD,CAAW,EAClD,KACA,OAAC,eACC,OAAQA,EACR,QAAS,IAAMC,EAAe,EAAK,EACnC,aAAcxB,EACd,iBAAkBD,EAClB,YAAaY,EACf,GACF,CAEJ,EAEO,SAAS/B,GAA2B,CACzC,UAAAkB,CACF,EAEG,CACD,SACE,OAAC,iBACC,mBAAC,iBAAc,gBAAgB,QAC7B,mBAACD,GAAA,CAAU,UAAWC,EAAW,EACnC,EACF,CAEJ",
6
+ "names": ["Dashboard_exports", "__export", "DashboardWithErrorBoundary", "__toCommonJS", "import_react", "import_styles", "import_styled_components", "import_DashboardFooter", "import_DashboardNavigationBar", "import_DebugDrawer", "import_SplitView", "import_useConnectorMessages", "import_inspector", "import_logger", "import_ErrorBoundary", "import_jsx_runtime", "DashboardContainer", "styled", "ContentArea", "Dashboard", "connector", "receivedMessages", "sentMessages", "logs", "connectedDevices", "sessionStates", "discoveredDevices", "isListening", "isActivelyDiscovering", "isLoggerConnected", "isInspectorConnected", "providerValue", "apduResponses", "sendMessage", "clearLogs", "startListening", "stopListening", "startDiscovering", "stopDiscovering", "connectDevice", "getProvider", "setProvider", "sendApdu", "currentScreen", "setCurrentScreen", "isDebugOpen", "setIsDebugOpen", "logger", "inspector", "content"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=Object.create;var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var E=(r,e)=>{for(var t in e)a(r,t,{get:e[t],enumerable:!0})},h=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of c(e))!u.call(r,s)&&s!==t&&a(r,s,{get:()=>e[s],enumerable:!(i=p(e,s))||i.enumerable});return r};var f=(r,e,t)=>(t=r!=null?l(d(r)):{},h(e||!r||!r.__esModule?a(t,"default",{value:r,enumerable:!0}):t,r)),y=r=>h(a({},"__esModule",{value:!0}),r);var v={};E(v,{ErrorBoundary:()=>m});module.exports=y(v);var n=f(require("react")),o=require("react/jsx-runtime");class m extends n.default.Component{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(e,t){this.setState({hasError:!0,error:e})}reset(){this.setState({hasError:!1})}render(){return this.state.hasError?(console.log("rendering error boundary",this.state.error),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100vh"},children:[(0,o.jsx)("button",{onClick:()=>this.reset(),children:"Retry"}),(0,o.jsx)("pre",{children:this.state.error.message}),(0,o.jsx)("pre",{children:this.state.error.stack})]})):this.props.children}}0&&(module.exports={ErrorBoundary});
2
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ErrorBoundary.tsx"],
4
+ "sourcesContent": ["import React from \"react\";\n\ntype State =\n | {\n hasError: true;\n error: Error;\n }\n | {\n hasError: false;\n };\n\nexport class ErrorBoundary extends React.Component<\n React.PropsWithChildren,\n State\n> {\n constructor(props: React.PropsWithChildren) {\n super(props);\n this.state = { hasError: false };\n }\n\n override componentDidCatch(error: Error, _info: React.ErrorInfo) {\n this.setState({ hasError: true, error: error });\n }\n\n reset() {\n this.setState({ hasError: false });\n }\n\n override render() {\n if (this.state.hasError) {\n console.log(\"rendering error boundary\", this.state.error);\n // You can render any custom fallback UI\n return (\n <div\n style={{ display: \"flex\", flexDirection: \"column\", height: \"100vh\" }}\n >\n <button onClick={() => this.reset()}>Retry</button>\n <pre>{this.state.error.message}</pre>\n <pre>{this.state.error.stack}</pre>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAiCVC,EAAA,6BAtBD,MAAMH,UAAsB,EAAAI,QAAM,SAGvC,CACA,YAAYC,EAAgC,CAC1C,MAAMA,CAAK,EACX,KAAK,MAAQ,CAAE,SAAU,EAAM,CACjC,CAES,kBAAkBC,EAAcC,EAAwB,CAC/D,KAAK,SAAS,CAAE,SAAU,GAAM,MAAOD,CAAM,CAAC,CAChD,CAEA,OAAQ,CACN,KAAK,SAAS,CAAE,SAAU,EAAM,CAAC,CACnC,CAES,QAAS,CAChB,OAAI,KAAK,MAAM,UACb,QAAQ,IAAI,2BAA4B,KAAK,MAAM,KAAK,KAGtD,QAAC,OACC,MAAO,CAAE,QAAS,OAAQ,cAAe,SAAU,OAAQ,OAAQ,EAEnE,oBAAC,UAAO,QAAS,IAAM,KAAK,MAAM,EAAG,iBAAK,KAC1C,OAAC,OAAK,cAAK,MAAM,MAAM,QAAQ,KAC/B,OAAC,OAAK,cAAK,MAAM,MAAM,MAAM,GAC/B,GAIG,KAAK,MAAM,QACpB,CACF",
6
+ "names": ["ErrorBoundary_exports", "__export", "ErrorBoundary", "__toCommonJS", "import_react", "import_jsx_runtime", "React", "props", "error", "_info"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var g=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var p=(n,e,i,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of a(e))!o.call(n,s)&&s!==i&&g(n,s,{get:()=>e[s],enumerable:!(t=r(e,s))||t.enumerable});return n};var d=n=>p(g({},"__esModule",{value:!0}),n);var x={};module.exports=d(x);
2
+ //# sourceMappingURL=PluginEvents.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/PluginEvents.ts"],
4
+ "sourcesContent": ["export type Message = {\n type: string;\n payload: string;\n};\n\nexport interface PluginEvents extends Record<string, unknown> {\n init: string;\n message: Message;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["PluginEvents_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";var s=Object.create;var t=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var u=(o,e)=>{for(var r in e)t(o,r,{get:e[r],enumerable:!0})},i=(o,e,r,f)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of p(e))!c.call(o,n)&&n!==r&&t(o,n,{get:()=>e[n],enumerable:!(f=b(e,n))||f.enumerable});return o};var g=(o,e,r)=>(r=o!=null?s(l(o)):{},i(e||!o||!o.__esModule?t(r,"default",{value:o,enumerable:!0}):r,o)),x=o=>i(t({},"__esModule",{value:!0}),o);var h={};u(h,{DashboardFooter:()=>F});module.exports=x(h);var d=g(require("styled-components")),a=require("react/jsx-runtime");const D=d.default.div`
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: center;
5
+ justify-content: flex-end;
6
+ padding: 6px 12px;
7
+ background: #f0f0f0;
8
+ border-top: 1px solid #ddd;
9
+ flex-shrink: 0;
10
+ `,$=d.default.button`
11
+ padding: 4px 10px;
12
+ border: 1px solid ${({$isOpen:o})=>o?"#ff9800":"#bbb"};
13
+ border-radius: 4px;
14
+ background: ${({$isOpen:o})=>o?"#fff3e0":"#fafafa"};
15
+ color: ${({$isOpen:o})=>o?"#e65100":"#666"};
16
+ font-size: 12px;
17
+ cursor: pointer;
18
+ transition: all 0.15s ease;
19
+
20
+ &:hover {
21
+ background: ${({$isOpen:o})=>o?"#ffe0b2":"#f0f0f0"};
22
+ border-color: ${({$isOpen:o})=>o?"#ff9800":"#999"};
23
+ }
24
+ `,F=({isDebugOpen:o,onToggleDebug:e})=>(0,a.jsx)(D,{children:(0,a.jsx)($,{$isOpen:o,onClick:e,children:o?"Close Debug Panel":"Debug DevTools"})});0&&(module.exports={DashboardFooter});
25
+ //# sourceMappingURL=DashboardFooter.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/DashboardFooter.tsx"],
4
+ "sourcesContent": ["import React from \"react\";\nimport styled from \"styled-components\";\n\nconst FooterContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n padding: 6px 12px;\n background: #f0f0f0;\n border-top: 1px solid #ddd;\n flex-shrink: 0;\n`;\n\nconst DebugButton = styled.button<{ $isOpen: boolean }>`\n padding: 4px 10px;\n border: 1px solid ${({ $isOpen }) => ($isOpen ? \"#ff9800\" : \"#bbb\")};\n border-radius: 4px;\n background: ${({ $isOpen }) => ($isOpen ? \"#fff3e0\" : \"#fafafa\")};\n color: ${({ $isOpen }) => ($isOpen ? \"#e65100\" : \"#666\")};\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s ease;\n\n &:hover {\n background: ${({ $isOpen }) => ($isOpen ? \"#ffe0b2\" : \"#f0f0f0\")};\n border-color: ${({ $isOpen }) => ($isOpen ? \"#ff9800\" : \"#999\")};\n }\n`;\n\ntype DashboardFooterProps = {\n isDebugOpen: boolean;\n onToggleDebug: () => void;\n};\n\nexport const DashboardFooter: React.FC<DashboardFooterProps> = ({\n isDebugOpen,\n onToggleDebug,\n}) => {\n return (\n <FooterContainer>\n <DebugButton $isOpen={isDebugOpen} onClick={onToggleDebug}>\n {isDebugOpen ? \"Close Debug Panel\" : \"Debug DevTools\"}\n </DebugButton>\n </FooterContainer>\n );\n};\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmB,gCAwCbC,EAAA,6BAtCN,MAAMC,EAAkB,EAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzBC,EAAc,EAAAD,QAAO;AAAA;AAAA,sBAEL,CAAC,CAAE,QAAAE,CAAQ,IAAOA,EAAU,UAAY,MAAO;AAAA;AAAA,gBAErD,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,SAAU;AAAA,WACvD,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMxC,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,SAAU;AAAA,oBAChD,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,MAAO;AAAA;AAAA,EAStDP,EAAkD,CAAC,CAC9D,YAAAQ,EACA,cAAAC,CACF,OAEI,OAACL,EAAA,CACC,mBAACE,EAAA,CAAY,QAASE,EAAa,QAASC,EACzC,SAAAD,EAAc,oBAAsB,iBACvC,EACF",
6
+ "names": ["DashboardFooter_exports", "__export", "DashboardFooter", "__toCommonJS", "import_styled_components", "import_jsx_runtime", "FooterContainer", "styled", "DebugButton", "$isOpen", "isDebugOpen", "onToggleDebug"]
7
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";var h=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var $=(o,i)=>{for(var e in i)l(o,e,{get:i[e],enumerable:!0})},s=(o,i,e,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of f(i))!u.call(o,r)&&r!==e&&l(o,r,{get:()=>i[r],enumerable:!(a=x(i,r))||a.enumerable});return o};var w=(o,i,e)=>(e=o!=null?h(v(o)):{},s(i||!o||!o.__esModule?l(e,"default",{value:o,enumerable:!0}):e,o)),y=o=>s(l({},"__esModule",{value:!0}),o);var D={};$(D,{DashboardNavigationBar:()=>N,DashboardScreen:()=>g});module.exports=y(D);var n=w(require("styled-components")),t=require("react/jsx-runtime"),g=(r=>(r.logs="logs",r.inspector="inspector",r.splitHorizontal="splitHorizontal",r.splitVertical="splitVertical",r))(g||{});const k=n.default.div`
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: center;
5
+ gap: 8px;
6
+ padding: 8px 12px;
7
+ background: #f8f8f8;
8
+ border-bottom: 1px solid #e0e0e0;
9
+ flex-shrink: 0;
10
+ `,d=n.default.div`
11
+ display: flex;
12
+ flex-direction: row;
13
+ align-items: center;
14
+ gap: 4px;
15
+ `,m=n.default.div`
16
+ width: 1px;
17
+ height: 24px;
18
+ background: #ddd;
19
+ margin: 0 8px;
20
+ `,c=n.default.button`
21
+ padding: 6px 12px;
22
+ border: 1px solid ${({$isActive:o})=>o?"#2196F3":"#ddd"};
23
+ border-radius: 4px;
24
+ background: ${({$isActive:o})=>o?"#e3f2fd":"white"};
25
+ color: ${({$isActive:o})=>o?"#1976d2":"#333"};
26
+ font-weight: ${({$isActive:o})=>o?"600":"normal"};
27
+ font-size: 13px;
28
+ cursor: pointer;
29
+ opacity: ${({$isConnected:o})=>o===!1?.5:1};
30
+ transition: all 0.15s ease;
31
+
32
+ &:hover {
33
+ background: ${({$isActive:o})=>o?"#e3f2fd":"#f5f5f5"};
34
+ border-color: ${({$isActive:o})=>o?"#2196F3":"#bbb"};
35
+ }
36
+ `,p=n.default.button`
37
+ padding: 6px 8px;
38
+ border: 1px solid ${({$isActive:o})=>o?"#2196F3":"#ddd"};
39
+ border-radius: 4px;
40
+ background: ${({$isActive:o})=>o?"#e3f2fd":"white"};
41
+ color: ${({$isActive:o})=>o?"#1976d2":"#666"};
42
+ cursor: pointer;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ transition: all 0.15s ease;
47
+
48
+ &:hover {
49
+ background: ${({$isActive:o})=>o?"#e3f2fd":"#f5f5f5"};
50
+ border-color: ${({$isActive:o})=>o?"#2196F3":"#bbb"};
51
+ }
52
+ `,b=n.default.span`
53
+ display: inline-block;
54
+ width: 8px;
55
+ height: 8px;
56
+ border-radius: 50%;
57
+ background: ${({$connected:o})=>o?"#4CAF50":"#ff9800"};
58
+ margin-right: 6px;
59
+ `,C=n.default.span`
60
+ font-size: 12px;
61
+ color: #666;
62
+ margin-right: 4px;
63
+ `,S=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",children:[(0,t.jsx)("rect",{x:"2",y:"2",width:"12",height:"5",rx:"1",opacity:"0.6"}),(0,t.jsx)("rect",{x:"2",y:"9",width:"12",height:"5",rx:"1"})]}),B=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",children:[(0,t.jsx)("rect",{x:"2",y:"2",width:"5",height:"12",rx:"1",opacity:"0.6"}),(0,t.jsx)("rect",{x:"9",y:"2",width:"5",height:"12",rx:"1"})]}),N=({currentScreen:o,onScreenChange:i,isLoggerConnected:e,isInspectorConnected:a})=>(0,t.jsxs)(k,{children:[(0,t.jsxs)(d,{children:[(0,t.jsxs)(c,{$isActive:o==="logs",$isConnected:e,onClick:()=>i("logs"),children:[(0,t.jsx)(b,{$connected:e}),"Logger"]}),(0,t.jsxs)(c,{$isActive:o==="inspector",$isConnected:a,onClick:()=>i("inspector"),children:[(0,t.jsx)(b,{$connected:a}),"Inspector"]})]}),(0,t.jsx)(m,{}),(0,t.jsxs)(d,{children:[(0,t.jsx)(C,{children:"Split:"}),(0,t.jsx)(p,{$isActive:o==="splitHorizontal",onClick:()=>i("splitHorizontal"),title:"Split Horizontal (top/bottom)",children:(0,t.jsx)(S,{})}),(0,t.jsx)(p,{$isActive:o==="splitVertical",onClick:()=>i("splitVertical"),title:"Split Vertical (left/right)",children:(0,t.jsx)(B,{})})]})]});0&&(module.exports={DashboardNavigationBar,DashboardScreen});
64
+ //# sourceMappingURL=DashboardNavigationBar.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/DashboardNavigationBar.tsx"],
4
+ "sourcesContent": ["import React from \"react\";\nimport styled from \"styled-components\";\n\nexport enum DashboardScreen {\n logs = \"logs\",\n inspector = \"inspector\",\n splitHorizontal = \"splitHorizontal\",\n splitVertical = \"splitVertical\",\n}\n\nconst NavContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f8f8;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n`;\n\nconst NavGroup = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 4px;\n`;\n\nconst Divider = styled.div`\n width: 1px;\n height: 24px;\n background: #ddd;\n margin: 0 8px;\n`;\n\nconst NavButton = styled.button<{\n $isActive?: boolean;\n $isConnected?: boolean;\n}>`\n padding: 6px 12px;\n border: 1px solid ${({ $isActive }) => ($isActive ? \"#2196F3\" : \"#ddd\")};\n border-radius: 4px;\n background: ${({ $isActive }) => ($isActive ? \"#e3f2fd\" : \"white\")};\n color: ${({ $isActive }) => ($isActive ? \"#1976d2\" : \"#333\")};\n font-weight: ${({ $isActive }) => ($isActive ? \"600\" : \"normal\")};\n font-size: 13px;\n cursor: pointer;\n opacity: ${({ $isConnected }) => ($isConnected === false ? 0.5 : 1)};\n transition: all 0.15s ease;\n\n &:hover {\n background: ${({ $isActive }) => ($isActive ? \"#e3f2fd\" : \"#f5f5f5\")};\n border-color: ${({ $isActive }) => ($isActive ? \"#2196F3\" : \"#bbb\")};\n }\n`;\n\nconst SplitButton = styled.button<{ $isActive?: boolean }>`\n padding: 6px 8px;\n border: 1px solid ${({ $isActive }) => ($isActive ? \"#2196F3\" : \"#ddd\")};\n border-radius: 4px;\n background: ${({ $isActive }) => ($isActive ? \"#e3f2fd\" : \"white\")};\n color: ${({ $isActive }) => ($isActive ? \"#1976d2\" : \"#666\")};\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n\n &:hover {\n background: ${({ $isActive }) => ($isActive ? \"#e3f2fd\" : \"#f5f5f5\")};\n border-color: ${({ $isActive }) => ($isActive ? \"#2196F3\" : \"#bbb\")};\n }\n`;\n\nconst ConnectionIndicator = styled.span<{ $connected: boolean }>`\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${({ $connected }) => ($connected ? \"#4CAF50\" : \"#ff9800\")};\n margin-right: 6px;\n`;\n\nconst SplitLabel = styled.span`\n font-size: 12px;\n color: #666;\n margin-right: 4px;\n`;\n\n// Simple SVG icons for split buttons\nconst SplitHorizontalIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <rect x=\"2\" y=\"2\" width=\"12\" height=\"5\" rx=\"1\" opacity=\"0.6\" />\n <rect x=\"2\" y=\"9\" width=\"12\" height=\"5\" rx=\"1\" />\n </svg>\n);\n\nconst SplitVerticalIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <rect x=\"2\" y=\"2\" width=\"5\" height=\"12\" rx=\"1\" opacity=\"0.6\" />\n <rect x=\"9\" y=\"2\" width=\"5\" height=\"12\" rx=\"1\" />\n </svg>\n);\n\ntype DashboardNavigationBarProps = {\n currentScreen: DashboardScreen;\n onScreenChange: (screen: DashboardScreen) => void;\n isLoggerConnected: boolean;\n isInspectorConnected: boolean;\n};\n\nexport const DashboardNavigationBar: React.FC<DashboardNavigationBarProps> = ({\n currentScreen,\n onScreenChange,\n isLoggerConnected,\n isInspectorConnected,\n}) => {\n return (\n <NavContainer>\n {/* Main view buttons */}\n <NavGroup>\n <NavButton\n $isActive={currentScreen === DashboardScreen.logs}\n $isConnected={isLoggerConnected}\n onClick={() => onScreenChange(DashboardScreen.logs)}\n >\n <ConnectionIndicator $connected={isLoggerConnected} />\n Logger\n </NavButton>\n <NavButton\n $isActive={currentScreen === DashboardScreen.inspector}\n $isConnected={isInspectorConnected}\n onClick={() => onScreenChange(DashboardScreen.inspector)}\n >\n <ConnectionIndicator $connected={isInspectorConnected} />\n Inspector\n </NavButton>\n </NavGroup>\n\n <Divider />\n\n {/* Split view buttons */}\n <NavGroup>\n <SplitLabel>Split:</SplitLabel>\n <SplitButton\n $isActive={currentScreen === DashboardScreen.splitHorizontal}\n onClick={() => onScreenChange(DashboardScreen.splitHorizontal)}\n title=\"Split Horizontal (top/bottom)\"\n >\n <SplitHorizontalIcon />\n </SplitButton>\n <SplitButton\n $isActive={currentScreen === DashboardScreen.splitVertical}\n onClick={() => onScreenChange(DashboardScreen.splitVertical)}\n title=\"Split Vertical (left/right)\"\n >\n <SplitVerticalIcon />\n </SplitButton>\n </NavGroup>\n </NavContainer>\n );\n};\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,oBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAmB,gCA0FjBC,EAAA,6BAxFUH,OACVA,EAAA,KAAO,OACPA,EAAA,UAAY,YACZA,EAAA,gBAAkB,kBAClBA,EAAA,cAAgB,gBAJNA,OAAA,IAOZ,MAAMI,EAAe,EAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWtBC,EAAW,EAAAD,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlBE,EAAU,EAAAF,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjBG,EAAY,EAAAH,QAAO;AAAA;AAAA,sBAKH,CAAC,CAAE,UAAAI,CAAU,IAAOA,EAAY,UAAY,MAAO;AAAA;AAAA,gBAEzD,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,OAAQ;AAAA,WACzD,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,MAAO;AAAA,iBAC7C,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,MAAQ,QAAS;AAAA;AAAA;AAAA,aAGrD,CAAC,CAAE,aAAAC,CAAa,IAAOA,IAAiB,GAAQ,GAAM,CAAE;AAAA;AAAA;AAAA;AAAA,kBAInD,CAAC,CAAE,UAAAD,CAAU,IAAOA,EAAY,UAAY,SAAU;AAAA,oBACpD,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,MAAO;AAAA;AAAA,EAIjEE,EAAc,EAAAN,QAAO;AAAA;AAAA,sBAEL,CAAC,CAAE,UAAAI,CAAU,IAAOA,EAAY,UAAY,MAAO;AAAA;AAAA,gBAEzD,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,OAAQ;AAAA,WACzD,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAQ5C,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,SAAU;AAAA,oBACpD,CAAC,CAAE,UAAAA,CAAU,IAAOA,EAAY,UAAY,MAAO;AAAA;AAAA,EAIjEG,EAAsB,EAAAP,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKnB,CAAC,CAAE,WAAAQ,CAAW,IAAOA,EAAa,UAAY,SAAU;AAAA;AAAA,EAIlEC,EAAa,EAAAT,QAAO;AAAA;AAAA;AAAA;AAAA,EAOpBU,EAAsB,OAC1B,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,eACnD,oBAAC,QAAK,EAAE,IAAI,EAAE,IAAI,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,QAAQ,MAAM,KAC7D,OAAC,QAAK,EAAE,IAAI,EAAE,IAAI,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,GACjD,EAGIC,EAAoB,OACxB,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,eACnD,oBAAC,QAAK,EAAE,IAAI,EAAE,IAAI,MAAM,IAAI,OAAO,KAAK,GAAG,IAAI,QAAQ,MAAM,KAC7D,OAAC,QAAK,EAAE,IAAI,EAAE,IAAI,MAAM,IAAI,OAAO,KAAK,GAAG,IAAI,GACjD,EAUWjB,EAAgE,CAAC,CAC5E,cAAAkB,EACA,eAAAC,EACA,kBAAAC,EACA,qBAAAC,CACF,OAEI,QAAChB,EAAA,CAEC,qBAACE,EAAA,CACC,qBAACE,EAAA,CACC,UAAWS,IAAkB,OAC7B,aAAcE,EACd,QAAS,IAAMD,EAAe,MAAoB,EAElD,oBAACN,EAAA,CAAoB,WAAYO,EAAmB,EAAE,UAExD,KACA,QAACX,EAAA,CACC,UAAWS,IAAkB,YAC7B,aAAcG,EACd,QAAS,IAAMF,EAAe,WAAyB,EAEvD,oBAACN,EAAA,CAAoB,WAAYQ,EAAsB,EAAE,aAE3D,GACF,KAEA,OAACb,EAAA,EAAQ,KAGT,QAACD,EAAA,CACC,oBAACQ,EAAA,CAAW,kBAAM,KAClB,OAACH,EAAA,CACC,UAAWM,IAAkB,kBAC7B,QAAS,IAAMC,EAAe,iBAA+B,EAC7D,MAAM,gCAEN,mBAACH,EAAA,EAAoB,EACvB,KACA,OAACJ,EAAA,CACC,UAAWM,IAAkB,gBAC7B,QAAS,IAAMC,EAAe,eAA6B,EAC3D,MAAM,8BAEN,mBAACF,EAAA,EAAkB,EACrB,GACF,GACF",
6
+ "names": ["DashboardNavigationBar_exports", "__export", "DashboardNavigationBar", "DashboardScreen", "__toCommonJS", "import_styled_components", "import_jsx_runtime", "NavContainer", "styled", "NavGroup", "Divider", "NavButton", "$isActive", "$isConnected", "SplitButton", "ConnectionIndicator", "$connected", "SplitLabel", "SplitHorizontalIcon", "SplitVerticalIcon", "currentScreen", "onScreenChange", "isLoggerConnected", "isInspectorConnected"]
7
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";var l=Object.create;var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var x=(e,o)=>{for(var t in o)a(e,t,{get:o[t],enumerable:!0})},d=(e,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of c(o))!f.call(e,s)&&s!==t&&a(e,s,{get:()=>o[s],enumerable:!(n=g(o,s))||n.enumerable});return e};var D=(e,o,t)=>(t=e!=null?l(b(e)):{},d(o||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)),u=e=>d(a({},"__esModule",{value:!0}),e);var M={};x(M,{DebugDrawer:()=>C});module.exports=u(M);var i=D(require("styled-components")),p=require("../screens/debugDevTools"),r=require("react/jsx-runtime");const w=i.default.div`
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ right: 0;
6
+ bottom: 0;
7
+ background: rgba(0, 0, 0, 0.3);
8
+ opacity: ${({$isOpen:e})=>e?1:0};
9
+ visibility: ${({$isOpen:e})=>e?"visible":"hidden"};
10
+ transition:
11
+ opacity 0.2s ease,
12
+ visibility 0.2s ease;
13
+ z-index: 100;
14
+ `,v=i.default.div`
15
+ position: fixed;
16
+ bottom: 0;
17
+ left: 0;
18
+ right: 0;
19
+ height: 50%;
20
+ background: white;
21
+ border-top: 2px solid #ddd;
22
+ transform: translateY(${({$isOpen:e})=>e?"0":"100%"});
23
+ transition: transform 0.25s ease;
24
+ z-index: 101;
25
+ display: flex;
26
+ flex-direction: column;
27
+ `,m=i.default.div`
28
+ display: flex;
29
+ flex-direction: row;
30
+ align-items: center;
31
+ justify-content: space-between;
32
+ padding: 8px 16px;
33
+ background: #f5f5f5;
34
+ border-bottom: 1px solid #ddd;
35
+ flex-shrink: 0;
36
+ `,y=i.default.h4`
37
+ margin: 0;
38
+ font-size: 14px;
39
+ font-weight: 600;
40
+ color: #333;
41
+ `,h=i.default.button`
42
+ padding: 4px 8px;
43
+ border: none;
44
+ border-radius: 4px;
45
+ background: transparent;
46
+ color: #666;
47
+ font-size: 18px;
48
+ cursor: pointer;
49
+ transition: background 0.15s ease;
50
+
51
+ &:hover {
52
+ background: #e0e0e0;
53
+ }
54
+ `,k=i.default.div`
55
+ flex: 1;
56
+ overflow: hidden;
57
+ `,C=({isOpen:e,onClose:o,sentMessages:t,receivedMessages:n,sendMessage:s})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w,{$isOpen:e,onClick:o}),(0,r.jsxs)(v,{$isOpen:e,children:[(0,r.jsxs)(m,{children:[(0,r.jsx)(y,{children:"Debug DevTools"}),(0,r.jsx)(h,{onClick:o,children:"\xD7"})]}),(0,r.jsx)(k,{children:(0,r.jsx)(p.DebugDevTools,{sentMessages:t,receivedMessages:n,sendMessage:s})})]})]});0&&(module.exports={DebugDrawer});
58
+ //# sourceMappingURL=DebugDrawer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/DebugDrawer.tsx"],
4
+ "sourcesContent": ["/**\n * @file DebugDrawer component\n *\n * A slide-up drawer that displays the Debug DevTools panel.\n * Shows raw sent/received connector messages for debugging purposes.\n */\n\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { DebugDevTools } from \"../screens/debugDevTools\";\nimport { type Message } from \"../shared/PluginEvents\";\n\nconst DrawerOverlay = styled.div<{ $isOpen: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n visibility: ${({ $isOpen }) => ($isOpen ? \"visible\" : \"hidden\")};\n transition:\n opacity 0.2s ease,\n visibility 0.2s ease;\n z-index: 100;\n`;\n\nconst DrawerContainer = styled.div<{ $isOpen: boolean }>`\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n height: 50%;\n background: white;\n border-top: 2px solid #ddd;\n transform: translateY(${({ $isOpen }) => ($isOpen ? \"0\" : \"100%\")});\n transition: transform 0.25s ease;\n z-index: 101;\n display: flex;\n flex-direction: column;\n`;\n\nconst DrawerHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: 8px 16px;\n background: #f5f5f5;\n border-bottom: 1px solid #ddd;\n flex-shrink: 0;\n`;\n\nconst DrawerTitle = styled.h4`\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n`;\n\nconst CloseButton = styled.button`\n padding: 4px 8px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #666;\n font-size: 18px;\n cursor: pointer;\n transition: background 0.15s ease;\n\n &:hover {\n background: #e0e0e0;\n }\n`;\n\nconst DrawerContent = styled.div`\n flex: 1;\n overflow: hidden;\n`;\n\ntype DebugDrawerProps = {\n isOpen: boolean;\n onClose: () => void;\n sentMessages: Message[];\n receivedMessages: Message[];\n sendMessage: (type: string, payload: string) => void;\n};\n\nexport const DebugDrawer: React.FC<DebugDrawerProps> = ({\n isOpen,\n onClose,\n sentMessages,\n receivedMessages,\n sendMessage,\n}) => {\n return (\n <>\n <DrawerOverlay $isOpen={isOpen} onClick={onClose} />\n <DrawerContainer $isOpen={isOpen}>\n <DrawerHeader>\n <DrawerTitle>Debug DevTools</DrawerTitle>\n <CloseButton onClick={onClose}>\u00D7</CloseButton>\n </DrawerHeader>\n <DrawerContent>\n <DebugDevTools\n sentMessages={sentMessages}\n receivedMessages={receivedMessages}\n sendMessage={sendMessage}\n />\n </DrawerContent>\n </DrawerContainer>\n </>\n );\n};\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAQA,IAAAI,EAAmB,gCAEnBC,EAA8B,oCAuF1BC,EAAA,6BApFJ,MAAMC,EAAgB,EAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOhB,CAAC,CAAE,QAAAC,CAAQ,IAAOA,EAAU,EAAI,CAAE;AAAA,gBAC/B,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,QAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3DC,EAAkB,EAAAF,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAQL,CAAC,CAAE,QAAAC,CAAQ,IAAOA,EAAU,IAAM,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAO7DE,EAAe,EAAAH,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWtBI,EAAc,EAAAJ,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrBK,EAAc,EAAAL,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAerBM,EAAgB,EAAAN,QAAO;AAAA;AAAA;AAAA,EAahBN,EAA0C,CAAC,CACtD,OAAAa,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,YAAAC,CACF,OAEI,oBACE,oBAACZ,EAAA,CAAc,QAASQ,EAAQ,QAASC,EAAS,KAClD,QAACN,EAAA,CAAgB,QAASK,EACxB,qBAACJ,EAAA,CACC,oBAACC,EAAA,CAAY,0BAAc,KAC3B,OAACC,EAAA,CAAY,QAASG,EAAS,gBAAC,GAClC,KACA,OAACF,EAAA,CACC,mBAAC,iBACC,aAAcG,EACd,iBAAkBC,EAClB,YAAaC,EACf,EACF,GACF,GACF",
6
+ "names": ["DebugDrawer_exports", "__export", "DebugDrawer", "__toCommonJS", "import_styled_components", "import_debugDevTools", "import_jsx_runtime", "DrawerOverlay", "styled", "$isOpen", "DrawerContainer", "DrawerHeader", "DrawerTitle", "CloseButton", "DrawerContent", "isOpen", "onClose", "sentMessages", "receivedMessages", "sendMessage"]
7
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";var h=Object.create;var l=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var f=(e,i)=>{for(var t in i)l(e,t,{get:i[t],enumerable:!0})},s=(e,i,t,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of m(i))!u.call(e,r)&&r!==t&&l(e,r,{get:()=>i[r],enumerable:!(a=z(i,r))||a.enumerable});return e};var S=(e,i,t)=>(t=e!=null?h(b(e)):{},s(i||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e)),g=e=>s(l({},"__esModule",{value:!0}),e);var x={};f(x,{SplitView:()=>P});module.exports=g(x);var o=require("react-resizable-panels"),c=S(require("styled-components")),n=require("react/jsx-runtime");const w=(0,c.default)(o.Separator)`
2
+ background: #e0e0e0;
3
+ transition: background 0.15s ease;
4
+
5
+ &:hover {
6
+ background: #bbb;
7
+ }
8
+
9
+ &[data-resize-handle-active] {
10
+ background: #999;
11
+ }
12
+
13
+ /* Horizontal split: thin horizontal bar between top/bottom panels */
14
+ ${({$direction:e})=>e==="horizontal"&&`
15
+ height: 4px;
16
+ cursor: row-resize;
17
+ `}
18
+
19
+ /* Vertical split: thin vertical bar between left/right panels */
20
+ ${({$direction:e})=>e==="vertical"&&`
21
+ width: 4px;
22
+ cursor: col-resize;
23
+ `}
24
+ `,d=c.default.div`
25
+ display: flex;
26
+ flex-direction: column;
27
+ height: 100%;
28
+ overflow: hidden;
29
+ `,v=c.default.div`
30
+ display: flex;
31
+ flex: 1;
32
+ width: 100%;
33
+ height: 100%;
34
+ min-height: 0;
35
+ min-width: 0;
36
+ `,P=({direction:e,first:i,second:t,defaultFirstSize:a="50%",minFirstSize:r="20%",minSecondSize:p="20%"})=>(0,n.jsx)(v,{children:(0,n.jsxs)(o.Group,{orientation:e==="horizontal"?"vertical":"horizontal",style:{flex:1},children:[(0,n.jsx)(o.Panel,{defaultSize:a,minSize:r,children:(0,n.jsx)(d,{children:i})}),(0,n.jsx)(w,{$direction:e}),(0,n.jsx)(o.Panel,{minSize:p,children:(0,n.jsx)(d,{children:t})})]})});0&&(module.exports={SplitView});
37
+ //# sourceMappingURL=SplitView.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/SplitView.tsx"],
4
+ "sourcesContent": ["import React from \"react\";\nimport { Group, Panel, Separator } from \"react-resizable-panels\";\nimport styled from \"styled-components\";\n\nconst ResizeHandle = styled(Separator)<{\n $direction: \"horizontal\" | \"vertical\";\n}>`\n background: #e0e0e0;\n transition: background 0.15s ease;\n\n &:hover {\n background: #bbb;\n }\n\n &[data-resize-handle-active] {\n background: #999;\n }\n\n /* Horizontal split: thin horizontal bar between top/bottom panels */\n ${({ $direction }) =>\n $direction === \"horizontal\" &&\n `\n height: 4px;\n cursor: row-resize;\n `}\n\n /* Vertical split: thin vertical bar between left/right panels */\n ${({ $direction }) =>\n $direction === \"vertical\" &&\n `\n width: 4px;\n cursor: col-resize;\n `}\n`;\n\nconst PanelContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`;\n\nconst SplitViewContainer = styled.div`\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n`;\n\ntype SplitViewProps = {\n direction: \"horizontal\" | \"vertical\";\n first: React.ReactNode;\n second: React.ReactNode;\n defaultFirstSize?: number | string;\n minFirstSize?: number | string;\n minSecondSize?: number | string;\n};\n\nexport const SplitView: React.FC<SplitViewProps> = ({\n direction,\n first,\n second,\n defaultFirstSize = \"50%\",\n minFirstSize = \"20%\",\n minSecondSize = \"20%\",\n}) => {\n // react-resizable-panels uses \"horizontal\" for left/right split\n // and \"vertical\" for top/bottom split (opposite of our naming)\n const panelOrientation =\n direction === \"horizontal\" ? \"vertical\" : \"horizontal\";\n\n return (\n <SplitViewContainer>\n <Group orientation={panelOrientation} style={{ flex: 1 }}>\n <Panel defaultSize={defaultFirstSize} minSize={minFirstSize}>\n <PanelContainer>{first}</PanelContainer>\n </Panel>\n <ResizeHandle $direction={direction} />\n <Panel minSize={minSecondSize}>\n <PanelContainer>{second}</PanelContainer>\n </Panel>\n </Group>\n </SplitViewContainer>\n );\n};\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAwC,kCACxCC,EAAmB,gCAyEbC,EAAA,6BAvEN,MAAMC,KAAe,EAAAC,SAAO,WAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAejC,CAAC,CAAE,WAAAC,CAAW,IACdA,IAAe,cACf;AAAA;AAAA;AAAA,GAGD;AAAA;AAAA;AAAA,IAGC,CAAC,CAAE,WAAAA,CAAW,IACdA,IAAe,YACf;AAAA;AAAA;AAAA,GAGD;AAAA,EAGGC,EAAiB,EAAAF,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxBG,EAAqB,EAAAH,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBrBN,EAAsC,CAAC,CAClD,UAAAU,EACA,MAAAC,EACA,OAAAC,EACA,iBAAAC,EAAmB,MACnB,aAAAC,EAAe,MACf,cAAAC,EAAgB,KAClB,OAOI,OAACN,EAAA,CACC,oBAAC,SAAM,YAJTC,IAAc,aAAe,WAAa,aAIF,MAAO,CAAE,KAAM,CAAE,EACrD,oBAAC,SAAM,YAAaG,EAAkB,QAASC,EAC7C,mBAACN,EAAA,CAAgB,SAAAG,EAAM,EACzB,KACA,OAACN,EAAA,CAAa,WAAYK,EAAW,KACrC,OAAC,SAAM,QAASK,EACd,mBAACP,EAAA,CAAgB,SAAAI,EAAO,EAC1B,GACF,EACF",
6
+ "names": ["SplitView_exports", "__export", "SplitView", "__toCommonJS", "import_react_resizable_panels", "import_styled_components", "import_jsx_runtime", "ResizeHandle", "styled", "$direction", "PanelContainer", "SplitViewContainer", "direction", "first", "second", "defaultFirstSize", "minFirstSize", "minSecondSize"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var g=(e,s)=>{for(var r in s)o(e,r,{get:s[r],enumerable:!0})},E=(e,s,r,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of m(s))!C.call(e,t)&&t!==r&&o(e,t,{get:()=>s[t],enumerable:!(a=i(s,t))||a.enumerable});return e};var u=e=>E(o({},"__esModule",{value:!0}),e);var N={};g(N,{createApduCommands:()=>D,createDiscoveryCommands:()=>I,createProviderCommands:()=>S});module.exports=u(N);var n=require("@ledgerhq/device-management-kit-devtools-core");function I(e){return{startListeningCommand:()=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.START_LISTENING_DEVICES,"{}"),stopListeningCommand:()=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.STOP_LISTENING_DEVICES,"{}"),startDiscoveringCommand:()=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.START_DISCOVERING,"{}"),stopDiscoveringCommand:()=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.STOP_DISCOVERING,"{}"),connectDeviceCommand:(s,r)=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.CONNECT_DEVICE,JSON.stringify({deviceId:s,sessionRefresherOptions:r}))}}function S(e){return{getProviderCommand:()=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.GET_PROVIDER,"{}"),setProviderCommand:s=>e.sendMessage(n.INSPECTOR_COMMAND_TYPES.SET_PROVIDER,JSON.stringify({provider:s}))}}let p=0;function D(e){return{sendApduCommand:(s,r)=>{const a=`apdu-${++p}`,t=r.match(/.{1,2}/g)?.map(d=>parseInt(d,16))||[];return e.sendMessage(n.INSPECTOR_COMMAND_TYPES.SEND_APDU,JSON.stringify({sessionId:s,apdu:t,requestId:a})),a}}}0&&(module.exports={createApduCommands,createDiscoveryCommands,createProviderCommands});
2
+ //# sourceMappingURL=commandDispatcher.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/hooks/commandDispatcher.ts"],
4
+ "sourcesContent": ["import {\n type Connector,\n INSPECTOR_COMMAND_TYPES,\n} from \"@ledgerhq/device-management-kit-devtools-core\";\n\n/**\n * Create discovery-related command dispatchers.\n */\nexport function createDiscoveryCommands(connector: Connector) {\n return {\n startListeningCommand: () =>\n connector.sendMessage(\n INSPECTOR_COMMAND_TYPES.START_LISTENING_DEVICES,\n \"{}\",\n ),\n stopListeningCommand: () =>\n connector.sendMessage(\n INSPECTOR_COMMAND_TYPES.STOP_LISTENING_DEVICES,\n \"{}\",\n ),\n startDiscoveringCommand: () =>\n connector.sendMessage(INSPECTOR_COMMAND_TYPES.START_DISCOVERING, \"{}\"),\n stopDiscoveringCommand: () =>\n connector.sendMessage(INSPECTOR_COMMAND_TYPES.STOP_DISCOVERING, \"{}\"),\n connectDeviceCommand: (\n deviceId: string,\n sessionRefresherOptions?: {\n isRefresherDisabled: boolean;\n pollingInterval?: number;\n },\n ) =>\n connector.sendMessage(\n INSPECTOR_COMMAND_TYPES.CONNECT_DEVICE,\n JSON.stringify({ deviceId, sessionRefresherOptions }),\n ),\n };\n}\n\n/**\n * Create provider-related command dispatchers.\n */\nexport function createProviderCommands(connector: Connector) {\n return {\n getProviderCommand: () =>\n connector.sendMessage(INSPECTOR_COMMAND_TYPES.GET_PROVIDER, \"{}\"),\n setProviderCommand: (value: number) =>\n connector.sendMessage(\n INSPECTOR_COMMAND_TYPES.SET_PROVIDER,\n JSON.stringify({ provider: value }),\n ),\n };\n}\n\nlet apduRequestCounter = 0;\n\n/**\n * Create APDU-related command dispatchers.\n */\nexport function createApduCommands(connector: Connector) {\n return {\n sendApduCommand: (sessionId: string, apduHex: string): string => {\n const requestId = `apdu-${++apduRequestCounter}`;\n // Convert hex string to array of bytes\n const apdu =\n apduHex.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16)) || [];\n connector.sendMessage(\n INSPECTOR_COMMAND_TYPES.SEND_APDU,\n JSON.stringify({ sessionId, apdu, requestId }),\n );\n return requestId;\n },\n };\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,4BAAAC,EAAA,2BAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,EAGO,yDAKA,SAASH,EAAwBI,EAAsB,CAC5D,MAAO,CACL,sBAAuB,IACrBA,EAAU,YACR,0BAAwB,wBACxB,IACF,EACF,qBAAsB,IACpBA,EAAU,YACR,0BAAwB,uBACxB,IACF,EACF,wBAAyB,IACvBA,EAAU,YAAY,0BAAwB,kBAAmB,IAAI,EACvE,uBAAwB,IACtBA,EAAU,YAAY,0BAAwB,iBAAkB,IAAI,EACtE,qBAAsB,CACpBC,EACAC,IAKAF,EAAU,YACR,0BAAwB,eACxB,KAAK,UAAU,CAAE,SAAAC,EAAU,wBAAAC,CAAwB,CAAC,CACtD,CACJ,CACF,CAKO,SAASL,EAAuBG,EAAsB,CAC3D,MAAO,CACL,mBAAoB,IAClBA,EAAU,YAAY,0BAAwB,aAAc,IAAI,EAClE,mBAAqBG,GACnBH,EAAU,YACR,0BAAwB,aACxB,KAAK,UAAU,CAAE,SAAUG,CAAM,CAAC,CACpC,CACJ,CACF,CAEA,IAAIC,EAAqB,EAKlB,SAAST,EAAmBK,EAAsB,CACvD,MAAO,CACL,gBAAiB,CAACK,EAAmBC,IAA4B,CAC/D,MAAMC,EAAY,QAAQ,EAAEH,CAAkB,GAExCI,EACJF,EAAQ,MAAM,SAAS,GAAG,IAAKG,GAAS,SAASA,EAAM,EAAE,CAAC,GAAK,CAAC,EAClE,OAAAT,EAAU,YACR,0BAAwB,UACxB,KAAK,UAAU,CAAE,UAAAK,EAAW,KAAAG,EAAM,UAAAD,CAAU,CAAC,CAC/C,EACOA,CACT,CACF,CACF",
6
+ "names": ["commandDispatcher_exports", "__export", "createApduCommands", "createDiscoveryCommands", "createProviderCommands", "__toCommonJS", "import_device_management_kit_devtools_core", "connector", "deviceId", "sessionRefresherOptions", "value", "apduRequestCounter", "sessionId", "apduHex", "requestId", "apdu", "byte"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var d=(o,t)=>{for(var e in t)n(o,e,{get:t[e],enumerable:!0})},l=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of c(t))!p.call(o,a)&&a!==e&&n(o,a,{get:()=>t[a],enumerable:!(s=i(t,a))||s.enumerable});return o};var v=o=>l(n({},"__esModule",{value:!0}),o);var f={};d(f,{handleApduResponse:()=>m,handleConnectedDevicesUpdate:()=>u,handleDeviceSessionStateUpdate:()=>h,handleDiscoveredDevicesUpdate:()=>y,handleLogMessage:()=>D,handleModuleConnected:()=>S,handleProviderValue:()=>g});module.exports=v(f);var r=require("../screens/logger/mapConnectorMessageToLogData");function S(o,t){try{const{module:e}=JSON.parse(o);t(s=>new Set([...s,e]))}catch(e){console.error("Failed to parse moduleConnected payload",e)}}function D(o,t,e){const s=(0,r.mapConnectorMessageToLogData)({type:o,payload:t});return s!==null?(e(a=>[...a,s]),!0):!1}function u(o,t){try{const e=JSON.parse(o);t(e)}catch(e){console.error("Failed to parse connectedDevicesUpdate payload",e)}}function h(o,t){try{const{sessionId:e,state:s}=JSON.parse(o);t(a=>new Map(a).set(e,s))}catch(e){console.error("Failed to parse deviceSessionStateUpdate payload",e)}}function y(o,t){try{const e=JSON.parse(o);t(e)}catch(e){console.error("Failed to parse discoveredDevicesUpdate payload",e)}}function g(o,t){try{const{provider:e}=JSON.parse(o);t(e)}catch(e){console.error("Failed to parse providerValue payload",e)}}function m(o,t){try{const e=JSON.parse(o);t(s=>new Map(s).set(e.requestId,e))}catch(e){console.error("Failed to parse apduResponse payload",e)}}0&&(module.exports={handleApduResponse,handleConnectedDevicesUpdate,handleDeviceSessionStateUpdate,handleDiscoveredDevicesUpdate,handleLogMessage,handleModuleConnected,handleProviderValue});
2
+ //# sourceMappingURL=connectorMessageHandlers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/hooks/connectorMessageHandlers.ts"],
4
+ "sourcesContent": ["import type { Dispatch, SetStateAction } from \"react\";\nimport {\n type ConnectedDevice,\n type DeviceSessionState,\n type DiscoveredDevice,\n} from \"@ledgerhq/device-management-kit\";\nimport { type DevToolsModule } from \"@ledgerhq/device-management-kit-devtools-core\";\n\nimport { mapConnectorMessageToLogData } from \"../screens/logger/mapConnectorMessageToLogData\";\nimport { type LogData } from \"../screens/logger/types\";\nimport { type ApduResponse } from \"./useConnectorMessages\";\n\n/**\n * Handle module connected handshake message.\n */\nexport function handleModuleConnected(\n payload: string,\n setConnectedModules: Dispatch<SetStateAction<Set<DevToolsModule>>>,\n): void {\n try {\n const { module } = JSON.parse(payload) as { module: DevToolsModule };\n setConnectedModules((prev) => new Set([...prev, module]));\n } catch (e) {\n console.error(\"Failed to parse moduleConnected payload\", e);\n }\n}\n\n/**\n * Handle log message. Returns true if message was a log, false otherwise.\n */\nexport function handleLogMessage(\n type: string,\n payload: string,\n setLogs: Dispatch<SetStateAction<LogData[]>>,\n): boolean {\n const logData = mapConnectorMessageToLogData({ type, payload });\n if (logData !== null) {\n setLogs((prev) => [...prev, logData]);\n return true;\n }\n return false;\n}\n\n/**\n * Handle connected devices update message.\n */\nexport function handleConnectedDevicesUpdate(\n payload: string,\n setConnectedDevices: Dispatch<SetStateAction<ConnectedDevice[]>>,\n): void {\n try {\n const devices = JSON.parse(payload) as ConnectedDevice[];\n setConnectedDevices(devices);\n } catch (e) {\n console.error(\"Failed to parse connectedDevicesUpdate payload\", e);\n }\n}\n\n/**\n * Handle device session state update message.\n */\nexport function handleDeviceSessionStateUpdate(\n payload: string,\n setSessionStates: Dispatch<SetStateAction<Map<string, DeviceSessionState>>>,\n): void {\n try {\n const { sessionId, state } = JSON.parse(payload) as {\n sessionId: string;\n state: DeviceSessionState;\n };\n setSessionStates((prev) => new Map(prev).set(sessionId, state));\n } catch (e) {\n console.error(\"Failed to parse deviceSessionStateUpdate payload\", e);\n }\n}\n\n/**\n * Handle discovered devices update message.\n */\nexport function handleDiscoveredDevicesUpdate(\n payload: string,\n setDiscoveredDevices: Dispatch<SetStateAction<DiscoveredDevice[]>>,\n): void {\n try {\n const devices = JSON.parse(payload) as DiscoveredDevice[];\n setDiscoveredDevices(devices);\n } catch (e) {\n console.error(\"Failed to parse discoveredDevicesUpdate payload\", e);\n }\n}\n\n/**\n * Handle provider value response message.\n */\nexport function handleProviderValue(\n payload: string,\n setProviderValue: Dispatch<SetStateAction<number | null>>,\n): void {\n try {\n const { provider } = JSON.parse(payload) as { provider: number };\n setProviderValue(provider);\n } catch (e) {\n console.error(\"Failed to parse providerValue payload\", e);\n }\n}\n\n/**\n * Handle APDU response message.\n */\nexport function handleApduResponse(\n payload: string,\n setApduResponses: Dispatch<SetStateAction<Map<string, ApduResponse>>>,\n): void {\n try {\n const response = JSON.parse(payload) as ApduResponse;\n setApduResponses((prev) => new Map(prev).set(response.requestId, response));\n } catch (e) {\n console.error(\"Failed to parse apduResponse payload\", e);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,iCAAAC,EAAA,mCAAAC,EAAA,kCAAAC,EAAA,qBAAAC,EAAA,0BAAAC,EAAA,wBAAAC,IAAA,eAAAC,EAAAT,GAQA,IAAAU,EAA6C,0DAOtC,SAASH,EACdI,EACAC,EACM,CACN,GAAI,CACF,KAAM,CAAE,OAAAC,CAAO,EAAI,KAAK,MAAMF,CAAO,EACrCC,EAAqBE,GAAS,IAAI,IAAI,CAAC,GAAGA,EAAMD,CAAM,CAAC,CAAC,CAC1D,OAAS,EAAG,CACV,QAAQ,MAAM,0CAA2C,CAAC,CAC5D,CACF,CAKO,SAASP,EACdS,EACAJ,EACAK,EACS,CACT,MAAMC,KAAU,gCAA6B,CAAE,KAAAF,EAAM,QAAAJ,CAAQ,CAAC,EAC9D,OAAIM,IAAY,MACdD,EAASF,GAAS,CAAC,GAAGA,EAAMG,CAAO,CAAC,EAC7B,IAEF,EACT,CAKO,SAASd,EACdQ,EACAO,EACM,CACN,GAAI,CACF,MAAMC,EAAU,KAAK,MAAMR,CAAO,EAClCO,EAAoBC,CAAO,CAC7B,OAAS,EAAG,CACV,QAAQ,MAAM,iDAAkD,CAAC,CACnE,CACF,CAKO,SAASf,EACdO,EACAS,EACM,CACN,GAAI,CACF,KAAM,CAAE,UAAAC,EAAW,MAAAC,CAAM,EAAI,KAAK,MAAMX,CAAO,EAI/CS,EAAkBN,GAAS,IAAI,IAAIA,CAAI,EAAE,IAAIO,EAAWC,CAAK,CAAC,CAChE,OAAS,EAAG,CACV,QAAQ,MAAM,mDAAoD,CAAC,CACrE,CACF,CAKO,SAASjB,EACdM,EACAY,EACM,CACN,GAAI,CACF,MAAMJ,EAAU,KAAK,MAAMR,CAAO,EAClCY,EAAqBJ,CAAO,CAC9B,OAAS,EAAG,CACV,QAAQ,MAAM,kDAAmD,CAAC,CACpE,CACF,CAKO,SAASX,EACdG,EACAa,EACM,CACN,GAAI,CACF,KAAM,CAAE,SAAAC,CAAS,EAAI,KAAK,MAAMd,CAAO,EACvCa,EAAiBC,CAAQ,CAC3B,OAAS,EAAG,CACV,QAAQ,MAAM,wCAAyC,CAAC,CAC1D,CACF,CAKO,SAASvB,EACdS,EACAe,EACM,CACN,GAAI,CACF,MAAMC,EAAW,KAAK,MAAMhB,CAAO,EACnCe,EAAkBZ,GAAS,IAAI,IAAIA,CAAI,EAAE,IAAIa,EAAS,UAAWA,CAAQ,CAAC,CAC5E,OAAS,EAAG,CACV,QAAQ,MAAM,uCAAwC,CAAC,CACzD,CACF",
6
+ "names": ["connectorMessageHandlers_exports", "__export", "handleApduResponse", "handleConnectedDevicesUpdate", "handleDeviceSessionStateUpdate", "handleDiscoveredDevicesUpdate", "handleLogMessage", "handleModuleConnected", "handleProviderValue", "__toCommonJS", "import_mapConnectorMessageToLogData", "payload", "setConnectedModules", "module", "prev", "type", "setLogs", "logData", "setConnectedDevices", "devices", "setSessionStates", "sessionId", "state", "setDiscoveredDevices", "setProviderValue", "provider", "setApduResponses", "response"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var B=(n,o)=>{for(var d in o)l(n,d,{get:o[d],enumerable:!0})},F=(n,o,d,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of j(o))!z.call(n,c)&&c!==d&&l(n,c,{get:()=>o[c],enumerable:!(p=K(o,c))||p.enumerable});return n};var J=n=>F(l({},"__esModule",{value:!0}),n);var W={};B(W,{useConnectorMessages:()=>Q});module.exports=J(W);var e=require("react"),t=require("@ledgerhq/device-management-kit-devtools-core"),g=require("./commandDispatcher"),s=require("./connectorMessageHandlers");function Q(n){const[o,d]=(0,e.useState)([]),[p,c]=(0,e.useState)([]),[b,C]=(0,e.useState)([]),[m,L]=(0,e.useState)(new Set),[A,P]=(0,e.useState)([]),[f,R]=(0,e.useState)(new Map),[I,D]=(0,e.useState)([]),[T,M]=(0,e.useState)(!1),[_,S]=(0,e.useState)(!1),[O,h]=(0,e.useState)(null),[V,U]=(0,e.useState)(new Map),a=(0,e.useMemo)(()=>({...n,sendMessage:(u,v)=>{n.sendMessage(u,v),c(i=>[...i,{type:u,payload:v}])}}),[n]);(0,e.useEffect)(()=>{const{unsubscribe:u}=n.listenToMessages((v,i)=>{switch(d(H=>[...H,{type:v,payload:i}]),v){case t.MODULE_CONNECTED_MESSAGE_TYPE:(0,s.handleModuleConnected)(i,L);break;case t.INSPECTOR_MESSAGE_TYPES.CONNECTED_DEVICES_UPDATE:(0,s.handleConnectedDevicesUpdate)(i,P);break;case t.INSPECTOR_MESSAGE_TYPES.DEVICE_SESSION_STATE_UPDATE:(0,s.handleDeviceSessionStateUpdate)(i,R);break;case t.INSPECTOR_MESSAGE_TYPES.DISCOVERED_DEVICES_UPDATE:(0,s.handleDiscoveredDevicesUpdate)(i,D);break;case t.INSPECTOR_MESSAGE_TYPES.PROVIDER_VALUE:(0,s.handleProviderValue)(i,h);break;case t.INSPECTOR_MESSAGE_TYPES.APDU_RESPONSE:(0,s.handleApduResponse)(i,U);break;default:(0,s.handleLogMessage)(v,i,C);break}});return u},[n]);const r=(0,e.useMemo)(()=>(0,g.createDiscoveryCommands)(a),[a]),E=(0,e.useMemo)(()=>(0,g.createProviderCommands)(a),[a]),k=(0,e.useMemo)(()=>(0,g.createApduCommands)(a),[a]),N=(0,e.useCallback)(()=>{M(!0),D([]),r.startListeningCommand()},[r]),y=(0,e.useCallback)(()=>{M(!1),D([]),r.stopListeningCommand()},[r]),w=(0,e.useCallback)(()=>{S(!0),D([]),r.startDiscoveringCommand()},[r]),x=(0,e.useCallback)(()=>{S(!1),D([]),r.stopDiscoveringCommand()},[r]),G=(0,e.useCallback)(()=>{C([])},[]),Y=m.has(t.DEVTOOLS_MODULES.LOGGER),q=m.has(t.DEVTOOLS_MODULES.DMK_INSPECTOR);return{receivedMessages:o,sentMessages:p,logs:b,connectedModules:m,connectedDevices:A,sessionStates:f,discoveredDevices:I,isListening:T,isActivelyDiscovering:_,isLoggerConnected:Y,isInspectorConnected:q,providerValue:O,apduResponses:V,sendMessage:a.sendMessage,clearLogs:G,startListening:N,stopListening:y,startDiscovering:w,stopDiscovering:x,connectDevice:r.connectDeviceCommand,getProvider:E.getProviderCommand,setProvider:E.setProviderCommand,sendApdu:k.sendApduCommand}}0&&(module.exports={useConnectorMessages});
2
+ //# sourceMappingURL=useConnectorMessages.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/hooks/useConnectorMessages.ts"],
4
+ "sourcesContent": ["/**\n * @file useConnectorMessages hook\n *\n * Central hook for managing DevTools connector state and actions.\n * Handles all communication between the Dashboard UI and the client app\n * via the connector (WebSocket or Rozenite).\n */\n\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n type ConnectedDevice,\n type DeviceSessionState,\n type DiscoveredDevice,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n type Connector,\n DEVTOOLS_MODULES,\n type DevToolsModule,\n INSPECTOR_MESSAGE_TYPES,\n MODULE_CONNECTED_MESSAGE_TYPE,\n} from \"@ledgerhq/device-management-kit-devtools-core\";\n\nimport { type Message } from \"../PluginEvents\";\nimport { type LogData } from \"../screens/logger/types\";\nimport {\n createApduCommands,\n createDiscoveryCommands,\n createProviderCommands,\n} from \"./commandDispatcher\";\nimport {\n handleApduResponse,\n handleConnectedDevicesUpdate,\n handleDeviceSessionStateUpdate,\n handleDiscoveredDevicesUpdate,\n handleLogMessage,\n handleModuleConnected,\n handleProviderValue,\n} from \"./connectorMessageHandlers\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ApduResponse = {\n requestId: string;\n success: boolean;\n statusCode?: number[];\n data?: number[];\n error?: string;\n};\n\nexport type ConnectorMessagesState = {\n receivedMessages: Message[];\n sentMessages: Message[];\n logs: LogData[];\n connectedModules: Set<DevToolsModule>;\n connectedDevices: ConnectedDevice[];\n sessionStates: Map<string, DeviceSessionState>;\n discoveredDevices: DiscoveredDevice[];\n isListening: boolean;\n isActivelyDiscovering: boolean;\n isLoggerConnected: boolean;\n isInspectorConnected: boolean;\n providerValue: number | null;\n apduResponses: Map<string, ApduResponse>;\n sendMessage: (type: string, payload: string) => void;\n clearLogs: () => void;\n startListening: () => void;\n stopListening: () => void;\n startDiscovering: () => void;\n stopDiscovering: () => void;\n connectDevice: (\n deviceId: string,\n sessionRefresherOptions?: {\n isRefresherDisabled: boolean;\n pollingInterval?: number;\n },\n ) => void;\n getProvider: () => void;\n setProvider: (value: number) => void;\n sendApdu: (sessionId: string, apduHex: string) => string;\n};\n\n// ============================================================================\n// Hook\n// ============================================================================\n\n/**\n * Central hook for managing DevTools connector state and communication.\n *\n * This hook:\n * - Listens to messages from the connector and dispatches them to handlers\n * - Tracks all sent/received messages for debugging\n * - Manages device discovery, sessions, and DMK configuration state\n * - Provides action functions to send commands to the inspector module\n *\n * @param connector - The connector instance (WebSocket or Rozenite)\n * @returns State and actions for the Dashboard UI\n */\nexport function useConnectorMessages(\n connector: Connector,\n): ConnectorMessagesState {\n // === State ===\n const [receivedMessages, setReceivedMessages] = useState<Message[]>([]);\n const [sentMessages, setSentMessages] = useState<Message[]>([]);\n const [logs, setLogs] = useState<LogData[]>([]);\n const [connectedModules, setConnectedModules] = useState<Set<DevToolsModule>>(\n new Set(),\n );\n const [connectedDevices, setConnectedDevices] = useState<ConnectedDevice[]>(\n [],\n );\n const [sessionStates, setSessionStates] = useState<\n Map<string, DeviceSessionState>\n >(new Map());\n const [discoveredDevices, setDiscoveredDevices] = useState<\n DiscoveredDevice[]\n >([]);\n const [isListening, setIsListening] = useState(false);\n const [isActivelyDiscovering, setIsActivelyDiscovering] = useState(false);\n const [providerValue, setProviderValue] = useState<number | null>(null);\n const [apduResponses, setApduResponses] = useState<Map<string, ApduResponse>>(\n new Map(),\n );\n\n // === Tracked Connector (keeps all sent messages in state) ===\n const trackedConnector: Connector = useMemo(\n () => ({\n ...connector,\n sendMessage: (type: string, payload: string) => {\n connector.sendMessage(type, payload);\n setSentMessages((prev) => [...prev, { type, payload }]);\n },\n }),\n [connector],\n );\n\n // === Message Listener ===\n useEffect(() => {\n const { unsubscribe } = connector.listenToMessages((type, payload) => {\n setReceivedMessages((prev) => [...prev, { type, payload }]);\n\n switch (type) {\n case MODULE_CONNECTED_MESSAGE_TYPE:\n handleModuleConnected(payload, setConnectedModules);\n break;\n case INSPECTOR_MESSAGE_TYPES.CONNECTED_DEVICES_UPDATE:\n handleConnectedDevicesUpdate(payload, setConnectedDevices);\n break;\n case INSPECTOR_MESSAGE_TYPES.DEVICE_SESSION_STATE_UPDATE:\n handleDeviceSessionStateUpdate(payload, setSessionStates);\n break;\n case INSPECTOR_MESSAGE_TYPES.DISCOVERED_DEVICES_UPDATE:\n handleDiscoveredDevicesUpdate(payload, setDiscoveredDevices);\n break;\n case INSPECTOR_MESSAGE_TYPES.PROVIDER_VALUE:\n handleProviderValue(payload, setProviderValue);\n break;\n case INSPECTOR_MESSAGE_TYPES.APDU_RESPONSE:\n handleApduResponse(payload, setApduResponses);\n break;\n default:\n // Try to handle as log message\n handleLogMessage(type, payload, setLogs);\n break;\n }\n });\n return unsubscribe;\n }, [connector]);\n\n // === Commands (using tracked connector to log all sent messages) ===\n const discoveryCommands = useMemo(\n () => createDiscoveryCommands(trackedConnector),\n [trackedConnector],\n );\n const providerCommands = useMemo(\n () => createProviderCommands(trackedConnector),\n [trackedConnector],\n );\n const apduCommands = useMemo(\n () => createApduCommands(trackedConnector),\n [trackedConnector],\n );\n\n // === Wrapped Commands (with local state updates) ===\n const startListening = useCallback(() => {\n setIsListening(true);\n setDiscoveredDevices([]);\n discoveryCommands.startListeningCommand();\n }, [discoveryCommands]);\n\n const stopListening = useCallback(() => {\n setIsListening(false);\n setDiscoveredDevices([]);\n discoveryCommands.stopListeningCommand();\n }, [discoveryCommands]);\n\n const startDiscovering = useCallback(() => {\n setIsActivelyDiscovering(true);\n setDiscoveredDevices([]);\n discoveryCommands.startDiscoveringCommand();\n }, [discoveryCommands]);\n\n const stopDiscovering = useCallback(() => {\n setIsActivelyDiscovering(false);\n setDiscoveredDevices([]);\n discoveryCommands.stopDiscoveringCommand();\n }, [discoveryCommands]);\n\n const clearLogs = useCallback(() => {\n setLogs([]);\n }, []);\n\n // === Derived State ===\n const isLoggerConnected = connectedModules.has(DEVTOOLS_MODULES.LOGGER);\n const isInspectorConnected = connectedModules.has(\n DEVTOOLS_MODULES.DMK_INSPECTOR,\n );\n\n return {\n // State\n receivedMessages,\n sentMessages,\n logs,\n connectedModules,\n connectedDevices,\n sessionStates,\n discoveredDevices,\n isListening,\n isActivelyDiscovering,\n isLoggerConnected,\n isInspectorConnected,\n providerValue,\n apduResponses,\n // Actions\n sendMessage: trackedConnector.sendMessage,\n clearLogs,\n startListening,\n stopListening,\n startDiscovering,\n stopDiscovering,\n connectDevice: discoveryCommands.connectDeviceCommand,\n getProvider: providerCommands.getProviderCommand,\n setProvider: providerCommands.setProviderCommand,\n sendApdu: apduCommands.sendApduCommand,\n };\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAQA,IAAAI,EAA0D,iBAM1DC,EAMO,yDAIPC,EAIO,+BACPC,EAQO,sCA8DA,SAASL,EACdM,EACwB,CAExB,KAAM,CAACC,EAAkBC,CAAmB,KAAI,YAAoB,CAAC,CAAC,EAChE,CAACC,EAAcC,CAAe,KAAI,YAAoB,CAAC,CAAC,EACxD,CAACC,EAAMC,CAAO,KAAI,YAAoB,CAAC,CAAC,EACxC,CAACC,EAAkBC,CAAmB,KAAI,YAC9C,IAAI,GACN,EACM,CAACC,EAAkBC,CAAmB,KAAI,YAC9C,CAAC,CACH,EACM,CAACC,EAAeC,CAAgB,KAAI,YAExC,IAAI,GAAK,EACL,CAACC,EAAmBC,CAAoB,KAAI,YAEhD,CAAC,CAAC,EACE,CAACC,EAAaC,CAAc,KAAI,YAAS,EAAK,EAC9C,CAACC,EAAuBC,CAAwB,KAAI,YAAS,EAAK,EAClE,CAACC,EAAeC,CAAgB,KAAI,YAAwB,IAAI,EAChE,CAACC,EAAeC,CAAgB,KAAI,YACxC,IAAI,GACN,EAGMC,KAA8B,WAClC,KAAO,CACL,GAAGvB,EACH,YAAa,CAACwB,EAAcC,IAAoB,CAC9CzB,EAAU,YAAYwB,EAAMC,CAAO,EACnCrB,EAAiBsB,GAAS,CAAC,GAAGA,EAAM,CAAE,KAAAF,EAAM,QAAAC,CAAQ,CAAC,CAAC,CACxD,CACF,GACA,CAACzB,CAAS,CACZ,KAGA,aAAU,IAAM,CACd,KAAM,CAAE,YAAA2B,CAAY,EAAI3B,EAAU,iBAAiB,CAACwB,EAAMC,IAAY,CAGpE,OAFAvB,EAAqBwB,GAAS,CAAC,GAAGA,EAAM,CAAE,KAAAF,EAAM,QAAAC,CAAQ,CAAC,CAAC,EAElDD,EAAM,CACZ,KAAK,mCACH,yBAAsBC,EAASjB,CAAmB,EAClD,MACF,KAAK,0BAAwB,4BAC3B,gCAA6BiB,EAASf,CAAmB,EACzD,MACF,KAAK,0BAAwB,+BAC3B,kCAA+Be,EAASb,CAAgB,EACxD,MACF,KAAK,0BAAwB,6BAC3B,iCAA8Ba,EAASX,CAAoB,EAC3D,MACF,KAAK,0BAAwB,kBAC3B,uBAAoBW,EAASL,CAAgB,EAC7C,MACF,KAAK,0BAAwB,iBAC3B,sBAAmBK,EAASH,CAAgB,EAC5C,MACF,WAEE,oBAAiBE,EAAMC,EAASnB,CAAO,EACvC,KACJ,CACF,CAAC,EACD,OAAOqB,CACT,EAAG,CAAC3B,CAAS,CAAC,EAGd,MAAM4B,KAAoB,WACxB,OAAM,2BAAwBL,CAAgB,EAC9C,CAACA,CAAgB,CACnB,EACMM,KAAmB,WACvB,OAAM,0BAAuBN,CAAgB,EAC7C,CAACA,CAAgB,CACnB,EACMO,KAAe,WACnB,OAAM,sBAAmBP,CAAgB,EACzC,CAACA,CAAgB,CACnB,EAGMQ,KAAiB,eAAY,IAAM,CACvCf,EAAe,EAAI,EACnBF,EAAqB,CAAC,CAAC,EACvBc,EAAkB,sBAAsB,CAC1C,EAAG,CAACA,CAAiB,CAAC,EAEhBI,KAAgB,eAAY,IAAM,CACtChB,EAAe,EAAK,EACpBF,EAAqB,CAAC,CAAC,EACvBc,EAAkB,qBAAqB,CACzC,EAAG,CAACA,CAAiB,CAAC,EAEhBK,KAAmB,eAAY,IAAM,CACzCf,EAAyB,EAAI,EAC7BJ,EAAqB,CAAC,CAAC,EACvBc,EAAkB,wBAAwB,CAC5C,EAAG,CAACA,CAAiB,CAAC,EAEhBM,KAAkB,eAAY,IAAM,CACxChB,EAAyB,EAAK,EAC9BJ,EAAqB,CAAC,CAAC,EACvBc,EAAkB,uBAAuB,CAC3C,EAAG,CAACA,CAAiB,CAAC,EAEhBO,KAAY,eAAY,IAAM,CAClC7B,EAAQ,CAAC,CAAC,CACZ,EAAG,CAAC,CAAC,EAGC8B,EAAoB7B,EAAiB,IAAI,mBAAiB,MAAM,EAChE8B,EAAuB9B,EAAiB,IAC5C,mBAAiB,aACnB,EAEA,MAAO,CAEL,iBAAAN,EACA,aAAAE,EACA,KAAAE,EACA,iBAAAE,EACA,iBAAAE,EACA,cAAAE,EACA,kBAAAE,EACA,YAAAE,EACA,sBAAAE,EACA,kBAAAmB,EACA,qBAAAC,EACA,cAAAlB,EACA,cAAAE,EAEA,YAAaE,EAAiB,YAC9B,UAAAY,EACA,eAAAJ,EACA,cAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,cAAeN,EAAkB,qBACjC,YAAaC,EAAiB,mBAC9B,YAAaA,EAAiB,mBAC9B,SAAUC,EAAa,eACzB,CACF",
6
+ "names": ["useConnectorMessages_exports", "__export", "useConnectorMessages", "__toCommonJS", "import_react", "import_device_management_kit_devtools_core", "import_commandDispatcher", "import_connectorMessageHandlers", "connector", "receivedMessages", "setReceivedMessages", "sentMessages", "setSentMessages", "logs", "setLogs", "connectedModules", "setConnectedModules", "connectedDevices", "setConnectedDevices", "sessionStates", "setSessionStates", "discoveredDevices", "setDiscoveredDevices", "isListening", "setIsListening", "isActivelyDiscovering", "setIsActivelyDiscovering", "providerValue", "setProviderValue", "apduResponses", "setApduResponses", "trackedConnector", "type", "payload", "prev", "unsubscribe", "discoveryCommands", "providerCommands", "apduCommands", "startListening", "stopListening", "startDiscovering", "stopDiscovering", "clearLogs", "isLoggerConnected", "isInspectorConnected"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var h=(l,t)=>{for(var n in t)d(l,n,{get:t[n],enumerable:!0})},S=(l,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of m(t))!b.call(l,o)&&o!==n&&d(l,o,{get:()=>t[o],enumerable:!(s=x(t,o))||s.enumerable});return l};var C=l=>S(d({},"__esModule",{value:!0}),l);var F={};h(F,{DebugDevTools:()=>M});module.exports=C(F);var a=require("react"),e=require("react/jsx-runtime");const M=({sentMessages:l,receivedMessages:t,sendMessage:n})=>{const[s,o]=(0,a.useState)(""),[p,g]=(0,a.useState)(""),v=(0,a.useMemo)(()=>[...new Set(l.map(i=>i.type))],[l]),c=(0,a.useMemo)(()=>[...new Set(t.map(i=>i.type))],[t]),u=(0,a.useMemo)(()=>s?l.filter(i=>i.type===s):l,[l,s]),f=(0,a.useMemo)(()=>p?t.filter(i=>i.type===p):t,[t,p]);return(0,e.jsxs)("div",{style:{display:"flex",height:"100vh"},children:[(0,e.jsxs)("div",{style:{flex:1,borderRight:"1px solid #ddd",padding:"16px",boxSizing:"border-box",display:"flex",flexDirection:"column"},children:[(0,e.jsx)("h2",{children:"sent messages"}),(0,e.jsx)(T,{onSend:n}),(0,e.jsx)(y,{types:v,value:s,onChange:o,style:{marginTop:16}}),(0,e.jsx)("div",{style:{marginTop:16,flex:1,overflowY:"auto"},children:(0,e.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none"},children:u.map((i,r)=>(0,e.jsxs)("li",{style:{marginBottom:4},children:[(0,e.jsxs)("strong",{children:[i.type,":"]})," ",i.payload]},r))})})]}),(0,e.jsxs)("div",{style:{flex:1,padding:"16px",boxSizing:"border-box",display:"flex",flexDirection:"column"},children:[(0,e.jsx)("h2",{children:"received messages"}),(0,e.jsx)(y,{types:c,value:p,onChange:g}),(0,e.jsx)("div",{style:{marginTop:16,flex:1,overflowY:"auto"},children:(0,e.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none"},children:f.map((i,r)=>(0,e.jsxs)("li",{style:{marginBottom:4},children:[(0,e.jsxs)("strong",{children:[i.type,":"]})," ",i.payload]},r))})})]})]})},y=({types:l,value:t,onChange:n,style:s})=>(0,e.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,...s},children:[(0,e.jsx)("label",{children:"Filter by type:"}),(0,e.jsxs)("select",{value:t,onChange:o=>n(o.target.value),children:[(0,e.jsxs)("option",{value:"",children:["All (",l.length," types)"]}),l.map(o=>(0,e.jsx)("option",{value:o,children:o},o))]}),t&&(0,e.jsx)("button",{onClick:()=>n(""),style:{padding:"2px 8px"},children:"Clear"})]}),T=({onSend:l})=>{const[t,n]=(0,a.useState)(""),[s,o]=(0,a.useState)("");return(0,e.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[(0,e.jsx)("input",{type:"text",value:t,placeholder:"type",onChange:p=>n(p.target.value),style:{flex:1}}),(0,e.jsx)("input",{type:"text",value:s,placeholder:"payload",onChange:p=>o(p.target.value),style:{flex:2}}),(0,e.jsx)("button",{onClick:()=>{t&&s&&(l(t,s),n(""),o(""))},children:"sendMessage"})]})};0&&(module.exports={DebugDevTools});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/screens/debugDevTools/index.tsx"],
4
+ "sourcesContent": ["/**\n * @file DebugDevTools screen\n *\n * A debugging tool for DevTools developers. Displays raw sent and received\n * connector messages, allows filtering by message type, and provides a way\n * to manually send custom messages for testing.\n */\n\nimport React, { useMemo, useState } from \"react\";\n\nimport { type Message } from \"../../shared/PluginEvents\";\n\ninterface DebugDevToolsMessageProps {\n sentMessages: Message[];\n receivedMessages: Message[];\n sendMessage: (type: string, payload: string) => void;\n}\n\nexport const DebugDevTools: React.FC<DebugDevToolsMessageProps> = ({\n sentMessages,\n receivedMessages,\n sendMessage,\n}) => {\n const [sentFilter, setSentFilter] = useState(\"\");\n const [receivedFilter, setReceivedFilter] = useState(\"\");\n\n const sentMessageTypes = useMemo(\n () => [...new Set(sentMessages.map((m) => m.type))],\n [sentMessages],\n );\n const receivedMessageTypes = useMemo(\n () => [...new Set(receivedMessages.map((m) => m.type))],\n [receivedMessages],\n );\n\n const filteredSentMessages = useMemo(\n () =>\n sentFilter\n ? sentMessages.filter((m) => m.type === sentFilter)\n : sentMessages,\n [sentMessages, sentFilter],\n );\n\n const filteredReceivedMessages = useMemo(\n () =>\n receivedFilter\n ? receivedMessages.filter((m) => m.type === receivedFilter)\n : receivedMessages,\n [receivedMessages, receivedFilter],\n );\n\n return (\n <div style={{ display: \"flex\", height: \"100vh\" }}>\n {/* Left Pane: Sent Messages */}\n <div\n style={{\n flex: 1,\n borderRight: \"1px solid #ddd\",\n padding: \"16px\",\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n <h2>sent messages</h2>\n <MessageSender onSend={sendMessage} />\n <MessageTypeFilter\n types={sentMessageTypes}\n value={sentFilter}\n onChange={setSentFilter}\n style={{ marginTop: 16 }}\n />\n <div style={{ marginTop: 16, flex: 1, overflowY: \"auto\" }}>\n <ul style={{ margin: 0, padding: 0, listStyle: \"none\" }}>\n {filteredSentMessages.map((msg, idx) => (\n <li key={idx} style={{ marginBottom: 4 }}>\n <strong>{msg.type}:</strong> {msg.payload}\n </li>\n ))}\n </ul>\n </div>\n </div>\n {/* Right Pane: Received Messages */}\n <div\n style={{\n flex: 1,\n padding: \"16px\",\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n <h2>received messages</h2>\n <MessageTypeFilter\n types={receivedMessageTypes}\n value={receivedFilter}\n onChange={setReceivedFilter}\n />\n <div style={{ marginTop: 16, flex: 1, overflowY: \"auto\" }}>\n <ul style={{ margin: 0, padding: 0, listStyle: \"none\" }}>\n {filteredReceivedMessages.map((msg, idx) => (\n <li key={idx} style={{ marginBottom: 4 }}>\n <strong>{msg.type}:</strong> {msg.payload}\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n );\n};\n\ninterface MessageTypeFilterProps {\n types: string[];\n value: string;\n onChange: (value: string) => void;\n style?: React.CSSProperties;\n}\n\nconst MessageTypeFilter: React.FC<MessageTypeFilterProps> = ({\n types,\n value,\n onChange,\n style,\n}) => (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8, ...style }}>\n <label>Filter by type:</label>\n <select value={value} onChange={(e) => onChange(e.target.value)}>\n <option value=\"\">All ({types.length} types)</option>\n {types.map((type) => (\n <option key={type} value={type}>\n {type}\n </option>\n ))}\n </select>\n {value && (\n <button onClick={() => onChange(\"\")} style={{ padding: \"2px 8px\" }}>\n Clear\n </button>\n )}\n </div>\n);\n\ninterface MessageSenderProps {\n onSend: (type: string, payload: string) => void;\n}\n\nconst MessageSender: React.FC<MessageSenderProps> = ({ onSend }) => {\n const [type, setType] = useState(\"\");\n const [payload, setPayload] = useState(\"\");\n\n return (\n <div style={{ display: \"flex\", gap: \"8px\", alignItems: \"center\" }}>\n <input\n type=\"text\"\n value={type}\n placeholder=\"type\"\n onChange={(e) => setType(e.target.value)}\n style={{ flex: 1 }}\n />\n <input\n type=\"text\"\n value={payload}\n placeholder=\"payload\"\n onChange={(e) => setPayload(e.target.value)}\n style={{ flex: 2 }}\n />\n <button\n onClick={() => {\n if (type && payload) {\n onSend(type, payload);\n setType(\"\");\n setPayload(\"\");\n }\n }}\n >\n sendMessage\n </button>\n </div>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["debugDevTools_exports", "__export", "DebugDevTools", "__toCommonJS", "import_react", "import_jsx_runtime", "sentMessages", "receivedMessages", "sendMessage", "sentFilter", "setSentFilter", "receivedFilter", "setReceivedFilter", "sentMessageTypes", "m", "receivedMessageTypes", "filteredSentMessages", "filteredReceivedMessages", "MessageSender", "MessageTypeFilter", "msg", "idx", "types", "value", "onChange", "style", "e", "type", "onSend", "setType", "payload", "setPayload"]
7
+ }