@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
@@ -11,31 +11,18 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import { datadogLogs } from "@datadog/browser-logs";
13
13
  import { createLogger } from "@volley/logger";
14
- /**
15
- * Context type specifically for error logs.
16
- * Use this when calling logger.error() to include the Error object
17
- * for RUM Error Tracking (source maps, stack traces).
18
- *
19
- * @example
20
- * ```typescript
21
- * const context: ErrorLogContext = {
22
- * error: someError,
23
- * error_type: someError.name,
24
- * // ... other context
25
- * }
26
- * logger.error(context, "Something went wrong")
27
- * ```
28
- */
29
- // Initialize Datadog Logs - forwardErrorsToLogs disabled since we handle errors manually
30
- datadogLogs.init({
31
- clientToken: import.meta.env.VITE_DATADOG_CLIENT_TOKEN,
32
- site: "datadoghq.com",
33
- service: "vwr-loader",
34
- env: import.meta.env.VITE_ENVIRONMENT,
35
- version: import.meta.env.VITE_SHELL_VERSION,
36
- forwardErrorsToLogs: true, // RUM picks up console errors automatically
37
- sessionSampleRate: 100,
38
- });
14
+ // shells/vwr/src/logger.ts
15
+ export function initDatadogLogs(options) {
16
+ datadogLogs.init({
17
+ clientToken: options === null || options === void 0 ? void 0 : options.clientToken,
18
+ site: "datadoghq.com",
19
+ service: options.service,
20
+ env: options.env,
21
+ version: options.version,
22
+ forwardErrorsToLogs: true, // RUM picks up console errors automatically
23
+ sessionSampleRate: 100,
24
+ });
25
+ }
39
26
  /**
40
27
  * Extract message and context from pino log object.
41
28
  * Removes internal pino fields (msg, level, time) and extracts error if present.
@@ -62,22 +49,23 @@ function writeLog(logObject, consoleMethod, datadogLevel) {
62
49
  /**
63
50
  * Write handler for error logs (error, fatal).
64
51
  * Sends to console and Datadog Logs with Error object.
65
- *
66
- * NOTE: This is commented out because forwardErrorsToLogs: true in datadogLogs.init()
67
- * automatically forwards console.error calls to Datadog Logs. If forwardErrorsToLogs
68
- * were disabled, we would use this handler to manually send errors to Datadog.
69
52
  */
