@volley/vwr-loader 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/cli.js +37 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/main.js +11 -11
  4. package/dist/main.js.map +1 -1
  5. package/dist/{datadog.d.ts → vwr/src/datadog.d.ts} +7 -3
  6. package/dist/vwr/src/datadog.d.ts.map +1 -0
  7. package/dist/{datadog.js → vwr/src/datadog.js} +6 -5
  8. package/dist/vwr/src/datadog.js.map +1 -0
  9. package/dist/{envDefaults.d.ts → vwr/src/envDefaults.d.ts} +1 -0
  10. package/dist/vwr/src/envDefaults.d.ts.map +1 -0
  11. package/dist/{envDefaults.js → vwr/src/envDefaults.js} +26 -0
  12. package/dist/vwr/src/envDefaults.js.map +1 -0
  13. package/dist/vwr/src/logger.d.ts +15 -0
  14. package/dist/vwr/src/logger.d.ts.map +1 -0
  15. package/dist/{logger.js → vwr/src/logger.js} +30 -46
  16. package/dist/vwr/src/logger.js.map +1 -0
  17. package/dist/vwr/src/native/device-info/getDeviceId.d.ts +13 -0
  18. package/dist/vwr/src/native/device-info/getDeviceId.d.ts.map +1 -0
  19. package/dist/vwr/src/native/device-info/getDeviceId.js +137 -0
  20. package/dist/vwr/src/native/device-info/getDeviceId.js.map +1 -0
  21. package/dist/{vwrConfig.d.ts → vwr/src/vwrConfig.d.ts} +5 -0
  22. package/dist/vwr/src/vwrConfig.d.ts.map +1 -0
  23. package/dist/{vwrConfig.js → vwr/src/vwrConfig.js} +13 -5
  24. package/dist/vwr/src/vwrConfig.js.map +1 -0
  25. package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.d.ts.map +1 -0
  26. package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.js.map +1 -0
  27. package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.d.ts.map +1 -0
  28. package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.js.map +1 -0
  29. package/dist/vwr-loader/src/__mocks__/vwrModule.d.ts.map +1 -0
  30. package/dist/vwr-loader/src/__mocks__/vwrModule.js.map +1 -0
  31. package/dist/vwr-loader/src/amplitudeFlagFetcher.d.ts.map +1 -0
  32. package/dist/vwr-loader/src/amplitudeFlagFetcher.js.map +1 -0
  33. package/dist/vwr-loader/src/errors/InitializationError.d.ts.map +1 -0
  34. package/dist/vwr-loader/src/errors/InitializationError.js.map +1 -0
  35. package/dist/vwr-loader/src/errors/ensureError.d.ts.map +1 -0
  36. package/dist/vwr-loader/src/errors/ensureError.js.map +1 -0
  37. package/dist/vwr-loader/src/errors/index.d.ts.map +1 -0
  38. package/dist/vwr-loader/src/errors/index.js.map +1 -0
  39. package/dist/vwr-loader/src/exitHandler.d.ts.map +1 -0
  40. package/dist/{exitHandler.js → vwr-loader/src/exitHandler.js} +2 -3
  41. package/dist/vwr-loader/src/exitHandler.js.map +1 -0
  42. package/dist/vwr-loader/src/getEnvironment.d.ts.map +1 -0
  43. package/dist/vwr-loader/src/getEnvironment.js.map +1 -0
  44. package/dist/vwr-loader/src/getShellVersion.d.ts.map +1 -0
  45. package/dist/vwr-loader/src/getShellVersion.js.map +1 -0
  46. package/dist/vwr-loader/src/index.d.ts +8 -0
  47. package/dist/vwr-loader/src/index.d.ts.map +1 -0
  48. package/dist/vwr-loader/src/index.js +6 -0
  49. package/dist/vwr-loader/src/index.js.map +1 -0
  50. package/dist/vwr-loader/src/loadVwr.d.ts.map +1 -0
  51. package/dist/{loadVwr.js → vwr-loader/src/loadVwr.js} +9 -6
  52. package/dist/vwr-loader/src/loadVwr.js.map +1 -0
  53. package/dist/vwr-loader/src/logger.d.ts +4 -0
  54. package/dist/vwr-loader/src/logger.d.ts.map +1 -0
  55. package/dist/vwr-loader/src/logger.js +10 -0
  56. package/dist/vwr-loader/src/logger.js.map +1 -0
  57. package/dist/vwr-loader/src/main.d.ts +2 -0
  58. package/dist/vwr-loader/src/main.d.ts.map +1 -0
  59. package/dist/vwr-loader/src/main.js +96 -0
  60. package/dist/vwr-loader/src/main.js.map +1 -0
  61. package/dist/vwr-loader/src/polyfills.d.ts.map +1 -0
  62. package/dist/vwr-loader/src/polyfills.js.map +1 -0
  63. package/dist/{test-setup.d.ts.map → vwr-loader/src/test-setup.d.ts.map} +1 -1
  64. package/dist/vwr-loader/src/test-setup.js.map +1 -0
  65. package/package.json +10 -8
  66. package/src/exitHandler.test.ts +44 -0
  67. package/src/exitHandler.ts +4 -3
  68. package/src/getShellVersion.ts +2 -1
  69. package/src/index.ts +3 -3
  70. package/src/loadVwr.test.ts +10 -5
  71. package/src/loadVwr.ts +18 -12
  72. package/src/logger.ts +5 -115
  73. package/src/main.ts +3 -2
  74. package/src/vite-env.d.ts +1 -0
  75. package/dist/__mocks__/@datadog/browser-logs.d.ts.map +0 -1
  76. package/dist/__mocks__/@datadog/browser-logs.js.map +0 -1
  77. package/dist/__mocks__/@datadog/browser-rum.d.ts.map +0 -1
  78. package/dist/__mocks__/@datadog/browser-rum.js.map +0 -1
  79. package/dist/__mocks__/vwrModule.d.ts.map +0 -1
  80. package/dist/__mocks__/vwrModule.js.map +0 -1
  81. package/dist/amplitudeFlagFetcher.d.ts.map +0 -1
  82. package/dist/amplitudeFlagFetcher.js.map +0 -1
  83. package/dist/datadog.d.ts.map +0 -1
  84. package/dist/datadog.js.map +0 -1
  85. package/dist/envDefaults.d.ts.map +0 -1
  86. package/dist/envDefaults.js.map +0 -1
  87. package/dist/errors/InitializationError.d.ts.map +0 -1
  88. package/dist/errors/InitializationError.js.map +0 -1
  89. package/dist/errors/ensureError.d.ts.map +0 -1
  90. package/dist/errors/ensureError.js.map +0 -1
  91. package/dist/errors/index.d.ts.map +0 -1
  92. package/dist/errors/index.js.map +0 -1
  93. package/dist/exitHandler.d.ts.map +0 -1
  94. package/dist/exitHandler.js.map +0 -1
  95. package/dist/getDeviceId.d.ts +0 -26
  96. package/dist/getDeviceId.d.ts.map +0 -1
  97. package/dist/getDeviceId.js +0 -209
  98. package/dist/getDeviceId.js.map +0 -1
  99. package/dist/getEnvironment.d.ts.map +0 -1
  100. package/dist/getEnvironment.js.map +0 -1
  101. package/dist/getShellVersion.d.ts.map +0 -1
  102. package/dist/getShellVersion.js.map +0 -1
  103. package/dist/index.d.ts +0 -8
  104. package/dist/index.d.ts.map +0 -1
  105. package/dist/index.js +0 -6
  106. package/dist/index.js.map +0 -1
  107. package/dist/loadVwr.d.ts.map +0 -1
  108. package/dist/loadVwr.js.map +0 -1
  109. package/dist/logger.d.ts +0 -12
  110. package/dist/logger.d.ts.map +0 -1
  111. package/dist/logger.js.map +0 -1
  112. package/dist/polyfills.d.ts.map +0 -1
  113. package/dist/polyfills.js.map +0 -1
  114. package/dist/test-setup.js.map +0 -1
  115. package/dist/types.d.ts +0 -103
  116. package/dist/types.d.ts.map +0 -1
  117. package/dist/types.js +0 -5
  118. package/dist/types.js.map +0 -1
  119. package/dist/vwrConfig.d.ts.map +0 -1
  120. package/dist/vwrConfig.js.map +0 -1
  121. package/src/datadog.ts +0 -55
  122. package/src/envDefaults.ts +0 -94
  123. package/src/getDeviceId.test.ts +0 -298
  124. package/src/getDeviceId.ts +0 -224
  125. package/src/types.ts +0 -105
  126. package/src/vwrConfig.test.ts +0 -386
  127. package/src/vwrConfig.ts +0 -374
  128. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.d.ts +0 -0
  129. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.js +0 -0
  130. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.d.ts +0 -0
  131. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.js +0 -0
  132. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.d.ts +0 -0
  133. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.js +0 -0
  134. /package/dist/{amplitudeFlagFetcher.d.ts → vwr-loader/src/amplitudeFlagFetcher.d.ts} +0 -0
  135. /package/dist/{amplitudeFlagFetcher.js → vwr-loader/src/amplitudeFlagFetcher.js} +0 -0
  136. /package/dist/{errors → vwr-loader/src/errors}/InitializationError.d.ts +0 -0
  137. /package/dist/{errors → vwr-loader/src/errors}/InitializationError.js +0 -0
  138. /package/dist/{errors → vwr-loader/src/errors}/ensureError.d.ts +0 -0
  139. /package/dist/{errors → vwr-loader/src/errors}/ensureError.js +0 -0
  140. /package/dist/{errors → vwr-loader/src/errors}/index.d.ts +0 -0
  141. /package/dist/{errors → vwr-loader/src/errors}/index.js +0 -0
  142. /package/dist/{exitHandler.d.ts → vwr-loader/src/exitHandler.d.ts} +0 -0
  143. /package/dist/{getEnvironment.d.ts → vwr-loader/src/getEnvironment.d.ts} +0 -0
  144. /package/dist/{getEnvironment.js → vwr-loader/src/getEnvironment.js} +0 -0
  145. /package/dist/{getShellVersion.d.ts → vwr-loader/src/getShellVersion.d.ts} +0 -0
  146. /package/dist/{getShellVersion.js → vwr-loader/src/getShellVersion.js} +0 -0
  147. /package/dist/{loadVwr.d.ts → vwr-loader/src/loadVwr.d.ts} +0 -0
  148. /package/dist/{polyfills.d.ts → vwr-loader/src/polyfills.d.ts} +0 -0
  149. /package/dist/{polyfills.js → vwr-loader/src/polyfills.js} +0 -0
  150. /package/dist/{test-setup.d.ts → vwr-loader/src/test-setup.d.ts} +0 -0
  151. /package/dist/{test-setup.js → vwr-loader/src/test-setup.js} +0 -0
