@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.
- package/dist/cli.js +84 -24
- package/dist/cli.js.map +1 -1
- package/dist/{datadog.d.ts → vwr/src/datadog.d.ts} +7 -3
- package/dist/vwr/src/datadog.d.ts.map +1 -0
- package/dist/{datadog.js → vwr/src/datadog.js} +6 -5
- package/dist/vwr/src/datadog.js.map +1 -0
- package/dist/{envDefaults.d.ts → vwr/src/envDefaults.d.ts} +1 -0
- package/dist/vwr/src/envDefaults.d.ts.map +1 -0
- package/dist/vwr/src/envDefaults.js +67 -0
- package/dist/vwr/src/envDefaults.js.map +1 -0
- package/dist/vwr/src/iframe.d.ts +25 -0
- package/dist/vwr/src/iframe.d.ts.map +1 -0
- package/dist/vwr/src/iframe.js +82 -0
- package/dist/vwr/src/iframe.js.map +1 -0
- package/dist/vwr/src/logger.d.ts +15 -0
- package/dist/vwr/src/logger.d.ts.map +1 -0
- package/dist/{logger.js → vwr/src/logger.js} +30 -46
- package/dist/vwr/src/logger.js.map +1 -0
- package/dist/vwr/src/native/app-lifecycle/factory.d.ts +7 -0
- package/dist/vwr/src/native/app-lifecycle/factory.d.ts.map +1 -0
- package/dist/vwr/src/native/app-lifecycle/factory.js +68 -0
- package/dist/vwr/src/native/app-lifecycle/factory.js.map +1 -0
- package/dist/vwr/src/native/app-lifecycle/rpc.d.ts +15 -0
- package/dist/vwr/src/native/app-lifecycle/rpc.d.ts.map +1 -0
- package/dist/vwr/src/native/app-lifecycle/rpc.js +46 -0
- package/dist/vwr/src/native/app-lifecycle/rpc.js.map +1 -0
- package/dist/vwr/src/native/capacitor-bridge/rpc.d.ts +33 -0
- package/dist/vwr/src/native/capacitor-bridge/rpc.d.ts.map +1 -0
- package/dist/vwr/src/native/capacitor-bridge/rpc.js +129 -0
- package/dist/vwr/src/native/capacitor-bridge/rpc.js.map +1 -0
- package/dist/vwr/src/native/device-info/factory.d.ts +9 -0
- package/dist/vwr/src/native/device-info/factory.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/factory.js +28 -0
- package/dist/vwr/src/native/device-info/factory.js.map +1 -0
- package/dist/vwr/src/native/device-info/firetvCollector.d.ts +9 -0
- package/dist/vwr/src/native/device-info/firetvCollector.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/firetvCollector.js +180 -0
- package/dist/vwr/src/native/device-info/firetvCollector.js.map +1 -0
- package/dist/vwr/src/native/device-info/getDeviceId.d.ts +13 -0
- package/dist/vwr/src/native/device-info/getDeviceId.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/getDeviceId.js +137 -0
- package/dist/vwr/src/native/device-info/getDeviceId.js.map +1 -0
- package/dist/vwr/src/native/device-info/lgCollector.d.ts +8 -0
- package/dist/vwr/src/native/device-info/lgCollector.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/lgCollector.js +136 -0
- package/dist/vwr/src/native/device-info/lgCollector.js.map +1 -0
- package/dist/vwr/src/native/device-info/mobileCollector.d.ts +9 -0
- package/dist/vwr/src/native/device-info/mobileCollector.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/mobileCollector.js +47 -0
- package/dist/vwr/src/native/device-info/mobileCollector.js.map +1 -0
- package/dist/vwr/src/native/device-info/rpc.d.ts +51 -0
- package/dist/vwr/src/native/device-info/rpc.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/rpc.js +46 -0
- package/dist/vwr/src/native/device-info/rpc.js.map +1 -0
- package/dist/vwr/src/native/device-info/samsungCollector.d.ts +9 -0
- package/dist/vwr/src/native/device-info/samsungCollector.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/samsungCollector.js +86 -0
- package/dist/vwr/src/native/device-info/samsungCollector.js.map +1 -0
- package/dist/vwr/src/native/device-info/webCollector.d.ts +4 -0
- package/dist/vwr/src/native/device-info/webCollector.d.ts.map +1 -0
- package/dist/vwr/src/native/device-info/webCollector.js +56 -0
- package/dist/vwr/src/native/device-info/webCollector.js.map +1 -0
- package/dist/vwr/src/native/native-bridge/rpc.d.ts +33 -0
- package/dist/vwr/src/native/native-bridge/rpc.d.ts.map +1 -0
- package/dist/vwr/src/native/native-bridge/rpc.js +114 -0
- package/dist/vwr/src/native/native-bridge/rpc.js.map +1 -0
- package/dist/vwr/src/native/screensaver-prevention/LGLunaService.d.ts +14 -0
- package/dist/vwr/src/native/screensaver-prevention/LGLunaService.d.ts.map +1 -0
- package/dist/vwr/src/native/screensaver-prevention/LGLunaService.js +187 -0
- package/dist/vwr/src/native/screensaver-prevention/LGLunaService.js.map +1 -0
- package/dist/vwr/src/native/screensaver-prevention/rpc.d.ts +27 -0
- package/dist/vwr/src/native/screensaver-prevention/rpc.d.ts.map +1 -0
- package/dist/vwr/src/native/screensaver-prevention/rpc.js +71 -0
- package/dist/vwr/src/native/screensaver-prevention/rpc.js.map +1 -0
- package/dist/vwr/src/observability.d.ts +35 -0
- package/dist/vwr/src/observability.d.ts.map +1 -0
- package/dist/vwr/src/observability.js +68 -0
- package/dist/vwr/src/observability.js.map +1 -0
- package/dist/vwr/src/shellEnvDefaults.d.ts +15 -0
- package/dist/vwr/src/shellEnvDefaults.d.ts.map +1 -0
- package/dist/vwr/src/shellEnvDefaults.js +34 -0
- package/dist/vwr/src/shellEnvDefaults.js.map +1 -0
- package/dist/vwr/src/types.d.ts +56 -0
- package/dist/vwr/src/types.d.ts.map +1 -0
- package/dist/vwr/src/types.js +27 -0
- package/dist/vwr/src/types.js.map +1 -0
- package/dist/vwr/src/urlUtils.d.ts +17 -0
- package/dist/vwr/src/urlUtils.d.ts.map +1 -0
- package/dist/vwr/src/urlUtils.js +42 -0
- package/dist/vwr/src/urlUtils.js.map +1 -0
- package/dist/vwr/src/vwrBootstrap.d.ts +26 -0
- package/dist/vwr/src/vwrBootstrap.d.ts.map +1 -0
- package/dist/vwr/src/vwrBootstrap.js +176 -0
- package/dist/vwr/src/vwrBootstrap.js.map +1 -0
- package/dist/{vwrConfig.d.ts → vwr/src/vwrConfig.d.ts} +5 -0
- package/dist/vwr/src/vwrConfig.d.ts.map +1 -0
- package/dist/{vwrConfig.js → vwr/src/vwrConfig.js} +24 -7
- package/dist/vwr/src/vwrConfig.js.map +1 -0
- package/{src → dist/vwr-loader}/index.html +1 -1
- package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.d.ts.map +1 -0
- package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.js.map +1 -0
- package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.d.ts.map +1 -0
- package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.js.map +1 -0
- package/dist/vwr-loader/src/__mocks__/invalidVwrModule.d.ts +2 -0
- package/dist/vwr-loader/src/__mocks__/invalidVwrModule.d.ts.map +1 -0
- package/dist/vwr-loader/src/__mocks__/invalidVwrModule.js +2 -0
- package/dist/vwr-loader/src/__mocks__/invalidVwrModule.js.map +1 -0
- package/dist/vwr-loader/src/__mocks__/vwrModule.d.ts.map +1 -0
- package/dist/vwr-loader/src/__mocks__/vwrModule.js.map +1 -0
- package/dist/vwr-loader/src/amplitudeFlagFetcher.d.ts.map +1 -0
- package/dist/vwr-loader/src/amplitudeFlagFetcher.js.map +1 -0
- package/dist/vwr-loader/src/errors/InitializationError.d.ts.map +1 -0
- package/dist/vwr-loader/src/errors/InitializationError.js.map +1 -0
- package/dist/vwr-loader/src/errors/ensureError.d.ts.map +1 -0
- package/dist/vwr-loader/src/errors/ensureError.js.map +1 -0
- package/dist/vwr-loader/src/errors/index.d.ts.map +1 -0
- package/dist/vwr-loader/src/errors/index.js.map +1 -0
- package/dist/vwr-loader/src/exitHandler.d.ts.map +1 -0
- package/dist/{exitHandler.js → vwr-loader/src/exitHandler.js} +2 -3
- package/dist/vwr-loader/src/exitHandler.js.map +1 -0
- package/dist/vwr-loader/src/getEnvironment.d.ts.map +1 -0
- package/dist/vwr-loader/src/getEnvironment.js.map +1 -0
- package/dist/vwr-loader/src/getShellVersion.d.ts.map +1 -0
- package/dist/vwr-loader/src/getShellVersion.js.map +1 -0
- package/dist/vwr-loader/src/index.d.ts +8 -0
- package/dist/vwr-loader/src/index.d.ts.map +1 -0
- package/dist/vwr-loader/src/index.js +6 -0
- package/dist/vwr-loader/src/index.js.map +1 -0
- package/dist/vwr-loader/src/loadVwr.d.ts.map +1 -0
- package/dist/{loadVwr.js → vwr-loader/src/loadVwr.js} +36 -27
- package/dist/vwr-loader/src/loadVwr.js.map +1 -0
- package/dist/vwr-loader/src/logger.d.ts +4 -0
- package/dist/vwr-loader/src/logger.d.ts.map +1 -0
- package/dist/vwr-loader/src/logger.js +10 -0
- package/dist/vwr-loader/src/logger.js.map +1 -0
- package/dist/vwr-loader/src/main.d.ts +2 -0
- package/dist/vwr-loader/src/main.d.ts.map +1 -0
- package/dist/vwr-loader/src/main.js +96 -0
- package/dist/vwr-loader/src/main.js.map +1 -0
- package/dist/vwr-loader/src/polyfills.d.ts.map +1 -0
- package/dist/vwr-loader/src/polyfills.js.map +1 -0
- package/dist/{test-setup.d.ts.map → vwr-loader/src/test-setup.d.ts.map} +1 -1
- package/dist/vwr-loader/src/test-setup.js.map +1 -0
- package/package.json +13 -12
- package/dist/__mocks__/@datadog/browser-logs.d.ts.map +0 -1
- package/dist/__mocks__/@datadog/browser-logs.js.map +0 -1
- package/dist/__mocks__/@datadog/browser-rum.d.ts.map +0 -1
- package/dist/__mocks__/@datadog/browser-rum.js.map +0 -1
- package/dist/__mocks__/vwrModule.d.ts.map +0 -1
- package/dist/__mocks__/vwrModule.js.map +0 -1
- package/dist/amplitudeFlagFetcher.d.ts.map +0 -1
- package/dist/amplitudeFlagFetcher.js.map +0 -1
- package/dist/assets/profiler-BRmTNL9s.js +0 -2
- package/dist/assets/profiler-BRmTNL9s.js.map +0 -1
- package/dist/assets/startRecording-CuFdVhxx.js +0 -3
- package/dist/assets/startRecording-CuFdVhxx.js.map +0 -1
- package/dist/datadog.d.ts.map +0 -1
- package/dist/datadog.js.map +0 -1
- package/dist/envDefaults.d.ts.map +0 -1
- package/dist/envDefaults.js +0 -74
- package/dist/envDefaults.js.map +0 -1
- package/dist/errors/InitializationError.d.ts.map +0 -1
- package/dist/errors/InitializationError.js.map +0 -1
- package/dist/errors/ensureError.d.ts.map +0 -1
- package/dist/errors/ensureError.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/exitHandler.d.ts.map +0 -1
- package/dist/exitHandler.js.map +0 -1
- package/dist/getDeviceId.d.ts +0 -26
- package/dist/getDeviceId.d.ts.map +0 -1
- package/dist/getDeviceId.js +0 -209
- package/dist/getDeviceId.js.map +0 -1
- package/dist/getEnvironment.d.ts.map +0 -1
- package/dist/getEnvironment.js.map +0 -1
- package/dist/getShellVersion.d.ts.map +0 -1
- package/dist/getShellVersion.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.html +0 -25
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/loadVwr.d.ts.map +0 -1
- package/dist/loadVwr.js.map +0 -1
- package/dist/logger.d.ts +0 -12
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/main.js +0 -12
- package/dist/main.js.map +0 -1
- package/dist/polyfills.d.ts.map +0 -1
- package/dist/polyfills.js.map +0 -1
- package/dist/test-setup.js.map +0 -1
- package/dist/types.d.ts +0 -103
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
- package/dist/vwrConfig.d.ts.map +0 -1
- package/dist/vwrConfig.js.map +0 -1
- package/src/__mocks__/@datadog/browser-logs.ts +0 -35
- package/src/__mocks__/@datadog/browser-rum.ts +0 -27
- package/src/__mocks__/vwrModule.ts +0 -3
- package/src/amplitudeFlagFetcher.test.ts +0 -175
- package/src/amplitudeFlagFetcher.ts +0 -105
- package/src/datadog.ts +0 -55
- package/src/envDefaults.ts +0 -94
- package/src/errors/InitializationError.ts +0 -105
- package/src/errors/ensureError.ts +0 -6
- package/src/errors/index.ts +0 -16
- package/src/exitHandler.test.ts +0 -373
- package/src/exitHandler.ts +0 -232
- package/src/getDeviceId.test.ts +0 -298
- package/src/getDeviceId.ts +0 -224
- package/src/getEnvironment.test.ts +0 -417
- package/src/getEnvironment.ts +0 -144
- package/src/getShellVersion.test.ts +0 -403
- package/src/getShellVersion.ts +0 -132
- package/src/index.ts +0 -7
- package/src/loadVwr.test.ts +0 -549
- package/src/loadVwr.ts +0 -357
- package/src/logger.ts +0 -121
- package/src/main.test.ts +0 -157
- package/src/main.ts +0 -127
- package/src/polyfills.ts +0 -32
- package/src/test-setup.ts +0 -5
- package/src/types.ts +0 -105
- package/src/vite-env.d.ts +0 -32
- package/src/vwrConfig.test.ts +0 -386
- package/src/vwrConfig.ts +0 -374
- /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.d.ts +0 -0
- /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.js +0 -0
- /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.d.ts +0 -0
- /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.js +0 -0
- /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.d.ts +0 -0
- /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.js +0 -0
- /package/dist/{amplitudeFlagFetcher.d.ts → vwr-loader/src/amplitudeFlagFetcher.d.ts} +0 -0
- /package/dist/{amplitudeFlagFetcher.js → vwr-loader/src/amplitudeFlagFetcher.js} +0 -0
- /package/dist/{errors → vwr-loader/src/errors}/InitializationError.d.ts +0 -0
- /package/dist/{errors → vwr-loader/src/errors}/InitializationError.js +0 -0
- /package/dist/{errors → vwr-loader/src/errors}/ensureError.d.ts +0 -0
- /package/dist/{errors → vwr-loader/src/errors}/ensureError.js +0 -0
- /package/dist/{errors → vwr-loader/src/errors}/index.d.ts +0 -0
- /package/dist/{errors → vwr-loader/src/errors}/index.js +0 -0
- /package/dist/{exitHandler.d.ts → vwr-loader/src/exitHandler.d.ts} +0 -0
- /package/dist/{getEnvironment.d.ts → vwr-loader/src/getEnvironment.d.ts} +0 -0
- /package/dist/{getEnvironment.js → vwr-loader/src/getEnvironment.js} +0 -0
- /package/dist/{getShellVersion.d.ts → vwr-loader/src/getShellVersion.d.ts} +0 -0
- /package/dist/{getShellVersion.js → vwr-loader/src/getShellVersion.js} +0 -0
- /package/dist/{loadVwr.d.ts → vwr-loader/src/loadVwr.d.ts} +0 -0
- /package/dist/{polyfills.d.ts → vwr-loader/src/polyfills.d.ts} +0 -0
- /package/dist/{polyfills.js → vwr-loader/src/polyfills.js} +0 -0
- /package/dist/{test-setup.d.ts → vwr-loader/src/test-setup.d.ts} +0 -0
- /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 @@
|
|
|
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":"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"}
|
|
@@ -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
|