@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,47 @@
|
|
|
1
|
+
import { getDeviceId } from "./getDeviceId";
|
|
2
|
+
/**
|
|
3
|
+
* Detect the operating system from the user agent string.
|
|
4
|
+
*/
|
|
5
|
+
function detectOS(userAgent) {
|
|
6
|
+
const iosMatch = userAgent.match(/OS (\d+[_.\d]*)/);
|
|
7
|
+
if (iosMatch === null || iosMatch === void 0 ? void 0 : iosMatch[1]) {
|
|
8
|
+
return { os: "ios", version: iosMatch[1].replace(/_/g, ".") };
|
|
9
|
+
}
|
|
10
|
+
const androidMatch = userAgent.match(/Android (\d+[.\d]*)/);
|
|
11
|
+
if (androidMatch === null || androidMatch === void 0 ? void 0 : androidMatch[1]) {
|
|
12
|
+
return { os: "android", version: androidMatch[1] };
|
|
13
|
+
}
|
|
14
|
+
return { os: "unknown", version: "unknown" };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Collect mobile (iOS/Android) device info from injected app context.
|
|
18
|
+
* Must be called from the bootstrap's main window where iosAppContext/androidAppContext
|
|
19
|
+
* globals are available.
|
|
20
|
+
*/
|
|
21
|
+
export async function collectMobileDeviceInfo(platform, logger, shellVersion) {
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
23
|
+
const win = window;
|
|
24
|
+
const iosContext = win.iosAppContext;
|
|
25
|
+
const androidContext = win.androidAppContext;
|
|
26
|
+
const { os, version } = detectOS(navigator.userAgent);
|
|
27
|
+
const deviceId = (_a = (await getDeviceId(platform, logger))) !== null && _a !== void 0 ? _a : "unknown";
|
|
28
|
+
const nativeShellAppVersion = (_c = (_b = iosContext === null || iosContext === void 0 ? void 0 : iosContext.appVersion) !== null && _b !== void 0 ? _b : androidContext === null || androidContext === void 0 ? void 0 : androidContext.appVersion) !== null && _c !== void 0 ? _c : shellVersion;
|
|
29
|
+
const deviceInfo = {
|
|
30
|
+
locale: (_d = navigator.language) !== null && _d !== void 0 ? _d : "unknown",
|
|
31
|
+
screenResolution: {
|
|
32
|
+
width: (_f = (_e = window.screen) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : 0,
|
|
33
|
+
height: (_h = (_g = window.screen) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : 0,
|
|
34
|
+
},
|
|
35
|
+
model: "unknown",
|
|
36
|
+
manufacturer: "unknown",
|
|
37
|
+
operatingSystem: os,
|
|
38
|
+
osVersion: version,
|
|
39
|
+
sdkVersion: 0,
|
|
40
|
+
webViewVersion: (_j = navigator.userAgent) !== null && _j !== void 0 ? _j : undefined,
|
|
41
|
+
deviceId,
|
|
42
|
+
nativeShellAppVersion,
|
|
43
|
+
};
|
|
44
|
+
logger.debug({ deviceInfo }, "Mobile device info collected");
|
|
45
|
+
return deviceInfo;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=mobileCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobileCollector.js","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/mobileCollector.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C;;GAEG;AACH,SAAS,QAAQ,CAAC,SAAiB;IAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACnD,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;IACjE,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC3D,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,QAAgB,EAChB,MAAe,EACf,YAAoB;;IAEpB,MAAM,GAAG,GAAG,MAA8B,CAAA;IAE1C,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAA;IACpC,MAAM,cAAc,GAAG,GAAG,CAAC,iBAAiB,CAAA;IAE5C,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAErD,MAAM,QAAQ,GACV,MAAA,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,mCAAI,SAAS,CAAA;IAEtD,MAAM,qBAAqB,GACvB,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,mCAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,mCAAI,YAAY,CAAA;IAExE,MAAM,UAAU,GAAyB;QACrC,MAAM,EAAE,MAAA,SAAS,CAAC,QAAQ,mCAAI,SAAS;QACvC,gBAAgB,EAAE;YACd,KAAK,EAAE,MAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,KAAK,mCAAI,CAAC;YAChC,MAAM,EAAE,MAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,mCAAI,CAAC;SACrC;QACD,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,SAAS;QACvB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,MAAA,SAAS,CAAC,SAAS,mCAAI,SAAS;QAChD,QAAQ;QACR,qBAAqB;KACxB,CAAA;IAED,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,8BAA8B,CAAC,CAAA;IAE5D,OAAO,UAAU,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { BrowserIpcConnection } from "@volley/browser-ipc";
|
|
2
|
+
import type { ILogger } from "@volley/logger";
|
|
3
|
+
import type { InputDeviceType } from "@volley/platform-sdk/lib";
|
|
4
|
+
export interface NativeDeviceInfoData {
|
|
5
|
+
locale: string;
|
|
6
|
+
screenResolution: {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
videoPlaybackResolution?: {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
};
|
|
14
|
+
model: string;
|
|
15
|
+
manufacturer: string;
|
|
16
|
+
operatingSystem: string;
|
|
17
|
+
osVersion: string;
|
|
18
|
+
sdkVersion: number;
|
|
19
|
+
webViewVersion?: string;
|
|
20
|
+
deviceId: string;
|
|
21
|
+
nativeShellAppVersion: string;
|
|
22
|
+
/** FireTV: advertising ID and limit-ad-tracking flag */
|
|
23
|
+
adId?: {
|
|
24
|
+
advertisingId: string | null;
|
|
25
|
+
limitAdTracking: boolean;
|
|
26
|
+
} | null;
|
|
27
|
+
/** FireTV: human-readable OS display version */
|
|
28
|
+
osDisplayVersion?: string;
|
|
29
|
+
/** FireTV: connected input device sources (with inferred deviceType) */
|
|
30
|
+
inputDeviceSources?: {
|
|
31
|
+
devices: {
|
|
32
|
+
[deviceId: string]: {
|
|
33
|
+
name: string;
|
|
34
|
+
deviceType: InputDeviceType;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare class DeviceInfoRpcServer {
|
|
40
|
+
#private;
|
|
41
|
+
constructor(collectFn: () => Promise<NativeDeviceInfoData>, ipcConnection: BrowserIpcConnection, logger: ILogger);
|
|
42
|
+
destroy(): void;
|
|
43
|
+
}
|
|
44
|
+
export declare class DeviceInfoRpcClient {
|
|
45
|
+
#private;
|
|
46
|
+
constructor(ipcConnection: BrowserIpcConnection, logger: ILogger);
|
|
47
|
+
init(): Promise<void>;
|
|
48
|
+
getDeviceInfo(): Promise<NativeDeviceInfoData>;
|
|
49
|
+
destroy(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../../../../vwr/src/native/device-info/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAO/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAK/D,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACnD,uBAAuB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,wDAAwD;IACxD,IAAI,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACxE,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE;QACjB,OAAO,EAAE;YACL,CAAC,QAAQ,EAAE,MAAM,GAAG;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,eAAe,CAAA;aAAE,CAAA;SACpE,CAAA;KACJ,CAAA;CACJ;AAED,qBAAa,mBAAmB;;gBAIxB,SAAS,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAC9C,aAAa,EAAE,oBAAoB,EACnC,MAAM,EAAE,OAAO;IAiBZ,OAAO,IAAI,IAAI;CAGzB;AAED,qBAAa,mBAAmB;;gBAOhB,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;IASnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAI9C,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 _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"}
|