@ledgerhq/speculos-device-controller 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,53 +1,57 @@
1
1
  {
2
- "name": "@ledgerhq/speculos-device-controller",
3
- "version": "0.1.0",
4
- "license": "Apache-2.0",
5
- "private": false,
2
+ "dependencies": {
3
+ "@ledgerhq/device-management-kit": "^0.11.2",
4
+ "@sentry/minimal": "catalog:",
5
+ "axios": "catalog:"
6
+ },
7
+ "devDependencies": {
8
+ "@ledgerhq/eslint-config-dsdk": "workspace:^",
9
+ "@ledgerhq/ldmk-tool": "workspace:^",
10
+ "@ledgerhq/prettier-config-dsdk": "workspace:^",
11
+ "@ledgerhq/tsconfig-dsdk": "workspace:^",
12
+ "@ledgerhq/vitest-config-dmk": "workspace:^",
13
+ "ts-node": "catalog:"
14
+ },
6
15
  "exports": {
7
16
  ".": {
8
- "types": "./lib/types/index.d.ts",
9
17
  "import": "./lib/esm/index.js",
10
- "require": "./lib/cjs/index.js"
18
+ "require": "./lib/cjs/index.js",
19
+ "types": "./lib/types/index.d.ts"
11
20
  },
12
21
  "./*": {
13
- "types": "./lib/types/*",
14
22
  "import": "./lib/esm/*",
15
- "require": "./lib/cjs/*"
23
+ "require": "./lib/cjs/*",
24
+ "types": "./lib/types/*"
16
25
  }
17
26
  },
18
27
  "files": [
19
28
  "./lib"
20
29
  ],
30
+ "license": "Apache-2.0",
31
+ "name": "@ledgerhq/speculos-device-controller",
32
+ "peerDependencies": {
33
+ "@ledgerhq/device-management-kit": "^0.11.2"
34
+ },
35
+ "private": false,
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
39
+ },
21
40
  "scripts": {
22
- "prebuild": "rimraf lib",
23
41
  "build": "pnpm ldmk-tool build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
24
42
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
25
- "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
- "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
27
43
  "lint": "eslint",
28
44
  "lint:fix": "pnpm lint --fix",
29
45
  "postpack": "find . -name '*.tgz' -exec cp {} ../../../dist/ \\; ",
46
+ "prebuild": "rimraf lib",
30
47
  "prettier": "prettier . --check",
31
48
  "prettier:fix": "prettier . --write",
32
- "typecheck": "tsc --noEmit",
33
49
  "test": "vitest run --passWithNoTests",
50
+ "test:coverage": "vitest run --coverage --passWithNoTests",
34
51
  "test:watch": "vitest --passWithNoTests",
35
- "test:coverage": "vitest run --coverage --passWithNoTests"
36
- },
37
- "dependencies": {
38
- "@ledgerhq/device-management-kit": "workspace:*",
39
- "@sentry/minimal": "catalog:",
40
- "axios": "catalog:"
41
- },
42
- "devDependencies": {
43
- "@ledgerhq/eslint-config-dsdk": "workspace:*",
44
- "@ledgerhq/ldmk-tool": "workspace:*",
45
- "@ledgerhq/prettier-config-dsdk": "workspace:*",
46
- "@ledgerhq/tsconfig-dsdk": "workspace:*",
47
- "@ledgerhq/vitest-config-dmk": "workspace:*",
48
- "ts-node": "catalog:"
52
+ "typecheck": "tsc --noEmit",
53
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
54
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
49
55
  },
50
- "peerDependencies": {
51
- "@ledgerhq/device-management-kit": "workspace:*"
52
- }
56
+ "version": "0.2.0"
53
57
  }
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},D=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of C(e))!v.call(t,o)&&o!==r&&l(t,o,{get:()=>e[o],enumerable:!(n=m(e,o))||n.enumerable});return t};var F=t=>D(l({},"__esModule",{value:!0}),t);var g={};d(g,{deviceControllerClientFactory:()=>f});module.exports=F(g);var a=require("../internal/config/defaultScreens"),u=require("../../src/internal/di"),s=require("../../src/internal/use-cases/buttonUseCases"),c=require("../../src/internal/use-cases/touchUseCases");const f=(t,e={})=>{const r={screens:e.screens??a.DEFAULT_SCREENS,timeoutMs:e.timeoutMs,clientHeader:e.clientHeader},{buttons:n,touch:o}=(0,u.createDefaultControllers)(t,r),p=(0,s.pressButtons)(n);return{buttonFactory:()=>({press:i=>n.press(i),left:()=>p.left(),right:()=>p.right(),both:()=>p.both(),pressSequence:(i,y)=>(0,s.pressSequence)(n,i,y)}),tapFactory:i=>({tapQuick:(0,c.tapQuick)(o,i),tapLong:(0,c.tapLong)(o,i)})}};0&&(module.exports={deviceControllerClientFactory});
1
+ "use strict";var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var y=(n,o)=>{for(var i in o)p(n,i,{get:o[i],enumerable:!0})},g=(n,o,i,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of d(o))!C.call(n,t)&&t!==i&&p(n,t,{get:()=>o[t],enumerable:!(s=m(o,t))||s.enumerable});return n};var P=n=>g(p({},"__esModule",{value:!0}),n);var D={};y(D,{deviceControllerClientFactory:()=>B});module.exports=P(D);var l=require("../internal/config/defaultScreens"),u=require("../../src/internal/di"),c=require("../../src/internal/use-cases/buttonUseCases"),e=require("../../src/internal/use-cases/touchUseCases");const B=(n,o={})=>{const i={screens:o.screens??l.DEFAULT_SCREENS,timeoutMs:o.timeoutMs,clientHeader:o.clientHeader},{buttons:s,touch:t}=(0,u.createDefaultControllers)(n,i),a=(0,c.pressButtons)(s);return{buttonFactory:()=>({press:r=>s.press(r),left:()=>a.left(),right:()=>a.right(),both:()=>a.both(),pressSequence:(r,v)=>(0,c.pressSequence)(s,r,v)}),tapFactory:r=>({tapQuick:(0,e.tapQuick)(t,r),tapLong:(0,e.tapLong)(t,r),sign:(0,e.sign)(t,r),reject:(0,e.reject)(t,r),navigateNext:(0,e.navigateNext)(t,r),navigatePrevious:(0,e.navigatePrevious)(t,r),mainButton:(0,e.mainButton)(t,r),secondaryButton:(0,e.secondaryButton)(t,r)})}};0&&(module.exports={deviceControllerClientFactory});
2
2
  //# sourceMappingURL=DeviceController.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/DeviceController.ts"],
