@ledgerhq/speculos-device-controller 0.0.0-speculos-transport-and-device-controller-20251016095459 → 0.0.0-speculos-transport-and-device-controller-20251021081257
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/README.md +40 -45
- package/lib/cjs/package.json +3 -6
- package/lib/cjs/src/api/DeviceController.js +1 -1
- package/lib/cjs/src/api/DeviceController.js.map +3 -3
- package/lib/cjs/src/api/DeviceController.test.js +2 -0
- package/lib/cjs/src/api/DeviceController.test.js.map +7 -0
- package/lib/cjs/src/index.js +1 -1
- package/lib/cjs/src/index.js.map +3 -3
- package/lib/cjs/src/internal/adapters/AxiosButtonController.js +1 -1
- package/lib/cjs/src/internal/adapters/AxiosButtonController.js.map +3 -3
- package/lib/cjs/src/internal/adapters/AxiosButtonController.test.js +2 -0
- package/lib/cjs/src/internal/adapters/AxiosButtonController.test.js.map +7 -0
- package/lib/cjs/src/internal/adapters/AxiosTouchController.js +1 -1
- package/lib/cjs/src/internal/adapters/AxiosTouchController.js.map +3 -3
- package/lib/cjs/src/internal/adapters/AxiosTouchController.test.js +2 -0
- package/lib/cjs/src/internal/adapters/AxiosTouchController.test.js.map +7 -0
- package/lib/cjs/src/internal/config/defaultScreens.js +1 -1
- package/lib/cjs/src/internal/config/defaultScreens.js.map +3 -3
- package/lib/cjs/src/internal/core/ITouchController.js +1 -1
- package/lib/cjs/src/internal/core/ITouchController.js.map +1 -1
- package/lib/cjs/src/internal/core/types.js +1 -1
- package/lib/cjs/src/internal/core/types.js.map +3 -3
- package/lib/cjs/src/internal/di.js +1 -1
- package/lib/cjs/src/internal/di.js.map +3 -3
- package/lib/cjs/src/internal/di.test.js +2 -0
- package/lib/cjs/src/internal/di.test.js.map +7 -0
- package/lib/cjs/src/internal/{usecases/buttonUsecases.js → use-cases/buttonUseCases.js} +1 -1
- package/lib/cjs/src/internal/{usecases/buttonUsecases.js.map → use-cases/buttonUseCases.js.map} +2 -2
- package/lib/cjs/src/internal/use-cases/buttonUseCases.test.js +2 -0
- package/lib/cjs/src/internal/use-cases/buttonUseCases.test.js.map +7 -0
- package/lib/cjs/src/internal/use-cases/touchUseCases.js +2 -0
- package/lib/cjs/src/internal/use-cases/touchUseCases.js.map +7 -0
- package/lib/cjs/src/internal/use-cases/touchUseCases.test.js +2 -0
- package/lib/cjs/src/internal/use-cases/touchUseCases.test.js.map +7 -0
- package/lib/cjs/src/internal/utils/axisClamp.js +1 -1
- package/lib/cjs/src/internal/utils/axisClamp.js.map +3 -3
- package/lib/cjs/src/internal/utils/axisClamp.test.js +2 -0
- package/lib/cjs/src/internal/utils/axisClamp.test.js.map +7 -0
- package/lib/esm/package.json +3 -6
- package/lib/esm/src/api/DeviceController.js +1 -1
- package/lib/esm/src/api/DeviceController.js.map +3 -3
- package/lib/esm/src/api/DeviceController.test.js +2 -0
- package/lib/esm/src/api/DeviceController.test.js.map +7 -0
- package/lib/esm/src/index.js +1 -1
- package/lib/esm/src/index.js.map +2 -2
- package/lib/esm/src/internal/adapters/AxiosButtonController.js +1 -1
- package/lib/esm/src/internal/adapters/AxiosButtonController.js.map +3 -3
- package/lib/esm/src/internal/adapters/AxiosButtonController.test.js +2 -0
- package/lib/esm/src/internal/adapters/AxiosButtonController.test.js.map +7 -0
- package/lib/esm/src/internal/adapters/AxiosTouchController.js +1 -1
- package/lib/esm/src/internal/adapters/AxiosTouchController.js.map +3 -3
- package/lib/esm/src/internal/adapters/AxiosTouchController.test.js +2 -0
- package/lib/esm/src/internal/adapters/AxiosTouchController.test.js.map +7 -0
- package/lib/esm/src/internal/config/defaultScreens.js +1 -1
- package/lib/esm/src/internal/config/defaultScreens.js.map +3 -3
- package/lib/esm/src/internal/core/types.js +1 -0
- package/lib/esm/src/internal/core/types.js.map +4 -4
- package/lib/esm/src/internal/di.js +1 -1
- package/lib/esm/src/internal/di.js.map +3 -3
- package/lib/esm/src/internal/di.test.js +2 -0
- package/lib/esm/src/internal/di.test.js.map +7 -0
- package/lib/esm/src/internal/{usecases/buttonUsecases.js → use-cases/buttonUseCases.js} +1 -1
- package/lib/esm/src/internal/{usecases/buttonUsecases.js.map → use-cases/buttonUseCases.js.map} +1 -1
- package/lib/esm/src/internal/use-cases/buttonUseCases.test.js +2 -0
- package/lib/esm/src/internal/use-cases/buttonUseCases.test.js.map +7 -0
- package/lib/esm/src/internal/use-cases/touchUseCases.js +2 -0
- package/lib/esm/src/internal/use-cases/touchUseCases.js.map +7 -0
- package/lib/esm/src/internal/use-cases/touchUseCases.test.js +2 -0
- package/lib/esm/src/internal/use-cases/touchUseCases.test.js.map +7 -0
- package/lib/esm/src/internal/utils/axisClamp.js +1 -1
- package/lib/esm/src/internal/utils/axisClamp.js.map +3 -3
- package/lib/esm/src/internal/utils/axisClamp.test.js +2 -0
- package/lib/esm/src/internal/utils/axisClamp.test.js.map +7 -0
- package/lib/types/src/api/DeviceController.d.ts +12 -14
- package/lib/types/src/api/DeviceController.d.ts.map +1 -1
- package/lib/types/src/api/DeviceController.test.d.ts +2 -0
- package/lib/types/src/api/DeviceController.test.d.ts.map +1 -0
- package/lib/types/src/index.d.ts +0 -1
- package/lib/types/src/index.d.ts.map +1 -1
- package/lib/types/src/internal/adapters/AxiosButtonController.d.ts +2 -3
- package/lib/types/src/internal/adapters/AxiosButtonController.d.ts.map +1 -1
- package/lib/types/src/internal/adapters/AxiosButtonController.test.d.ts +2 -0
- package/lib/types/src/internal/adapters/AxiosButtonController.test.d.ts.map +1 -0
- package/lib/types/src/internal/adapters/AxiosTouchController.d.ts +7 -6
- package/lib/types/src/internal/adapters/AxiosTouchController.d.ts.map +1 -1
- package/lib/types/src/internal/adapters/AxiosTouchController.test.d.ts +2 -0
- package/lib/types/src/internal/adapters/AxiosTouchController.test.d.ts.map +1 -0
- package/lib/types/src/internal/config/defaultScreens.d.ts +4 -4
- package/lib/types/src/internal/config/defaultScreens.d.ts.map +1 -1
- package/lib/types/src/internal/core/ITouchController.d.ts +4 -4
- package/lib/types/src/internal/core/ITouchController.d.ts.map +1 -1
- package/lib/types/src/internal/core/types.d.ts +7 -2
- package/lib/types/src/internal/core/types.d.ts.map +1 -1
- package/lib/types/src/internal/di.d.ts +7 -2
- package/lib/types/src/internal/di.d.ts.map +1 -1
- package/lib/types/src/internal/di.test.d.ts +2 -0
- package/lib/types/src/internal/di.test.d.ts.map +1 -0
- package/lib/types/src/internal/{usecases/buttonUsecases.d.ts → use-cases/buttonUseCases.d.ts} +1 -1
- package/lib/types/src/internal/use-cases/buttonUseCases.d.ts.map +1 -0
- package/lib/types/src/internal/use-cases/buttonUseCases.test.d.ts +2 -0
- package/lib/types/src/internal/use-cases/buttonUseCases.test.d.ts.map +1 -0
- package/lib/types/src/internal/use-cases/touchUseCases.d.ts +5 -0
- package/lib/types/src/internal/use-cases/touchUseCases.d.ts.map +1 -0
- package/lib/types/src/internal/use-cases/touchUseCases.test.d.ts +2 -0
- package/lib/types/src/internal/use-cases/touchUseCases.test.d.ts.map +1 -0
- package/lib/types/src/internal/utils/axisClamp.test.d.ts +2 -0
- package/lib/types/src/internal/utils/axisClamp.test.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +2 -5
- package/lib/cjs/src/internal/core/speculosDeviceControllerTypes.js +0 -2
- package/lib/cjs/src/internal/core/speculosDeviceControllerTypes.js.map +0 -7
- package/lib/cjs/src/internal/usecases/touchUsecases.js +0 -2
- package/lib/cjs/src/internal/usecases/touchUsecases.js.map +0 -7
- package/lib/esm/src/internal/core/speculosDeviceControllerTypes.js +0 -2
- package/lib/esm/src/internal/core/speculosDeviceControllerTypes.js.map +0 -7
- package/lib/esm/src/internal/usecases/touchUsecases.js +0 -2
- package/lib/esm/src/internal/usecases/touchUsecases.js.map +0 -7
- package/lib/types/src/internal/core/speculosDeviceControllerTypes.d.ts +0 -7
- package/lib/types/src/internal/core/speculosDeviceControllerTypes.d.ts.map +0 -1
- package/lib/types/src/internal/usecases/buttonUsecases.d.ts.map +0 -1
- package/lib/types/src/internal/usecases/touchUsecases.d.ts +0 -5
- package/lib/types/src/internal/usecases/touchUsecases.d.ts.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createAxes as o,createAxis as s,createVH as x,createVW as a}from"./axisClamp";const e=t=>t;describe("axisClamp helpers",()=>{describe("createVW",()=>{it("floors and clamps to [0, width]",()=>{const t=a(200);expect(t(e(0))).toBe(0),expect(t(e(50))).toBe(100),expect(t(e(50.4))).toBe(100),expect(t(e(50.5))).toBe(101),expect(t(e(100))).toBe(200),expect(t(e(150))).toBe(200),expect(t(e(-10))).toBe(0)})}),describe("createVH",()=>{it("floors and clamps to [0, height]",()=>{const t=x(123);expect(t(e(0))).toBe(0),expect(t(e(33.3))).toBe(Math.floor(123*.333)),expect(t(e(100))).toBe(123),expect(t(e(999))).toBe(123),expect(t(e(-5))).toBe(0)})}),describe("createAxis",()=>{it("exposes vw, vh and xy with consistent flooring + clamping",()=>{const t=s(300,200);expect(t.vw(e(25))).toBe(75),expect(t.vh(e(75))).toBe(150),expect(t.xy(e(10),e(90))).toEqual({x:30,y:180}),expect(t.xy(e(150),e(-20))).toEqual({x:300,y:0});const c=t.xy(e(33.4),e(66.6));expect(c.x).toBe(Math.floor(300*.334)),expect(c.y).toBe(Math.floor(200*.666))})}),describe("createAxes",()=>{it("creates an AxisMap for all device keys with matching dimensions",()=>{const c=o({devA:{width:200,height:100},devB:{width:320,height:480}});expect(Object.keys(c).sort()).toEqual(["devA","devB"]),expect(c.devA.vw(e(100))).toBe(200),expect(c.devA.vh(e(100))).toBe(100),expect(c.devA.xy(e(120),e(-10))).toEqual({x:200,y:0}),expect(c.devB.vw(e(50))).toBe(160),expect(c.devB.vh(e(50))).toBe(240),expect(c.devB.xy(e(33.3),e(66.7))).toEqual({x:Math.floor(320*.333),y:Math.floor(480*.667)})})})});
|
|
2
|
+
//# sourceMappingURL=axisClamp.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/utils/axisClamp.test.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport type { DeviceScreens, Percent } from \"@internal/core/types\";\n\nimport {\n type AxisMap,\n createAxes,\n createAxis,\n createVH,\n createVW,\n} from \"./axisClamp\";\n\nconst p = (n: number) => n as unknown as Percent;\n\ndescribe(\"axisClamp helpers\", () => {\n describe(\"createVW\", () => {\n it(\"floors and clamps to [0, width]\", () => {\n const vw = createVW(200);\n\n expect(vw(p(0))).toBe(0);\n expect(vw(p(50))).toBe(100); // 200 * 0.5 = 100\n expect(vw(p(50.4))).toBe(100); // floor(200 * 0.504) = 100\n expect(vw(p(50.5))).toBe(101); // floor(200 * 0.505) = 101\n expect(vw(p(100))).toBe(200);\n expect(vw(p(150))).toBe(200); // clamped\n expect(vw(p(-10))).toBe(0); // clamped\n });\n });\n\n describe(\"createVH\", () => {\n it(\"floors and clamps to [0, height]\", () => {\n const vh = createVH(123);\n\n expect(vh(p(0))).toBe(0);\n expect(vh(p(33.3))).toBe(Math.floor(123 * 0.333)); // flooring check\n expect(vh(p(100))).toBe(123);\n expect(vh(p(999))).toBe(123); // clamped\n expect(vh(p(-5))).toBe(0); // clamped\n });\n });\n\n describe(\"createAxis\", () => {\n it(\"exposes vw, vh and xy with consistent flooring + clamping\", () => {\n const axis = createAxis(300, 200);\n\n // vw / vh\n expect(axis.vw(p(25))).toBe(75); // 300 * 0.25\n expect(axis.vh(p(75))).toBe(150); // 200 * 0.75\n\n // xy nominal\n expect(axis.xy(p(10), p(90))).toEqual({ x: 30, y: 180 });\n\n // xy clamps both axes\n expect(axis.xy(p(150), p(-20))).toEqual({ x: 300, y: 0 });\n\n // flooring behavior with fractional percent\n const xy = axis.xy(p(33.4), p(66.6));\n expect(xy.x).toBe(Math.floor(300 * 0.334));\n expect(xy.y).toBe(Math.floor(200 * 0.666));\n });\n });\n\n describe(\"createAxes\", () => {\n it(\"creates an AxisMap for all device keys with matching dimensions\", () => {\n const screens: DeviceScreens<\"devA\" | \"devB\"> = {\n devA: { width: 200, height: 100 } as any,\n devB: { width: 320, height: 480 } as any,\n };\n\n const axes: AxisMap<\"devA\" | \"devB\"> = createAxes(screens);\n\n // contains both keys\n expect(Object.keys(axes).sort()).toEqual([\"devA\", \"devB\"]);\n\n // devA\n expect(axes.devA.vw(p(100))).toBe(200);\n expect(axes.devA.vh(p(100))).toBe(100);\n expect(axes.devA.xy(p(120), p(-10))).toEqual({ x: 200, y: 0 });\n\n // devB\n expect(axes.devB.vw(p(50))).toBe(160);\n expect(axes.devB.vh(p(50))).toBe(240);\n expect(axes.devB.xy(p(33.3), p(66.7))).toEqual({\n x: Math.floor(320 * 0.333),\n y: Math.floor(480 * 0.667),\n });\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createAxes", "createAxis", "createVH", "createVW", "p", "n", "vw", "vh", "axis", "xy", "axes"]
|
|
7
|
+
}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import type { IButtonController } from "../internal/core/IButtonController";
|
|
2
|
-
import type { ButtonKey, DeviceControllerOptions, DeviceScreens,
|
|
3
|
-
export type
|
|
2
|
+
import type { ButtonKey, DeviceControllerOptions, DeviceScreens, PercentCoordinates } from "../internal/core/types";
|
|
3
|
+
export type ButtonFactory = () => IButtonController & {
|
|
4
4
|
left(): Promise<void>;
|
|
5
5
|
right(): Promise<void>;
|
|
6
6
|
both(): Promise<void>;
|
|
7
7
|
pressSequence(keys: ButtonKey[], delayMs?: number): Promise<void>;
|
|
8
8
|
};
|
|
9
|
-
export type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
tapLong: (point: PercentPoint) => Promise<void>;
|
|
13
|
-
};
|
|
9
|
+
export type TapFactory = (deviceKey: string) => {
|
|
10
|
+
tapQuick: (point: PercentCoordinates) => Promise<void>;
|
|
11
|
+
tapLong: (point: PercentCoordinates) => Promise<void>;
|
|
14
12
|
};
|
|
15
|
-
export type
|
|
16
|
-
button: ButtonAPI;
|
|
17
|
-
touch: TouchAPI;
|
|
18
|
-
};
|
|
19
|
-
type BaseOpts = {
|
|
13
|
+
export type DeviceControllerClientFactory = (baseURL: string, opts?: {
|
|
20
14
|
timeoutMs?: number;
|
|
21
15
|
clientHeader?: string;
|
|
22
16
|
screens?: DeviceScreens<string>;
|
|
17
|
+
}) => DeviceControllerClient;
|
|
18
|
+
export type DeviceControllerClient = {
|
|
19
|
+
buttonFactory: ButtonFactory;
|
|
20
|
+
tapFactory: TapFactory;
|
|
23
21
|
};
|
|
24
|
-
export declare
|
|
25
|
-
export type { ButtonKey, DeviceControllerOptions, DeviceScreens,
|
|
22
|
+
export declare const deviceControllerClientFactory: DeviceControllerClientFactory;
|
|
23
|
+
export type { ButtonKey, DeviceControllerOptions, DeviceScreens, PercentCoordinates, };
|
|
26
24
|
//# sourceMappingURL=DeviceController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceController.d.ts","sourceRoot":"","sources":["../../../../src/api/DeviceController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"DeviceController.d.ts","sourceRoot":"","sources":["../../../../src/api/DeviceController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,MAAM,aAAa,GAAG,MAAM,iBAAiB,GAAG;IACpD,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceController.test.d.ts","sourceRoot":"","sources":["../../../../src/api/DeviceController.test.ts"],"names":[],"mappings":""}
|
package/lib/types/src/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { AxiosInstance } from "axios";
|
|
2
2
|
import type { IButtonController } from "../core/IButtonController";
|
|
3
|
-
import type
|
|
3
|
+
import { type ButtonKey } from "../core/types";
|
|
4
4
|
export declare class AxiosButtonController implements IButtonController {
|
|
5
5
|
private readonly client;
|
|
6
6
|
constructor(client: AxiosInstance);
|
|
7
|
-
|
|
8
|
-
press(but: ButtonKey): Promise<void>;
|
|
7
|
+
press(key: ButtonKey): Promise<void>;
|
|
9
8
|
}
|
|
10
9
|
//# sourceMappingURL=AxiosButtonController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxiosButtonController.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapters/AxiosButtonController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AxiosButtonController.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapters/AxiosButtonController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAEvE,qBAAa,qBAAsB,YAAW,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxiosButtonController.test.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapters/AxiosButtonController.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { AxiosInstance } from "axios";
|
|
2
2
|
import type { ITouchController } from "../core/ITouchController";
|
|
3
|
-
import type
|
|
3
|
+
import { type PercentCoordinates } from "../core/types";
|
|
4
4
|
import type { AxisMap } from "../utils/axisClamp";
|
|
5
|
-
export declare class AxiosTouchController implements ITouchController<
|
|
5
|
+
export declare class AxiosTouchController<K extends string> implements ITouchController<K> {
|
|
6
6
|
private readonly client;
|
|
7
7
|
private readonly axes;
|
|
8
|
-
constructor(client: AxiosInstance, axes: AxisMap<
|
|
8
|
+
constructor(client: AxiosInstance, axes: AxisMap<K>);
|
|
9
|
+
private assertPercentPoint;
|
|
9
10
|
private toAbs;
|
|
10
|
-
tapAndRelease(deviceKey:
|
|
11
|
-
tap(deviceKey:
|
|
12
|
-
release(deviceKey:
|
|
11
|
+
tapAndRelease(deviceKey: K, point: PercentCoordinates): Promise<void>;
|
|
12
|
+
tap(deviceKey: K, point: PercentCoordinates): Promise<void>;
|
|
13
|
+
release(deviceKey: K, point: PercentCoordinates): Promise<void>;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=AxiosTouchController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxiosTouchController.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapters/AxiosTouchController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AxiosTouchController.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapters/AxiosTouchController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAChD,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAG5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAGnC,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,KAAK;IAYP,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAOtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxiosTouchController.test.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapters/AxiosTouchController.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const DEFAULT_SCREENS: {
|
|
2
2
|
readonly flex: {
|
|
3
|
-
readonly width:
|
|
4
|
-
readonly height:
|
|
3
|
+
readonly width: 480;
|
|
4
|
+
readonly height: 600;
|
|
5
5
|
};
|
|
6
6
|
readonly stax: {
|
|
7
|
-
readonly width:
|
|
8
|
-
readonly height:
|
|
7
|
+
readonly width: 400;
|
|
8
|
+
readonly height: 672;
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
export type DefaultDeviceKey = keyof typeof DEFAULT_SCREENS & string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultScreens.d.ts","sourceRoot":"","sources":["../../../../../src/internal/config/defaultScreens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaultScreens.d.ts","sourceRoot":"","sources":["../../../../../src/internal/config/defaultScreens.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;CAGlB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,eAAe,GAAG,MAAM,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PercentCoordinates } from "./types";
|
|
2
2
|
export interface ITouchController<K extends string = string> {
|
|
3
|
-
tapAndRelease: (deviceKey: K, point:
|
|
4
|
-
tap: (deviceKey: K, point:
|
|
5
|
-
release: (deviceKey: K, point:
|
|
3
|
+
tapAndRelease: (deviceKey: K, point: PercentCoordinates) => Promise<void>;
|
|
4
|
+
tap: (deviceKey: K, point: PercentCoordinates) => Promise<void>;
|
|
5
|
+
release: (deviceKey: K, point: PercentCoordinates) => Promise<void>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=ITouchController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITouchController.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/ITouchController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ITouchController.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/ITouchController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACzD,aAAa,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ButtonKey = "
|
|
1
|
+
export type ButtonKey = "left" | "right" | "both";
|
|
2
2
|
export type ScreenSpec = Readonly<{
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
@@ -6,7 +6,7 @@ export type ScreenSpec = Readonly<{
|
|
|
6
6
|
export type DeviceScreens<K extends string = string> = Readonly<Record<K, ScreenSpec>>;
|
|
7
7
|
export type Range<N extends number, Acc extends number[] = []> = Acc["length"] extends N ? Acc[number] : Range<N, [...Acc, Acc["length"]]>;
|
|
8
8
|
export type Percent = Range<101>;
|
|
9
|
-
export type
|
|
9
|
+
export type PercentCoordinates = {
|
|
10
10
|
x: Percent;
|
|
11
11
|
y: Percent;
|
|
12
12
|
};
|
|
@@ -15,4 +15,9 @@ export type DeviceControllerOptions<K extends string = string> = {
|
|
|
15
15
|
clientHeader?: string;
|
|
16
16
|
screens: DeviceScreens<K>;
|
|
17
17
|
};
|
|
18
|
+
export declare enum SpeculosActions {
|
|
19
|
+
PRESS = "press",
|
|
20
|
+
RELEASE = "release",
|
|
21
|
+
PRESS_AND_RELEASE = "press-and-release"
|
|
22
|
+
}
|
|
18
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAErE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAC7D,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CACtB,CAAC;AAEF,MAAM,MAAM,KAAK,CACf,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9E,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAEF,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,iBAAiB,sBAAsB;CACxC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { IButtonController } from "./core/IButtonController";
|
|
2
|
+
import type { ITouchController } from "./core/ITouchController";
|
|
2
3
|
import type { DeviceControllerOptions } from "./core/types";
|
|
3
|
-
export
|
|
4
|
+
export type ControllersContainer = {
|
|
5
|
+
buttons: IButtonController;
|
|
6
|
+
touch: ITouchController;
|
|
7
|
+
};
|
|
8
|
+
export declare function createDefaultControllers(baseURL: string, opts: DeviceControllerOptions): ControllersContainer;
|
|
4
9
|
//# sourceMappingURL=di.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../../src/internal/di.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../../src/internal/di.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAKpE,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,uBAAuB,GAC5B,oBAAoB,CAgBtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"di.test.d.ts","sourceRoot":"","sources":["../../../../src/internal/di.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttonUseCases.d.ts","sourceRoot":"","sources":["../../../../../src/internal/use-cases/buttonUseCases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,SAAS,EAAE,EACjB,OAAO,SAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG;IACxD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAMA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttonUseCases.test.d.ts","sourceRoot":"","sources":["../../../../../src/internal/use-cases/buttonUseCases.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ITouchController } from "../core/ITouchController";
|
|
2
|
+
import type { PercentCoordinates } from "../core/types";
|
|
3
|
+
export declare const tapLong: <K extends string>(touch: ITouchController<K>, deviceKey: K) => (point: PercentCoordinates, delayMs?: number) => Promise<void>;
|
|
4
|
+
export declare const tapQuick: <K extends string>(touch: ITouchController<K>, deviceKey: K) => (point: PercentCoordinates) => Promise<void>;
|
|
5
|
+
//# sourceMappingURL=touchUseCases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touchUseCases.d.ts","sourceRoot":"","sources":["../../../../../src/internal/use-cases/touchUseCases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,eAAO,MAAM,OAAO,GACjB,CAAC,SAAS,MAAM,EAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MACpD,OAAO,kBAAkB,EAAE,UAAS,MAAyB,kBAInE,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAClB,CAAC,SAAS,MAAM,EAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MACpD,OAAO,kBAAkB,kBACa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touchUseCases.test.d.ts","sourceRoot":"","sources":["../../../../../src/internal/use-cases/touchUseCases.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axisClamp.test.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/axisClamp.test.ts"],"names":[],"mappings":""}
|