@ledgerhq/device-management-kit 0.0.0-develop-20250219001044 → 0.0.0-rnble-transport-20250219100517

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 (104) hide show
  1. package/lib/cjs/package.json +2 -1
  2. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  3. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +3 -3
  4. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +1 -1
  5. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +3 -3
  6. package/lib/cjs/src/api/index.js +1 -1
  7. package/lib/cjs/src/api/index.js.map +3 -3
  8. package/lib/cjs/src/api/transport/model/DeviceApduSender.js +2 -0
  9. package/lib/cjs/src/api/transport/model/DeviceApduSender.js.map +7 -0
  10. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  11. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  12. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js +1 -1
  13. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js.map +1 -1
  14. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  15. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  16. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js +1 -1
  17. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js.map +1 -1
  18. package/lib/cjs/src/api/types.js.map +1 -1
  19. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  20. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  21. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  22. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  23. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  24. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  25. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  26. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +2 -2
  27. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +1 -1
  28. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +3 -3
  29. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +1 -1
  30. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +2 -2
  31. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  32. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  33. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  34. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +2 -2
  35. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js +1 -1
  36. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  37. package/lib/cjs/src/internal/transport/service/TransportService.js +1 -1
  38. package/lib/cjs/src/internal/transport/service/TransportService.js.map +1 -1
  39. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  40. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  41. package/lib/esm/package.json +2 -1
  42. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  43. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  44. package/lib/esm/src/api/command/utils/CommandUtils.test.js +1 -1
  45. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +3 -3
  46. package/lib/esm/src/api/index.js +1 -1
  47. package/lib/esm/src/api/index.js.map +3 -3
  48. package/lib/esm/src/api/transport/model/DeviceApduSender.js +1 -0
  49. package/lib/esm/src/api/transport/model/DeviceApduSender.js.map +7 -0
  50. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  51. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  52. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  53. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  54. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  55. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  56. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  57. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  58. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  59. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  60. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  61. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +2 -2
  62. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +1 -1
  63. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +3 -3
  64. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +1 -1
  65. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +3 -3
  66. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  67. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  68. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  69. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +2 -2
  70. package/lib/esm/src/internal/transport/service/DefaultTransportService.js +1 -1
  71. package/lib/esm/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  72. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  73. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  74. package/lib/types/src/api/DeviceManagementKit.d.ts +1 -1
  75. package/lib/types/src/api/command/utils/CommandUtils.d.ts +1 -0
  76. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  77. package/lib/types/src/api/index.d.ts +1 -0
  78. package/lib/types/src/api/index.d.ts.map +1 -1
  79. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts +17 -0
  80. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts.map +1 -0
  81. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +60 -0
  82. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -0
  83. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts +2 -0
  84. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts.map +1 -1
  85. package/lib/types/src/api/transport/model/Errors.d.ts +15 -0
  86. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  87. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts +2 -0
  88. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts.map +1 -1
  89. package/lib/types/src/api/types.d.ts +1 -0
  90. package/lib/types/src/api/types.d.ts.map +1 -1
  91. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +1 -0
  92. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  93. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts +4 -2
  94. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts.map +1 -1
  95. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.d.ts.map +1 -1
  96. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  97. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts +2 -0
  98. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts.map +1 -1
  99. package/lib/types/src/internal/transport/service/TransportService.d.ts +2 -0
  100. package/lib/types/src/internal/transport/service/TransportService.d.ts.map +1 -1
  101. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +1 -0
  102. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +1 -1
  103. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  104. package/package.json +4 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.ts"],