4
- "sourcesContent": ["import { DEFAULT_SCREENS } from \"@internal/config/defaultScreens\";\nimport type { ButtonController } from \"@internal/core/ButtonController\";\nimport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n} from \"@internal/core/types\";\nimport { createDefaultControllers } from \"@root/src/internal/di\";\nimport {\n pressButtons,\n pressSequence,\n} from \"@root/src/internal/use-cases/buttonUseCases\";\nimport { tapLong, tapQuick } from \"@root/src/internal/use-cases/touchUseCases\";\n\nexport type ButtonFactory = () => ButtonController & {\n left(): Promise<void>;\n right(): Promise<void>;\n both(): Promise<void>;\n pressSequence(keys: ButtonKey[], delayMs?: number): Promise<void>;\n};\n\nexport type TapFactory = (deviceKey: string) => {\n tapQuick: (point: PercentCoordinates) => Promise<void>;\n tapLong: (point: PercentCoordinates) => Promise<void>;\n};\n\nexport type DeviceControllerClientFactory = (\n baseURL: string,\n opts?: {\n timeoutMs?: number;\n clientHeader?: string;\n screens?: DeviceScreens<string>;\n },\n) => DeviceControllerClient;\n\nexport type DeviceControllerClient = {\n buttonFactory: ButtonFactory;\n tapFactory: TapFactory;\n};\n\nexport const deviceControllerClientFactory: DeviceControllerClientFactory = (\n baseURL,\n opts = {},\n) => {\n const resolved: DeviceControllerOptions = {\n screens: opts.screens ?? DEFAULT_SCREENS,\n timeoutMs: opts.timeoutMs,\n clientHeader: opts.clientHeader,\n };\n\n const { buttons, touch } = createDefaultControllers(baseURL, resolved);\n const press = pressButtons(buttons);\n\n return {\n buttonFactory: () => ({\n press: (key) => buttons.press(key),\n left: () => press.left(),\n right: () => press.right(),\n both: () => press.both(),\n pressSequence: (keys, delayMs) => pressSequence(buttons, keys, delayMs),\n }),\n tapFactory: (key) => ({\n tapQuick: tapQuick(touch, key),\n tapLong: tapLong(touch, key),\n }),\n };\n};\n\nexport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,2CAQhCC,EAAyC,iCACzCC,EAGO,uDACPC,EAAkC,sDA4B3B,MAAML,EAA+D,CAC1EM,EACAC,EAAO,CAAC,IACL,CACH,MAAMC,EAAoC,CACxC,QAASD,EAAK,SAAW,kBACzB,UAAWA,EAAK,UAChB,aAAcA,EAAK,YACrB,EAEM,CAAE,QAAAE,EAAS,MAAAC,CAAM,KAAI,4BAAyBJ,EAASE,CAAQ,EAC/DG,KAAQ,gBAAaF,CAAO,EAElC,MAAO,CACL,cAAe,KAAO,CACpB,MAAQG,GAAQH,EAAQ,MAAMG,CAAG,EACjC,KAAM,IAAMD,EAAM,KAAK,EACvB,MAAO,IAAMA,EAAM,MAAM,EACzB,KAAM,IAAMA,EAAM,KAAK,EACvB,cAAe,CAACE,EAAMC,OAAY,iBAAcL,EAASI,EAAMC,CAAO,CACxE,GACA,WAAaF,IAAS,CACpB,YAAU,YAASF,EAAOE,CAAG,EAC7B,WAAS,WAAQF,EAAOE,CAAG,CAC7B,EACF,CACF",
4
+ "sourcesContent": ["import { DEFAULT_SCREENS } from \"@internal/config/defaultScreens\";\nimport type { ButtonController } from \"@internal/core/ButtonController\";\nimport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n} from \"@internal/core/types\";\nimport { createDefaultControllers } from \"@root/src/internal/di\";\nimport {\n pressButtons,\n pressSequence,\n} from \"@root/src/internal/use-cases/buttonUseCases\";\nimport {\n mainButton,\n navigateNext,\n navigatePrevious,\n reject,\n secondaryButton,\n sign,\n tapLong,\n tapQuick,\n} from \"@root/src/internal/use-cases/touchUseCases\";\n\nexport type ButtonFactory = () => ButtonController & {\n left(): Promise<void>;\n right(): Promise<void>;\n both(): Promise<void>;\n pressSequence(keys: ButtonKey[], delayMs?: number): Promise<void>;\n};\n\nexport type TapFactory = (deviceKey: string) => {\n tapQuick: (point: PercentCoordinates) => Promise<void>;\n tapLong: (point: PercentCoordinates) => Promise<void>;\n sign: () => Promise<void>;\n reject: () => Promise<void>;\n navigateNext: () => Promise<void>;\n navigatePrevious: () => Promise<void>;\n mainButton: () => Promise<void>;\n secondaryButton: () => Promise<void>;\n};\n\nexport type DeviceControllerClientFactory = (\n baseURL: string,\n opts?: {\n timeoutMs?: number;\n clientHeader?: string;\n screens?: DeviceScreens<string>;\n },\n) => DeviceControllerClient;\n\nexport type DeviceControllerClient = {\n buttonFactory: ButtonFactory;\n tapFactory: TapFactory;\n};\n\nexport const deviceControllerClientFactory: DeviceControllerClientFactory = (\n baseURL,\n opts = {},\n) => {\n const resolved: DeviceControllerOptions = {\n screens: opts.screens ?? DEFAULT_SCREENS,\n timeoutMs: opts.timeoutMs,\n clientHeader: opts.clientHeader,\n };\n\n const { buttons, touch } = createDefaultControllers(baseURL, resolved);\n const press = pressButtons(buttons);\n\n return {\n buttonFactory: () => ({\n press: (key) => buttons.press(key),\n left: () => press.left(),\n right: () => press.right(),\n both: () => press.both(),\n pressSequence: (keys, delayMs) => pressSequence(buttons, keys, delayMs),\n }),\n tapFactory: (key) => ({\n tapQuick: tapQuick(touch, key),\n tapLong: tapLong(touch, key),\n sign: sign(touch, key),\n reject: reject(touch, key),\n navigateNext: navigateNext(touch, key),\n navigatePrevious: navigatePrevious(touch, key),\n mainButton: mainButton(touch, key),\n secondaryButton: secondaryButton(touch, key),\n }),\n };\n};\n\nexport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,2CAQhCC,EAAyC,iCACzCC,EAGO,uDACPC,EASO,sDAkCA,MAAML,EAA+D,CAC1EM,EACAC,EAAO,CAAC,IACL,CACH,MAAMC,EAAoC,CACxC,QAASD,EAAK,SAAW,kBACzB,UAAWA,EAAK,UAChB,aAAcA,EAAK,YACrB,EAEM,CAAE,QAAAE,EAAS,MAAAC,CAAM,KAAI,4BAAyBJ,EAASE,CAAQ,EAC/DG,KAAQ,gBAAaF,CAAO,EAElC,MAAO,CACL,cAAe,KAAO,CACpB,MAAQG,GAAQH,EAAQ,MAAMG,CAAG,EACjC,KAAM,IAAMD,EAAM,KAAK,EACvB,MAAO,IAAMA,EAAM,MAAM,EACzB,KAAM,IAAMA,EAAM,KAAK,EACvB,cAAe,CAACE,EAAMC,OAAY,iBAAcL,EAASI,EAAMC,CAAO,CACxE,GACA,WAAaF,IAAS,CACpB,YAAU,YAASF,EAAOE,CAAG,EAC7B,WAAS,WAAQF,EAAOE,CAAG,EAC3B,QAAM,QAAKF,EAAOE,CAAG,EACrB,UAAQ,UAAOF,EAAOE,CAAG,EACzB,gBAAc,gBAAaF,EAAOE,CAAG,EACrC,oBAAkB,oBAAiBF,EAAOE,CAAG,EAC7C,cAAY,cAAWF,EAAOE,CAAG,EACjC,mBAAiB,mBAAgBF,EAAOE,CAAG,CAC7C,EACF,CACF",
6
6
  "names": ["DeviceController_exports", "__export", "deviceControllerClientFactory", "__toCommonJS", "import_defaultScreens", "import_di", "import_buttonUseCases", "import_touchUseCases", "baseURL", "opts", "resolved", "buttons", "touch", "press", "key", "keys", "delayMs"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(e,t)=>{for(var o in t)a(e,o,{get:t[o],enumerable:!0})},l=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of i(t))!c.call(e,r)&&r!==o&&a(e,r,{get:()=>t[r],enumerable:!(n=s(t,r))||n.enumerable});return e};var m=e=>l(a({},"__esModule",{value:!0}),e);var u={};p(u,{tapLong:()=>T,tapQuick:()=>d});module.exports=m(u);const C=5e3,T=(e,t)=>async(o,n=C)=>{await e.tap(t,o),await new Promise(r=>setTimeout(r,n)),await e.release(t,o)},d=(e,t)=>async o=>await e.tapAndRelease(t,o);0&&(module.exports={tapLong,tapQuick});
1
+ "use strict";var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var l=(e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})},y=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of x(t))!K.call(e,o)&&o!==n&&s(e,o,{get:()=>t[o],enumerable:!(a=i(t,o))||a.enumerable});return e};var p=e=>y(s({},"__esModule",{value:!0}),e);var m={};l(m,{mainButton:()=>w,navigateNext:()=>C,navigatePrevious:()=>T,reject:()=>g,secondaryButton:()=>h,sign:()=>d,tapLong:()=>c,tapQuick:()=>r});module.exports=p(m);const u=5e3,c=(e,t)=>async(n,a=u)=>{await e.tap(t,n),await new Promise(o=>setTimeout(o,a)),await e.release(t,n)},r=(e,t)=>async n=>await e.tapAndRelease(t,n),d=(e,t)=>async()=>await c(e,t)({x:85,y:80}),g=(e,t)=>async()=>await r(e,t)({x:20,y:90}),C=(e,t)=>async()=>await r(e,t)({x:90,y:90}),T=(e,t)=>async()=>await r(e,t)({x:45,y:90}),w=(e,t)=>async()=>await r(e,t)({x:50,y:80}),h=(e,t)=>async()=>await r(e,t)({x:50,y:90});0&&(module.exports={mainButton,navigateNext,navigatePrevious,reject,secondaryButton,sign,tapLong,tapQuick});
2
2
  //# sourceMappingURL=touchUseCases.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/touchUseCases.ts"],
