@volley/vwr-loader 1.0.6 → 1.2.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/README.md +7 -8
- package/dist/__mocks__/@datadog/browser-logs.d.ts +58 -0
- package/dist/__mocks__/@datadog/browser-logs.d.ts.map +1 -0
- package/dist/__mocks__/@datadog/browser-logs.js +34 -0
- package/dist/__mocks__/@datadog/browser-logs.js.map +1 -0
- package/dist/__mocks__/@datadog/browser-rum.d.ts +25 -0
- package/dist/__mocks__/@datadog/browser-rum.d.ts.map +1 -0
- package/dist/__mocks__/@datadog/browser-rum.js +25 -0
- package/dist/__mocks__/@datadog/browser-rum.js.map +1 -0
- package/dist/amplitudeFlagFetcher.d.ts +8 -3
- package/dist/amplitudeFlagFetcher.d.ts.map +1 -1
- package/dist/amplitudeFlagFetcher.js +14 -12
- package/dist/amplitudeFlagFetcher.js.map +1 -1
- package/dist/assets/profiler-BRmTNL9s.js +2 -0
- package/dist/assets/profiler-BRmTNL9s.js.map +1 -0
- package/dist/assets/startRecording-CuFdVhxx.js +3 -0
- package/dist/assets/startRecording-CuFdVhxx.js.map +1 -0
- package/dist/cli.js +47 -34
- package/dist/cli.js.map +1 -1
- package/dist/datadog.d.ts +19 -0
- package/dist/datadog.d.ts.map +1 -0
- package/dist/datadog.js +39 -0
- package/dist/datadog.js.map +1 -0
- package/dist/envDefaults.d.ts.map +1 -1
- package/dist/envDefaults.js +27 -12
- package/dist/envDefaults.js.map +1 -1
- package/dist/errors/InitializationError.d.ts +74 -0
- package/dist/errors/InitializationError.d.ts.map +1 -0
- package/dist/errors/InitializationError.js +77 -0
- package/dist/errors/InitializationError.js.map +1 -0
- package/dist/errors/ensureError.d.ts +2 -0
- package/dist/errors/ensureError.d.ts.map +1 -0
- package/dist/errors/ensureError.js +7 -0
- package/dist/errors/ensureError.js.map +1 -0
- package/dist/errors/index.d.ts +12 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +10 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/getDeviceId.d.ts +1 -32
- package/dist/getDeviceId.d.ts.map +1 -1
- package/dist/getDeviceId.js +18 -16
- package/dist/getDeviceId.js.map +1 -1
- package/dist/getEnvironment.d.ts +3 -4
- package/dist/getEnvironment.d.ts.map +1 -1
- package/dist/getEnvironment.js +11 -6
- package/dist/getEnvironment.js.map +1 -1
- package/dist/getShellVersion.d.ts +2 -20
- package/dist/getShellVersion.d.ts.map +1 -1
- package/dist/getShellVersion.js +41 -8
- package/dist/getShellVersion.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loadVwr.d.ts +4 -4
- package/dist/loadVwr.d.ts.map +1 -1
- package/dist/loadVwr.js +151 -37
- package/dist/loadVwr.js.map +1 -1
- package/dist/logger.d.ts +11 -6
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +107 -4
- package/dist/logger.js.map +1 -1
- package/dist/main.js +9 -1
- package/dist/main.js.map +1 -1
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +5 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/types.d.ts +87 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/vwrConfig.d.ts +14 -2
- package/dist/vwrConfig.d.ts.map +1 -1
- package/dist/vwrConfig.js +74 -29
- package/dist/vwrConfig.js.map +1 -1
- package/package.json +59 -53
- package/src/__mocks__/@datadog/browser-logs.ts +35 -0
- package/src/__mocks__/@datadog/browser-rum.ts +27 -0
- package/src/amplitudeFlagFetcher.test.ts +28 -34
- package/src/amplitudeFlagFetcher.ts +22 -14
- package/src/datadog.ts +55 -0
- package/src/envDefaults.ts +32 -13
- package/src/errors/InitializationError.ts +105 -0
- package/src/errors/ensureError.ts +6 -0
- package/src/errors/index.ts +16 -0
- package/src/getDeviceId.test.ts +29 -23
- package/src/getDeviceId.ts +25 -72
- package/src/getEnvironment.test.ts +68 -108
- package/src/getEnvironment.ts +12 -8
- package/src/getShellVersion.test.ts +134 -9
- package/src/getShellVersion.ts +44 -26
- package/src/index.ts +0 -1
- package/src/loadVwr.test.ts +394 -0
- package/src/loadVwr.ts +243 -58
- package/src/logger.ts +118 -11
- package/src/main.test.ts +157 -0
- package/src/main.ts +79 -11
- package/src/test-setup.ts +5 -0
- package/src/types.ts +88 -0
- package/src/vite-env.d.ts +2 -0
- package/src/vwrConfig.test.ts +104 -34
- package/src/vwrConfig.ts +115 -37
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-setup.d.ts","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE3B,wCAAwC;AACxC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AAC/B,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
[key: string]: any;
|
|
42
|
+
};
|
|
43
|
+
[key: string]: any;
|
|
44
|
+
};
|
|
45
|
+
webapis?: {
|
|
46
|
+
productinfo?: {
|
|
47
|
+
getDuid: () => string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
webOS?: {
|
|
51
|
+
service?: {
|
|
52
|
+
request: (uri: string, options: {
|
|
53
|
+
method?: string;
|
|
54
|
+
parameters?: Record<string, unknown>;
|
|
55
|
+
onSuccess?: (response: LGDeviceIdResponse) => void;
|
|
56
|
+
onFailure?: (error: {
|
|
57
|
+
errorText?: string;
|
|
58
|
+
}) => void;
|
|
59
|
+
subscribe?: boolean;
|
|
60
|
+
}) => {
|
|
61
|
+
cancel: () => void;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
fetchAppInfo?: (callback: (appInfo?: {
|
|
65
|
+
version?: string;
|
|
66
|
+
}) => void) => void;
|
|
67
|
+
};
|
|
68
|
+
tizen?: {
|
|
69
|
+
application?: {
|
|
70
|
+
getAppInfo: () => {
|
|
71
|
+
version?: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* LG Luna service response for device ID
|
|
79
|
+
*/
|
|
80
|
+
export interface LGDeviceIdResponse {
|
|
81
|
+
idList?: Array<{
|
|
82
|
+
idType?: string;
|
|
83
|
+
idValue?: string;
|
|
84
|
+
}>;
|
|
85
|
+
returnValue?: boolean;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,MAAM;IAChD,aAAa,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,iBAAiB,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACJ;AAED;;GAEG;AACH,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,CAAC,EAAE;YACR,OAAO,CAAC,EAAE;gBACN,UAAU,CAAC,EAAE;oBACT,aAAa,IAAI,OAAO,CAAC;wBACrB,WAAW,CAAC,EAAE,MAAM,CAAA;wBACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;qBACrB,CAAC,CAAA;oBACF,YAAY,IAAI,OAAO,CAAC;wBACpB,SAAS,CAAC,EAAE,MAAM,CAAA;wBAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;qBACrB,CAAC,CAAA;oBACF,4BAA4B,IAAI,OAAO,CAAC;wBACpC,WAAW,CAAC,EAAE,MAAM,CAAA;qBACvB,CAAC,CAAA;oBACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;iBACrB,CAAA;gBACD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;aACrB,CAAA;YACD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SACrB,CAAA;QACD,OAAO,CAAC,EAAE;YACN,WAAW,CAAC,EAAE;gBACV,OAAO,EAAE,MAAM,MAAM,CAAA;aACxB,CAAA;SACJ,CAAA;QACD,KAAK,CAAC,EAAE;YACJ,OAAO,CAAC,EAAE;gBACN,OAAO,EAAE,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;oBACL,MAAM,CAAC,EAAE,MAAM,CAAA;oBACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;oBACpC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;oBAClD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;wBAAE,SAAS,CAAC,EAAE,MAAM,CAAA;qBAAE,KAAK,IAAI,CAAA;oBACnD,SAAS,CAAC,EAAE,OAAO,CAAA;iBACtB,KACA;oBACD,MAAM,EAAE,MAAM,IAAI,CAAA;iBACrB,CAAA;aACJ,CAAA;YACD,YAAY,CAAC,EAAE,CACX,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,KAAK,IAAI,KACjD,IAAI,CAAA;SACZ,CAAA;QACD,KAAK,CAAC,EAAE;YACJ,WAAW,CAAC,EAAE;gBACV,UAAU,EAAE,MAAM;oBAAE,OAAO,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAA;aACzC,CAAA;SACJ,CAAA;KACJ;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/vwrConfig.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ILogger } from "@volley/logger";
|
|
2
2
|
export type VWRConfig = {
|
|
3
3
|
hubUrl: string;
|
|
4
4
|
vwrUrl: string;
|
|
@@ -16,6 +16,18 @@ export type VWRConfigRequest = {
|
|
|
16
16
|
shellVersion: string;
|
|
17
17
|
timeout?: number;
|
|
18
18
|
};
|
|
19
|
-
export
|
|
19
|
+
export type ConfigSource = "local" | "device" | "shellVersion" | "environment" | "defaults";
|
|
20
|
+
export type ConfigFetchAttempt = {
|
|
21
|
+
source: ConfigSource;
|
|
22
|
+
success: boolean;
|
|
23
|
+
duration_ms: number;
|
|
24
|
+
};
|
|
25
|
+
export type VWRConfigResult = {
|
|
26
|
+
config: VWRConfig;
|
|
27
|
+
source: ConfigSource;
|
|
28
|
+
attempts: ConfigFetchAttempt[];
|
|
29
|
+
total_duration_ms: number;
|
|
30
|
+
};
|
|
31
|
+
export declare const getVWRConfig: (request: VWRConfigRequest, logger: ILogger) => Promise<VWRConfigResult>;
|
|
20
32
|
export declare const validateConfig: (config: VWRConfig) => boolean;
|
|
21
33
|
//# sourceMappingURL=vwrConfig.d.ts.map
|
package/dist/vwrConfig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vwrConfig.d.ts","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/vwrConfig.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ENV_DEFAULTS } from "./envDefaults";
|
|
2
|
-
import { defaultLogger } from "./logger";
|
|
3
2
|
const DEFAULT_CONFIG_TIMEOUT = 2000;
|
|
4
3
|
/**
|
|
5
4
|
* Build a URL from a base and relative path, handling missing trailing slashes.
|
|
@@ -32,40 +31,86 @@ class VWRConfigFetcher {
|
|
|
32
31
|
this.shellVersion = request.shellVersion;
|
|
33
32
|
}
|
|
34
33
|
async fetch() {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
34
|
+
const fetchStartTime = performance.now();
|
|
35
|
+
this.logger.debug("[VWR Config] Fetching config with priority: local → device → shellVersion → environment → defaults");
|
|
36
|
+
// Fetch all configs in parallel for performance, with timing
|
|
37
|
+
const [localResult, deviceResult, shellVersionResult, environmentResult,] = await Promise.all([
|
|
38
|
+
this.timedFetch("local", () => this.tryGetLocalConfig()),
|
|
39
|
+
this.timedFetch("device", () => this.tryGetDeviceConfig()),
|
|
40
|
+
this.timedFetch("shellVersion", () => this.tryGetShellVersionConfig()),
|
|
41
|
+
this.timedFetch("environment", () => this.tryGetEnvironmentConfig()),
|
|
42
42
|
]);
|
|
43
|
+
const total_duration_ms = Math.round(performance.now() - fetchStartTime);
|
|
44
|
+
const attempts = [
|
|
45
|
+
localResult.attempt,
|
|
46
|
+
deviceResult.attempt,
|
|
47
|
+
shellVersionResult.attempt,
|
|
48
|
+
environmentResult.attempt,
|
|
49
|
+
];
|
|
43
50
|
// Return first successful config in priority order
|
|
44
|
-
if (
|
|
45
|
-
this.logger.
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
if (localResult.config !== null) {
|
|
52
|
+
this.logger.debug("[VWR Config] ✓ Using config from: local", localResult.config);
|
|
53
|
+
return {
|
|
54
|
+
config: localResult.config,
|
|
55
|
+
source: "local",
|
|
56
|
+
attempts,
|
|
57
|
+
total_duration_ms,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (deviceResult.config !== null) {
|
|
61
|
+
this.logger.debug("[VWR Config] ✓ Using config from: device", deviceResult.config);
|
|
62
|
+
return {
|
|
63
|
+
config: deviceResult.config,
|
|
64
|
+
source: "device",
|
|
65
|
+
attempts,
|
|
66
|
+
total_duration_ms,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (shellVersionResult.config !== null) {
|
|
70
|
+
this.logger.debug("[VWR Config] ✓ Using config from: shellVersion", shellVersionResult.config);
|
|
71
|
+
return {
|
|
72
|
+
config: shellVersionResult.config,
|
|
73
|
+
source: "shellVersion",
|
|
74
|
+
attempts,
|
|
75
|
+
total_duration_ms,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (environmentResult.config !== null) {
|
|
79
|
+
this.logger.debug("[VWR Config] ✓ Using config from: environment", environmentResult.config);
|
|
80
|
+
return {
|
|
81
|
+
config: environmentResult.config,
|
|
82
|
+
source: "environment",
|
|
83
|
+
attempts,
|
|
84
|
+
total_duration_ms,
|
|
85
|
+
};
|
|
59
86
|
}
|
|
60
87
|
// All fetches failed, use defaults
|
|
61
88
|
this.logger.warn("[VWR Config] All config fetches failed, using built-in defaults");
|
|
62
|
-
return
|
|
89
|
+
return {
|
|
90
|
+
config: this.defaults,
|
|
91
|
+
source: "defaults",
|
|
92
|
+
attempts,
|
|
93
|
+
total_duration_ms,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
async timedFetch(source, fetchFn) {
|
|
97
|
+
const startTime = performance.now();
|
|
98
|
+
const config = await fetchFn();
|
|
99
|
+
const duration_ms = Math.round(performance.now() - startTime);
|
|
100
|
+
return {
|
|
101
|
+
config,
|
|
102
|
+
attempt: {
|
|
103
|
+
source,
|
|
104
|
+
success: config !== null,
|
|
105
|
+
duration_ms,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
63
108
|
}
|
|
64
109
|
async tryGetLocalConfig() {
|
|
65
110
|
var _a, _b;
|
|
66
111
|
try {
|
|
67
112
|
const url = buildUrl(this.configFile, (_b = (_a = ENV_DEFAULTS["local"]) === null || _a === void 0 ? void 0 : _a.configUrl) !== null && _b !== void 0 ? _b : "");
|
|
68
|
-
this.logger.
|
|
113
|
+
this.logger.debug(`[VWR Config] Trying local: ${url}`);
|
|
69
114
|
return this.tryFetchConfig(url);
|
|
70
115
|
}
|
|
71
116
|
catch (error) {
|
|
@@ -76,7 +121,7 @@ class VWRConfigFetcher {
|
|
|
76
121
|
async tryGetDeviceConfig() {
|
|
77
122
|
try {
|
|
78
123
|
const url = buildUrl(`device/${this.platform}/${this.deviceId}/${this.configFile}`, this.configUrl);
|
|
79
|
-
this.logger.
|
|
124
|
+
this.logger.debug(`[VWR Config] Trying device: ${url}`);
|
|
80
125
|
return this.tryFetchConfig(url);
|
|
81
126
|
}
|
|
82
127
|
catch (error) {
|
|
@@ -87,7 +132,7 @@ class VWRConfigFetcher {
|
|
|
87
132
|
async tryGetEnvironmentConfig() {
|
|
88
133
|
try {
|
|
89
134
|
const url = buildUrl(`environments/${this.environment}/${this.configFile}`, this.configUrl);
|
|
90
|
-
this.logger.
|
|
135
|
+
this.logger.debug(`[VWR Config] Trying environment: ${url}`);
|
|
91
136
|
return this.tryFetchConfig(url);
|
|
92
137
|
}
|
|
93
138
|
catch (error) {
|
|
@@ -98,7 +143,7 @@ class VWRConfigFetcher {
|
|
|
98
143
|
async tryGetShellVersionConfig() {
|
|
99
144
|
try {
|
|
100
145
|
const url = buildUrl(`shellVersion/${this.environment}/${this.platform}/${this.shellVersion}/${this.configFile}`, this.configUrl);
|
|
101
|
-
this.logger.
|
|
146
|
+
this.logger.debug(`[VWR Config] Trying shellVersion: ${url}`);
|
|
102
147
|
return this.tryFetchConfig(url);
|
|
103
148
|
}
|
|
104
149
|
catch (error) {
|
|
@@ -164,7 +209,7 @@ class VWRConfigFetcher {
|
|
|
164
209
|
return result;
|
|
165
210
|
}
|
|
166
211
|
}
|
|
167
|
-
export const getVWRConfig = async (request, logger
|
|
212
|
+
export const getVWRConfig = async (request, logger) => {
|
|
168
213
|
return new VWRConfigFetcher(request, logger).fetch();
|
|
169
214
|
};
|
|
170
215
|
export const validateConfig = (config) => {
|
package/dist/vwrConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vwrConfig.js","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vwrConfig.js","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,55 +1,61 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
2
|
+
"name": "@volley/vwr-loader",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Vite-based VWR loader for all Volley platforms",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/index.js",
|
|
10
|
+
"./amplitudeFlagFetcher": "./dist/amplitudeFlagFetcher.js",
|
|
11
|
+
"./getDeviceId": "./dist/getDeviceId.js",
|
|
12
|
+
"./getShellVersion": "./dist/getShellVersion.js",
|
|
13
|
+
"./envDefaults": "./dist/envDefaults.js"
|
|
14
|
+
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"build-loader": "dist/cli.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"src"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc && vite build && vite build -c vite.cli.config.ts && chmod +x dist/cli.js",
|
|
24
|
+
"build:cli": "vite build -c vite.cli.config.ts",
|
|
25
|
+
"build:loader": "vite build",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:cov": "vitest run --coverage",
|
|
29
|
+
"test:watch": "vitest",
|
|
30
|
+
"format": "eslint . --fix",
|
|
31
|
+
"lint": "eslint .",
|
|
32
|
+
"semantic-release": "semantic-release"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@datadog/browser-logs": "^6.25.2",
|
|
36
|
+
"@datadog/browser-rum": "^6.25.2",
|
|
37
|
+
"@volley/logger": "^1.4.1",
|
|
38
|
+
"commander": "^12.0.0",
|
|
39
|
+
"dotenv": "^16.0.0",
|
|
40
|
+
"fs-extra": "^11.0.0",
|
|
41
|
+
"uuid": "^11.1.0",
|
|
42
|
+
"vite": "^5.0.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@platform/eslint-config": "workspace:*",
|
|
46
|
+
"@semantic-release/git": "^10.0.1",
|
|
47
|
+
"@semantic-release/npm": "^12.0.1",
|
|
48
|
+
"@types/fs-extra": "^11.0.0",
|
|
49
|
+
"@types/node": "^20.0.0",
|
|
50
|
+
"@vitest/coverage-v8": "^1.0.0",
|
|
51
|
+
"@volley/vwr": "workspace:*",
|
|
52
|
+
"eslint": "^9.25.1",
|
|
53
|
+
"jsdom": "^24.1.3",
|
|
54
|
+
"prettier": "~3.0.3",
|
|
55
|
+
"semantic-release": "^24.2.3",
|
|
56
|
+
"semantic-release-monorepo": "^8.0.2",
|
|
57
|
+
"tsx": "^4.7.0",
|
|
58
|
+
"typescript": "^5.0.0",
|
|
59
|
+
"vitest": "^1.0.0"
|
|
60
|
+
}
|
|
55
61
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { vi } from "vitest"
|
|
2
|
+
|
|
3
|
+
const mockLogger = {
|
|
4
|
+
debug: vi.fn(),
|
|
5
|
+
info: vi.fn(),
|
|
6
|
+
warn: vi.fn(),
|
|
7
|
+
error: vi.fn(),
|
|
8
|
+
log: vi.fn(),
|
|
9
|
+
setLevel: vi.fn(),
|
|
10
|
+
setHandler: vi.fn(),
|
|
11
|
+
setContext: vi.fn(),
|
|
12
|
+
addContext: vi.fn(),
|
|
13
|
+
removeContext: vi.fn(),
|
|
14
|
+
clearContext: vi.fn(),
|
|
15
|
+
getContext: vi.fn(() => ({})),
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const datadogLogs = {
|
|
19
|
+
init: vi.fn(),
|
|
20
|
+
logger: mockLogger,
|
|
21
|
+
createLogger: vi.fn(() => mockLogger),
|
|
22
|
+
getLogger: vi.fn(() => mockLogger),
|
|
23
|
+
setUser: vi.fn(),
|
|
24
|
+
setUserProperty: vi.fn(),
|
|
25
|
+
removeUserProperty: vi.fn(),
|
|
26
|
+
clearUser: vi.fn(),
|
|
27
|
+
getUser: vi.fn(() => ({})),
|
|
28
|
+
setGlobalContext: vi.fn(),
|
|
29
|
+
setGlobalContextProperty: vi.fn(),
|
|
30
|
+
removeGlobalContextProperty: vi.fn(),
|
|
31
|
+
clearGlobalContext: vi.fn(),
|
|
32
|
+
getGlobalContext: vi.fn(() => ({})),
|
|
33
|
+
getInitConfiguration: vi.fn(() => ({})),
|
|
34
|
+
getInternalContext: vi.fn(() => ({})),
|
|
35
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { vi } from "vitest"
|
|
2
|
+
|
|
3
|
+
export const datadogRum = {
|
|
4
|
+
init: vi.fn(),
|
|
5
|
+
startSessionReplayRecording: vi.fn(),
|
|
6
|
+
stopSessionReplayRecording: vi.fn(),
|
|
7
|
+
addAction: vi.fn(),
|
|
8
|
+
addError: vi.fn(),
|
|
9
|
+
addTiming: vi.fn(),
|
|
10
|
+
setUser: vi.fn(),
|
|
11
|
+
setUserProperty: vi.fn(),
|
|
12
|
+
removeUserProperty: vi.fn(),
|
|
13
|
+
clearUser: vi.fn(),
|
|
14
|
+
setGlobalContext: vi.fn(),
|
|
15
|
+
setGlobalContextProperty: vi.fn(),
|
|
16
|
+
removeGlobalContextProperty: vi.fn(),
|
|
17
|
+
clearGlobalContext: vi.fn(),
|
|
18
|
+
getGlobalContext: vi.fn(() => ({})),
|
|
19
|
+
getUser: vi.fn(() => ({})),
|
|
20
|
+
getInitConfiguration: vi.fn(() => ({})),
|
|
21
|
+
getInternalContext: vi.fn(() => ({})),
|
|
22
|
+
addFeatureFlagEvaluation: vi.fn(),
|
|
23
|
+
startView: vi.fn(),
|
|
24
|
+
stopView: vi.fn(),
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type RumGlobal = typeof datadogRum
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"
|
|
2
2
|
|
|
3
|
-
import { fetchAmplitudeFlags } from "./amplitudeFlagFetcher"
|
|
3
|
+
import { fetchAmplitudeFlags, FlagFetchError } from "./amplitudeFlagFetcher"
|
|
4
4
|
|
|
5
5
|
describe("fetchAmplitudeFlags", () => {
|
|
6
6
|
const mockFetch = vi.fn()
|
|
@@ -91,54 +91,48 @@ describe("fetchAmplitudeFlags", () => {
|
|
|
91
91
|
})
|
|
92
92
|
})
|
|
93
93
|
|
|
94
|
-
it("
|
|
94
|
+
it("throws FlagFetchError on timeout", async () => {
|
|
95
95
|
mockFetch.mockImplementationOnce(
|
|
96
96
|
() => new Promise((resolve) => setTimeout(resolve, 3000))
|
|
97
97
|
)
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"vwr-enabled": false,
|
|
108
|
-
})
|
|
99
|
+
await expect(
|
|
100
|
+
fetchAmplitudeFlags(
|
|
101
|
+
"device-123",
|
|
102
|
+
"FIRE_TV",
|
|
103
|
+
{ apiKey: "test-key", timeout: 100 },
|
|
104
|
+
"1.0.0"
|
|
105
|
+
)
|
|
106
|
+
).rejects.toThrow(FlagFetchError)
|
|
109
107
|
})
|
|
110
108
|
|
|
111
|
-
it("
|
|
109
|
+
it("throws FlagFetchError on API error", async () => {
|
|
112
110
|
mockFetch.mockResolvedValueOnce({
|
|
113
111
|
ok: false,
|
|
114
112
|
status: 500,
|
|
115
113
|
})
|
|
116
114
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"vwr-enabled": false,
|
|
126
|
-
})
|
|
115
|
+
await expect(
|
|
116
|
+
fetchAmplitudeFlags(
|
|
117
|
+
"device-123",
|
|
118
|
+
"MOBILE",
|
|
119
|
+
{ apiKey: "test-key" },
|
|
120
|
+
"1.0.0"
|
|
121
|
+
)
|
|
122
|
+
).rejects.toThrow(FlagFetchError)
|
|
127
123
|
})
|
|
128
124
|
|
|
129
|
-
it("
|
|
125
|
+
it("throws FlagFetchError on network error", async () => {
|
|
130
126
|
mockFetch.mockRejectedValueOnce(new Error("Network error"))
|
|
131
127
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
"vwr-enabled": false,
|
|
141
|
-
})
|
|
128
|
+
await expect(
|
|
129
|
+
fetchAmplitudeFlags(
|
|
130
|
+
"device-123",
|
|
131
|
+
"MOBILE",
|
|
132
|
+
{ apiKey: "test-key" },
|
|
133
|
+
"1.0.0"
|
|
134
|
+
)
|
|
135
|
+
).rejects.toThrow(FlagFetchError)
|
|
142
136
|
})
|
|
143
137
|
|
|
144
138
|
it("handles missing flag values in response", async () => {
|