@volley/vwr-loader 1.5.0 → 1.7.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.
Files changed (252) hide show
  1. package/dist/cli.js +84 -24
  2. package/dist/cli.js.map +1 -1
  3. package/dist/{datadog.d.ts → vwr/src/datadog.d.ts} +7 -3
  4. package/dist/vwr/src/datadog.d.ts.map +1 -0
  5. package/dist/{datadog.js → vwr/src/datadog.js} +6 -5
  6. package/dist/vwr/src/datadog.js.map +1 -0
  7. package/dist/{envDefaults.d.ts → vwr/src/envDefaults.d.ts} +1 -0
  8. package/dist/vwr/src/envDefaults.d.ts.map +1 -0
  9. package/dist/vwr/src/envDefaults.js +67 -0
  10. package/dist/vwr/src/envDefaults.js.map +1 -0
  11. package/dist/vwr/src/iframe.d.ts +25 -0
  12. package/dist/vwr/src/iframe.d.ts.map +1 -0
  13. package/dist/vwr/src/iframe.js +82 -0
  14. package/dist/vwr/src/iframe.js.map +1 -0
  15. package/dist/vwr/src/logger.d.ts +15 -0
  16. package/dist/vwr/src/logger.d.ts.map +1 -0
  17. package/dist/{logger.js → vwr/src/logger.js} +30 -46
  18. package/dist/vwr/src/logger.js.map +1 -0
  19. package/dist/vwr/src/native/app-lifecycle/factory.d.ts +7 -0
  20. package/dist/vwr/src/native/app-lifecycle/factory.d.ts.map +1 -0
  21. package/dist/vwr/src/native/app-lifecycle/factory.js +68 -0
  22. package/dist/vwr/src/native/app-lifecycle/factory.js.map +1 -0
  23. package/dist/vwr/src/native/app-lifecycle/rpc.d.ts +15 -0
  24. package/dist/vwr/src/native/app-lifecycle/rpc.d.ts.map +1 -0
  25. package/dist/vwr/src/native/app-lifecycle/rpc.js +46 -0
  26. package/dist/vwr/src/native/app-lifecycle/rpc.js.map +1 -0
  27. package/dist/vwr/src/native/capacitor-bridge/rpc.d.ts +33 -0
  28. package/dist/vwr/src/native/capacitor-bridge/rpc.d.ts.map +1 -0
  29. package/dist/vwr/src/native/capacitor-bridge/rpc.js +129 -0
  30. package/dist/vwr/src/native/capacitor-bridge/rpc.js.map +1 -0
  31. package/dist/vwr/src/native/device-info/factory.d.ts +9 -0
  32. package/dist/vwr/src/native/device-info/factory.d.ts.map +1 -0
  33. package/dist/vwr/src/native/device-info/factory.js +28 -0
  34. package/dist/vwr/src/native/device-info/factory.js.map +1 -0
  35. package/dist/vwr/src/native/device-info/firetvCollector.d.ts +9 -0
  36. package/dist/vwr/src/native/device-info/firetvCollector.d.ts.map +1 -0
  37. package/dist/vwr/src/native/device-info/firetvCollector.js +180 -0
  38. package/dist/vwr/src/native/device-info/firetvCollector.js.map +1 -0
  39. package/dist/vwr/src/native/device-info/getDeviceId.d.ts +13 -0
  40. package/dist/vwr/src/native/device-info/getDeviceId.d.ts.map +1 -0
  41. package/dist/vwr/src/native/device-info/getDeviceId.js +137 -0
  42. package/dist/vwr/src/native/device-info/getDeviceId.js.map +1 -0
  43. package/dist/vwr/src/native/device-info/lgCollector.d.ts +8 -0
  44. package/dist/vwr/src/native/device-info/lgCollector.d.ts.map +1 -0
  45. package/dist/vwr/src/native/device-info/lgCollector.js +136 -0
  46. package/dist/vwr/src/native/device-info/lgCollector.js.map +1 -0
  47. package/dist/vwr/src/native/device-info/mobileCollector.d.ts +9 -0
  48. package/dist/vwr/src/native/device-info/mobileCollector.d.ts.map +1 -0
  49. package/dist/vwr/src/native/device-info/mobileCollector.js +47 -0
  50. package/dist/vwr/src/native/device-info/mobileCollector.js.map +1 -0
  51. package/dist/vwr/src/native/device-info/rpc.d.ts +51 -0
  52. package/dist/vwr/src/native/device-info/rpc.d.ts.map +1 -0
  53. package/dist/vwr/src/native/device-info/rpc.js +46 -0
  54. package/dist/vwr/src/native/device-info/rpc.js.map +1 -0
  55. package/dist/vwr/src/native/device-info/samsungCollector.d.ts +9 -0
  56. package/dist/vwr/src/native/device-info/samsungCollector.d.ts.map +1 -0
  57. package/dist/vwr/src/native/device-info/samsungCollector.js +86 -0
  58. package/dist/vwr/src/native/device-info/samsungCollector.js.map +1 -0
  59. package/dist/vwr/src/native/device-info/webCollector.d.ts +4 -0
  60. package/dist/vwr/src/native/device-info/webCollector.d.ts.map +1 -0
  61. package/dist/vwr/src/native/device-info/webCollector.js +56 -0
  62. package/dist/vwr/src/native/device-info/webCollector.js.map +1 -0
  63. package/dist/vwr/src/native/native-bridge/rpc.d.ts +33 -0
  64. package/dist/vwr/src/native/native-bridge/rpc.d.ts.map +1 -0
  65. package/dist/vwr/src/native/native-bridge/rpc.js +114 -0
  66. package/dist/vwr/src/native/native-bridge/rpc.js.map +1 -0
  67. package/dist/vwr/src/native/screensaver-prevention/LGLunaService.d.ts +14 -0
  68. package/dist/vwr/src/native/screensaver-prevention/LGLunaService.d.ts.map +1 -0
  69. package/dist/vwr/src/native/screensaver-prevention/LGLunaService.js +187 -0
  70. package/dist/vwr/src/native/screensaver-prevention/LGLunaService.js.map +1 -0
  71. package/dist/vwr/src/native/screensaver-prevention/rpc.d.ts +27 -0
  72. package/dist/vwr/src/native/screensaver-prevention/rpc.d.ts.map +1 -0
  73. package/dist/vwr/src/native/screensaver-prevention/rpc.js +71 -0
  74. package/dist/vwr/src/native/screensaver-prevention/rpc.js.map +1 -0
  75. package/dist/vwr/src/observability.d.ts +35 -0
  76. package/dist/vwr/src/observability.d.ts.map +1 -0
  77. package/dist/vwr/src/observability.js +68 -0
  78. package/dist/vwr/src/observability.js.map +1 -0
  79. package/dist/vwr/src/shellEnvDefaults.d.ts +15 -0
  80. package/dist/vwr/src/shellEnvDefaults.d.ts.map +1 -0
  81. package/dist/vwr/src/shellEnvDefaults.js +34 -0
  82. package/dist/vwr/src/shellEnvDefaults.js.map +1 -0
  83. package/dist/vwr/src/types.d.ts +56 -0
  84. package/dist/vwr/src/types.d.ts.map +1 -0
  85. package/dist/vwr/src/types.js +27 -0
  86. package/dist/vwr/src/types.js.map +1 -0
  87. package/dist/vwr/src/urlUtils.d.ts +17 -0
  88. package/dist/vwr/src/urlUtils.d.ts.map +1 -0
  89. package/dist/vwr/src/urlUtils.js +42 -0
  90. package/dist/vwr/src/urlUtils.js.map +1 -0
  91. package/dist/vwr/src/vwrBootstrap.d.ts +26 -0
  92. package/dist/vwr/src/vwrBootstrap.d.ts.map +1 -0
  93. package/dist/vwr/src/vwrBootstrap.js +176 -0
  94. package/dist/vwr/src/vwrBootstrap.js.map +1 -0
  95. package/dist/{vwrConfig.d.ts → vwr/src/vwrConfig.d.ts} +5 -0
  96. package/dist/vwr/src/vwrConfig.d.ts.map +1 -0
  97. package/dist/{vwrConfig.js → vwr/src/vwrConfig.js} +24 -7
  98. package/dist/vwr/src/vwrConfig.js.map +1 -0
  99. package/{src → dist/vwr-loader}/index.html +1 -1
  100. package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.d.ts.map +1 -0
  101. package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.js.map +1 -0
  102. package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.d.ts.map +1 -0
  103. package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.js.map +1 -0
  104. package/dist/vwr-loader/src/__mocks__/invalidVwrModule.d.ts +2 -0
  105. package/dist/vwr-loader/src/__mocks__/invalidVwrModule.d.ts.map +1 -0
  106. package/dist/vwr-loader/src/__mocks__/invalidVwrModule.js +2 -0
  107. package/dist/vwr-loader/src/__mocks__/invalidVwrModule.js.map +1 -0
  108. package/dist/vwr-loader/src/__mocks__/vwrModule.d.ts.map +1 -0
  109. package/dist/vwr-loader/src/__mocks__/vwrModule.js.map +1 -0
  110. package/dist/vwr-loader/src/amplitudeFlagFetcher.d.ts.map +1 -0
  111. package/dist/vwr-loader/src/amplitudeFlagFetcher.js.map +1 -0
  112. package/dist/vwr-loader/src/errors/InitializationError.d.ts.map +1 -0
  113. package/dist/vwr-loader/src/errors/InitializationError.js.map +1 -0
  114. package/dist/vwr-loader/src/errors/ensureError.d.ts.map +1 -0
  115. package/dist/vwr-loader/src/errors/ensureError.js.map +1 -0
  116. package/dist/vwr-loader/src/errors/index.d.ts.map +1 -0
  117. package/dist/vwr-loader/src/errors/index.js.map +1 -0
  118. package/dist/vwr-loader/src/exitHandler.d.ts.map +1 -0
  119. package/dist/{exitHandler.js → vwr-loader/src/exitHandler.js} +2 -3
  120. package/dist/vwr-loader/src/exitHandler.js.map +1 -0
  121. package/dist/vwr-loader/src/getEnvironment.d.ts.map +1 -0
  122. package/dist/vwr-loader/src/getEnvironment.js.map +1 -0
  123. package/dist/vwr-loader/src/getShellVersion.d.ts.map +1 -0
  124. package/dist/vwr-loader/src/getShellVersion.js.map +1 -0
  125. package/dist/vwr-loader/src/index.d.ts +8 -0
  126. package/dist/vwr-loader/src/index.d.ts.map +1 -0
  127. package/dist/vwr-loader/src/index.js +6 -0
  128. package/dist/vwr-loader/src/index.js.map +1 -0
  129. package/dist/vwr-loader/src/loadVwr.d.ts.map +1 -0
  130. package/dist/{loadVwr.js → vwr-loader/src/loadVwr.js} +36 -27
  131. package/dist/vwr-loader/src/loadVwr.js.map +1 -0
  132. package/dist/vwr-loader/src/logger.d.ts +4 -0
  133. package/dist/vwr-loader/src/logger.d.ts.map +1 -0
  134. package/dist/vwr-loader/src/logger.js +10 -0
  135. package/dist/vwr-loader/src/logger.js.map +1 -0
  136. package/dist/vwr-loader/src/main.d.ts +2 -0
  137. package/dist/vwr-loader/src/main.d.ts.map +1 -0
  138. package/dist/vwr-loader/src/main.js +96 -0
  139. package/dist/vwr-loader/src/main.js.map +1 -0
  140. package/dist/vwr-loader/src/polyfills.d.ts.map +1 -0
  141. package/dist/vwr-loader/src/polyfills.js.map +1 -0
  142. package/dist/{test-setup.d.ts.map → vwr-loader/src/test-setup.d.ts.map} +1 -1
  143. package/dist/vwr-loader/src/test-setup.js.map +1 -0
  144. package/package.json +13 -12
  145. package/dist/__mocks__/@datadog/browser-logs.d.ts.map +0 -1
  146. package/dist/__mocks__/@datadog/browser-logs.js.map +0 -1
  147. package/dist/__mocks__/@datadog/browser-rum.d.ts.map +0 -1
  148. package/dist/__mocks__/@datadog/browser-rum.js.map +0 -1
  149. package/dist/__mocks__/vwrModule.d.ts.map +0 -1
  150. package/dist/__mocks__/vwrModule.js.map +0 -1
  151. package/dist/amplitudeFlagFetcher.d.ts.map +0 -1
  152. package/dist/amplitudeFlagFetcher.js.map +0 -1
  153. package/dist/assets/profiler-BRmTNL9s.js +0 -2
  154. package/dist/assets/profiler-BRmTNL9s.js.map +0 -1
  155. package/dist/assets/startRecording-CuFdVhxx.js +0 -3
  156. package/dist/assets/startRecording-CuFdVhxx.js.map +0 -1
  157. package/dist/datadog.d.ts.map +0 -1
  158. package/dist/datadog.js.map +0 -1
  159. package/dist/envDefaults.d.ts.map +0 -1
  160. package/dist/envDefaults.js +0 -74
  161. package/dist/envDefaults.js.map +0 -1
  162. package/dist/errors/InitializationError.d.ts.map +0 -1
  163. package/dist/errors/InitializationError.js.map +0 -1
  164. package/dist/errors/ensureError.d.ts.map +0 -1
  165. package/dist/errors/ensureError.js.map +0 -1
  166. package/dist/errors/index.d.ts.map +0 -1
  167. package/dist/errors/index.js.map +0 -1
  168. package/dist/exitHandler.d.ts.map +0 -1
  169. package/dist/exitHandler.js.map +0 -1
  170. package/dist/getDeviceId.d.ts +0 -26
  171. package/dist/getDeviceId.d.ts.map +0 -1
  172. package/dist/getDeviceId.js +0 -209
  173. package/dist/getDeviceId.js.map +0 -1
  174. package/dist/getEnvironment.d.ts.map +0 -1
  175. package/dist/getEnvironment.js.map +0 -1
  176. package/dist/getShellVersion.d.ts.map +0 -1
  177. package/dist/getShellVersion.js.map +0 -1
  178. package/dist/index.d.ts +0 -8
  179. package/dist/index.d.ts.map +0 -1
  180. package/dist/index.html +0 -25
  181. package/dist/index.js +0 -6
  182. package/dist/index.js.map +0 -1
  183. package/dist/loadVwr.d.ts.map +0 -1
  184. package/dist/loadVwr.js.map +0 -1
  185. package/dist/logger.d.ts +0 -12
  186. package/dist/logger.d.ts.map +0 -1
  187. package/dist/logger.js.map +0 -1
  188. package/dist/main.js +0 -12
  189. package/dist/main.js.map +0 -1
  190. package/dist/polyfills.d.ts.map +0 -1
  191. package/dist/polyfills.js.map +0 -1
  192. package/dist/test-setup.js.map +0 -1
  193. package/dist/types.d.ts +0 -103
  194. package/dist/types.d.ts.map +0 -1
  195. package/dist/types.js +0 -5
  196. package/dist/types.js.map +0 -1
  197. package/dist/vwrConfig.d.ts.map +0 -1
  198. package/dist/vwrConfig.js.map +0 -1
  199. package/src/__mocks__/@datadog/browser-logs.ts +0 -35
  200. package/src/__mocks__/@datadog/browser-rum.ts +0 -27
  201. package/src/__mocks__/vwrModule.ts +0 -3
  202. package/src/amplitudeFlagFetcher.test.ts +0 -175
  203. package/src/amplitudeFlagFetcher.ts +0 -105
  204. package/src/datadog.ts +0 -55
  205. package/src/envDefaults.ts +0 -94
  206. package/src/errors/InitializationError.ts +0 -105
  207. package/src/errors/ensureError.ts +0 -6
  208. package/src/errors/index.ts +0 -16
  209. package/src/exitHandler.test.ts +0 -373
  210. package/src/exitHandler.ts +0 -232
  211. package/src/getDeviceId.test.ts +0 -298
  212. package/src/getDeviceId.ts +0 -224
  213. package/src/getEnvironment.test.ts +0 -417
  214. package/src/getEnvironment.ts +0 -144
  215. package/src/getShellVersion.test.ts +0 -403
  216. package/src/getShellVersion.ts +0 -132
  217. package/src/index.ts +0 -7
  218. package/src/loadVwr.test.ts +0 -549
  219. package/src/loadVwr.ts +0 -357
  220. package/src/logger.ts +0 -121
  221. package/src/main.test.ts +0 -157
  222. package/src/main.ts +0 -127
  223. package/src/polyfills.ts +0 -32
  224. package/src/test-setup.ts +0 -5
  225. package/src/types.ts +0 -105
  226. package/src/vite-env.d.ts +0 -32
  227. package/src/vwrConfig.test.ts +0 -386
  228. package/src/vwrConfig.ts +0 -374
  229. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.d.ts +0 -0
  230. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.js +0 -0
  231. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.d.ts +0 -0
  232. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.js +0 -0
  233. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.d.ts +0 -0
  234. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.js +0 -0
  235. /package/dist/{amplitudeFlagFetcher.d.ts → vwr-loader/src/amplitudeFlagFetcher.d.ts} +0 -0
  236. /package/dist/{amplitudeFlagFetcher.js → vwr-loader/src/amplitudeFlagFetcher.js} +0 -0
  237. /package/dist/{errors → vwr-loader/src/errors}/InitializationError.d.ts +0 -0
  238. /package/dist/{errors → vwr-loader/src/errors}/InitializationError.js +0 -0
  239. /package/dist/{errors → vwr-loader/src/errors}/ensureError.d.ts +0 -0
  240. /package/dist/{errors → vwr-loader/src/errors}/ensureError.js +0 -0
  241. /package/dist/{errors → vwr-loader/src/errors}/index.d.ts +0 -0
  242. /package/dist/{errors → vwr-loader/src/errors}/index.js +0 -0
  243. /package/dist/{exitHandler.d.ts → vwr-loader/src/exitHandler.d.ts} +0 -0
  244. /package/dist/{getEnvironment.d.ts → vwr-loader/src/getEnvironment.d.ts} +0 -0
  245. /package/dist/{getEnvironment.js → vwr-loader/src/getEnvironment.js} +0 -0
  246. /package/dist/{getShellVersion.d.ts → vwr-loader/src/getShellVersion.d.ts} +0 -0
  247. /package/dist/{getShellVersion.js → vwr-loader/src/getShellVersion.js} +0 -0
  248. /package/dist/{loadVwr.d.ts → vwr-loader/src/loadVwr.d.ts} +0 -0
  249. /package/dist/{polyfills.d.ts → vwr-loader/src/polyfills.d.ts} +0 -0
  250. /package/dist/{polyfills.js → vwr-loader/src/polyfills.js} +0 -0
  251. /package/dist/{test-setup.d.ts → vwr-loader/src/test-setup.d.ts} +0 -0
  252. /package/dist/{test-setup.js → vwr-loader/src/test-setup.js} +0 -0
