@ledgerhq/device-management-kit 0.0.0-develop-20260209001501 → 0.0.0-develop-20260211001836
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/package.json +1 -1
- package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
- package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
- package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
- package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
- package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
- package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
- package/lib/cjs/src/api/index.js +1 -1
- package/lib/cjs/src/api/index.js.map +3 -3
- package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.js +2 -0
- package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.js.map +7 -0
- package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js +2 -0
- package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +7 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
- package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +2 -2
- package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js +1 -1
- package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js.map +2 -2
- package/lib/esm/package.json +1 -1
- package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
- package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
- package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
- package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
- package/lib/esm/src/api/index.js +1 -1
- package/lib/esm/src/api/index.js.map +3 -3
- package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.js +2 -0
- package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.js.map +7 -0
- package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js +2 -0
- package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +7 -0
- package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
- package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +2 -2
- package/lib/esm/src/internal/device-session/model/DeviceSession.test.js +1 -1
- package/lib/esm/src/internal/device-session/model/DeviceSession.test.js.map +2 -2
- package/lib/types/src/api/device-action/DeviceAction.d.ts +2 -0
- package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
- package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +4 -1
- package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
- package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts +10 -1
- package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/index.d.ts +4 -0
- package/lib/types/src/api/index.d.ts.map +1 -1
- package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.d.ts +12 -0
- package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.d.ts.map +1 -0
- package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts +2 -0
- package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +1 -0
- package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Left as C,Right as g}from"purify-ts";import{of as b,Subject as x,throwError as A}from"rxjs";import{delay as f,take as T}from"rxjs/operators";import{CommandResultStatus as w}from"../../../api/command/model/CommandResult";import{DeviceStatus as S}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as
|
|
1
|
+
import{Left as C,Right as g}from"purify-ts";import{of as b,Subject as x,throwError as A}from"rxjs";import{delay as f,take as T}from"rxjs/operators";import{CommandResultStatus as w}from"../../../api/command/model/CommandResult";import{DeviceStatus as S}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as y}from"../../../api/device-session/DeviceSessionState";import{connectedDeviceStubBuilder as R}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DefaultLoggerPublisherService as E}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DeviceSession as v}from"./DeviceSession";describe("DeviceSession",()=>{let e,k,a,u,d,o,l,p;const r=R();beforeEach(()=>{k=new E([],"device-session-test"),a=vi.fn(()=>k),u={getAppList:vi.fn(),getAppsByHash:vi.fn(),getCurrentFirmware:vi.fn(),getLatestFirmware:vi.fn()},d={genuineCheck:vi.fn(),listInstalledApps:vi.fn(),updateMcu:vi.fn(),updateFirmware:vi.fn(),installApp:vi.fn(),uninstallApp:vi.fn()},o={enqueue:vi.fn().mockReturnValue({observable:b(null).pipe(f(1)),cancel:vi.fn()})},l=()=>o,p={isRefresherDisabled:!0}}),afterEach(()=>{e?.close(),vi.restoreAllMocks()}),describe("constructor",()=>{it("should create a device session with default id",()=>{e=new v({connectedDevice:r},a,u,d,p,l),expect(e).toBeDefined(),expect(e.id).toBeDefined(),expect(e.connectedDevice).toBe(r)}),it("should create a device session with custom id",()=>{const t="custom-session-id";e=new v({connectedDevice:r,id:t},a,u,d,p,l),expect(e.id).toBe(t)})}),describe("initialiseSession",()=>{it("should successfully initialize session",()=>{e=new v({connectedDevice:r},a,u,d,{isRefresherDisabled:!1,pollingInterval:1e3},l);const t=vi.spyOn(e._deviceSessionRefresher,"startRefresher");e.initialiseSession(),expect(t).toHaveBeenCalled()})}),describe("getters",()=>{beforeEach(()=>{e=new v({connectedDevice:r,id:"test-id"},a,u,d,p,l)}),it("should return session id",()=>{expect(e.id).toBe("test-id")}),it("should return connected device",()=>{expect(e.connectedDevice).toBe(r)}),it("should return state as observable",async()=>{const t=e.state;await new Promise(c=>{t.pipe(T(1)).subscribe(n=>{expect(n.sessionStateType).toBe(y.Connected),expect(n.deviceStatus).toBe(S.CONNECTED),c()})})})}),describe("getDeviceSessionState and setDeviceSessionState",()=>{beforeEach(()=>{e=new v({connectedDevice:r},a,u,d,p,l)}),it("should get current device session state",()=>{const t=e.getDeviceSessionState();expect(t.sessionStateType).toBe(y.Connected),expect(t.deviceStatus).toBe(S.CONNECTED)}),it("should set device session state",async()=>{const t={sessionStateType:y.ReadyWithoutSecureChannel,deviceStatus:S.LOCKED,deviceModelId:r.deviceModel.id,currentApp:{name:"Test",version:"1.0.0"},installedApps:[],isSecureConnectionAllowed:!1};await new Promise(c=>{let n=!1;const s=e.state.subscribe(i=>{i.sessionStateType===y.ReadyWithoutSecureChannel?(expect(i).toMatchObject({sessionStateType:y.ReadyWithoutSecureChannel,deviceStatus:S.LOCKED,deviceModelId:r.deviceModel.id}),s.unsubscribe(),c()):n||(n=!0)});e.setDeviceSessionState(t)})})}),describe("sendApdu",()=>{let t,c;beforeEach(()=>{t=new Uint8Array([224,1,0,0]),c={data:new Uint8Array([1,2]),statusCode:new Uint8Array([144,0])},e=new v({connectedDevice:r},a,u,d,p,l)}),it("should successfully send APDU",async()=>{const n=b(g(c)).pipe(f(1));o.enqueue.mockReturnValue({observable:n,cancel:vi.fn()});const s=await e.sendApdu(t);expect(o.enqueue).toHaveBeenCalledWith({type:"send-apdu",execute:expect.any(Function)}),expect(s.isRight()).toBe(!0),s.ifRight(i=>{expect(i).toEqual(c)})}),it("should handle APDU send error",async()=>{const n={_tag:"SendApduError"},s=b(C(n)).pipe(f(1));o.enqueue.mockReturnValue({observable:s,cancel:vi.fn()});const i=await e.sendApdu(t);expect(i.isLeft()).toBe(!0),i.ifLeft(m=>{expect(m).toEqual(n)})}),it("should handle APDU timeout",async()=>{const n=vi.fn(),s=new x;o.enqueue.mockReturnValue({observable:s.asObservable(),cancel:n}),vi.useFakeTimers();const i=e.sendApdu(t,{abortTimeout:1e3});vi.advanceTimersByTime(1100);let m;try{await i}catch(h){m=h}vi.useRealTimers(),expect(m).toBeDefined(),expect(o.enqueue).toHaveBeenCalled()})}),describe("sendCommand",()=>{let t,c;beforeEach(()=>{c={status:w.Success,data:{test:"data"}},t={getApdu:vi.fn().mockReturnValue({getRawApdu:()=>new Uint8Array([224,1,0,0])}),parseResponse:vi.fn().mockReturnValue(c),triggersDisconnection:!1},e=new v({connectedDevice:r},a,u,d,p,l)}),it("should successfully send command",async()=>{const n=b(c).pipe(f(1));o.enqueue.mockReturnValue({observable:n,cancel:vi.fn()});const s=await e.sendCommand(t);expect(o.enqueue).toHaveBeenCalledWith({type:"send-command",execute:expect.any(Function)}),expect(s).toEqual(c)}),it("should handle command timeout",async()=>{const n=vi.fn(),s=new x;o.enqueue.mockReturnValue({observable:s.asObservable(),cancel:n}),vi.useFakeTimers();const i=e.sendCommand(t,1e3);vi.advanceTimersByTime(1100);try{await i}catch{}vi.useRealTimers(),expect(o.enqueue).toHaveBeenCalled()}),it("should handle command error",async()=>{const n=new Error("Command failed"),s=A(()=>n);o.enqueue.mockReturnValue({observable:s,cancel:vi.fn()}),await expect(e.sendCommand(t)).rejects.toThrow("Command failed")})}),describe("executeDeviceAction",()=>{let t;beforeEach(()=>{const c=b({intermediateValue:"test",requiredUserInteraction:"SignTransaction"}).pipe(f(1));t={_execute:vi.fn().mockReturnValue({observable:c})},e=new v({connectedDevice:r},a,u,d,p,l)}),it("should execute device action",async()=>{const c=b({intermediateValue:"test",requiredUserInteraction:"SignTransaction"}).pipe(f(1)),n=vi.fn();o.enqueue.mockReturnValue({observable:c,cancel:n});const{observable:s,cancel:i}=e.executeDeviceAction(t);expect(o.enqueue).toHaveBeenCalledWith({type:"device-action",execute:expect.any(Function)}),expect(s).toBeDefined(),expect(i).toBeTypeOf("function");const m=[];await new Promise(h=>{s.subscribe({next:D=>m.push(D),complete:()=>h()})}),expect(m).toEqual([{intermediateValue:"test",requiredUserInteraction:"SignTransaction"}]),i(),expect(n).toHaveBeenCalled()}),it("should provide correct internal API to device action",()=>{const c=b({intermediateValue:"test",requiredUserInteraction:"SignTransaction"}).pipe(f(1));o.enqueue.mockImplementation(n=>(n.execute(),{observable:c,cancel:vi.fn()})),e.executeDeviceAction(t),expect(t._execute).toHaveBeenCalledWith({sendApdu:expect.any(Function),sendCommand:expect.any(Function),getDeviceModel:expect.any(Function),getDeviceSessionState:expect.any(Function),getDeviceSessionStateObservable:expect.any(Function),setDeviceSessionState:expect.any(Function),getManagerApiService:expect.any(Function),getSecureChannelService:expect.any(Function),loggerFactory:expect.any(Function)})}),it("should allow cancelling device action",()=>{const c=vi.fn(),n=new x;o.enqueue.mockReturnValue({observable:n.asObservable(),cancel:c});const{cancel:s}=e.executeDeviceAction(t);s(),expect(c).toHaveBeenCalled()})}),describe("close",()=>{it("should close the session and update device status",()=>{e=new v({connectedDevice:r},a,u,d,p,l);let t=!1;e.state.subscribe({complete:()=>{t=!0}}),e.close();const c=e.getDeviceSessionState();expect(c.deviceStatus).toBe(S.NOT_CONNECTED),expect(t).toBe(!0)})})});
|
|
2
2
|
//# sourceMappingURL=DeviceSession.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/device-session/model/DeviceSession.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { Left, Right } from \"purify-ts\";\nimport { of, Subject, throwError } from \"rxjs\";\nimport { delay, take } from \"rxjs/operators\";\nimport { type Mocked } from \"vitest\";\n\nimport { type Command } from \"@api/command/Command\";\nimport {\n type CommandResult,\n CommandResultStatus,\n} from \"@api/command/model/CommandResult\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { type DeviceAction } from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { type IntentQueueService } from \"@internal/device-session/service/IntentQueueService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport {\n DeviceSession,\n type DeviceSessionRefresherOptions,\n} from \"./DeviceSession\";\n\ndescribe(\"DeviceSession\", () => {\n let deviceSession: DeviceSession;\n let mockLogger: LoggerPublisherService;\n let mockLoggerFactory: ReturnType<typeof vi.fn>;\n let mockManagerApi: Mocked<ManagerApiService>;\n let mockSecureChannel: Mocked<SecureChannelService>;\n let mockIntentQueueService: Mocked<IntentQueueService>;\n let mockIntentQueueServiceFactory: () => IntentQueueService;\n let refresherOptions: DeviceSessionRefresherOptions;\n const mockConnectedDevice = connectedDeviceStubBuilder();\n\n beforeEach(() => {\n // Setup logger\n mockLogger = new DefaultLoggerPublisherService([], \"device-session-test\");\n mockLoggerFactory = vi.fn(() => mockLogger);\n\n // Setup mocks\n mockManagerApi = {\n getAppList: vi.fn(),\n getAppsByHash: vi.fn(),\n getCurrentFirmware: vi.fn(),\n getLatestFirmware: vi.fn(),\n } as unknown as Mocked<ManagerApiService>;\n\n mockSecureChannel = {\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 } as unknown as Mocked<SecureChannelService>;\n\n // Setup intent queue service with default mock\n mockIntentQueueService = {\n enqueue: vi.fn().mockReturnValue({\n observable: of(null).pipe(delay(1)),\n cancel: vi.fn(),\n }),\n } as unknown as Mocked<IntentQueueService>;\n\n mockIntentQueueServiceFactory = () => mockIntentQueueService;\n\n refresherOptions = {\n isRefresherDisabled: true,\n };\n });\n\n afterEach(() => {\n deviceSession?.close();\n vi.restoreAllMocks();\n });\n\n describe(\"constructor\", () => {\n it(\"should create a device session with default id\", () => {\n // when\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n\n // then\n expect(deviceSession).toBeDefined();\n expect(deviceSession.id).toBeDefined();\n expect(deviceSession.connectedDevice).toBe(mockConnectedDevice);\n });\n\n it(\"should create a device session with custom id\", () => {\n // given\n const customId = \"custom-session-id\";\n\n // when\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice, id: customId },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n\n // then\n expect(deviceSession.id).toBe(customId);\n });\n });\n\n describe(\"initialiseSession\", () => {\n it(\"should successfully initialize session\", () => {\n // given\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n { isRefresherDisabled: false, pollingInterval: 1000 },\n mockIntentQueueServiceFactory,\n );\n\n const mockRefresherStartSpy = vi.spyOn(\n deviceSession[\"_deviceSessionRefresher\"],\n \"startRefresher\",\n );\n\n // when\n deviceSession.initialiseSession();\n\n // then\n expect(mockRefresherStartSpy).toHaveBeenCalled();\n });\n });\n\n describe(\"getters\", () => {\n beforeEach(() => {\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice, id: \"test-id\" },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should return session id\", () => {\n expect(deviceSession.id).toBe(\"test-id\");\n });\n\n it(\"should return connected device\", () => {\n expect(deviceSession.connectedDevice).toBe(mockConnectedDevice);\n });\n\n it(\"should return state as observable\", async () => {\n const stateObservable = deviceSession.state;\n\n await new Promise<void>((resolve) => {\n stateObservable.pipe(take(1)).subscribe((state) => {\n expect(state.sessionStateType).toBe(DeviceSessionStateType.Connected);\n expect(state.deviceStatus).toBe(DeviceStatus.CONNECTED);\n resolve();\n });\n });\n });\n });\n\n describe(\"getDeviceSessionState and setDeviceSessionState\", () => {\n beforeEach(() => {\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should get current device session state\", () => {\n // when\n const state = deviceSession.getDeviceSessionState();\n\n // then\n expect(state.sessionStateType).toBe(DeviceSessionStateType.Connected);\n expect(state.deviceStatus).toBe(DeviceStatus.CONNECTED);\n });\n\n it(\"should set device session state\", async () => {\n // given\n const newState = {\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n deviceModelId: mockConnectedDevice.deviceModel.id,\n currentApp: { name: \"Test\", version: \"1.0.0\" },\n installedApps: [],\n isSecureConnectionAllowed: false,\n };\n\n // when\n await new Promise<void>((resolve) => {\n let subscriptionStarted = false;\n const subscription = deviceSession.state.subscribe((state) => {\n if (\n state.sessionStateType ===\n DeviceSessionStateType.ReadyWithoutSecureChannel\n ) {\n expect(state).toMatchObject({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n deviceModelId: mockConnectedDevice.deviceModel.id,\n });\n subscription.unsubscribe();\n resolve();\n } else if (!subscriptionStarted) {\n subscriptionStarted = true;\n }\n });\n\n deviceSession.setDeviceSessionState(newState);\n });\n });\n });\n\n describe(\"sendApdu\", () => {\n let mockApdu: Uint8Array;\n let mockResponse: ApduResponse;\n\n beforeEach(() => {\n mockApdu = new Uint8Array([0xe0, 0x01, 0x00, 0x00]);\n mockResponse = {\n data: new Uint8Array([0x01, 0x02]),\n statusCode: new Uint8Array([0x90, 0x00]),\n };\n\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should successfully send APDU\", async () => {\n // given\n const mockObservable = of(Right(mockResponse)).pipe(delay(1));\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when\n const result = await deviceSession.sendApdu(mockApdu);\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalledWith({\n type: \"send-apdu\",\n execute: expect.any(Function),\n });\n expect(result.isRight()).toBe(true);\n result.ifRight((response) => {\n expect(response).toEqual(mockResponse);\n });\n });\n\n it(\"should handle APDU send error\", async () => {\n // given\n const error = { _tag: \"SendApduError\" } as DmkError;\n const mockObservable = of(Left(error)).pipe(delay(1));\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when\n const result = await deviceSession.sendApdu(mockApdu);\n\n // then\n expect(result.isLeft()).toBe(true);\n result.ifLeft((err) => {\n expect(err).toEqual(error);\n });\n });\n\n it(\"should handle APDU timeout\", async () => {\n // given\n const mockCancel = vi.fn();\n const subject = new Subject();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: subject.asObservable(),\n cancel: mockCancel,\n });\n\n vi.useFakeTimers();\n\n // when\n const sendPromise = deviceSession.sendApdu(mockApdu, {\n abortTimeout: 1000,\n });\n\n // Advance timers to trigger timeout\n vi.advanceTimersByTime(1100);\n\n let caughtError: Error | undefined;\n try {\n await sendPromise;\n } catch (error) {\n caughtError = error as Error;\n }\n\n vi.useRealTimers();\n\n // then\n expect(caughtError).toBeDefined();\n expect(mockIntentQueueService.enqueue).toHaveBeenCalled();\n });\n });\n\n describe(\"sendCommand\", () => {\n type TestData = { test: string };\n type TestArgs = Record<string, never>;\n type TestErrorCodes = number;\n\n let mockCommand: Mocked<Command<TestData, TestArgs, TestErrorCodes>>;\n let mockCommandResult: CommandResult<TestData, TestErrorCodes>;\n\n beforeEach(() => {\n mockCommandResult = {\n status: CommandResultStatus.Success,\n data: { test: \"data\" },\n };\n\n mockCommand = {\n getApdu: vi.fn().mockReturnValue({\n getRawApdu: () => new Uint8Array([0xe0, 0x01, 0x00, 0x00]),\n }),\n parseResponse: vi.fn().mockReturnValue(mockCommandResult),\n triggersDisconnection: false,\n } as unknown as Mocked<Command<TestData, TestArgs, TestErrorCodes>>;\n\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should successfully send command\", async () => {\n // given\n const mockObservable = of(mockCommandResult).pipe(delay(1));\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when\n const result = await deviceSession.sendCommand(mockCommand);\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalledWith({\n type: \"send-command\",\n execute: expect.any(Function),\n });\n expect(result).toEqual(mockCommandResult);\n });\n\n it(\"should handle command timeout\", async () => {\n // given\n const mockCancel = vi.fn();\n const subject = new Subject();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: subject.asObservable(),\n cancel: mockCancel,\n });\n\n vi.useFakeTimers();\n\n // when\n const commandPromise = deviceSession.sendCommand(mockCommand, 1000);\n\n // Advance timers to trigger timeout\n vi.advanceTimersByTime(1100);\n\n try {\n await commandPromise;\n } catch {\n // Expected to timeout\n }\n\n vi.useRealTimers();\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalled();\n });\n\n it(\"should handle command error\", async () => {\n // given\n const error = new Error(\"Command failed\");\n const mockObservable = throwError(() => error);\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when/then\n await expect(deviceSession.sendCommand(mockCommand)).rejects.toThrow(\n \"Command failed\",\n );\n });\n });\n\n describe(\"executeDeviceAction\", () => {\n type TestOutput = { result: string };\n type TestInput = { input: string };\n type TestError = DmkError;\n type TestIntermediateValue = {\n intermediateValue: string;\n requiredUserInteraction:\n | \"UnlockDevice\"\n | \"ConfirmOpenApp\"\n | \"ConfirmCloseApp\"\n | \"AllowListAccess\"\n | \"AllowSecureChannelConnection\"\n | \"AllowedDataRecording\"\n | \"SignTransaction\";\n };\n\n let mockDeviceAction: Mocked<\n DeviceAction<TestOutput, TestInput, TestError, TestIntermediateValue>\n >;\n\n beforeEach(() => {\n const mockActionObservable = of({\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\" as const,\n }).pipe(delay(1));\n\n mockDeviceAction = {\n _execute: vi.fn().mockReturnValue({\n observable: mockActionObservable,\n }),\n } as unknown as Mocked<\n DeviceAction<TestOutput, TestInput, TestError, TestIntermediateValue>\n >;\n\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should execute device action\", async () => {\n // given\n const mockActionObservable = of({\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\" as const,\n }).pipe(delay(1));\n const mockCancel = vi.fn();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockActionObservable,\n cancel: mockCancel,\n });\n\n // when\n const { observable, cancel } =\n deviceSession.executeDeviceAction(mockDeviceAction);\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalledWith({\n type: \"device-action\",\n execute: expect.any(Function),\n });\n expect(observable).toBeDefined();\n expect(cancel).toBeTypeOf(\"function\");\n\n // Verify observable emits values\n const values: unknown[] = [];\n await new Promise<void>((resolve) => {\n observable.subscribe({\n next: (value) => values.push(value),\n complete: () => resolve(),\n });\n });\n\n expect(values).toEqual([\n {\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\",\n },\n ]);\n\n // Verify cancel is called\n cancel();\n expect(mockCancel).toHaveBeenCalled();\n });\n\n it(\"should provide correct internal API to device action\", () => {\n // given\n const mockActionObservable = of({\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\" as const,\n }).pipe(delay(1));\n\n mockIntentQueueService.enqueue.mockImplementation((intent) => {\n // Execute the device action to verify the internal API\n void intent.execute();\n\n return {\n observable: mockActionObservable,\n cancel: vi.fn(),\n };\n });\n\n // when\n deviceSession.executeDeviceAction(mockDeviceAction);\n\n // then\n expect(mockDeviceAction._execute).toHaveBeenCalledWith({\n sendApdu: expect.any(Function),\n sendCommand: expect.any(Function),\n getDeviceModel: expect.any(Function),\n getDeviceSessionState: expect.any(Function),\n getDeviceSessionStateObservable: expect.any(Function),\n setDeviceSessionState: expect.any(Function),\n getManagerApiService: expect.any(Function),\n getSecureChannelService: expect.any(Function),\n });\n });\n\n it(\"should allow cancelling device action\", () => {\n // given\n const mockCancel = vi.fn();\n const subject = new Subject();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: subject.asObservable(),\n cancel: mockCancel,\n });\n\n // when\n const { cancel } = deviceSession.executeDeviceAction(mockDeviceAction);\n cancel();\n\n // then\n expect(mockCancel).toHaveBeenCalled();\n });\n });\n\n describe(\"close\", () => {\n it(\"should close the session and update device status\", () => {\n // given\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n\n let isComplete = false;\n deviceSession.state.subscribe({\n complete: () => {\n isComplete = true;\n },\n });\n\n // when\n deviceSession.close();\n\n // then\n const state = deviceSession.getDeviceSessionState();\n expect(state.deviceStatus).toBe(DeviceStatus.NOT_CONNECTED);\n expect(isComplete).toBe(true);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { Left, Right } from \"purify-ts\";\nimport { of, Subject, throwError } from \"rxjs\";\nimport { delay, take } from \"rxjs/operators\";\nimport { type Mocked } from \"vitest\";\n\nimport { type Command } from \"@api/command/Command\";\nimport {\n type CommandResult,\n CommandResultStatus,\n} from \"@api/command/model/CommandResult\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { type DeviceAction } from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { type IntentQueueService } from \"@internal/device-session/service/IntentQueueService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport {\n DeviceSession,\n type DeviceSessionRefresherOptions,\n} from \"./DeviceSession\";\n\ndescribe(\"DeviceSession\", () => {\n let deviceSession: DeviceSession;\n let mockLogger: LoggerPublisherService;\n let mockLoggerFactory: ReturnType<typeof vi.fn>;\n let mockManagerApi: Mocked<ManagerApiService>;\n let mockSecureChannel: Mocked<SecureChannelService>;\n let mockIntentQueueService: Mocked<IntentQueueService>;\n let mockIntentQueueServiceFactory: () => IntentQueueService;\n let refresherOptions: DeviceSessionRefresherOptions;\n const mockConnectedDevice = connectedDeviceStubBuilder();\n\n beforeEach(() => {\n // Setup logger\n mockLogger = new DefaultLoggerPublisherService([], \"device-session-test\");\n mockLoggerFactory = vi.fn(() => mockLogger);\n\n // Setup mocks\n mockManagerApi = {\n getAppList: vi.fn(),\n getAppsByHash: vi.fn(),\n getCurrentFirmware: vi.fn(),\n getLatestFirmware: vi.fn(),\n } as unknown as Mocked<ManagerApiService>;\n\n mockSecureChannel = {\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 } as unknown as Mocked<SecureChannelService>;\n\n // Setup intent queue service with default mock\n mockIntentQueueService = {\n enqueue: vi.fn().mockReturnValue({\n observable: of(null).pipe(delay(1)),\n cancel: vi.fn(),\n }),\n } as unknown as Mocked<IntentQueueService>;\n\n mockIntentQueueServiceFactory = () => mockIntentQueueService;\n\n refresherOptions = {\n isRefresherDisabled: true,\n };\n });\n\n afterEach(() => {\n deviceSession?.close();\n vi.restoreAllMocks();\n });\n\n describe(\"constructor\", () => {\n it(\"should create a device session with default id\", () => {\n // when\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n\n // then\n expect(deviceSession).toBeDefined();\n expect(deviceSession.id).toBeDefined();\n expect(deviceSession.connectedDevice).toBe(mockConnectedDevice);\n });\n\n it(\"should create a device session with custom id\", () => {\n // given\n const customId = \"custom-session-id\";\n\n // when\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice, id: customId },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n\n // then\n expect(deviceSession.id).toBe(customId);\n });\n });\n\n describe(\"initialiseSession\", () => {\n it(\"should successfully initialize session\", () => {\n // given\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n { isRefresherDisabled: false, pollingInterval: 1000 },\n mockIntentQueueServiceFactory,\n );\n\n const mockRefresherStartSpy = vi.spyOn(\n deviceSession[\"_deviceSessionRefresher\"],\n \"startRefresher\",\n );\n\n // when\n deviceSession.initialiseSession();\n\n // then\n expect(mockRefresherStartSpy).toHaveBeenCalled();\n });\n });\n\n describe(\"getters\", () => {\n beforeEach(() => {\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice, id: \"test-id\" },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should return session id\", () => {\n expect(deviceSession.id).toBe(\"test-id\");\n });\n\n it(\"should return connected device\", () => {\n expect(deviceSession.connectedDevice).toBe(mockConnectedDevice);\n });\n\n it(\"should return state as observable\", async () => {\n const stateObservable = deviceSession.state;\n\n await new Promise<void>((resolve) => {\n stateObservable.pipe(take(1)).subscribe((state) => {\n expect(state.sessionStateType).toBe(DeviceSessionStateType.Connected);\n expect(state.deviceStatus).toBe(DeviceStatus.CONNECTED);\n resolve();\n });\n });\n });\n });\n\n describe(\"getDeviceSessionState and setDeviceSessionState\", () => {\n beforeEach(() => {\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should get current device session state\", () => {\n // when\n const state = deviceSession.getDeviceSessionState();\n\n // then\n expect(state.sessionStateType).toBe(DeviceSessionStateType.Connected);\n expect(state.deviceStatus).toBe(DeviceStatus.CONNECTED);\n });\n\n it(\"should set device session state\", async () => {\n // given\n const newState = {\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n deviceModelId: mockConnectedDevice.deviceModel.id,\n currentApp: { name: \"Test\", version: \"1.0.0\" },\n installedApps: [],\n isSecureConnectionAllowed: false,\n };\n\n // when\n await new Promise<void>((resolve) => {\n let subscriptionStarted = false;\n const subscription = deviceSession.state.subscribe((state) => {\n if (\n state.sessionStateType ===\n DeviceSessionStateType.ReadyWithoutSecureChannel\n ) {\n expect(state).toMatchObject({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n deviceModelId: mockConnectedDevice.deviceModel.id,\n });\n subscription.unsubscribe();\n resolve();\n } else if (!subscriptionStarted) {\n subscriptionStarted = true;\n }\n });\n\n deviceSession.setDeviceSessionState(newState);\n });\n });\n });\n\n describe(\"sendApdu\", () => {\n let mockApdu: Uint8Array;\n let mockResponse: ApduResponse;\n\n beforeEach(() => {\n mockApdu = new Uint8Array([0xe0, 0x01, 0x00, 0x00]);\n mockResponse = {\n data: new Uint8Array([0x01, 0x02]),\n statusCode: new Uint8Array([0x90, 0x00]),\n };\n\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should successfully send APDU\", async () => {\n // given\n const mockObservable = of(Right(mockResponse)).pipe(delay(1));\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when\n const result = await deviceSession.sendApdu(mockApdu);\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalledWith({\n type: \"send-apdu\",\n execute: expect.any(Function),\n });\n expect(result.isRight()).toBe(true);\n result.ifRight((response) => {\n expect(response).toEqual(mockResponse);\n });\n });\n\n it(\"should handle APDU send error\", async () => {\n // given\n const error = { _tag: \"SendApduError\" } as DmkError;\n const mockObservable = of(Left(error)).pipe(delay(1));\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when\n const result = await deviceSession.sendApdu(mockApdu);\n\n // then\n expect(result.isLeft()).toBe(true);\n result.ifLeft((err) => {\n expect(err).toEqual(error);\n });\n });\n\n it(\"should handle APDU timeout\", async () => {\n // given\n const mockCancel = vi.fn();\n const subject = new Subject();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: subject.asObservable(),\n cancel: mockCancel,\n });\n\n vi.useFakeTimers();\n\n // when\n const sendPromise = deviceSession.sendApdu(mockApdu, {\n abortTimeout: 1000,\n });\n\n // Advance timers to trigger timeout\n vi.advanceTimersByTime(1100);\n\n let caughtError: Error | undefined;\n try {\n await sendPromise;\n } catch (error) {\n caughtError = error as Error;\n }\n\n vi.useRealTimers();\n\n // then\n expect(caughtError).toBeDefined();\n expect(mockIntentQueueService.enqueue).toHaveBeenCalled();\n });\n });\n\n describe(\"sendCommand\", () => {\n type TestData = { test: string };\n type TestArgs = Record<string, never>;\n type TestErrorCodes = number;\n\n let mockCommand: Mocked<Command<TestData, TestArgs, TestErrorCodes>>;\n let mockCommandResult: CommandResult<TestData, TestErrorCodes>;\n\n beforeEach(() => {\n mockCommandResult = {\n status: CommandResultStatus.Success,\n data: { test: \"data\" },\n };\n\n mockCommand = {\n getApdu: vi.fn().mockReturnValue({\n getRawApdu: () => new Uint8Array([0xe0, 0x01, 0x00, 0x00]),\n }),\n parseResponse: vi.fn().mockReturnValue(mockCommandResult),\n triggersDisconnection: false,\n } as unknown as Mocked<Command<TestData, TestArgs, TestErrorCodes>>;\n\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should successfully send command\", async () => {\n // given\n const mockObservable = of(mockCommandResult).pipe(delay(1));\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when\n const result = await deviceSession.sendCommand(mockCommand);\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalledWith({\n type: \"send-command\",\n execute: expect.any(Function),\n });\n expect(result).toEqual(mockCommandResult);\n });\n\n it(\"should handle command timeout\", async () => {\n // given\n const mockCancel = vi.fn();\n const subject = new Subject();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: subject.asObservable(),\n cancel: mockCancel,\n });\n\n vi.useFakeTimers();\n\n // when\n const commandPromise = deviceSession.sendCommand(mockCommand, 1000);\n\n // Advance timers to trigger timeout\n vi.advanceTimersByTime(1100);\n\n try {\n await commandPromise;\n } catch {\n // Expected to timeout\n }\n\n vi.useRealTimers();\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalled();\n });\n\n it(\"should handle command error\", async () => {\n // given\n const error = new Error(\"Command failed\");\n const mockObservable = throwError(() => error);\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockObservable,\n cancel: vi.fn(),\n });\n\n // when/then\n await expect(deviceSession.sendCommand(mockCommand)).rejects.toThrow(\n \"Command failed\",\n );\n });\n });\n\n describe(\"executeDeviceAction\", () => {\n type TestOutput = { result: string };\n type TestInput = { input: string };\n type TestError = DmkError;\n type TestIntermediateValue = {\n intermediateValue: string;\n requiredUserInteraction:\n | \"UnlockDevice\"\n | \"ConfirmOpenApp\"\n | \"ConfirmCloseApp\"\n | \"AllowListAccess\"\n | \"AllowSecureChannelConnection\"\n | \"AllowedDataRecording\"\n | \"SignTransaction\";\n };\n\n let mockDeviceAction: Mocked<\n DeviceAction<TestOutput, TestInput, TestError, TestIntermediateValue>\n >;\n\n beforeEach(() => {\n const mockActionObservable = of({\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\" as const,\n }).pipe(delay(1));\n\n mockDeviceAction = {\n _execute: vi.fn().mockReturnValue({\n observable: mockActionObservable,\n }),\n } as unknown as Mocked<\n DeviceAction<TestOutput, TestInput, TestError, TestIntermediateValue>\n >;\n\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n });\n\n it(\"should execute device action\", async () => {\n // given\n const mockActionObservable = of({\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\" as const,\n }).pipe(delay(1));\n const mockCancel = vi.fn();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: mockActionObservable,\n cancel: mockCancel,\n });\n\n // when\n const { observable, cancel } =\n deviceSession.executeDeviceAction(mockDeviceAction);\n\n // then\n expect(mockIntentQueueService.enqueue).toHaveBeenCalledWith({\n type: \"device-action\",\n execute: expect.any(Function),\n });\n expect(observable).toBeDefined();\n expect(cancel).toBeTypeOf(\"function\");\n\n // Verify observable emits values\n const values: unknown[] = [];\n await new Promise<void>((resolve) => {\n observable.subscribe({\n next: (value) => values.push(value),\n complete: () => resolve(),\n });\n });\n\n expect(values).toEqual([\n {\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\",\n },\n ]);\n\n // Verify cancel is called\n cancel();\n expect(mockCancel).toHaveBeenCalled();\n });\n\n it(\"should provide correct internal API to device action\", () => {\n // given\n const mockActionObservable = of({\n intermediateValue: \"test\",\n requiredUserInteraction: \"SignTransaction\" as const,\n }).pipe(delay(1));\n\n mockIntentQueueService.enqueue.mockImplementation((intent) => {\n // Execute the device action to verify the internal API\n void intent.execute();\n\n return {\n observable: mockActionObservable,\n cancel: vi.fn(),\n };\n });\n\n // when\n deviceSession.executeDeviceAction(mockDeviceAction);\n\n // then\n expect(mockDeviceAction._execute).toHaveBeenCalledWith({\n sendApdu: expect.any(Function),\n sendCommand: expect.any(Function),\n getDeviceModel: expect.any(Function),\n getDeviceSessionState: expect.any(Function),\n getDeviceSessionStateObservable: expect.any(Function),\n setDeviceSessionState: expect.any(Function),\n getManagerApiService: expect.any(Function),\n getSecureChannelService: expect.any(Function),\n loggerFactory: expect.any(Function),\n });\n });\n\n it(\"should allow cancelling device action\", () => {\n // given\n const mockCancel = vi.fn();\n const subject = new Subject();\n\n mockIntentQueueService.enqueue.mockReturnValue({\n observable: subject.asObservable(),\n cancel: mockCancel,\n });\n\n // when\n const { cancel } = deviceSession.executeDeviceAction(mockDeviceAction);\n cancel();\n\n // then\n expect(mockCancel).toHaveBeenCalled();\n });\n });\n\n describe(\"close\", () => {\n it(\"should close the session and update device status\", () => {\n // given\n deviceSession = new DeviceSession(\n { connectedDevice: mockConnectedDevice },\n mockLoggerFactory,\n mockManagerApi,\n mockSecureChannel,\n refresherOptions,\n mockIntentQueueServiceFactory,\n );\n\n let isComplete = false;\n deviceSession.state.subscribe({\n complete: () => {\n isComplete = true;\n },\n });\n\n // when\n deviceSession.close();\n\n // then\n const state = deviceSession.getDeviceSessionState();\n expect(state.deviceStatus).toBe(DeviceStatus.NOT_CONNECTED);\n expect(isComplete).toBe(true);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Left", "Right", "of", "Subject", "throwError", "delay", "take", "CommandResultStatus", "DeviceStatus", "DeviceSessionStateType", "connectedDeviceStubBuilder", "DefaultLoggerPublisherService", "DeviceSession", "deviceSession", "mockLogger", "mockLoggerFactory", "mockManagerApi", "mockSecureChannel", "mockIntentQueueService", "mockIntentQueueServiceFactory", "refresherOptions", "mockConnectedDevice", "customId", "mockRefresherStartSpy", "stateObservable", "resolve", "state", "newState", "subscriptionStarted", "subscription", "mockApdu", "mockResponse", "mockObservable", "result", "response", "error", "err", "mockCancel", "subject", "sendPromise", "caughtError", "mockCommand", "mockCommandResult", "commandPromise", "mockDeviceAction", "mockActionObservable", "observable", "cancel", "values", "value", "intent", "isComplete"]
|
|
7
7
|
}
|
|
@@ -6,6 +6,7 @@ import { type TransportDeviceModel } from "../device-model/model/DeviceModel";
|
|
|
6
6
|
import { type ApduResponse } from "../device-session/ApduResponse";
|
|
7
7
|
import { type DeviceSessionState } from "../device-session/DeviceSessionState";
|
|
8
8
|
import { type DmkError } from "../Error";
|
|
9
|
+
import { type LoggerPublisherService } from "../logger-publisher/service/LoggerPublisherService";
|
|
9
10
|
import { type ManagerApiService } from "../../internal/manager-api/service/ManagerApiService";
|
|
10
11
|
import { type SecureChannelService } from "../../internal/secure-channel/service/SecureChannelService";
|
|
11
12
|
import { type DeviceActionState } from "./model/DeviceActionState";
|
|
@@ -18,6 +19,7 @@ export type InternalApi = {
|
|
|
18
19
|
readonly setDeviceSessionState: (state: DeviceSessionState) => DeviceSessionState;
|
|
19
20
|
readonly getManagerApiService: () => ManagerApiService;
|
|
20
21
|
readonly getSecureChannelService: () => SecureChannelService;
|
|
22
|
+
readonly loggerFactory?: (tag: string) => LoggerPublisherService;
|
|
21
23
|
};
|
|
22
24
|
export type DeviceActionIntermediateValue = {
|
|
23
25
|
readonly requiredUserInteraction: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceAction.d.ts","sourceRoot":"","sources":["../../../../../src/api/device-action/DeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAElG,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,UAAU,KACb,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EACrD,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAClD,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,oBAAoB,CAAC;IACpD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;IACzD,QAAQ,CAAC,+BAA+B,EAAE,MAAM,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/E,QAAQ,CAAC,qBAAqB,EAAE,CAC9B,KAAK,EAAE,kBAAkB,KACtB,kBAAkB,CAAC;IACxB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;IACvD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DeviceAction.d.ts","sourceRoot":"","sources":["../../../../../src/api/device-action/DeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAElG,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,UAAU,KACb,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EACrD,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAClD,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,oBAAoB,CAAC;IACpD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;IACzD,QAAQ,CAAC,+BAA+B,EAAE,MAAM,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/E,QAAQ,CAAC,qBAAqB,EAAE,CAC9B,KAAK,EAAE,kBAAkB,KACtB,kBAAkB,CAAC;IACxB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;IACvD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI;IAC5E,QAAQ,CAAC,UAAU,EAAE,UAAU,CAC7B,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CACpD,CAAC;IACF,MAAM,IAAI,IAAI,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,YAAY,CAC3B,MAAM,EACN,KAAK,EACL,KAAK,SAAS,QAAQ,EACtB,iBAAiB,SAAS,6BAA6B;IAEvD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,QAAQ,CACN,MAAM,EAAE,WAAW,GAClB,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;CACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeInternalApi.d.ts","sourceRoot":"","sources":["../../../../../../src/api/device-action/__test-utils__/makeInternalApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"makeInternalApi.d.ts","sourceRoot":"","sources":["../../../../../../src/api/device-action/__test-utils__/makeInternalApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAenE,wBAAgB,+BAA+B,IAAI,MAAM,CAAC,WAAW,CAAC,CAYrE"}
|
|
@@ -15,6 +15,9 @@ export declare enum UserInteractionRequired {
|
|
|
15
15
|
SignDelegationAuthorization = "sign-delegation-authorization",
|
|
16
16
|
Web3ChecksOptIn = "web3-checks-opt-in",
|
|
17
17
|
VerifySafeAddress = "verify-safe-address",
|
|
18
|
-
RegisterWallet = "register-wallet"
|
|
18
|
+
RegisterWallet = "register-wallet",
|
|
19
|
+
ConfirmLoadImage = "confirm-load-image",
|
|
20
|
+
ConfirmCommitImage = "confirm-commit-image",
|
|
21
|
+
ConfirmRemoveImage = "confirm-remove-image"
|
|
19
22
|
}
|
|
20
23
|
//# sourceMappingURL=UserInteractionRequired.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserInteractionRequired.d.ts","sourceRoot":"","sources":["../../../../../../src/api/device-action/model/UserInteractionRequired.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,qBAAqB,4BAA4B;IACjD,cAAc,qBAAqB;IACnC,eAAe,qBAAqB;IACpC,aAAa,oBAAoB;IACjC,aAAa,oBAAoB;IACjC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,2BAA2B,kCAAkC;IAC7D,eAAe,uBAAuB;IACtC,iBAAiB,wBAAwB;IACzC,cAAc,oBAAoB;
|
|
1
|
+
{"version":3,"file":"UserInteractionRequired.d.ts","sourceRoot":"","sources":["../../../../../../src/api/device-action/model/UserInteractionRequired.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,qBAAqB,4BAA4B;IACjD,cAAc,qBAAqB;IACnC,eAAe,qBAAqB;IACpC,aAAa,oBAAoB;IACjC,aAAa,oBAAoB;IACjC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,2BAA2B,kCAAkC;IAC7D,eAAe,uBAAuB;IACtC,iBAAiB,wBAAwB;IACzC,cAAc,oBAAoB;IAClC,gBAAgB,uBAAuB;IACvC,kBAAkB,yBAAyB;IAC3C,kBAAkB,yBAAyB;CAC5C"}
|
|
@@ -25,18 +25,27 @@ StateMachineTypes<Output, Input, Error, IntermediateValue, InternalState>["input
|
|
|
25
25
|
export declare abstract class XStateDeviceAction<Output, Input, Error extends DmkError, IntermediateValue extends DeviceActionIntermediateValue, InternalState> implements DeviceAction<Output, Input, Error, IntermediateValue> {
|
|
26
26
|
readonly input: Input;
|
|
27
27
|
readonly inspect: boolean;
|
|
28
|
-
protected
|
|
28
|
+
protected logger?: LoggerPublisherService;
|
|
29
|
+
protected loggerFactory?: (tag: string) => LoggerPublisherService;
|
|
29
30
|
/**
|
|
30
31
|
*
|
|
31
32
|
* @param input The input for the DeviceAction
|
|
32
33
|
* @param inspect If true, the state machine will be inspected in the browser
|
|
33
34
|
* @param logger Optional logger for debugging. If provided, input and internal state will be logged on state transitions.
|
|
35
|
+
* @param loggerFactory Optional logger factory for creating loggers with prefixed tags. Takes precedence over logger.
|
|
34
36
|
*/
|
|
35
37
|
constructor(args: {
|
|
36
38
|
input: Input;
|
|
37
39
|
inspect?: boolean;
|
|
38
40
|
logger?: LoggerPublisherService;
|
|
41
|
+
loggerFactory?: (tag: string) => LoggerPublisherService;
|
|
39
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* Returns the logger factory to use for creating loggers.
|
|
45
|
+
* Prefers the instance loggerFactory, then internalApi.loggerFactory,
|
|
46
|
+
* and falls back to a no-op logger factory if neither is available.
|
|
47
|
+
*/
|
|
48
|
+
protected getLoggerFactory(internalApi: InternalApi): (tag: string) => LoggerPublisherService;
|
|
40
49
|
protected abstract makeStateMachine(internalAPI: InternalApi): DeviceActionStateMachine<Output, Input, Error, IntermediateValue, InternalState>;
|
|
41
50
|
_execute(internalApi: InternalApi): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue>;
|
|
42
51
|
protected _subscribeToStateMachine(stateMachine: DeviceActionStateMachine<Output, Input, Error, IntermediateValue, InternalState>): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XStateDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/api/device-action/xstate-utils/XStateDeviceAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,WAAW,EACjB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"XStateDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/api/device-action/xstate-utils/XStateDeviceAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,WAAW,EACjB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAGnG,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,wBAAwB,CAClC,MAAM,EACN,KAAK,EACL,KAAK,SAAS,QAAQ,EACtB,iBAAiB,SAAS,6BAA6B,EACvD,aAAa,IACX,YAAY,CACd,iBAAiB,CACf,MAAM,EACN,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,CACd,CAAC,SAAS,CAAC,EAAE,UAAU;AACxB;;;GAGG;AAEH,GAAG,EAAE,QAAQ;AACb,GAAG,EAAE,WAAW;AAChB,GAAG,EAAE,QAAQ;AACb,GAAG,EAAE,SAAS;AACd,GAAG,EAAE,QAAQ;AACb,GAAG,EAAE,QAAQ;AACb,GAAG,EAAE,cAAc;AACnB,GAAG,EAAE,MAAM;AAEX,iBAAiB,CACf,MAAM,EACN,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,CACd,CAAC,OAAO,CAAC,EACV,iBAAiB,CACf,MAAM,EACN,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,CACd,CAAC,QAAQ,CAAC,EAEX,GAAG,EACH,GAAG,EAEH,WAAW,CACZ,CAAC;AAEF;;;;GAIG;AACH,8BAAsB,kBAAkB,CACtC,MAAM,EACN,KAAK,EACL,KAAK,SAAS,QAAQ,EACtB,iBAAiB,SAAS,6BAA6B,EACvD,aAAa,CACb,YAAW,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAEhE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAS;IAClC,SAAS,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAC1C,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAElE;;;;;;OAMG;gBACS,IAAI,EAAE;QAChB,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAChC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;KACzD;IAOD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CACxB,WAAW,EAAE,WAAW,GACvB,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB;IAI1C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CACjC,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,MAAM,EACN,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,CACd;IAED,QAAQ,CACN,WAAW,EAAE,WAAW,GACvB,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAYlE,SAAS,CAAC,wBAAwB,CAChC,YAAY,EAAE,wBAAwB,CACpC,MAAM,EACN,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,CACd,GACA,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;IA2GlE,OAAO,CAAC,wBAAwB;CAIjC"}
|
|
@@ -9,6 +9,7 @@ export { InvalidGetFirmwareMetadataResponseError, InvalidStatusWordError, } from
|
|
|
9
9
|
export { CommandResultFactory, CommandResultStatus, isSuccessCommandResult, } from "./command/model/CommandResult";
|
|
10
10
|
export { CloseAppCommand } from "./command/os/CloseAppCommand";
|
|
11
11
|
export { GetAppAndVersionCommand, type GetAppAndVersionResponse, } from "./command/os/GetAppAndVersionCommand";
|
|
12
|
+
export { GetBackgroundImageSizeCommand, GetBackgroundImageSizeCommandError, type GetBackgroundImageSizeCommandResult, type GetBackgroundImageSizeErrorCodes, type GetBackgroundImageSizeResponse, } from "./command/os/GetBackgroundImageSizeCommand";
|
|
12
13
|
export { BatteryStatusType, type GetBatteryStatusArgs, GetBatteryStatusCommand, type GetBatteryStatusResponse, } from "./command/os/GetBatteryStatusCommand";
|
|
13
14
|
export { GetOsVersionCommand, type GetOsVersionResponse, } from "./command/os/GetOsVersionCommand";
|
|
14
15
|
export { type ListAppsArgs, ListAppsCommand, type ListAppsErrorCodes, type ListAppsResponse, } from "./command/os/ListAppsCommand";
|
|
@@ -23,10 +24,12 @@ export { type InternalApi } from "./device-action/DeviceAction";
|
|
|
23
24
|
export { type DeviceActionState, DeviceActionStatus, } from "./device-action/model/DeviceActionState";
|
|
24
25
|
export { UserInteractionRequired } from "./device-action/model/UserInteractionRequired";
|
|
25
26
|
export { CallTaskInAppDeviceAction } from "./device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction";
|
|
27
|
+
export { DEFAULT_UNLOCK_TIMEOUT_MS } from "./device-action/os/Const";
|
|
26
28
|
export { AppAlreadyInstalledDAError, DeviceLockedError, DeviceNotOnboardedError, OutOfMemoryDAError, RefusedByUserDAError, UnknownDAError, UnsupportedFirmwareDAError, } from "./device-action/os/Errors";
|
|
27
29
|
export { GetDeviceMetadataDeviceAction } from "./device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction";
|
|
28
30
|
export { GetDeviceStatusDeviceAction } from "./device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction";
|
|
29
31
|
export { GoToDashboardDeviceAction } from "./device-action/os/GoToDashboard/GoToDashboardDeviceAction";
|
|
32
|
+
export type { GoToDashboardDAError, GoToDashboardDAInput, GoToDashboardDAIntermediateValue, GoToDashboardDAOutput, GoToDashboardDARequiredInteraction, GoToDashboardDAState, } from "./device-action/os/GoToDashboard/types";
|
|
30
33
|
export { InstallOrUpdateAppsDeviceAction } from "./device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction";
|
|
31
34
|
export { ListAppsDeviceAction } from "./device-action/os/ListApps/ListAppsDeviceAction";
|
|
32
35
|
export { ListAppsWithMetadataDeviceAction } from "./device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction";
|
|
@@ -51,6 +54,7 @@ export { FramerUtils } from "./device-session/utils/FramerUtils";
|
|
|
51
54
|
export { DeviceManagementKit } from "./DeviceManagementKit";
|
|
52
55
|
export { DeviceManagementKitBuilder } from "./DeviceManagementKitBuilder";
|
|
53
56
|
export * from "./Error";
|
|
57
|
+
export { noopLogger, noopLoggerFactory, } from "./logger-publisher/utils/noopLoggerFactory";
|
|
54
58
|
export { LogLevel } from "./logger-subscriber/model/LogLevel";
|
|
55
59
|
export { ConsoleLogger } from "./logger-subscriber/service/ConsoleLogger";
|
|
56
60
|
export { DefaultLogTagFormatter } from "./logger-subscriber/service/DefaultLogTagFormatter";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,uCAAuC,EACvC,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,KAAK,mCAAmC,EACxC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,GACpC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,KAAK,YAAY,EACjB,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,KAAK,iBAAiB,EACtB,kBAAkB,GACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,2EAA2E,CAAC;AACtH,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mEAAmE,CAAC;AAChH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC1G,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gCAAgC,EAChC,qBAAqB,EACrB,kCAAkC,EAClC,oBAAoB,GACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,2EAA2E,CAAC;AAC5H,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,6EAA6E,CAAC;AAC/H,OAAO,EAAE,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,EAAE,mCAAmC,EAAE,MAAM,mFAAmF,CAAC;AACxI,OAAO,EAAE,4BAA4B,EAAE,MAAM,iFAAiF,CAAC;AAC/H,OAAO,EACL,KAAK,wBAAwB,EAC7B,kBAAkB,GACnB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,cAAc,sCAAsC,CAAC;AACrD,OAAO,EACL,KAAK,kBAAkB,EACvB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qEAAqE,CAAC;AAC7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,mFAAmF,CAAC;AAClI,OAAO,EAAE,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AACnH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,qCAAqC,EAAE,MAAM,6DAA6D,CAAC;AACpH,OAAO,EAAE,mCAAmC,EAAE,MAAM,2DAA2D,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,UAAU,EACV,iBAAiB,GAClB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EACL,4BAA4B,EAC5B,KAAK,kCAAkC,GACxC,MAAM,mDAAmD,CAAC;AAC3D,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type LoggerPublisherService } from "../../logger-publisher/service/LoggerPublisherService";
|
|
2
|
+
/**
|
|
3
|
+
* A no-op logger that silently discards all log messages.
|
|
4
|
+
* Useful as a default when no logger is configured.
|
|
5
|
+
*/
|
|
6
|
+
export declare const noopLogger: LoggerPublisherService;
|
|
7
|
+
/**
|
|
8
|
+
* A logger factory that always returns a no-op logger, regardless of the tag.
|
|
9
|
+
* Use this as a fallback when no logger factory is provided.
|
|
10
|
+
*/
|
|
11
|
+
export declare const noopLoggerFactory: (_tag: string) => LoggerPublisherService;
|
|
12
|
+
//# sourceMappingURL=noopLoggerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noopLoggerFactory.d.ts","sourceRoot":"","sources":["../../../../../../src/api/logger-publisher/utils/noopLoggerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,sBAMxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,sBACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noopLoggerFactory.test.d.ts","sourceRoot":"","sources":["../../../../../../src/api/logger-publisher/utils/noopLoggerFactory.test.ts"],"names":[],"mappings":""}
|
|
@@ -36,6 +36,7 @@ export declare class DeviceSession {
|
|
|
36
36
|
private readonly _managerApiService;
|
|
37
37
|
private readonly _secureChannelService;
|
|
38
38
|
private readonly _logger;
|
|
39
|
+
private readonly _loggerModuleFactory;
|
|
39
40
|
private readonly _refresherOptions;
|
|
40
41
|
private _pinger;
|
|
41
42
|
private _deviceSessionRefresher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceSession.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/device-session/model/DeviceSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EACnC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAKnG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAM9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAEzF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EACL,4BAA4B,EAE7B,MAAM,gCAAgC,CAAC;AAIxC,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,uBAAuB,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,uBAAuB,CAAsC;IACrE,OAAO,CAAC,kBAAkB,CAAkB;gBAG1C,EAAE,eAAe,EAAE,EAAa,EAAE,EAAE,sBAAsB,EAC1D,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAC5D,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,oBAAoB,EAC1C,6BAA6B,EAAE,6BAA6B,GAAG,SAAS,EACxE,yBAAyB,GAAE,CACzB,sBAAsB,EAAE,4BAA4B,KACjD,kBACgE;
|
|
1
|
+
{"version":3,"file":"DeviceSession.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/device-session/model/DeviceSession.ts"],"names":[],"mappings":"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"}
|