4
- "sourcesContent": ["import type { PercentCoordinates } from \"@internal/core/types\";\nimport { type TouchController } from \"@root/src/internal/core/TouchController\";\n\nconst TAP_LONG_TIME_MS = 5000;\n\nexport const tapLong =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates, delayMs: number = TAP_LONG_TIME_MS) => {\n await touch.tap(deviceKey, point);\n await new Promise((r) => setTimeout(r, delayMs));\n await touch.release(deviceKey, point);\n };\n\nexport const tapQuick =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates) =>\n await touch.tapAndRelease(deviceKey, point);\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,aAAAC,IAAA,eAAAC,EAAAJ,GAGA,MAAMK,EAAmB,IAEZH,EACX,CAAmBI,EAA2BC,IAC9C,MAAOC,EAA2BC,EAAkBJ,IAAqB,CACvE,MAAMC,EAAM,IAAIC,EAAWC,CAAK,EAChC,MAAM,IAAI,QAAS,GAAM,WAAW,EAAGC,CAAO,CAAC,EAC/C,MAAMH,EAAM,QAAQC,EAAWC,CAAK,CACtC,EAEWL,EACX,CAAmBG,EAA2BC,IAC9C,MAAOC,GACL,MAAMF,EAAM,cAAcC,EAAWC,CAAK",
6
- "names": ["touchUseCases_exports", "__export", "tapLong", "tapQuick", "__toCommonJS", "TAP_LONG_TIME_MS", "touch", "deviceKey", "point", "delayMs"]
4
+ "sourcesContent": ["import type { PercentCoordinates } from \"@internal/core/types\";\nimport { type TouchController } from \"@root/src/internal/core/TouchController\";\n\nconst TAP_LONG_TIME_MS = 5000;\n\nexport const tapLong =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates, delayMs: number = TAP_LONG_TIME_MS) => {\n await touch.tap(deviceKey, point);\n await new Promise((r) => setTimeout(r, delayMs));\n await touch.release(deviceKey, point);\n };\n\nexport const tapQuick =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates) =>\n await touch.tapAndRelease(deviceKey, point);\n\nexport const sign =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapLong(touch, deviceKey)({ x: 85, y: 80 });\n\nexport const reject =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 20, y: 90 });\n\nexport const navigateNext =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 90, y: 90 });\n\nexport const navigatePrevious =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 45, y: 90 });\n\nexport const mainButton =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 50, y: 80 });\n\nexport const secondaryButton =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 50, y: 90 });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,iBAAAC,EAAA,qBAAAC,EAAA,WAAAC,EAAA,oBAAAC,EAAA,SAAAC,EAAA,YAAAC,EAAA,aAAAC,IAAA,eAAAC,EAAAV,GAGA,MAAMW,EAAmB,IAEZH,EACX,CAAmBI,EAA2BC,IAC9C,MAAOC,EAA2BC,EAAkBJ,IAAqB,CACvE,MAAMC,EAAM,IAAIC,EAAWC,CAAK,EAChC,MAAM,IAAI,QAASE,GAAM,WAAWA,EAAGD,CAAO,CAAC,EAC/C,MAAMH,EAAM,QAAQC,EAAWC,CAAK,CACtC,EAEWL,EACX,CAAmBG,EAA2BC,IAC9C,MAAOC,GACL,MAAMF,EAAM,cAAcC,EAAWC,CAAK,EAEjCP,EACX,CAAmBK,EAA2BC,IAC9C,SACE,MAAML,EAAQI,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAEvCR,EACX,CAAmBO,EAA2BC,IAC9C,SACE,MAAMJ,EAASG,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCV,EACX,CAAmBS,EAA2BC,IAC9C,SACE,MAAMJ,EAASG,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCT,EACX,CAAmBQ,EAA2BC,IAC9C,SACE,MAAMJ,EAASG,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCX,EACX,CAAmBU,EAA2BC,IAC9C,SACE,MAAMJ,EAASG,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCP,EACX,CAAmBM,EAA2BC,IAC9C,SACE,MAAMJ,EAASG,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC",
6
+ "names": ["touchUseCases_exports", "__export", "mainButton", "navigateNext", "navigatePrevious", "reject", "secondaryButton", "sign", "tapLong", "tapQuick", "__toCommonJS", "TAP_LONG_TIME_MS", "touch", "deviceKey", "point", "delayMs", "r"]
7
7
  }
@@ -1,53 +1,57 @@
1
1
  {
2
- "name": "@ledgerhq/speculos-device-controller",
3
- "version": "0.1.0",
4
- "license": "Apache-2.0",
5
- "private": false,
2
+ "dependencies": {
3
+ "@ledgerhq/device-management-kit": "^0.11.2",
4
+ "@sentry/minimal": "catalog:",
5
+ "axios": "catalog:"
6
+ },
7
+ "devDependencies": {
8
+ "@ledgerhq/eslint-config-dsdk": "workspace:^",
9
+ "@ledgerhq/ldmk-tool": "workspace:^",
10
+ "@ledgerhq/prettier-config-dsdk": "workspace:^",
11
+ "@ledgerhq/tsconfig-dsdk": "workspace:^",
12
+ "@ledgerhq/vitest-config-dmk": "workspace:^",
13
+ "ts-node": "catalog:"
14
+ },
6
15
  "exports": {
7
16
  ".": {
8
- "types": "./lib/types/index.d.ts",
9
17
  "import": "./lib/esm/index.js",
10
- "require": "./lib/cjs/index.js"
18
+ "require": "./lib/cjs/index.js",
19
+ "types": "./lib/types/index.d.ts"
11
20
  },
12
21
  "./*": {
13
- "types": "./lib/types/*",
14
22
  "import": "./lib/esm/*",
15
- "require": "./lib/cjs/*"
23
+ "require": "./lib/cjs/*",
24
+ "types": "./lib/types/*"
16
25
  }
17
26
  },
18
27
  "files": [
19
28
  "./lib"
20
29
  ],
30
+ "license": "Apache-2.0",
31
+ "name": "@ledgerhq/speculos-device-controller",
32
+ "peerDependencies": {
33
+ "@ledgerhq/device-management-kit": "^0.11.2"
34
+ },
35
+ "private": false,
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
39
+ },
21
40
  "scripts": {
22
- "prebuild": "rimraf lib",
23
41
  "build": "pnpm ldmk-tool build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
24
42
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
25
- "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
- "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
27
43
  "lint": "eslint",
28
44
  "lint:fix": "pnpm lint --fix",
29
45
  "postpack": "find . -name '*.tgz' -exec cp {} ../../../dist/ \\; ",
46
+ "prebuild": "rimraf lib",
30
47
  "prettier": "prettier . --check",
31
48
  "prettier:fix": "prettier . --write",
32
- "typecheck": "tsc --noEmit",
33
49
  "test": "vitest run --passWithNoTests",
50
+ "test:coverage": "vitest run --coverage --passWithNoTests",
34
51
  "test:watch": "vitest --passWithNoTests",
35
- "test:coverage": "vitest run --coverage --passWithNoTests"
36
- },
37
- "dependencies": {
38
- "@ledgerhq/device-management-kit": "workspace:*",
39
- "@sentry/minimal": "catalog:",
40
- "axios": "catalog:"
41
- },
42
- "devDependencies": {
43
- "@ledgerhq/eslint-config-dsdk": "workspace:*",
44
- "@ledgerhq/ldmk-tool": "workspace:*",
45
- "@ledgerhq/prettier-config-dsdk": "workspace:*",
46
- "@ledgerhq/tsconfig-dsdk": "workspace:*",
47
- "@ledgerhq/vitest-config-dmk": "workspace:*",
48
- "ts-node": "catalog:"
52
+ "typecheck": "tsc --noEmit",
53
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
54
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
49
55
  },
50
- "peerDependencies": {
51
- "@ledgerhq/device-management-kit": "workspace:*"
52
- }
56
+ "version": "0.2.0"
53
57
  }