4
- "sourcesContent": ["import { Subject } from \"rxjs\";\n\nimport { type DeviceId, type DeviceModel } from \"@api/device/DeviceModel\";\nimport { deviceModelStubBuilder } from \"@api/device-model/model/DeviceModel.stub\";\nimport { type TransportDiscoveredDevice } from \"@api/transport/model/TransportDiscoveredDevice\";\nimport { type DiscoveredDevice, type Transport } from \"@api/types\";\nimport { DefaultTransportService } from \"@internal/transport/service/DefaultTransportService\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nimport { ListenToKnownDevicesUseCase } from \"./ListenToKnownDevicesUseCase\";\n\nvi.mock(\"@internal/transport/service/DefaultTransportService\");\n\nlet transportService: TransportService;\nfunction makeMockTransport(props: Partial<Transport>): Transport {\n return {\n listenToKnownDevices: vi.fn(),\n connect: vi.fn(),\n disconnect: vi.fn(),\n startDiscovering: vi.fn(),\n stopDiscovering: vi.fn(),\n getIdentifier: vi.fn(),\n isSupported: vi.fn(),\n ...props,\n };\n}\n\nconst mockInternalDeviceModel = deviceModelStubBuilder();\nfunction makeMockDeviceModel(id: DeviceId): DeviceModel {\n return {\n id,\n model: mockInternalDeviceModel.id,\n name: mockInternalDeviceModel.productName,\n };\n}\n\nfunction setup2MockTransports() {\n const transportAKnownDevicesSubject = new Subject<\n TransportDiscoveredDevice[]\n >();\n const transportBKnownDevicesSubject = new Subject<\n TransportDiscoveredDevice[]\n >();\n const transportA = makeMockTransport({\n listenToKnownDevices: () => transportAKnownDevicesSubject.asObservable(),\n });\n const transportB = makeMockTransport({\n listenToKnownDevices: () => transportBKnownDevicesSubject.asObservable(),\n });\n return {\n transportAKnownDevicesSubject,\n transportBKnownDevicesSubject,\n transportA,\n transportB,\n };\n}\n\nfunction makeMockTransportDiscoveredDevice(\n id: string,\n): TransportDiscoveredDevice {\n return {\n id,\n deviceModel: mockInternalDeviceModel,\n transport: \"mock\",\n };\n}\n\ndescribe(\"ListenToKnownDevicesUseCase\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n // @ts-expect-error mock\n transportService = new DefaultTransportService();\n });\n\n describe(\"when no transports are available\", () => {\n it(\"should return no discovered devices\", () =>\n new Promise<void>((resolve, reject) => {\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([]);\n\n const useCase = new ListenToKnownDevicesUseCase(transportService);\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n useCase.execute().subscribe({\n next: (devices) => {\n observedDiscoveredDevices.push(devices);\n },\n complete: () => {\n try {\n expect(observedDiscoveredDevices).toEqual([[]]);\n resolve();\n } catch (error) {\n reject(error as Error);\n }\n },\n error: (error) => {\n reject(error);\n },\n });\n }));\n });\n\n describe(\"when one transport is available\", () => {\n it(\"should return discovered devices from one transport\", () => {\n const { transportA, transportAKnownDevicesSubject } =\n setup2MockTransports();\n\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([\n transportA,\n ]);\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n new ListenToKnownDevicesUseCase(transportService)\n .execute()\n .subscribe((devices) => {\n observedDiscoveredDevices.push(devices);\n });\n\n // When transportA emits 1 known device\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[0]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n },\n ]);\n\n // When transportA emits 2 known devices\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n makeMockTransportDiscoveredDevice(\"transportA-device2\"),\n ]);\n\n expect(observedDiscoveredDevices[1]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n },\n {\n id: \"transportA-device2\",\n deviceModel: makeMockDeviceModel(\"transportA-device2\"),\n transport: \"mock\",\n },\n ]);\n\n // When transportA emits 1 known device (device1 disconnects)\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device2\"),\n ]);\n\n expect(observedDiscoveredDevices[2]).toEqual([\n {\n id: \"transportA-device2\",\n deviceModel: makeMockDeviceModel(\"transportA-device2\"),\n transport: \"mock\",\n },\n ]);\n\n // When transportA emits 0 known devices (device2 disconnects)\n transportAKnownDevicesSubject.next([]);\n\n expect(observedDiscoveredDevices[3]).toEqual([]);\n });\n });\n\n describe(\"when multiple transports are available\", () => {\n it(\"should return discovered devices from one of the transports as soon as it emits\", () => {\n const { transportAKnownDevicesSubject, transportA, transportB } =\n setup2MockTransports();\n\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([\n transportA,\n transportB,\n ]);\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n\n const onError = vi.fn();\n const onComplete = vi.fn();\n\n new ListenToKnownDevicesUseCase(transportService).execute().subscribe({\n next: (devices) => {\n observedDiscoveredDevices.push(devices);\n },\n error: onError,\n complete: onComplete,\n });\n\n // When transportA emits 1 known device\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[0]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n },\n ]);\n\n // When transport A listen observable completes\n transportAKnownDevicesSubject.complete();\n\n expect(onError).not.toHaveBeenCalled();\n expect(onComplete).not.toHaveBeenCalled(); // Should not complete yet because transportB has not completed\n });\n\n it(\"should combine discovered devices from multiple transports\", () => {\n const {\n transportAKnownDevicesSubject,\n transportBKnownDevicesSubject,\n transportA,\n transportB,\n } = setup2MockTransports();\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([\n transportA,\n transportB,\n ]);\n\n const onError = vi.fn();\n const onComplete = vi.fn();\n new ListenToKnownDevicesUseCase(transportService).execute().subscribe({\n next: (devices) => {\n observedDiscoveredDevices.push(devices);\n },\n error: onError,\n complete: onComplete,\n });\n\n // When transportA emits 1 known device\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[0]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n },\n ]);\n\n // When transportB emits 1 known device\n transportBKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportB-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[1]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n },\n {\n id: \"transportB-device1\",\n deviceModel: makeMockDeviceModel(\"transportB-device1\"),\n transport: \"mock\",\n },\n ]);\n\n // When transportB emits 2 known devices\n transportBKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportB-device1\"),\n makeMockTransportDiscoveredDevice(\"transportB-device2\"),\n ]);\n\n expect(observedDiscoveredDevices[2]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n },\n {\n id: \"transportB-device1\",\n deviceModel: makeMockDeviceModel(\"transportB-device1\"),\n transport: \"mock\",\n },\n {\n id: \"transportB-device2\",\n deviceModel: makeMockDeviceModel(\"transportB-device2\"),\n transport: \"mock\",\n },\n ]);\n\n // When transportA emits 0 known devices\n transportAKnownDevicesSubject.next([]);\n\n expect(observedDiscoveredDevices[3]).toEqual([\n {\n id: \"transportB-device1\",\n deviceModel: makeMockDeviceModel(\"transportB-device1\"),\n transport: \"mock\",\n },\n {\n id: \"transportB-device2\",\n deviceModel: makeMockDeviceModel(\"transportB-device2\"),\n transport: \"mock\",\n },\n ]);\n\n // When transport A listen observable completes\n transportAKnownDevicesSubject.complete();\n\n expect(onError).not.toHaveBeenCalled();\n expect(onComplete).not.toHaveBeenCalled(); // Should not complete yet because transportB has not completed\n\n // When transport B emits 0 known devices\n transportBKnownDevicesSubject.next([]);\n\n expect(observedDiscoveredDevices[4]).toEqual([]);\n\n // When transport B listen observable completes\n transportBKnownDevicesSubject.complete();\n\n expect(onError).not.toHaveBeenCalled();\n expect(onComplete).toHaveBeenCalled(); // Should complete now because all transports have completed\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["Subject", "deviceModelStubBuilder", "DefaultTransportService", "ListenToKnownDevicesUseCase", "transportService", "makeMockTransport", "props", "mockInternalDeviceModel", "makeMockDeviceModel", "id", "setup2MockTransports", "transportAKnownDevicesSubject", "transportBKnownDevicesSubject", "transportA", "transportB", "makeMockTransportDiscoveredDevice", "resolve", "reject", "useCase", "observedDiscoveredDevices", "devices", "error", "onError", "onComplete"]
4
+ "sourcesContent": ["import { Subject } from \"rxjs\";\n\nimport { type DeviceId, DeviceModel } from \"@api/device/DeviceModel\";\nimport { deviceModelStubBuilder } from \"@api/device-model/model/DeviceModel.stub\";\nimport { type TransportDiscoveredDevice } from \"@api/transport/model/TransportDiscoveredDevice\";\nimport { type DiscoveredDevice, type Transport } from \"@api/types\";\nimport { DefaultTransportService } from \"@internal/transport/service/DefaultTransportService\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nimport { ListenToKnownDevicesUseCase } from \"./ListenToKnownDevicesUseCase\";\n\nvi.mock(\"@internal/transport/service/DefaultTransportService\");\n\nlet transportService: TransportService;\nfunction makeMockTransport(props: Partial<Transport>): Transport {\n return {\n listenToKnownDevices: vi.fn(),\n connect: vi.fn(),\n disconnect: vi.fn(),\n startDiscovering: vi.fn(),\n stopDiscovering: vi.fn(),\n getIdentifier: vi.fn(),\n isSupported: vi.fn(),\n ...props,\n };\n}\n\nconst mockInternalDeviceModel = deviceModelStubBuilder();\nfunction makeMockDeviceModel(id: DeviceId): DeviceModel {\n return new DeviceModel({\n id,\n model: mockInternalDeviceModel.id,\n name: mockInternalDeviceModel.productName,\n });\n}\n\nfunction setup2MockTransports() {\n const transportAKnownDevicesSubject = new Subject<\n TransportDiscoveredDevice[]\n >();\n const transportBKnownDevicesSubject = new Subject<\n TransportDiscoveredDevice[]\n >();\n const transportA = makeMockTransport({\n listenToKnownDevices: () => transportAKnownDevicesSubject.asObservable(),\n });\n const transportB = makeMockTransport({\n listenToKnownDevices: () => transportBKnownDevicesSubject.asObservable(),\n });\n return {\n transportAKnownDevicesSubject,\n transportBKnownDevicesSubject,\n transportA,\n transportB,\n };\n}\n\nfunction makeMockTransportDiscoveredDevice(\n id: string,\n): TransportDiscoveredDevice {\n return {\n id,\n deviceModel: mockInternalDeviceModel,\n transport: \"mock\",\n };\n}\n\ndescribe(\"ListenToKnownDevicesUseCase\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n // @ts-expect-error mock\n transportService = new DefaultTransportService();\n });\n\n describe(\"when no transports are available\", () => {\n it(\"should return no discovered devices\", () =>\n new Promise<void>((resolve, reject) => {\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([]);\n\n const useCase = new ListenToKnownDevicesUseCase(transportService);\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n useCase.execute().subscribe({\n next: (devices) => {\n observedDiscoveredDevices.push(devices);\n },\n complete: () => {\n try {\n expect(observedDiscoveredDevices).toEqual([[]]);\n resolve();\n } catch (error) {\n reject(error as Error);\n }\n },\n error: (error) => {\n reject(error);\n },\n });\n }));\n });\n\n describe(\"when one transport is available\", () => {\n it(\"should return discovered devices from one transport\", () => {\n const { transportA, transportAKnownDevicesSubject } =\n setup2MockTransports();\n\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([\n transportA,\n ]);\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n new ListenToKnownDevicesUseCase(transportService)\n .execute()\n .subscribe((devices) => {\n observedDiscoveredDevices.push(devices);\n });\n\n // When transportA emits 1 known device\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[0]).toEqual([\n {\n id: \"transportA-device1\",\n available: true,\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n name: \"Ledger Nano X\",\n transport: \"mock\",\n },\n ]);\n\n // When transportA emits 2 known devices\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n makeMockTransportDiscoveredDevice(\"transportA-device2\"),\n ]);\n\n expect(observedDiscoveredDevices[1]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n {\n id: \"transportA-device2\",\n deviceModel: makeMockDeviceModel(\"transportA-device2\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transportA emits 1 known device (device1 disconnects)\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device2\"),\n ]);\n\n expect(observedDiscoveredDevices[2]).toEqual([\n {\n id: \"transportA-device2\",\n deviceModel: makeMockDeviceModel(\"transportA-device2\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transportA emits 0 known devices (device2 disconnects)\n transportAKnownDevicesSubject.next([]);\n\n expect(observedDiscoveredDevices[3]).toEqual([]);\n });\n });\n\n describe(\"when multiple transports are available\", () => {\n it(\"should return discovered devices from one of the transports as soon as it emits\", () => {\n const { transportAKnownDevicesSubject, transportA, transportB } =\n setup2MockTransports();\n\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([\n transportA,\n transportB,\n ]);\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n\n const onError = vi.fn();\n const onComplete = vi.fn();\n\n new ListenToKnownDevicesUseCase(transportService).execute().subscribe({\n next: (devices) => {\n observedDiscoveredDevices.push(devices);\n },\n error: onError,\n complete: onComplete,\n });\n\n // When transportA emits 1 known device\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[0]).toEqual([\n {\n id: \"transportA-device1\",\n available: true,\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transport A listen observable completes\n transportAKnownDevicesSubject.complete();\n\n expect(onError).not.toHaveBeenCalled();\n expect(onComplete).not.toHaveBeenCalled(); // Should not complete yet because transportB has not completed\n });\n\n it(\"should combine discovered devices from multiple transports\", () => {\n const {\n transportAKnownDevicesSubject,\n transportBKnownDevicesSubject,\n transportA,\n transportB,\n } = setup2MockTransports();\n\n const observedDiscoveredDevices: DiscoveredDevice[][] = [];\n\n vi.spyOn(transportService, \"getAllTransports\").mockReturnValue([\n transportA,\n transportB,\n ]);\n\n const onError = vi.fn();\n const onComplete = vi.fn();\n new ListenToKnownDevicesUseCase(transportService).execute().subscribe({\n next: (devices) => {\n observedDiscoveredDevices.push(devices);\n },\n error: onError,\n complete: onComplete,\n });\n\n // When transportA emits 1 known device\n transportAKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportA-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[0]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transportB emits 1 known device\n transportBKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportB-device1\"),\n ]);\n\n expect(observedDiscoveredDevices[1]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n {\n id: \"transportB-device1\",\n deviceModel: makeMockDeviceModel(\"transportB-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transportB emits 2 known devices\n transportBKnownDevicesSubject.next([\n makeMockTransportDiscoveredDevice(\"transportB-device1\"),\n makeMockTransportDiscoveredDevice(\"transportB-device2\"),\n ]);\n\n expect(observedDiscoveredDevices[2]).toEqual([\n {\n id: \"transportA-device1\",\n deviceModel: makeMockDeviceModel(\"transportA-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n {\n id: \"transportB-device1\",\n deviceModel: makeMockDeviceModel(\"transportB-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n {\n id: \"transportB-device2\",\n deviceModel: makeMockDeviceModel(\"transportB-device2\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transportA emits 0 known devices\n transportAKnownDevicesSubject.next([]);\n\n expect(observedDiscoveredDevices[3]).toEqual([\n {\n id: \"transportB-device1\",\n deviceModel: makeMockDeviceModel(\"transportB-device1\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n {\n id: \"transportB-device2\",\n deviceModel: makeMockDeviceModel(\"transportB-device2\"),\n transport: \"mock\",\n available: true,\n name: \"Ledger Nano X\",\n },\n ]);\n\n // When transport A listen observable completes\n transportAKnownDevicesSubject.complete();\n\n expect(onError).not.toHaveBeenCalled();\n expect(onComplete).not.toHaveBeenCalled(); // Should not complete yet because transportB has not completed\n\n // When transport B emits 0 known devices\n transportBKnownDevicesSubject.next([]);\n\n expect(observedDiscoveredDevices[4]).toEqual([]);\n\n // When transport B listen observable completes\n transportBKnownDevicesSubject.complete();\n\n expect(onError).not.toHaveBeenCalled();\n expect(onComplete).toHaveBeenCalled(); // Should complete now because all transports have completed\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Subject", "DeviceModel", "deviceModelStubBuilder", "DefaultTransportService", "ListenToKnownDevicesUseCase", "transportService", "makeMockTransport", "props", "mockInternalDeviceModel", "makeMockDeviceModel", "id", "setup2MockTransports", "transportAKnownDevicesSubject", "transportBKnownDevicesSubject", "transportA", "transportB", "makeMockTransportDiscoveredDevice", "resolve", "reject", "useCase", "observedDiscoveredDevices", "devices", "error", "onError", "onComplete"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var c=(i,r,o,t)=>{for(var e=t>1?void 0:t?d(r,o):r,p=i.length-1,n;p>=0;p--)(n=i[p])&&(e=(t?n(r,o,e):n(e))||e);return t&&e&&m(r,o,e),e},a=(i,r)=>(o,t)=>r(o,t,i);import{inject as D,injectable as f}from"inversify";import{map as v,mergeMap as l,of as T}from"rxjs";import{DeviceModel as u}from"../../../api/device/DeviceModel";import{TransportNotSupportedError as g}from"../../../api/transport/model/Errors";import{transportDiTypes as h}from"../../transport/di/transportDiTypes";let s=class{constructor(r){this._transportService=r}mapDiscoveredDevice(r){const o=new u({id:r.id,model:r.deviceModel.id,name:r.deviceModel.productName});return{id:r.id,deviceModel:o,transport:r.transport}}execute({transport:r}){if(!r){const t=this._transportService.getAllTransports();return T(...t).pipe(l(e=>e.startDiscovering().pipe(v(p=>this.mapDiscoveredDevice(p)))))}return this._transportService.getTransport(r).caseOf({Just:t=>t.startDiscovering().pipe(v(e=>this.mapDiscoveredDevice(e))),Nothing:()=>{throw new g(new Error("Unknown transport"))}})}};s=c([f(),a(0,D(h.TransportService))],s);export{s as StartDiscoveringUseCase};
1
+ var v=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var a=(i,r,o,t)=>{for(var e=t>1?void 0:t?d(r,o):r,n=i.length-1,s;n>=0;n--)(s=i[n])&&(e=(t?s(r,o,e):s(e))||e);return t&&e&&v(r,o,e),e},c=(i,r)=>(o,t)=>r(o,t,i);import{inject as D,injectable as l}from"inversify";import{map as m,mergeMap as f,of as u}from"rxjs";import{DeviceModel as T}from"../../../api/device/DeviceModel";import{TransportNotSupportedError as b}from"../../../api/transport/model/Errors";import{transportDiTypes as g}from"../../transport/di/transportDiTypes";let p=class{constructor(r){this._transportService=r}mapDiscoveredDevice(r){const o=new T({id:r.id,model:r.deviceModel.id,name:r.deviceModel.productName});return{id:r.id,deviceModel:o,transport:r.transport,name:r.name||o.name,available:r.available===void 0?!0:r.available}}execute({transport:r}){if(!r){const t=this._transportService.getAllTransports();return u(...t).pipe(f(e=>e.startDiscovering().pipe(m(n=>this.mapDiscoveredDevice(n)))))}return this._transportService.getTransport(r).caseOf({Just:t=>t.startDiscovering().pipe(m(e=>this.mapDiscoveredDevice(e))),Nothing:()=>{throw new b(new Error("Unknown transport"))}})}};p=a([l(),c(0,D(g.TransportService))],p);export{p as StartDiscoveringUseCase};
2
2
  //# sourceMappingURL=StartDiscoveringUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/use-case/StartDiscoveringUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { map, mergeMap, Observable, of } from \"rxjs\";\n\nimport { DeviceModel } from \"@api/device/DeviceModel\";\nimport { DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport { TransportNotSupportedError } from \"@api/transport/model/Errors\";\nimport { TransportDiscoveredDevice } from \"@api/transport/model/TransportDiscoveredDevice\";\nimport { TransportIdentifier } from \"@api/transport/model/TransportIdentifier\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nexport type StartDiscoveringUseCaseArgs = {\n /**\n * Identifier of the transport to start discovering devices.\n * Can be undefined to discover all available transports in parralel.\n */\n transport?: TransportIdentifier;\n};\n\n/**\n * Starts discovering devices connected.\n *\n * For the WebHID implementation, this use-case needs to be called as a result of an user interaction (button \"click\" event for ex).\n */\n@injectable()\nexport class StartDiscoveringUseCase {\n constructor(\n @inject(transportDiTypes.TransportService)\n private readonly _transportService: TransportService,\n ) {}\n\n private mapDiscoveredDevice(\n device: TransportDiscoveredDevice,\n ): DiscoveredDevice {\n const deviceModel = new DeviceModel({\n id: device.id,\n model: device.deviceModel.id,\n name: device.deviceModel.productName,\n });\n return {\n id: device.id,\n deviceModel,\n transport: device.transport,\n };\n }\n\n execute({\n transport,\n }: StartDiscoveringUseCaseArgs): Observable<DiscoveredDevice> {\n if (!transport) {\n const transports = this._transportService.getAllTransports();\n return of(...transports).pipe(\n mergeMap((instance) =>\n instance\n .startDiscovering()\n .pipe(map((device) => this.mapDiscoveredDevice(device))),\n ),\n );\n }\n\n const instance = this._transportService.getTransport(transport);\n\n return instance.caseOf({\n Just: (t) => {\n return t\n .startDiscovering()\n .pipe(map((device) => this.mapDiscoveredDevice(device)));\n },\n Nothing: () => {\n throw new TransportNotSupportedError(new Error(\"Unknown transport\"));\n },\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,OAAAC,EAAK,YAAAC,EAAsB,MAAAC,MAAU,OAE9C,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,8BAAAC,MAAkC,8BAG3C,OAAS,oBAAAC,MAAwB,0CAiB1B,IAAMC,EAAN,KAA8B,CACnC,YAEmBC,EACjB,CADiB,uBAAAA,CAChB,CAEK,oBACNC,EACkB,CAClB,MAAMC,EAAc,IAAIC,EAAY,CAClC,GAAIF,EAAO,GACX,MAAOA,EAAO,YAAY,GAC1B,KAAMA,EAAO,YAAY,WAC3B,CAAC,EACD,MAAO,CACL,GAAIA,EAAO,GACX,YAAAC,EACA,UAAWD,EAAO,SACpB,CACF,CAEA,QAAQ,CACN,UAAAG,CACF,EAA8D,CAC5D,GAAI,CAACA,EAAW,CACd,MAAMC,EAAa,KAAK,kBAAkB,iBAAiB,EAC3D,OAAOC,EAAG,GAAGD,CAAU,EAAE,KACvBE,EAAUC,GACRA,EACG,iBAAiB,EACjB,KAAKC,EAAKR,GAAW,KAAK,oBAAoBA,CAAM,CAAC,CAAC,CAC3D,CACF,CACF,CAIA,OAFiB,KAAK,kBAAkB,aAAaG,CAAS,EAE9C,OAAO,CACrB,KAAO,GACE,EACJ,iBAAiB,EACjB,KAAKK,EAAKR,GAAW,KAAK,oBAAoBA,CAAM,CAAC,CAAC,EAE3D,QAAS,IAAM,CACb,MAAM,IAAIS,EAA2B,IAAI,MAAM,mBAAmB,CAAC,CACrE,CACF,CAAC,CACH,CACF,EAhDaX,EAANY,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAiB,gBAAgB,IAFhChB",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { map, mergeMap, Observable, of } from \"rxjs\";\n\nimport { DeviceModel } from \"@api/device/DeviceModel\";\nimport { DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport { TransportNotSupportedError } from \"@api/transport/model/Errors\";\nimport { TransportDiscoveredDevice } from \"@api/transport/model/TransportDiscoveredDevice\";\nimport { TransportIdentifier } from \"@api/transport/model/TransportIdentifier\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nexport type StartDiscoveringUseCaseArgs = {\n /**\n * Identifier of the transport to start discovering devices.\n * Can be undefined to discover all available transports in parralel.\n */\n transport?: TransportIdentifier;\n};\n\n/**\n * Starts discovering devices connected.\n *\n * For the WebHID implementation, this use-case needs to be called as a result of an user interaction (button \"click\" event for ex).\n */\n@injectable()\nexport class StartDiscoveringUseCase {\n constructor(\n @inject(transportDiTypes.TransportService)\n private readonly _transportService: TransportService,\n ) {}\n\n private mapDiscoveredDevice(\n device: TransportDiscoveredDevice,\n ): DiscoveredDevice {\n const deviceModel = new DeviceModel({\n id: device.id,\n model: device.deviceModel.id,\n name: device.deviceModel.productName,\n });\n return {\n id: device.id,\n deviceModel,\n transport: device.transport,\n name: device.name || deviceModel.name,\n available: device.available === undefined ? true : device.available,\n };\n }\n\n execute({\n transport,\n }: StartDiscoveringUseCaseArgs): Observable<DiscoveredDevice> {\n if (!transport) {\n const transports = this._transportService.getAllTransports();\n return of(...transports).pipe(\n mergeMap((instance) =>\n instance\n .startDiscovering()\n .pipe(map((device) => this.mapDiscoveredDevice(device))),\n ),\n );\n }\n\n const instance = this._transportService.getTransport(transport);\n\n return instance.caseOf({\n Just: (t) => {\n return t\n .startDiscovering()\n .pipe(map((device) => this.mapDiscoveredDevice(device)));\n },\n Nothing: () => {\n throw new TransportNotSupportedError(new Error(\"Unknown transport\"));\n },\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,OAAAC,EAAK,YAAAC,EAAsB,MAAAC,MAAU,OAE9C,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,8BAAAC,MAAkC,8BAG3C,OAAS,oBAAAC,MAAwB,0CAiB1B,IAAMC,EAAN,KAA8B,CACnC,YAEmBC,EACjB,CADiB,uBAAAA,CAChB,CAEK,oBACNC,EACkB,CAClB,MAAMC,EAAc,IAAIC,EAAY,CAClC,GAAIF,EAAO,GACX,MAAOA,EAAO,YAAY,GAC1B,KAAMA,EAAO,YAAY,WAC3B,CAAC,EACD,MAAO,CACL,GAAIA,EAAO,GACX,YAAAC,EACA,UAAWD,EAAO,UAClB,KAAMA,EAAO,MAAQC,EAAY,KACjC,UAAWD,EAAO,YAAc,OAAY,GAAOA,EAAO,SAC5D,CACF,CAEA,QAAQ,CACN,UAAAG,CACF,EAA8D,CAC5D,GAAI,CAACA,EAAW,CACd,MAAMC,EAAa,KAAK,kBAAkB,iBAAiB,EAC3D,OAAOC,EAAG,GAAGD,CAAU,EAAE,KACvBE,EAAUC,GACRA,EACG,iBAAiB,EACjB,KAAKC,EAAKR,GAAW,KAAK,oBAAoBA,CAAM,CAAC,CAAC,CAC3D,CACF,CACF,CAIA,OAFiB,KAAK,kBAAkB,aAAaG,CAAS,EAE9C,OAAO,CACrB,KAAO,GACE,EACJ,iBAAiB,EACjB,KAAKK,EAAKR,GAAW,KAAK,oBAAoBA,CAAM,CAAC,CAAC,EAE3D,QAAS,IAAM,CACb,MAAM,IAAIS,EAA2B,IAAI,MAAM,mBAAmB,CAAC,CACrE,CACF,CAAC,CACH,CACF,EAlDaX,EAANY,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAiB,gBAAgB,IAFhChB",
6
6
  "names": ["inject", "injectable", "map", "mergeMap", "of", "DeviceModel", "TransportNotSupportedError", "transportDiTypes", "StartDiscoveringUseCase", "_transportService", "device", "deviceModel", "DeviceModel", "transport", "transports", "of", "mergeMap", "instance", "map", "TransportNotSupportedError", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Maybe as d}from"purify-ts";import{of as p}from"rxjs";import{DeviceModel as v}from"../../../api/device/DeviceModel";import{TransportMock as m}from"../../../api/transport/model/__mocks__/TransportMock";import{DefaultTransportService as l}from"../../transport/service/DefaultTransportService";import{StartDiscoveringUseCase as D}from"./StartDiscoveringUseCase";vi.mock("@internal/transport/service/DefaultTransportService");let r,o;describe("StartDiscoveringUseCase",()=>{const c={id:"internal-discovered-device-id",deviceModel:{id:"nanoSP",productName:"productName"},transport:"USB"};beforeEach(()=>{r=new m,o=new l}),afterEach(()=>{vi.restoreAllMocks()}),test("If connect use case encounter an error, return it",()=>new Promise((s,t)=>{const i=vi.fn(()=>p(c));vi.spyOn(r,"startDiscovering").mockImplementation(i),vi.spyOn(o,"getTransport").mockReturnValue(d.of(r));const n=new D(o).execute({transport:"USB"});expect(i).toHaveBeenCalled(),n.subscribe({next:e=>{try{expect(e).toStrictEqual({id:"internal-discovered-device-id",transport:"USB",deviceModel:new v({id:"internal-discovered-device-id",model:"nanoSP",name:"productName"})}),s()}catch(a){t(a)}},error:e=>{t(e)}})}))});
1
+ import{Maybe as d}from"purify-ts";import{of as p}from"rxjs";import{DeviceModel as v}from"../../../api/device/DeviceModel";import{TransportMock as m}from"../../../api/transport/model/__mocks__/TransportMock";import{DefaultTransportService as l}from"../../transport/service/DefaultTransportService";import{StartDiscoveringUseCase as D}from"./StartDiscoveringUseCase";vi.mock("@internal/transport/service/DefaultTransportService");let r,o;describe("StartDiscoveringUseCase",()=>{const c={id:"internal-discovered-device-id",deviceModel:{id:"nanoSP",productName:"productName"},transport:"USB"};beforeEach(()=>{r=new m,o=new l}),afterEach(()=>{vi.restoreAllMocks()}),test("If connect use case encounter an error, return it",()=>new Promise((s,t)=>{const i=vi.fn(()=>p(c));vi.spyOn(r,"startDiscovering").mockImplementation(i),vi.spyOn(o,"getTransport").mockReturnValue(d.of(r));const n=new D(o).execute({transport:"USB"});expect(i).toHaveBeenCalled(),n.subscribe({next:e=>{try{expect(e).toStrictEqual({id:"internal-discovered-device-id",transport:"USB",available:!0,name:"productName",deviceModel:new v({id:"internal-discovered-device-id",model:"nanoSP",name:"productName"})}),s()}catch(a){t(a)}},error:e=>{t(e)}})}))});
2
2
  //# sourceMappingURL=StartDiscoveringUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/use-case/StartDiscoveringUseCase.test.ts"],
4
- "sourcesContent": ["import { Maybe } from \"purify-ts\";\nimport { of } from \"rxjs\";\n\nimport { DeviceModel } from \"@api/device/DeviceModel\";\nimport { type TransportDeviceModel } from \"@api/device-model/model/DeviceModel\";\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { type TransportDiscoveredDevice } from \"@api/transport/model/TransportDiscoveredDevice\";\nimport {\n type DeviceModelId,\n type DiscoveredDevice,\n type Transport,\n} from \"@api/types\";\nimport { DefaultTransportService } from \"@internal/transport/service/DefaultTransportService\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nimport { StartDiscoveringUseCase } from \"./StartDiscoveringUseCase\";\n\nvi.mock(\"@internal/transport/service/DefaultTransportService\");\n\nlet transport: Transport;\nlet transportService: TransportService;\n\ndescribe(\"StartDiscoveringUseCase\", () => {\n const stubDiscoveredDevice: TransportDiscoveredDevice = {\n id: \"internal-discovered-device-id\",\n deviceModel: {\n id: \"nanoSP\" as DeviceModelId,\n productName: \"productName\",\n } as TransportDeviceModel,\n transport: \"USB\",\n };\n\n beforeEach(() => {\n transport = new TransportMock();\n // @ts-expect-error mock\n transportService = new DefaultTransportService();\n });\n\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n test(\"If connect use case encounter an error, return it\", () =>\n new Promise<void>((resolve, reject) => {\n const mockedStartDiscovering = vi.fn(() => {\n return of(stubDiscoveredDevice);\n });\n vi.spyOn(transport, \"startDiscovering\").mockImplementation(\n mockedStartDiscovering,\n );\n\n vi.spyOn(transportService, \"getTransport\").mockReturnValue(\n Maybe.of(transport),\n );\n\n const usecase = new StartDiscoveringUseCase(transportService);\n\n const discover = usecase.execute({ transport: \"USB\" });\n\n expect(mockedStartDiscovering).toHaveBeenCalled();\n\n discover.subscribe({\n next: (discoveredDevice) => {\n try {\n expect(discoveredDevice).toStrictEqual({\n id: \"internal-discovered-device-id\",\n transport: \"USB\",\n deviceModel: new DeviceModel({\n id: \"internal-discovered-device-id\",\n model: \"nanoSP\" as DeviceModelId,\n name: \"productName\",\n }),\n } as DiscoveredDevice);\n resolve();\n } catch (error) {\n reject(error);\n }\n },\n error: (error) => {\n reject(error);\n },\n });\n }));\n});\n"],
5
- "mappings": "AAAA,OAAS,SAAAA,MAAa,YACtB,OAAS,MAAAC,MAAU,OAEnB,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,iBAAAC,MAAqB,+CAO9B,OAAS,2BAAAC,MAA+B,sDAGxC,OAAS,2BAAAC,MAA+B,4BAExC,GAAG,KAAK,qDAAqD,EAE7D,IAAIC,EACAC,EAEJ,SAAS,0BAA2B,IAAM,CACxC,MAAMC,EAAkD,CACtD,GAAI,gCACJ,YAAa,CACX,GAAI,SACJ,YAAa,aACf,EACA,UAAW,KACb,EAEA,WAAW,IAAM,CACfF,EAAY,IAAIH,EAEhBI,EAAmB,IAAIH,CACzB,CAAC,EAED,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EAED,KAAK,oDAAqD,IACxD,IAAI,QAAc,CAACK,EAASC,IAAW,CACrC,MAAMC,EAAyB,GAAG,GAAG,IAC5BV,EAAGO,CAAoB,CAC/B,EACD,GAAG,MAAMF,EAAW,kBAAkB,EAAE,mBACtCK,CACF,EAEA,GAAG,MAAMJ,EAAkB,cAAc,EAAE,gBACzCP,EAAM,GAAGM,CAAS,CACpB,EAIA,MAAMM,EAFU,IAAIP,EAAwBE,CAAgB,EAEnC,QAAQ,CAAE,UAAW,KAAM,CAAC,EAErD,OAAOI,CAAsB,EAAE,iBAAiB,EAEhDC,EAAS,UAAU,CACjB,KAAOC,GAAqB,CAC1B,GAAI,CACF,OAAOA,CAAgB,EAAE,cAAc,CACrC,GAAI,gCACJ,UAAW,MACX,YAAa,IAAIX,EAAY,CAC3B,GAAI,gCACJ,MAAO,SACP,KAAM,aACR,CAAC,CACH,CAAqB,EACrBO,EAAQ,CACV,OAASK,EAAO,CACdJ,EAAOI,CAAK,CACd,CACF,EACA,MAAQA,GAAU,CAChBJ,EAAOI,CAAK,CACd,CACF,CAAC,CACH,CAAC,CAAC,CACN,CAAC",
4
+ "sourcesContent": ["import { Maybe } from \"purify-ts\";\nimport { of } from \"rxjs\";\n\nimport { DeviceModel } from \"@api/device/DeviceModel\";\nimport { type TransportDeviceModel } from \"@api/device-model/model/DeviceModel\";\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { type TransportDiscoveredDevice } from \"@api/transport/model/TransportDiscoveredDevice\";\nimport {\n type DeviceModelId,\n type DiscoveredDevice,\n type Transport,\n} from \"@api/types\";\nimport { DefaultTransportService } from \"@internal/transport/service/DefaultTransportService\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nimport { StartDiscoveringUseCase } from \"./StartDiscoveringUseCase\";\n\nvi.mock(\"@internal/transport/service/DefaultTransportService\");\n\nlet transport: Transport;\nlet transportService: TransportService;\n\ndescribe(\"StartDiscoveringUseCase\", () => {\n const stubDiscoveredDevice: TransportDiscoveredDevice = {\n id: \"internal-discovered-device-id\",\n deviceModel: {\n id: \"nanoSP\" as DeviceModelId,\n productName: \"productName\",\n } as TransportDeviceModel,\n transport: \"USB\",\n };\n\n beforeEach(() => {\n transport = new TransportMock();\n // @ts-expect-error mock\n transportService = new DefaultTransportService();\n });\n\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n test(\"If connect use case encounter an error, return it\", () =>\n new Promise<void>((resolve, reject) => {\n const mockedStartDiscovering = vi.fn(() => {\n return of(stubDiscoveredDevice);\n });\n vi.spyOn(transport, \"startDiscovering\").mockImplementation(\n mockedStartDiscovering,\n );\n\n vi.spyOn(transportService, \"getTransport\").mockReturnValue(\n Maybe.of(transport),\n );\n\n const usecase = new StartDiscoveringUseCase(transportService);\n\n const discover = usecase.execute({ transport: \"USB\" });\n\n expect(mockedStartDiscovering).toHaveBeenCalled();\n\n discover.subscribe({\n next: (discoveredDevice) => {\n try {\n expect(discoveredDevice).toStrictEqual({\n id: \"internal-discovered-device-id\",\n transport: \"USB\",\n available: true,\n name: \"productName\",\n deviceModel: new DeviceModel({\n id: \"internal-discovered-device-id\",\n model: \"nanoSP\" as DeviceModelId,\n name: \"productName\",\n }),\n } as DiscoveredDevice);\n resolve();\n } catch (error) {\n reject(error);\n }\n },\n error: (error) => {\n reject(error);\n },\n });\n }));\n});\n"],
5
+ "mappings": "AAAA,OAAS,SAAAA,MAAa,YACtB,OAAS,MAAAC,MAAU,OAEnB,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,iBAAAC,MAAqB,+CAO9B,OAAS,2BAAAC,MAA+B,sDAGxC,OAAS,2BAAAC,MAA+B,4BAExC,GAAG,KAAK,qDAAqD,EAE7D,IAAIC,EACAC,EAEJ,SAAS,0BAA2B,IAAM,CACxC,MAAMC,EAAkD,CACtD,GAAI,gCACJ,YAAa,CACX,GAAI,SACJ,YAAa,aACf,EACA,UAAW,KACb,EAEA,WAAW,IAAM,CACfF,EAAY,IAAIH,EAEhBI,EAAmB,IAAIH,CACzB,CAAC,EAED,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EAED,KAAK,oDAAqD,IACxD,IAAI,QAAc,CAACK,EAASC,IAAW,CACrC,MAAMC,EAAyB,GAAG,GAAG,IAC5BV,EAAGO,CAAoB,CAC/B,EACD,GAAG,MAAMF,EAAW,kBAAkB,EAAE,mBACtCK,CACF,EAEA,GAAG,MAAMJ,EAAkB,cAAc,EAAE,gBACzCP,EAAM,GAAGM,CAAS,CACpB,EAIA,MAAMM,EAFU,IAAIP,EAAwBE,CAAgB,EAEnC,QAAQ,CAAE,UAAW,KAAM,CAAC,EAErD,OAAOI,CAAsB,EAAE,iBAAiB,EAEhDC,EAAS,UAAU,CACjB,KAAOC,GAAqB,CAC1B,GAAI,CACF,OAAOA,CAAgB,EAAE,cAAc,CACrC,GAAI,gCACJ,UAAW,MACX,UAAW,GACX,KAAM,cACN,YAAa,IAAIX,EAAY,CAC3B,GAAI,gCACJ,MAAO,SACP,KAAM,aACR,CAAC,CACH,CAAqB,EACrBO,EAAQ,CACV,OAASK,EAAO,CACdJ,EAAOI,CAAK,CACd,CACF,EACA,MAAQA,GAAU,CAChBJ,EAAOI,CAAK,CACd,CACF,CAAC,CACH,CAAC,CAAC,CACN,CAAC",
6
6
  "names": ["Maybe", "of", "DeviceModel", "TransportMock", "DefaultTransportService", "StartDiscoveringUseCase", "transport", "transportService", "stubDiscoveredDevice", "resolve", "reject", "mockedStartDiscovering", "discover", "discoveredDevice", "error"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var u=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=(s,r,e,t)=>{for(var o=t>1?void 0:t?m(r,e):r,n=s.length-1,p;n>=0;n--)(p=s[n])&&(o=(t?p(r,e,o):p(o))||o);return t&&o&&u(r,e,o),o},i=(s,r)=>(e,t)=>r(e,t,s);import{inject as a,injectable as f}from"inversify";import{Left as h,Maybe as S,Right as T}from"purify-ts";import{NoTransportProvidedError as F,TransportAlreadyExistsError as _}from"../../../api/transport/model/Errors";import{deviceModelTypes as M}from"../../device-model/di/deviceModelTypes";import{deviceSessionTypes as v}from"../../device-session/di/deviceSessionTypes";import{loggerTypes as A}from"../../logger-publisher/di/loggerTypes";import{transportDiTypes as y}from"../../transport/di/transportDiTypes";let c=class{constructor(r,e,t,o,n,p){this._config=e;this._loggerModuleFactory=t;this._deviceModelDataSource=o;this._apduSenderServiceFactory=n;this._apduReceiverServiceFactory=p;if(this._logger=t("TransportService"),r.length===0)throw this._logger.warn("No transports provided, please check your configuration"),new F("No transports provided, please check your configuration");for(const l of r){const d=this.addTransport(l);if(d.isLeft())throw d.extract()}}_transports=new Map;_logger;addTransport(r){const e=r({deviceModelDataSource:this._deviceModelDataSource,loggerServiceFactory:this._loggerModuleFactory,config:this._config,apduSenderServiceFactory:this._apduSenderServiceFactory,apduReceiverServiceFactory:this._apduReceiverServiceFactory});return this.addTransportInternal(e)}addTransportInternal(r){return this.getTransport(r.getIdentifier()).isJust()?(this._logger.warn(`Transport ${r.getIdentifier()} already exists, please check your configuration`),h(new _(`Transport ${r.getIdentifier()} already exists, please check your configuration`))):(this._transports.set(r.getIdentifier(),r),T(void 0))}getTransport(r){return S.fromNullable(this._transports.get(r))}getAllTransports(){return Array.from(this._transports.values())}};c=g([f(),i(0,a(y.TransportsInput)),i(1,a(y.DmkConfig)),i(2,a(A.LoggerPublisherServiceFactory)),i(3,a(M.DeviceModelDataSource)),i(4,a(v.ApduSenderServiceFactory)),i(5,a(v.ApduReceiverServiceFactory))],c);export{c as DefaultTransportService};
1
+ var f=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var v=(s,r,e,o)=>{for(var t=o>1?void 0:o?m(r,e):r,n=s.length-1,c;n>=0;n--)(c=s[n])&&(t=(o?c(r,e,t):c(t))||t);return o&&t&&f(r,e,t),t},i=(s,r)=>(e,o)=>r(e,o,s);import{inject as a,injectable as u}from"inversify";import{Left as S,Maybe as h,Right as T}from"purify-ts";import{NoTransportProvidedError as F,TransportAlreadyExistsError as _}from"../../../api/transport/model/Errors";import{deviceModelTypes as D}from"../../device-model/di/deviceModelTypes";import{deviceSessionTypes as g}from"../../device-session/di/deviceSessionTypes";import{loggerTypes as M}from"../../logger-publisher/di/loggerTypes";import{transportDiTypes as l}from"../../transport/di/transportDiTypes";let p=class{constructor(r,e,o,t,n,c){this._config=e;this._loggerModuleFactory=o;this._deviceModelDataSource=t;this._apduSenderServiceFactory=n;this._apduReceiverServiceFactory=c;if(this._logger=o("TransportService"),r.length===0)throw this._logger.warn("No transports provided, please check your configuration"),new F("No transports provided, please check your configuration");for(const y of r){const d=this.addTransport(y);if(d.isLeft())throw d.extract()}}_transports=new Map;_logger;addTransport(r){const e=r({deviceModelDataSource:this._deviceModelDataSource,loggerServiceFactory:this._loggerModuleFactory,config:this._config,apduSenderServiceFactory:this._apduSenderServiceFactory,apduReceiverServiceFactory:this._apduReceiverServiceFactory});return this.addTransportInternal(e)}addTransportInternal(r){return this.getTransport(r.getIdentifier()).isJust()?(this._logger.warn(`Transport ${r.getIdentifier()} already exists, please check your configuration`),S(new _(`Transport ${r.getIdentifier()} already exists, please check your configuration`))):(this._transports.set(r.getIdentifier(),r),T(void 0))}getTransport(r){return h.fromNullable(this._transports.get(r))}getAllTransports(){return Array.from(this._transports.values())}async closeAllTransports(r){const e=this.getAllTransports();for(const o of r)for(const t of e)await t.disconnect({connectedDevice:o.connectedDevice})}};p=v([u(),i(0,a(l.TransportsInput)),i(1,a(l.DmkConfig)),i(2,a(M.LoggerPublisherServiceFactory)),i(3,a(D.DeviceModelDataSource)),i(4,a(g.ApduSenderServiceFactory)),i(5,a(g.ApduReceiverServiceFactory))],p);export{p as DefaultTransportService};
2
2
  //# sourceMappingURL=DefaultTransportService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/transport/service/DefaultTransportService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Left, Maybe, Right } from \"purify-ts\";\n\nimport { type DeviceModelDataSource } from \"@api/device-model/data/DeviceModelDataSource\";\nimport { type ApduReceiverServiceFactory } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderServiceFactory } from \"@api/device-session/service/ApduSenderService\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport {\n NoTransportProvidedError,\n TransportAlreadyExistsError,\n} from \"@api/transport/model/Errors\";\nimport { TransportFactory } from \"@api/transport/model/Transport\";\nimport { Transport } from \"@api/types\";\nimport { deviceModelTypes } from \"@internal/device-model/di/deviceModelTypes\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\n\nimport { TransportService } from \"./TransportService\";\n\n@injectable()\nexport class DefaultTransportService implements TransportService {\n private _transports: Map<string, Transport> = new Map();\n private _logger: LoggerPublisherService;\n\n constructor(\n @inject(transportDiTypes.TransportsInput)\n _transports: TransportFactory[],\n @inject(transportDiTypes.DmkConfig)\n private readonly _config: DmkConfig,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n private readonly _loggerModuleFactory: (\n tag: string,\n ) => LoggerPublisherService,\n @inject(deviceModelTypes.DeviceModelDataSource)\n private readonly _deviceModelDataSource: DeviceModelDataSource,\n @inject(deviceSessionTypes.ApduSenderServiceFactory)\n private readonly _apduSenderServiceFactory: ApduSenderServiceFactory,\n @inject(deviceSessionTypes.ApduReceiverServiceFactory)\n private readonly _apduReceiverServiceFactory: ApduReceiverServiceFactory,\n ) {\n this._logger = _loggerModuleFactory(\"TransportService\");\n\n if (_transports.length === 0) {\n this._logger.warn(\n \"No transports provided, please check your configuration\",\n );\n\n throw new NoTransportProvidedError(\n \"No transports provided, please check your configuration\",\n );\n }\n\n for (const transport of _transports) {\n const either = this.addTransport(transport);\n\n if (either.isLeft()) {\n throw either.extract();\n }\n }\n }\n\n addTransport(\n factory: TransportFactory,\n ): Either<TransportAlreadyExistsError, void> {\n const transport = factory({\n deviceModelDataSource: this._deviceModelDataSource,\n loggerServiceFactory: this._loggerModuleFactory,\n config: this._config,\n apduSenderServiceFactory: this._apduSenderServiceFactory,\n apduReceiverServiceFactory: this._apduReceiverServiceFactory,\n });\n\n return this.addTransportInternal(transport);\n }\n\n private addTransportInternal(\n transport: Transport,\n ): Either<TransportAlreadyExistsError, void> {\n const MaybeTransport = this.getTransport(transport.getIdentifier());\n\n if (MaybeTransport.isJust()) {\n this._logger.warn(\n `Transport ${transport.getIdentifier()} already exists, please check your configuration`,\n );\n\n return Left(\n new TransportAlreadyExistsError(\n `Transport ${transport.getIdentifier()} already exists, please check your configuration`,\n ),\n );\n }\n\n this._transports.set(transport.getIdentifier(), transport);\n return Right(undefined);\n }\n\n getTransport(identifier: string): Maybe<Transport> {\n return Maybe.fromNullable(this._transports.get(identifier));\n }\n\n getAllTransports(): Transport[] {\n return Array.from(this._transports.values());\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,EAAO,SAAAC,MAAa,YAO3C,OACE,4BAAAC,EACA,+BAAAC,MACK,8BAGP,OAAS,oBAAAC,MAAwB,6CACjC,OAAS,sBAAAC,MAA0B,iDACnC,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,oBAAAC,MAAwB,0CAK1B,IAAMC,EAAN,KAA0D,CAI/D,YAEEC,EAEiBC,EAEAC,EAIAC,EAEAC,EAEAC,EACjB,CAXiB,aAAAJ,EAEA,0BAAAC,EAIA,4BAAAC,EAEA,+BAAAC,EAEA,iCAAAC,EAIjB,GAFA,KAAK,QAAUH,EAAqB,kBAAkB,EAElDF,EAAY,SAAW,EACzB,WAAK,QAAQ,KACX,yDACF,EAEM,IAAIM,EACR,yDACF,EAGF,UAAWC,KAAaP,EAAa,CACnC,MAAMQ,EAAS,KAAK,aAAaD,CAAS,EAE1C,GAAIC,EAAO,OAAO,EAChB,MAAMA,EAAO,QAAQ,CAEzB,CACF,CAtCQ,YAAsC,IAAI,IAC1C,QAuCR,aACEC,EAC2C,CAC3C,MAAMF,EAAYE,EAAQ,CACxB,sBAAuB,KAAK,uBAC5B,qBAAsB,KAAK,qBAC3B,OAAQ,KAAK,QACb,yBAA0B,KAAK,0BAC/B,2BAA4B,KAAK,2BACnC,CAAC,EAED,OAAO,KAAK,qBAAqBF,CAAS,CAC5C,CAEQ,qBACNA,EAC2C,CAG3C,OAFuB,KAAK,aAAaA,EAAU,cAAc,CAAC,EAE/C,OAAO,GACxB,KAAK,QAAQ,KACX,aAAaA,EAAU,cAAc,CAAC,kDACxC,EAEOG,EACL,IAAIC,EACF,aAAaJ,EAAU,cAAc,CAAC,kDACxC,CACF,IAGF,KAAK,YAAY,IAAIA,EAAU,cAAc,EAAGA,CAAS,EAClDK,EAAM,MAAS,EACxB,CAEA,aAAaC,EAAsC,CACjD,OAAOC,EAAM,aAAa,KAAK,YAAY,IAAID,CAAU,CAAC,CAC5D,CAEA,kBAAgC,CAC9B,OAAO,MAAM,KAAK,KAAK,YAAY,OAAO,CAAC,CAC7C,CACF,EAnFad,EAANgB,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAiB,eAAe,GAEvCF,EAAA,EAAAC,EAAOC,EAAiB,SAAS,GAEjCF,EAAA,EAAAC,EAAOE,EAAY,6BAA6B,GAIhDH,EAAA,EAAAC,EAAOG,EAAiB,qBAAqB,GAE7CJ,EAAA,EAAAC,EAAOI,EAAmB,wBAAwB,GAElDL,EAAA,EAAAC,EAAOI,EAAmB,0BAA0B,IAjB5CvB",
6
- "names": ["inject", "injectable", "Left", "Maybe", "Right", "NoTransportProvidedError", "TransportAlreadyExistsError", "deviceModelTypes", "deviceSessionTypes", "loggerTypes", "transportDiTypes", "DefaultTransportService", "_transports", "_config", "_loggerModuleFactory", "_deviceModelDataSource", "_apduSenderServiceFactory", "_apduReceiverServiceFactory", "NoTransportProvidedError", "transport", "either", "factory", "Left", "TransportAlreadyExistsError", "Right", "identifier", "Maybe", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes", "loggerTypes", "deviceModelTypes", "deviceSessionTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Left, Maybe, Right } from \"purify-ts\";\n\nimport { type DeviceModelDataSource } from \"@api/device-model/data/DeviceModelDataSource\";\nimport { type ApduReceiverServiceFactory } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderServiceFactory } from \"@api/device-session/service/ApduSenderService\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport {\n NoTransportProvidedError,\n TransportAlreadyExistsError,\n} from \"@api/transport/model/Errors\";\nimport { TransportFactory } from \"@api/transport/model/Transport\";\nimport { Transport } from \"@api/types\";\nimport { deviceModelTypes } from \"@internal/device-model/di/deviceModelTypes\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\n\nimport { TransportService } from \"./TransportService\";\n\n@injectable()\nexport class DefaultTransportService implements TransportService {\n private _transports: Map<string, Transport> = new Map();\n private _logger: LoggerPublisherService;\n\n constructor(\n @inject(transportDiTypes.TransportsInput)\n _transports: TransportFactory[],\n @inject(transportDiTypes.DmkConfig)\n private readonly _config: DmkConfig,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n private readonly _loggerModuleFactory: (\n tag: string,\n ) => LoggerPublisherService,\n @inject(deviceModelTypes.DeviceModelDataSource)\n private readonly _deviceModelDataSource: DeviceModelDataSource,\n @inject(deviceSessionTypes.ApduSenderServiceFactory)\n private readonly _apduSenderServiceFactory: ApduSenderServiceFactory,\n @inject(deviceSessionTypes.ApduReceiverServiceFactory)\n private readonly _apduReceiverServiceFactory: ApduReceiverServiceFactory,\n ) {\n this._logger = _loggerModuleFactory(\"TransportService\");\n\n if (_transports.length === 0) {\n this._logger.warn(\n \"No transports provided, please check your configuration\",\n );\n\n throw new NoTransportProvidedError(\n \"No transports provided, please check your configuration\",\n );\n }\n\n for (const transport of _transports) {\n const either = this.addTransport(transport);\n\n if (either.isLeft()) {\n throw either.extract();\n }\n }\n }\n\n addTransport(\n factory: TransportFactory,\n ): Either<TransportAlreadyExistsError, void> {\n const transport = factory({\n deviceModelDataSource: this._deviceModelDataSource,\n loggerServiceFactory: this._loggerModuleFactory,\n config: this._config,\n apduSenderServiceFactory: this._apduSenderServiceFactory,\n apduReceiverServiceFactory: this._apduReceiverServiceFactory,\n });\n\n return this.addTransportInternal(transport);\n }\n\n private addTransportInternal(\n transport: Transport,\n ): Either<TransportAlreadyExistsError, void> {\n const MaybeTransport = this.getTransport(transport.getIdentifier());\n\n if (MaybeTransport.isJust()) {\n this._logger.warn(\n `Transport ${transport.getIdentifier()} already exists, please check your configuration`,\n );\n\n return Left(\n new TransportAlreadyExistsError(\n `Transport ${transport.getIdentifier()} already exists, please check your configuration`,\n ),\n );\n }\n\n this._transports.set(transport.getIdentifier(), transport);\n return Right(undefined);\n }\n\n getTransport(identifier: string): Maybe<Transport> {\n return Maybe.fromNullable(this._transports.get(identifier));\n }\n\n getAllTransports(): Transport[] {\n return Array.from(this._transports.values());\n }\n\n async closeAllTransports(deviceSessions: DeviceSession[]): Promise<void> {\n const transports = this.getAllTransports();\n for (const deviceSession of deviceSessions) {\n for (const transport of transports) {\n await transport.disconnect({\n connectedDevice: deviceSession.connectedDevice,\n });\n }\n }\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,EAAO,SAAAC,MAAa,YAO3C,OACE,4BAAAC,EACA,+BAAAC,MACK,8BAGP,OAAS,oBAAAC,MAAwB,6CACjC,OAAS,sBAAAC,MAA0B,iDAEnC,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,oBAAAC,MAAwB,0CAK1B,IAAMC,EAAN,KAA0D,CAI/D,YAEEC,EAEiBC,EAEAC,EAIAC,EAEAC,EAEAC,EACjB,CAXiB,aAAAJ,EAEA,0BAAAC,EAIA,4BAAAC,EAEA,+BAAAC,EAEA,iCAAAC,EAIjB,GAFA,KAAK,QAAUH,EAAqB,kBAAkB,EAElDF,EAAY,SAAW,EACzB,WAAK,QAAQ,KACX,yDACF,EAEM,IAAIM,EACR,yDACF,EAGF,UAAWC,KAAaP,EAAa,CACnC,MAAMQ,EAAS,KAAK,aAAaD,CAAS,EAE1C,GAAIC,EAAO,OAAO,EAChB,MAAMA,EAAO,QAAQ,CAEzB,CACF,CAtCQ,YAAsC,IAAI,IAC1C,QAuCR,aACEC,EAC2C,CAC3C,MAAMF,EAAYE,EAAQ,CACxB,sBAAuB,KAAK,uBAC5B,qBAAsB,KAAK,qBAC3B,OAAQ,KAAK,QACb,yBAA0B,KAAK,0BAC/B,2BAA4B,KAAK,2BACnC,CAAC,EAED,OAAO,KAAK,qBAAqBF,CAAS,CAC5C,CAEQ,qBACNA,EAC2C,CAG3C,OAFuB,KAAK,aAAaA,EAAU,cAAc,CAAC,EAE/C,OAAO,GACxB,KAAK,QAAQ,KACX,aAAaA,EAAU,cAAc,CAAC,kDACxC,EAEOG,EACL,IAAIC,EACF,aAAaJ,EAAU,cAAc,CAAC,kDACxC,CACF,IAGF,KAAK,YAAY,IAAIA,EAAU,cAAc,EAAGA,CAAS,EAClDK,EAAM,MAAS,EACxB,CAEA,aAAaC,EAAsC,CACjD,OAAOC,EAAM,aAAa,KAAK,YAAY,IAAID,CAAU,CAAC,CAC5D,CAEA,kBAAgC,CAC9B,OAAO,MAAM,KAAK,KAAK,YAAY,OAAO,CAAC,CAC7C,CAEA,MAAM,mBAAmBE,EAAgD,CACvE,MAAMC,EAAa,KAAK,iBAAiB,EACzC,UAAWC,KAAiBF,EAC1B,UAAWR,KAAaS,EACtB,MAAMT,EAAU,WAAW,CACzB,gBAAiBU,EAAc,eACjC,CAAC,CAGP,CACF,EA9FalB,EAANmB,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAiB,eAAe,GAEvCF,EAAA,EAAAC,EAAOC,EAAiB,SAAS,GAEjCF,EAAA,EAAAC,EAAOE,EAAY,6BAA6B,GAIhDH,EAAA,EAAAC,EAAOG,EAAiB,qBAAqB,GAE7CJ,EAAA,EAAAC,EAAOI,EAAmB,wBAAwB,GAElDL,EAAA,EAAAC,EAAOI,EAAmB,0BAA0B,IAjB5C1B",
6
+ "names": ["inject", "injectable", "Left", "Maybe", "Right", "NoTransportProvidedError", "TransportAlreadyExistsError", "deviceModelTypes", "deviceSessionTypes", "loggerTypes", "transportDiTypes", "DefaultTransportService", "_transports", "_config", "_loggerModuleFactory", "_deviceModelDataSource", "_apduSenderServiceFactory", "_apduReceiverServiceFactory", "NoTransportProvidedError", "transport", "either", "factory", "Left", "TransportAlreadyExistsError", "Right", "identifier", "Maybe", "deviceSessions", "transports", "deviceSession", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes", "loggerTypes", "deviceModelTypes", "deviceSessionTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DefaultLoggerPublisherServiceStub as o}from"../../../logger-publisher/service/DefaultLoggerPublisherService.stub";const r=e=>new o;class a{_transports=new Map;_loggerModuleFactory=r;_config={};_deviceModelDataSource={};_apduSenderServiceFactory=vi.fn();_apduReceiverServiceFactory=vi.fn();_logger=r("TransportServiceMock");addTransport=vi.fn();addTransportInternal=vi.fn();getTransport=vi.fn();getAllTransports=vi.fn()}export{a as DefaultTransportService};
1
+ import{DefaultLoggerPublisherServiceStub as o}from"../../../logger-publisher/service/DefaultLoggerPublisherService.stub";const r=e=>new o;class a{_transports=new Map;_loggerModuleFactory=r;_config={};_deviceModelDataSource={};_apduSenderServiceFactory=vi.fn();_apduReceiverServiceFactory=vi.fn();_logger=r("TransportServiceMock");addTransport=vi.fn();addTransportInternal=vi.fn();getTransport=vi.fn();getAllTransports=vi.fn();closeAllTransports=vi.fn()}export{a as DefaultTransportService};
2
2
  //# sourceMappingURL=DefaultTransportService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/internal/transport/service/__mocks__/DefaultTransportService.ts"],
4
- "sourcesContent": ["import { type DeviceModelDataSource } from \"@api/device-model/data/DeviceModelDataSource\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type Transport } from \"@api/types\";\nimport { DefaultLoggerPublisherServiceStub } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService.stub\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nconst loggerFactory = (_arg: string) => new DefaultLoggerPublisherServiceStub();\n\nexport class DefaultTransportService implements TransportService {\n _transports: Map<string, Transport> = new Map();\n _loggerModuleFactory = loggerFactory;\n _config = {} as DmkConfig;\n _deviceModelDataSource = {} as DeviceModelDataSource;\n _apduSenderServiceFactory = vi.fn();\n _apduReceiverServiceFactory = vi.fn();\n _logger = loggerFactory(\"TransportServiceMock\");\n\n addTransport = vi.fn();\n addTransportInternal = vi.fn();\n getTransport = vi.fn();\n getAllTransports = vi.fn();\n}\n"],
5
- "mappings": "AAGA,OAAS,qCAAAA,MAAyC,wEAGlD,MAAMC,EAAiBC,GAAiB,IAAIF,EAErC,MAAMG,CAAoD,CAC/D,YAAsC,IAAI,IAC1C,qBAAuBF,EACvB,QAAU,CAAC,EACX,uBAAyB,CAAC,EAC1B,0BAA4B,GAAG,GAAG,EAClC,4BAA8B,GAAG,GAAG,EACpC,QAAUA,EAAc,sBAAsB,EAE9C,aAAe,GAAG,GAAG,EACrB,qBAAuB,GAAG,GAAG,EAC7B,aAAe,GAAG,GAAG,EACrB,iBAAmB,GAAG,GAAG,CAC3B",
4
+ "sourcesContent": ["import { type DeviceModelDataSource } from \"@api/device-model/data/DeviceModelDataSource\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type Transport } from \"@api/types\";\nimport { DefaultLoggerPublisherServiceStub } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService.stub\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nconst loggerFactory = (_arg: string) => new DefaultLoggerPublisherServiceStub();\n\nexport class DefaultTransportService implements TransportService {\n _transports: Map<string, Transport> = new Map();\n _loggerModuleFactory = loggerFactory;\n _config = {} as DmkConfig;\n _deviceModelDataSource = {} as DeviceModelDataSource;\n _apduSenderServiceFactory = vi.fn();\n _apduReceiverServiceFactory = vi.fn();\n _logger = loggerFactory(\"TransportServiceMock\");\n\n addTransport = vi.fn();\n addTransportInternal = vi.fn();\n getTransport = vi.fn();\n getAllTransports = vi.fn();\n closeAllTransports = vi.fn();\n}\n"],
5
+ "mappings": "AAGA,OAAS,qCAAAA,MAAyC,wEAGlD,MAAMC,EAAiBC,GAAiB,IAAIF,EAErC,MAAMG,CAAoD,CAC/D,YAAsC,IAAI,IAC1C,qBAAuBF,EACvB,QAAU,CAAC,EACX,uBAAyB,CAAC,EAC1B,0BAA4B,GAAG,GAAG,EAClC,4BAA8B,GAAG,GAAG,EACpC,QAAUA,EAAc,sBAAsB,EAE9C,aAAe,GAAG,GAAG,EACrB,qBAAuB,GAAG,GAAG,EAC7B,aAAe,GAAG,GAAG,EACrB,iBAAmB,GAAG,GAAG,EACzB,mBAAqB,GAAG,GAAG,CAC7B",
6
6
  "names": ["DefaultLoggerPublisherServiceStub", "loggerFactory", "_arg", "DefaultTransportService"]
7
7
  }
@@ -93,7 +93,7 @@ export declare class DeviceManagementKit {
93
93
  * Close the Device Management kit.
94
94
  *
95
95
  */
96
- close(): void;
96
+ close(): Promise<void>;
97
97
  /**
98
98
  * Lists all connected devices.
99
99
  *
@@ -3,5 +3,6 @@ export declare class CommandUtils {
3
3
  static isValidStatusCode(statusCode: Uint8Array): boolean;
4
4
  static isSuccessResponse({ statusCode }: ApduResponse): boolean;
5
5
  static isLockedDeviceResponse({ statusCode }: ApduResponse): boolean;
6
+ static isApduThatTriggersDisconnection(apdu: Uint8Array): boolean;
6
7
  }
7
8
  //# sourceMappingURL=CommandUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandUtils.d.ts","sourceRoot":"","sources":["../../../../../../src/api/command/utils/CommandUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,qBAAa,YAAY;IACvB,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAI/C,MAAM,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY;IAQrD,MAAM,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY;CAO3D"}
1
+ {"version":3,"file":"CommandUtils.d.ts","sourceRoot":"","sources":["../../../../../../src/api/command/utils/CommandUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,qBAAa,YAAY;IACvB,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAI/C,MAAM,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY;IAQrD,MAAM,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY;IAQ1D,MAAM,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU;CAmBxD"}
@@ -46,6 +46,7 @@ export { LogLevel } from "./logger-subscriber/model/LogLevel";
46
46
  export { ConsoleLogger } from "./logger-subscriber/service/ConsoleLogger";
47
47
  export { WebLogsExporterLogger } from "./logger-subscriber/service/WebLogsExporterLogger";
48
48
  export { ConnectedDevice } from "./transport/model/ConnectedDevice";
49
+ export { DeviceConnectionStateMachine } from "./transport/model/DeviceConnectionStateMachine";
49
50
  export * from "./transport/model/Errors";
50
51
  export { TransportConnectedDevice } from "./transport/model/TransportConnectedDevice";
51
52
  export { connectedDeviceStubBuilder } from "./transport/model/TransportConnectedDevice.stub";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type SendApduFnType } from "./DeviceConnection";
2
+ /**
3
+ * DeviceConnection is a generic interface that represents a connection to a device.
4
+ * It is used to send APDUs to the device.
5
+ *
6
+ * @template Dependencies the object containing all the logic necessary to
7
+ * implement sendApdu. For instance HIDDevice or onWrite on RN BLE.
8
+ *
9
+ */
10
+ export interface DeviceApduSender<Dependencies> {
11
+ sendApdu: SendApduFnType;
12
+ getDependencies: () => Dependencies;
13
+ setDependencies: (dependencies: Dependencies) => void;
14
+ closeConnection: () => void;
15
+ setupConnection: () => Promise<void>;
16
+ }
17
+ //# sourceMappingURL=DeviceApduSender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceApduSender.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/DeviceApduSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB,CAAC,YAAY;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC"}
@@ -0,0 +1,60 @@
1
+ import { type Either } from "purify-ts";
2
+ import { type ApduResponse } from "../../device-session/ApduResponse";
3
+ import { type DmkError } from "../../Error";
4
+ import { type DeviceId } from "../../types";
5
+ import { type DeviceApduSender } from "./DeviceApduSender";
6
+ type DeviceDetachedEvent = {
7
+ type: "DeviceDetached";
8
+ };
9
+ type DeviceAttachedEvent = {
10
+ type: "DeviceAttached";
11
+ };
12
+ type ApduResponseReceived = {
13
+ type: "ApduResponseReceived";
14
+ apduResponse: ApduResponse;
15
+ };
16
+ type ApduSendingError = {
17
+ type: "ApduSendingError";
18
+ error: DmkError;
19
+ };
20
+ type SendApduCalled = {
21
+ type: "SendApduCalled";
22
+ apdu: Uint8Array;
23
+ triggersDisconnection: boolean;
24
+ responseCallback: (response: Either<DmkError, ApduResponse>) => void;
25
+ };
26
+ type ReconnectionTimedOut = {
27
+ type: "ReconnectionTimedOut";
28
+ };
29
+ type CloseConnectionCalled = {
30
+ type: "CloseConnectionCalled";
31
+ };
32
+ export type DeviceConnectionEvent = DeviceDetachedEvent | DeviceAttachedEvent | ApduResponseReceived | ApduSendingError | SendApduCalled | CloseConnectionCalled | ReconnectionTimedOut;
33
+ export declare class DeviceConnectionStateMachine<Dependencies> {
34
+ private deviceId;
35
+ private deviceAdpuSender;
36
+ private machineActor;
37
+ private timeoutDuration;
38
+ private timeout;
39
+ startReconnectionTimeout(): void;
40
+ constructor(params: {
41
+ deviceId: DeviceId;
42
+ deviceApduSender: DeviceApduSender<Dependencies>;
43
+ timeoutDuration: number;
44
+ onTerminated: () => void;
45
+ });
46
+ private sendApduToDeviceConnection;
47
+ /**
48
+ * Called by the transport
49
+ */
50
+ getDependencies(): Dependencies;
51
+ setDependencies(dependencies: Dependencies): void;
52
+ getDeviceId(): string;
53
+ sendApdu(apdu: Uint8Array, triggersDisconnection?: boolean): Promise<Either<DmkError, ApduResponse>>;
54
+ setupConnection(): Promise<void>;
55
+ eventDeviceAttached(): void;
56
+ eventDeviceDetached(): void;
57
+ closeConnection(): void;
58
+ }
59
+ export {};
60
+ //# sourceMappingURL=DeviceConnectionStateMachine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceConnectionStateMachine.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/DeviceConnectionStateMachine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAA+B,MAAM,WAAW,CAAC;AAIrE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,KAAK,QAAQ,EAA8B,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAS3D,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,sBAAsB,CAAC;CAC9B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,uBAAuB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,GAChB,cAAc,GACd,qBAAqB,GACrB,oBAAoB,CAAC;AAEzB,qBAAa,4BAA4B,CAAC,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,gBAAgB,CAAiC;IAEzD,OAAO,CAAC,YAAY,CAA6C;IAEjE,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAA8C;IAE7D,wBAAwB;gBAMZ,MAAM,EAAE;QAClB,QAAQ,EAAE,QAAQ,CAAC;QACnB,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,IAAI,CAAC;KAC1B;IA2BD,OAAO,CAAC,0BAA0B;IAyClC;;OAEG;IAEI,eAAe,IAAI,YAAY;IAI/B,eAAe,CAAC,YAAY,EAAE,YAAY;IAI1C,WAAW;IAIX,QAAQ,CACb,IAAI,EAAE,UAAU,EAChB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAW7B,eAAe;IAMrB,mBAAmB;IAInB,mBAAmB;IAInB,eAAe;CAGvB"}
@@ -5,7 +5,9 @@ import { type TransportIdentifier } from "../../transport/model/TransportIdentif
5
5
  */
6
6
  export type DiscoveredDevice = {
7
7
  readonly id: DeviceId;
8
+ readonly name: string;
8
9
  readonly deviceModel: DeviceModel;
9
10
  readonly transport: TransportIdentifier;
11
+ available: boolean;
10
12
  };
11
13
  //# sourceMappingURL=DiscoveredDevice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DiscoveredDevice.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/DiscoveredDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"DiscoveredDevice.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/DiscoveredDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC"}
@@ -65,6 +65,21 @@ export declare class TransportAlreadyExistsError extends GeneralDmkError {
65
65
  readonly _tag = "TransportAlreadyExistsError";
66
66
  constructor(err?: unknown | undefined);
67
67
  }
68
+ export declare class DeviceDisconnectedWhileSendingError extends GeneralDmkError {
69
+ readonly err?: unknown | undefined;
70
+ readonly _tag = "DeviceDisconnectedWhileSendingError";
71
+ constructor(err?: unknown | undefined);
72
+ }
73
+ export declare class AlreadySendingApduError extends GeneralDmkError {
74
+ readonly err?: unknown | undefined;
75
+ readonly _tag = "AlreadySendingApduError";
76
+ constructor(err?: unknown | undefined);
77
+ }
78
+ export declare class DeviceDisconnectedBeforeSendingApdu extends GeneralDmkError {
79
+ readonly err?: unknown | undefined;
80
+ readonly _tag = "DeviceDisconnectedBeforeSendingApdu";
81
+ constructor(err?: unknown | undefined);
82
+ }
68
83
  export declare class NoTransportProvidedError extends GeneralDmkError {
69
84
  readonly err?: unknown | undefined;
70
85
  readonly _tag = "NoTransportProvidedError";
@@ -1 +1 @@
1
- {"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,sBAAsB,GACtB,2BAA2B,CAAC;AAEhC,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,IAAI,SAAqB;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;gBACZ,GAAG,CAAC,EAAE,OAAO;CAO1B;AAED,qBAAa,2BAA4B,SAAQ,eAAe;IAElD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,kCAAkC;gBACnC,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAE/C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,8BAA8B;gBAC/B,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,uBAAwB,SAAQ,eAAe;IAE9C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,6BAA6B;gBAC9B,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,sBAAuB,SAAQ,eAAe;IAE7C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,4BAA4B;gBAC7B,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,kBAAmB,SAAQ,eAAe;IAEzC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,wBAAwB;gBACzB,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,0BAA2B,SAAQ,eAAe;IAEjD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,gCAAgC;gBACjC,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAE/C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,8BAA8B;gBAC/B,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,eAAgB,SAAQ,eAAe;IAEtC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,qBAAqB;gBACtB,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,uBAAwB,SAAQ,eAAe;IAE9C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,6BAA6B;gBAC9B,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,yBAA0B,SAAQ,eAAe;IAEhD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,+BAA+B;gBAChC,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,yBAA0B,SAAQ,eAAe;IAEhD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,+BAA+B;gBAChC,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,2BAA4B,SAAQ,eAAe;IAElD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,iCAAiC;gBAClC,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAE/C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO;IADlC,SAAkB,IAAI,8BAA8B;gBAC/B,GAAG,CAAC,EAAE,OAAO,YAAA;CAGnC"}
1
+ {"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/Errors.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,7 @@ export type TransportDiscoveredDevice = {
15
15
  id: DeviceId;
16
16
  deviceModel: TransportDeviceModel;
17
17
  transport: TransportIdentifier;
18
+ name?: string;
19
+ available?: boolean;
18
20
  };
19
21
  //# sourceMappingURL=TransportDiscoveredDevice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransportDiscoveredDevice.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/TransportDiscoveredDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IAGtC;;;;;;OAMG;IACH,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,oBAAoB,CAAC;IAClC,SAAS,EAAE,mBAAmB,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"TransportDiscoveredDevice.d.ts","sourceRoot":"","sources":["../../../../../../src/api/transport/model/TransportDiscoveredDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IAGtC;;;;;;OAMG;IACH,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,oBAAoB,CAAC;IAClC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
@@ -32,6 +32,7 @@ export type { DmkConfig } from "./DmkConfig";
32
32
  export type { DmkError } from "./Error";
33
33
  export type { LoggerPublisherService } from "./logger-publisher/service/LoggerPublisherService";
34
34
  export type { LoggerSubscriberService, LogParams, } from "./logger-subscriber/service/LoggerSubscriberService";
35
+ export { type DeviceApduSender } from "./transport/model/DeviceApduSender";
35
36
  export { type DeviceConnection, type DisconnectHandler, type SendApduFnType, } from "./transport/model/DeviceConnection";
36
37
  export { type TransportDiscoveredDevice } from "./transport/model/TransportDiscoveredDevice";
37
38
  export type { HexaString } from "./utils/HexaString";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export declare class DeviceSession {
35
35
  setDeviceSessionState(state: DeviceSessionState): void;
36
36
  private updateDeviceStatus;
37
37
  sendApdu(rawApdu: Uint8Array, options?: SendApduOptions): Promise<Either<DmkError, ApduResponse>>;
38
+ waitUntilReady(): Promise<void>;
38
39
  sendCommand<Response, Args, ErrorStatusCodes>(command: Command<Response, Args, ErrorStatusCodes>): Promise<CommandResult<Response, ErrorStatusCodes>>;
39
40
  executeDeviceAction<Output, Input, Error extends DmkError, IntermediateValue extends DeviceActionIntermediateValue>(deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue>;
40
41
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceSession.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/device-session/model/DeviceSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,WAAW,CAAC;AAI9C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EACnC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAE9F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAIlG,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;gBAG3D,EAAE,eAAe,EAAE,EAAa,EAAE,EAAE,sBAAsB,EAC1D,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAC5D,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,oBAAoB;IA8B5C,IAAW,EAAE,WAEZ;IAED,IAAW,eAAe,6BAEzB;IAED,IAAW,KAAK,kDAEf;IAEM,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAItD,OAAO,CAAC,kBAAkB;IASpB,QAAQ,CACZ,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,eAGR,GACA,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IA4BpC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAChD,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,GACjD,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAgBrD,mBAAmB,CACjB,MAAM,EACN,KAAK,EACL,KAAK,SAAS,QAAQ,EACtB,iBAAiB,SAAS,6BAA6B,EAEvD,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,GAClE,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAsBlE,KAAK;IAML,eAAe,CAAC,OAAO,EAAE,OAAO;CAOjC"}
1
+ {"version":3,"file":"DeviceSession.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/device-session/model/DeviceSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,WAAW,CAAC;AAI9C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EACnC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAE9F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAIlG,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;gBAG3D,EAAE,eAAe,EAAE,EAAa,EAAE,EAAE,sBAAsB,EAC1D,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAC5D,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,oBAAoB;IA8B5C,IAAW,EAAE,WAEZ;IAED,IAAW,eAAe,6BAEzB;IAED,IAAW,KAAK,kDAEf;IAEM,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAItD,OAAO,CAAC,kBAAkB;IASpB,QAAQ,CACZ,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,eAGR,GACA,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAuCpC,cAAc;IAad,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAChD,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,GACjD,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAgBrD,mBAAmB,CACjB,MAAM,EACN,KAAK,EACL,KAAK,SAAS,QAAQ,EACtB,iBAAiB,SAAS,6BAA6B,EAEvD,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,GAClE,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAsBlE,KAAK;IAML,eAAe,CAAC,OAAO,EAAE,OAAO;CAOjC"}
@@ -1,7 +1,9 @@
1
1
  import type { DeviceSessionService } from "../../device-session/service/DeviceSessionService";
2
+ import type { TransportService } from "../../transport/service/TransportService";
2
3
  export declare class CloseSessionsUseCase {
3
4
  private readonly _sessionService;
4
- constructor(sessionService: DeviceSessionService);
5
- execute(): void;
5
+ private readonly _transportService;
6
+ constructor(sessionService: DeviceSessionService, transportService: TransportService);
7
+ execute(): Promise<void>;
6
8
  }
7
9
  //# sourceMappingURL=CloseSessionsUseCase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CloseSessionsUseCase.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/device-session/use-case/CloseSessionsUseCase.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAElG,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;gBAGrD,cAAc,EAAE,oBAAoB;IAKtC,OAAO;CAOR"}
1
+ {"version":3,"file":"CloseSessionsUseCase.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/device-session/use-case/CloseSessionsUseCase.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAElG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;gBAGnD,cAAc,EAAE,oBAAoB,EAEpC,gBAAgB,EAAE,gBAAgB;IAM9B,OAAO;CAQd"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListenToKnownDevicesUseCase.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/discovery/use-case/ListenToKnownDevicesUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,UAAU,EAAQ,MAAM,MAAM,CAAC;AAK1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF;;GAEG;AACH,qBACa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAGxC,gBAAgB,EAAE,gBAAgB;IAKpC,OAAO,CAAC,8CAA8C;IActD,OAAO,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;CAqC1C"}
1
+ {"version":3,"file":"ListenToKnownDevicesUseCase.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/discovery/use-case/ListenToKnownDevicesUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,UAAU,EAAQ,MAAM,MAAM,CAAC;AAK1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF;;GAEG;AACH,qBACa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAGxC,gBAAgB,EAAE,gBAAgB;IAKpC,OAAO,CAAC,8CAA8C;IAiBtD,OAAO,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;CAqC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"StartDiscoveringUseCase.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/discovery/use-case/StartDiscoveringUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,UAAU,EAAM,MAAM,MAAM,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,gBAAgB;IAGtD,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,EACN,SAAS,GACV,EAAE,2BAA2B,GAAG,UAAU,CAAC,gBAAgB,CAAC;CAyB9D"}
1
+ {"version":3,"file":"StartDiscoveringUseCase.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/discovery/use-case/StartDiscoveringUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,UAAU,EAAM,MAAM,MAAM,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,gBAAgB;IAGtD,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,EACN,SAAS,GACV,EAAE,2BAA2B,GAAG,UAAU,CAAC,gBAAgB,CAAC;CAyB9D"}
@@ -7,6 +7,7 @@ import { LoggerPublisherService } from "../../../api/logger-publisher/service/Lo
7
7
  import { TransportAlreadyExistsError } from "../../../api/transport/model/Errors";
8
8
  import { TransportFactory } from "../../../api/transport/model/Transport";
9
9
  import { Transport } from "../../../api/types";
10
+ import { DeviceSession } from "../../device-session/model/DeviceSession";
10
11
  import { TransportService } from "./TransportService";
11
12
  export declare class DefaultTransportService implements TransportService {
12
13
  private readonly _config;
@@ -21,5 +22,6 @@ export declare class DefaultTransportService implements TransportService {
21
22
  private addTransportInternal;
22
23
  getTransport(identifier: string): Maybe<Transport>;
23
24
  getAllTransports(): Transport[];
25
+ closeAllTransports(deviceSessions: DeviceSession[]): Promise<void>;
24
26
  }
25
27
  //# sourceMappingURL=DefaultTransportService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultTransportService.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/transport/service/DefaultTransportService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAS,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAEL,2BAA2B,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBACa,uBAAwB,YAAW,gBAAgB;IAQ5D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAIrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAjB9C,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,OAAO,CAAyB;gBAItC,WAAW,EAAE,gBAAgB,EAAE,EAEd,OAAO,EAAE,SAAS,EAElB,oBAAoB,EAAE,CACrC,GAAG,EAAE,MAAM,KACR,sBAAsB,EAEV,sBAAsB,EAAE,qBAAqB,EAE7C,yBAAyB,EAAE,wBAAwB,EAEnD,2BAA2B,EAAE,0BAA0B;IAuB1E,YAAY,CACV,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC;IAY5C,OAAO,CAAC,oBAAoB;IAqB5B,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAIlD,gBAAgB,IAAI,SAAS,EAAE;CAGhC"}
1
+ {"version":3,"file":"DefaultTransportService.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/transport/service/DefaultTransportService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAS,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAEL,2BAA2B,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAI7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBACa,uBAAwB,YAAW,gBAAgB;IAQ5D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAIrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAjB9C,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,OAAO,CAAyB;gBAItC,WAAW,EAAE,gBAAgB,EAAE,EAEd,OAAO,EAAE,SAAS,EAElB,oBAAoB,EAAE,CACrC,GAAG,EAAE,MAAM,KACR,sBAAsB,EAEV,sBAAsB,EAAE,qBAAqB,EAE7C,yBAAyB,EAAE,wBAAwB,EAEnD,2BAA2B,EAAE,0BAA0B;IAuB1E,YAAY,CACV,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC;IAY5C,OAAO,CAAC,oBAAoB;IAqB5B,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAIlD,gBAAgB,IAAI,SAAS,EAAE;IAIzB,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAUzE"}
@@ -1,9 +1,11 @@
1
1
  import { type Either, type Maybe } from "purify-ts";
2
2
  import { type TransportAlreadyExistsError } from "../../../api/index";
3
3
  import { type Transport, type TransportFactory } from "../../../api/types";
4
+ import { type DeviceSession } from "../../device-session/model/DeviceSession";
4
5
  export interface TransportService {
5
6
  getTransport(transportId: string): Maybe<Transport>;
6
7
  getAllTransports(): Transport[];
7
8
  addTransport(factory: TransportFactory): Either<TransportAlreadyExistsError, void>;
9
+ closeAllTransports(deviceSessions: DeviceSession[]): Promise<void>;
8
10
  }
9
11
  //# sourceMappingURL=TransportService.d.ts.map