@volley/vwr-loader 1.6.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 +51 -25
- package/dist/cli.js.map +1 -1
- package/dist/vwr/src/envDefaults.d.ts.map +1 -1
- package/dist/vwr/src/envDefaults.js +6 -39
- package/dist/vwr/src/envDefaults.js.map +1 -1
- 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/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/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/vwr/src/vwrConfig.d.ts.map +1 -1
- package/dist/vwr/src/vwrConfig.js +11 -2
- package/dist/vwr/src/vwrConfig.js.map +1 -1
- package/{src → dist/vwr-loader}/index.html +1 -1
- 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/index.d.ts +3 -3
- package/dist/vwr-loader/src/index.d.ts.map +1 -1
- package/dist/vwr-loader/src/index.js +2 -2
- package/dist/vwr-loader/src/index.js.map +1 -1
- package/dist/vwr-loader/src/loadVwr.d.ts.map +1 -1
- package/dist/vwr-loader/src/loadVwr.js +28 -22
- package/dist/vwr-loader/src/loadVwr.js.map +1 -1
- package/dist/vwr-loader/src/logger.d.ts +1 -1
- package/dist/vwr-loader/src/logger.d.ts.map +1 -1
- package/dist/vwr-loader/src/logger.js +1 -1
- package/dist/vwr-loader/src/logger.js.map +1 -1
- package/dist/vwr-loader/src/main.js +1 -1
- package/dist/vwr-loader/src/main.js.map +1 -1
- package/package.json +4 -5
- 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/index.html +0 -25
- package/dist/main.js +0 -12
- package/dist/main.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/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 -417
- package/src/exitHandler.ts +0 -233
- 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 -133
- package/src/index.ts +0 -7
- package/src/loadVwr.test.ts +0 -554
- package/src/loadVwr.ts +0 -363
- package/src/logger.ts +0 -11
- package/src/main.test.ts +0 -157
- package/src/main.ts +0 -128
- package/src/polyfills.ts +0 -32
- package/src/test-setup.ts +0 -5
- package/src/vite-env.d.ts +0 -33
|
@@ -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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { InputDeviceType } from "@volley/platform-sdk/lib";
|
|
2
|
+
import { getDeviceId } from "./getDeviceId";
|
|
3
|
+
/**
|
|
4
|
+
* Infer device type from device name using heuristics.
|
|
5
|
+
* Mirrors the SDK's inferDeviceType logic so bootstrap can produce
|
|
6
|
+
* the final format without VWR needing to transform.
|
|
7
|
+
*/
|
|
8
|
+
function inferDeviceType(deviceName) {
|
|
9
|
+
const name = deviceName.toLowerCase();
|
|
10
|
+
if (name.includes("remote") ||
|
|
11
|
+
name.includes("fire tv") ||
|
|
12
|
+
name.includes("shield") ||
|
|
13
|
+
name.includes("roku"))
|
|
14
|
+
return InputDeviceType.HARDWARE_REMOTE;
|
|
15
|
+
if (name.includes("controller") ||
|
|
16
|
+
name.includes("gamepad") ||
|
|
17
|
+
name.includes("xbox") ||
|
|
18
|
+
name.includes("playstation") ||
|
|
19
|
+
name.includes("dualshock") ||
|
|
20
|
+
name.includes("dualsense"))
|
|
21
|
+
return InputDeviceType.GAME_CONTROLLER;
|
|
22
|
+
if (name.includes("keyboard"))
|
|
23
|
+
return InputDeviceType.KEYBOARD_DEVICE;
|
|
24
|
+
if (name.includes("mouse") ||
|
|
25
|
+
name.includes("trackpad") ||
|
|
26
|
+
name.includes("touchpad"))
|
|
27
|
+
return InputDeviceType.POINTING_DEVICE;
|
|
28
|
+
if (name.includes("touch") || name.includes("screen"))
|
|
29
|
+
return InputDeviceType.TOUCH_DEVICE;
|
|
30
|
+
if (name.includes("mobile") || name.includes("app"))
|
|
31
|
+
return InputDeviceType.MOBILE_APP;
|
|
32
|
+
return InputDeviceType.UNKNOWN;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Collect FireTV device info from Capacitor plugins.
|
|
36
|
+
* Must be called from the bootstrap's main window where Capacitor globals are available
|
|
37
|
+
* (NOT from the VWR https:// iframe).
|
|
38
|
+
*/
|
|
39
|
+
export async function collectFireTVDeviceInfo(logger, shellVersion) {
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
41
|
+
const capacitor = window.Capacitor;
|
|
42
|
+
if (!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.Plugins)) {
|
|
43
|
+
logger.warn("Capacitor.Plugins not available; returning defaults");
|
|
44
|
+
return {
|
|
45
|
+
locale: "unknown",
|
|
46
|
+
screenResolution: { width: 0, height: 0 },
|
|
47
|
+
model: "unknown",
|
|
48
|
+
manufacturer: "Amazon",
|
|
49
|
+
operatingSystem: "android",
|
|
50
|
+
osVersion: "unknown",
|
|
51
|
+
sdkVersion: 0,
|
|
52
|
+
deviceId: "unknown",
|
|
53
|
+
nativeShellAppVersion: shellVersion,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const device = capacitor.Plugins.Device;
|
|
57
|
+
const deviceInfoPlugin = capacitor.Plugins.DeviceInfo;
|
|
58
|
+
// Collect all available info in parallel
|
|
59
|
+
const [infoResult, localeResult, screenResult, nativeInfoResult, adIdResult, inputSourcesResult,] = await Promise.allSettled([
|
|
60
|
+
(_a = device === null || device === void 0 ? void 0 : device.getInfo) === null || _a === void 0 ? void 0 : _a.call(device),
|
|
61
|
+
(_b = device === null || device === void 0 ? void 0 : device.getLanguageTag) === null || _b === void 0 ? void 0 : _b.call(device),
|
|
62
|
+
(_c = deviceInfoPlugin === null || deviceInfoPlugin === void 0 ? void 0 : deviceInfoPlugin.getScreenResolution) === null || _c === void 0 ? void 0 : _c.call(deviceInfoPlugin),
|
|
63
|
+
(_d = deviceInfoPlugin === null || deviceInfoPlugin === void 0 ? void 0 : deviceInfoPlugin.getDeviceInfo) === null || _d === void 0 ? void 0 : _d.call(deviceInfoPlugin),
|
|
64
|
+
(_e = deviceInfoPlugin === null || deviceInfoPlugin === void 0 ? void 0 : deviceInfoPlugin.getAdvertisingId) === null || _e === void 0 ? void 0 : _e.call(deviceInfoPlugin),
|
|
65
|
+
(_f = deviceInfoPlugin === null || deviceInfoPlugin === void 0 ? void 0 : deviceInfoPlugin.getInputDeviceSources) === null || _f === void 0 ? void 0 : _f.call(deviceInfoPlugin),
|
|
66
|
+
]);
|
|
67
|
+
const deviceId = (_g = (await getDeviceId("FIRE_TV", logger))) !== null && _g !== void 0 ? _g : "unknown";
|
|
68
|
+
// Device info from Capacitor Device plugin (model, manufacturer, osVersion, etc.)
|
|
69
|
+
let model = "unknown";
|
|
70
|
+
let manufacturer = "Amazon";
|
|
71
|
+
let operatingSystem = "android";
|
|
72
|
+
let osVersion = "unknown";
|
|
73
|
+
let webViewVersion;
|
|
74
|
+
let sdkVersion = 0;
|
|
75
|
+
if (infoResult.status === "fulfilled" && infoResult.value) {
|
|
76
|
+
const info = infoResult.value;
|
|
77
|
+
model = (_h = info.model) !== null && _h !== void 0 ? _h : "unknown";
|
|
78
|
+
manufacturer = (_j = info.manufacturer) !== null && _j !== void 0 ? _j : "Amazon";
|
|
79
|
+
operatingSystem = (_k = info.operatingSystem) !== null && _k !== void 0 ? _k : "android";
|
|
80
|
+
osVersion = (_l = info.osVersion) !== null && _l !== void 0 ? _l : "unknown";
|
|
81
|
+
webViewVersion = info.webViewVersion;
|
|
82
|
+
if (typeof info.androidSDKVersion === "number") {
|
|
83
|
+
sdkVersion = info.androidSDKVersion;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
logger.error({
|
|
88
|
+
reason: infoResult.status === "rejected"
|
|
89
|
+
? (_m = infoResult.reason) === null || _m === void 0 ? void 0 : _m.message
|
|
90
|
+
: "no value",
|
|
91
|
+
}, "Failed to get device info");
|
|
92
|
+
}
|
|
93
|
+
// Locale from Capacitor Device plugin
|
|
94
|
+
let locale = "unknown";
|
|
95
|
+
if (localeResult.status === "fulfilled" && ((_o = localeResult.value) === null || _o === void 0 ? void 0 : _o.value)) {
|
|
96
|
+
locale = localeResult.value.value;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
logger.error({
|
|
100
|
+
reason: localeResult.status === "rejected"
|
|
101
|
+
? (_p = localeResult.reason) === null || _p === void 0 ? void 0 : _p.message
|
|
102
|
+
: "no value",
|
|
103
|
+
}, "Failed to get locale");
|
|
104
|
+
}
|
|
105
|
+
// Screen resolution from DeviceInfo plugin
|
|
106
|
+
let screenResolution = { width: 0, height: 0 };
|
|
107
|
+
if (screenResult.status === "fulfilled" && screenResult.value) {
|
|
108
|
+
screenResolution = {
|
|
109
|
+
width: (_q = screenResult.value.width) !== null && _q !== void 0 ? _q : 0,
|
|
110
|
+
height: (_r = screenResult.value.height) !== null && _r !== void 0 ? _r : 0,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
logger.error({
|
|
115
|
+
reason: screenResult.status === "rejected"
|
|
116
|
+
? (_s = screenResult.reason) === null || _s === void 0 ? void 0 : _s.message
|
|
117
|
+
: "no value",
|
|
118
|
+
}, "Failed to get screen resolution");
|
|
119
|
+
}
|
|
120
|
+
// OS display version and shell app version from DeviceInfo plugin
|
|
121
|
+
let osDisplayVersion;
|
|
122
|
+
let nativeShellAppVersion = shellVersion;
|
|
123
|
+
if (nativeInfoResult.status === "fulfilled" && nativeInfoResult.value) {
|
|
124
|
+
osDisplayVersion = nativeInfoResult.value.osDisplayVersion;
|
|
125
|
+
if (nativeInfoResult.value.versionName) {
|
|
126
|
+
nativeShellAppVersion = nativeInfoResult.value.versionName;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
logger.error({
|
|
131
|
+
reason: nativeInfoResult.status === "rejected"
|
|
132
|
+
? (_t = nativeInfoResult.reason) === null || _t === void 0 ? void 0 : _t.message
|
|
133
|
+
: "no value",
|
|
134
|
+
}, "Failed to get native device info");
|
|
135
|
+
}
|
|
136
|
+
// Advertising ID from DeviceInfo plugin
|
|
137
|
+
let adId;
|
|
138
|
+
if (adIdResult.status === "fulfilled") {
|
|
139
|
+
adId = (_u = adIdResult.value) !== null && _u !== void 0 ? _u : null;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
logger.error({ reason: (_v = adIdResult.reason) === null || _v === void 0 ? void 0 : _v.message }, "Failed to get advertising ID");
|
|
143
|
+
}
|
|
144
|
+
// Input device sources from DeviceInfo plugin (transform raw names to include deviceType)
|
|
145
|
+
let inputDeviceSources;
|
|
146
|
+
if (inputSourcesResult.status === "fulfilled" && inputSourcesResult.value) {
|
|
147
|
+
const rawDevices = (_w = inputSourcesResult.value.devices) !== null && _w !== void 0 ? _w : {};
|
|
148
|
+
const devices = {};
|
|
149
|
+
for (const [id, rawDevice] of Object.entries(rawDevices)) {
|
|
150
|
+
const name = (_x = rawDevice.name) !== null && _x !== void 0 ? _x : "Unknown";
|
|
151
|
+
devices[id] = { name, deviceType: inferDeviceType(name) };
|
|
152
|
+
}
|
|
153
|
+
inputDeviceSources = { devices };
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
logger.error({
|
|
157
|
+
reason: inputSourcesResult.status === "rejected"
|
|
158
|
+
? (_y = inputSourcesResult.reason) === null || _y === void 0 ? void 0 : _y.message
|
|
159
|
+
: "no value",
|
|
160
|
+
}, "Failed to get input device sources");
|
|
161
|
+
}
|
|
162
|
+
const deviceInfo = {
|
|
163
|
+
locale,
|
|
164
|
+
screenResolution,
|
|
165
|
+
model,
|
|
166
|
+
manufacturer,
|
|
167
|
+
operatingSystem,
|
|
168
|
+
osVersion,
|
|
169
|
+
sdkVersion,
|
|
170
|
+
webViewVersion,
|
|
171
|
+
deviceId,
|
|
172
|
+
nativeShellAppVersion,
|
|
173
|
+
osDisplayVersion,
|
|
174
|
+
adId,
|
|
175
|
+
inputDeviceSources,
|
|
176
|
+
};
|
|
177
|
+
logger.debug({ deviceInfo }, "FireTV device info collected");
|
|
178
|
+
return deviceInfo;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=firetvCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firetvCollector.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/firetvCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ILogger } from "@volley/logger";
|
|
2
|
+
import type { NativeDeviceInfoData } from "./rpc";
|
|
3
|
+
/**
|
|
4
|
+
* Collect LG device info from native webOS APIs.
|
|
5
|
+
* Uses Luna services matching the SDK's LGTVDeviceInfo implementation.
|
|
6
|
+
*/
|
|
7
|
+
export declare function collectLgDeviceInfo(logger: ILogger, shellVersion: string): Promise<NativeDeviceInfoData>;
|
|
8
|
+
//# sourceMappingURL=lgCollector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lgCollector.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/lgCollector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAiJjD;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAiE/B"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { getDeviceId } from "./getDeviceId";
|
|
2
|
+
const LUNA_TIMEOUT = 5000;
|
|
3
|
+
function callLunaService(serviceUri, method, parameters = {}) {
|
|
4
|
+
return new Promise((resolve) => {
|
|
5
|
+
if (typeof webOS === "undefined" || !webOS.service) {
|
|
6
|
+
resolve(null);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
let request;
|
|
10
|
+
const timeoutId = setTimeout(() => {
|
|
11
|
+
request === null || request === void 0 ? void 0 : request.cancel();
|
|
12
|
+
resolve(null);
|
|
13
|
+
}, LUNA_TIMEOUT);
|
|
14
|
+
request = webOS.service.request(serviceUri, {
|
|
15
|
+
method,
|
|
16
|
+
parameters,
|
|
17
|
+
onSuccess: (response) => {
|
|
18
|
+
clearTimeout(timeoutId);
|
|
19
|
+
resolve(response);
|
|
20
|
+
},
|
|
21
|
+
onFailure: () => {
|
|
22
|
+
clearTimeout(timeoutId);
|
|
23
|
+
resolve(null);
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function getLgVideoPlaybackResolution() {
|
|
29
|
+
return new Promise((resolve) => {
|
|
30
|
+
if (typeof webOS === "undefined" || !webOS.deviceInfo) {
|
|
31
|
+
resolve(undefined);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const timeoutId = setTimeout(() => resolve(undefined), LUNA_TIMEOUT);
|
|
35
|
+
webOS.deviceInfo((device) => {
|
|
36
|
+
clearTimeout(timeoutId);
|
|
37
|
+
if (device.screenWidth && device.screenHeight) {
|
|
38
|
+
resolve({
|
|
39
|
+
width: device.screenWidth,
|
|
40
|
+
height: device.screenHeight,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
resolve(undefined);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function getWebViewVersion() {
|
|
50
|
+
const userAgent = navigator.userAgent;
|
|
51
|
+
const chromeMatch = userAgent.match(/Chrome\/(\d+(?:\.\d+)+)/);
|
|
52
|
+
if (chromeMatch) {
|
|
53
|
+
return chromeMatch[1];
|
|
54
|
+
}
|
|
55
|
+
// For older webOS versions using WebKit
|
|
56
|
+
const webkitMatch = userAgent.match(/WebKit\/(\d+(?:\.\d+)+)/);
|
|
57
|
+
if (webkitMatch) {
|
|
58
|
+
return `WebKit ${webkitMatch[1]}`;
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Map SDK major version to webOS version string.
|
|
64
|
+
* Matches the SDK's LGTVDeviceInfo.convertSDKToOSVersion.
|
|
65
|
+
*/
|
|
66
|
+
function convertSDKToOSVersion(sdkMajorVersion) {
|
|
67
|
+
var _a;
|
|
68
|
+
// TODO: LG might release new SDK versions in 2026
|
|
69
|
+
// Include mapping for SDK 11+ as webOS 26 for now
|
|
70
|
+
if (sdkMajorVersion >= 11) {
|
|
71
|
+
return "26";
|
|
72
|
+
}
|
|
73
|
+
const sdkToOSMap = {
|
|
74
|
+
10: "25",
|
|
75
|
+
9: "24",
|
|
76
|
+
8: "23",
|
|
77
|
+
7: "22",
|
|
78
|
+
6: "6.0",
|
|
79
|
+
5: "5.0",
|
|
80
|
+
4: "4.0",
|
|
81
|
+
3: "3.0",
|
|
82
|
+
2: "2.0",
|
|
83
|
+
1: "1.0",
|
|
84
|
+
};
|
|
85
|
+
return (_a = sdkToOSMap[sdkMajorVersion]) !== null && _a !== void 0 ? _a : "unknown";
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Collect LG device info from native webOS APIs.
|
|
89
|
+
* Uses Luna services matching the SDK's LGTVDeviceInfo implementation.
|
|
90
|
+
*/
|
|
91
|
+
export async function collectLgDeviceInfo(logger, shellVersion) {
|
|
92
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
93
|
+
const [deviceIdResult, videoPlaybackResolution, systemInfo, localeInfo] = await Promise.all([
|
|
94
|
+
getDeviceId("LG_TV", logger),
|
|
95
|
+
getLgVideoPlaybackResolution(),
|
|
96
|
+
callLunaService("luna://com.webos.service.tv.systemproperty", "getSystemInfo", { keys: ["modelName", "sdkVersion"] }),
|
|
97
|
+
callLunaService("luna://com.webos.settingsservice", "getSystemSettings", { keys: ["localeInfo"] }),
|
|
98
|
+
]);
|
|
99
|
+
const localeData = (_a = localeInfo === null || localeInfo === void 0 ? void 0 : localeInfo.settings) === null || _a === void 0 ? void 0 : _a.localeInfo;
|
|
100
|
+
const locale = (_f = (_e = (_c = (_b = localeData === null || localeData === void 0 ? void 0 : localeData.locales) === null || _b === void 0 ? void 0 : _b.UI) !== null && _c !== void 0 ? _c : (_d = localeData === null || localeData === void 0 ? void 0 : localeData.locales) === null || _d === void 0 ? void 0 : _d.TV) !== null && _e !== void 0 ? _e : localeData === null || localeData === void 0 ? void 0 : localeData.FMT) !== null && _f !== void 0 ? _f : "unknown";
|
|
101
|
+
const sdkVersionStr = systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.sdkVersion;
|
|
102
|
+
let sdkVersion = 0;
|
|
103
|
+
let sdkMajorVersion;
|
|
104
|
+
if (sdkVersionStr) {
|
|
105
|
+
const match = sdkVersionStr.match(/(\d+)\.(\d+)\.(\d+)/);
|
|
106
|
+
if ((match === null || match === void 0 ? void 0 : match[1]) && (match === null || match === void 0 ? void 0 : match[2]) && (match === null || match === void 0 ? void 0 : match[3])) {
|
|
107
|
+
sdkMajorVersion = parseInt(match[1], 10);
|
|
108
|
+
sdkVersion =
|
|
109
|
+
sdkMajorVersion * 10000 +
|
|
110
|
+
parseInt(match[2], 10) * 100 +
|
|
111
|
+
parseInt(match[3], 10);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const screenResolution = {
|
|
115
|
+
width: window.innerWidth,
|
|
116
|
+
height: window.innerHeight,
|
|
117
|
+
};
|
|
118
|
+
const deviceId = deviceIdResult !== null && deviceIdResult !== void 0 ? deviceIdResult : "unknown";
|
|
119
|
+
logger.debug({ deviceId, screenResolution, videoPlaybackResolution, systemInfo, locale }, "LG device info collected");
|
|
120
|
+
return {
|
|
121
|
+
locale,
|
|
122
|
+
screenResolution,
|
|
123
|
+
videoPlaybackResolution: videoPlaybackResolution !== null && videoPlaybackResolution !== void 0 ? videoPlaybackResolution : undefined,
|
|
124
|
+
model: (_g = systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.modelName) !== null && _g !== void 0 ? _g : "unknown",
|
|
125
|
+
manufacturer: "LG Electronics",
|
|
126
|
+
operatingSystem: "webOS",
|
|
127
|
+
osVersion: sdkMajorVersion
|
|
128
|
+
? convertSDKToOSVersion(sdkMajorVersion)
|
|
129
|
+
: "unknown",
|
|
130
|
+
sdkVersion,
|
|
131
|
+
webViewVersion: getWebViewVersion(),
|
|
132
|
+
deviceId,
|
|
133
|
+
nativeShellAppVersion: shellVersion,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=lgCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lgCollector.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/lgCollector.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
|
+
* Collect mobile (iOS/Android) device info from injected app context.
|
|
5
|
+
* Must be called from the bootstrap's main window where iosAppContext/androidAppContext
|
|
6
|
+
* globals are available.
|
|
7
|
+
*/
|
|
8
|
+
export declare function collectMobileDeviceInfo(platform: string, logger: ILogger, shellVersion: string): Promise<NativeDeviceInfoData>;
|
|
9
|
+
//# sourceMappingURL=mobileCollector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobileCollector.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/mobileCollector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAK7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAmBjD;;;;GAIG;AACH,wBAAsB,uBAAuB,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAiC/B"}
|