@ledgerhq/device-management-kit 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +21 -0
  2. package/lib/cjs/package.json +1 -1
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
  7. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
  8. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
  9. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
  10. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
  11. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js +1 -1
  12. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js.map +1 -1
  13. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +1 -1
  14. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +2 -2
  15. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  16. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  17. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  18. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +3 -3
  19. package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js +1 -1
  20. package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js.map +2 -2
  21. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js +2 -0
  22. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js.map +7 -0
  23. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +2 -0
  24. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +7 -0
  25. package/lib/esm/package.json +1 -1
  26. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  27. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  28. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  29. package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
  30. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
  31. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
  32. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
  33. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
  34. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +1 -1
  35. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +2 -2
  36. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  37. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  38. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  39. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +3 -3
  40. package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js +1 -1
  41. package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js.map +2 -2
  42. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js +2 -0
  43. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js.map +7 -0
  44. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +2 -0
  45. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +7 -0
  46. package/lib/types/src/api/DeviceManagementKit.d.ts +10 -0
  47. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  48. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts +3 -1
  49. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts.map +1 -1
  50. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts +10 -0
  51. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts.map +1 -1
  52. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts +2 -0
  53. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts.map +1 -1
  54. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -1
  55. package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts +1 -0
  56. package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts.map +1 -1
  57. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.d.ts +10 -0
  58. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.d.ts.map +1 -0
  59. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts +2 -0
  60. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts.map +1 -0
  61. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  62. package/package.json +3 -3
package/README.md CHANGED
@@ -114,6 +114,27 @@ getProvider function will return the current provider set within the Device Mana
114
114
  dmk.getProvider();
