@ledgerhq/device-mockserver-react 0.0.0-develop-20260930001543

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/LICENSE.MD +202 -0
  2. package/README.md +45 -0
  3. package/lib/cjs/index.js +2 -0
  4. package/lib/cjs/index.js.map +7 -0
  5. package/lib/cjs/package.json +67 -0
  6. package/lib/cjs/src/DeviceOsInfo.js +2 -0
  7. package/lib/cjs/src/DeviceOsInfo.js.map +7 -0
  8. package/lib/cjs/src/DeviceOsInfo.test.js +2 -0
  9. package/lib/cjs/src/DeviceOsInfo.test.js.map +7 -0
  10. package/lib/cjs/src/DeviceScreen.js +2 -0
  11. package/lib/cjs/src/DeviceScreen.js.map +7 -0
  12. package/lib/cjs/src/DeviceScreen.test.js +2 -0
  13. package/lib/cjs/src/DeviceScreen.test.js.map +7 -0
  14. package/lib/cjs/src/DeviceScreenButtons.js +2 -0
  15. package/lib/cjs/src/DeviceScreenButtons.js.map +7 -0
  16. package/lib/cjs/src/DeviceScreenButtons.test.js +2 -0
  17. package/lib/cjs/src/DeviceScreenButtons.test.js.map +7 -0
  18. package/lib/cjs/src/DeviceScreenImage.js +2 -0
  19. package/lib/cjs/src/DeviceScreenImage.js.map +7 -0
  20. package/lib/cjs/src/DeviceScreenImage.test.js +2 -0
  21. package/lib/cjs/src/DeviceScreenImage.test.js.map +7 -0
  22. package/lib/cjs/src/MockServerDevice.js +2 -0
  23. package/lib/cjs/src/MockServerDevice.js.map +7 -0
  24. package/lib/cjs/src/MockServerDevice.test.js +2 -0
  25. package/lib/cjs/src/MockServerDevice.test.js.map +7 -0
  26. package/lib/cjs/src/ScreenFrame.js +2 -0
  27. package/lib/cjs/src/ScreenFrame.js.map +7 -0
  28. package/lib/cjs/src/deviceModels.js +2 -0
  29. package/lib/cjs/src/deviceModels.js.map +7 -0
  30. package/lib/cjs/src/deviceModels.test.js +2 -0
  31. package/lib/cjs/src/deviceModels.test.js.map +7 -0
  32. package/lib/cjs/src/index.js +2 -0
  33. package/lib/cjs/src/index.js.map +7 -0
  34. package/lib/cjs/src/mockServerScreenApi.js +2 -0
  35. package/lib/cjs/src/mockServerScreenApi.js.map +7 -0
  36. package/lib/cjs/src/mockServerScreenApi.test.js +2 -0
  37. package/lib/cjs/src/mockServerScreenApi.test.js.map +7 -0
  38. package/lib/cjs/src/types.js +2 -0
  39. package/lib/cjs/src/types.js.map +7 -0
  40. package/lib/cjs/src/useMockServerDevice.js +2 -0
  41. package/lib/cjs/src/useMockServerDevice.js.map +7 -0
  42. package/lib/cjs/src/useMockServerDevice.test.js +2 -0
  43. package/lib/cjs/src/useMockServerDevice.test.js.map +7 -0
  44. package/lib/cjs/src/useScreenPolling.js +2 -0
  45. package/lib/cjs/src/useScreenPolling.js.map +7 -0
  46. package/lib/esm/index.js +2 -0
  47. package/lib/esm/index.js.map +7 -0
  48. package/lib/esm/package.json +67 -0
  49. package/lib/esm/src/DeviceOsInfo.js +2 -0
  50. package/lib/esm/src/DeviceOsInfo.js.map +7 -0
  51. package/lib/esm/src/DeviceOsInfo.test.js +2 -0
  52. package/lib/esm/src/DeviceOsInfo.test.js.map +7 -0
  53. package/lib/esm/src/DeviceScreen.js +2 -0
  54. package/lib/esm/src/DeviceScreen.js.map +7 -0
  55. package/lib/esm/src/DeviceScreen.test.js +2 -0
  56. package/lib/esm/src/DeviceScreen.test.js.map +7 -0
  57. package/lib/esm/src/DeviceScreenButtons.js +2 -0
  58. package/lib/esm/src/DeviceScreenButtons.js.map +7 -0
  59. package/lib/esm/src/DeviceScreenButtons.test.js +2 -0
  60. package/lib/esm/src/DeviceScreenButtons.test.js.map +7 -0
  61. package/lib/esm/src/DeviceScreenImage.js +2 -0
  62. package/lib/esm/src/DeviceScreenImage.js.map +7 -0
  63. package/lib/esm/src/DeviceScreenImage.test.js +2 -0
  64. package/lib/esm/src/DeviceScreenImage.test.js.map +7 -0
  65. package/lib/esm/src/MockServerDevice.js +2 -0
  66. package/lib/esm/src/MockServerDevice.js.map +7 -0
  67. package/lib/esm/src/MockServerDevice.test.js +2 -0
  68. package/lib/esm/src/MockServerDevice.test.js.map +7 -0
  69. package/lib/esm/src/ScreenFrame.js +2 -0
  70. package/lib/esm/src/ScreenFrame.js.map +7 -0
  71. package/lib/esm/src/deviceModels.js +2 -0
  72. package/lib/esm/src/deviceModels.js.map +7 -0
  73. package/lib/esm/src/deviceModels.test.js +2 -0
  74. package/lib/esm/src/deviceModels.test.js.map +7 -0
  75. package/lib/esm/src/index.js +2 -0
  76. package/lib/esm/src/index.js.map +7 -0
  77. package/lib/esm/src/mockServerScreenApi.js +2 -0
  78. package/lib/esm/src/mockServerScreenApi.js.map +7 -0
  79. package/lib/esm/src/mockServerScreenApi.test.js +2 -0
  80. package/lib/esm/src/mockServerScreenApi.test.js.map +7 -0
  81. package/lib/esm/src/types.js +1 -0
  82. package/lib/esm/src/types.js.map +7 -0
  83. package/lib/esm/src/useMockServerDevice.js +2 -0
  84. package/lib/esm/src/useMockServerDevice.js.map +7 -0
  85. package/lib/esm/src/useMockServerDevice.test.js +2 -0
  86. package/lib/esm/src/useMockServerDevice.test.js.map +7 -0
  87. package/lib/esm/src/useScreenPolling.js +2 -0
  88. package/lib/esm/src/useScreenPolling.js.map +7 -0
  89. package/lib/types/index.d.ts +2 -0
  90. package/lib/types/index.d.ts.map +1 -0
  91. package/lib/types/src/DeviceOsInfo.d.ts +12 -0
  92. package/lib/types/src/DeviceOsInfo.d.ts.map +1 -0
  93. package/lib/types/src/DeviceOsInfo.test.d.ts +2 -0
  94. package/lib/types/src/DeviceOsInfo.test.d.ts.map +1 -0
  95. package/lib/types/src/DeviceScreen.d.ts +17 -0
  96. package/lib/types/src/DeviceScreen.d.ts.map +1 -0
  97. package/lib/types/src/DeviceScreen.test.d.ts +2 -0
  98. package/lib/types/src/DeviceScreen.test.d.ts.map +1 -0
  99. package/lib/types/src/DeviceScreenButtons.d.ts +8 -0
  100. package/lib/types/src/DeviceScreenButtons.d.ts.map +1 -0
  101. package/lib/types/src/DeviceScreenButtons.test.d.ts +2 -0
  102. package/lib/types/src/DeviceScreenButtons.test.d.ts.map +1 -0
  103. package/lib/types/src/DeviceScreenImage.d.ts +10 -0
  104. package/lib/types/src/DeviceScreenImage.d.ts.map +1 -0
  105. package/lib/types/src/DeviceScreenImage.test.d.ts +2 -0
  106. package/lib/types/src/DeviceScreenImage.test.d.ts.map +1 -0
  107. package/lib/types/src/MockServerDevice.d.ts +10 -0
  108. package/lib/types/src/MockServerDevice.d.ts.map +1 -0
  109. package/lib/types/src/MockServerDevice.test.d.ts +2 -0
  110. package/lib/types/src/MockServerDevice.test.d.ts.map +1 -0
  111. package/lib/types/src/ScreenFrame.d.ts +12 -0
  112. package/lib/types/src/ScreenFrame.d.ts.map +1 -0
  113. package/lib/types/src/deviceModels.d.ts +14 -0
  114. package/lib/types/src/deviceModels.d.ts.map +1 -0
  115. package/lib/types/src/deviceModels.test.d.ts +2 -0
  116. package/lib/types/src/deviceModels.test.d.ts.map +1 -0
  117. package/lib/types/src/index.d.ts +7 -0
  118. package/lib/types/src/index.d.ts.map +1 -0
  119. package/lib/types/src/mockServerScreenApi.d.ts +4 -0
  120. package/lib/types/src/mockServerScreenApi.d.ts.map +1 -0
  121. package/lib/types/src/mockServerScreenApi.test.d.ts +2 -0
  122. package/lib/types/src/mockServerScreenApi.test.d.ts.map +1 -0
  123. package/lib/types/src/types.d.ts +41 -0
  124. package/lib/types/src/types.d.ts.map +1 -0
  125. package/lib/types/src/useMockServerDevice.d.ts +8 -0
  126. package/lib/types/src/useMockServerDevice.d.ts.map +1 -0
  127. package/lib/types/src/useMockServerDevice.test.d.ts +2 -0
  128. package/lib/types/src/useMockServerDevice.test.d.ts.map +1 -0
  129. package/lib/types/src/useScreenPolling.d.ts +3 -0
  130. package/lib/types/src/useScreenPolling.d.ts.map +1 -0
  131. package/lib/types/tsconfig.prod.tsbuildinfo +1 -0
  132. package/package.json +67 -0
  133. package/tailwind.css +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceModels.d.ts","sourceRoot":"","sources":["../../../src/deviceModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAQ,MAAM,kCAAkC,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAgDD,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,KAAG,iBAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deviceModels.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceModels.test.d.ts","sourceRoot":"","sources":["../../../src/deviceModels.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export { type DeviceScreenModel, findDeviceScreenModel } from "./deviceModels";
