@ledgerhq/device-transport-kit-mockserver 0.0.0-intent-queue-6-20251204103625 → 0.0.0-metamask-20260119135629
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.
- package/lib/cjs/MockserverTransport.js +1 -1
- package/lib/cjs/MockserverTransport.js.map +3 -3
- package/lib/cjs/package.json +9 -9
- package/lib/esm/MockserverTransport.js +1 -1
- package/lib/esm/MockserverTransport.js.map +3 -3
- package/lib/esm/package.json +9 -9
- package/lib/types/MockserverTransport.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var D=(o,e)=>{for(var r in e)p(o,r,{get:e[r],enumerable:!0})},h=(o,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of m(e))!y.call(o,i)&&i!==r&&p(o,i,{get:()=>e[i],enumerable:!(t=v(e,i))||t.enumerable});return o};var b=o=>h(p({},"__esModule",{value:!0}),o);var k={};D(k,{MockTransport:()=>l,mockserverIdentifier:()=>u,mockserverTransportFactory:()=>f});module.exports=b(k);var n=require("@ledgerhq/device-management-kit"),g=require("@ledgerhq/device-mockserver-client"),c=require("purify-ts"),d=require("rxjs");const u="MOCKSERVER";class l{logger;mockClient;identifier=u;constructor(e,r){this.logger=e("MockTransport"),this.mockClient=new g.MockClient(r.mockUrl)}isSupported(){return!0}getIdentifier(){return this.identifier}listenToAvailableDevices(){return(0,d.from)([])}startDiscovering(){return this.logger.debug("startDiscovering"),(0,d.from)(this.mockClient.scan().then(e=>e.map(r=>({id:r.id,deviceModel:{id:r.device_type,productName:r.name,usbProductId:16,bootloaderUsbProductId:1,getBlockSize(){return 32},usbOnly:!0,memorySize:320*1024,masks:[823132160]},transport:this.identifier})))).pipe((0,d.mergeMap)(e=>e))}stopDiscovering(){this.logger.debug("stopDiscovering")}async connect(e){this.logger.debug("connect");const r=e.deviceId;try{const t=await this.mockClient.connect(r),i={sendApdu:s=>this.sendApdu(r,e.deviceId,e.onDisconnect,s),deviceModel:{id:t.device.device_type,productName:t.device.name,usbProductId:16,legacyUsbProductId:1,bootloaderUsbProductId:16,getBlockSize(){return 32},usbOnly:!0,memorySize:320*1024,masks:[823132160]},id:e.deviceId,type:t.device.connectivity_type,transport:this.identifier};return(0,c.Right)(i)}catch(t){return(0,c.Left)(new n.OpeningConnectionError(t))}}async disconnect(e){this.logger.debug("disconnect");const r=e.connectedDevice.id;try{return await this.mockClient.disconnect(r)?(0,c.Right)(void 0):(0,c.Left)(new n.DisconnectError(new Error(`Failed to disconnect ${r}`)))}catch(t){return(0,c.Left)(new n.DisconnectError(t))}}async sendApdu(e,r,t,i){this.logger.debug("send");try{const s=await this.mockClient.send(e,i);this.logger.debug((0,n.formatApduSentLog)(i));const a={statusCode:this.mockClient.fromHexString(s.response.substring(s.response.length-4,s.response.length)),data:this.mockClient.fromHexString(s.response.substring(0,s.response.length-4))};return this.logger.debug((0,n.formatApduReceivedLog)(a)),(0,c.Right)(a)}catch(s){return t(r),(0,c.Left)(new n.NoAccessibleDeviceError(s))}}}const f=({config:o,loggerServiceFactory:e})=>new l(e,o);0&&(module.exports={MockTransport,mockserverIdentifier,mockserverTransportFactory});
|
|
2
2
|
//# sourceMappingURL=MockserverTransport.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/MockserverTransport.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ApduResponse,\n type ConnectError,\n type DeviceId,\n type DeviceModelId,\n DisconnectError,\n type DisconnectHandler,\n type DmkConfig,\n type DmkError,\n type LoggerPublisherService,\n NoAccessibleDeviceError,\n OpeningConnectionError,\n type Transport,\n type TransportConnectedDevice,\n type TransportDiscoveredDevice,\n type TransportFactory,\n type TransportIdentifier,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n type CommandResponse,\n type Device,\n MockClient,\n type Session,\n} from \"@ledgerhq/device-mockserver-client\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { from, mergeMap, type Observable } from \"rxjs\";\n\nexport const mockserverIdentifier: TransportIdentifier = \"MOCKSERVER\";\n\nexport class MockTransport implements Transport {\n private logger: LoggerPublisherService;\n private mockClient: MockClient;\n private readonly identifier: TransportIdentifier = mockserverIdentifier;\n\n constructor(\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n config: DmkConfig,\n ) {\n this.logger = loggerServiceFactory(\"MockTransport\");\n this.mockClient = new MockClient(config.mockUrl);\n }\n\n isSupported(): boolean {\n return true;\n }\n\n getIdentifier(): TransportIdentifier {\n return this.identifier;\n }\n\n listenToAvailableDevices(): Observable<TransportDiscoveredDevice[]> {\n return from([]);\n }\n\n startDiscovering(): Observable<TransportDiscoveredDevice> {\n this.logger.debug(\"startDiscovering\");\n return from(\n this.mockClient.scan().then((devices: Device[]) => {\n return devices.map((device: Device) => ({\n id: device.id,\n deviceModel: {\n id: device.device_type as DeviceModelId,\n productName: device.name,\n usbProductId: 0x10,\n bootloaderUsbProductId: 0x0001,\n getBlockSize() {\n return 32;\n },\n usbOnly: true,\n memorySize: 320 * 1024,\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,yBAAAC,EAAA,+BAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,
|
|
6
|
-
"names": ["MockserverTransport_exports", "__export", "MockTransport", "mockserverIdentifier", "mockserverTransportFactory", "__toCommonJS", "import_device_management_kit", "import_device_mockserver_client", "import_purify_ts", "import_rxjs", "loggerServiceFactory", "config", "devices", "device", "params", "sessionId", "session", "connectedDevice", "apdu", "error", "deviceId", "onDisconnect", "response"]
|
|
4
|
+
"sourcesContent": ["import {\n type ApduResponse,\n type ConnectError,\n type DeviceId,\n type DeviceModelId,\n DisconnectError,\n type DisconnectHandler,\n type DmkConfig,\n type DmkError,\n formatApduReceivedLog,\n formatApduSentLog,\n type LoggerPublisherService,\n NoAccessibleDeviceError,\n OpeningConnectionError,\n type Transport,\n type TransportConnectedDevice,\n type TransportDiscoveredDevice,\n type TransportFactory,\n type TransportIdentifier,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n type CommandResponse,\n type Device,\n MockClient,\n type Session,\n} from \"@ledgerhq/device-mockserver-client\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { from, mergeMap, type Observable } from \"rxjs\";\n\nexport const mockserverIdentifier: TransportIdentifier = \"MOCKSERVER\";\n\nexport class MockTransport implements Transport {\n private logger: LoggerPublisherService;\n private mockClient: MockClient;\n private readonly identifier: TransportIdentifier = mockserverIdentifier;\n\n constructor(\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n config: DmkConfig,\n ) {\n this.logger = loggerServiceFactory(\"MockTransport\");\n this.mockClient = new MockClient(config.mockUrl);\n }\n\n isSupported(): boolean {\n return true;\n }\n\n getIdentifier(): TransportIdentifier {\n return this.identifier;\n }\n\n listenToAvailableDevices(): Observable<TransportDiscoveredDevice[]> {\n return from([]);\n }\n\n startDiscovering(): Observable<TransportDiscoveredDevice> {\n this.logger.debug(\"startDiscovering\");\n return from(\n this.mockClient.scan().then((devices: Device[]) => {\n return devices.map((device: Device) => ({\n id: device.id,\n deviceModel: {\n id: device.device_type as DeviceModelId,\n productName: device.name,\n usbProductId: 0x10,\n bootloaderUsbProductId: 0x0001,\n getBlockSize() {\n return 32;\n },\n usbOnly: true,\n memorySize: 320 * 1024,\n masks: [0x31100000],\n },\n transport: this.identifier,\n }));\n }),\n ).pipe(mergeMap((device) => device));\n }\n\n stopDiscovering(): void {\n //DO NOTHING HERE\n this.logger.debug(\"stopDiscovering\");\n }\n\n async connect(params: {\n deviceId: DeviceId;\n onDisconnect: DisconnectHandler;\n }): Promise<Either<ConnectError, TransportConnectedDevice>> {\n this.logger.debug(\"connect\");\n const sessionId: string = params.deviceId;\n try {\n const session: Session = await this.mockClient.connect(sessionId);\n const connectedDevice = {\n sendApdu: (apdu) => {\n return this.sendApdu(\n sessionId,\n params.deviceId,\n params.onDisconnect,\n apdu,\n );\n },\n deviceModel: {\n id: session.device.device_type,\n productName: session.device.name,\n usbProductId: 0x10,\n legacyUsbProductId: 0x0001,\n bootloaderUsbProductId: 0x10,\n getBlockSize() {\n return 32;\n },\n usbOnly: true,\n memorySize: 320 * 1024,\n masks: [0x31100000],\n },\n id: params.deviceId,\n type: session.device.connectivity_type,\n transport: this.identifier,\n } as TransportConnectedDevice;\n return Right(connectedDevice);\n } catch (error) {\n return Left(new OpeningConnectionError(error as Error));\n }\n }\n\n async disconnect(params: {\n connectedDevice: TransportConnectedDevice;\n }): Promise<Either<DmkError, void>> {\n this.logger.debug(\"disconnect\");\n const sessionId: string = params.connectedDevice.id;\n try {\n const success: boolean = await this.mockClient.disconnect(sessionId);\n if (!success) {\n return Left(\n new DisconnectError(new Error(`Failed to disconnect ${sessionId}`)),\n );\n }\n return Right(undefined);\n } catch (error) {\n return Left(new DisconnectError(error as Error));\n }\n }\n\n async sendApdu(\n sessionId: string,\n deviceId: DeviceId,\n onDisconnect: DisconnectHandler,\n apdu: Uint8Array,\n ): Promise<Either<DmkError, ApduResponse>> {\n this.logger.debug(\"send\");\n try {\n const response: CommandResponse = await this.mockClient.send(\n sessionId,\n apdu,\n );\n this.logger.debug(formatApduSentLog(apdu));\n const apduResponse = {\n statusCode: this.mockClient.fromHexString(\n response.response.substring(\n response.response.length - 4,\n response.response.length,\n ),\n ),\n data: this.mockClient.fromHexString(\n response.response.substring(0, response.response.length - 4),\n ),\n } as ApduResponse;\n this.logger.debug(formatApduReceivedLog(apduResponse));\n return Right(apduResponse);\n } catch (error) {\n onDisconnect(deviceId);\n return Left(new NoAccessibleDeviceError(error as Error));\n }\n }\n}\n\nexport const mockserverTransportFactory: TransportFactory = ({\n config,\n loggerServiceFactory,\n}) => new MockTransport(loggerServiceFactory, config);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["MockserverTransport_exports", "__export", "MockTransport", "mockserverIdentifier", "mockserverTransportFactory", "__toCommonJS", "import_device_management_kit", "import_device_mockserver_client", "import_purify_ts", "import_rxjs", "loggerServiceFactory", "config", "devices", "device", "params", "sessionId", "session", "connectedDevice", "apdu", "error", "deviceId", "onDisconnect", "response", "apduResponse"]
|
|
7
7
|
}
|
package/lib/cjs/package.json
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"purify-ts": "catalog:"
|
|
5
5
|
},
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@ledgerhq/device-management-kit": "workspace
|
|
8
|
-
"@ledgerhq/device-mockserver-client": "workspace
|
|
9
|
-
"@ledgerhq/eslint-config-dsdk": "workspace
|
|
10
|
-
"@ledgerhq/ldmk-tool": "workspace
|
|
11
|
-
"@ledgerhq/prettier-config-dsdk": "workspace
|
|
12
|
-
"@ledgerhq/tsconfig-dsdk": "workspace
|
|
13
|
-
"@ledgerhq/vitest-config-dmk": "workspace
|
|
7
|
+
"@ledgerhq/device-management-kit": "workspace:*",
|
|
8
|
+
"@ledgerhq/device-mockserver-client": "workspace:*",
|
|
9
|
+
"@ledgerhq/eslint-config-dsdk": "workspace:*",
|
|
10
|
+
"@ledgerhq/ldmk-tool": "workspace:*",
|
|
11
|
+
"@ledgerhq/prettier-config-dsdk": "workspace:*",
|
|
12
|
+
"@ledgerhq/tsconfig-dsdk": "workspace:*",
|
|
13
|
+
"@ledgerhq/vitest-config-dmk": "workspace:*",
|
|
14
14
|
"rxjs": "catalog:",
|
|
15
15
|
"ts-node": "catalog:"
|
|
16
16
|
},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"name": "@ledgerhq/device-transport-kit-mockserver",
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@ledgerhq/device-management-kit": "workspace
|
|
35
|
+
"@ledgerhq/device-management-kit": "workspace:*",
|
|
36
36
|
"rxjs": "catalog:"
|
|
37
37
|
},
|
|
38
38
|
"private": false,
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
57
57
|
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
|
|
58
58
|
},
|
|
59
|
-
"version": "0.0.0-
|
|
59
|
+
"version": "0.0.0-metamask-20260119135629"
|
|
60
60
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{DisconnectError as
|
|
1
|
+
import{DisconnectError as p,formatApduReceivedLog as g,formatApduSentLog as u,NoAccessibleDeviceError as l,OpeningConnectionError as v}from"@ledgerhq/device-management-kit";import{MockClient as m}from"@ledgerhq/device-mockserver-client";import{Left as i,Right as s}from"purify-ts";import{from as a,mergeMap as y}from"rxjs";const D="MOCKSERVER";class h{logger;mockClient;identifier=D;constructor(e,r){this.logger=e("MockTransport"),this.mockClient=new m(r.mockUrl)}isSupported(){return!0}getIdentifier(){return this.identifier}listenToAvailableDevices(){return a([])}startDiscovering(){return this.logger.debug("startDiscovering"),a(this.mockClient.scan().then(e=>e.map(r=>({id:r.id,deviceModel:{id:r.device_type,productName:r.name,usbProductId:16,bootloaderUsbProductId:1,getBlockSize(){return 32},usbOnly:!0,memorySize:320*1024,masks:[823132160]},transport:this.identifier})))).pipe(y(e=>e))}stopDiscovering(){this.logger.debug("stopDiscovering")}async connect(e){this.logger.debug("connect");const r=e.deviceId;try{const t=await this.mockClient.connect(r),o={sendApdu:n=>this.sendApdu(r,e.deviceId,e.onDisconnect,n),deviceModel:{id:t.device.device_type,productName:t.device.name,usbProductId:16,legacyUsbProductId:1,bootloaderUsbProductId:16,getBlockSize(){return 32},usbOnly:!0,memorySize:320*1024,masks:[823132160]},id:e.deviceId,type:t.device.connectivity_type,transport:this.identifier};return s(o)}catch(t){return i(new v(t))}}async disconnect(e){this.logger.debug("disconnect");const r=e.connectedDevice.id;try{return await this.mockClient.disconnect(r)?s(void 0):i(new p(new Error(`Failed to disconnect ${r}`)))}catch(t){return i(new p(t))}}async sendApdu(e,r,t,o){this.logger.debug("send");try{const n=await this.mockClient.send(e,o);this.logger.debug(u(o));const d={statusCode:this.mockClient.fromHexString(n.response.substring(n.response.length-4,n.response.length)),data:this.mockClient.fromHexString(n.response.substring(0,n.response.length-4))};return this.logger.debug(g(d)),s(d)}catch(n){return t(r),i(new l(n))}}}const I=({config:c,loggerServiceFactory:e})=>new h(e,c);export{h as MockTransport,D as mockserverIdentifier,I as mockserverTransportFactory};
|
|
2
2
|
//# sourceMappingURL=MockserverTransport.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/MockserverTransport.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ApduResponse,\n type ConnectError,\n type DeviceId,\n type DeviceModelId,\n DisconnectError,\n type DisconnectHandler,\n type DmkConfig,\n type DmkError,\n type LoggerPublisherService,\n NoAccessibleDeviceError,\n OpeningConnectionError,\n type Transport,\n type TransportConnectedDevice,\n type TransportDiscoveredDevice,\n type TransportFactory,\n type TransportIdentifier,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n type CommandResponse,\n type Device,\n MockClient,\n type Session,\n} from \"@ledgerhq/device-mockserver-client\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { from, mergeMap, type Observable } from \"rxjs\";\n\nexport const mockserverIdentifier: TransportIdentifier = \"MOCKSERVER\";\n\nexport class MockTransport implements Transport {\n private logger: LoggerPublisherService;\n private mockClient: MockClient;\n private readonly identifier: TransportIdentifier = mockserverIdentifier;\n\n constructor(\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n config: DmkConfig,\n ) {\n this.logger = loggerServiceFactory(\"MockTransport\");\n this.mockClient = new MockClient(config.mockUrl);\n }\n\n isSupported(): boolean {\n return true;\n }\n\n getIdentifier(): TransportIdentifier {\n return this.identifier;\n }\n\n listenToAvailableDevices(): Observable<TransportDiscoveredDevice[]> {\n return from([]);\n }\n\n startDiscovering(): Observable<TransportDiscoveredDevice> {\n this.logger.debug(\"startDiscovering\");\n return from(\n this.mockClient.scan().then((devices: Device[]) => {\n return devices.map((device: Device) => ({\n id: device.id,\n deviceModel: {\n id: device.device_type as DeviceModelId,\n productName: device.name,\n usbProductId: 0x10,\n bootloaderUsbProductId: 0x0001,\n getBlockSize() {\n return 32;\n },\n usbOnly: true,\n memorySize: 320 * 1024,\n
|
|
5
|
-
"mappings": "AAAA,OAKE,mBAAAA,
|
|
6
|
-
"names": ["DisconnectError", "NoAccessibleDeviceError", "OpeningConnectionError", "MockClient", "Left", "Right", "from", "mergeMap", "mockserverIdentifier", "MockTransport", "loggerServiceFactory", "config", "devices", "device", "params", "sessionId", "session", "connectedDevice", "apdu", "error", "deviceId", "onDisconnect", "response", "mockserverTransportFactory"]
|
|
4
|
+
"sourcesContent": ["import {\n type ApduResponse,\n type ConnectError,\n type DeviceId,\n type DeviceModelId,\n DisconnectError,\n type DisconnectHandler,\n type DmkConfig,\n type DmkError,\n formatApduReceivedLog,\n formatApduSentLog,\n type LoggerPublisherService,\n NoAccessibleDeviceError,\n OpeningConnectionError,\n type Transport,\n type TransportConnectedDevice,\n type TransportDiscoveredDevice,\n type TransportFactory,\n type TransportIdentifier,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n type CommandResponse,\n type Device,\n MockClient,\n type Session,\n} from \"@ledgerhq/device-mockserver-client\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { from, mergeMap, type Observable } from \"rxjs\";\n\nexport const mockserverIdentifier: TransportIdentifier = \"MOCKSERVER\";\n\nexport class MockTransport implements Transport {\n private logger: LoggerPublisherService;\n private mockClient: MockClient;\n private readonly identifier: TransportIdentifier = mockserverIdentifier;\n\n constructor(\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n config: DmkConfig,\n ) {\n this.logger = loggerServiceFactory(\"MockTransport\");\n this.mockClient = new MockClient(config.mockUrl);\n }\n\n isSupported(): boolean {\n return true;\n }\n\n getIdentifier(): TransportIdentifier {\n return this.identifier;\n }\n\n listenToAvailableDevices(): Observable<TransportDiscoveredDevice[]> {\n return from([]);\n }\n\n startDiscovering(): Observable<TransportDiscoveredDevice> {\n this.logger.debug(\"startDiscovering\");\n return from(\n this.mockClient.scan().then((devices: Device[]) => {\n return devices.map((device: Device) => ({\n id: device.id,\n deviceModel: {\n id: device.device_type as DeviceModelId,\n productName: device.name,\n usbProductId: 0x10,\n bootloaderUsbProductId: 0x0001,\n getBlockSize() {\n return 32;\n },\n usbOnly: true,\n memorySize: 320 * 1024,\n masks: [0x31100000],\n },\n transport: this.identifier,\n }));\n }),\n ).pipe(mergeMap((device) => device));\n }\n\n stopDiscovering(): void {\n //DO NOTHING HERE\n this.logger.debug(\"stopDiscovering\");\n }\n\n async connect(params: {\n deviceId: DeviceId;\n onDisconnect: DisconnectHandler;\n }): Promise<Either<ConnectError, TransportConnectedDevice>> {\n this.logger.debug(\"connect\");\n const sessionId: string = params.deviceId;\n try {\n const session: Session = await this.mockClient.connect(sessionId);\n const connectedDevice = {\n sendApdu: (apdu) => {\n return this.sendApdu(\n sessionId,\n params.deviceId,\n params.onDisconnect,\n apdu,\n );\n },\n deviceModel: {\n id: session.device.device_type,\n productName: session.device.name,\n usbProductId: 0x10,\n legacyUsbProductId: 0x0001,\n bootloaderUsbProductId: 0x10,\n getBlockSize() {\n return 32;\n },\n usbOnly: true,\n memorySize: 320 * 1024,\n masks: [0x31100000],\n },\n id: params.deviceId,\n type: session.device.connectivity_type,\n transport: this.identifier,\n } as TransportConnectedDevice;\n return Right(connectedDevice);\n } catch (error) {\n return Left(new OpeningConnectionError(error as Error));\n }\n }\n\n async disconnect(params: {\n connectedDevice: TransportConnectedDevice;\n }): Promise<Either<DmkError, void>> {\n this.logger.debug(\"disconnect\");\n const sessionId: string = params.connectedDevice.id;\n try {\n const success: boolean = await this.mockClient.disconnect(sessionId);\n if (!success) {\n return Left(\n new DisconnectError(new Error(`Failed to disconnect ${sessionId}`)),\n );\n }\n return Right(undefined);\n } catch (error) {\n return Left(new DisconnectError(error as Error));\n }\n }\n\n async sendApdu(\n sessionId: string,\n deviceId: DeviceId,\n onDisconnect: DisconnectHandler,\n apdu: Uint8Array,\n ): Promise<Either<DmkError, ApduResponse>> {\n this.logger.debug(\"send\");\n try {\n const response: CommandResponse = await this.mockClient.send(\n sessionId,\n apdu,\n );\n this.logger.debug(formatApduSentLog(apdu));\n const apduResponse = {\n statusCode: this.mockClient.fromHexString(\n response.response.substring(\n response.response.length - 4,\n response.response.length,\n ),\n ),\n data: this.mockClient.fromHexString(\n response.response.substring(0, response.response.length - 4),\n ),\n } as ApduResponse;\n this.logger.debug(formatApduReceivedLog(apduResponse));\n return Right(apduResponse);\n } catch (error) {\n onDisconnect(deviceId);\n return Left(new NoAccessibleDeviceError(error as Error));\n }\n }\n}\n\nexport const mockserverTransportFactory: TransportFactory = ({\n config,\n loggerServiceFactory,\n}) => new MockTransport(loggerServiceFactory, config);\n"],
|
|
5
|
+
"mappings": "AAAA,OAKE,mBAAAA,EAIA,yBAAAC,EACA,qBAAAC,EAEA,2BAAAC,EACA,0BAAAC,MAMK,kCACP,OAGE,cAAAC,MAEK,qCACP,OAAsB,QAAAC,EAAM,SAAAC,MAAa,YACzC,OAAS,QAAAC,EAAM,YAAAC,MAAiC,OAEzC,MAAMC,EAA4C,aAElD,MAAMC,CAAmC,CACtC,OACA,WACS,WAAkCD,EAEnD,YACEE,EACAC,EACA,CACA,KAAK,OAASD,EAAqB,eAAe,EAClD,KAAK,WAAa,IAAIP,EAAWQ,EAAO,OAAO,CACjD,CAEA,aAAuB,CACrB,MAAO,EACT,CAEA,eAAqC,CACnC,OAAO,KAAK,UACd,CAEA,0BAAoE,CAClE,OAAOL,EAAK,CAAC,CAAC,CAChB,CAEA,kBAA0D,CACxD,YAAK,OAAO,MAAM,kBAAkB,EAC7BA,EACL,KAAK,WAAW,KAAK,EAAE,KAAMM,GACpBA,EAAQ,IAAKC,IAAoB,CACtC,GAAIA,EAAO,GACX,YAAa,CACX,GAAIA,EAAO,YACX,YAAaA,EAAO,KACpB,aAAc,GACd,uBAAwB,EACxB,cAAe,CACb,MAAO,GACT,EACA,QAAS,GACT,WAAY,IAAM,KAClB,MAAO,CAAC,SAAU,CACpB,EACA,UAAW,KAAK,UAClB,EAAE,CACH,CACH,EAAE,KAAKN,EAAUM,GAAWA,CAAM,CAAC,CACrC,CAEA,iBAAwB,CAEtB,KAAK,OAAO,MAAM,iBAAiB,CACrC,CAEA,MAAM,QAAQC,EAG8C,CAC1D,KAAK,OAAO,MAAM,SAAS,EAC3B,MAAMC,EAAoBD,EAAO,SACjC,GAAI,CACF,MAAME,EAAmB,MAAM,KAAK,WAAW,QAAQD,CAAS,EAC1DE,EAAkB,CACtB,SAAWC,GACF,KAAK,SACVH,EACAD,EAAO,SACPA,EAAO,aACPI,CACF,EAEF,YAAa,CACX,GAAIF,EAAQ,OAAO,YACnB,YAAaA,EAAQ,OAAO,KAC5B,aAAc,GACd,mBAAoB,EACpB,uBAAwB,GACxB,cAAe,CACb,MAAO,GACT,EACA,QAAS,GACT,WAAY,IAAM,KAClB,MAAO,CAAC,SAAU,CACpB,EACA,GAAIF,EAAO,SACX,KAAME,EAAQ,OAAO,kBACrB,UAAW,KAAK,UAClB,EACA,OAAOX,EAAMY,CAAe,CAC9B,OAASE,EAAO,CACd,OAAOf,EAAK,IAAIF,EAAuBiB,CAAc,CAAC,CACxD,CACF,CAEA,MAAM,WAAWL,EAEmB,CAClC,KAAK,OAAO,MAAM,YAAY,EAC9B,MAAMC,EAAoBD,EAAO,gBAAgB,GACjD,GAAI,CAEF,OADyB,MAAM,KAAK,WAAW,WAAWC,CAAS,EAM5DV,EAAM,MAAS,EAJbD,EACL,IAAIN,EAAgB,IAAI,MAAM,wBAAwBiB,CAAS,EAAE,CAAC,CACpE,CAGJ,OAASI,EAAO,CACd,OAAOf,EAAK,IAAIN,EAAgBqB,CAAc,CAAC,CACjD,CACF,CAEA,MAAM,SACJJ,EACAK,EACAC,EACAH,EACyC,CACzC,KAAK,OAAO,MAAM,MAAM,EACxB,GAAI,CACF,MAAMI,EAA4B,MAAM,KAAK,WAAW,KACtDP,EACAG,CACF,EACA,KAAK,OAAO,MAAMlB,EAAkBkB,CAAI,CAAC,EACzC,MAAMK,EAAe,CACnB,WAAY,KAAK,WAAW,cAC1BD,EAAS,SAAS,UAChBA,EAAS,SAAS,OAAS,EAC3BA,EAAS,SAAS,MACpB,CACF,EACA,KAAM,KAAK,WAAW,cACpBA,EAAS,SAAS,UAAU,EAAGA,EAAS,SAAS,OAAS,CAAC,CAC7D,CACF,EACA,YAAK,OAAO,MAAMvB,EAAsBwB,CAAY,CAAC,EAC9ClB,EAAMkB,CAAY,CAC3B,OAASJ,EAAO,CACd,OAAAE,EAAaD,CAAQ,EACdhB,EAAK,IAAIH,EAAwBkB,CAAc,CAAC,CACzD,CACF,CACF,CAEO,MAAMK,EAA+C,CAAC,CAC3D,OAAAb,EACA,qBAAAD,CACF,IAAM,IAAID,EAAcC,EAAsBC,CAAM",
|
|
6
|
+
"names": ["DisconnectError", "formatApduReceivedLog", "formatApduSentLog", "NoAccessibleDeviceError", "OpeningConnectionError", "MockClient", "Left", "Right", "from", "mergeMap", "mockserverIdentifier", "MockTransport", "loggerServiceFactory", "config", "devices", "device", "params", "sessionId", "session", "connectedDevice", "apdu", "error", "deviceId", "onDisconnect", "response", "apduResponse", "mockserverTransportFactory"]
|
|
7
7
|
}
|
package/lib/esm/package.json
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"purify-ts": "catalog:"
|
|
5
5
|
},
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@ledgerhq/device-management-kit": "workspace
|
|
8
|
-
"@ledgerhq/device-mockserver-client": "workspace
|
|
9
|
-
"@ledgerhq/eslint-config-dsdk": "workspace
|
|
10
|
-
"@ledgerhq/ldmk-tool": "workspace
|
|
11
|
-
"@ledgerhq/prettier-config-dsdk": "workspace
|
|
12
|
-
"@ledgerhq/tsconfig-dsdk": "workspace
|
|
13
|
-
"@ledgerhq/vitest-config-dmk": "workspace
|
|
7
|
+
"@ledgerhq/device-management-kit": "workspace:*",
|
|
8
|
+
"@ledgerhq/device-mockserver-client": "workspace:*",
|
|
9
|
+
"@ledgerhq/eslint-config-dsdk": "workspace:*",
|
|
10
|
+
"@ledgerhq/ldmk-tool": "workspace:*",
|
|
11
|
+
"@ledgerhq/prettier-config-dsdk": "workspace:*",
|
|
12
|
+
"@ledgerhq/tsconfig-dsdk": "workspace:*",
|
|
13
|
+
"@ledgerhq/vitest-config-dmk": "workspace:*",
|
|
14
14
|
"rxjs": "catalog:",
|
|
15
15
|
"ts-node": "catalog:"
|
|
16
16
|
},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"name": "@ledgerhq/device-transport-kit-mockserver",
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@ledgerhq/device-management-kit": "workspace
|
|
35
|
+
"@ledgerhq/device-management-kit": "workspace:*",
|
|
36
36
|
"rxjs": "catalog:"
|
|
37
37
|
},
|
|
38
38
|
"private": false,
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
57
57
|
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
|
|
58
58
|
},
|
|
59
|
-
"version": "0.0.0-
|
|
59
|
+
"version": "0.0.0-metamask-20260119135629"
|
|
60
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockserverTransport.d.ts","sourceRoot":"","sources":["../../src/MockserverTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAGb,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"MockserverTransport.d.ts","sourceRoot":"","sources":["../../src/MockserverTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAGb,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,QAAQ,EAGb,KAAK,sBAAsB,EAG3B,KAAK,SAAS,EACd,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAC;AACrD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvD,eAAO,MAAM,oBAAoB,EAAE,mBAAkC,CAAC;AAEtE,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6C;gBAGtE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAC7D,MAAM,EAAE,SAAS;IAMnB,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,mBAAmB;IAIpC,wBAAwB,IAAI,UAAU,CAAC,yBAAyB,EAAE,CAAC;IAInE,gBAAgB,IAAI,UAAU,CAAC,yBAAyB,CAAC;IAwBzD,eAAe,IAAI,IAAI;IAKjB,OAAO,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,QAAQ,CAAC;QACnB,YAAY,EAAE,iBAAiB,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAqCrD,UAAU,CAAC,MAAM,EAAE;QACvB,eAAe,EAAE,wBAAwB,CAAC;KAC3C,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAgB7B,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,iBAAiB,EAC/B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;CA0B3C;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAGY,CAAC"}
|