@@ -1,2 +1,2 @@
1
- import{DEFAULT_SCREENS as p}from"../internal/config/defaultScreens";import{createDefaultControllers as l}from"../../src/internal/di";import{pressButtons as a,pressSequence as u}from"../../src/internal/use-cases/buttonUseCases";import{tapLong as y,tapQuick as m}from"../../src/internal/use-cases/touchUseCases";const F=(i,t={})=>{const s={screens:t.screens??p,timeoutMs:t.timeoutMs,clientHeader:t.clientHeader},{buttons:o,touch:n}=l(i,s),r=a(o);return{buttonFactory:()=>({press:e=>o.press(e),left:()=>r.left(),right:()=>r.right(),both:()=>r.both(),pressSequence:(e,c)=>u(o,e,c)}),tapFactory:e=>({tapQuick:m(n,e),tapLong:y(n,e)})}};export{F as deviceControllerClientFactory};
1
+ import{DEFAULT_SCREENS as a}from"../internal/config/defaultScreens";import{createDefaultControllers as p}from"../../src/internal/di";import{pressButtons as l,pressSequence as u}from"../../src/internal/use-cases/buttonUseCases";import{mainButton as v,navigateNext as m,navigatePrevious as d,reject as C,secondaryButton as y,sign as g,tapLong as P,tapQuick as B}from"../../src/internal/use-cases/touchUseCases";const x=(i,o={})=>{const s={screens:o.screens??a,timeoutMs:o.timeoutMs,clientHeader:o.clientHeader},{buttons:r,touch:t}=p(i,s),n=l(r);return{buttonFactory:()=>({press:e=>r.press(e),left:()=>n.left(),right:()=>n.right(),both:()=>n.both(),pressSequence:(e,c)=>u(r,e,c)}),tapFactory:e=>({tapQuick:B(t,e),tapLong:P(t,e),sign:g(t,e),reject:C(t,e),navigateNext:m(t,e),navigatePrevious:d(t,e),mainButton:v(t,e),secondaryButton:y(t,e)})}};export{x as deviceControllerClientFactory};
2
2
  //# sourceMappingURL=DeviceController.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/DeviceController.ts"],
