@volley/vwr-loader 1.0.4 → 1.0.6

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.
@@ -0,0 +1,105 @@
1
+ import { defaultLogger } from "./logger";
2
+ /**
3
+ * Get the environment for the current platform.
4
+ *
5
+ * Precedence:
6
+ * 1. Native shell (Fire TV only) - reads from BuildConfig.ENVIRONMENT
7
+ * 2. Build-time injection (VITE_ENVIRONMENT) - CLI override
8
+ * 3. Default fallback ("dev")
9
+ *
10
+ * This ensures production APKs cannot accidentally run dev VWR,
11
+ * since the native Android build variant determines the environment.
12
+ *
13
+ * @param platform - Platform identifier ('FIRE_TV', 'SAMSUNG_TV', 'LG_TV', 'MOBILE', 'WEB')
14
+ * @param buildTimeEnv - Optional build-time injected environment (from CLI)
15
+ * @param logger - Optional logger for reporting
16
+ * @returns Environment result with source information for logging
17
+ */
18
+ export async function getEnvironment(platform, buildTimeEnv, logger = defaultLogger) {
19
+ const normalizedPlatform = platform.toUpperCase();
20
+ // For Fire TV, try to read from native first (safest - prevents env mismatch)
21
+ if (normalizedPlatform === "FIRE_TV") {
22
+ const nativeEnv = await getFireTVEnvironment(logger);
23
+ if (nativeEnv) {
24
+ const mapped = mapNativeEnvironment(nativeEnv);
25
+ logger.info(`[Shell] Environment: "${mapped}" (source: native BuildConfig.ENVIRONMENT="${nativeEnv}")`);
26
+ return { environment: mapped, source: "native" };
27
+ }
28
+ // Fall through to build-time if native fails
29
+ logger.warn("[Shell] Failed to read environment from native, falling back to build-time");
30
+ }
31
+ // Build-time injection (CLI --env flag)
32
+ if (buildTimeEnv) {
33
+ const normalizedBuildTimeEnv = buildTimeEnv.toLowerCase();
34
+ if (isValidEnvironment(normalizedBuildTimeEnv)) {
35
+ logger.info(`[Shell] Environment: "${normalizedBuildTimeEnv}" (source: build-time CLI injection)`);
36
+ return {
37
+ environment: normalizedBuildTimeEnv,
38
+ source: "build-time",
39
+ };
40
+ }
41
+ }
42
+ // Default fallback
43
+ const defaultEnv = "dev";
44
+ logger.warn(`[Shell] Environment: "${defaultEnv}" (source: default fallback - no native or build-time env found)`);
45
+ return { environment: defaultEnv, source: "default" };
46
+ }
47
+ /**
48
+ * Read environment from Fire TV native shell via Capacitor plugin.
49
+ */
50
+ async function getFireTVEnvironment(logger) {
51
+ var _a, _b, _c;
52
+ try {
53
+ if (!((_c = (_b = (_a = window.Capacitor) === null || _a === void 0 ? void 0 : _a.Plugins) === null || _b === void 0 ? void 0 : _b.DeviceInfo) === null || _c === void 0 ? void 0 : _c.getNativeShellAppEnvironment)) {
54
+ logger.warn("[Shell] DeviceInfo.getNativeShellAppEnvironment not available");
55
+ return null;
56
+ }
57
+ const result = await window.Capacitor.Plugins.DeviceInfo.getNativeShellAppEnvironment();
58
+ if ((result === null || result === void 0 ? void 0 : result.environment) && result.environment.trim()) {
59
+ return result.environment;
60
+ }
61
+ else {
62
+ logger.error("[Shell] DeviceInfo.getNativeShellAppEnvironment returned empty");
63
+ }
64
+ }
65
+ catch (error) {
66
+ logger.error("[Shell] DeviceInfo.getNativeShellAppEnvironment failed:", { error });
67
+ }
68
+ return null;
69
+ }
70
+ /**
71
+ * Map native Android BuildConfig.ENVIRONMENT values to vwr-loader environment names.
72
+ *
73
+ * Android BuildConfig values:
74
+ * - "development" (debug build)
75
+ * - "staging" (staging build)
76
+ * - "production" (release build)
77
+ *
78
+ * VWR environment names:
79
+ * - "dev"
80
+ * - "staging"
81
+ * - "prod"
82
+ */
83
+ function mapNativeEnvironment(nativeEnv) {
84
+ const normalized = nativeEnv.toLowerCase();
85
+ switch (normalized) {
86
+ case "development":
87
+ return "dev";
88
+ case "staging":
89
+ return "staging";
90
+ case "production":
91
+ return "prod";
92
+ default:
93
+ // If it's already in vwr format, use it
94
+ if (isValidEnvironment(normalized)) {
95
+ return normalized;
96
+ }
97
+ return "dev";
98
+ }
99
+ }
100
+ function isValidEnvironment(env) {
101
+ return ["local", "dev", "qa", "staging", "prod"].includes(env);
102
+ }
103
+ // Note: Window.Capacitor type is declared in getDeviceId.ts
104
+ // We just need to add the getNativeShellAppEnvironment method type there
105
+ //# sourceMappingURL=getEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEnvironment.js","sourceRoot":"","sources":["../src/getEnvironment.ts"],"names":[],"mappings":"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"}
package/dist/loadVwr.d.ts CHANGED
@@ -8,11 +8,16 @@ export type { Logger };
8
8
  * this reduces startup latency from ~2-4s to ~500ms by skipping config fetches.
9
9
  *
10
10
  * Flow:
11
- * 1. Get deviceId, shellVersion (fast, local)
11
+ * 1. Get deviceId, shellVersion, environment (fast, local/native)
12
12
  * 2. Check vwr-enabled flag (single request, ~500ms)
13
13
  * 3. If OFF → throw immediately (no config fetches)
14
14
  * 4. If ON → fetch config, load VWR module, initialize
15
15
  *
16
+ * Environment resolution:
17
+ * - Fire TV: reads from native BuildConfig.ENVIRONMENT (prevents env mismatch)
18
+ * - Other platforms: uses build-time injected VITE_ENVIRONMENT
19
+ * - Fallback: "dev"
20
+ *
16
21
  * @param logger - Optional logger, defaults to console
17
22
  */