115
115
  ```
116
116
 
117
+ ### Override the secure channel WebSocket URL
118
+
119
+ The ScriptRunner WebSocket base URL can be set in two ways:
120
+
121
+ - At build time:
122
+
123
+ ```ts
124
+ export const sdk = new DeviceManagementKitBuilder()
125
+ .addLogger(new ConsoleLogger())
126
+ .addTransport(webHidTransportFactory)
127
+ .addConfig({ webSocketUrl: "wss://scriptrunner.example.com/update" })
128
+ .build();
129
+ ```
130
+
131
+ - At runtime:
132
+
133
+ ```ts
134
+ dmk.setWebSocketUrl("wss://scriptrunner.example.com/update");
135
+ dmk.getWebSocketUrl();
136
+ ```
137
+
117
138
  ### Connecting to a Device
118
139
 
119
140
  There are two steps to connecting to a device:
@@ -62,5 +62,5 @@
62
62
  "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
63
63
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
64
64
  },
65
- "version": "1.9.1"
65
+ "version": "1.10.0"
66
66
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var S=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},A=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of U(e))!y.call(t,r)&&r!==n&&a(t,r,{get:()=>e[r],enumerable:!(i=g(e,r))||i.enumerable});return t};var f=t=>A(a({},"__esModule",{value:!0}),t);var h={};S(h,{DeviceManagementKit:()=>l});module.exports=f(h);var p=require("./command/di/commandTypes"),m=require("../internal/config/di/configTypes"),o=require("../internal/device-session/di/deviceSessionTypes"),s=require("../internal/discovery/di/discoveryTypes"),C=require("../internal/logger-publisher/di/loggerTypes"),c=require("../internal/manager-api/di/managerApiTypes"),v=require("../internal/send/di/sendTypes"),u=require("../internal/transport/di/transportDiTypes"),d=require("../../src/di"),D=require("./device-action/di/deviceActionTypes");class l{container;constructor({stub:e,transports:n,loggers:i,config:r}={}){this.container=(0,d.makeContainer)({stub:e,transports:n,loggers:i,config:r})}getVersion(){return this.container.get(m.configTypes.GetDmkVersionUseCase).getDmkVersion()}startDiscovering(e){return this.container.get(s.discoveryTypes.StartDiscoveringUseCase).execute(e)}stopDiscovering(){return this.container.get(s.discoveryTypes.StopDiscoveringUseCase).execute()}listenToAvailableDevices(e){return this.container.get(s.discoveryTypes.ListenToAvailableDevicesUseCase).execute(e)}async reconnect(e){return this.container.get(s.discoveryTypes.ReconnectUseCase).execute(e)}connect(e){return this.container.get(s.discoveryTypes.ConnectUseCase).execute(e)}disconnect(e){return this.container.get(s.discoveryTypes.DisconnectUseCase).execute(e)}sendApdu(e){return this.container.get(v.sendTypes.SendApduUseCase).execute(e)}sendCommand(e){return this.container.get(p.commandTypes.SendCommandUseCase).execute(e)}executeDeviceAction(e){return this.container.get(D.deviceActionTypes.ExecuteDeviceActionUseCase).execute(e)}getConnectedDevice(e){return this.container.get(s.discoveryTypes.GetConnectedDeviceUseCase).execute(e)}getDeviceSessionState(e){return this.container.get(o.deviceSessionTypes.GetDeviceSessionStateUseCase).execute(e)}close(){return this.container.get(o.deviceSessionTypes.CloseSessionsUseCase).execute()}listConnectedDevices(){return this.container.get(s.discoveryTypes.ListConnectedDevicesUseCase).execute()}listenToConnectedDevice(){return this.container.get(s.discoveryTypes.ListenToConnectedDeviceUseCase).execute()}disableDeviceSessionRefresher(e){return this.container.get(o.deviceSessionTypes.DisableDeviceSessionRefresherUseCase).execute(e)}_unsafeBypassIntentQueue(e){return this.container.get(o.deviceSessionTypes.UnsafeBypassIntentQueueUseCase).execute(e)}setProvider(e){return this.container.get(c.managerApiTypes.SetProviderUseCase).execute(e)}getProvider(){return this.container.get(c.managerApiTypes.ManagerApiDataSource).getProvider()}isEnvironmentSupported(){return this.container.get(u.transportDiTypes.TransportService).getAllTransports().some(e=>e.isSupported())}getLoggerFactory(){return this.container.get(C.loggerTypes.LoggerPublisherServiceFactory)}}0&&(module.exports={DeviceManagementKit});
1
+ "use strict";var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var l=(s,e)=>{for(var o in e)a(s,o,{get:e[o],enumerable:!0})},f=(s,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of S(e))!y.call(s,r)&&r!==o&&a(s,r,{get:()=>e[r],enumerable:!(i=g(e,r))||i.enumerable});return s};var A=s=>f(a({},"__esModule",{value:!0}),s);var b={};l(b,{DeviceManagementKit:()=>h});module.exports=A(b);var m=require("./command/di/commandTypes"),C=require("../internal/config/di/configTypes"),n=require("../internal/device-session/di/deviceSessionTypes"),t=require("../internal/discovery/di/discoveryTypes"),u=require("../internal/logger-publisher/di/loggerTypes"),c=require("../internal/manager-api/di/managerApiTypes"),p=require("../internal/secure-channel/di/secureChannelTypes"),v=require("../internal/send/di/sendTypes"),d=require("../internal/transport/di/transportDiTypes"),U=require("../../src/di"),D=require("./device-action/di/deviceActionTypes");class h{container;constructor({stub:e,transports:o,loggers:i,config:r}={}){this.container=(0,U.makeContainer)({stub:e,transports:o,loggers:i,config:r})}getVersion(){return this.container.get(C.configTypes.GetDmkVersionUseCase).getDmkVersion()}startDiscovering(e){return this.container.get(t.discoveryTypes.StartDiscoveringUseCase).execute(e)}stopDiscovering(){return this.container.get(t.discoveryTypes.StopDiscoveringUseCase).execute()}listenToAvailableDevices(e){return this.container.get(t.discoveryTypes.ListenToAvailableDevicesUseCase).execute(e)}async reconnect(e){return this.container.get(t.discoveryTypes.ReconnectUseCase).execute(e)}connect(e){return this.container.get(t.discoveryTypes.ConnectUseCase).execute(e)}disconnect(e){return this.container.get(t.discoveryTypes.DisconnectUseCase).execute(e)}sendApdu(e){return this.container.get(v.sendTypes.SendApduUseCase).execute(e)}sendCommand(e){return this.container.get(m.commandTypes.SendCommandUseCase).execute(e)}executeDeviceAction(e){return this.container.get(D.deviceActionTypes.ExecuteDeviceActionUseCase).execute(e)}getConnectedDevice(e){return this.container.get(t.discoveryTypes.GetConnectedDeviceUseCase).execute(e)}getDeviceSessionState(e){return this.container.get(n.deviceSessionTypes.GetDeviceSessionStateUseCase).execute(e)}close(){return this.container.get(n.deviceSessionTypes.CloseSessionsUseCase).execute()}listConnectedDevices(){return this.container.get(t.discoveryTypes.ListConnectedDevicesUseCase).execute()}listenToConnectedDevice(){return this.container.get(t.discoveryTypes.ListenToConnectedDeviceUseCase).execute()}disableDeviceSessionRefresher(e){return this.container.get(n.deviceSessionTypes.DisableDeviceSessionRefresherUseCase).execute(e)}_unsafeBypassIntentQueue(e){return this.container.get(n.deviceSessionTypes.UnsafeBypassIntentQueueUseCase).execute(e)}setProvider(e){return this.container.get(c.managerApiTypes.SetProviderUseCase).execute(e)}getProvider(){return this.container.get(c.managerApiTypes.ManagerApiDataSource).getProvider()}setWebSocketUrl(e){return this.container.get(p.secureChannelTypes.SetWebSocketUrlUseCase).execute(e)}getWebSocketUrl(){return this.container.get(p.secureChannelTypes.SecureChannelDataSource).getWebSocketUrl()}isEnvironmentSupported(){return this.container.get(d.transportDiTypes.TransportService).getAllTransports().some(e=>e.isSupported())}getLoggerFactory(){return this.container.get(u.loggerTypes.LoggerPublisherServiceFactory)}}0&&(module.exports={DeviceManagementKit});
2
2
  //# sourceMappingURL=DeviceManagementKit.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/DeviceManagementKit.ts"],
4
- "sourcesContent": ["import { type Container, type Factory } from \"inversify\";\nimport { type Observable } from \"rxjs\";\n\nimport { commandTypes } from \"@api/command/di/commandTypes\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type SendCommandUseCase,\n type SendCommandUseCaseArgs,\n} from \"@api/command/use-case/SendCommandUseCase\";\nimport {\n type ExecuteDeviceActionUseCase,\n type ExecuteDeviceActionUseCaseArgs,\n} from \"@api/device-action/use-case/ExecuteDeviceActionUseCase\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport {\n type ConnectUseCaseArgs,\n type DisconnectUseCaseArgs,\n type DiscoveredDevice,\n type GetConnectedDeviceUseCaseArgs,\n type LoggerPublisherService,\n type SendApduUseCaseArgs,\n type StartDiscoveringUseCaseArgs,\n} from \"@api/types\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { type GetDmkVersionUseCase } from \"@internal/config/use-case/GetDmkVersionUseCase\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { type CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { type GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport {\n type UnsafeBypassIntentQueueUseCase,\n type UnsafeBypassIntentQueueUseCaseArgs,\n} from \"@internal/device-session/use-case/UnsafeBypassIntentQueueUseCase\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { type ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { type DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { type GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { type ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport {\n type ListenToAvailableDevicesUseCase,\n type ListenToAvailableDevicesUseCaseArgs,\n} from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { type ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport {\n type ReconnectUseCase,\n type ReconnectUseCaseArgs,\n} from \"@internal/discovery/use-case/ReconnectUseCase\";\nimport type { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport type { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { type SetProviderUseCase } from \"@internal/manager-api/use-case/SetProviderUseCase\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport { type SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\nimport { makeContainer, type MakeContainerProps } from \"@root/src/di\";\n\nimport {\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"./device-action/DeviceAction\";\nimport { deviceActionTypes } from \"./device-action/di/deviceActionTypes\";\nimport { type DisableDeviceSessionRefresherUseCase } from \"./device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type DmkError } from \"./Error\";\n\n/**\n * The main class to interact with the Device Management Kit.\n *\n * NB: do not instantiate this class directly, instead, use `LedgerDMKBuilder`.\n */\nexport class DeviceManagementKit {\n readonly container: Container;\n /** @internal */\n constructor({\n stub,\n transports,\n loggers,\n config,\n }: Partial<MakeContainerProps> = {}) {\n // NOTE: MakeContainerProps might not be the exact type here\n // For the init of the project this is sufficient, but we might need to\n // update the constructor arguments as we go (we might have more than just the container config)\n this.container = makeContainer({\n stub,\n transports,\n loggers,\n config,\n });\n }\n\n /**\n * Returns a promise resolving to the version of the SDK.\n */\n getVersion(): Promise<string> {\n return this.container\n .get<GetDmkVersionUseCase>(configTypes.GetDmkVersionUseCase)\n .getDmkVersion();\n }\n\n /**\n * Starts discovering devices connected.\n *\n * For the WeHID implementation, this use-case needs to be called as a result\n * of an user interaction (button \"click\" event for ex).\n *\n * @param {StartDiscoveringUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice>} An observable of discovered devices.\n */\n startDiscovering(\n args: StartDiscoveringUseCaseArgs,\n ): Observable<DiscoveredDevice> {\n return this.container\n .get<StartDiscoveringUseCase>(discoveryTypes.StartDiscoveringUseCase)\n .execute(args);\n }\n\n /**\n * Stops discovering devices connected.\n */\n stopDiscovering() {\n return this.container\n .get<StopDiscoveringUseCase>(discoveryTypes.StopDiscoveringUseCase)\n .execute();\n }\n\n /**\n * Listen to list of known discovered devices (and later BLE).\n * @param {ListenToAvailableDevicesUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice[]>} An observable of known discovered devices.\n */\n listenToAvailableDevices(\n args: ListenToAvailableDevicesUseCaseArgs,\n ): Observable<DiscoveredDevice[]> {\n return this.container\n .get<ListenToAvailableDevicesUseCase>(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n )\n .execute(args);\n }\n\n /**\n * Reconnects a device session by disconnecting and reconnecting to the device.\n *\n * @param args - The arguments for reconnecting the device session.\n * - `device`: The connected device.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n async reconnect(args: ReconnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ReconnectUseCase>(discoveryTypes.ReconnectUseCase)\n .execute(args);\n }\n\n /**\n * Connects to a device previously discovered with `DeviceManagementKit.startDiscovering`.\n * Creates a new device session which:\n * - Represents the connection to the device.\n * - Is terminated upon disconnection of the device.\n * - Exposes the device state through an observable (see `DeviceManagementKit.getDeviceSessionState`)\n * - Should be used for all subsequent communication with the device.\n *\n * @param {ConnectUseCaseArgs} args - The arguments for connecting to the device.\n * - `device`: The discovered device obtained from `StartDiscoveringUseCase`.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n connect(args: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ConnectUseCase>(discoveryTypes.ConnectUseCase)\n .execute(args);\n }\n\n /**\n * Disconnects to a discovered device.\n *\n * @param {DisconnectUseCaseArgs} args - The session ID to disconnect.\n */\n disconnect(args: DisconnectUseCaseArgs): Promise<void> {\n return this.container\n .get<DisconnectUseCase>(discoveryTypes.DisconnectUseCase)\n .execute(args);\n }\n\n /**\n * Sends an APDU command to a device through a device session.\n *\n * @param {SendApduUseCaseArgs} args - The device session ID and APDU command to send.\n */\n sendApdu(args: SendApduUseCaseArgs): Promise<ApduResponse> {\n return this.container\n .get<SendApduUseCase>(sendTypes.SendApduUseCase)\n .execute(args);\n }\n\n /**\n * Sends a command to a device through a device session.\n *\n * @param {SendCommandUseCaseArgs<Response, Args, ErrorCodes>} args - The device session ID, command, command error codes and command parameters to send.\n * @returns A promise resolving with the response from the command.\n */\n sendCommand<Response, Args, ErrorCodes>(\n args: SendCommandUseCaseArgs<Response, Args, ErrorCodes>,\n ): Promise<CommandResult<Response, ErrorCodes>> {\n return this.container\n .get<SendCommandUseCase>(commandTypes.SendCommandUseCase)\n .execute(args);\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n args: ExecuteDeviceActionUseCaseArgs<\n Output,\n Input,\n Error,\n IntermediateValue\n >,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n return this.container\n .get<ExecuteDeviceActionUseCase>(\n deviceActionTypes.ExecuteDeviceActionUseCase,\n )\n .execute(args);\n }\n\n /**\n * Gets the connected from its device session ID.\n *\n * @param {GetConnectedDeviceUseCaseArgs} args - The device session ID.\n * @returns {ConnectedDevice} The connected device.\n */\n getConnectedDevice(args: GetConnectedDeviceUseCaseArgs): ConnectedDevice {\n return this.container\n .get<GetConnectedDeviceUseCase>(discoveryTypes.GetConnectedDeviceUseCase)\n .execute(args);\n }\n\n /**\n * Gets the device state of a session.\n *\n * @param {{ sessionId: DeviceSessionId }} args - The device session ID.\n * @returns {Observable<DeviceSessionState>} An observable of the session device state.\n */\n getDeviceSessionState(args: {\n sessionId: DeviceSessionId;\n }): Observable<DeviceSessionState> {\n return this.container\n .get<GetDeviceSessionStateUseCase>(\n deviceSessionTypes.GetDeviceSessionStateUseCase,\n )\n .execute(args);\n }\n\n /**\n * Close the Device Management kit.\n *\n */\n close() {\n return this.container\n .get<CloseSessionsUseCase>(deviceSessionTypes.CloseSessionsUseCase)\n .execute();\n }\n\n /**\n * Lists all connected devices.\n *\n * @returns {ConnectedDevice[]} The list of device sessions.\n */\n listConnectedDevices(): ConnectedDevice[] {\n return this.container\n .get<ListConnectedDevicesUseCase>(\n discoveryTypes.ListConnectedDevicesUseCase,\n )\n .execute();\n }\n\n /**\n * Listen to connected device.\n *\n * @returns {Observable<ConnectedDevice>} An observable of connected device.\n */\n listenToConnectedDevice(): Observable<ConnectedDevice> {\n return this.container\n .get<ListenToConnectedDeviceUseCase>(\n discoveryTypes.ListenToConnectedDeviceUseCase,\n )\n .execute();\n }\n\n /**\n * Disable the device session refresher.\n *\n * @param {DisableDeviceSessionRefresherUseCaseArgs} args - The device session ID and a string to identify the blocker.\n * @returns {() => void} A function to reenable the device session refresher.\n */\n disableDeviceSessionRefresher(args: {\n sessionId: DeviceSessionId;\n blockerId: string;\n }): () => void {\n return this.container\n .get<DisableDeviceSessionRefresherUseCase>(\n deviceSessionTypes.DisableDeviceSessionRefresherUseCase,\n )\n .execute(args);\n }\n\n /**\n * UNSAFE: Bypasses the intent queue for a device session.\n * This allows all intents (sendApdu, sendCommand, executeDeviceAction) to execute\n * directly without being queued. Use with extreme caution as this can lead to\n * race conditions and concurrent execution issues.\n *\n * @param {UnsafeBypassIntentQueueUseCaseArgs} args - The device session ID and bypass flag.\n */\n _unsafeBypassIntentQueue(args: UnsafeBypassIntentQueueUseCaseArgs): void {\n return this.container\n .get<UnsafeBypassIntentQueueUseCase>(\n deviceSessionTypes.UnsafeBypassIntentQueueUseCase,\n )\n .execute(args);\n }\n /**\n * Sets the provider for the manager API.\n *\n * @param {number} provider - The provider to set.\n */\n setProvider(provider: number): void {\n return this.container\n .get<SetProviderUseCase>(managerApiTypes.SetProviderUseCase)\n .execute(provider);\n }\n\n /**\n * Returns the current provider value from the manager API data source.\n */\n getProvider(): number {\n return this.container\n .get<ManagerApiDataSource>(managerApiTypes.ManagerApiDataSource)\n .getProvider();\n }\n\n /**\n * Check if the current environment is supported by any transport.\n */\n isEnvironmentSupported(): boolean {\n return this.container\n .get<TransportService>(transportDiTypes.TransportService)\n .getAllTransports()\n .some((transport) => transport.isSupported());\n }\n\n /**\n * Returns the DMK logger factory with configured logger subscribers.\n */\n getLoggerFactory(): Factory<LoggerPublisherService> {\n return this.container.get(loggerTypes.LoggerPublisherServiceFactory);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAGA,IAAAI,EAA6B,wCAuB7BC,EAA4B,2CAE5BC,EAAmC,0DAOnCC,EAA+B,iDAgB/BC,EAA4B,qDAE5BC,EAAgC,oDAEhCC,EAA0B,uCAE1BC,EAAiC,mDAEjCC,EAAuD,wBAMvDC,EAAkC,gDAS3B,MAAMX,CAAoB,CACtB,UAET,YAAY,CACV,KAAAY,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAAiC,CAAC,EAAG,CAInC,KAAK,aAAY,iBAAc,CAC7B,KAAAH,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,CAAC,CACH,CAKA,YAA8B,CAC5B,OAAO,KAAK,UACT,IAA0B,cAAY,oBAAoB,EAC1D,cAAc,CACnB,CAWA,iBACEC,EAC8B,CAC9B,OAAO,KAAK,UACT,IAA6B,iBAAe,uBAAuB,EACnE,QAAQA,CAAI,CACjB,CAKA,iBAAkB,CAChB,OAAO,KAAK,UACT,IAA4B,iBAAe,sBAAsB,EACjE,QAAQ,CACb,CAOA,yBACEA,EACgC,CAChC,OAAO,KAAK,UACT,IACC,iBAAe,+BACjB,EACC,QAAQA,CAAI,CACjB,CAYA,MAAM,UAAUA,EAAsD,CACpE,OAAO,KAAK,UACT,IAAsB,iBAAe,gBAAgB,EACrD,QAAQA,CAAI,CACjB,CAiBA,QAAQA,EAAoD,CAC1D,OAAO,KAAK,UACT,IAAoB,iBAAe,cAAc,EACjD,QAAQA,CAAI,CACjB,CAOA,WAAWA,EAA4C,CACrD,OAAO,KAAK,UACT,IAAuB,iBAAe,iBAAiB,EACvD,QAAQA,CAAI,CACjB,CAOA,SAASA,EAAkD,CACzD,OAAO,KAAK,UACT,IAAqB,YAAU,eAAe,EAC9C,QAAQA,CAAI,CACjB,CAQA,YACEA,EAC8C,CAC9C,OAAO,KAAK,UACT,IAAwB,eAAa,kBAAkB,EACvD,QAAQA,CAAI,CACjB,CAEA,oBAMEA,EAMiE,CACjE,OAAO,KAAK,UACT,IACC,oBAAkB,0BACpB,EACC,QAAQA,CAAI,CACjB,CAQA,mBAAmBA,EAAsD,CACvE,OAAO,KAAK,UACT,IAA+B,iBAAe,yBAAyB,EACvE,QAAQA,CAAI,CACjB,CAQA,sBAAsBA,EAEa,CACjC,OAAO,KAAK,UACT,IACC,qBAAmB,4BACrB,EACC,QAAQA,CAAI,CACjB,CAMA,OAAQ,CACN,OAAO,KAAK,UACT,IAA0B,qBAAmB,oBAAoB,EACjE,QAAQ,CACb,CAOA,sBAA0C,CACxC,OAAO,KAAK,UACT,IACC,iBAAe,2BACjB,EACC,QAAQ,CACb,CAOA,yBAAuD,CACrD,OAAO,KAAK,UACT,IACC,iBAAe,8BACjB,EACC,QAAQ,CACb,CAQA,8BAA8BA,EAGf,CACb,OAAO,KAAK,UACT,IACC,qBAAmB,oCACrB,EACC,QAAQA,CAAI,CACjB,CAUA,yBAAyBA,EAAgD,CACvE,OAAO,KAAK,UACT,IACC,qBAAmB,8BACrB,EACC,QAAQA,CAAI,CACjB,CAMA,YAAYC,EAAwB,CAClC,OAAO,KAAK,UACT,IAAwB,kBAAgB,kBAAkB,EAC1D,QAAQA,CAAQ,CACrB,CAKA,aAAsB,CACpB,OAAO,KAAK,UACT,IAA0B,kBAAgB,oBAAoB,EAC9D,YAAY,CACjB,CAKA,wBAAkC,CAChC,OAAO,KAAK,UACT,IAAsB,mBAAiB,gBAAgB,EACvD,iBAAiB,EACjB,KAAMC,GAAcA,EAAU,YAAY,CAAC,CAChD,CAKA,kBAAoD,CAClD,OAAO,KAAK,UAAU,IAAI,cAAY,6BAA6B,CACrE,CACF",
6
- "names": ["DeviceManagementKit_exports", "__export", "DeviceManagementKit", "__toCommonJS", "import_commandTypes", "import_configTypes", "import_deviceSessionTypes", "import_discoveryTypes", "import_loggerTypes", "import_managerApiTypes", "import_sendTypes", "import_transportDiTypes", "import_di", "import_deviceActionTypes", "stub", "transports", "loggers", "config", "args", "provider", "transport"]
4
+ "sourcesContent": ["import { type Container, type Factory } from \"inversify\";\nimport { type Observable } from \"rxjs\";\n\nimport { commandTypes } from \"@api/command/di/commandTypes\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type SendCommandUseCase,\n type SendCommandUseCaseArgs,\n} from \"@api/command/use-case/SendCommandUseCase\";\nimport {\n type ExecuteDeviceActionUseCase,\n type ExecuteDeviceActionUseCaseArgs,\n} from \"@api/device-action/use-case/ExecuteDeviceActionUseCase\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport {\n type ConnectUseCaseArgs,\n type DisconnectUseCaseArgs,\n type DiscoveredDevice,\n type GetConnectedDeviceUseCaseArgs,\n type LoggerPublisherService,\n type SendApduUseCaseArgs,\n type StartDiscoveringUseCaseArgs,\n} from \"@api/types\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { type GetDmkVersionUseCase } from \"@internal/config/use-case/GetDmkVersionUseCase\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { type CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { type GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport {\n type UnsafeBypassIntentQueueUseCase,\n type UnsafeBypassIntentQueueUseCaseArgs,\n} from \"@internal/device-session/use-case/UnsafeBypassIntentQueueUseCase\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { type ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { type DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { type GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { type ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport {\n type ListenToAvailableDevicesUseCase,\n type ListenToAvailableDevicesUseCaseArgs,\n} from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { type ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport {\n type ReconnectUseCase,\n type ReconnectUseCaseArgs,\n} from \"@internal/discovery/use-case/ReconnectUseCase\";\nimport type { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport type { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { type SetProviderUseCase } from \"@internal/manager-api/use-case/SetProviderUseCase\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { type SetWebSocketUrlUseCase } from \"@internal/secure-channel/use-case/SetWebSocketUrlUseCase\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport { type SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\nimport { makeContainer, type MakeContainerProps } from \"@root/src/di\";\n\nimport {\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"./device-action/DeviceAction\";\nimport { deviceActionTypes } from \"./device-action/di/deviceActionTypes\";\nimport { type DisableDeviceSessionRefresherUseCase } from \"./device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type DmkError } from \"./Error\";\n\n/**\n * The main class to interact with the Device Management Kit.\n *\n * NB: do not instantiate this class directly, instead, use `LedgerDMKBuilder`.\n */\nexport class DeviceManagementKit {\n readonly container: Container;\n /** @internal */\n constructor({\n stub,\n transports,\n loggers,\n config,\n }: Partial<MakeContainerProps> = {}) {\n // NOTE: MakeContainerProps might not be the exact type here\n // For the init of the project this is sufficient, but we might need to\n // update the constructor arguments as we go (we might have more than just the container config)\n this.container = makeContainer({\n stub,\n transports,\n loggers,\n config,\n });\n }\n\n /**\n * Returns a promise resolving to the version of the SDK.\n */\n getVersion(): Promise<string> {\n return this.container\n .get<GetDmkVersionUseCase>(configTypes.GetDmkVersionUseCase)\n .getDmkVersion();\n }\n\n /**\n * Starts discovering devices connected.\n *\n * For the WeHID implementation, this use-case needs to be called as a result\n * of an user interaction (button \"click\" event for ex).\n *\n * @param {StartDiscoveringUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice>} An observable of discovered devices.\n */\n startDiscovering(\n args: StartDiscoveringUseCaseArgs,\n ): Observable<DiscoveredDevice> {\n return this.container\n .get<StartDiscoveringUseCase>(discoveryTypes.StartDiscoveringUseCase)\n .execute(args);\n }\n\n /**\n * Stops discovering devices connected.\n */\n stopDiscovering() {\n return this.container\n .get<StopDiscoveringUseCase>(discoveryTypes.StopDiscoveringUseCase)\n .execute();\n }\n\n /**\n * Listen to list of known discovered devices (and later BLE).\n * @param {ListenToAvailableDevicesUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice[]>} An observable of known discovered devices.\n */\n listenToAvailableDevices(\n args: ListenToAvailableDevicesUseCaseArgs,\n ): Observable<DiscoveredDevice[]> {\n return this.container\n .get<ListenToAvailableDevicesUseCase>(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n )\n .execute(args);\n }\n\n /**\n * Reconnects a device session by disconnecting and reconnecting to the device.\n *\n * @param args - The arguments for reconnecting the device session.\n * - `device`: The connected device.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n async reconnect(args: ReconnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ReconnectUseCase>(discoveryTypes.ReconnectUseCase)\n .execute(args);\n }\n\n /**\n * Connects to a device previously discovered with `DeviceManagementKit.startDiscovering`.\n * Creates a new device session which:\n * - Represents the connection to the device.\n * - Is terminated upon disconnection of the device.\n * - Exposes the device state through an observable (see `DeviceManagementKit.getDeviceSessionState`)\n * - Should be used for all subsequent communication with the device.\n *\n * @param {ConnectUseCaseArgs} args - The arguments for connecting to the device.\n * - `device`: The discovered device obtained from `StartDiscoveringUseCase`.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n connect(args: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ConnectUseCase>(discoveryTypes.ConnectUseCase)\n .execute(args);\n }\n\n /**\n * Disconnects to a discovered device.\n *\n * @param {DisconnectUseCaseArgs} args - The session ID to disconnect.\n */\n disconnect(args: DisconnectUseCaseArgs): Promise<void> {\n return this.container\n .get<DisconnectUseCase>(discoveryTypes.DisconnectUseCase)\n .execute(args);\n }\n\n /**\n * Sends an APDU command to a device through a device session.\n *\n * @param {SendApduUseCaseArgs} args - The device session ID and APDU command to send.\n */\n sendApdu(args: SendApduUseCaseArgs): Promise<ApduResponse> {\n return this.container\n .get<SendApduUseCase>(sendTypes.SendApduUseCase)\n .execute(args);\n }\n\n /**\n * Sends a command to a device through a device session.\n *\n * @param {SendCommandUseCaseArgs<Response, Args, ErrorCodes>} args - The device session ID, command, command error codes and command parameters to send.\n * @returns A promise resolving with the response from the command.\n */\n sendCommand<Response, Args, ErrorCodes>(\n args: SendCommandUseCaseArgs<Response, Args, ErrorCodes>,\n ): Promise<CommandResult<Response, ErrorCodes>> {\n return this.container\n .get<SendCommandUseCase>(commandTypes.SendCommandUseCase)\n .execute(args);\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n args: ExecuteDeviceActionUseCaseArgs<\n Output,\n Input,\n Error,\n IntermediateValue\n >,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n return this.container\n .get<ExecuteDeviceActionUseCase>(\n deviceActionTypes.ExecuteDeviceActionUseCase,\n )\n .execute(args);\n }\n\n /**\n * Gets the connected from its device session ID.\n *\n * @param {GetConnectedDeviceUseCaseArgs} args - The device session ID.\n * @returns {ConnectedDevice} The connected device.\n */\n getConnectedDevice(args: GetConnectedDeviceUseCaseArgs): ConnectedDevice {\n return this.container\n .get<GetConnectedDeviceUseCase>(discoveryTypes.GetConnectedDeviceUseCase)\n .execute(args);\n }\n\n /**\n * Gets the device state of a session.\n *\n * @param {{ sessionId: DeviceSessionId }} args - The device session ID.\n * @returns {Observable<DeviceSessionState>} An observable of the session device state.\n */\n getDeviceSessionState(args: {\n sessionId: DeviceSessionId;\n }): Observable<DeviceSessionState> {\n return this.container\n .get<GetDeviceSessionStateUseCase>(\n deviceSessionTypes.GetDeviceSessionStateUseCase,\n )\n .execute(args);\n }\n\n /**\n * Close the Device Management kit.\n *\n */\n close() {\n return this.container\n .get<CloseSessionsUseCase>(deviceSessionTypes.CloseSessionsUseCase)\n .execute();\n }\n\n /**\n * Lists all connected devices.\n *\n * @returns {ConnectedDevice[]} The list of device sessions.\n */\n listConnectedDevices(): ConnectedDevice[] {\n return this.container\n .get<ListConnectedDevicesUseCase>(\n discoveryTypes.ListConnectedDevicesUseCase,\n )\n .execute();\n }\n\n /**\n * Listen to connected device.\n *\n * @returns {Observable<ConnectedDevice>} An observable of connected device.\n */\n listenToConnectedDevice(): Observable<ConnectedDevice> {\n return this.container\n .get<ListenToConnectedDeviceUseCase>(\n discoveryTypes.ListenToConnectedDeviceUseCase,\n )\n .execute();\n }\n\n /**\n * Disable the device session refresher.\n *\n * @param {DisableDeviceSessionRefresherUseCaseArgs} args - The device session ID and a string to identify the blocker.\n * @returns {() => void} A function to reenable the device session refresher.\n */\n disableDeviceSessionRefresher(args: {\n sessionId: DeviceSessionId;\n blockerId: string;\n }): () => void {\n return this.container\n .get<DisableDeviceSessionRefresherUseCase>(\n deviceSessionTypes.DisableDeviceSessionRefresherUseCase,\n )\n .execute(args);\n }\n\n /**\n * UNSAFE: Bypasses the intent queue for a device session.\n * This allows all intents (sendApdu, sendCommand, executeDeviceAction) to execute\n * directly without being queued. Use with extreme caution as this can lead to\n * race conditions and concurrent execution issues.\n *\n * @param {UnsafeBypassIntentQueueUseCaseArgs} args - The device session ID and bypass flag.\n */\n _unsafeBypassIntentQueue(args: UnsafeBypassIntentQueueUseCaseArgs): void {\n return this.container\n .get<UnsafeBypassIntentQueueUseCase>(\n deviceSessionTypes.UnsafeBypassIntentQueueUseCase,\n )\n .execute(args);\n }\n /**\n * Sets the provider for the manager API.\n *\n * @param {number} provider - The provider to set.\n */\n setProvider(provider: number): void {\n return this.container\n .get<SetProviderUseCase>(managerApiTypes.SetProviderUseCase)\n .execute(provider);\n }\n\n /**\n * Returns the current provider value from the manager API data source.\n */\n getProvider(): number {\n return this.container\n .get<ManagerApiDataSource>(managerApiTypes.ManagerApiDataSource)\n .getProvider();\n }\n\n /**\n * Sets the secure channel WebSocket base URL.\n *\n * @param {string} webSocketUrl - The WebSocket base URL to set.\n */\n setWebSocketUrl(webSocketUrl: string): void {\n return this.container\n .get<SetWebSocketUrlUseCase>(secureChannelTypes.SetWebSocketUrlUseCase)\n .execute(webSocketUrl);\n }\n\n /**\n * Returns the current secure channel WebSocket base URL.\n */\n getWebSocketUrl(): string {\n return this.container\n .get<SecureChannelDataSource>(secureChannelTypes.SecureChannelDataSource)\n .getWebSocketUrl();\n }\n\n /**\n * Check if the current environment is supported by any transport.\n */\n isEnvironmentSupported(): boolean {\n return this.container\n .get<TransportService>(transportDiTypes.TransportService)\n .getAllTransports()\n .some((transport) => transport.isSupported());\n }\n\n /**\n * Returns the DMK logger factory with configured logger subscribers.\n */\n getLoggerFactory(): Factory<LoggerPublisherService> {\n return this.container.get(loggerTypes.LoggerPublisherServiceFactory);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["DeviceManagementKit_exports", "__export", "DeviceManagementKit", "__toCommonJS", "import_commandTypes", "import_configTypes", "import_deviceSessionTypes", "import_discoveryTypes", "import_loggerTypes", "import_managerApiTypes", "import_secureChannelTypes", "import_sendTypes", "import_transportDiTypes", "import_di", "import_deviceActionTypes", "stub", "transports", "loggers", "config", "args", "provider", "webSocketUrl", "transport"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.create;var c=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var B=(t,o,n,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of k(o))!x.call(t,i)&&i!==n&&c(t,i,{get:()=>o[i],enumerable:!(r=S(o,i))||r.enumerable});return t};var T=(t,o,n)=>(n=t!=null?C(b(t)):{},B(o||!t||!t.__esModule?c(n,"default",{value:t,enumerable:!0}):n,t));var d=require("../internal/config/data/LocalConfigDataSource.stub"),l=require("../internal/config/di/configTypes"),u=require("../internal/device-session/di/deviceSessionTypes"),s=require("../internal/discovery/di/discoveryTypes"),m=require("../internal/manager-api/di/managerApiTypes"),v=require("../internal/send/di/sendTypes"),f=T(require("../../package.json")),h=require("../../src/di.stub"),g=require("./command/di/commandTypes"),D=require("./logger-subscriber/service/ConsoleLogger"),a=require("./DeviceManagementKit");vi.mock("./logger-subscriber/service/ConsoleLogger");let e,p;describe("DeviceManagementKit",()=>{describe("clean",()=>{beforeEach(()=>{p=new D.ConsoleLogger,e=new a.DeviceManagementKit({stub:!1,loggers:[p],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(a.DeviceManagementKit)}),it("should return a clean `version`",async()=>{expect(await e.getVersion()).toBe(f.default.version)}),it("should have startDiscovery method",()=>{expect(e.startDiscovering).toBeDefined()}),it("should have stopDiscovery method",()=>{expect(e.stopDiscovering).toBeDefined()}),it("should have connect method",()=>{expect(e.connect).toBeDefined()}),it("should have reconnect method",()=>{expect(e.reconnect).toBeDefined()}),it("should have sendApdu method",()=>{expect(e.sendApdu).toBeDefined()}),it("should have getConnectedDevice method",()=>{expect(e.getConnectedDevice).toBeDefined()}),it("should have sendCommand method",()=>{expect(e.sendCommand).toBeDefined()}),it("should have listConnectedDevices method",()=>{expect(e.listConnectedDevices).toBeDefined()}),it("should have listenToConnectedDevice method",()=>{expect(e.listenToConnectedDevice).toBeDefined()}),it("should have disableDeviceSessionRefresher method",()=>{expect(e.disableDeviceSessionRefresher).toBeDefined()}),it("should have setProvider method",()=>{expect(e.setProvider).toBeDefined()}),it("should have isEnvironmentSupported method",()=>{expect(e.isEnvironmentSupported).toBeDefined()}),describe("isEnvironmentSupported",()=>{it("should return true when at least one transport is supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!0)},n={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(n);const r=e.isEnvironmentSupported();expect(r).toBe(!0),expect(n.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!1)},n={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(n);const r=e.isEnvironmentSupported();expect(r).toBe(!1),expect(n.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are available",()=>{const t={getAllTransports:vi.fn().mockReturnValue([])};vi.spyOn(e.container,"get").mockReturnValue(t);const o=e.isEnvironmentSupported();expect(o).toBe(!1),expect(t.getAllTransports).toHaveBeenCalled()})})}),describe("stubbed",()=>{beforeEach(()=>{e=new a.DeviceManagementKit({stub:!0,loggers:[],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create a stubbed dmk",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(a.DeviceManagementKit)}),it("should return a stubbed config",()=>{expect(e.container.get(l.configTypes.LocalConfigDataSource)).toBeInstanceOf(d.StubLocalConfigDataSource)}),it("should return a stubbed version",async()=>{expect(await e.getVersion()).toBe("0.0.0-stub.1")}),it.each([[s.discoveryTypes.StartDiscoveringUseCase],[s.discoveryTypes.StopDiscoveringUseCase],[s.discoveryTypes.ConnectUseCase],[v.sendTypes.SendApduUseCase],[g.commandTypes.SendCommandUseCase],[s.discoveryTypes.GetConnectedDeviceUseCase],[s.discoveryTypes.DisconnectUseCase],[u.deviceSessionTypes.GetDeviceSessionStateUseCase],[s.discoveryTypes.ListConnectedDevicesUseCase],[s.discoveryTypes.ListenToConnectedDeviceUseCase],[m.managerApiTypes.SetProviderUseCase]])("should have %s use case",t=>{const o=e.container.get(t);expect(o).toBeInstanceOf(h.StubUseCase),expect(o.execute()).toBe("stub")})})});
1
+ "use strict";var D=Object.create;var a=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var U=(t,o,s,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of b(o))!B.call(t,i)&&i!==s&&a(t,i,{get:()=>o[i],enumerable:!(r=C(o,i))||r.enumerable});return t};var T=(t,o,s)=>(s=t!=null?D(x(t)):{},U(o||!t||!t.__esModule?a(s,"default",{value:t,enumerable:!0}):s,t));var d=require("../internal/config/data/LocalConfigDataSource.stub"),l=require("../internal/config/di/configTypes"),u=require("../internal/device-session/di/deviceSessionTypes"),n=require("../internal/discovery/di/discoveryTypes"),m=require("../internal/manager-api/di/managerApiTypes"),f=require("../internal/secure-channel/di/secureChannelTypes"),v=require("../internal/send/di/sendTypes"),h=T(require("../../package.json")),g=require("../../src/di.stub"),S=require("./command/di/commandTypes"),k=require("./logger-subscriber/service/ConsoleLogger"),c=require("./DeviceManagementKit");vi.mock("./logger-subscriber/service/ConsoleLogger");let e,p;describe("DeviceManagementKit",()=>{describe("clean",()=>{beforeEach(()=>{p=new k.ConsoleLogger,e=new c.DeviceManagementKit({stub:!1,loggers:[p],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(c.DeviceManagementKit)}),it("should return a clean `version`",async()=>{expect(await e.getVersion()).toBe(h.default.version)}),it("should have startDiscovery method",()=>{expect(e.startDiscovering).toBeDefined()}),it("should have stopDiscovery method",()=>{expect(e.stopDiscovering).toBeDefined()}),it("should have connect method",()=>{expect(e.connect).toBeDefined()}),it("should have reconnect method",()=>{expect(e.reconnect).toBeDefined()}),it("should have sendApdu method",()=>{expect(e.sendApdu).toBeDefined()}),it("should have getConnectedDevice method",()=>{expect(e.getConnectedDevice).toBeDefined()}),it("should have sendCommand method",()=>{expect(e.sendCommand).toBeDefined()}),it("should have listConnectedDevices method",()=>{expect(e.listConnectedDevices).toBeDefined()}),it("should have listenToConnectedDevice method",()=>{expect(e.listenToConnectedDevice).toBeDefined()}),it("should have disableDeviceSessionRefresher method",()=>{expect(e.disableDeviceSessionRefresher).toBeDefined()}),it("should have setProvider method",()=>{expect(e.setProvider).toBeDefined()}),it("should have setWebSocketUrl method",()=>{expect(e.setWebSocketUrl).toBeDefined()}),it("should have getWebSocketUrl method",()=>{expect(e.getWebSocketUrl).toBeDefined()}),it("should update and return the WebSocket URL",()=>{e.setWebSocketUrl("wss://custom-websocket.url/update"),expect(e.getWebSocketUrl()).toBe("wss://custom-websocket.url/update")}),it("should have isEnvironmentSupported method",()=>{expect(e.isEnvironmentSupported).toBeDefined()}),describe("isEnvironmentSupported",()=>{it("should return true when at least one transport is supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!0)},s={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(s);const r=e.isEnvironmentSupported();expect(r).toBe(!0),expect(s.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!1)},s={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(s);const r=e.isEnvironmentSupported();expect(r).toBe(!1),expect(s.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are available",()=>{const t={getAllTransports:vi.fn().mockReturnValue([])};vi.spyOn(e.container,"get").mockReturnValue(t);const o=e.isEnvironmentSupported();expect(o).toBe(!1),expect(t.getAllTransports).toHaveBeenCalled()})})}),describe("stubbed",()=>{beforeEach(()=>{e=new c.DeviceManagementKit({stub:!0,loggers:[],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create a stubbed dmk",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(c.DeviceManagementKit)}),it("should return a stubbed config",()=>{expect(e.container.get(l.configTypes.LocalConfigDataSource)).toBeInstanceOf(d.StubLocalConfigDataSource)}),it("should return a stubbed version",async()=>{expect(await e.getVersion()).toBe("0.0.0-stub.1")}),it.each([[n.discoveryTypes.StartDiscoveringUseCase],[n.discoveryTypes.StopDiscoveringUseCase],[n.discoveryTypes.ConnectUseCase],[v.sendTypes.SendApduUseCase],[S.commandTypes.SendCommandUseCase],[n.discoveryTypes.GetConnectedDeviceUseCase],[n.discoveryTypes.DisconnectUseCase],[u.deviceSessionTypes.GetDeviceSessionStateUseCase],[n.discoveryTypes.ListConnectedDevicesUseCase],[n.discoveryTypes.ListenToConnectedDeviceUseCase],[m.managerApiTypes.SetProviderUseCase],[f.secureChannelTypes.SetWebSocketUrlUseCase]])("should have %s use case",t=>{const o=e.container.get(t);expect(o).toBeInstanceOf(g.StubUseCase),expect(o.execute()).toBe("stub")})})});
2
2
  //# sourceMappingURL=DeviceManagementKit.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/DeviceManagementKit.test.ts"],
4
- "sourcesContent": ["import { type ServiceIdentifier } from \"inversify\";\n\nimport { type LocalConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\nimport { StubLocalConfigDataSource } from \"@internal/config/data/LocalConfigDataSource.stub\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport pkg from \"@root/package.json\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { commandTypes } from \"./command/di/commandTypes\";\nimport { ConsoleLogger } from \"./logger-subscriber/service/ConsoleLogger\";\nimport { DeviceManagementKit } from \"./DeviceManagementKit\";\nimport { type DmkConfig } from \"./DmkConfig\";\n\nvi.mock(\"./logger-subscriber/service/ConsoleLogger\");\n\nlet dmk: DeviceManagementKit;\nlet logger: ConsoleLogger;\ndescribe(\"DeviceManagementKit\", () => {\n describe(\"clean\", () => {\n beforeEach(() => {\n logger = new ConsoleLogger();\n dmk = new DeviceManagementKit({\n stub: false,\n loggers: [logger],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n firmwareDistributionSalt: \"salt\",\n } as DmkConfig,\n });\n });\n\n it(\"should create an instance\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a clean `version`\", async () => {\n expect(await dmk.getVersion()).toBe(pkg.version);\n });\n\n it(\"should have startDiscovery method\", () => {\n expect(dmk.startDiscovering).toBeDefined();\n });\n\n it(\"should have stopDiscovery method\", () => {\n expect(dmk.stopDiscovering).toBeDefined();\n });\n\n it(\"should have connect method\", () => {\n expect(dmk.connect).toBeDefined();\n });\n\n it(\"should have reconnect method\", () => {\n expect(dmk.reconnect).toBeDefined();\n });\n\n it(\"should have sendApdu method\", () => {\n expect(dmk.sendApdu).toBeDefined();\n });\n\n it(\"should have getConnectedDevice method\", () => {\n expect(dmk.getConnectedDevice).toBeDefined();\n });\n\n it(\"should have sendCommand method\", () => {\n expect(dmk.sendCommand).toBeDefined();\n });\n\n it(\"should have listConnectedDevices method\", () => {\n expect(dmk.listConnectedDevices).toBeDefined();\n });\n\n it(\"should have listenToConnectedDevice method\", () => {\n expect(dmk.listenToConnectedDevice).toBeDefined();\n });\n\n it(\"should have disableDeviceSessionRefresher method\", () => {\n expect(dmk.disableDeviceSessionRefresher).toBeDefined();\n });\n\n it(\"should have setProvider method\", () => {\n expect(dmk.setProvider).toBeDefined();\n });\n\n it(\"should have isEnvironmentSupported method\", () => {\n expect(dmk.isEnvironmentSupported).toBeDefined();\n });\n\n describe(\"isEnvironmentSupported\", () => {\n it(\"should return true when at least one transport is supported\", () => {\n // Mock the TransportService to return transports where at least one is supported\n const mockTransport1 = {\n isSupported: vi.fn().mockReturnValue(false),\n };\n const mockTransport2 = {\n isSupported: vi.fn().mockReturnValue(true),\n };\n const mockTransportService = {\n getAllTransports: vi\n .fn()\n .mockReturnValue([mockTransport1, mockTransport2]),\n };\n\n // Mock the container to return our mock TransportService\n vi.spyOn(dmk.container, \"get\").mockReturnValue(mockTransportService);\n\n const result = dmk.isEnvironmentSupported();\n\n expect(result).toBe(true);\n expect(mockTransportService.getAllTransports).toHaveBeenCalled();\n expect(mockTransport1.isSupported).toHaveBeenCalled();\n expect(mockTransport2.isSupported).toHaveBeenCalled();\n });\n\n it(\"should return false when no transports are supported\", () => {\n // Mock the TransportService to return transports where none are supported\n const mockTransport1 = {\n isSupported: vi.fn().mockReturnValue(false),\n };\n const mockTransport2 = {\n isSupported: vi.fn().mockReturnValue(false),\n };\n const mockTransportService = {\n getAllTransports: vi\n .fn()\n .mockReturnValue([mockTransport1, mockTransport2]),\n };\n\n // Mock the container to return our mock TransportService\n vi.spyOn(dmk.container, \"get\").mockReturnValue(mockTransportService);\n\n const result = dmk.isEnvironmentSupported();\n\n expect(result).toBe(false);\n expect(mockTransportService.getAllTransports).toHaveBeenCalled();\n expect(mockTransport1.isSupported).toHaveBeenCalled();\n expect(mockTransport2.isSupported).toHaveBeenCalled();\n });\n\n it(\"should return false when no transports are available\", () => {\n // Mock the TransportService to return an empty array\n const mockTransportService = {\n getAllTransports: vi.fn().mockReturnValue([]),\n };\n\n // Mock the container to return our mock TransportService\n vi.spyOn(dmk.container, \"get\").mockReturnValue(mockTransportService);\n\n const result = dmk.isEnvironmentSupported();\n\n expect(result).toBe(false);\n expect(mockTransportService.getAllTransports).toHaveBeenCalled();\n });\n });\n });\n\n describe(\"stubbed\", () => {\n beforeEach(() => {\n dmk = new DeviceManagementKit({\n stub: true,\n loggers: [],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n firmwareDistributionSalt: \"salt\",\n } as DmkConfig,\n });\n });\n\n it(\"should create a stubbed dmk\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a stubbed config\", () => {\n expect(\n dmk.container.get<LocalConfigDataSource>(\n configTypes.LocalConfigDataSource,\n ),\n ).toBeInstanceOf(StubLocalConfigDataSource);\n });\n\n it(\"should return a stubbed version\", async () => {\n expect(await dmk.getVersion()).toBe(\"0.0.0-stub.1\");\n });\n\n it.each([\n [discoveryTypes.StartDiscoveringUseCase],\n [discoveryTypes.StopDiscoveringUseCase],\n [discoveryTypes.ConnectUseCase],\n [sendTypes.SendApduUseCase],\n [commandTypes.SendCommandUseCase],\n [discoveryTypes.GetConnectedDeviceUseCase],\n [discoveryTypes.DisconnectUseCase],\n [deviceSessionTypes.GetDeviceSessionStateUseCase],\n [discoveryTypes.ListConnectedDevicesUseCase],\n [discoveryTypes.ListenToConnectedDeviceUseCase],\n [managerApiTypes.SetProviderUseCase],\n ])(\n \"should have %s use case\",\n (diSymbol: ServiceIdentifier<StubUseCase>) => {\n const uc = dmk.container.get<StubUseCase>(diSymbol);\n expect(uc).toBeInstanceOf(StubUseCase);\n expect(uc.execute()).toBe(\"stub\");\n },\n );\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_LocalConfigDataSource", "import_configTypes", "import_deviceSessionTypes", "import_discoveryTypes", "import_managerApiTypes", "import_sendTypes", "import_package", "import_di", "import_commandTypes", "import_ConsoleLogger", "import_DeviceManagementKit", "dmk", "logger", "pkg", "mockTransport1", "mockTransport2", "mockTransportService", "result", "diSymbol", "uc"]
4
+ "sourcesContent": ["import { type ServiceIdentifier } from \"inversify\";\n\nimport { type LocalConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\nimport { StubLocalConfigDataSource } from \"@internal/config/data/LocalConfigDataSource.stub\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport pkg from \"@root/package.json\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { commandTypes } from \"./command/di/commandTypes\";\nimport { ConsoleLogger } from \"./logger-subscriber/service/ConsoleLogger\";\nimport { DeviceManagementKit } from \"./DeviceManagementKit\";\nimport { type DmkConfig } from \"./DmkConfig\";\n\nvi.mock(\"./logger-subscriber/service/ConsoleLogger\");\n\nlet dmk: DeviceManagementKit;\nlet logger: ConsoleLogger;\ndescribe(\"DeviceManagementKit\", () => {\n describe(\"clean\", () => {\n beforeEach(() => {\n logger = new ConsoleLogger();\n dmk = new DeviceManagementKit({\n stub: false,\n loggers: [logger],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n firmwareDistributionSalt: \"salt\",\n } as DmkConfig,\n });\n });\n\n it(\"should create an instance\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a clean `version`\", async () => {\n expect(await dmk.getVersion()).toBe(pkg.version);\n });\n\n it(\"should have startDiscovery method\", () => {\n expect(dmk.startDiscovering).toBeDefined();\n });\n\n it(\"should have stopDiscovery method\", () => {\n expect(dmk.stopDiscovering).toBeDefined();\n });\n\n it(\"should have connect method\", () => {\n expect(dmk.connect).toBeDefined();\n });\n\n it(\"should have reconnect method\", () => {\n expect(dmk.reconnect).toBeDefined();\n });\n\n it(\"should have sendApdu method\", () => {\n expect(dmk.sendApdu).toBeDefined();\n });\n\n it(\"should have getConnectedDevice method\", () => {\n expect(dmk.getConnectedDevice).toBeDefined();\n });\n\n it(\"should have sendCommand method\", () => {\n expect(dmk.sendCommand).toBeDefined();\n });\n\n it(\"should have listConnectedDevices method\", () => {\n expect(dmk.listConnectedDevices).toBeDefined();\n });\n\n it(\"should have listenToConnectedDevice method\", () => {\n expect(dmk.listenToConnectedDevice).toBeDefined();\n });\n\n it(\"should have disableDeviceSessionRefresher method\", () => {\n expect(dmk.disableDeviceSessionRefresher).toBeDefined();\n });\n\n it(\"should have setProvider method\", () => {\n expect(dmk.setProvider).toBeDefined();\n });\n\n it(\"should have setWebSocketUrl method\", () => {\n expect(dmk.setWebSocketUrl).toBeDefined();\n });\n\n it(\"should have getWebSocketUrl method\", () => {\n expect(dmk.getWebSocketUrl).toBeDefined();\n });\n\n it(\"should update and return the WebSocket URL\", () => {\n dmk.setWebSocketUrl(\"wss://custom-websocket.url/update\");\n\n expect(dmk.getWebSocketUrl()).toBe(\"wss://custom-websocket.url/update\");\n });\n\n it(\"should have isEnvironmentSupported method\", () => {\n expect(dmk.isEnvironmentSupported).toBeDefined();\n });\n\n describe(\"isEnvironmentSupported\", () => {\n it(\"should return true when at least one transport is supported\", () => {\n // Mock the TransportService to return transports where at least one is supported\n const mockTransport1 = {\n isSupported: vi.fn().mockReturnValue(false),\n };\n const mockTransport2 = {\n isSupported: vi.fn().mockReturnValue(true),\n };\n const mockTransportService = {\n getAllTransports: vi\n .fn()\n .mockReturnValue([mockTransport1, mockTransport2]),\n };\n\n // Mock the container to return our mock TransportService\n vi.spyOn(dmk.container, \"get\").mockReturnValue(mockTransportService);\n\n const result = dmk.isEnvironmentSupported();\n\n expect(result).toBe(true);\n expect(mockTransportService.getAllTransports).toHaveBeenCalled();\n expect(mockTransport1.isSupported).toHaveBeenCalled();\n expect(mockTransport2.isSupported).toHaveBeenCalled();\n });\n\n it(\"should return false when no transports are supported\", () => {\n // Mock the TransportService to return transports where none are supported\n const mockTransport1 = {\n isSupported: vi.fn().mockReturnValue(false),\n };\n const mockTransport2 = {\n isSupported: vi.fn().mockReturnValue(false),\n };\n const mockTransportService = {\n getAllTransports: vi\n .fn()\n .mockReturnValue([mockTransport1, mockTransport2]),\n };\n\n // Mock the container to return our mock TransportService\n vi.spyOn(dmk.container, \"get\").mockReturnValue(mockTransportService);\n\n const result = dmk.isEnvironmentSupported();\n\n expect(result).toBe(false);\n expect(mockTransportService.getAllTransports).toHaveBeenCalled();\n expect(mockTransport1.isSupported).toHaveBeenCalled();\n expect(mockTransport2.isSupported).toHaveBeenCalled();\n });\n\n it(\"should return false when no transports are available\", () => {\n // Mock the TransportService to return an empty array\n const mockTransportService = {\n getAllTransports: vi.fn().mockReturnValue([]),\n };\n\n // Mock the container to return our mock TransportService\n vi.spyOn(dmk.container, \"get\").mockReturnValue(mockTransportService);\n\n const result = dmk.isEnvironmentSupported();\n\n expect(result).toBe(false);\n expect(mockTransportService.getAllTransports).toHaveBeenCalled();\n });\n });\n });\n\n describe(\"stubbed\", () => {\n beforeEach(() => {\n dmk = new DeviceManagementKit({\n stub: true,\n loggers: [],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n firmwareDistributionSalt: \"salt\",\n } as DmkConfig,\n });\n });\n\n it(\"should create a stubbed dmk\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a stubbed config\", () => {\n expect(\n dmk.container.get<LocalConfigDataSource>(\n configTypes.LocalConfigDataSource,\n ),\n ).toBeInstanceOf(StubLocalConfigDataSource);\n });\n\n it(\"should return a stubbed version\", async () => {\n expect(await dmk.getVersion()).toBe(\"0.0.0-stub.1\");\n });\n\n it.each([\n [discoveryTypes.StartDiscoveringUseCase],\n [discoveryTypes.StopDiscoveringUseCase],\n [discoveryTypes.ConnectUseCase],\n [sendTypes.SendApduUseCase],\n [commandTypes.SendCommandUseCase],\n [discoveryTypes.GetConnectedDeviceUseCase],\n [discoveryTypes.DisconnectUseCase],\n [deviceSessionTypes.GetDeviceSessionStateUseCase],\n [discoveryTypes.ListConnectedDevicesUseCase],\n [discoveryTypes.ListenToConnectedDeviceUseCase],\n [managerApiTypes.SetProviderUseCase],\n [secureChannelTypes.SetWebSocketUrlUseCase],\n ])(\n \"should have %s use case\",\n (diSymbol: ServiceIdentifier<StubUseCase>) => {\n const uc = dmk.container.get<StubUseCase>(diSymbol);\n expect(uc).toBeInstanceOf(StubUseCase);\n expect(uc.execute()).toBe(\"stub\");\n },\n );\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_LocalConfigDataSource", "import_configTypes", "import_deviceSessionTypes", "import_discoveryTypes", "import_managerApiTypes", "import_secureChannelTypes", "import_sendTypes", "import_package", "import_di", "import_commandTypes", "import_ConsoleLogger", "import_DeviceManagementKit", "dmk", "logger", "pkg", "mockTransport1", "mockTransport2", "mockTransportService", "result", "diSymbol", "uc"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var U=Object.create;var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var P=(r,e)=>{for(var t in e)c(r,t,{get:e[t],enumerable:!0})},k=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of E(e))!w.call(r,o)&&o!==t&&c(r,o,{get:()=>e[o],enumerable:!(s=m(e,o))||s.enumerable});return r};var f=(r,e,t)=>(t=r!=null?U(C(r)):{},k(e||!r||!r.__esModule?c(t,"default",{value:r,enumerable:!0}):t,r)),A=r=>k(c({},"__esModule",{value:!0}),r),S=(r,e,t,s)=>{for(var o=s>1?void 0:s?m(e,t):e,p=r.length-1,b;p>=0;p--)(b=r[p])&&(o=(s?b(e,t,o):b(o))||o);return s&&o&&c(e,t,o),o},h=(r,e)=>(t,s)=>e(t,s,r);var g={};P(g,{DefaultSecureChannelDataSource:()=>i});module.exports=A(g);var a=require("inversify"),d=f(require("isomorphic-ws")),l=require("purify-ts"),n=require("../../../api/network/DmkNetworkClientHelpers"),u=require("../../secure-channel/di/secureChannelTypes"),W=require("../../secure-channel/model/Errors");let i=class{webSocketBaseUrl;constructor({webSocketUrl:e}){this.webSocketBaseUrl=e}genuineCheck(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/genuine",params:e});return this._connectWebSocket(t)}installApp(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}listInstalledApps(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/apps/list",params:e});return this._connectWebSocket(t)}uninstallApp(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}updateFirmware(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}updateMcu(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/mcu",params:e});return this._connectWebSocket(t)}_connectWebSocket(e){try{return(0,l.Right)(new d.default(e))}catch(t){return(0,l.Left)(new W.WebSocketConnectionError(t))}}};i=S([(0,a.injectable)(),h(0,(0,a.inject)(u.secureChannelTypes.DmkConfig))],i);0&&(module.exports={DefaultSecureChannelDataSource});
1
+ "use strict";var d=Object.create;var c=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var g=(r,e)=>{for(var t in e)c(r,t,{get:e[t],enumerable:!0})},m=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!C.call(r,s)&&s!==t&&c(r,s,{get:()=>e[s],enumerable:!(o=p(e,s))||o.enumerable});return r};var P=(r,e,t)=>(t=r!=null?d(w(r)):{},m(e||!r||!r.__esModule?c(t,"default",{value:r,enumerable:!0}):t,r)),f=r=>m(c({},"__esModule",{value:!0}),r),S=(r,e,t,o)=>{for(var s=o>1?void 0:o?p(e,t):e,b=r.length-1,k;b>=0;b--)(k=r[b])&&(s=(o?k(e,t,s):k(s))||s);return o&&s&&c(e,t,s),s},h=(r,e)=>(t,o)=>e(t,o,r);var B={};g(B,{DefaultSecureChannelDataSource:()=>i});module.exports=f(B);var a=require("inversify"),u=P(require("isomorphic-ws")),l=require("purify-ts"),n=require("../../../api/network/DmkNetworkClientHelpers"),W=require("../../secure-channel/di/secureChannelTypes"),U=require("../../secure-channel/model/Errors");let i=class{webSocketBaseUrl;constructor({webSocketUrl:e}){this.webSocketBaseUrl=e}setWebSocketUrl(e){this.webSocketBaseUrl===e||e.length===0||(this.webSocketBaseUrl=e)}getWebSocketUrl(){return this.webSocketBaseUrl}genuineCheck(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/genuine",params:e});return this._connectWebSocket(t)}installApp(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}listInstalledApps(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/apps/list",params:e});return this._connectWebSocket(t)}uninstallApp(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}updateFirmware(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}updateMcu(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/mcu",params:e});return this._connectWebSocket(t)}_connectWebSocket(e){try{return(0,l.Right)(new u.default(e))}catch(t){return(0,l.Left)(new U.WebSocketConnectionError(t))}}};i=S([(0,a.injectable)(),h(0,(0,a.inject)(W.secureChannelTypes.DmkConfig))],i);0&&(module.exports={DefaultSecureChannelDataSource});
2
2
  //# sourceMappingURL=DefaultSecureChannelDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/secure-channel/data/DefaultSecureChannelDataSource.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { buildUrl } from \"@api/network/DmkNetworkClientHelpers\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\nimport { SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\n@injectable()\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n private readonly webSocketBaseUrl: string;\n\n constructor(\n @inject(secureChannelTypes.DmkConfig)\n { webSocketUrl }: DmkConfig,\n ) {\n this.webSocketBaseUrl = webSocketUrl;\n }\n\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/genuine\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/apps/list\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/mcu\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n _connectWebSocket(\n address: string,\n ): Either<WebSocketConnectionError, WebSocket> {\n try {\n return Right(new WebSocket(address));\n } catch (error) {\n return Left(new WebSocketConnectionError(error));\n }\n }\n}\n"],
5
- "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAsB,4BACtBC,EAAoC,qBAGpCC,EAAyB,gDACzBC,EAAmC,0DACnCC,EAAyC,iDAalC,IAAMC,EAAN,KAAwE,CAC5D,iBAEjB,YAEE,CAAE,aAAAC,CAAa,EACf,CACA,KAAK,iBAAmBA,CAC1B,CAEA,aACEC,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,WACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,kBACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,aACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,aACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,eACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,UACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,OACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,kBACEA,EAC6C,CAC7C,GAAI,CACF,SAAO,SAAM,IAAI,EAAAC,QAAUD,CAAO,CAAC,CACrC,OAASE,EAAO,CACd,SAAO,QAAK,IAAI,2BAAyBA,CAAK,CAAC,CACjD,CACF,CACF,EArFaL,EAANM,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,qBAAmB,SAAS,IAJ3BP",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { buildUrl } from \"@api/network/DmkNetworkClientHelpers\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\nimport { SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\n@injectable()\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n private webSocketBaseUrl: string;\n\n constructor(\n @inject(secureChannelTypes.DmkConfig)\n { webSocketUrl }: DmkConfig,\n ) {\n this.webSocketBaseUrl = webSocketUrl;\n }\n\n setWebSocketUrl(webSocketUrl: string): void {\n if (this.webSocketBaseUrl === webSocketUrl || webSocketUrl.length === 0) {\n return;\n }\n this.webSocketBaseUrl = webSocketUrl;\n }\n\n getWebSocketUrl(): string {\n return this.webSocketBaseUrl;\n }\n\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/genuine\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/apps/list\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/mcu\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n _connectWebSocket(\n address: string,\n ): Either<WebSocketConnectionError, WebSocket> {\n try {\n return Right(new WebSocket(address));\n } catch (error) {\n return Left(new WebSocketConnectionError(error));\n }\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAsB,4BACtBC,EAAoC,qBAGpCC,EAAyB,gDACzBC,EAAmC,0DACnCC,EAAyC,iDAalC,IAAMC,EAAN,KAAwE,CACrE,iBAER,YAEE,CAAE,aAAAC,CAAa,EACf,CACA,KAAK,iBAAmBA,CAC1B,CAEA,gBAAgBA,EAA4B,CACtC,KAAK,mBAAqBA,GAAgBA,EAAa,SAAW,IAGtE,KAAK,iBAAmBA,EAC1B,CAEA,iBAA0B,CACxB,OAAO,KAAK,gBACd,CAEA,aACEC,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,WACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,kBACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,aACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,aACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,eACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,UACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,OACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,kBACEA,EAC6C,CAC7C,GAAI,CACF,SAAO,SAAM,IAAI,EAAAC,QAAUD,CAAO,CAAC,CACrC,OAASE,EAAO,CACd,SAAO,QAAK,IAAI,2BAAyBA,CAAK,CAAC,CACjD,CACF,CACF,EAhGaL,EAANM,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,qBAAmB,SAAS,IAJ3BP",
6
6
  "names": ["DefaultSecureChannelDataSource_exports", "__export", "DefaultSecureChannelDataSource", "__toCommonJS", "import_inversify", "import_isomorphic_ws", "import_purify_ts", "import_DmkNetworkClientHelpers", "import_secureChannelTypes", "import_Errors", "DefaultSecureChannelDataSource", "webSocketUrl", "params", "address", "WebSocket", "error", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.create;var l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var w=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of S(t))!h.call(e,c)&&c!==r&&l(e,c,{get:()=>t[c],enumerable:!(s=p(t,c))||s.enumerable});return e};var f=(e,t,r)=>(r=e!=null?u(k(e)):{},w(t||!e||!e.__esModule?l(r,"default",{value:e,enumerable:!0}):r,e));var n=f(require("isomorphic-ws")),a=require("purify-ts"),i=require("../../secure-channel/model/Errors"),o=require("./DefaultSecureChannelDataSource");vi.mock("isomorphic-ws",()=>({default:vi.fn().mockImplementationOnce(()=>{}).mockImplementationOnce(()=>{throw new Error("WebSocket connection failed")})}));describe("Secure Channel Data Source",()=>{describe("Connection establishment",()=>{afterEach(()=>{vi.clearAllMocks()}),it("should return a WebSocket if the WebSocket connection succeeds",()=>{const t=new o.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(n.default).toHaveBeenCalledWith("wss://test-websocket-url/test"),expect(t.extract()).toBeInstanceOf(n.default)}),it("should return an error if the WebSocket connection fails",()=>{const t=new o.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(t.extract()).toBeInstanceOf(i.WebSocketConnectionError)})}),describe("Connections with different pathname",()=>{let e;beforeEach(()=>{e=new o.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})}),afterEach(()=>{vi.clearAllMocks()}),it("should call _connectWebSocket with parameters for genuineCheck",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.genuineCheck({targetId:"targetId",perso:"perso"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/genuine?targetId=targetId&perso=perso")}),it("GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string",()=>{e=new o.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url/"}),vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.genuineCheck({targetId:"target id",perso:"perso&value"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value")}),it("should call _connectWebSocket with parameters for listInstalledApps",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.listInstalledApps({targetId:"targetId",perso:"perso"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/apps/list?targetId=targetId&perso=perso")}),it("should call _connectWebSocket with parameters for updateMcu",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.updateMcu({targetId:"targetId",version:"version"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/mcu?targetId=targetId&version=version")}),it("should call _connectWebSocket with parameters for updateFirmware",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.updateFirmware({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey")}),it("should call _connectWebSocket with parameters for installApp",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.installApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash")}),it("should call _connectWebSocket with parameters for uninstallApp",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,a.Right)({})),e.uninstallApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash")})})});
1
+ "use strict";var u=Object.create;var l=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var S=(e,t,c,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of h(t))!w.call(e,o)&&o!==c&&l(e,o,{get:()=>t[o],enumerable:!(n=k(t,o))||n.enumerable});return e};var b=(e,t,c)=>(c=e!=null?u(p(e)):{},S(t||!e||!e.__esModule?l(c,"default",{value:e,enumerable:!0}):c,e));var s=b(require("isomorphic-ws")),r=require("purify-ts"),i=require("../../secure-channel/model/Errors"),a=require("./DefaultSecureChannelDataSource");vi.mock("isomorphic-ws",()=>({default:vi.fn().mockImplementationOnce(()=>{}).mockImplementationOnce(()=>{throw new Error("WebSocket connection failed")})}));describe("Secure Channel Data Source",()=>{describe("Connection establishment",()=>{afterEach(()=>{vi.clearAllMocks()}),it("should return a WebSocket if the WebSocket connection succeeds",()=>{const t=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(s.default).toHaveBeenCalledWith("wss://test-websocket-url/test"),expect(t.extract()).toBeInstanceOf(s.default)}),it("should return an error if the WebSocket connection fails",()=>{const t=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(t.extract()).toBeInstanceOf(i.WebSocketConnectionError)})}),describe("Connections with different pathname",()=>{let e;beforeEach(()=>{e=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})}),afterEach(()=>{vi.clearAllMocks()}),it("should call _connectWebSocket with parameters for genuineCheck",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.genuineCheck({targetId:"targetId",perso:"perso"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/genuine?targetId=targetId&perso=perso")}),it("GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string",()=>{e=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url/"}),vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.genuineCheck({targetId:"target id",perso:"perso&value"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value")}),it("should call _connectWebSocket with parameters for listInstalledApps",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.listInstalledApps({targetId:"targetId",perso:"perso"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/apps/list?targetId=targetId&perso=perso")}),it("should call _connectWebSocket with parameters for updateMcu",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.updateMcu({targetId:"targetId",version:"version"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/mcu?targetId=targetId&version=version")}),it("should call _connectWebSocket with parameters for updateFirmware",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.updateFirmware({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey")}),it("should call _connectWebSocket with parameters for installApp",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.installApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash")}),it("should call _connectWebSocket with parameters for uninstallApp",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.uninstallApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash")})}),describe("Given a configured WebSocket base URL",()=>{let e;beforeEach(()=>{e=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"}),vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({}))}),afterEach(()=>{vi.clearAllMocks()}),describe("When getWebSocketUrl is called",()=>{it("Then it should return the configured URL",()=>{expect(e.getWebSocketUrl()).toBe("wss://test-websocket-url")})}),describe("When setWebSocketUrl is called with a different URL",()=>{it("Then it should use the new URL for subsequent connections",()=>{e.setWebSocketUrl("wss://overridden-websocket-url"),e.genuineCheck({targetId:"targetId",perso:"perso"}),expect(e.getWebSocketUrl()).toBe("wss://overridden-websocket-url"),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://overridden-websocket-url/genuine?targetId=targetId&perso=perso")})}),describe("When setWebSocketUrl is called with an empty string",()=>{it("Then it should keep the current URL",()=>{e.setWebSocketUrl(""),expect(e.getWebSocketUrl()).toBe("wss://test-websocket-url")})}),describe("When setWebSocketUrl is called with the same URL",()=>{it("Then it should keep the current URL",()=>{e.setWebSocketUrl("wss://test-websocket-url"),expect(e.getWebSocketUrl()).toBe("wss://test-websocket-url")})})})});
2
2
  //# sourceMappingURL=DefaultSecureChannelDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.ts"],
4
- "sourcesContent": ["import WebSocket from \"isomorphic-ws\";\nimport { Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\n\nimport { DefaultSecureChannelDataSource } from \"./DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\nvi.mock(\"isomorphic-ws\", () => {\n // The chained mockImplementationOnce is used to simulate the WebSocket connection success and failure respectively, the order is important\n return {\n default: vi\n .fn()\n .mockImplementationOnce(() => {})\n .mockImplementationOnce(() => {\n throw new Error(\"WebSocket connection failed\");\n }),\n };\n});\n\ndescribe(\"Secure Channel Data Source\", () => {\n describe(\"Connection establishment\", () => {\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should return a WebSocket if the WebSocket connection succeeds\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(WebSocket).toHaveBeenCalledWith(\"wss://test-websocket-url/test\");\n expect(res.extract()).toBeInstanceOf(WebSocket);\n });\n\n it(\"should return an error if the WebSocket connection fails\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(res.extract()).toBeInstanceOf(WebSocketConnectionError);\n });\n });\n describe(\"Connections with different pathname\", () => {\n let api: SecureChannelDataSource;\n\n beforeEach(() => {\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should call _connectWebSocket with parameters for genuineCheck\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string\", () => {\n // given\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url/\",\n } as DmkConfig);\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"target id\",\n perso: \"perso&value\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for listInstalledApps\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.listInstalledApps({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/apps/list?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateMcu\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateMcu({\n targetId: \"targetId\",\n version: \"version\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/mcu?targetId=targetId&version=version\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateFirmware\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateFirmware({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for installApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.installApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for uninstallApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.uninstallApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import WebSocket from \"isomorphic-ws\";\nimport { Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\n\nimport { DefaultSecureChannelDataSource } from \"./DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\nvi.mock(\"isomorphic-ws\", () => {\n // The chained mockImplementationOnce is used to simulate the WebSocket connection success and failure respectively, the order is important\n return {\n default: vi\n .fn()\n .mockImplementationOnce(() => {})\n .mockImplementationOnce(() => {\n throw new Error(\"WebSocket connection failed\");\n }),\n };\n});\n\ndescribe(\"Secure Channel Data Source\", () => {\n describe(\"Connection establishment\", () => {\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should return a WebSocket if the WebSocket connection succeeds\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(WebSocket).toHaveBeenCalledWith(\"wss://test-websocket-url/test\");\n expect(res.extract()).toBeInstanceOf(WebSocket);\n });\n\n it(\"should return an error if the WebSocket connection fails\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(res.extract()).toBeInstanceOf(WebSocketConnectionError);\n });\n });\n describe(\"Connections with different pathname\", () => {\n let api: SecureChannelDataSource;\n\n beforeEach(() => {\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should call _connectWebSocket with parameters for genuineCheck\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string\", () => {\n // given\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url/\",\n } as DmkConfig);\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"target id\",\n perso: \"perso&value\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for listInstalledApps\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.listInstalledApps({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/apps/list?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateMcu\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateMcu({\n targetId: \"targetId\",\n version: \"version\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/mcu?targetId=targetId&version=version\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateFirmware\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateFirmware({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for installApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.installApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for uninstallApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.uninstallApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n });\n\n describe(\"Given a configured WebSocket base URL\", () => {\n let api: DefaultSecureChannelDataSource;\n\n beforeEach(() => {\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n vi.spyOn(api, \"_connectWebSocket\").mockReturnValue(\n Right({} as WebSocket),\n );\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"When getWebSocketUrl is called\", () => {\n it(\"Then it should return the configured URL\", () => {\n expect(api.getWebSocketUrl()).toBe(\"wss://test-websocket-url\");\n });\n });\n\n describe(\"When setWebSocketUrl is called with a different URL\", () => {\n it(\"Then it should use the new URL for subsequent connections\", () => {\n api.setWebSocketUrl(\"wss://overridden-websocket-url\");\n\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n expect(api.getWebSocketUrl()).toBe(\"wss://overridden-websocket-url\");\n expect(api._connectWebSocket).toHaveBeenCalledWith(\n \"wss://overridden-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n });\n\n describe(\"When setWebSocketUrl is called with an empty string\", () => {\n it(\"Then it should keep the current URL\", () => {\n api.setWebSocketUrl(\"\");\n\n expect(api.getWebSocketUrl()).toBe(\"wss://test-websocket-url\");\n });\n });\n\n describe(\"When setWebSocketUrl is called with the same URL\", () => {\n it(\"Then it should keep the current URL\", () => {\n api.setWebSocketUrl(\"wss://test-websocket-url\");\n\n expect(api.getWebSocketUrl()).toBe(\"wss://test-websocket-url\");\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_isomorphic_ws", "import_purify_ts", "import_Errors", "import_DefaultSecureChannelDataSource", "res", "WebSocket", "api"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var c=(r,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of p(e))!i.call(r,a)&&a!==n&&o(r,a,{get:()=>e[a],enumerable:!(t=s(e,a))||t.enumerable});return r};var m=r=>c(o({},"__esModule",{value:!0}),r);var l={};module.exports=m(l);
1
+ "use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var c=(r,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!i.call(r,t)&&t!==n&&o(r,t,{get:()=>e[t],enumerable:!(a=s(e,t))||a.enumerable});return r};var m=r=>c(o({},"__esModule",{value:!0}),r);var l={};module.exports=m(l);
2
2
  //# sourceMappingURL=SecureChannelDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/secure-channel/data/SecureChannelDataSource.ts"],
4
- "sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either } from \"purify-ts\";\n\nimport { type WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport type {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface SecureChannelDataSource {\n /**\n * Performs a genuine check on the device.\n *\n * @param params - The parameters required for the genuine check.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Installs applications on the device.\n *\n * @param params - The parameters required to install the applications.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Lists the installed applications on the device.\n *\n * @param params - The parameters required for the genuine check.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Uninstalls applications from the device.\n *\n * @param params - The parameters required to uninstall the applications.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Updates the firmware of the device.\n *\n * @param params - The parameters required to update the firmware.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Updates the MCU (Microcontroller Unit) of the device.\n *\n * @param params - The parameters required to update the MCU.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n}\n"],
4
+ "sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either } from \"purify-ts\";\n\nimport { type WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport type {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface SecureChannelDataSource {\n /**\n * Performs a genuine check on the device.\n *\n * @param params - The parameters required for the genuine check.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Installs applications on the device.\n *\n * @param params - The parameters required to install the applications.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Lists the installed applications on the device.\n *\n * @param params - The parameters required for the genuine check.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Uninstalls applications from the device.\n *\n * @param params - The parameters required to uninstall the applications.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Updates the firmware of the device.\n *\n * @param params - The parameters required to update the firmware.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Updates the MCU (Microcontroller Unit) of the device.\n *\n * @param params - The parameters required to update the MCU.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Sets the secure channel WebSocket base URL at runtime.\n *\n * @param webSocketUrl - The WebSocket base URL to use for subsequent connections.\n */\n setWebSocketUrl(webSocketUrl: string): void;\n\n /**\n * Returns the current secure channel WebSocket base URL.\n */\n getWebSocketUrl(): string;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SecureChannelDataSource_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)i(n,t,{get:e[t],enumerable:!0})},f=(n,e,t,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of u(e))!r.call(n,a)&&a!==t&&i(n,a,{get:()=>e[a],enumerable:!(l=p(e,a))||l.enumerable});return n};var s=n=>f(i({},"__esModule",{value:!0}),n);var v={};c(v,{DefaultSecureChannelDataSource:()=>o});module.exports=s(v);class o{genuineCheck=vi.fn();listInstalledApps=vi.fn();updateMcu=vi.fn();updateFirmware=vi.fn();installApp=vi.fn();uninstallApp=vi.fn()}0&&(module.exports={DefaultSecureChannelDataSource});
1
+ "use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},f=(n,e,a,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!u.call(n,t)&&t!==a&&i(n,t,{get:()=>e[t],enumerable:!(l=r(e,t))||l.enumerable});return n};var s=n=>f(i({},"__esModule",{value:!0}),n);var v={};c(v,{DefaultSecureChannelDataSource:()=>o});module.exports=s(v);class o{genuineCheck=vi.fn();listInstalledApps=vi.fn();updateMcu=vi.fn();updateFirmware=vi.fn();installApp=vi.fn();uninstallApp=vi.fn();setWebSocketUrl=vi.fn();getWebSocketUrl=vi.fn()}0&&(module.exports={DefaultSecureChannelDataSource});
2
2
  //# sourceMappingURL=DefaultSecureChannelDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.ts"],
4
- "sourcesContent": ["import { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\n\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n genuineCheck = vi.fn();\n listInstalledApps = vi.fn();\n updateMcu = vi.fn();\n updateFirmware = vi.fn();\n installApp = vi.fn();\n uninstallApp = vi.fn();\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,CAAkE,CAC7E,aAAe,GAAG,GAAG,EACrB,kBAAoB,GAAG,GAAG,EAC1B,UAAY,GAAG,GAAG,EAClB,eAAiB,GAAG,GAAG,EACvB,WAAa,GAAG,GAAG,EACnB,aAAe,GAAG,GAAG,CACvB",
4
+ "sourcesContent": ["import { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\n\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n genuineCheck = vi.fn();\n listInstalledApps = vi.fn();\n updateMcu = vi.fn();\n updateFirmware = vi.fn();\n installApp = vi.fn();\n uninstallApp = vi.fn();\n setWebSocketUrl = vi.fn();\n getWebSocketUrl = vi.fn();\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,CAAkE,CAC7E,aAAe,GAAG,GAAG,EACrB,kBAAoB,GAAG,GAAG,EAC1B,UAAY,GAAG,GAAG,EAClB,eAAiB,GAAG,GAAG,EACvB,WAAa,GAAG,GAAG,EACnB,aAAe,GAAG,GAAG,EACrB,gBAAkB,GAAG,GAAG,EACxB,gBAAkB,GAAG,GAAG,CAC1B",
6
6
  "names": ["DefaultSecureChannelDataSource_exports", "__export", "DefaultSecureChannelDataSource", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var C=(o,e)=>{for(var r in e)a(o,r,{get:e[r],enumerable:!0})},s=(o,e,r,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of i(e))!p.call(o,t)&&t!==r&&a(o,t,{get:()=>e[t],enumerable:!(c=l(e,t))||c.enumerable});return o};var S=o=>s(a({},"__esModule",{value:!0}),o);var h={};C(h,{secureChannelModuleFactory:()=>D});module.exports=S(h);var u=require("inversify"),m=require("../../secure-channel/data/DefaultSecureChannelDataSource"),f=require("../../secure-channel/service/DefaultSecureChannelService"),n=require("./secureChannelTypes");const D=({stub:o,config:e})=>new u.ContainerModule(({bind:r})=>{r(n.secureChannelTypes.DmkConfig).toConstantValue(e),r(n.secureChannelTypes.SecureChannelDataSource).to(m.DefaultSecureChannelDataSource),r(n.secureChannelTypes.SecureChannelService).to(f.DefaultSecureChannelService)});0&&(module.exports={secureChannelModuleFactory});
1
+ "use strict";var c=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(o,e)=>{for(var t in e)c(o,t,{get:e[t],enumerable:!0})},D=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of f(e))!i.call(o,a)&&a!==t&&c(o,a,{get:()=>e[a],enumerable:!(n=C(e,a))||n.enumerable});return o};var U=o=>D(c({},"__esModule",{value:!0}),o);var k={};p(k,{secureChannelModuleFactory:()=>h});module.exports=U(k);var m=require("inversify"),S=require("../../secure-channel/data/DefaultSecureChannelDataSource"),l=require("../../secure-channel/service/DefaultSecureChannelService"),s=require("../../secure-channel/use-case/SetWebSocketUrlUseCase"),u=require("../../../../src/di.stub"),r=require("./secureChannelTypes");const h=({stub:o,config:e})=>new m.ContainerModule(({bind:t,rebindSync:n})=>{t(r.secureChannelTypes.DmkConfig).toConstantValue(e),t(r.secureChannelTypes.SecureChannelDataSource).to(S.DefaultSecureChannelDataSource).inSingletonScope(),t(r.secureChannelTypes.SecureChannelService).to(l.DefaultSecureChannelService),t(r.secureChannelTypes.SetWebSocketUrlUseCase).to(s.SetWebSocketUrlUseCase),o&&n(r.secureChannelTypes.SetWebSocketUrlUseCase).to(u.StubUseCase)});0&&(module.exports={secureChannelModuleFactory});
2
2
  //# sourceMappingURL=secureChannelModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/secure-channel/di/secureChannelModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\n\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ntype FactoryProps = {\n stub?: boolean;\n config: DmkConfig;\n};\n\nexport const secureChannelModuleFactory = ({ stub, config }: FactoryProps) =>\n new ContainerModule(({ bind }) => {\n bind(secureChannelTypes.DmkConfig).toConstantValue(config);\n\n bind(secureChannelTypes.SecureChannelDataSource).to(\n DefaultSecureChannelDataSource,\n );\n bind(secureChannelTypes.SecureChannelService).to(\n DefaultSecureChannelService,\n );\n\n if (stub) {\n /* empty */\n }\n });\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAGhCC,EAA+C,wEAC/CC,EAA4C,wEAE5CC,EAAmC,gCAO5B,MAAML,EAA6B,CAAC,CAAE,KAAAM,EAAM,OAAAC,CAAO,IACxD,IAAI,kBAAgB,CAAC,CAAE,KAAAC,CAAK,IAAM,CAChCA,EAAK,qBAAmB,SAAS,EAAE,gBAAgBD,CAAM,EAEzDC,EAAK,qBAAmB,uBAAuB,EAAE,GAC/C,gCACF,EACAA,EAAK,qBAAmB,oBAAoB,EAAE,GAC5C,6BACF,CAKF,CAAC",
6
- "names": ["secureChannelModule_exports", "__export", "secureChannelModuleFactory", "__toCommonJS", "import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_secureChannelTypes", "stub", "config", "bind"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { SetWebSocketUrlUseCase } from \"@internal/secure-channel/use-case/SetWebSocketUrlUseCase\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ntype FactoryProps = {\n stub?: boolean;\n config: DmkConfig;\n};\n\nexport const secureChannelModuleFactory = ({ stub, config }: FactoryProps) =>\n new ContainerModule(({ bind, rebindSync }) => {\n bind(secureChannelTypes.DmkConfig).toConstantValue(config);\n\n bind(secureChannelTypes.SecureChannelDataSource)\n .to(DefaultSecureChannelDataSource)\n .inSingletonScope();\n bind(secureChannelTypes.SecureChannelService).to(\n DefaultSecureChannelService,\n );\n bind(secureChannelTypes.SetWebSocketUrlUseCase).to(SetWebSocketUrlUseCase);\n\n if (stub) {\n rebindSync(secureChannelTypes.SetWebSocketUrlUseCase).to(StubUseCase);\n }\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAGhCC,EAA+C,wEAC/CC,EAA4C,wEAC5CC,EAAuC,oEACvCC,EAA4B,6BAE5BC,EAAmC,gCAO5B,MAAMP,EAA6B,CAAC,CAAE,KAAAQ,EAAM,OAAAC,CAAO,IACxD,IAAI,kBAAgB,CAAC,CAAE,KAAAC,EAAM,WAAAC,CAAW,IAAM,CAC5CD,EAAK,qBAAmB,SAAS,EAAE,gBAAgBD,CAAM,EAEzDC,EAAK,qBAAmB,uBAAuB,EAC5C,GAAG,gCAA8B,EACjC,iBAAiB,EACpBA,EAAK,qBAAmB,oBAAoB,EAAE,GAC5C,6BACF,EACAA,EAAK,qBAAmB,sBAAsB,EAAE,GAAG,wBAAsB,EAErEF,GACFG,EAAW,qBAAmB,sBAAsB,EAAE,GAAG,aAAW,CAExE,CAAC",
6
+ "names": ["secureChannelModule_exports", "__export", "secureChannelModuleFactory", "__toCommonJS", "import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SetWebSocketUrlUseCase", "import_di", "import_secureChannelTypes", "stub", "config", "bind", "rebindSync"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("inversify"),c=require("../../secure-channel/data/DefaultSecureChannelDataSource"),r=require("../../secure-channel/service/DefaultSecureChannelService"),a=require("./secureChannelModule"),t=require("./secureChannelTypes");describe("secureChannelModuleFactory default use case",()=>{const u={webSocketUrl:"http://fake-websocket.url"};let e,o;beforeEach(()=>{o=(0,a.secureChannelModuleFactory)({stub:!1,config:u}),e=new n.Container,e.loadSync(o)}),it("the secure channel module should be defined",()=>{expect(o).toBeDefined()}),it("should return default use cases instead of stub",()=>{const l=e.get(t.secureChannelTypes.DmkConfig);expect(l).toEqual({webSocketUrl:"http://fake-websocket.url"});const s=e.get(t.secureChannelTypes.SecureChannelDataSource);expect(s).toBeInstanceOf(c.DefaultSecureChannelDataSource);const f=e.get(t.secureChannelTypes.SecureChannelService);expect(f).toBeInstanceOf(r.DefaultSecureChannelService)})});
1
+ "use strict";var r=require("inversify"),u=require("../../secure-channel/data/DefaultSecureChannelDataSource"),l=require("../../secure-channel/service/DefaultSecureChannelService"),f=require("../../secure-channel/use-case/SetWebSocketUrlUseCase"),i=require("../../../../src/di.stub"),a=require("./secureChannelModule"),t=require("./secureChannelTypes");describe("secureChannelModuleFactory default use case",()=>{const n={webSocketUrl:"http://fake-websocket.url"};let e,o;beforeEach(()=>{o=(0,a.secureChannelModuleFactory)({stub:!1,config:n}),e=new r.Container,e.loadSync(o)}),it("the secure channel module should be defined",()=>{expect(o).toBeDefined()}),it("should return default use cases instead of stub",()=>{const c=e.get(t.secureChannelTypes.DmkConfig);expect(c).toEqual({webSocketUrl:"http://fake-websocket.url"});const s=e.get(t.secureChannelTypes.SecureChannelDataSource);expect(s).toBeInstanceOf(u.DefaultSecureChannelDataSource),expect(e.get(t.secureChannelTypes.SecureChannelDataSource)).toBe(s);const C=e.get(t.secureChannelTypes.SecureChannelService);expect(C).toBeInstanceOf(l.DefaultSecureChannelService);const S=e.get(t.secureChannelTypes.SetWebSocketUrlUseCase);expect(S).toBeInstanceOf(f.SetWebSocketUrlUseCase)})});describe("secureChannelModuleFactory stubbed",()=>{const n={webSocketUrl:"http://fake-websocket.url"};let e,o;beforeEach(()=>{o=(0,a.secureChannelModuleFactory)({stub:!0,config:n}),e=new r.Container,e.loadSync(o)}),it("should return a stubbed SetWebSocketUrlUseCase",()=>{const c=e.get(t.secureChannelTypes.SetWebSocketUrlUseCase);expect(c).toBeInstanceOf(i.StubUseCase)})});
2
2
  //# sourceMappingURL=secureChannelModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/secure-channel/di/secureChannelModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/index\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\n\nimport { secureChannelModuleFactory } from \"./secureChannelModule\";\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ndescribe(\"secureChannelModuleFactory default use case\", () => {\n const mockDmkConfig = {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig;\n\n let container: Container;\n let mod: ReturnType<typeof secureChannelModuleFactory>;\n\n beforeEach(() => {\n mod = secureChannelModuleFactory({\n stub: false,\n config: mockDmkConfig,\n });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"the secure channel module should be defined\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return default use cases instead of stub\", () => {\n const config = container.get(secureChannelTypes.DmkConfig);\n expect(config).toEqual({\n webSocketUrl: \"http://fake-websocket.url\",\n });\n\n const secureChannelDataSource = container.get(\n secureChannelTypes.SecureChannelDataSource,\n );\n expect(secureChannelDataSource).toBeInstanceOf(\n DefaultSecureChannelDataSource,\n );\n\n const secureChannelService = container.get(\n secureChannelTypes.SecureChannelService,\n );\n expect(secureChannelService).toBeInstanceOf(DefaultSecureChannelService);\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAA0B,qBAG1BC,EAA+C,wEAC/CC,EAA4C,wEAE5CC,EAA2C,iCAC3CC,EAAmC,gCAEnC,SAAS,8CAA+C,IAAM,CAC5D,MAAMC,EAAgB,CACpB,aAAc,2BAChB,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,KAAM,8BAA2B,CAC/B,KAAM,GACN,OAAQF,CACV,CAAC,EACDC,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,kDAAmD,IAAM,CAC1D,MAAMC,EAASF,EAAU,IAAI,qBAAmB,SAAS,EACzD,OAAOE,CAAM,EAAE,QAAQ,CACrB,aAAc,2BAChB,CAAC,EAED,MAAMC,EAA0BH,EAAU,IACxC,qBAAmB,uBACrB,EACA,OAAOG,CAAuB,EAAE,eAC9B,gCACF,EAEA,MAAMC,EAAuBJ,EAAU,IACrC,qBAAmB,oBACrB,EACA,OAAOI,CAAoB,EAAE,eAAe,6BAA2B,CACzE,CAAC,CACH,CAAC",
6
- "names": ["import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_secureChannelModule", "import_secureChannelTypes", "mockDmkConfig", "container", "mod", "config", "secureChannelDataSource", "secureChannelService"]
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/index\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { SetWebSocketUrlUseCase } from \"@internal/secure-channel/use-case/SetWebSocketUrlUseCase\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { secureChannelModuleFactory } from \"./secureChannelModule\";\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ndescribe(\"secureChannelModuleFactory default use case\", () => {\n const mockDmkConfig = {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig;\n\n let container: Container;\n let mod: ReturnType<typeof secureChannelModuleFactory>;\n\n beforeEach(() => {\n mod = secureChannelModuleFactory({\n stub: false,\n config: mockDmkConfig,\n });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"the secure channel module should be defined\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return default use cases instead of stub\", () => {\n const config = container.get(secureChannelTypes.DmkConfig);\n expect(config).toEqual({\n webSocketUrl: \"http://fake-websocket.url\",\n });\n\n const secureChannelDataSource = container.get(\n secureChannelTypes.SecureChannelDataSource,\n );\n expect(secureChannelDataSource).toBeInstanceOf(\n DefaultSecureChannelDataSource,\n );\n expect(container.get(secureChannelTypes.SecureChannelDataSource)).toBe(\n secureChannelDataSource,\n );\n\n const secureChannelService = container.get(\n secureChannelTypes.SecureChannelService,\n );\n expect(secureChannelService).toBeInstanceOf(DefaultSecureChannelService);\n\n const setWebSocketUrlUseCase = container.get(\n secureChannelTypes.SetWebSocketUrlUseCase,\n );\n expect(setWebSocketUrlUseCase).toBeInstanceOf(SetWebSocketUrlUseCase);\n });\n});\n\ndescribe(\"secureChannelModuleFactory stubbed\", () => {\n const mockDmkConfig = {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig;\n\n let container: Container;\n let mod: ReturnType<typeof secureChannelModuleFactory>;\n\n beforeEach(() => {\n mod = secureChannelModuleFactory({\n stub: true,\n config: mockDmkConfig,\n });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return a stubbed SetWebSocketUrlUseCase\", () => {\n const setWebSocketUrlUseCase = container.get(\n secureChannelTypes.SetWebSocketUrlUseCase,\n );\n expect(setWebSocketUrlUseCase).toBeInstanceOf(StubUseCase);\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA0B,qBAG1BC,EAA+C,wEAC/CC,EAA4C,wEAC5CC,EAAuC,oEACvCC,EAA4B,6BAE5BC,EAA2C,iCAC3CC,EAAmC,gCAEnC,SAAS,8CAA+C,IAAM,CAC5D,MAAMC,EAAgB,CACpB,aAAc,2BAChB,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,KAAM,8BAA2B,CAC/B,KAAM,GACN,OAAQF,CACV,CAAC,EACDC,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,kDAAmD,IAAM,CAC1D,MAAMC,EAASF,EAAU,IAAI,qBAAmB,SAAS,EACzD,OAAOE,CAAM,EAAE,QAAQ,CACrB,aAAc,2BAChB,CAAC,EAED,MAAMC,EAA0BH,EAAU,IACxC,qBAAmB,uBACrB,EACA,OAAOG,CAAuB,EAAE,eAC9B,gCACF,EACA,OAAOH,EAAU,IAAI,qBAAmB,uBAAuB,CAAC,EAAE,KAChEG,CACF,EAEA,MAAMC,EAAuBJ,EAAU,IACrC,qBAAmB,oBACrB,EACA,OAAOI,CAAoB,EAAE,eAAe,6BAA2B,EAEvE,MAAMC,EAAyBL,EAAU,IACvC,qBAAmB,sBACrB,EACA,OAAOK,CAAsB,EAAE,eAAe,wBAAsB,CACtE,CAAC,CACH,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,MAAMN,EAAgB,CACpB,aAAc,2BAChB,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,KAAM,8BAA2B,CAC/B,KAAM,GACN,OAAQF,CACV,CAAC,EACDC,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,iDAAkD,IAAM,CACzD,MAAMI,EAAyBL,EAAU,IACvC,qBAAmB,sBACrB,EACA,OAAOK,CAAsB,EAAE,eAAe,aAAW,CAC3D,CAAC,CACH,CAAC",
6
+ "names": ["import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SetWebSocketUrlUseCase", "import_di", "import_secureChannelModule", "import_secureChannelTypes", "mockDmkConfig", "container", "mod", "config", "secureChannelDataSource", "secureChannelService", "setWebSocketUrlUseCase"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var S=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var C=(n,e)=>{for(var o in e)S(n,o,{get:e[o],enumerable:!0})},h=(n,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!u.call(n,r)&&r!==o&&S(n,r,{get:()=>e[r],enumerable:!(c=a(e,r))||c.enumerable});return n};var f=n=>h(S({},"__esModule",{value:!0}),n);var i={};C(i,{secureChannelTypes:()=>m});module.exports=f(i);const m={SecureChannelService:Symbol.for("SecureChannelService"),SecureChannelDataSource:Symbol.for("SecureChannelDataSource"),DmkConfig:Symbol.for("SecureChannelDmkConfig")};0&&(module.exports={secureChannelTypes});
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var t=(r,e)=>{for(var o in e)n(r,o,{get:e[o],enumerable:!0})},u=(r,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let S of l(e))!C.call(r,S)&&S!==o&&n(r,S,{get:()=>e[S],enumerable:!(c=a(e,S))||c.enumerable});return r};var s=r=>u(n({},"__esModule",{value:!0}),r);var f={};t(f,{secureChannelTypes:()=>b});module.exports=s(f);const b={SecureChannelService:Symbol.for("SecureChannelService"),SecureChannelDataSource:Symbol.for("SecureChannelDataSource"),DmkConfig:Symbol.for("SecureChannelDmkConfig"),SetWebSocketUrlUseCase:Symbol.for("SetWebSocketUrlUseCase")};0&&(module.exports={secureChannelTypes});
2
2
  //# sourceMappingURL=secureChannelTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/secure-channel/di/secureChannelTypes.ts"],
4
- "sourcesContent": ["export const secureChannelTypes = {\n SecureChannelService: Symbol.for(\"SecureChannelService\"),\n SecureChannelDataSource: Symbol.for(\"SecureChannelDataSource\"),\n DmkConfig: Symbol.for(\"SecureChannelDmkConfig\"),\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAqB,CAChC,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,wBAAyB,OAAO,IAAI,yBAAyB,EAC7D,UAAW,OAAO,IAAI,wBAAwB,CAChD",
4
+ "sourcesContent": ["export const secureChannelTypes = {\n SecureChannelService: Symbol.for(\"SecureChannelService\"),\n SecureChannelDataSource: Symbol.for(\"SecureChannelDataSource\"),\n DmkConfig: Symbol.for(\"SecureChannelDmkConfig\"),\n SetWebSocketUrlUseCase: Symbol.for(\"SetWebSocketUrlUseCase\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAqB,CAChC,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,wBAAyB,OAAO,IAAI,yBAAyB,EAC7D,UAAW,OAAO,IAAI,wBAAwB,EAC9C,uBAAwB,OAAO,IAAI,wBAAwB,CAC7D",
6
6
  "names": ["secureChannelTypes_exports", "__export", "secureChannelTypes", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var y=(r,e)=>{for(var n in e)o(r,n,{get:e[n],enumerable:!0})},C=(r,e,n,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of s(e))!f.call(r,a)&&a!==n&&o(r,a,{get:()=>e[a],enumerable:!(c=l(e,a))||c.enumerable});return r};var S=r=>C(o({},"__esModule",{value:!0}),r),p=(r,e,n,c)=>{for(var a=c>1?void 0:c?l(e,n):e,i=r.length-1,h;i>=0;i--)(h=r[i])&&(a=(c?h(e,n,a):h(a))||a);return c&&a&&o(e,n,a),a},m=(r,e)=>(n,c)=>e(n,c,r);var j={};y(j,{SetWebSocketUrlUseCase:()=>t});module.exports=S(j);var u=require("inversify"),D=require("../../secure-channel/di/secureChannelTypes");let t=class{constructor(e){this.secureChannelDataSource=e}execute(e){this.secureChannelDataSource.setWebSocketUrl(e)}};t=p([(0,u.injectable)(),m(0,(0,u.inject)(D.secureChannelTypes.SecureChannelDataSource))],t);0&&(module.exports={SetWebSocketUrlUseCase});
2
+ //# sourceMappingURL=SetWebSocketUrlUseCase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\n\n/**\n * Use case to set the secure channel WebSocket base URL at runtime.\n */\n@injectable()\nexport class SetWebSocketUrlUseCase {\n constructor(\n @inject(secureChannelTypes.SecureChannelDataSource)\n private readonly secureChannelDataSource: SecureChannelDataSource,\n ) {}\n\n execute(webSocketUrl: string) {\n this.secureChannelDataSource.setWebSocketUrl(webSocketUrl);\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAGnCC,EAAmC,0DAM5B,IAAMC,EAAN,KAA6B,CAClC,YAEmBC,EACjB,CADiB,6BAAAA,CAChB,CAEH,QAAQC,EAAsB,CAC5B,KAAK,wBAAwB,gBAAgBA,CAAY,CAC3D,CACF,EATaF,EAANG,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,qBAAmB,uBAAuB,IAFzCJ",
6
+ "names": ["SetWebSocketUrlUseCase_exports", "__export", "SetWebSocketUrlUseCase", "__toCommonJS", "import_inversify", "import_secureChannelTypes", "SetWebSocketUrlUseCase", "secureChannelDataSource", "webSocketUrl", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vitest"),o=require("./SetWebSocketUrlUseCase");(0,e.describe)("SetWebSocketUrlUseCase",()=>{const t={setWebSocketUrl:e.vi.fn()};beforeEach(()=>{e.vi.clearAllMocks()}),(0,e.it)("should call setWebSocketUrl on SecureChannelDataSource with the given URL",()=>{const a=new o.SetWebSocketUrlUseCase(t),c="wss://custom-websocket.url/update";a.execute(c),(0,e.expect)(t.setWebSocketUrl).toHaveBeenCalledWith(c)})});
2
+ //# sourceMappingURL=SetWebSocketUrlUseCase.test.js.map