4
- "sourcesContent": ["import { DEFAULT_SCREENS } from \"@internal/config/defaultScreens\";\nimport type { ButtonController } from \"@internal/core/ButtonController\";\nimport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n} from \"@internal/core/types\";\nimport { createDefaultControllers } from \"@root/src/internal/di\";\nimport {\n pressButtons,\n pressSequence,\n} from \"@root/src/internal/use-cases/buttonUseCases\";\nimport { tapLong, tapQuick } from \"@root/src/internal/use-cases/touchUseCases\";\n\nexport type ButtonFactory = () => ButtonController & {\n left(): Promise<void>;\n right(): Promise<void>;\n both(): Promise<void>;\n pressSequence(keys: ButtonKey[], delayMs?: number): Promise<void>;\n};\n\nexport type TapFactory = (deviceKey: string) => {\n tapQuick: (point: PercentCoordinates) => Promise<void>;\n tapLong: (point: PercentCoordinates) => Promise<void>;\n};\n\nexport type DeviceControllerClientFactory = (\n baseURL: string,\n opts?: {\n timeoutMs?: number;\n clientHeader?: string;\n screens?: DeviceScreens<string>;\n },\n) => DeviceControllerClient;\n\nexport type DeviceControllerClient = {\n buttonFactory: ButtonFactory;\n tapFactory: TapFactory;\n};\n\nexport const deviceControllerClientFactory: DeviceControllerClientFactory = (\n baseURL,\n opts = {},\n) => {\n const resolved: DeviceControllerOptions = {\n screens: opts.screens ?? DEFAULT_SCREENS,\n timeoutMs: opts.timeoutMs,\n clientHeader: opts.clientHeader,\n };\n\n const { buttons, touch } = createDefaultControllers(baseURL, resolved);\n const press = pressButtons(buttons);\n\n return {\n buttonFactory: () => ({\n press: (key) => buttons.press(key),\n left: () => press.left(),\n right: () => press.right(),\n both: () => press.both(),\n pressSequence: (keys, delayMs) => pressSequence(buttons, keys, delayMs),\n }),\n tapFactory: (key) => ({\n tapQuick: tapQuick(touch, key),\n tapLong: tapLong(touch, key),\n }),\n };\n};\n\nexport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n};\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,kCAQhC,OAAS,4BAAAC,MAAgC,wBACzC,OACE,gBAAAC,EACA,iBAAAC,MACK,8CACP,OAAS,WAAAC,EAAS,YAAAC,MAAgB,6CA4B3B,MAAMC,EAA+D,CAC1EC,EACAC,EAAO,CAAC,IACL,CACH,MAAMC,EAAoC,CACxC,QAASD,EAAK,SAAWR,EACzB,UAAWQ,EAAK,UAChB,aAAcA,EAAK,YACrB,EAEM,CAAE,QAAAE,EAAS,MAAAC,CAAM,EAAIV,EAAyBM,EAASE,CAAQ,EAC/DG,EAAQV,EAAaQ,CAAO,EAElC,MAAO,CACL,cAAe,KAAO,CACpB,MAAQG,GAAQH,EAAQ,MAAMG,CAAG,EACjC,KAAM,IAAMD,EAAM,KAAK,EACvB,MAAO,IAAMA,EAAM,MAAM,EACzB,KAAM,IAAMA,EAAM,KAAK,EACvB,cAAe,CAACE,EAAMC,IAAYZ,EAAcO,EAASI,EAAMC,CAAO,CACxE,GACA,WAAaF,IAAS,CACpB,SAAUR,EAASM,EAAOE,CAAG,EAC7B,QAAST,EAAQO,EAAOE,CAAG,CAC7B,EACF,CACF",
6
- "names": ["DEFAULT_SCREENS", "createDefaultControllers", "pressButtons", "pressSequence", "tapLong", "tapQuick", "deviceControllerClientFactory", "baseURL", "opts", "resolved", "buttons", "touch", "press", "key", "keys", "delayMs"]
4
+ "sourcesContent": ["import { DEFAULT_SCREENS } from \"@internal/config/defaultScreens\";\nimport type { ButtonController } from \"@internal/core/ButtonController\";\nimport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n} from \"@internal/core/types\";\nimport { createDefaultControllers } from \"@root/src/internal/di\";\nimport {\n pressButtons,\n pressSequence,\n} from \"@root/src/internal/use-cases/buttonUseCases\";\nimport {\n mainButton,\n navigateNext,\n navigatePrevious,\n reject,\n secondaryButton,\n sign,\n tapLong,\n tapQuick,\n} from \"@root/src/internal/use-cases/touchUseCases\";\n\nexport type ButtonFactory = () => ButtonController & {\n left(): Promise<void>;\n right(): Promise<void>;\n both(): Promise<void>;\n pressSequence(keys: ButtonKey[], delayMs?: number): Promise<void>;\n};\n\nexport type TapFactory = (deviceKey: string) => {\n tapQuick: (point: PercentCoordinates) => Promise<void>;\n tapLong: (point: PercentCoordinates) => Promise<void>;\n sign: () => Promise<void>;\n reject: () => Promise<void>;\n navigateNext: () => Promise<void>;\n navigatePrevious: () => Promise<void>;\n mainButton: () => Promise<void>;\n secondaryButton: () => Promise<void>;\n};\n\nexport type DeviceControllerClientFactory = (\n baseURL: string,\n opts?: {\n timeoutMs?: number;\n clientHeader?: string;\n screens?: DeviceScreens<string>;\n },\n) => DeviceControllerClient;\n\nexport type DeviceControllerClient = {\n buttonFactory: ButtonFactory;\n tapFactory: TapFactory;\n};\n\nexport const deviceControllerClientFactory: DeviceControllerClientFactory = (\n baseURL,\n opts = {},\n) => {\n const resolved: DeviceControllerOptions = {\n screens: opts.screens ?? DEFAULT_SCREENS,\n timeoutMs: opts.timeoutMs,\n clientHeader: opts.clientHeader,\n };\n\n const { buttons, touch } = createDefaultControllers(baseURL, resolved);\n const press = pressButtons(buttons);\n\n return {\n buttonFactory: () => ({\n press: (key) => buttons.press(key),\n left: () => press.left(),\n right: () => press.right(),\n both: () => press.both(),\n pressSequence: (keys, delayMs) => pressSequence(buttons, keys, delayMs),\n }),\n tapFactory: (key) => ({\n tapQuick: tapQuick(touch, key),\n tapLong: tapLong(touch, key),\n sign: sign(touch, key),\n reject: reject(touch, key),\n navigateNext: navigateNext(touch, key),\n navigatePrevious: navigatePrevious(touch, key),\n mainButton: mainButton(touch, key),\n secondaryButton: secondaryButton(touch, key),\n }),\n };\n};\n\nexport type {\n ButtonKey,\n DeviceControllerOptions,\n DeviceScreens,\n PercentCoordinates,\n};\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,kCAQhC,OAAS,4BAAAC,MAAgC,wBACzC,OACE,gBAAAC,EACA,iBAAAC,MACK,8CACP,OACE,cAAAC,EACA,gBAAAC,EACA,oBAAAC,EACA,UAAAC,EACA,mBAAAC,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,MACK,6CAkCA,MAAMC,EAA+D,CAC1EC,EACAC,EAAO,CAAC,IACL,CACH,MAAMC,EAAoC,CACxC,QAASD,EAAK,SAAWd,EACzB,UAAWc,EAAK,UAChB,aAAcA,EAAK,YACrB,EAEM,CAAE,QAAAE,EAAS,MAAAC,CAAM,EAAIhB,EAAyBY,EAASE,CAAQ,EAC/DG,EAAQhB,EAAac,CAAO,EAElC,MAAO,CACL,cAAe,KAAO,CACpB,MAAQG,GAAQH,EAAQ,MAAMG,CAAG,EACjC,KAAM,IAAMD,EAAM,KAAK,EACvB,MAAO,IAAMA,EAAM,MAAM,EACzB,KAAM,IAAMA,EAAM,KAAK,EACvB,cAAe,CAACE,EAAMC,IAAYlB,EAAca,EAASI,EAAMC,CAAO,CACxE,GACA,WAAaF,IAAS,CACpB,SAAUR,EAASM,EAAOE,CAAG,EAC7B,QAAST,EAAQO,EAAOE,CAAG,EAC3B,KAAMV,EAAKQ,EAAOE,CAAG,EACrB,OAAQZ,EAAOU,EAAOE,CAAG,EACzB,aAAcd,EAAaY,EAAOE,CAAG,EACrC,iBAAkBb,EAAiBW,EAAOE,CAAG,EAC7C,WAAYf,EAAWa,EAAOE,CAAG,EACjC,gBAAiBX,EAAgBS,EAAOE,CAAG,CAC7C,EACF,CACF",
6
+ "names": ["DEFAULT_SCREENS", "createDefaultControllers", "pressButtons", "pressSequence", "mainButton", "navigateNext", "navigatePrevious", "reject", "secondaryButton", "sign", "tapLong", "tapQuick", "deviceControllerClientFactory", "baseURL", "opts", "resolved", "buttons", "touch", "press", "key", "keys", "delayMs"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const a=5e3,s=(t,e)=>async(o,r=a)=>{await t.tap(e,o),await new Promise(n=>setTimeout(n,r)),await t.release(e,o)},i=(t,e)=>async o=>await t.tapAndRelease(e,o);export{s as tapLong,i as tapQuick};
1
+ const s=5e3,c=(t,e)=>async(o,r=s)=>{await t.tap(e,o),await new Promise(a=>setTimeout(a,r)),await t.release(e,o)},n=(t,e)=>async o=>await t.tapAndRelease(e,o),i=(t,e)=>async()=>await c(t,e)({x:85,y:80}),x=(t,e)=>async()=>await n(t,e)({x:20,y:90}),K=(t,e)=>async()=>await n(t,e)({x:90,y:90}),l=(t,e)=>async()=>await n(t,e)({x:45,y:90}),y=(t,e)=>async()=>await n(t,e)({x:50,y:80}),p=(t,e)=>async()=>await n(t,e)({x:50,y:90});export{y as mainButton,K as navigateNext,l as navigatePrevious,x as reject,p as secondaryButton,i as sign,c as tapLong,n as tapQuick};
2
2
  //# sourceMappingURL=touchUseCases.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/touchUseCases.ts"],
4
- "sourcesContent": ["import type { PercentCoordinates } from \"@internal/core/types\";\nimport { type TouchController } from \"@root/src/internal/core/TouchController\";\n\nconst TAP_LONG_TIME_MS = 5000;\n\nexport const tapLong =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates, delayMs: number = TAP_LONG_TIME_MS) => {\n await touch.tap(deviceKey, point);\n await new Promise((r) => setTimeout(r, delayMs));\n await touch.release(deviceKey, point);\n };\n\nexport const tapQuick =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates) =>\n await touch.tapAndRelease(deviceKey, point);\n"],
5
- "mappings": "AAGA,MAAMA,EAAmB,IAEZC,EACX,CAAmBC,EAA2BC,IAC9C,MAAOC,EAA2BC,EAAkBL,IAAqB,CACvE,MAAME,EAAM,IAAIC,EAAWC,CAAK,EAChC,MAAM,IAAI,QAASE,GAAM,WAAWA,EAAGD,CAAO,CAAC,EAC/C,MAAMH,EAAM,QAAQC,EAAWC,CAAK,CACtC,EAEWG,EACX,CAAmBL,EAA2BC,IAC9C,MAAOC,GACL,MAAMF,EAAM,cAAcC,EAAWC,CAAK",
6
- "names": ["TAP_LONG_TIME_MS", "tapLong", "touch", "deviceKey", "point", "delayMs", "r", "tapQuick"]
4
+ "sourcesContent": ["import type { PercentCoordinates } from \"@internal/core/types\";\nimport { type TouchController } from \"@root/src/internal/core/TouchController\";\n\nconst TAP_LONG_TIME_MS = 5000;\n\nexport const tapLong =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates, delayMs: number = TAP_LONG_TIME_MS) => {\n await touch.tap(deviceKey, point);\n await new Promise((r) => setTimeout(r, delayMs));\n await touch.release(deviceKey, point);\n };\n\nexport const tapQuick =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async (point: PercentCoordinates) =>\n await touch.tapAndRelease(deviceKey, point);\n\nexport const sign =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapLong(touch, deviceKey)({ x: 85, y: 80 });\n\nexport const reject =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 20, y: 90 });\n\nexport const navigateNext =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 90, y: 90 });\n\nexport const navigatePrevious =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 45, y: 90 });\n\nexport const mainButton =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 50, y: 80 });\n\nexport const secondaryButton =\n <K extends string>(touch: TouchController<K>, deviceKey: K) =>\n async () =>\n await tapQuick(touch, deviceKey)({ x: 50, y: 90 });\n"],
5
+ "mappings": "AAGA,MAAMA,EAAmB,IAEZC,EACX,CAAmBC,EAA2BC,IAC9C,MAAOC,EAA2BC,EAAkBL,IAAqB,CACvE,MAAME,EAAM,IAAIC,EAAWC,CAAK,EAChC,MAAM,IAAI,QAASE,GAAM,WAAWA,EAAGD,CAAO,CAAC,EAC/C,MAAMH,EAAM,QAAQC,EAAWC,CAAK,CACtC,EAEWG,EACX,CAAmBL,EAA2BC,IAC9C,MAAOC,GACL,MAAMF,EAAM,cAAcC,EAAWC,CAAK,EAEjCI,EACX,CAAmBN,EAA2BC,IAC9C,SACE,MAAMF,EAAQC,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAEvCM,EACX,CAAmBP,EAA2BC,IAC9C,SACE,MAAMI,EAASL,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCO,EACX,CAAmBR,EAA2BC,IAC9C,SACE,MAAMI,EAASL,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCQ,EACX,CAAmBT,EAA2BC,IAC9C,SACE,MAAMI,EAASL,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCS,EACX,CAAmBV,EAA2BC,IAC9C,SACE,MAAMI,EAASL,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC,EAExCU,EACX,CAAmBX,EAA2BC,IAC9C,SACE,MAAMI,EAASL,EAAOC,CAAS,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,CAAC",
6
+ "names": ["TAP_LONG_TIME_MS", "tapLong", "touch", "deviceKey", "point", "delayMs", "r", "tapQuick", "sign", "reject", "navigateNext", "navigatePrevious", "mainButton", "secondaryButton"]
7
7
  }
@@ -9,6 +9,12 @@ export type ButtonFactory = () => ButtonController & {
9
9
  export type TapFactory = (deviceKey: string) => {
10
10
  tapQuick: (point: PercentCoordinates) => Promise<void>;
11
11
  tapLong: (point: PercentCoordinates) => Promise<void>;
12
+ sign: () => Promise<void>;
13
+ reject: () => Promise<void>;
14
+ navigateNext: () => Promise<void>;
15
+ navigatePrevious: () => Promise<void>;
16
+ mainButton: () => Promise<void>;
17
+ secondaryButton: () => Promise<void>;
12
18
  };
13
19
  export type DeviceControllerClientFactory = (baseURL: string, opts?: {
14
20
  timeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceController.d.ts","sourceRoot":"","sources":["../../../../src/api/DeviceController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,MAAM,aAAa,GAAG,MAAM,gBAAgB,GAAG;IACnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK;IAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjC,KACE,sBAAsB,CAAC;AAE5B,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,6BA0B3C,CAAC;AAEF,YAAY,EACV,SAAS,EACT,uBAAuB,EACvB,aAAa,EACb,kBAAkB,GACnB,CAAC"}
1
+ {"version":3,"file":"DeviceController.d.ts","sourceRoot":"","sources":["../../../../src/api/DeviceController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAiB9B,MAAM,MAAM,aAAa,GAAG,MAAM,gBAAgB,GAAG;IACnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK;IAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjC,KACE,sBAAsB,CAAC;AAE5B,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,6BAgC3C,CAAC;AAEF,YAAY,EACV,SAAS,EACT,uBAAuB,EACvB,aAAa,EACb,kBAAkB,GACnB,CAAC"}
@@ -2,4 +2,10 @@ import type { PercentCoordinates } from "../core/types";
2
2
  import { type TouchController } from "../../../src/internal/core/TouchController";
3
3
  export declare const tapLong: <K extends string>(touch: TouchController<K>, deviceKey: K) => (point: PercentCoordinates, delayMs?: number) => Promise<void>;
4
4
  export declare const tapQuick: <K extends string>(touch: TouchController<K>, deviceKey: K) => (point: PercentCoordinates) => Promise<void>;
5
+ export declare const sign: <K extends string>(touch: TouchController<K>, deviceKey: K) => () => Promise<void>;
6
+ export declare const reject: <K extends string>(touch: TouchController<K>, deviceKey: K) => () => Promise<void>;
7
+ export declare const navigateNext: <K extends string>(touch: TouchController<K>, deviceKey: K) => () => Promise<void>;
8
+ export declare const navigatePrevious: <K extends string>(touch: TouchController<K>, deviceKey: K) => () => Promise<void>;
9
+ export declare const mainButton: <K extends string>(touch: TouchController<K>, deviceKey: K) => () => Promise<void>;
10
+ export declare const secondaryButton: <K extends string>(touch: TouchController<K>, deviceKey: K) => () => Promise<void>;
5
11
  //# sourceMappingURL=touchUseCases.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"touchUseCases.d.ts","sourceRoot":"","sources":["../../../../../src/internal/use-cases/touchUseCases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI/E,eAAO,MAAM,OAAO,GACjB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MACnD,OAAO,kBAAkB,EAAE,UAAS,MAAyB,kBAInE,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAClB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MACnD,OAAO,kBAAkB,kBACa,CAAC"}
1
+ {"version":3,"file":"touchUseCases.d.ts","sourceRoot":"","sources":["../../../../../src/internal/use-cases/touchUseCases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI/E,eAAO,MAAM,OAAO,GACjB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MACnD,OAAO,kBAAkB,EAAE,UAAS,MAAyB,kBAInE,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAClB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MACnD,OAAO,kBAAkB,kBACa,CAAC;AAEhD,eAAO,MAAM,IAAI,GACd,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,wBAEP,CAAC;AAEtD,eAAO,MAAM,MAAM,GAChB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,wBAEN,CAAC;AAEvD,eAAO,MAAM,YAAY,GACtB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,wBAEN,CAAC;AAEvD,eAAO,MAAM,gBAAgB,GAC1B,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,wBAEN,CAAC;AAEvD,eAAO,MAAM,UAAU,GACpB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,wBAEN,CAAC;AAEvD,eAAO,MAAM,eAAe,GACzB,CAAC,SAAS,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,wBAEN,CAAC"}