@@ -0,0 +1,46 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _DeviceInfoRpcServer_rpcServer, _DeviceInfoRpcClient_rpcClient, _DeviceInfoRpcClient_getDeviceInfo;
13
+ import { BrowserRpcClient, BrowserRpcServer, UnaryRpcClientMethod, UnaryRpcServerMethod, } from "@volley/browser-ipc";
14
+ const DEVICE_INFO_API = "Native::DeviceInfo";
15
+ const GET_DEVICE_INFO_METHOD = "getDeviceInfo";
16
+ export class DeviceInfoRpcServer {
17
+ constructor(collectFn, ipcConnection, logger) {
18
+ _DeviceInfoRpcServer_rpcServer.set(this, void 0);
19
+ const method = new UnaryRpcServerMethod(GET_DEVICE_INFO_METHOD, async () => {
20
+ return collectFn();
21
+ });
22
+ __classPrivateFieldSet(this, _DeviceInfoRpcServer_rpcServer, new BrowserRpcServer(DEVICE_INFO_API, new Set([method]), ipcConnection, logger), "f");
23
+ }
24
+ destroy() {
25
+ __classPrivateFieldGet(this, _DeviceInfoRpcServer_rpcServer, "f").destroy();
26
+ }
27
+ }
28
+ _DeviceInfoRpcServer_rpcServer = new WeakMap();
29
+ export class DeviceInfoRpcClient {
30
+ constructor(ipcConnection, logger) {
31
+ _DeviceInfoRpcClient_rpcClient.set(this, void 0);
32
+ _DeviceInfoRpcClient_getDeviceInfo.set(this, new UnaryRpcClientMethod(GET_DEVICE_INFO_METHOD));
33
+ __classPrivateFieldSet(this, _DeviceInfoRpcClient_rpcClient, new BrowserRpcClient(DEVICE_INFO_API, new Set([__classPrivateFieldGet(this, _DeviceInfoRpcClient_getDeviceInfo, "f")]), ipcConnection, logger), "f");
34
+ }
35
+ async init() {
36
+ await __classPrivateFieldGet(this, _DeviceInfoRpcClient_rpcClient, "f").connect();
37
+ }
38
+ async getDeviceInfo() {
39
+ return __classPrivateFieldGet(this, _DeviceInfoRpcClient_getDeviceInfo, "f").call();
40
+ }
41
+ async destroy() {
42
+ await __classPrivateFieldGet(this, _DeviceInfoRpcClient_rpcClient, "f").destroy();
43
+ }
44
+ }
45
+ _DeviceInfoRpcClient_rpcClient = new WeakMap(), _DeviceInfoRpcClient_getDeviceInfo = new WeakMap();
46
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/rpc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,qBAAqB,CAAA;AAI5B,MAAM,eAAe,GAAG,oBAAoB,CAAA;AAC5C,MAAM,sBAAsB,GAAG,eAAe,CAAA;AA0B9C,MAAM,OAAO,mBAAmB;IAG5B,YACI,SAA8C,EAC9C,aAAmC,EACnC,MAAe;QALnB,iDAA4B;QAOxB,MAAM,MAAM,GAAG,IAAI,oBAAoB,CACnC,sBAAsB,EACtB,KAAK,IAAmC,EAAE;YACtC,OAAO,SAAS,EAAE,CAAA;QACtB,CAAC,CACJ,CAAA;QAED,uBAAA,IAAI,kCAAc,IAAI,gBAAgB,CAClC,eAAe,EACf,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EACjB,aAAa,EACb,MAAM,CACT,MAAA,CAAA;IACL,CAAC;IAEM,OAAO;QACV,uBAAA,IAAI,sCAAW,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;CACJ;;AAED,MAAM,OAAO,mBAAmB;IAO5B,YAAY,aAAmC,EAAE,MAAe;QANhE,iDAA4B;QAC5B,6CACI,IAAI,oBAAoB,CACpB,sBAAsB,CACzB,EAAA;QAGD,uBAAA,IAAI,kCAAc,IAAI,gBAAgB,CAClC,eAAe,EACf,IAAI,GAAG,CAAC,CAAC,uBAAA,IAAI,0CAAe,CAAC,CAAC,EAC9B,aAAa,EACb,MAAM,CACT,MAAA,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,uBAAA,IAAI,sCAAW,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,OAAO,uBAAA,IAAI,0CAAe,CAAC,IAAI,EAAE,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,uBAAA,IAAI,sCAAW,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ import type { ILogger } from "@volley/logger";
2
+ import type { NativeDeviceInfoData } from "./rpc";
3
+ /**
4
+ * Collect Samsung device info from native Tizen/WebAPIs.
5
+ * Must be called from a context with access to tizen.* and webapis.* globals
6
+ * (i.e., the shell's main window, NOT an https:// iframe).
7
+ */
8
+ export declare function collectSamsungDeviceInfo(logger: ILogger, shellVersion: string): Promise<NativeDeviceInfoData>;
9
+ //# sourceMappingURL=samsungCollector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"samsungCollector.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/samsungCollector.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAQjD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAiG/B"}
@@ -0,0 +1,86 @@
1
+ import { getDeviceId } from "./getDeviceId";
2
+ function getSystemInfoValue(property) {
3
+ return new Promise((resolve, reject) => {
4
+ tizen.systeminfo.getPropertyValue(property, resolve, reject);
5
+ });
6
+ }
7
+ /**
8
+ * Collect Samsung device info from native Tizen/WebAPIs.
9
+ * Must be called from a context with access to tizen.* and webapis.* globals
10
+ * (i.e., the shell's main window, NOT an https:// iframe).
11
+ */
12
+ export async function collectSamsungDeviceInfo(logger, shellVersion) {
13
+ var _a, _b, _c, _d;
14
+ const [localeResult, displayResult] = await Promise.allSettled([
15
+ getSystemInfoValue("LOCALE"),
16
+ getSystemInfoValue("DISPLAY"),
17
+ ]);
18
+ let locale = "unknown";
19
+ if (localeResult.status === "fulfilled") {
20
+ locale = `${localeResult.value.language}-${localeResult.value.country}`;
21
+ }
22
+ else {
23
+ logger.error({ reason: (_a = localeResult.reason) === null || _a === void 0 ? void 0 : _a.message }, "Failed to get locale");
24
+ }
25
+ let screenResolution = { width: 0, height: 0 };
26
+ if (displayResult.status === "fulfilled") {
27
+ screenResolution = {
28
+ width: displayResult.value.resolutionWidth,
29
+ height: displayResult.value.resolutionHeight,
30
+ };
31
+ }
32
+ else {
33
+ logger.error({ reason: (_b = displayResult.reason) === null || _b === void 0 ? void 0 : _b.message }, "Failed to get resolution");
34
+ }
35
+ let model = "unknown";
36
+ try {
37
+ model = tizen.systeminfo.getCapability("http://tizen.org/system/model_name");
38
+ }
39
+ catch (_e) {
40
+ try {
41
+ if (webapis === null || webapis === void 0 ? void 0 : webapis.productinfo) {
42
+ model = webapis.productinfo.getModel();
43
+ }
44
+ }
45
+ catch (e) {
46
+ logger.error({ reason: e.message }, "Failed to get model");
47
+ }
48
+ }
49
+ let manufacturer = "Samsung";
50
+ try {
51
+ manufacturer =
52
+ (_c = tizen.systeminfo.getCapability("http://tizen.org/system/manufacturer")) !== null && _c !== void 0 ? _c : "Samsung";
53
+ }
54
+ catch (_f) {
55
+ manufacturer = "Samsung";
56
+ }
57
+ let osVersion = "unknown";
58
+ try {
59
+ osVersion = tizen.systeminfo.getCapability("http://tizen.org/system/build.release");
60
+ }
61
+ catch (e) {
62
+ logger.error({ reason: e.message }, "Failed to get OS version");
63
+ }
64
+ let sdkVersion = 0;
65
+ try {
66
+ const sdk = tizen.systeminfo.getCapability("http://tizen.org/feature/platform.core.api.version");
67
+ const parsed = Number(sdk);
68
+ sdkVersion = Number.isFinite(parsed) ? parsed : 0;
69
+ }
70
+ catch (e) {
71
+ logger.error({ reason: e.message }, "Failed to get SDK version");
72
+ }
73
+ const deviceId = (_d = (await getDeviceId("SAMSUNG_TV", logger))) !== null && _d !== void 0 ? _d : "unknown";
74
+ return {
75
+ locale,
76
+ screenResolution,
77
+ model,
78
+ manufacturer,
79
+ operatingSystem: "tizen",
80
+ osVersion,
81
+ sdkVersion,
82
+ deviceId,
83
+ nativeShellAppVersion: shellVersion,
84
+ };
85
+ }
86
+ //# sourceMappingURL=samsungCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"samsungCollector.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/samsungCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ILogger } from "@volley/logger";
2
+ import type { NativeDeviceInfoData } from "./rpc";
3
+ export declare function collectWebDeviceInfo(logger: ILogger, shellVersion: string): Promise<NativeDeviceInfoData>;
4
+ //# sourceMappingURL=webCollector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webCollector.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/webCollector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AA2CjD,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAiC/B"}
@@ -0,0 +1,56 @@
1
+ import { getDeviceId } from "./getDeviceId";
2
+ function getScreenResolution() {
3
+ if (typeof window !== "undefined" && window.screen) {
4
+ return {
5
+ width: window.screen.width,
6
+ height: window.screen.height,
7
+ };
8
+ }
9
+ return {
10
+ width: 0,
11
+ height: 0,
12
+ };
13
+ }
14
+ function getOperatingSystem(userAgent, platform) {
15
+ if (/Windows/i.test(platform) || /Windows/i.test(userAgent)) {
16
+ return { operatingSystem: "windows", osVersion: "unknown" };
17
+ }
18
+ if (/iPhone|iPad|iPod/i.test(userAgent)) {
19
+ return { operatingSystem: "ios", osVersion: "unknown" };
20
+ }
21
+ if (/Android/i.test(userAgent)) {
22
+ return { operatingSystem: "android", osVersion: "unknown" };
23
+ }
24
+ if (/Mac/i.test(platform) || /Mac OS X \d/i.test(userAgent)) {
25
+ return { operatingSystem: "macos", osVersion: "unknown" };
26
+ }
27
+ if (/Linux/i.test(platform) || /Linux/i.test(userAgent)) {
28
+ return { operatingSystem: "linux", osVersion: "unknown" };
29
+ }
30
+ return { operatingSystem: "unknown", osVersion: "unknown" };
31
+ }
32
+ export async function collectWebDeviceInfo(logger, shellVersion) {
33
+ var _a, _b;
34
+ const deviceId = (_a = (await getDeviceId("WEB", logger))) !== null && _a !== void 0 ? _a : "unknown";
35
+ const screenResolution = getScreenResolution();
36
+ const userAgent = navigator.userAgent || "unknown";
37
+ const platform = ((_b = navigator.userAgentData) === null || _b === void 0 ? void 0 : _b.platform) ||
38
+ navigator.platform ||
39
+ "unknown";
40
+ const { operatingSystem, osVersion } = getOperatingSystem(userAgent, platform);
41
+ const deviceInfo = {
42
+ locale: navigator.language || "unknown",
43
+ screenResolution,
44
+ model: platform,
45
+ manufacturer: "Browser",
46
+ operatingSystem,
47
+ osVersion,
48
+ sdkVersion: 0,
49
+ webViewVersion: userAgent,
50
+ deviceId,
51
+ nativeShellAppVersion: shellVersion,
52
+ };
53
+ logger.debug({ deviceInfo }, "Web device info collected");
54
+ return deviceInfo;
55
+ }
56
+ //# sourceMappingURL=webCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webCollector.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/webCollector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,SAAS,mBAAmB;IACxB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;SAC/B,CAAA;IACL,CAAC;IAED,OAAO;QACH,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACZ,CAAA;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,QAAgB;IAI3D,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;IAC/D,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;IAC3D,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;IAC/D,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;IAC7D,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;IAC7D,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,MAAe,EACf,YAAoB;;IAEpB,MAAM,QAAQ,GAAG,MAAA,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,mCAAI,SAAS,CAAA;IAChE,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAA;IAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAA;IAClD,MAAM,QAAQ,GACV,CAAA,MACI,SAGH,CAAC,aAAa,0CAAE,QAAQ;QACzB,SAAS,CAAC,QAAQ;QAClB,SAAS,CAAA;IACb,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,kBAAkB,CACrD,SAAS,EACT,QAAQ,CACX,CAAA;IAED,MAAM,UAAU,GAAyB;QACrC,MAAM,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS;QACvC,gBAAgB;QAChB,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,SAAS;QACvB,eAAe;QACf,SAAS;QACT,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,SAAS;QACzB,QAAQ;QACR,qBAAqB,EAAE,YAAY;KACtC,CAAA;IAED,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,2BAA2B,CAAC,CAAA;IAEzD,OAAO,UAAU,CAAA;AACrB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { BrowserIpcConnection } from "@volley/browser-ipc";
2
+ import type { ILogger } from "@volley/logger";
3
+ /**
4
+ * RPC server that runs in the bootstrap (shell's main window) where
5
+ * real native bridge globals (webkit.messageHandlers.nativeBridge / androidNativeBridge)
6
+ * are available. Proxies outbound postMessage calls and relays inbound
7
+ * onNativeMessage responses from the VWR iframe.
8
+ */
9
+ export declare class NativeBridgeProxyRpcServer {
10
+ #private;
11
+ constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
12
+ destroy(): void;
13
+ }
14
+ /**
15
+ * RPC client that runs in the VWR iframe. Installs fake native bridge
16
+ * globals (webkit.messageHandlers.nativeBridge / androidNativeBridge)
17
+ * so SDK code like postNativeBridgeMessage() works transparently via RPC.
18
+ *
19
+ * Also subscribes to inbound native responses and delivers them to
20
+ * window.onNativeMessage (set by NativeMessageHandler in the SDK).
21
+ */
22
+ export declare class NativeBridgeProxyRpcClient {
23
+ #private;
24
+ constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
25
+ init(): Promise<void>;
26
+ /**
27
+ * Install fake native bridge globals that route through RPC,
28
+ * and subscribe to inbound native responses.
29
+ */
30
+ installProxy(): void;
31
+ destroy(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/native-bridge/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EAGvB,MAAM,qBAAqB,CAAA;AAS5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAU7C;;;;;GAKG;AACH,qBAAa,0BAA0B;;gBAGvB,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;IAwDzD,OAAO,IAAI,IAAI;CAGzB;AAED;;;;;;;GAOG;AACH,qBAAa,0BAA0B;;gBAKvB,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;IAmBnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;OAGG;IACI,YAAY,IAAI,IAAI;IA4Bd,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
@@ -0,0 +1,114 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _NativeBridgeProxyRpcServer_rpcServer, _NativeBridgeProxyRpcClient_rpcClient, _NativeBridgeProxyRpcClient_postMessage, _NativeBridgeProxyRpcClient_onNativeMessage;
13
+ import { BrowserRpcClient, BrowserRpcServer, CallbackRpcClientMethod, CallbackRpcServerMethod, UnaryRpcClientMethod, UnaryRpcServerMethod, } from "@volley/browser-ipc";
14
+ const NATIVE_BRIDGE_API = "Native::NativeBridge";
15
+ const POST_MESSAGE_METHOD = "postMessage";
16
+ const ON_NATIVE_MESSAGE_METHOD = "onNativeMessage";
17
+ /**
18
+ * RPC server that runs in the bootstrap (shell's main window) where
19
+ * real native bridge globals (webkit.messageHandlers.nativeBridge / androidNativeBridge)
20
+ * are available. Proxies outbound postMessage calls and relays inbound
21
+ * onNativeMessage responses from the VWR iframe.
22
+ */
23
+ export class NativeBridgeProxyRpcServer {
24
+ constructor(ipcConnection, logger) {
25
+ _NativeBridgeProxyRpcServer_rpcServer.set(this, void 0);
26
+ const postMessageMethod = new UnaryRpcServerMethod(POST_MESSAGE_METHOD, async (request) => {
27
+ var _a, _b, _c, _d;
28
+ const win = window;
29
+ // Try iOS bridge first
30
+ if ((_c = (_b = (_a = win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.nativeBridge) === null || _c === void 0 ? void 0 : _c.postMessage) {
31
+ win.webkit.messageHandlers.nativeBridge.postMessage(request.message);
32
+ return;
33
+ }
34
+ // Try Android bridge
35
+ if ((_d = win.androidNativeBridge) === null || _d === void 0 ? void 0 : _d.postMessage) {
36
+ win.androidNativeBridge.postMessage(request.message);
37
+ return;
38
+ }
39
+ logger.warn("No native bridge available in bootstrap");
40
+ });
41
+ const onNativeMessageMethod = new CallbackRpcServerMethod(ON_NATIVE_MESSAGE_METHOD, async (request) => {
42
+ // Register handler on bootstrap window to receive native responses
43
+ const win = window;
44
+ win.onNativeMessage = (message) => {
45
+ request.callback(message, []);
46
+ };
47
+ return {
48
+ responseData: undefined,
49
+ unregisterCallback: () => {
50
+ win.onNativeMessage = undefined;
51
+ },
52
+ };
53
+ });
54
+ __classPrivateFieldSet(this, _NativeBridgeProxyRpcServer_rpcServer, new BrowserRpcServer(NATIVE_BRIDGE_API, new Set([postMessageMethod, onNativeMessageMethod]), ipcConnection, logger), "f");
55
+ }
56
+ destroy() {
57
+ __classPrivateFieldGet(this, _NativeBridgeProxyRpcServer_rpcServer, "f").destroy();
58
+ }
59
+ }
60
+ _NativeBridgeProxyRpcServer_rpcServer = new WeakMap();
61
+ /**
62
+ * RPC client that runs in the VWR iframe. Installs fake native bridge
63
+ * globals (webkit.messageHandlers.nativeBridge / androidNativeBridge)
64
+ * so SDK code like postNativeBridgeMessage() works transparently via RPC.
65
+ *
66
+ * Also subscribes to inbound native responses and delivers them to
67
+ * window.onNativeMessage (set by NativeMessageHandler in the SDK).
68
+ */
69
+ export class NativeBridgeProxyRpcClient {
70
+ constructor(ipcConnection, logger) {
71
+ _NativeBridgeProxyRpcClient_rpcClient.set(this, void 0);
72
+ _NativeBridgeProxyRpcClient_postMessage.set(this, void 0);
73
+ _NativeBridgeProxyRpcClient_onNativeMessage.set(this, void 0);
74
+ __classPrivateFieldSet(this, _NativeBridgeProxyRpcClient_postMessage, new UnaryRpcClientMethod(POST_MESSAGE_METHOD), "f");
75
+ __classPrivateFieldSet(this, _NativeBridgeProxyRpcClient_onNativeMessage, new CallbackRpcClientMethod(ON_NATIVE_MESSAGE_METHOD), "f");
76
+ __classPrivateFieldSet(this, _NativeBridgeProxyRpcClient_rpcClient, new BrowserRpcClient(NATIVE_BRIDGE_API, new Set([__classPrivateFieldGet(this, _NativeBridgeProxyRpcClient_postMessage, "f"), __classPrivateFieldGet(this, _NativeBridgeProxyRpcClient_onNativeMessage, "f")]), ipcConnection, logger), "f");
77
+ }
78
+ async init() {
79
+ await __classPrivateFieldGet(this, _NativeBridgeProxyRpcClient_rpcClient, "f").connect();
80
+ }
81
+ /**
82
+ * Install fake native bridge globals that route through RPC,
83
+ * and subscribe to inbound native responses.
84
+ */
85
+ installProxy() {
86
+ var _a, _b;
87
+ var _c;
88
+ const postMessage = __classPrivateFieldGet(this, _NativeBridgeProxyRpcClient_postMessage, "f");
89
+ const bridgeProxy = {
90
+ postMessage: (msg) => {
91
+ void postMessage.call({ message: msg });
92
+ },
93
+ };
94
+ // Install iOS bridge proxy (extend existing webkit namespace if present)
95
+ const win = window;
96
+ (_a = win.webkit) !== null && _a !== void 0 ? _a : (win.webkit = {});
97
+ (_b = (_c = win.webkit).messageHandlers) !== null && _b !== void 0 ? _b : (_c.messageHandlers = {});
98
+ win.webkit.messageHandlers.nativeBridge = bridgeProxy;
99
+ window.androidNativeBridge = bridgeProxy;
100
+ // Subscribe to inbound native responses from bootstrap
101
+ // and relay them to window.onNativeMessage (set by SDK's NativeMessageHandler)
102
+ void __classPrivateFieldGet(this, _NativeBridgeProxyRpcClient_onNativeMessage, "f").call(undefined, (response) => {
103
+ const win = window;
104
+ if (typeof win.onNativeMessage === "function") {
105
+ win.onNativeMessage(response);
106
+ }
107
+ });
108
+ }
109
+ async destroy() {
110
+ await __classPrivateFieldGet(this, _NativeBridgeProxyRpcClient_rpcClient, "f").destroy();
111
+ }
112
+ }
113
+ _NativeBridgeProxyRpcClient_rpcClient = new WeakMap(), _NativeBridgeProxyRpcClient_postMessage = new WeakMap(), _NativeBridgeProxyRpcClient_onNativeMessage = new WeakMap();
114
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/native-bridge/rpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ILogger } from "@volley/logger";
2
+ import type { INativeScreensaverService } from "@volley/platform-sdk/lib";
3
+ export declare class LGLunaService implements INativeScreensaverService {
4
+ private enabled;
5
+ private readonly clientName;
6
+ private readonly logger;
7
+ constructor(logger: ILogger);
8
+ enable(): Promise<void>;
9
+ disable(): Promise<void>;
10
+ isEnabled(): boolean;
11
+ private deregister;
12
+ private respondToScreensaverTrigger;
13
+ }
14
+ //# sourceMappingURL=LGLunaService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LGLunaService.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/screensaver-prevention/LGLunaService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAkCzE,qBAAa,aAAc,YAAW,yBAAyB;IAC3D,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,OAAO;IAUd,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmHvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,SAAS,IAAI,OAAO;YAIb,UAAU;IAqFxB,OAAO,CAAC,2BAA2B;CAyBtC"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * LG Luna Service for screensaver prevention, used in the VWR bootstrap.
3
+ * Subscribes to screensaver events and responds to prevent activation.
4
+ *
5
+ * Runs in the bootstrap (file:// origin) where webOS globals are available.
6
+ */
7
+ const LUNA_TIMEOUT_MS = 5000;
8
+ export class LGLunaService {
9
+ constructor(logger) {
10
+ var _a, _b;
11
+ this.enabled = false;
12
+ this.logger = logger;
13
+ const palmSystem = typeof window !== "undefined"
14
+ ? window.PalmSystem
15
+ : undefined;
16
+ this.clientName =
17
+ (_b = (_a = palmSystem === null || palmSystem === void 0 ? void 0 : palmSystem.identifier) === null || _a === void 0 ? void 0 : _a.split(" ")[0]) !== null && _b !== void 0 ? _b : "com.volley.lgshell";
18
+ }
19
+ async enable() {
20
+ if (typeof webOS === "undefined" || !webOS.service) {
21
+ this.logger.error("webOS service not available, cannot enable LG screensaver prevention");
22
+ throw new Error("webOS service not available");
23
+ }
24
+ if (this.enabled) {
25
+ return;
26
+ }
27
+ return new Promise((resolve, reject) => {
28
+ let settled = false;
29
+ const timeoutId = setTimeout(() => {
30
+ if (!settled) {
31
+ settled = true;
32
+ reject(new Error("LG screensaver enable timed out"));
33
+ }
34
+ }, LUNA_TIMEOUT_MS);
35
+ const settle = (fn) => {
36
+ if (!settled) {
37
+ settled = true;
38
+ clearTimeout(timeoutId);
39
+ fn();
40
+ }
41
+ };
42
+ try {
43
+ webOS.service.request("luna://com.webos.service.tvpower", {
44
+ method: "power/registerScreenSaverRequest",
45
+ parameters: {
46
+ clientName: this.clientName,
47
+ subscribe: true,
48
+ },
49
+ onComplete: (response) => {
50
+ if (!response.returnValue) {
51
+ this.logger.warn({ response }, "Failed to register for LG screensaver prevention");
52
+ }
53
+ },
54
+ onSuccess: (response) => {
55
+ if (typeof response.subscribed !== "undefined" &&
56
+ !response.subscribed) {
57
+ settle(() => reject(new Error("Failed to subscribe to LG screensaver events")));
58
+ return;
59
+ }
60
+ if (response.subscribed) {
61
+ this.logger.info("Successfully subscribed to LG screensaver events");
62
+ this.enabled = true;
63
+ settle(() => resolve());
64
+ }
65
+ else if (response.timestamp) {
66
+ this.respondToScreensaverTrigger(response.timestamp);
67
+ }
68
+ else {
69
+ this.enabled = true;
70
+ settle(() => resolve());
71
+ }
72
+ },
73
+ onFailure: (error) => {
74
+ let deregisterPromise = Promise.resolve();
75
+ // Error code -3 means we have already registered, so we need to disable it before registering again
76
+ if (Number(error.errorCode) === -3) {
77
+ this.logger.debug("LG screensaver prevention is already registered, deregistering");
78
+ deregisterPromise = this.deregister()
79
+ .then(() => {
80
+ this.logger.debug("Successfully deregistered LG screensaver prevention");
81
+ })
82
+ .catch((error) => {
83
+ this.logger.error({ error }, "Failed to disable LG screensaver prevention before registering again");
84
+ });
85
+ }
86
+ deregisterPromise.finally(() => {
87
+ this.enabled = false;
88
+ settle(() => reject(new Error(`Failed to enable LG screensaver prevention: [${error.errorCode}] ${error.errorText}`)));
89
+ });
90
+ },
91
+ subscribe: true,
92
+ });
93
+ }
94
+ catch (error) {
95
+ settle(() => reject(error));
96
+ }
97
+ });
98
+ }
99
+ async disable() {
100
+ if (!this.enabled) {
101
+ return;
102
+ }
103
+ await this.deregister();
104
+ }
105
+ isEnabled() {
106
+ return this.enabled;
107
+ }
108
+ async deregister() {
109
+ if (typeof webOS === "undefined" || !webOS.service) {
110
+ this.logger.error("webOS service not available, cannot disable LG screensaver prevention");
111
+ throw new Error("webOS service not available");
112
+ }
113
+ return new Promise((resolve, reject) => {
114
+ let settled = false;
115
+ const timeoutId = setTimeout(() => {
116
+ if (!settled) {
117
+ settled = true;
118
+ this.enabled = false;
119
+ reject(new Error("LG screensaver deregister timed out"));
120
+ }
121
+ }, LUNA_TIMEOUT_MS);
122
+ const settle = (fn) => {
123
+ if (!settled) {
124
+ settled = true;
125
+ clearTimeout(timeoutId);
126
+ fn();
127
+ }
128
+ };
129
+ try {
130
+ webOS.service.request("luna://com.webos.service.tvpower", {
131
+ method: "power/registerScreenSaverRequest",
132
+ parameters: {
133
+ clientName: this.clientName,
134
+ subscribe: false,
135
+ },
136
+ onComplete: (response) => {
137
+ if (!response.returnValue) {
138
+ this.logger.warn({ response }, "Failed to unregister from LG screensaver prevention");
139
+ }
140
+ },
141
+ onSuccess: (response) => {
142
+ if (typeof response.subscribed !== "undefined" &&
143
+ !response.subscribed) {
144
+ this.logger.info("Successfully unsubscribed from LG screensaver events");
145
+ this.enabled = false;
146
+ settle(() => resolve());
147
+ }
148
+ else if (response.subscribed) {
149
+ settle(() => reject(new Error("Failed to unsubscribe from LG screensaver events")));
150
+ }
151
+ else {
152
+ // Treat unexpected successful response as disabled
153
+ this.enabled = false;
154
+ settle(() => resolve());
155
+ }
156
+ },
157
+ onFailure: (error) => {
158
+ settle(() => reject(new Error(`Failed to disable LG screensaver prevention: [${error.errorCode}] ${error.errorText}`)));
159
+ },
160
+ });
161
+ }
162
+ catch (error) {
163
+ settle(() => reject(error));
164
+ }
165
+ });
166
+ }
167
+ respondToScreensaverTrigger(timestamp) {
168
+ if (typeof webOS === "undefined" || !webOS.service) {
169
+ return;
170
+ }
171
+ webOS.service.request("luna://com.webos.service.tvpower", {
172
+ method: "power/responseScreenSaverRequest",
173
+ parameters: {
174
+ clientName: this.clientName,
175
+ ack: false, // false = prevent screensaver
176
+ timestamp: timestamp,
177
+ },
178
+ onSuccess: () => {
179
+ this.logger.info("Responded to LG screensaver trigger to prevent activation");
180
+ },
181
+ onFailure: (error) => {
182
+ this.logger.error({ errorCode: error.errorCode, errorText: error.errorText }, "Failed to respond to LG screensaver trigger");
183
+ },
184
+ });
185
+ }
186
+ }
187
+ //# sourceMappingURL=LGLunaService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LGLunaService.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/screensaver-prevention/LGLunaService.ts"],"names":[],"mappings":"AA2BA;;;;;GAKG;AACH,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,MAAM,OAAO,aAAa;IAKtB,YAAY,MAAe;;QAJnB,YAAO,GAAG,KAAK,CAAA;QAKnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,MAAM,UAAU,GACZ,OAAO,MAAM,KAAK,WAAW;YACzB,CAAC,CAAE,MAAc,CAAC,UAAU;YAC5B,CAAC,CAAC,SAAS,CAAA;QACnB,IAAI,CAAC,UAAU;YACX,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,oBAAoB,CAAA;IACrE,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,sEAAsE,CACzE,CAAA;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAM;QACV,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,OAAO,GAAG,IAAI,CAAA;oBACd,MAAM,CACF,IAAI,KAAK,CACL,iCAAiC,CACpC,CACJ,CAAA;gBACL,CAAC;YACL,CAAC,EAAE,eAAe,CAAC,CAAA;YAEnB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;gBAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,SAAS,CAAC,CAAA;oBACvB,EAAE,EAAE,CAAA;gBACR,CAAC;YACL,CAAC,CAAA;YAED,IAAI,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE;oBACtD,MAAM,EAAE,kCAAkC;oBAC1C,UAAU,EAAE;wBACR,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,SAAS,EAAE,IAAI;qBAClB;oBACD,UAAU,EAAE,CAAC,QAA6B,EAAE,EAAE;wBAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;4BACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,EAAE,QAAQ,EAAE,EACZ,kDAAkD,CACrD,CAAA;wBACL,CAAC;oBACL,CAAC;oBACD,SAAS,EAAE,CAAC,QAA6B,EAAE,EAAE;wBACzC,IACI,OAAO,QAAQ,CAAC,UAAU,KAAK,WAAW;4BAC1C,CAAC,QAAQ,CAAC,UAAU,EACtB,CAAC;4BACC,MAAM,CAAC,GAAG,EAAE,CACR,MAAM,CACF,IAAI,KAAK,CACL,8CAA8C,CACjD,CACJ,CACJ,CAAA;4BACD,OAAM;wBACV,CAAC;wBAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;4BACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kDAAkD,CACrD,CAAA;4BACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;4BACnB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;wBAC3B,CAAC;6BAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;4BAC5B,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;wBACxD,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;4BACnB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;wBAC3B,CAAC;oBACL,CAAC;oBACD,SAAS,EAAE,CAAC,KAA0B,EAAE,EAAE;wBACtC,IAAI,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;wBACzC,oGAAoG;wBACpG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,gEAAgE,CACnE,CAAA;4BACD,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE;iCAChC,IAAI,CAAC,GAAG,EAAE;gCACP,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,qDAAqD,CACxD,CAAA;4BACL,CAAC,CAAC;iCACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gCACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,EAAE,KAAK,EAAE,EACT,sEAAsE,CACzE,CAAA;4BACL,CAAC,CAAC,CAAA;wBACV,CAAC;wBACD,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE;4BAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;4BACpB,MAAM,CAAC,GAAG,EAAE,CACR,MAAM,CACF,IAAI,KAAK,CACL,gDAAgD,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CACxF,CACJ,CACJ,CAAA;wBACL,CAAC,CAAC,CAAA;oBACN,CAAC;oBACD,SAAS,EAAE,IAAI;iBAClB,CAAC,CAAA;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/B,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAM;QACV,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,uEAAuE,CAC1E,CAAA;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,OAAO,GAAG,IAAI,CAAA;oBACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;oBACpB,MAAM,CACF,IAAI,KAAK,CACL,qCAAqC,CACxC,CACJ,CAAA;gBACL,CAAC;YACL,CAAC,EAAE,eAAe,CAAC,CAAA;YAEnB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;gBAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,SAAS,CAAC,CAAA;oBACvB,EAAE,EAAE,CAAA;gBACR,CAAC;YACL,CAAC,CAAA;YAED,IAAI,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE;oBACtD,MAAM,EAAE,kCAAkC;oBAC1C,UAAU,EAAE;wBACR,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,SAAS,EAAE,KAAK;qBACnB;oBACD,UAAU,EAAE,CAAC,QAA6B,EAAE,EAAE;wBAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;4BACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,EAAE,QAAQ,EAAE,EACZ,qDAAqD,CACxD,CAAA;wBACL,CAAC;oBACL,CAAC;oBACD,SAAS,EAAE,CAAC,QAA6B,EAAE,EAAE;wBACzC,IACI,OAAO,QAAQ,CAAC,UAAU,KAAK,WAAW;4BAC1C,CAAC,QAAQ,CAAC,UAAU,EACtB,CAAC;4BACC,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,sDAAsD,CACzD,CAAA;4BACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;4BACpB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;wBAC3B,CAAC;6BAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;4BAC7B,MAAM,CAAC,GAAG,EAAE,CACR,MAAM,CACF,IAAI,KAAK,CACL,kDAAkD,CACrD,CACJ,CACJ,CAAA;wBACL,CAAC;6BAAM,CAAC;4BACJ,mDAAmD;4BACnD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;4BACpB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;wBAC3B,CAAC;oBACL,CAAC;oBACD,SAAS,EAAE,CAAC,KAA0B,EAAE,EAAE;wBACtC,MAAM,CAAC,GAAG,EAAE,CACR,MAAM,CACF,IAAI,KAAK,CACL,iDAAiD,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CACzF,CACJ,CACJ,CAAA;oBACL,CAAC;iBACJ,CAAC,CAAA;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/B,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,2BAA2B,CAAC,SAAiB;QACjD,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,OAAM;QACV,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE;YACtD,MAAM,EAAE,kCAAkC;YAC1C,UAAU,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,GAAG,EAAE,KAAK,EAAE,8BAA8B;gBAC1C,SAAS,EAAE,SAAS;aACvB;YACD,SAAS,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,2DAA2D,CAC9D,CAAA;YACL,CAAC;YACD,SAAS,EAAE,CAAC,KAA0B,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAC1D,6CAA6C,CAChD,CAAA;YACL,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -0,0 +1,27 @@
1
+ import type { BrowserIpcConnection } from "@volley/browser-ipc";
2
+ import type { ILogger } from "@volley/logger";
3
+ import type { INativeScreensaverService } from "@volley/platform-sdk/lib";
4
+ /**
5
+ * RPC server that runs in the bootstrap where native screensaver calls are available.
6
+ * Wraps a native screensaver service (LG Luna, Samsung Tizen, etc.) and exposes enable/disable via RPC.
7
+ */
8
+ export declare class ScreensaverRpcServer {
9
+ #private;
10
+ constructor(screensaverService: INativeScreensaverService, ipcConnection: BrowserIpcConnection, logger: ILogger);
11
+ destroy(): void;
12
+ }
13
+ /**
14
+ * RPC client that runs in the VWR iframe. Implements INativeScreensaverService
15
+ * so it can be injected into LGScreensaverPrevention (or future Samsung equivalent)
16
+ * as a drop-in replacement for the real native service.
17
+ */
18
+ export declare class ScreensaverRpcClient implements INativeScreensaverService {
19
+ #private;
20
+ constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
21
+ init(): Promise<void>;
22
+ enable(): Promise<void>;
23
+ disable(): Promise<void>;
24
+ isEnabled(): boolean;
25
+ destroy(): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=rpc.d.ts.map