2
+ export { DeviceScreen, type DeviceScreenProps } from "./DeviceScreen";
3
+ export { MockServerDevice, type MockServerDeviceProps, } from "./MockServerDevice";
4
+ export { mockServerScreenApi } from "./mockServerScreenApi";
5
+ export type { DeviceScreenState, ScreenApi } from "./types";
6
+ export { useMockServerDevice } from "./useMockServerDevice";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type MockClient } from "@ledgerhq/device-mockserver-client";
2
+ import { type ScreenApi } from "./types";
3
+ export declare const mockServerScreenApi: (client: MockClient, deviceId: string) => ScreenApi;
4
+ //# sourceMappingURL=mockServerScreenApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockServerScreenApi.d.ts","sourceRoot":"","sources":["../../../src/mockServerScreenApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAMzC,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,UAAU,EAClB,UAAU,MAAM,KACf,SA8BD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mockServerScreenApi.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockServerScreenApi.test.d.ts","sourceRoot":"","sources":["../../../src/mockServerScreenApi.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { type Device, type SpeculosAction, type SpeculosButton } from "@ledgerhq/device-mockserver-client";
2
+ /**
3
+ * How the screen is reached. The mock server proxies to the Speculos instance
4
+ * backing a device and a Speculos transport talks to one directly, but both
5
+ * answer the same calls.
6
+ */
7
+ export interface ScreenApi {
8
+ /** Resolves null when there is no screen to capture right now. */
9
+ screenshot(): Promise<Blob | null>;
10
+ /** What to show while `screenshot` keeps resolving null. */
11
+ idle?(): Promise<DeviceScreenState>;
12
+ pressButton(button: SpeculosButton, action: SpeculosAction): Promise<void>;
13
+ /** Coordinates in device screen pixels. */
14
+ touch(x: number, y: number, action: SpeculosAction): Promise<void>;
15
+ /** Omitted by apis whose device always runs an app. */
16
+ openApp?(appName: string): Promise<void>;
17
+ }
18
+ /**
19
+ * Press and release are separate so a hold reaches the device as a hold: Stax
20
+ * and Flex gate their confirmations behind one.
21
+ */
22
+ export interface DeviceScreenInput {
23
+ pressButton(button: SpeculosButton, action: SpeculosAction): void;
24
+ touch(x: number, y: number, action: SpeculosAction): void;
25
+ }
26
+ export type DeviceScreenState = {
27
+ kind: "loading";
28
+ }
29
+ /** No app runs, so no Speculos instance: the device record stands in. */
30
+ | {
31
+ kind: "os-info";
32
+ device: Device;
33
+ } | {
34
+ kind: "image";
35
+ src: string;
36
+ input: DeviceScreenInput;
37
+ } | {
38
+ kind: "error";
39
+ message: string;
40
+ };
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,UAAU,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACnC,4DAA4D;IAC5D,IAAI,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,2CAA2C;IAC3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,uDAAuD;IACvD,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAClE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,yEAAyE;GACvE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type Device, type MockClient } from "@ledgerhq/device-mockserver-client";
2
+ /**
3
+ * The mock server's record of a device: undefined while it loads, or while no
4
+ * device id is given, and null while it cannot be read. A failed read is
5
+ * retried, so a transient error does not leave the device without its model.
6
+ */
7
+ export declare function useMockServerDevice(client: MockClient, deviceId: string): Device | null | undefined;
8
+ //# sourceMappingURL=useMockServerDevice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMockServerDevice.d.ts","sourceRoot":"","sources":["../../../src/useMockServerDevice.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EAChB,MAAM,oCAAoC,CAAC;AAI5C;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,GAAG,SAAS,CA8B3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useMockServerDevice.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMockServerDevice.test.d.ts","sourceRoot":"","sources":["../../../src/useMockServerDevice.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { type DeviceScreenState, type ScreenApi } from "./types";
2
+ export declare function useScreenPolling(api: ScreenApi, polling: boolean): DeviceScreenState;
3
+ //# sourceMappingURL=useScreenPolling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScreenPolling.d.ts","sourceRoot":"","sources":["../../../src/useScreenPolling.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AAajB,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,OAAO,GACf,iBAAiB,CAoGnB"}