70
- // function writeError(logObject: object) {
71
- // const { msg, context, errorObj } = parseLogObject(logObject)
72
- // // Write to console for dev visibility (include error for stack trace)
73
- // if (errorObj) {
74
- // console.error(msg, context, errorObj)
75
- // } else {
76
- // console.error(msg, context)
77
- // }
78
- // // Send to Datadog Logs with Error object as 3rd arg
79
- // datadogLogs.logger.error(msg, context, errorObj)
80
- // }
53
+ function writeError(logObject) {
54
+ const { msg, context, errorObj } = parseLogObject(logObject);
55
+ // Write to console for dev visibility (include error for stack trace)
56
+ if (errorObj) {
57
+ console.error(msg, context, errorObj);
58
+ }
59
+ else {
60
+ console.error(msg, context);
61
+ }
62
+ /*NOTE: This is commented out because forwardErrorsToLogs: true in datadogLogs.init()
63
+ * automatically forwards console.error calls to Datadog Logs. If forwardErrorsToLogs
64
+ * were disabled, we would use this handler to manually send errors to Datadog.
65
+ */
66
+ // Send to Datadog Logs with Error object as 3rd arg
67
+ //datadogLogs.logger.error(msg, context, errorObj)
68
+ }
81
69
  export let logger = createLogger({
82
70
  type: "browser",
83
71
  browser: {
@@ -94,14 +82,10 @@ export let logger = createLogger({
94
82
  info: (o) => writeLog(o, "info", "info"),
95
83
  warn: (o) => writeLog(o, "warn", "warn"),
96
84
  // error and fatal logs are automatically forwarded to Datadog via forwardErrorsToLogs
97
- // error: writeError,
98
- // fatal: writeError,
85
+ error: writeError,
86
+ fatal: writeError,
99
87
  },
100
88
  },
101
- }).child({
102
- service: "vwr-loader",
103
- env: import.meta.env.VITE_ENVIRONMENT,
104
- platform: import.meta.env.VITE_PLATFORM,
105
89
  });
106
90
  export function setLogger(_logger) {
107
91
  logger = _logger;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../vwr/src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ILogger } from "@volley/logger";
2
+ /**
3
+ * Get the platform-specific exit function for the RPC server.
4
+ * Returns null if the platform doesn't need exit bridging.
5
+ */
6
+ export declare function getNativeExitFn(platform: string, logger: ILogger): (() => void) | null;
7
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/app-lifecycle/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI7C;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GAChB,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAqErB"}
@@ -0,0 +1,68 @@
1
+ const WEB_EXIT_REQUESTED_EVENT = "vwr:exit-requested";
2
+ /**
3
+ * Get the platform-specific exit function for the RPC server.
4
+ * Returns null if the platform doesn't need exit bridging.
5
+ */
6
+ export function getNativeExitFn(platform, logger) {
7
+ switch (platform) {
8
+ case "WEB":
9
+ return () => {
10
+ logger.info("WEB exit requested; no-op in desktop web shell");
11
+ if (typeof window !== "undefined") {
12
+ window.dispatchEvent(new CustomEvent(WEB_EXIT_REQUESTED_EVENT, {
13
+ detail: { platform: "WEB" },
14
+ }));
15
+ }
16
+ };
17
+ case "SAMSUNG_TV":
18
+ return () => {
19
+ var _a;
20
+ if (typeof tizen !== "undefined" &&
21
+ ((_a = tizen === null || tizen === void 0 ? void 0 : tizen.application) === null || _a === void 0 ? void 0 : _a.getCurrentApplication)) {
22
+ tizen.application.getCurrentApplication().exit();
23
+ }
24
+ else {
25
+ logger.warn("`tizen` not available; skipping exit");
26
+ }
27
+ };
28
+ case "LG_TV":
29
+ return () => {
30
+ window.close();
31
+ };
32
+ case "FIRE_TV":
33
+ return () => {
34
+ var _a, _b;
35
+ const capacitor = window.Capacitor;
36
+ if ((_b = (_a = capacitor === null || capacitor === void 0 ? void 0 : capacitor.Plugins) === null || _a === void 0 ? void 0 : _a.AppLifecycle) === null || _b === void 0 ? void 0 : _b.exitApp) {
37
+ capacitor.Plugins.AppLifecycle.exitApp();
38
+ }
39
+ else {
40
+ logger.warn("Capacitor AppLifecycle not available; skipping exit");
41
+ }
42
+ };
43
+ case "IOS_MOBILE":
44
+ return () => {
45
+ var _a, _b;
46
+ const webkit = window.webkit;
47
+ if ((_b = (_a = webkit === null || webkit === void 0 ? void 0 : webkit.messageHandlers) === null || _a === void 0 ? void 0 : _a.nativeBridge) === null || _b === void 0 ? void 0 : _b.postMessage) {
48
+ webkit.messageHandlers.nativeBridge.postMessage(JSON.stringify({ messageType: "Dismiss" }));
49
+ }
50
+ else {
51
+ logger.warn("iOS native bridge not available; skipping exit");
52
+ }
53
+ };
54
+ case "ANDROID_MOBILE":
55
+ return () => {
56
+ const bridge = window.androidNativeBridge;
57
+ if (bridge === null || bridge === void 0 ? void 0 : bridge.postMessage) {
58
+ bridge.postMessage(JSON.stringify({ messageType: "Dismiss" }));
59
+ }
60
+ else {
61
+ logger.warn("Android native bridge not available; skipping exit");
62
+ }
63
+ };
64
+ default:
65
+ return null;
66
+ }
67
+ }
68
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/app-lifecycle/factory.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,oBAAoB,CAAA;AAErD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC3B,QAAgB,EAChB,MAAe;IAEf,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,KAAK;YACN,OAAO,GAAG,EAAE;gBACR,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;gBAE7D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;oBAChC,MAAM,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,wBAAwB,EAAE;wBACtC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;qBAC9B,CAAC,CACL,CAAA;gBACL,CAAC;YACL,CAAC,CAAA;QACL,KAAK,YAAY;YACb,OAAO,GAAG,EAAE;;gBACR,IACI,OAAO,KAAK,KAAK,WAAW;qBAC5B,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,0CAAE,qBAAqB,CAAA,EAC3C,CAAC;oBACC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,CAAA;gBACpD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;gBACvD,CAAC;YACL,CAAC,CAAA;QACL,KAAK,OAAO;YACR,OAAO,GAAG,EAAE;gBACR,MAAM,CAAC,KAAK,EAAE,CAAA;YAClB,CAAC,CAAA;QACL,KAAK,SAAS;YACV,OAAO,GAAG,EAAE;;gBACR,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAA;gBAC3C,IAAI,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,YAAY,0CAAE,OAAO,EAAE,CAAC;oBAC5C,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;gBAC5C,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CACP,qDAAqD,CACxD,CAAA;gBACL,CAAC;YACL,CAAC,CAAA;QACL,KAAK,YAAY;YACb,OAAO,GAAG,EAAE;;gBACR,MAAM,MAAM,GAAI,MAAc,CAAC,MAAM,CAAA;gBACrC,IAAI,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,0CAAE,YAAY,0CAAE,WAAW,EAAE,CAAC;oBACrD,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAC3C,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAC7C,CAAA;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CACP,gDAAgD,CACnD,CAAA;gBACL,CAAC;YACL,CAAC,CAAA;QACL,KAAK,gBAAgB;YACjB,OAAO,GAAG,EAAE;gBACR,MAAM,MAAM,GAAI,MAAc,CAAC,mBAAmB,CAAA;gBAClD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;oBACtB,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAC7C,CAAA;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CACP,oDAAoD,CACvD,CAAA;gBACL,CAAC;YACL,CAAC,CAAA;QACL;YACI,OAAO,IAAI,CAAA;IACnB,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { BrowserIpcConnection } from "@volley/browser-ipc";
2
+ import type { ILogger } from "@volley/logger";
3
+ export declare class ExitAppRpcServer {
4
+ #private;
5
+ constructor(exitFn: () => void, ipcConnection: BrowserIpcConnection, logger: ILogger);
6
+ destroy(): void;
7
+ }
8
+ export declare class ExitAppRpcClient {
9
+ #private;
10
+ constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
11
+ init(): Promise<void>;
12
+ exitApp(): Promise<void>;
13
+ destroy(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/app-lifecycle/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAO/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAK7C,qBAAa,gBAAgB;;gBAIrB,MAAM,EAAE,MAAM,IAAI,EAClB,aAAa,EAAE,oBAAoB,EACnC,MAAM,EAAE,OAAO;IAiBZ,OAAO,IAAI,IAAI;CAGzB;AAED,qBAAa,gBAAgB;;gBAOb,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;IASnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
@@ -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 _ExitAppRpcServer_rpcServer, _ExitAppRpcClient_rpcClient, _ExitAppRpcClient_exitApp;
13
+ import { BrowserRpcClient, BrowserRpcServer, UnaryRpcClientMethod, UnaryRpcServerMethod, } from "@volley/browser-ipc";
14
+ const EXIT_APP_API = "Native::AppLifecycle";
15
+ const EXIT_APP_METHOD = "exitApp";
16
+ export class ExitAppRpcServer {
17
+ constructor(exitFn, ipcConnection, logger) {
18
+ _ExitAppRpcServer_rpcServer.set(this, void 0);
19
+ const exitMethod = new UnaryRpcServerMethod(EXIT_APP_METHOD, async () => {
20
+ exitFn();
21
+ });
22
+ __classPrivateFieldSet(this, _ExitAppRpcServer_rpcServer, new BrowserRpcServer(EXIT_APP_API, new Set([exitMethod]), ipcConnection, logger), "f");
23
+ }
24
+ destroy() {
25
+ __classPrivateFieldGet(this, _ExitAppRpcServer_rpcServer, "f").destroy();
26
+ }
27
+ }
28
+ _ExitAppRpcServer_rpcServer = new WeakMap();
29
+ export class ExitAppRpcClient {
30
+ constructor(ipcConnection, logger) {
31
+ _ExitAppRpcClient_rpcClient.set(this, void 0);
32
+ _ExitAppRpcClient_exitApp.set(this, new UnaryRpcClientMethod(EXIT_APP_METHOD));
33
+ __classPrivateFieldSet(this, _ExitAppRpcClient_rpcClient, new BrowserRpcClient(EXIT_APP_API, new Set([__classPrivateFieldGet(this, _ExitAppRpcClient_exitApp, "f")]), ipcConnection, logger), "f");
34
+ }
35
+ async init() {
36
+ await __classPrivateFieldGet(this, _ExitAppRpcClient_rpcClient, "f").connect();
37
+ }
38
+ async exitApp() {
39
+ await __classPrivateFieldGet(this, _ExitAppRpcClient_exitApp, "f").call();
40
+ }
41
+ async destroy() {
42
+ await __classPrivateFieldGet(this, _ExitAppRpcClient_rpcClient, "f").destroy();
43
+ }
44
+ }
45
+ _ExitAppRpcClient_rpcClient = new WeakMap(), _ExitAppRpcClient_exitApp = new WeakMap();
46
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/app-lifecycle/rpc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,MAAM,YAAY,GAAG,sBAAsB,CAAA;AAC3C,MAAM,eAAe,GAAG,SAAS,CAAA;AAEjC,MAAM,OAAO,gBAAgB;IAGzB,YACI,MAAkB,EAClB,aAAmC,EACnC,MAAe;QALnB,8CAA4B;QAOxB,MAAM,UAAU,GAAG,IAAI,oBAAoB,CACvC,eAAe,EACf,KAAK,IAAmB,EAAE;YACtB,MAAM,EAAE,CAAA;QACZ,CAAC,CACJ,CAAA;QAED,uBAAA,IAAI,+BAAc,IAAI,gBAAgB,CAClC,YAAY,EACZ,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EACrB,aAAa,EACb,MAAM,CACT,MAAA,CAAA;IACL,CAAC;IAEM,OAAO;QACV,uBAAA,IAAI,mCAAW,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;CACJ;;AAED,MAAM,OAAO,gBAAgB;IAOzB,YAAY,aAAmC,EAAE,MAAe;QANhE,8CAA4B;QAC5B,oCAA6C,IAAI,oBAAoB,CAGnE,eAAe,CAAC,EAAA;QAGd,uBAAA,IAAI,+BAAc,IAAI,gBAAgB,CAClC,YAAY,EACZ,IAAI,GAAG,CAAC,CAAC,uBAAA,IAAI,iCAAS,CAAC,CAAC,EACxB,aAAa,EACb,MAAM,CACT,MAAA,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,uBAAA,IAAI,mCAAW,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,uBAAA,IAAI,iCAAS,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,uBAAA,IAAI,mCAAW,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC;CACJ"}
@@ -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 Capacitor globals are available. Proxies plugin method calls
6
+ * and event listeners from the VWR iframe.
7
+ */
8
+ export declare class CapacitorProxyRpcServer {
9
+ #private;
10
+ constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
11
+ destroy(): void;
12
+ }
13
+ /**
14
+ * RPC client that runs in the VWR iframe. Installs a Proxy on
15
+ * `window.Capacitor` so that all Capacitor plugin calls from
16
+ * PlatformSDK modules (FireTVBridge) route through RPC to the
17
+ * bootstrap where real Capacitor is available.
18
+ *
19
+ * Must be called BEFORE PlatformSDK construction so FireTVBridge
20
+ * finds our proxy when it accesses `window.Capacitor.Plugins[name]`.
21
+ */
22
+ export declare class CapacitorProxyRpcClient {
23
+ #private;
24
+ constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
25
+ init(): Promise<void>;
26
+ /**
27
+ * Install a Proxy on `window.Capacitor` that intercepts all plugin
28
+ * access and routes calls through RPC to the bootstrap.
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/capacitor-bridge/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EAGvB,MAAM,qBAAqB,CAAA;AAS5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAiB7C;;;;GAIG;AACH,qBAAa,uBAAuB;;gBAGpB,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;IAoEzD,OAAO,IAAI,IAAI;CAGzB;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;;gBASpB,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;IAoBnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;OAGG;IACI,YAAY,IAAI,IAAI;IAsDd,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
@@ -0,0 +1,129 @@
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 _CapacitorProxyRpcServer_rpcServer, _CapacitorProxyRpcClient_rpcClient, _CapacitorProxyRpcClient_callPlugin, _CapacitorProxyRpcClient_addPluginListener;
13
+ import { BrowserRpcClient, BrowserRpcServer, CallbackRpcClientMethod, CallbackRpcServerMethod, UnaryRpcClientMethod, UnaryRpcServerMethod, } from "@volley/browser-ipc";
14
+ const CAPACITOR_API = "Native::Capacitor";
15
+ const CALL_PLUGIN_METHOD = "callPlugin";
16
+ const ADD_PLUGIN_LISTENER_METHOD = "addPluginListener";
17
+ /**
18
+ * RPC server that runs in the bootstrap (shell's main window) where
19
+ * real Capacitor globals are available. Proxies plugin method calls
20
+ * and event listeners from the VWR iframe.
21
+ */
22
+ export class CapacitorProxyRpcServer {
23
+ constructor(ipcConnection, logger) {
24
+ _CapacitorProxyRpcServer_rpcServer.set(this, void 0);
25
+ const callPluginMethod = new UnaryRpcServerMethod(CALL_PLUGIN_METHOD, async (request) => {
26
+ var _a;
27
+ const capacitor = window.Capacitor;
28
+ const plugin = (_a = capacitor === null || capacitor === void 0 ? void 0 : capacitor.Plugins) === null || _a === void 0 ? void 0 : _a[request.plugin];
29
+ if (!plugin) {
30
+ throw new Error(`Capacitor plugin "${request.plugin}" not available`);
31
+ }
32
+ const method = plugin[request.method];
33
+ if (typeof method !== "function") {
34
+ throw new Error(`Method "${request.method}" not found on plugin "${request.plugin}"`);
35
+ }
36
+ return method.apply(plugin, request.args);
37
+ });
38
+ const addPluginListenerMethod = new CallbackRpcServerMethod(ADD_PLUGIN_LISTENER_METHOD, async (request) => {
39
+ var _a;
40
+ const capacitor = window.Capacitor;
41
+ const plugin = (_a = capacitor === null || capacitor === void 0 ? void 0 : capacitor.Plugins) === null || _a === void 0 ? void 0 : _a[request.requestData.plugin];
42
+ if (!plugin) {
43
+ throw new Error(`Capacitor plugin "${request.requestData.plugin}" not available`);
44
+ }
45
+ const handle = await plugin.addListener(request.requestData.event, (event) => {
46
+ request.callback(event, []);
47
+ });
48
+ return {
49
+ responseData: undefined,
50
+ unregisterCallback: () => {
51
+ var _a;
52
+ (_a = handle === null || handle === void 0 ? void 0 : handle.remove) === null || _a === void 0 ? void 0 : _a.call(handle);
53
+ },
54
+ };
55
+ });
56
+ __classPrivateFieldSet(this, _CapacitorProxyRpcServer_rpcServer, new BrowserRpcServer(CAPACITOR_API, new Set([callPluginMethod, addPluginListenerMethod]), ipcConnection, logger), "f");
57
+ }
58
+ destroy() {
59
+ __classPrivateFieldGet(this, _CapacitorProxyRpcServer_rpcServer, "f").destroy();
60
+ }
61
+ }
62
+ _CapacitorProxyRpcServer_rpcServer = new WeakMap();
63
+ /**
64
+ * RPC client that runs in the VWR iframe. Installs a Proxy on
65
+ * `window.Capacitor` so that all Capacitor plugin calls from
66
+ * PlatformSDK modules (FireTVBridge) route through RPC to the
67
+ * bootstrap where real Capacitor is available.
68
+ *
69
+ * Must be called BEFORE PlatformSDK construction so FireTVBridge
70
+ * finds our proxy when it accesses `window.Capacitor.Plugins[name]`.
71
+ */
72
+ export class CapacitorProxyRpcClient {
73
+ constructor(ipcConnection, logger) {
74
+ _CapacitorProxyRpcClient_rpcClient.set(this, void 0);
75
+ _CapacitorProxyRpcClient_callPlugin.set(this, void 0);
76
+ _CapacitorProxyRpcClient_addPluginListener.set(this, void 0);
77
+ __classPrivateFieldSet(this, _CapacitorProxyRpcClient_callPlugin, new UnaryRpcClientMethod(CALL_PLUGIN_METHOD), "f");
78
+ __classPrivateFieldSet(this, _CapacitorProxyRpcClient_addPluginListener, new CallbackRpcClientMethod(ADD_PLUGIN_LISTENER_METHOD), "f");
79
+ __classPrivateFieldSet(this, _CapacitorProxyRpcClient_rpcClient, new BrowserRpcClient(CAPACITOR_API, new Set([__classPrivateFieldGet(this, _CapacitorProxyRpcClient_callPlugin, "f"), __classPrivateFieldGet(this, _CapacitorProxyRpcClient_addPluginListener, "f")]), ipcConnection, logger), "f");
80
+ }
81
+ async init() {
82
+ await __classPrivateFieldGet(this, _CapacitorProxyRpcClient_rpcClient, "f").connect();
83
+ }
84
+ /**
85
+ * Install a Proxy on `window.Capacitor` that intercepts all plugin
86
+ * access and routes calls through RPC to the bootstrap.
87
+ */
88
+ installProxy() {
89
+ const callPlugin = __classPrivateFieldGet(this, _CapacitorProxyRpcClient_callPlugin, "f");
90
+ const addPluginListener = __classPrivateFieldGet(this, _CapacitorProxyRpcClient_addPluginListener, "f");
91
+ const pluginsProxy = new Proxy({}, {
92
+ get(_target, pluginName) {
93
+ // Return a proxy for the plugin that intercepts method calls
94
+ return new Proxy({}, {
95
+ get(_pluginTarget, methodName) {
96
+ if (methodName === "addListener") {
97
+ return async (event, callback) => {
98
+ const response = await addPluginListener.call({
99
+ plugin: pluginName,
100
+ event,
101
+ }, callback);
102
+ return {
103
+ remove: response.unregisterCallback,
104
+ };
105
+ };
106
+ }
107
+ // Regular method call → unary RPC
108
+ return async (...args) => {
109
+ return callPlugin.call({
110
+ plugin: pluginName,
111
+ method: methodName,
112
+ args,
113
+ });
114
+ };
115
+ },
116
+ });
117
+ },
118
+ });
119
+ window.Capacitor = {
120
+ Plugins: pluginsProxy,
121
+ isNativePlatform: () => true,
122
+ };
123
+ }
124
+ async destroy() {
125
+ await __classPrivateFieldGet(this, _CapacitorProxyRpcClient_rpcClient, "f").destroy();
126
+ }
127
+ }
128
+ _CapacitorProxyRpcClient_rpcClient = new WeakMap(), _CapacitorProxyRpcClient_callPlugin = new WeakMap(), _CapacitorProxyRpcClient_addPluginListener = new WeakMap();
129
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/capacitor-bridge/rpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ILogger } from "@volley/logger";
2
+ import type { NativeDeviceInfoData } from "./rpc";
3
+ /**
4
+ * Get a platform-specific function that collects device info from native APIs.
5
+ * Returns null if the platform doesn't need device info bridging.
6
+ * Used by bootstrap to create the DeviceInfoRpcServer.
7
+ */
8
+ export declare function getNativeDeviceInfoCollector(platform: string, logger: ILogger, shellVersion: string): (() => Promise<NativeDeviceInfoData>) | null;
9
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAK7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAIjD;;;;GAIG;AACH,wBAAgB,4BAA4B,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACrB,CAAC,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAgB9C"}
@@ -0,0 +1,28 @@
1
+ import { collectFireTVDeviceInfo } from "./firetvCollector";
2
+ import { collectLgDeviceInfo } from "./lgCollector";
3
+ import { collectMobileDeviceInfo } from "./mobileCollector";
4
+ import { collectSamsungDeviceInfo } from "./samsungCollector";
5
+ import { collectWebDeviceInfo } from "./webCollector";
6
+ /**
7
+ * Get a platform-specific function that collects device info from native APIs.
8
+ * Returns null if the platform doesn't need device info bridging.
9
+ * Used by bootstrap to create the DeviceInfoRpcServer.
10
+ */
11
+ export function getNativeDeviceInfoCollector(platform, logger, shellVersion) {
12
+ switch (platform) {
13
+ case "SAMSUNG_TV":
14
+ return () => collectSamsungDeviceInfo(logger, shellVersion);
15
+ case "LG_TV":
16
+ return () => collectLgDeviceInfo(logger, shellVersion);
17
+ case "FIRE_TV":
18
+ return () => collectFireTVDeviceInfo(logger, shellVersion);
19
+ case "IOS_MOBILE":
20
+ case "ANDROID_MOBILE":
21
+ return () => collectMobileDeviceInfo(platform, logger, shellVersion);
22
+ case "WEB":
23
+ return () => collectWebDeviceInfo(logger, shellVersion);
24
+ default:
25
+ return null;
26
+ }
27
+ }
28
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CACxC,QAAgB,EAChB,MAAe,EACf,YAAoB;IAEpB,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,YAAY;YACb,OAAO,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC/D,KAAK,OAAO;YACR,OAAO,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC1D,KAAK,SAAS;YACV,OAAO,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC9D,KAAK,YAAY,CAAC;QAClB,KAAK,gBAAgB;YACjB,OAAO,GAAG,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;QACxE,KAAK,KAAK;YACN,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC3D;YACI,OAAO,IAAI,CAAA;IACnB,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ILogger } from "@volley/logger";
2
+ import type { NativeDeviceInfoData } from "./rpc";
3
+ /**
4
+ * Collect FireTV device info from Capacitor plugins.
5
+ * Must be called from the bootstrap's main window where Capacitor globals are available
6
+ * (NOT from the VWR https:// iframe).
7
+ */
8
+ export declare function collectFireTVDeviceInfo(logger: ILogger, shellVersion: string): Promise<NativeDeviceInfoData>;
9
+ //# sourceMappingURL=firetvCollector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firetvCollector.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/firetvCollector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAuCjD;;;;GAIG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAmL/B"}