package/dist/types.d.ts DELETED
@@ -1,103 +0,0 @@
1
- /**
2
- * Shared type definitions for vwr-loader platform APIs
3
- */
4
- /**
5
- * Extended window interface for mobile app context.
6
- * Matches the types from @volley/sdk ExtendedWindow.ts
7
- */
8
- export interface MobileExtendedWindow extends Window {
9
- iosAppContext?: {
10
- appVersion: string;
11
- environment?: string;
12
- phoneDeviceId?: string;
13
- };
14
- androidAppContext?: {
15
- appVersion: string;
16
- environment?: string;
17
- phoneDeviceId?: string;
18
- };
19
- }
20
- /**
21
- * Global type declarations for platform APIs
22
- */
23
- declare global {
24
- interface Window {
25
- Capacitor?: {
26
- Plugins?: {
27
- DeviceInfo?: {
28
- getDeviceInfo(): Promise<{
29
- versionName?: string;
30
- [key: string]: any;
31
- }>;
32
- getAndroidId(): Promise<{
33
- androidId?: string;
34
- [key: string]: any;
35
- }>;
36
- getNativeShellAppEnvironment(): Promise<{
37
- environment?: string;
38
- }>;
39
- [key: string]: any;
40
- };
41
- AppLifecycle?: {
42
- exitApp(): Promise<void>;
43
- [key: string]: any;
44
- };
45
- InputHandler?: {
46
- addListener(eventName: "keyDown" | "keyUp", listenerFunc: (event: {
47
- keyCode: number;
48
- }) => void): Promise<{
49
- remove: () => Promise<void> | void;
50
- }>;
51
- [key: string]: any;
52
- };
53
- [key: string]: any;
54
- };
55
- [key: string]: any;
56
- };
57
- webapis?: {
58
- productinfo?: {
59
- getDuid: () => string;
60
- };
61
- };
62
- webOS?: {
63
- service?: {
64
- request: (uri: string, options: {
65
- method?: string;
66
- parameters?: Record<string, unknown>;
67
- onSuccess?: (response: LGDeviceIdResponse) => void;
68
- onFailure?: (error: {
69
- errorText?: string;
70
- }) => void;
71
- subscribe?: boolean;
72
- }) => {
73
- cancel: () => void;
74
- };
75
- };
76
- fetchAppInfo?: (callback: (appInfo?: {
77
- version?: string;
78
- }) => void) => void;
79
- platformBack?: () => void;
80
- };
81
- tizen?: {
82
- application?: {
83
- getAppInfo: () => {
84
- version?: string;
85
- };
86
- getCurrentApplication: () => {
87
- exit: () => void;
88
- };
89
- };
90
- };
91
- }
92
- }
93
- /**
94
- * LG Luna service response for device ID
95
- */
96
- export interface LGDeviceIdResponse {
97
- idList?: Array<{
98
- idType?: string;
99
- idValue?: string;
100
- }>;
101
- returnValue?: boolean;
102
- }
103
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Shared type definitions for vwr-loader platform APIs
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vwrConfig.d.ts","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI7C,MAAM,MAAM,SAAS,GAAG;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,YAAY,GAClB,OAAO,GACP,QAAQ,GACR,cAAc,GACd,aAAa,GACb,UAAU,CAAA;AAEhB,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAmSD,eAAO,MAAM,YAAY,GACrB,SAAS,gBAAgB,EACzB,QAAQ,OAAO,KAChB,OAAO,CAAC,eAAe,CAEzB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,KAAG,OAWlD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vwrConfig.js","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"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"}
package/src/datadog.ts DELETED
@@ -1,55 +0,0 @@
1
- import { datadogRum, type RumGlobal } from "@datadog/browser-rum"
2
-
3
- import { logger } from "./logger"
4
-
5
- const APPLICATION_ID = import.meta.env.VITE_DATADOG_APPLICATION_ID as
6
- | string
7
- | undefined
8
- const CLIENT_TOKEN = import.meta.env.VITE_DATADOG_CLIENT_TOKEN as
9
- | string
10
- | undefined
11
-
12
- export interface RumGlobalOptions {
13
- /** Environment (e.g., "dev", "staging", "prod") */
14
- env: string
15
- /** Application version */
16
- version?: string
17
- /** Service name (defaults to "vwr-loader") */
18
- service?: string
19
- }
20
-
21
- /**
22
- * Initialize Datadog RUM with build-time injected credentials.
23
- *
24
- * When running in a mobile webview with WebViewTracking.enable(),
25
- * events are automatically forwarded to the mobile app's RUM session.
26
- *
27
- * @returns true if RUM was initialized, false if credentials were missing
28
- */
29
- export function initRumGlobal(
30
- options: RumGlobalOptions
31
- ): RumGlobal | undefined {
32
- try {
33
- if (!APPLICATION_ID || !CLIENT_TOKEN) {
34
- throw new Error("Datadog credentials not provided")
35
- }
36
- datadogRum.init({
37
- applicationId: APPLICATION_ID,
38
- clientToken: CLIENT_TOKEN,
39
- site: "datadoghq.com",
40
- service: options.service ?? "vwr-loader",
41
- env: options.env,
42
- version: options.version,
43
- sessionSampleRate: 100,
44
- sessionReplaySampleRate: 0,
45
- trackResources: true,
46
- trackLongTasks: true,
47
- defaultPrivacyLevel: "mask-user-input",
48
- allowFallbackToLocalStorage: true,
49
- })
50
-
51
- return datadogRum
52
- } catch (error) {
53
- logger.error("Failed to initialize Datadog RUM:", error)
54
- }
55
- }
@@ -1,94 +0,0 @@
1
- export interface EnvConfig {
2
- hubUrl: string
3
- vwrUrl: string
4
- configUrl: string
5
- configFile: string
6
- platformApiUrl: string
7
- platformAuthApiUrl: string
8
- amplitudeKey: string // Used for amplitude flag fetch, not part of VWRConfig
9
- trustedOrigins?: string[]
10
- }
11
-
12
- const CONFIG_URL_DEFAULT = "https://vwr.volley.tv/config/"
13
- const CONFIG_FILE_DEFAULT = "vwrConfig.json"
14
- const VWR_DEFAULT_VERSION = "1.0.0"
15
- const VWR_URL_PATH_DEFAULT = `v1/${VWR_DEFAULT_VERSION}/vwr.js`
16
-
17
- // Parse comma-separated env var, returning undefined if empty to allow fallback
18
- const parseTrustedOrigins = (
19
- envVar: string | undefined
20
- ): string[] | undefined => {
21
- const parsed = envVar?.split(",").filter(Boolean)
22
- return parsed?.length ? parsed : undefined
23
- }
24
-
25
- const prodConfig: EnvConfig = {
26
- hubUrl: "https://game-clients.volley.tv/hub",
27
- vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
28
- configUrl: CONFIG_URL_DEFAULT,
29
- configFile: CONFIG_FILE_DEFAULT,
30
- platformApiUrl: "https://platform.volley-services.net",
31
- platformAuthApiUrl: "https://auth.volley.tv",
32
- amplitudeKey: "",
33
- trustedOrigins: ["https://volley.tv", "https://vl.ly", "https://vly.gg"],
34
- }
35
-
36
- export const ENV_DEFAULTS: Record<string, EnvConfig> = {
37
- local: {
38
- hubUrl: import.meta.env.VITE_HUB_URL || "http://localhost:5173",
39
- vwrUrl: import.meta.env.VITE_VWR_URL || "http://localhost:5174/vwr.js",
40
- configUrl:
41
- import.meta.env.VITE_CONFIG_URL || "http://localhost:5174/config/",
42
- configFile: import.meta.env.VITE_CONFIG_FILE || CONFIG_FILE_DEFAULT,
43
- platformApiUrl:
44
- import.meta.env.VITE_PLATFORM_API_URL ||
45
- "https://platform-dev.volley-services.net",
46
- platformAuthApiUrl:
47
- import.meta.env.VITE_PLATFORM_AUTH_API_URL ||
48
- "https://auth-dev.volley.tv",
49
- amplitudeKey: "client-uJJVW3zKPC1G9kqPhUumLnZN6eaY42iQ",
50
- trustedOrigins: parseTrustedOrigins(
51
- import.meta.env.VITE_TRUSTED_ORIGINS
52
- ) || [
53
- "http://localhost:5173",
54
- "http://localhost:5174",
55
- "https://vl.ly",
56
- "https://dev.vl.ly",
57
- "https://staging.vl.ly",
58
- "https://vly.gg",
59
- ],
60
- },
61
- dev: {
62
- hubUrl: "https://game-clients-dev.volley.tv/hub",
63
- vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
64
- configUrl: CONFIG_URL_DEFAULT,
65
- configFile: CONFIG_FILE_DEFAULT,
66
- platformApiUrl: "https://platform-dev.volley-services.net",
67
- platformAuthApiUrl: "https://auth-dev.volley.tv",
68
- amplitudeKey: "client-uJJVW3zKPC1G9kqPhUumLnZN6eaY42iQ",
69
- trustedOrigins: [
70
- "https://volley.tv",
71
- "https://vl.ly",
72
- "https://dev.vl.ly",
73
- "https://staging.vl.ly",
74
- "https://vly.gg",
75
- ],
76
- },
77
- staging: {
78
- hubUrl: "https://game-clients-staging.volley.tv/hub",
79
- vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
80
- configUrl: CONFIG_URL_DEFAULT,
81
- configFile: CONFIG_FILE_DEFAULT,
82
- platformApiUrl: "https://platform-staging.volley-services.net",
83
- platformAuthApiUrl: "https://auth-staging.volley.tv",
84
- amplitudeKey: "",
85
- trustedOrigins: [
86
- "https://volley.tv",
87
- "https://vl.ly",
88
- "https://staging.vl.ly",
89
- "https://vly.gg",
90
- ],
91
- },
92
- prod: prodConfig,
93
- production: prodConfig, // Alias for prod
94
- }
@@ -1,298 +0,0 @@
1
- import * as uuid from "uuid"
2
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"
3
-
4
- import { getDeviceId } from "./getDeviceId"
5
-
6
- vi.mock("uuid")
7
-
8
- describe("getDeviceId", () => {
9
- beforeEach(() => {
10
- vi.clearAllMocks()
11
- // Clean up window properties
12
- delete (window as any).Capacitor
13
- delete (window as any).iosAppContext
14
- delete (window as any).androidAppContext
15
- delete (window as any).webapis
16
- delete (window as any).webOSDev
17
- delete (window as any).webOS
18
- })
19
-
20
- afterEach(() => {
21
- vi.restoreAllMocks()
22
- delete (window as any).Capacitor
23
- delete (window as any).iosAppContext
24
- delete (window as any).androidAppContext
25
- delete (window as any).webapis
26
- delete (window as any).webOSDev
27
- delete (window as any).webOS
28
- })
29
-
30
- describe("FIRE_TV platform", () => {
31
- it("returns device ID from Capacitor DeviceInfo.getAndroidId when available", async () => {
32
- const mockAndroidId = "firetv-android-id-123"
33
- Object.defineProperty(window, "Capacitor", {
34
- value: {
35
- Plugins: {
36
- DeviceInfo: {
37
- getAndroidId: vi.fn().mockResolvedValue({
38
- androidId: mockAndroidId,
39
- }),
40
- },
41
- },
42
- },
43
- writable: true,
44
- configurable: true,
45
- })
46
-
47
- const result = await getDeviceId("FIRE_TV")
48
- expect(result).toBe(mockAndroidId)
49
- })
50
-
51
- it("returns null when DeviceInfo throws error", async () => {
52
- Object.defineProperty(window, "Capacitor", {
53
- value: {
54
- Plugins: {
55
- DeviceInfo: {
56
- getAndroidId: vi
57
- .fn()
58
- .mockRejectedValue(
59
- new Error("DeviceInfo error")
60
- ),
61
- },
62
- },
63
- },
64
- writable: true,
65
- configurable: true,
66
- })
67
-
68
- const result = await getDeviceId("FIRE_TV")
69
- expect(result).toBeNull()
70
- })
71
-
72
- it("returns null when DeviceInfo returns empty", async () => {
73
- Object.defineProperty(window, "Capacitor", {
74
- value: {
75
- Plugins: {
76
- DeviceInfo: {
77
- getAndroidId: vi
78
- .fn()
79
- .mockResolvedValue({ androidId: "" }),
80
- },
81
- },
82
- },
83
- writable: true,
84
- configurable: true,
85
- })
86
- const result = await getDeviceId("FIRE_TV")
87
- expect(result).toBeNull()
88
- })
89
- })
90
-
91
- describe("SAMSUNG_TV platform", () => {
92
- it("returns device ID from Samsung webapis when available", async () => {
93
- const mockDeviceId = "samsung-duid-123"
94
- Object.defineProperty(window, "webapis", {
95
- value: {
96
- productinfo: {
97
- getDuid: vi.fn().mockReturnValue(mockDeviceId),
98
- },
99
- },
100
- writable: true,
101
- configurable: true,
102
- })
103
-
104
- const result = await getDeviceId("SAMSUNG_TV")
105
- expect(result).toBe(mockDeviceId)
106
- })
107
-
108
- it("returns null when webapis throws error", async () => {
109
- Object.defineProperty(window, "webapis", {
110
- value: {
111
- productinfo: {
112
- getDuid: vi.fn().mockImplementation(() => {
113
- throw new Error("Samsung API error")
114
- }),
115
- },
116
- },
117
- writable: true,
118
- configurable: true,
119
- })
120
-
121
- const result = await getDeviceId("SAMSUNG_TV")
122
- expect(result).toBeNull()
123
- })
124
- })
125
-
126
- describe("LG_TV platform", () => {
127
- it("returns device ID from LG webOS.service.request when available", async () => {
128
- const mockDeviceId = "lg-udid-123"
129
- const mockRequest = vi.fn().mockImplementation((_uri, options) => {
130
- options.onSuccess?.({
131
- idList: [{ idValue: mockDeviceId }],
132
- })
133
- return { cancel: vi.fn() }
134
- })
135
-
136
- Object.defineProperty(window, "webOS", {
137
- value: {
138
- service: {
139
- request: mockRequest,
140
- },
141
- },
142
- writable: true,
143
- configurable: true,
144
- })
145
-
146
- const result = await getDeviceId("LG_TV")
147
- expect(result).toBe(mockDeviceId)
148
- })
149
-
150
- it("returns null when webOS.service.request fails", async () => {
151
- const mockRequest = vi.fn().mockImplementation((_uri, options) => {
152
- options.onFailure?.({ errorText: "LG API error" })
153
- return { cancel: vi.fn() }
154
- })
155
-
156
- Object.defineProperty(window, "webOS", {
157
- value: {
158
- service: {
159
- request: mockRequest,
160
- },
161
- },
162
- writable: true,
163
- configurable: true,
164
- })
165
-
166
- const result = await getDeviceId("LG_TV")
167
- expect(result).toBeNull()
168
- })
169
- })
170
-
171
- describe("IOS_MOBILE platform", () => {
172
- it("returns device ID from iosAppContext when available", async () => {
173
- const mockDeviceId = "ios-device-123"
174
- Object.defineProperty(window, "iosAppContext", {
175
- value: {
176
- phoneDeviceId: mockDeviceId,
177
- },
178
- writable: true,
179
- configurable: true,
180
- })
181
-
182
- const result = await getDeviceId("IOS_MOBILE")
183
- expect(result).toBe(mockDeviceId)
184
- })
185
-
186
- it("returns null when no app context is available", async () => {
187
- const result = await getDeviceId("IOS_MOBILE")
188
- expect(result).toBeNull()
189
- })
190
-
191
- it("returns null when phoneDeviceId is empty", async () => {
192
- Object.defineProperty(window, "iosAppContext", {
193
- value: {
194
- phoneDeviceId: "",
195
- },
196
- writable: true,
197
- configurable: true,
198
- })
199
-
200
- const result = await getDeviceId("IOS_MOBILE")
201
- expect(result).toBeNull()
202
- })
203
- })
204
-
205
- describe("ANDROID_MOBILE platform", () => {
206
- it("returns device ID from androidAppContext when available", async () => {
207
- const mockDeviceId = "android-device-123"
208
- Object.defineProperty(window, "androidAppContext", {
209
- value: {
210
- phoneDeviceId: mockDeviceId,
211
- },
212
- writable: true,
213
- configurable: true,
214
- })
215
-
216
- const result = await getDeviceId("ANDROID_MOBILE")
217
- expect(result).toBe(mockDeviceId)
218
- })
219
-
220
- it("prefers iosAppContext over androidAppContext", async () => {
221
- Object.defineProperty(window, "iosAppContext", {
222
- value: {
223
- phoneDeviceId: "ios-id",
224
- },
225
- writable: true,
226
- configurable: true,
227
- })
228
- Object.defineProperty(window, "androidAppContext", {
229
- value: {
230
- phoneDeviceId: "android-id",
231
- },
232
- writable: true,
233
- configurable: true,
234
- })
235
-
236
- const result = await getDeviceId("ANDROID_MOBILE")
237
- expect(result).toBe("ios-id")
238
- })
239
-
240
- it("returns null when no app context is available", async () => {
241
- const result = await getDeviceId("ANDROID_MOBILE")
242
- expect(result).toBeNull()
243
- })
244
- })
245
-
246
- describe("WEB platform", () => {
247
- beforeEach(() => {
248
- localStorage.clear()
249
- })
250
-
251
- it("generates and stores new device ID when none exists", async () => {
252
- const mockUUID = "web-uuid-123"
253
- vi.mocked(uuid.v4).mockReturnValue(mockUUID as any)
254
-
255
- const result = await getDeviceId("WEB")
256
-
257
- expect(result).toBe(mockUUID)
258
- expect(localStorage.getItem("volley_device_id")).toBe(mockUUID)
259
- })
260
-
261
- it("retrieves existing device ID from localStorage", async () => {
262
- const existingId = "existing-web-id"
263
- localStorage.setItem("volley_device_id", existingId)
264
-
265
- const result = await getDeviceId("WEB")
266
-
267
- expect(result).toBe(existingId)
268
- })
269
- })
270
-
271
- describe("Unknown platform", () => {
272
- it("returns null for unknown platform", async () => {
273
- const result = await getDeviceId("UNKNOWN_PLATFORM")
274
- expect(result).toBeNull()
275
- })
276
- })
277
-
278
- describe("Case insensitivity", () => {
279
- it("is case-insensitive for platform parameter", async () => {
280
- const mockSamsungId = "samsung-case-test"
281
- Object.defineProperty(window, "webapis", {
282
- value: {
283
- productinfo: {
284
- getDuid: vi.fn().mockReturnValue(mockSamsungId),
285
- },
286
- },
287
- writable: true,
288
- configurable: true,
289
- })
290
-
291
- const result1 = await getDeviceId("samsung_tv")
292
- const result2 = await getDeviceId("SAMSUNG_TV")
293
-
294
- expect(result1).toBe(mockSamsungId)
295
- expect(result2).toBe(mockSamsungId)
296
- })
297
- })
298
- })