18
23
  export declare const loadVwr: (logger?: Logger) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"loadVwr.d.ts","sourceRoot":"","sources":["../src/loadVwr.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAcrD,YAAY,EAAE,MAAM,EAAE,CAAA;AAEtB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,GAAU,SAAQ,MAAsB,kBA8F3D,CAAA"}
1
+ {"version":3,"file":"loadVwr.d.ts","sourceRoot":"","sources":["../src/loadVwr.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAiBrD,YAAY,EAAE,MAAM,EAAE,CAAA;AAEtB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,GAAU,SAAQ,MAAsB,kBAuG3D,CAAA"}
package/dist/loadVwr.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import { fetchAmplitudeFlags } from "./amplitudeFlagFetcher";
2
2
  import { ENV_DEFAULTS } from "./envDefaults";
3
3
  import { getDeviceId } from "./getDeviceId";
4
+ import { getEnvironment } from "./getEnvironment";
4
5
  import { getShellVersion } from "./getShellVersion";
5
6
  import { defaultLogger } from "./logger";
6
7
  import { getVWRConfig, validateConfig } from "./vwrConfig";
7
8
  // Vite injects these at build time
8
- const ENVIRONMENT = import.meta.env.VITE_ENVIRONMENT;
9
+ // VITE_ENVIRONMENT is optional for platforms that support native env reading (Fire TV)
10
+ const BUILD_TIME_ENVIRONMENT = import.meta.env.VITE_ENVIRONMENT;
9
11
  const PLATFORM = import.meta.env.VITE_PLATFORM;
10
12
  const CONFIG_URL = import.meta.env.VITE_CONFIG_URL;
11
13
  const CONFIG_FILE = import.meta.env.VITE_CONFIG_FILE;
@@ -20,15 +22,20 @@ const AMPLITUDE_KEY = import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY;
20
22
  * this reduces startup latency from ~2-4s to ~500ms by skipping config fetches.
21
23
  *
22
24
  * Flow:
23
- * 1. Get deviceId, shellVersion (fast, local)
25
+ * 1. Get deviceId, shellVersion, environment (fast, local/native)
24
26
  * 2. Check vwr-enabled flag (single request, ~500ms)
25
27
  * 3. If OFF → throw immediately (no config fetches)
26
28
  * 4. If ON → fetch config, load VWR module, initialize
27
29
  *
30
+ * Environment resolution:
31
+ * - Fire TV: reads from native BuildConfig.ENVIRONMENT (prevents env mismatch)
32
+ * - Other platforms: uses build-time injected VITE_ENVIRONMENT
33
+ * - Fallback: "dev"
34
+ *
28
35
  * @param logger - Optional logger, defaults to console
29
36
  */
30
37
  export const loadVwr = async (logger = defaultLogger) => {
31
- if (!ENVIRONMENT || !PLATFORM || !CONFIG_URL || !CONFIG_FILE) {
38
+ if (!PLATFORM || !CONFIG_URL || !CONFIG_FILE) {
32
39
  throw new Error("[Shell] Build config not injected properly");
33
40
  }
34
41
  const deviceId = await getDeviceId(PLATFORM, logger);
@@ -38,6 +45,9 @@ export const loadVwr = async (logger = defaultLogger) => {
38
45
  throw new Error(message);
39
46
  }
40
47
  const shellVersion = await getShellVersion(PLATFORM, logger);
48
+ // Get environment from native (Fire TV) or build-time injection
49
+ // This ensures prod APKs cannot accidentally run dev VWR
50
+ const { environment: ENVIRONMENT } = await getEnvironment(PLATFORM, BUILD_TIME_ENVIRONMENT, logger);
41
51
  // Get amplitude key: injected at build time OR from envDefaults
42
52
  // Precedence: build-time injection > envDefaults
43
53
  let amplitudeKey = AMPLITUDE_KEY;
@@ -53,7 +63,7 @@ export const loadVwr = async (logger = defaultLogger) => {
53
63
  const flags = await fetchAmplitudeFlags(deviceId, PLATFORM, {
54
64
  apiKey: amplitudeKey,
55
65
  timeout: 2000,
56
- }, shellVersion);
66
+ }, shellVersion, logger);
57
67
  logger.info("[Shell] Flags fetched", { flags });
58
68
  if (!flags["vwr-enabled"]) {
59
69
  // Flag OFF: skip all config fetches, fail fast
@@ -1 +1 @@
1
- {"version":3,"file":"loadVwr.js","sourceRoot":"","sources":["../src/loadVwr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadVwr.js","sourceRoot":"","sources":["../src/loadVwr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE1D,mCAAmC;AACnC,uFAAuF;AACvF,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAEhC,CAAA;AACf,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAA;AAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAA;AAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAA;AAEpD,+EAA+E;AAC/E,uEAAuE;AACvE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAA;AAInE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,SAAiB,aAAa,EAAE,EAAE;IAC5D,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,sDAAsD,QAAQ,EAAE,CAAA;QAChF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5D,gEAAgE;IAChE,yDAAyD;IACzD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CACrD,QAAQ,EACR,sBAAsB,EACtB,MAAM,CACT,CAAA;IAED,gEAAgE;IAChE,iDAAiD;IACjD,IAAI,YAAY,GAAG,aAAa,CAAA;IAChC,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAA;QAClE,CAAC;QACD,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;IAC3C,CAAC;IAED,kDAAkD;IAClD,qEAAqE;IACrE,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACnC,QAAQ,EACR,QAAQ,EACR;QACI,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,IAAI;KAChB,EACD,YAAY,EACZ,MAAM,CACT,CAAA;IAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACxB,+CAA+C;QAC/C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAClE,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAE3D,MAAM,gBAAgB,GAAqB;QACvC,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;KAC7B,CAAA;IAED,MAAM,SAAS,GAAc,MAAM,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAEzE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;QAC/C,MAAM,EAAE,SAAS,CAAC,MAAM;KAC3B,CAAC,CAAA;IACF,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM;QACrB,kBAAkB,CAAC,SAAS,CAAC,MAAM,CACtC,CAAe,CAAA;QAEhB,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;QAErD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,GAAG,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,YAAY;YACxB,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,cAAc,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC;YACjD,kBAAkB,EAAE,YAAY;SACnC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,QAAQ,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;YACpC,KAAK,EACD,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACnE,MAAM,EAAE,SAAS,CAAC,MAAM;SAC3B,CAAC,CAAA;QACF,MAAM,QAAQ,CAAA,CAAC,uCAAuC;IAC1D,CAAC;AACL,CAAC,CAAA"}
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/logger.ts","../src/loadVwr.ts","../src/main.ts"],"sourcesContent":["export interface Logger {\n info: (message: string, context?: Record<string, unknown>) => void\n warn: (message: string, context?: Record<string, unknown>) => void\n error: (message: string, context?: Record<string, unknown>) => void\n}\n\nexport const defaultLogger: Logger = {\n info: (message, context) =>\n context ? console.log(message, context) : console.log(message),\n warn: (message, context) =>\n context ? console.warn(message, context) : console.warn(message),\n error: (message, context) =>\n context ? console.error(message, context) : console.error(message),\n}\n","import type * as VWR from \"@volley/vwr\"\n\nimport { fetchAmplitudeFlags } from \"./amplitudeFlagFetcher\"\nimport { ENV_DEFAULTS } from \"./envDefaults\"\nimport { getDeviceId } from \"./getDeviceId\"\nimport { getShellVersion } from \"./getShellVersion\"\nimport { defaultLogger, type Logger } from \"./logger\"\nimport type { VWRConfig, VWRConfigRequest } from \"./vwrConfig\"\nimport { getVWRConfig, validateConfig } from \"./vwrConfig\"\n\n// Vite injects these at build time\nconst ENVIRONMENT = import.meta.env.VITE_ENVIRONMENT\nconst PLATFORM = import.meta.env.VITE_PLATFORM\nconst CONFIG_URL = import.meta.env.VITE_CONFIG_URL\nconst CONFIG_FILE = import.meta.env.VITE_CONFIG_FILE\n\n// AMPLITUDE_KEY can be optionally injected at build time (via build.ts script)\n// Falls back to envDefaults if not injected (e.g., vite.config.dev.ts)\nconst AMPLITUDE_KEY = import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY\n\nexport type { Logger }\n\n/**\n * Load VWR runtime.\n *\n * Optimized flow: checks vwr-enabled flag FIRST using baked-in Amplitude key,\n * before doing any config fetches. For flag-OFF users (100% at initial launch),\n * this reduces startup latency from ~2-4s to ~500ms by skipping config fetches.\n *\n * Flow:\n * 1. Get deviceId, shellVersion (fast, local)\n * 2. Check vwr-enabled flag (single request, ~500ms)\n * 3. If OFF → throw immediately (no config fetches)\n * 4. If ON → fetch config, load VWR module, initialize\n *\n * @param logger - Optional logger, defaults to console\n */\nexport const loadVwr = async (logger: Logger = defaultLogger) => {\n if (!ENVIRONMENT || !PLATFORM || !CONFIG_URL || !CONFIG_FILE) {\n throw new Error(\"[Shell] Build config not injected properly\")\n }\n\n const deviceId = await getDeviceId(PLATFORM, logger)\n if (!deviceId) {\n const message = `[Shell] Failed to retrieve device ID for platform: ${PLATFORM}`\n logger.error(message)\n throw new Error(message)\n }\n const shellVersion = await getShellVersion(PLATFORM, logger)\n\n // Get amplitude key: injected at build time OR from envDefaults\n // Precedence: build-time injection > envDefaults\n let amplitudeKey = AMPLITUDE_KEY\n if (!amplitudeKey) {\n const envDefaults = ENV_DEFAULTS[ENVIRONMENT]\n if (!envDefaults) {\n throw new Error(`[Shell] Unknown environment: ${ENVIRONMENT}`)\n }\n amplitudeKey = envDefaults.amplitudeKey\n }\n\n // FAST PATH: Check flag first using amplitude key\n // This avoids config fetches for flag-OFF users (majority at launch)\n const flags = await fetchAmplitudeFlags(\n deviceId,\n PLATFORM,\n {\n apiKey: amplitudeKey,\n timeout: 2000,\n },\n shellVersion\n )\n\n logger.info(\"[Shell] Flags fetched\", { flags })\n\n if (!flags[\"vwr-enabled\"]) {\n // Flag OFF: skip all config fetches, fail fast\n throw new Error(\"[Shell] VWR not enabled via Amplitude flags\")\n }\n\n // Flag ON: proceed with full config loading\n logger.info(\"[Shell] VWR flag enabled, fetching config...\")\n\n const vwrConfigRequest: VWRConfigRequest = {\n configUrl: CONFIG_URL,\n configFile: CONFIG_FILE,\n platform: PLATFORM,\n deviceId: deviceId,\n environment: ENVIRONMENT,\n shellVersion: shellVersion,\n }\n\n const vwrConfig: VWRConfig = await getVWRConfig(vwrConfigRequest, logger)\n\n if (!validateConfig(vwrConfig)) {\n throw new Error(\"Invalid config, falling back to default hub\")\n }\n\n logger.info(\"[Shell] VWR enabled, loading module\", {\n vwrUrl: vwrConfig.vwrUrl,\n })\n try {\n const vwr = (await import(\n /* @vite-ignore */ vwrConfig.vwrUrl\n )) as typeof VWR\n\n logger.info(\"[Shell] VWR module loaded successfully\")\n\n if (typeof vwr.init !== \"function\") {\n throw new Error(\"[Shell] VWR module missing init() function\")\n }\n\n await vwr.init({\n hubUrl: vwrConfig.hubUrl,\n platform: PLATFORM,\n stage: ENVIRONMENT,\n appVersion: shellVersion,\n platformApiUrl: vwrConfig.platformApiUrl,\n platformAuthApiUrl: vwrConfig.platformAuthApiUrl,\n trustedOrigins: new Set(vwrConfig.trustedDomains),\n nativeShellVersion: shellVersion,\n })\n logger.info(\"[Shell] VWR initialized successfully\")\n } catch (vwrError) {\n logger.error(\"[Shell] VWR load failed\", {\n error:\n vwrError instanceof Error ? vwrError.message : String(vwrError),\n vwrUrl: vwrConfig.vwrUrl,\n })\n throw vwrError // Re-throw to outer catch for fallback\n }\n}\n","import { loadVwr } from \"./loadVwr\"\n\nconst PLATFORM = import.meta.env.VITE_PLATFORM\nconst HUB_URL = import.meta.env.VITE_HUB_URL\n\nasync function init() {\n try {\n await loadVwr()\n } catch (error) {\n try {\n console.error(\"[Shell] ⚠️ FALLBACK TO HUB - Init failed:\", error)\n\n if ((window as any).DD_LOGS) {\n ;(window as any).DD_LOGS.logger.error(\"shell_init_failed\", {\n error: (error as Error).message,\n platform: PLATFORM,\n })\n }\n } finally {\n //Fallback, can't trust config exists\n const fallbackUrl = new URL(HUB_URL)\n fallbackUrl.searchParams.set(\"volley_platform\", PLATFORM)\n window.location.href = fallbackUrl.toString()\n }\n }\n}\n\ninit()\n"],"names":["defaultLogger","message","context","loadVwr","logger","PLATFORM","HUB_URL","init","error","fallbackUrl"],"mappings":"ssBAMO,MAAMA,EAAwB,CACjC,KAAM,CAACC,EAASC,IACZA,EAAU,QAAQ,IAAID,EAASC,CAAO,EAAI,QAAQ,IAAID,CAAO,EACjE,KAAM,CAACA,EAASC,IACZA,EAAU,QAAQ,KAAKD,EAASC,CAAO,EAAI,QAAQ,KAAKD,CAAO,EACnE,MAAO,CAACA,EAASC,IACbA,EAAU,QAAQ,MAAMD,EAASC,CAAO,EAAI,QAAQ,MAAMD,CAAO,CACzE,ECwBaE,EAAU,MAAOC,EAAiBJ,IAAkB,CAEzD,MAAM,IAAI,MAAM,4CAA4C,CA4FpE,ECjIMK,EAAW,OACXC,EAAU,OAEhB,eAAeC,GAAO,CAClB,GAAI,CACA,MAAMJ,EAAA,CACV,OAASK,EAAO,CACZ,GAAI,CACA,QAAQ,MAAM,6CAA8CA,CAAK,EAE5D,OAAe,SACd,OAAe,QAAQ,OAAO,MAAM,oBAAqB,CACvD,MAAQA,EAAgB,QACxB,SAAUH,CAAA,CACb,CAET,QAAA,CAEI,MAAMI,EAAc,IAAI,IAAIH,CAAO,EACnCG,EAAY,aAAa,IAAI,kBAAmBJ,CAAQ,EACxD,OAAO,SAAS,KAAOI,EAAY,SAAA,CACvC,CACJ,CACJ,CAEAF,EAAA"}
1
+ {"version":3,"file":"main.js","sources":["../src/logger.ts","../src/loadVwr.ts","../src/main.ts"],"sourcesContent":["export interface Logger {\n info: (message: string, context?: Record<string, unknown>) => void\n warn: (message: string, context?: Record<string, unknown>) => void\n error: (message: string, context?: Record<string, unknown>) => void\n}\n\nexport const defaultLogger: Logger = {\n info: (message, context) =>\n context ? console.log(message, context) : console.log(message),\n warn: (message, context) =>\n context ? console.warn(message, context) : console.warn(message),\n error: (message, context) =>\n context ? console.error(message, context) : console.error(message),\n}\n","import type * as VWR from \"@volley/vwr\"\n\nimport { fetchAmplitudeFlags } from \"./amplitudeFlagFetcher\"\nimport { ENV_DEFAULTS } from \"./envDefaults\"\nimport { getDeviceId } from \"./getDeviceId\"\nimport { getEnvironment } from \"./getEnvironment\"\nimport { getShellVersion } from \"./getShellVersion\"\nimport { defaultLogger, type Logger } from \"./logger\"\nimport type { VWRConfig, VWRConfigRequest } from \"./vwrConfig\"\nimport { getVWRConfig, validateConfig } from \"./vwrConfig\"\n\n// Vite injects these at build time\n// VITE_ENVIRONMENT is optional for platforms that support native env reading (Fire TV)\nconst BUILD_TIME_ENVIRONMENT = import.meta.env.VITE_ENVIRONMENT as\n | string\n | undefined\nconst PLATFORM = import.meta.env.VITE_PLATFORM\nconst CONFIG_URL = import.meta.env.VITE_CONFIG_URL\nconst CONFIG_FILE = import.meta.env.VITE_CONFIG_FILE\n\n// AMPLITUDE_KEY can be optionally injected at build time (via build.ts script)\n// Falls back to envDefaults if not injected (e.g., vite.config.dev.ts)\nconst AMPLITUDE_KEY = import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY\n\nexport type { Logger }\n\n/**\n * Load VWR runtime.\n *\n * Optimized flow: checks vwr-enabled flag FIRST using baked-in Amplitude key,\n * before doing any config fetches. For flag-OFF users (100% at initial launch),\n * this reduces startup latency from ~2-4s to ~500ms by skipping config fetches.\n *\n * Flow:\n * 1. Get deviceId, shellVersion, environment (fast, local/native)\n * 2. Check vwr-enabled flag (single request, ~500ms)\n * 3. If OFF → throw immediately (no config fetches)\n * 4. If ON → fetch config, load VWR module, initialize\n *\n * Environment resolution:\n * - Fire TV: reads from native BuildConfig.ENVIRONMENT (prevents env mismatch)\n * - Other platforms: uses build-time injected VITE_ENVIRONMENT\n * - Fallback: \"dev\"\n *\n * @param logger - Optional logger, defaults to console\n */\nexport const loadVwr = async (logger: Logger = defaultLogger) => {\n if (!PLATFORM || !CONFIG_URL || !CONFIG_FILE) {\n throw new Error(\"[Shell] Build config not injected properly\")\n }\n\n const deviceId = await getDeviceId(PLATFORM, logger)\n if (!deviceId) {\n const message = `[Shell] Failed to retrieve device ID for platform: ${PLATFORM}`\n logger.error(message)\n throw new Error(message)\n }\n const shellVersion = await getShellVersion(PLATFORM, logger)\n\n // Get environment from native (Fire TV) or build-time injection\n // This ensures prod APKs cannot accidentally run dev VWR\n const { environment: ENVIRONMENT } = await getEnvironment(\n PLATFORM,\n BUILD_TIME_ENVIRONMENT,\n logger\n )\n\n // Get amplitude key: injected at build time OR from envDefaults\n // Precedence: build-time injection > envDefaults\n let amplitudeKey = AMPLITUDE_KEY\n if (!amplitudeKey) {\n const envDefaults = ENV_DEFAULTS[ENVIRONMENT]\n if (!envDefaults) {\n throw new Error(`[Shell] Unknown environment: ${ENVIRONMENT}`)\n }\n amplitudeKey = envDefaults.amplitudeKey\n }\n\n // FAST PATH: Check flag first using amplitude key\n // This avoids config fetches for flag-OFF users (majority at launch)\n const flags = await fetchAmplitudeFlags(\n deviceId,\n PLATFORM,\n {\n apiKey: amplitudeKey,\n timeout: 2000,\n },\n shellVersion,\n logger\n )\n\n logger.info(\"[Shell] Flags fetched\", { flags })\n\n if (!flags[\"vwr-enabled\"]) {\n // Flag OFF: skip all config fetches, fail fast\n throw new Error(\"[Shell] VWR not enabled via Amplitude flags\")\n }\n\n // Flag ON: proceed with full config loading\n logger.info(\"[Shell] VWR flag enabled, fetching config...\")\n\n const vwrConfigRequest: VWRConfigRequest = {\n configUrl: CONFIG_URL,\n configFile: CONFIG_FILE,\n platform: PLATFORM,\n deviceId: deviceId,\n environment: ENVIRONMENT,\n shellVersion: shellVersion,\n }\n\n const vwrConfig: VWRConfig = await getVWRConfig(vwrConfigRequest, logger)\n\n if (!validateConfig(vwrConfig)) {\n throw new Error(\"Invalid config, falling back to default hub\")\n }\n\n logger.info(\"[Shell] VWR enabled, loading module\", {\n vwrUrl: vwrConfig.vwrUrl,\n })\n try {\n const vwr = (await import(\n /* @vite-ignore */ vwrConfig.vwrUrl\n )) as typeof VWR\n\n logger.info(\"[Shell] VWR module loaded successfully\")\n\n if (typeof vwr.init !== \"function\") {\n throw new Error(\"[Shell] VWR module missing init() function\")\n }\n\n await vwr.init({\n hubUrl: vwrConfig.hubUrl,\n platform: PLATFORM,\n stage: ENVIRONMENT,\n appVersion: shellVersion,\n platformApiUrl: vwrConfig.platformApiUrl,\n platformAuthApiUrl: vwrConfig.platformAuthApiUrl,\n trustedOrigins: new Set(vwrConfig.trustedDomains),\n nativeShellVersion: shellVersion,\n })\n logger.info(\"[Shell] VWR initialized successfully\")\n } catch (vwrError) {\n logger.error(\"[Shell] VWR load failed\", {\n error:\n vwrError instanceof Error ? vwrError.message : String(vwrError),\n vwrUrl: vwrConfig.vwrUrl,\n })\n throw vwrError // Re-throw to outer catch for fallback\n }\n}\n","import { loadVwr } from \"./loadVwr\"\n\nconst PLATFORM = import.meta.env.VITE_PLATFORM\nconst HUB_URL = import.meta.env.VITE_HUB_URL\n\nasync function init() {\n try {\n await loadVwr()\n } catch (error) {\n try {\n console.error(\"[Shell] ⚠️ FALLBACK TO HUB - Init failed:\", error)\n\n if ((window as any).DD_LOGS) {\n ;(window as any).DD_LOGS.logger.error(\"shell_init_failed\", {\n error: (error as Error).message,\n platform: PLATFORM,\n })\n }\n } finally {\n //Fallback, can't trust config exists\n const fallbackUrl = new URL(HUB_URL)\n fallbackUrl.searchParams.set(\"volley_platform\", PLATFORM)\n window.location.href = fallbackUrl.toString()\n }\n }\n}\n\ninit()\n"],"names":["defaultLogger","message","context","loadVwr","logger","PLATFORM","HUB_URL","init","error","fallbackUrl"],"mappings":"ssBAMO,MAAMA,EAAwB,CACjC,KAAM,CAACC,EAASC,IACZA,EAAU,QAAQ,IAAID,EAASC,CAAO,EAAI,QAAQ,IAAID,CAAO,EACjE,KAAM,CAACA,EAASC,IACZA,EAAU,QAAQ,KAAKD,EAASC,CAAO,EAAI,QAAQ,KAAKD,CAAO,EACnE,MAAO,CAACA,EAASC,IACbA,EAAU,QAAQ,MAAMD,EAASC,CAAO,EAAI,QAAQ,MAAMD,CAAO,CACzE,ECiCaE,EAAU,MAAOC,EAAiBJ,IAAkB,CAEzD,MAAM,IAAI,MAAM,4CAA4C,CAqGpE,ECnJMK,EAAW,OACXC,EAAU,OAEhB,eAAeC,GAAO,CAClB,GAAI,CACA,MAAMJ,EAAA,CACV,OAASK,EAAO,CACZ,GAAI,CACA,QAAQ,MAAM,6CAA8CA,CAAK,EAE5D,OAAe,SACd,OAAe,QAAQ,OAAO,MAAM,oBAAqB,CACvD,MAAQA,EAAgB,QACxB,SAAUH,CAAA,CACb,CAET,QAAA,CAEI,MAAMI,EAAc,IAAI,IAAIH,CAAO,EACnCG,EAAY,aAAa,IAAI,kBAAmBJ,CAAQ,EACxD,OAAO,SAAS,KAAOI,EAAY,SAAA,CACvC,CACJ,CACJ,CAEAF,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"vwrConfig.d.ts","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAErD,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;AAsBD,eAAO,MAAM,YAAY,GACrB,SAAS,gBAAgB,EACzB,SAAQ,MAAsB,KAC/B,OAAO,CAAC,SAAS,CAmEnB,CAAA;AAsKD,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,KAAG,OAWlD,CAAA"}
1
+ {"version":3,"file":"vwrConfig.d.ts","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAErD,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;AA0OD,eAAO,MAAM,YAAY,GACrB,SAAS,gBAAgB,EACzB,SAAQ,MAAsB,KAC/B,OAAO,CAAC,SAAS,CAEnB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,KAAG,OAWlD,CAAA"}
package/dist/vwrConfig.js CHANGED
@@ -18,142 +18,154 @@ const buildUrl = (path, base) => {
18
18
  const normalizedBase = base.endsWith("/") ? base : `${base}/`;
19
19
  return new URL(path, normalizedBase);
20
20
  };
21
- export const getVWRConfig = async (request, logger = defaultLogger) => {
22
- var _a;
23
- const timeout = (_a = request.timeout) !== null && _a !== void 0 ? _a : DEFAULT_CONFIG_TIMEOUT;
24
- logger.info("[VWR Config] Fetching config with priority: local → device → shellVersion → environment → defaults");
25
- // Fetch all configs in parallel for performance
26
- const [localConfig, deviceConfig, shellVersionConfig, environmentConfig] = await Promise.all([
27
- tryGetLocalConfig(request.configFile, timeout, logger),
28
- tryGetDeviceConfig(request.configUrl, request.configFile, request.platform, request.deviceId, timeout, logger),
29
- tryGetShellVersionConfig(request.configUrl, request.configFile, request.environment, request.platform, request.shellVersion, timeout, logger),
30
- tryGetEnvironmentConfig(request.configUrl, request.configFile, request.environment, timeout, logger),
31
- ]);
32
- // Return first successful config in priority order
33
- if (localConfig !== null) {
34
- logger.info("[VWR Config] ✓ Using config from: local", localConfig);
35
- return localConfig;
36
- }
37
- if (deviceConfig !== null) {
38
- logger.info("[VWR Config] ✓ Using config from: device", deviceConfig);
39
- return deviceConfig;
40
- }
41
- if (shellVersionConfig !== null) {
42
- logger.info("[VWR Config] ✓ Using config from: shellVersion", shellVersionConfig);
43
- return shellVersionConfig;
44
- }
45
- if (environmentConfig !== null) {
46
- logger.info("[VWR Config] ✓ Using config from: environment", environmentConfig);
47
- return environmentConfig;
48
- }
49
- // All fetches failed, use defaults
50
- logger.warn("[VWR Config] All config fetches failed, using built-in defaults");
51
- const defaultConfig = getDefaultConfig();
52
- return defaultConfig;
53
- };
54
- const tryGetLocalConfig = async (configFile, timeout, logger) => {
55
- var _a, _b;
56
- try {
57
- const url = buildUrl(configFile, (_b = (_a = ENV_DEFAULTS["local"]) === null || _a === void 0 ? void 0 : _a.configUrl) !== null && _b !== void 0 ? _b : "");
58
- logger.info(`[VWR Config] Trying local: ${url}`);
59
- return tryGetVWRConfig(url, timeout);
60
- }
61
- catch (error) {
62
- logger.error(`[VWR Config] URL construction failed for local config: ${error}`);
63
- return null;
64
- }
65
- };
66
- const tryGetDeviceConfig = async (configUrl, configFile, platform, deviceId, timeout, logger) => {
67
- try {
68
- const url = buildUrl(`device/${platform}/${deviceId}/${configFile}`, configUrl);
69
- logger.info(`[VWR Config] Trying device: ${url}`);
70
- return tryGetVWRConfig(url, timeout);
71
- }
72
- catch (error) {
73
- logger.error(`[VWR Config] URL construction failed for device config: ${error}`);
74
- return null;
75
- }
76
- };
77
- const tryGetEnvironmentConfig = async (configUrl, configFile, environment, timeout, logger) => {
78
- try {
79
- const url = buildUrl(`environments/${environment}/${configFile}`, configUrl);
80
- logger.info(`[VWR Config] Trying environment: ${url}`);
81
- return tryGetVWRConfig(url, timeout);
21
+ class VWRConfigFetcher {
22
+ constructor(request, logger) {
23
+ var _a;
24
+ this.defaults = getDefaultConfig(request.environment);
25
+ this.timeout = (_a = request.timeout) !== null && _a !== void 0 ? _a : DEFAULT_CONFIG_TIMEOUT;
26
+ this.logger = logger;
27
+ this.configUrl = request.configUrl;
28
+ this.configFile = request.configFile;
29
+ this.platform = request.platform;
30
+ this.deviceId = request.deviceId;
31
+ this.environment = request.environment;
32
+ this.shellVersion = request.shellVersion;
33
+ }
34
+ async fetch() {
35
+ this.logger.info("[VWR Config] Fetching config with priority: local → device → shellVersion → environment → defaults");
36
+ // Fetch all configs in parallel for performance
37
+ const [localConfig, deviceConfig, shellVersionConfig, environmentConfig,] = await Promise.all([
38
+ this.tryGetLocalConfig(),
39
+ this.tryGetDeviceConfig(),
40
+ this.tryGetShellVersionConfig(),
41
+ this.tryGetEnvironmentConfig(),
42
+ ]);
43
+ // Return first successful config in priority order
44
+ if (localConfig !== null) {
45
+ this.logger.info("[VWR Config] ✓ Using config from: local", localConfig);
46
+ return localConfig;
47
+ }
48
+ if (deviceConfig !== null) {
49
+ this.logger.info("[VWR Config] Using config from: device", deviceConfig);
50
+ return deviceConfig;
51
+ }
52
+ if (shellVersionConfig !== null) {
53
+ this.logger.info("[VWR Config] ✓ Using config from: shellVersion", shellVersionConfig);
54
+ return shellVersionConfig;
55
+ }
56
+ if (environmentConfig !== null) {
57
+ this.logger.info("[VWR Config] Using config from: environment", environmentConfig);
58
+ return environmentConfig;
59
+ }
60
+ // All fetches failed, use defaults
61
+ this.logger.warn("[VWR Config] All config fetches failed, using built-in defaults");
62
+ return this.defaults;
63
+ }
64
+ async tryGetLocalConfig() {
65
+ var _a, _b;
66
+ try {
67
+ 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.info(`[VWR Config] Trying local: ${url}`);
69
+ return this.tryFetchConfig(url);
70
+ }
71
+ catch (error) {
72
+ this.logger.error(`[VWR Config] URL construction failed for local config: ${error}`);
73
+ return null;
74
+ }
82
75
  }
83
- catch (error) {
84
- logger.error(`[VWR Config] URL construction failed for environment config: ${error}`);
85
- return null;
76
+ async tryGetDeviceConfig() {
77
+ try {
78
+ const url = buildUrl(`device/${this.platform}/${this.deviceId}/${this.configFile}`, this.configUrl);
79
+ this.logger.info(`[VWR Config] Trying device: ${url}`);
80
+ return this.tryFetchConfig(url);
81
+ }
82
+ catch (error) {
83
+ this.logger.error(`[VWR Config] URL construction failed for device config: ${error}`);
84
+ return null;
85
+ }
86
86
  }
87
- };
88
- const tryGetShellVersionConfig = async (configUrl, configFile, environment, platform, shellVersion, timeout, logger) => {
89
- try {
90
- const url = buildUrl(`shellVersion/${environment}/${platform}/${shellVersion}/${configFile}`, configUrl);
91
- logger.info(`[VWR Config] Trying shellVersion: ${url}`);
92
- return tryGetVWRConfig(url, timeout);
87
+ async tryGetEnvironmentConfig() {
88
+ try {
89
+ const url = buildUrl(`environments/${this.environment}/${this.configFile}`, this.configUrl);
90
+ this.logger.info(`[VWR Config] Trying environment: ${url}`);
91
+ return this.tryFetchConfig(url);
92
+ }
93
+ catch (error) {
94
+ this.logger.error(`[VWR Config] URL construction failed for environment config: ${error}`);
95
+ return null;
96
+ }
93
97
  }
94
- catch (error) {
95
- logger.error(`[VWR Config] URL construction failed for shellVersion config: ${error}`);
96
- return null;
98
+ async tryGetShellVersionConfig() {
99
+ try {
100
+ const url = buildUrl(`shellVersion/${this.environment}/${this.platform}/${this.shellVersion}/${this.configFile}`, this.configUrl);
101
+ this.logger.info(`[VWR Config] Trying shellVersion: ${url}`);
102
+ return this.tryFetchConfig(url);
103
+ }
104
+ catch (error) {
105
+ this.logger.error(`[VWR Config] URL construction failed for shellVersion config: ${error}`);
106
+ return null;
107
+ }
97
108
  }
98
- };
99
- const tryGetVWRConfig = async (url, timeout) => {
100
- const controller = new AbortController();
101
- const timeoutId = setTimeout(() => controller.abort(), timeout);
102
- try {
103
- const response = await fetch(new Request(url, {
104
- headers: {
105
- "Content-Type": "application/json",
106
- },
107
- signal: controller.signal,
108
- }));
109
- if (!response.ok) {
109
+ async tryFetchConfig(url) {
110
+ const controller = new AbortController();
111
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
112
+ try {
113
+ const response = await fetch(new Request(url, {
114
+ headers: { "Content-Type": "application/json" },
115
+ signal: controller.signal,
116
+ }));
117
+ if (!response.ok) {
118
+ clearTimeout(timeoutId);
119
+ return null;
120
+ }
121
+ const config = await response.json();
122
+ clearTimeout(timeoutId);
123
+ return this.parseConfig(config);
124
+ }
125
+ catch (_a) {
110
126
  clearTimeout(timeoutId);
111
127
  return null;
112
128
  }
113
- let config = await response.json();
114
- config = parseConfig(config);
115
- clearTimeout(timeoutId);
116
- return config;
117
- }
118
- catch (_a) {
119
- clearTimeout(timeoutId);
120
- return null;
121
- }
122
- };
123
- const parseConfig = (config) => {
124
- const defaultConfig = getDefaultConfig();
125
- if (!config.platformApiUrl) {
126
- config.platformApiUrl = defaultConfig.platformApiUrl;
127
129
  }
128
- if (!config.platformAuthApiUrl) {
129
- config.platformAuthApiUrl = defaultConfig.platformAuthApiUrl;
130
- }
131
- if (!Array.isArray(config.trustedDomains) ||
132
- config.trustedDomains.length === 0) {
133
- config.trustedDomains = defaultConfig.trustedDomains;
134
- }
135
- if (!config.vwrUrl) {
136
- config.vwrUrl = defaultConfig.vwrUrl;
137
- const vwrUrlOrigin = new URL(defaultConfig.vwrUrl).origin;
138
- if (!config.trustedDomains.includes(vwrUrlOrigin)) {
139
- config.trustedDomains.push(vwrUrlOrigin);
130
+ parseConfig(config) {
131
+ const result = {
132
+ hubUrl: config.hubUrl || this.defaults.hubUrl,
133
+ vwrUrl: config.vwrUrl || this.defaults.vwrUrl,
134
+ launchUrl: config.launchUrl,
135
+ platformApiUrl: config.platformApiUrl || this.defaults.platformApiUrl,
136
+ platformAuthApiUrl: config.platformAuthApiUrl || this.defaults.platformAuthApiUrl,
137
+ trustedDomains: Array.isArray(config.trustedDomains) &&
138
+ config.trustedDomains.length > 0
139
+ ? [...config.trustedDomains]
140
+ : [...this.defaults.trustedDomains],
141
+ };
142
+ // Ensure vwrUrl origin is in trustedDomains
143
+ const vwrUrlOrigin = new URL(result.vwrUrl).origin;
144
+ if (!result.trustedDomains.includes(vwrUrlOrigin)) {
145
+ result.trustedDomains.push(vwrUrlOrigin);
140
146
  }
141
- }
142
- if (!config.hubUrl) {
143
- config.hubUrl = defaultConfig.hubUrl;
144
- const hubUrlOrigin = new URL(defaultConfig.hubUrl).origin;
145
- if (!config.trustedDomains.includes(hubUrlOrigin)) {
146
- config.trustedDomains.push(hubUrlOrigin);
147
+ // Ensure hubUrl origin is in trustedDomains
148
+ const hubUrlOrigin = new URL(result.hubUrl).origin;
149
+ if (!result.trustedDomains.includes(hubUrlOrigin)) {
150
+ result.trustedDomains.push(hubUrlOrigin);
147
151
  }
148
- }
149
- // launchUrl is optional - only add to trustedDomains if explicitly set
150
- if (config.launchUrl) {
151
- const launchUrlOrigin = new URL(config.launchUrl).origin;
152
- if (!config.trustedDomains.includes(launchUrlOrigin)) {
153
- config.trustedDomains.push(launchUrlOrigin);
152
+ // launchUrl is optional - only add to trustedDomains if explicitly set
153
+ if (result.launchUrl) {
154
+ try {
155
+ const launchUrlOrigin = new URL(result.launchUrl).origin;
156
+ if (!result.trustedDomains.includes(launchUrlOrigin)) {
157
+ result.trustedDomains.push(launchUrlOrigin);
158
+ }
159
+ }
160
+ catch (_a) {
161
+ // Invalid launchUrl - skip adding to trustedDomains
162
+ }
154
163
  }
164
+ return result;
155
165
  }
156
- return config;
166
+ }
167
+ export const getVWRConfig = async (request, logger = defaultLogger) => {
168
+ return new VWRConfigFetcher(request, logger).fetch();
157
169
  };
158
170
  export const validateConfig = (config) => {
159
171
  if (!config.vwrUrl)
@@ -167,12 +179,11 @@ export const validateConfig = (config) => {
167
179
  return false;
168
180
  return true;
169
181
  };
170
- const getDefaultConfig = () => {
182
+ const getDefaultConfig = (environment) => {
171
183
  var _a;
172
- const ENVIRONMENT = import.meta.env.VITE_ENVIRONMENT || "dev";
173
- const defaults = ENV_DEFAULTS[ENVIRONMENT];
184
+ const defaults = ENV_DEFAULTS[environment];
174
185
  if (!defaults) {
175
- throw new Error(`[VWR Config] Unknown environment: ${ENVIRONMENT}. Valid: local, dev, staging, prod`);
186
+ throw new Error(`[VWR Config] Unknown environment: ${environment}. Valid: local, dev, staging, prod`);
176
187
  }
177
188
  return {
178
189
  hubUrl: defaults.hubUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"vwrConfig.js","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vwrConfig.js","sourceRoot":"","sources":["../src/vwrConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAA;AAqBrD,MAAM,sBAAsB,GAAG,IAAI,CAAA;AAEnC;;;;;;;;;;;;GAYG;AACH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAAY,EAAO,EAAE;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAA;IAC7D,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,gBAAgB;IAWlB,YAAY,OAAyB,EAAE,MAAc;;QACjD,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,CAAC,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,sBAAsB,CAAA;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,oGAAoG,CACvG,CAAA;QAED,gDAAgD;QAChD,MAAM,CACF,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACpB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,uBAAuB,EAAE;SACjC,CAAC,CAAA;QAEF,mDAAmD;QACnD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,yCAAyC,EACzC,WAAW,CACd,CAAA;YACD,OAAO,WAAW,CAAA;QACtB,CAAC;QACD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,0CAA0C,EAC1C,YAAY,CACf,CAAA;YACD,OAAO,YAAY,CAAA;QACvB,CAAC;QACD,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,gDAAgD,EAChD,kBAAkB,CACrB,CAAA;YACD,OAAO,kBAAkB,CAAA;QAC7B,CAAC;QACD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,+CAA+C,EAC/C,iBAAiB,CACpB,CAAA;YACD,OAAO,iBAAiB,CAAA;QAC5B,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,iEAAiE,CACpE,CAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,iBAAiB;;QAC3B,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAChB,IAAI,CAAC,UAAU,EACf,MAAA,MAAA,YAAY,CAAC,OAAO,CAAC,0CAAE,SAAS,mCAAI,EAAE,CACzC,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAA;YACrD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,0DAA0D,KAAK,EAAE,CACpE,CAAA;YACD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAChB,UAAU,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,EAC7D,IAAI,CAAC,SAAS,CACjB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAA;YACtD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,2DAA2D,KAAK,EAAE,CACrE,CAAA;YACD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACjC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAChB,gBAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,EACrD,IAAI,CAAC,SAAS,CACjB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,gEAAgE,KAAK,EAAE,CAC1E,CAAA;YACD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAChB,gBAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,EAC3F,IAAI,CAAC,SAAS,CACjB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAA;YAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,iEAAiE,KAAK,EAAE,CAC3E,CAAA;YACD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAQ;QACjC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAEpE,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,IAAI,OAAO,CAAC,GAAG,EAAE;gBACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,UAAU,CAAC,MAAM;aAC5B,CAAC,CACL,CAAA;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,YAAY,CAAC,SAAS,CAAC,CAAA;gBACvB,OAAO,IAAI,CAAA;YACf,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACpC,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;QAAC,WAAM,CAAC;YACL,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,MAA0B;QAC1C,MAAM,MAAM,GAAc;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EACV,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;YACzD,kBAAkB,EACd,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB;YACjE,cAAc,EACV,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;gBACpC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;gBAC5B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC9C,CAAA;QAED,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5C,CAAC;QAED,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5C,CAAC;QAED,uEAAuE;QACvE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC;gBACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;gBACxD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBACnD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAC/C,CAAC;YACL,CAAC;YAAC,WAAM,CAAC;gBACL,oDAAoD;YACxD,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC7B,OAAyB,EACzB,SAAiB,aAAa,EACZ,EAAE;IACpB,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAiB,EAAW,EAAE;IACzD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEhC,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEhC,yCAAyC;IAEzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAA;SAClD,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAEzD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAa,EAAE;;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;IAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACX,qCAAqC,WAAW,oCAAoC,CACvF,CAAA;IACL,CAAC;IAED,OAAO;QACH,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,cAAc,EAAE;YACZ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM;YAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM;YAC/B,GAAG,CAAC,MAAA,QAAQ,CAAC,cAAc,mCAAI,EAAE,CAAC;SACrC;KACJ,CAAA;AACL,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volley/vwr-loader",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "type": "module",
5
5
  "description": "Vite-based VWR loader for all Volley platforms",
6
6
  "main": "dist/index.js",
@@ -34,10 +34,10 @@
34
34
  "commander": "^12.0.0",
35
35
  "dotenv": "^16.0.0",
36
36
  "fs-extra": "^11.0.0",
37
- "tsx": "^4.7.0",
38
37
  "vite": "^5.0.0"
39
38
  },
40
39
  "devDependencies": {
40
+ "tsx": "^4.7.0",
41
41
  "@platform/eslint-config": "workspace:*",
42
42
  "@semantic-release/git": "^10.0.1",
43
43
  "@semantic-release/npm": "^12.0.1",