@volley/vwr-loader 1.3.0 → 1.5.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 CHANGED
@@ -163,7 +163,7 @@ Returns safe defaults on error:
163
163
  ```typescript
164
164
  {
165
165
  'vwr-enabled': false,
166
- 'vwr-url': 'https://vwr.volley.tv/v1/vwr.js'
166
+ 'vwr-url': 'https://vwr.volley.tv/v1/1.0.0/vwr.js'
167
167
  }
168
168
  ```
169
169
 
@@ -0,0 +1,2 @@
1
+ export declare const init: import("vitest").Mock<any, any>;
2
+ //# sourceMappingURL=vwrModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vwrModule.d.ts","sourceRoot":"","sources":["../../src/__mocks__/vwrModule.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,iCAAU,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { vi } from "vitest";
2
+ export const init = vi.fn();
3
+ //# sourceMappingURL=vwrModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vwrModule.js","sourceRoot":"","sources":["../../src/__mocks__/vwrModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA"}
package/dist/cli.js CHANGED
@@ -8,7 +8,8 @@ import { fileURLToPath } from "url";
8
8
  import { build } from "vite";
9
9
  const CONFIG_URL_DEFAULT = "https://vwr.volley.tv/config/";
10
10
  const CONFIG_FILE_DEFAULT = "vwrConfig.json";
11
- const VWR_URL_PATH_DEFAULT = "v1/latest/vwr.js";
11
+ const VWR_DEFAULT_VERSION = "1.0.0";
12
+ const VWR_URL_PATH_DEFAULT = `v1/${VWR_DEFAULT_VERSION}/vwr.js`;
12
13
  const prodConfig = {
13
14
  hubUrl: "https://game-clients.volley.tv/hub",
14
15
  vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
@@ -39,7 +40,7 @@ const ENV_DEFAULTS = {
39
40
  },
40
41
  dev: {
41
42
  hubUrl: "https://game-clients-dev.volley.tv/hub",
42
- vwrUrl: `https://vwr.volley.tv/dev/${VWR_URL_PATH_DEFAULT}`,
43
+ vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
43
44
  configUrl: CONFIG_URL_DEFAULT,
44
45
  configFile: CONFIG_FILE_DEFAULT,
45
46
  platformApiUrl: "https://platform-dev.volley-services.net",
@@ -55,7 +56,7 @@ const ENV_DEFAULTS = {
55
56
  },
56
57
  staging: {
57
58
  hubUrl: "https://game-clients-staging.volley.tv/hub",
58
- vwrUrl: `https://vwr.volley.tv/staging/${VWR_URL_PATH_DEFAULT}`,
59
+ vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
59
60
  configUrl: CONFIG_URL_DEFAULT,
60
61
  configFile: CONFIG_FILE_DEFAULT,
61
62
  platformApiUrl: "https://platform-staging.volley-services.net",
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../src/envDefaults.ts","../scripts/build.ts"],"sourcesContent":["export interface EnvConfig {\n hubUrl: string\n vwrUrl: string\n configUrl: string\n configFile: string\n platformApiUrl: string\n platformAuthApiUrl: string\n amplitudeKey: string // Used for amplitude flag fetch, not part of VWRConfig\n trustedOrigins?: string[]\n}\n\nconst CONFIG_URL_DEFAULT = \"https://vwr.volley.tv/config/\"\nconst CONFIG_FILE_DEFAULT = \"vwrConfig.json\"\nconst VWR_URL_PATH_DEFAULT = \"v1/latest/vwr.js\"\n\n// Parse comma-separated env var, returning undefined if empty to allow fallback\nconst parseTrustedOrigins = (\n envVar: string | undefined\n): string[] | undefined => {\n const parsed = envVar?.split(\",\").filter(Boolean)\n return parsed?.length ? parsed : undefined\n}\n\nconst prodConfig: EnvConfig = {\n hubUrl: \"https://game-clients.volley.tv/hub\",\n vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,\n configUrl: CONFIG_URL_DEFAULT,\n configFile: CONFIG_FILE_DEFAULT,\n platformApiUrl: \"https://platform.volley-services.net\",\n platformAuthApiUrl: \"https://auth.volley.tv\",\n amplitudeKey: \"\",\n trustedOrigins: [\"https://volley.tv\", \"https://vl.ly\", \"https://vly.gg\"],\n}\n\nexport const ENV_DEFAULTS: Record<string, EnvConfig> = {\n local: {\n hubUrl: import.meta.env.VITE_HUB_URL || \"http://localhost:5173\",\n vwrUrl: import.meta.env.VITE_VWR_URL || \"http://localhost:5174/vwr.js\",\n configUrl:\n import.meta.env.VITE_CONFIG_URL || \"http://localhost:5174/config/\",\n configFile: import.meta.env.VITE_CONFIG_FILE || CONFIG_FILE_DEFAULT,\n platformApiUrl:\n import.meta.env.VITE_PLATFORM_API_URL ||\n \"https://platform-dev.volley-services.net\",\n platformAuthApiUrl:\n import.meta.env.VITE_PLATFORM_AUTH_API_URL ||\n \"https://auth-dev.volley.tv\",\n amplitudeKey: \"client-uJJVW3zKPC1G9kqPhUumLnZN6eaY42iQ\",\n trustedOrigins: parseTrustedOrigins(\n import.meta.env.VITE_TRUSTED_ORIGINS\n ) || [\n \"http://localhost:5173\",\n \"http://localhost:5174\",\n \"https://vl.ly\",\n \"https://dev.vl.ly\",\n \"https://staging.vl.ly\",\n \"https://vly.gg\",\n ],\n },\n dev: {\n hubUrl: \"https://game-clients-dev.volley.tv/hub\",\n vwrUrl: `https://vwr.volley.tv/dev/${VWR_URL_PATH_DEFAULT}`,\n configUrl: CONFIG_URL_DEFAULT,\n configFile: CONFIG_FILE_DEFAULT,\n platformApiUrl: \"https://platform-dev.volley-services.net\",\n platformAuthApiUrl: \"https://auth-dev.volley.tv\",\n amplitudeKey: \"client-uJJVW3zKPC1G9kqPhUumLnZN6eaY42iQ\",\n trustedOrigins: [\n \"https://volley.tv\",\n \"https://vl.ly\",\n \"https://dev.vl.ly\",\n \"https://staging.vl.ly\",\n \"https://vly.gg\",\n ],\n },\n staging: {\n hubUrl: \"https://game-clients-staging.volley.tv/hub\",\n vwrUrl: `https://vwr.volley.tv/staging/${VWR_URL_PATH_DEFAULT}`,\n configUrl: CONFIG_URL_DEFAULT,\n configFile: CONFIG_FILE_DEFAULT,\n platformApiUrl: \"https://platform-staging.volley-services.net\",\n platformAuthApiUrl: \"https://auth-staging.volley.tv\",\n amplitudeKey: \"\",\n trustedOrigins: [\n \"https://volley.tv\",\n \"https://vl.ly\",\n \"https://staging.vl.ly\",\n \"https://vly.gg\",\n ],\n },\n prod: prodConfig,\n production: prodConfig, // Alias for prod\n}\n","import { Command } from \"commander\"\nimport { config as loadDotenv } from \"dotenv\"\nimport fs from \"fs-extra\"\nimport os from \"os\"\nimport path from \"path\"\nimport { fileURLToPath } from \"url\"\nimport { build } from \"vite\"\n\nimport { ENV_DEFAULTS } from \"../src/envDefaults.js\"\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\n\n// Read package version for --version flag\nconst cliPackageJson = JSON.parse(\n fs.readFileSync(path.join(__dirname, \"../package.json\"), \"utf-8\")\n)\n\nconst VALID_PLATFORMS = [\n \"FIRE_TV\",\n \"ANDROID_MOBILE\",\n \"IOS_MOBILE\",\n \"SAMSUNG_TV\",\n \"LG_TV\",\n \"WEB\",\n]\n\nconst program = new Command()\n\n// Platforms that support reading environment from native shell at runtime\n// These platforms don't require --env flag (it's optional as an override)\nconst NATIVE_ENV_PLATFORMS = [\"FIRE_TV\"]\n\nprogram\n .name(\"build-loader\")\n .version(cliPackageJson.version)\n .description(\"Build vwr-loader with environment configuration\")\n .requiredOption(\n \"--platform <platform>\",\n \"Platform: FIRE_TV, ANDROID_MOBILE, IOS_MOBILE, SAMSUNG_TV, LG_TV, WEB\"\n )\n .option(\n \"--env <env>\",\n \"Environment: local, dev, staging, prod (required for non-Fire TV platforms)\"\n )\n .requiredOption(\"--output <path>\", \"Output directory\")\n .option(\"--hubUrl <url>\", \"Override Hub URL\")\n .option(\"--amplitudeKey <key>\", \"Override Amplitude deployment key\")\n .option(\"--configUrl <url>\", \"Override VWR Config URL\")\n .option(\"--configFile <filename>\", \"Override VWR Config Filename\")\n .option(\"--launchUrl <url>\", \"Override launch url\")\n .option(\"--datadog-app-id <id>\", \"Datadog RUM application ID\")\n .option(\"--datadog-client-token <token>\", \"Datadog client token\")\n .parse()\n\nconst opts = program.opts()\nconst platform = opts.platform.toUpperCase()\nconst supportsNativeEnv = NATIVE_ENV_PLATFORMS.includes(platform)\n\n// Validate --env is provided for platforms that don't support native env reading\nif (!opts.env && !supportsNativeEnv) {\n console.error(\n `❌ --env is required for platform \"${opts.platform}\"\\n` +\n ` Only Fire TV can read environment from native shell at runtime.\\n` +\n ` Valid environments: local, dev, staging, prod`\n )\n process.exit(1)\n}\n\n// For platforms with native env support, log that env will be read at runtime\nif (!opts.env && supportsNativeEnv) {\n console.log(\n `ℹ️ --env not provided. ${opts.platform} will read environment from native shell at runtime.`\n )\n}\n\n// Validate platform\nif (!VALID_PLATFORMS.includes(platform)) {\n console.error(`❌ Unknown platform: ${opts.platform}`)\n console.error(` Valid: ${VALID_PLATFORMS.join(\", \")}`)\n process.exit(1)\n}\n\n// Try to read from shell's .env file (run from shell directory)\nlet shellEnv: Record<string, string> = {}\nif (opts.env) {\n const envFile = path.join(process.cwd(), `.env.${opts.env}`)\n if (fs.existsSync(envFile)) {\n console.log(`📄 Reading config from ${envFile}`)\n const result = loadDotenv({ path: envFile })\n shellEnv = result.parsed || {}\n } else {\n console.log(`ℹ️ No .env.${opts.env} found, using defaults/CLI flags`)\n }\n}\n\n// Read shell version from package.json (for web shell)\nlet shellVersion = \"unknown\"\nconst packageJsonPath = path.join(process.cwd(), \"package.json\")\nif (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, \"utf-8\")\n )\n shellVersion = packageJson.version || \"unknown\"\n } catch {\n console.warn(`⚠️ Could not read version from package.json`)\n }\n}\n\n// Get predefined defaults for the specified environment\nconst envDefaults = opts.env ? ENV_DEFAULTS[opts.env] : undefined\nif (opts.env && !envDefaults) {\n console.error(`❌ Unknown environment: ${opts.env}`)\n console.error(` Valid: local, dev, staging, prod`)\n process.exit(1)\n}\n\n// Use env defaults if specified, otherwise fall back to dev defaults\n// (Fire TV without --env reads actual env from native at runtime, but needs URLs at build time)\nconst effectiveDefaults = envDefaults ?? ENV_DEFAULTS[\"dev\"]\n\n// Config precedence: CLI > shell .env > defaults\nconst config = {\n VITE_PLATFORM: platform,\n VITE_ENVIRONMENT: opts.env, // undefined for Fire TV without --env (reads from native)\n VITE_HUB_URL:\n opts.hubUrl || shellEnv.VITE_HUB_URL || effectiveDefaults.hubUrl,\n VITE_AMPLITUDE_DEPLOYMENT_KEY:\n opts.amplitudeKey ||\n shellEnv.VITE_AMPLITUDE_DEPLOYMENT_KEY ||\n effectiveDefaults.amplitudeKey ||\n \"\",\n VITE_VWR_URL: shellEnv.VITE_VWR_URL || effectiveDefaults.vwrUrl,\n VITE_CONFIG_URL:\n opts.configUrl ||\n shellEnv.VITE_CONFIG_URL ||\n effectiveDefaults.configUrl,\n VITE_CONFIG_FILE:\n opts.configFile ||\n shellEnv.VITE_CONFIG_FILE ||\n effectiveDefaults.configFile,\n VITE_LAUNCH_URL:\n opts.launchUrl ||\n shellEnv.VITE_LAUNCH_URL ||\n opts.hubUrl ||\n shellEnv.VITE_HUB_URL ||\n effectiveDefaults.hubUrl,\n VITE_DATADOG_APPLICATION_ID:\n opts.datadogAppId || shellEnv.VITE_DATADOG_APPLICATION_ID || \"\",\n VITE_DATADOG_CLIENT_TOKEN:\n opts.datadogClientToken || shellEnv.VITE_DATADOG_CLIENT_TOKEN || \"\",\n}\n\nconsole.log(\"🔧 Build configuration:\")\nconsole.log(` Platform: ${config.VITE_PLATFORM}`)\nconsole.log(\n ` Environment: ${config.VITE_ENVIRONMENT ?? \"(from native at runtime)\"}`\n)\nconsole.log(` Hub URL: ${config.VITE_HUB_URL}`)\nconsole.log(` VWR URL: ${config.VITE_VWR_URL}`)\nif (config.VITE_AMPLITUDE_DEPLOYMENT_KEY) {\n console.log(` Amplitude: ***`)\n} else {\n console.warn(` Amplitude: (not set)`)\n console.warn(\n ` ⚠️ VWR flag fetching will use safe defaults (vwr-enabled: false)`\n )\n}\nif (config.VITE_DATADOG_APPLICATION_ID && config.VITE_DATADOG_CLIENT_TOKEN) {\n console.log(` Datadog RUM: enabled`)\n} else {\n console.warn(` Datadog RUM: disabled (credentials not provided)`)\n}\n\n// Build with Vite (inline config to avoid path resolution issues)\nconst loaderSrcDir = path.join(__dirname, \"../src\")\nconst tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), \"vwr-loader-\"))\nconst loaderDistDir = tmpDir\n\n// Build define config - VITE_ENVIRONMENT is undefined for Fire TV (reads from native)\nconst defineConfig: Record<string, string> = {\n \"import.meta.env.VITE_PLATFORM\": JSON.stringify(config.VITE_PLATFORM),\n \"import.meta.env.VITE_SHELL_VERSION\": JSON.stringify(shellVersion),\n \"import.meta.env.VITE_HUB_URL\": JSON.stringify(config.VITE_HUB_URL),\n \"import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY\": JSON.stringify(\n config.VITE_AMPLITUDE_DEPLOYMENT_KEY\n ),\n \"import.meta.env.VITE_VWR_URL\": JSON.stringify(config.VITE_VWR_URL),\n \"import.meta.env.VITE_CONFIG_URL\": JSON.stringify(config.VITE_CONFIG_URL),\n \"import.meta.env.VITE_CONFIG_FILE\": JSON.stringify(config.VITE_CONFIG_FILE),\n \"import.meta.env.VITE_LAUNCH_URL\": JSON.stringify(config.VITE_LAUNCH_URL),\n \"import.meta.env.VITE_DATADOG_APPLICATION_ID\": JSON.stringify(\n config.VITE_DATADOG_APPLICATION_ID\n ),\n \"import.meta.env.VITE_DATADOG_CLIENT_TOKEN\": JSON.stringify(\n config.VITE_DATADOG_CLIENT_TOKEN\n ),\n}\n\n// Only inject VITE_ENVIRONMENT if provided (Fire TV reads from native otherwise)\nif (config.VITE_ENVIRONMENT) {\n defineConfig[\"import.meta.env.VITE_ENVIRONMENT\"] = JSON.stringify(\n config.VITE_ENVIRONMENT\n )\n}\n\ntry {\n console.log(`⏳ Building loader...`)\n await build({\n configFile: false,\n root: loaderSrcDir,\n // Use relative paths so loader works when served from any subdirectory\n base: \"./\",\n mode: opts.env ?? \"production\", // Use production mode for minification when env not specified\n logLevel: \"warn\",\n build: {\n outDir: loaderDistDir,\n emptyOutDir: true,\n target: \"es2017\",\n minify: opts.env === \"prod\" || !opts.env ? \"esbuild\" : false,\n sourcemap: true,\n rollupOptions: {\n input: {\n main: path.join(loaderSrcDir, \"index.html\"),\n },\n output: {\n entryFileNames: \"[name].js\",\n assetFileNames: \"[name].[ext]\",\n },\n },\n },\n define: defineConfig,\n })\n\n // Copy build output to specified directory\n const outputPath = path.resolve(opts.output)\n\n await fs.ensureDir(outputPath)\n await fs.copy(loaderDistDir, outputPath, { overwrite: true })\n\n console.log(`✅ VWR loader built successfully`)\n console.log(` Output: ${outputPath}`)\n console.log(` Files: index.html, main.js`)\n} finally {\n // Cleanup temp dir\n try {\n await fs.remove(tmpDir)\n } catch (e) {\n console.warn(\"⚠️ Failed to cleanup temp dir:\", e)\n }\n}\n"],"names":["loadDotenv"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sources":["../src/envDefaults.ts","../scripts/build.ts"],"sourcesContent":["export interface EnvConfig {\n hubUrl: string\n vwrUrl: string\n configUrl: string\n configFile: string\n platformApiUrl: string\n platformAuthApiUrl: string\n amplitudeKey: string // Used for amplitude flag fetch, not part of VWRConfig\n trustedOrigins?: string[]\n}\n\nconst CONFIG_URL_DEFAULT = \"https://vwr.volley.tv/config/\"\nconst CONFIG_FILE_DEFAULT = \"vwrConfig.json\"\nconst VWR_DEFAULT_VERSION = \"1.0.0\"\nconst VWR_URL_PATH_DEFAULT = `v1/${VWR_DEFAULT_VERSION}/vwr.js`\n\n// Parse comma-separated env var, returning undefined if empty to allow fallback\nconst parseTrustedOrigins = (\n envVar: string | undefined\n): string[] | undefined => {\n const parsed = envVar?.split(\",\").filter(Boolean)\n return parsed?.length ? parsed : undefined\n}\n\nconst prodConfig: EnvConfig = {\n hubUrl: \"https://game-clients.volley.tv/hub\",\n vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,\n configUrl: CONFIG_URL_DEFAULT,\n configFile: CONFIG_FILE_DEFAULT,\n platformApiUrl: \"https://platform.volley-services.net\",\n platformAuthApiUrl: \"https://auth.volley.tv\",\n amplitudeKey: \"\",\n trustedOrigins: [\"https://volley.tv\", \"https://vl.ly\", \"https://vly.gg\"],\n}\n\nexport const ENV_DEFAULTS: Record<string, EnvConfig> = {\n local: {\n hubUrl: import.meta.env.VITE_HUB_URL || \"http://localhost:5173\",\n vwrUrl: import.meta.env.VITE_VWR_URL || \"http://localhost:5174/vwr.js\",\n configUrl:\n import.meta.env.VITE_CONFIG_URL || \"http://localhost:5174/config/\",\n configFile: import.meta.env.VITE_CONFIG_FILE || CONFIG_FILE_DEFAULT,\n platformApiUrl:\n import.meta.env.VITE_PLATFORM_API_URL ||\n \"https://platform-dev.volley-services.net\",\n platformAuthApiUrl:\n import.meta.env.VITE_PLATFORM_AUTH_API_URL ||\n \"https://auth-dev.volley.tv\",\n amplitudeKey: \"client-uJJVW3zKPC1G9kqPhUumLnZN6eaY42iQ\",\n trustedOrigins: parseTrustedOrigins(\n import.meta.env.VITE_TRUSTED_ORIGINS\n ) || [\n \"http://localhost:5173\",\n \"http://localhost:5174\",\n \"https://vl.ly\",\n \"https://dev.vl.ly\",\n \"https://staging.vl.ly\",\n \"https://vly.gg\",\n ],\n },\n dev: {\n hubUrl: \"https://game-clients-dev.volley.tv/hub\",\n vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,\n configUrl: CONFIG_URL_DEFAULT,\n configFile: CONFIG_FILE_DEFAULT,\n platformApiUrl: \"https://platform-dev.volley-services.net\",\n platformAuthApiUrl: \"https://auth-dev.volley.tv\",\n amplitudeKey: \"client-uJJVW3zKPC1G9kqPhUumLnZN6eaY42iQ\",\n trustedOrigins: [\n \"https://volley.tv\",\n \"https://vl.ly\",\n \"https://dev.vl.ly\",\n \"https://staging.vl.ly\",\n \"https://vly.gg\",\n ],\n },\n staging: {\n hubUrl: \"https://game-clients-staging.volley.tv/hub\",\n vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,\n configUrl: CONFIG_URL_DEFAULT,\n configFile: CONFIG_FILE_DEFAULT,\n platformApiUrl: \"https://platform-staging.volley-services.net\",\n platformAuthApiUrl: \"https://auth-staging.volley.tv\",\n amplitudeKey: \"\",\n trustedOrigins: [\n \"https://volley.tv\",\n \"https://vl.ly\",\n \"https://staging.vl.ly\",\n \"https://vly.gg\",\n ],\n },\n prod: prodConfig,\n production: prodConfig, // Alias for prod\n}\n","import { Command } from \"commander\"\nimport { config as loadDotenv } from \"dotenv\"\nimport fs from \"fs-extra\"\nimport os from \"os\"\nimport path from \"path\"\nimport { fileURLToPath } from \"url\"\nimport { build } from \"vite\"\n\nimport { ENV_DEFAULTS } from \"../src/envDefaults.js\"\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\n\n// Read package version for --version flag\nconst cliPackageJson = JSON.parse(\n fs.readFileSync(path.join(__dirname, \"../package.json\"), \"utf-8\")\n)\n\nconst VALID_PLATFORMS = [\n \"FIRE_TV\",\n \"ANDROID_MOBILE\",\n \"IOS_MOBILE\",\n \"SAMSUNG_TV\",\n \"LG_TV\",\n \"WEB\",\n]\n\nconst program = new Command()\n\n// Platforms that support reading environment from native shell at runtime\n// These platforms don't require --env flag (it's optional as an override)\nconst NATIVE_ENV_PLATFORMS = [\"FIRE_TV\"]\n\nprogram\n .name(\"build-loader\")\n .version(cliPackageJson.version)\n .description(\"Build vwr-loader with environment configuration\")\n .requiredOption(\n \"--platform <platform>\",\n \"Platform: FIRE_TV, ANDROID_MOBILE, IOS_MOBILE, SAMSUNG_TV, LG_TV, WEB\"\n )\n .option(\n \"--env <env>\",\n \"Environment: local, dev, staging, prod (required for non-Fire TV platforms)\"\n )\n .requiredOption(\"--output <path>\", \"Output directory\")\n .option(\"--hubUrl <url>\", \"Override Hub URL\")\n .option(\"--amplitudeKey <key>\", \"Override Amplitude deployment key\")\n .option(\"--configUrl <url>\", \"Override VWR Config URL\")\n .option(\"--configFile <filename>\", \"Override VWR Config Filename\")\n .option(\"--launchUrl <url>\", \"Override launch url\")\n .option(\"--datadog-app-id <id>\", \"Datadog RUM application ID\")\n .option(\"--datadog-client-token <token>\", \"Datadog client token\")\n .parse()\n\nconst opts = program.opts()\nconst platform = opts.platform.toUpperCase()\nconst supportsNativeEnv = NATIVE_ENV_PLATFORMS.includes(platform)\n\n// Validate --env is provided for platforms that don't support native env reading\nif (!opts.env && !supportsNativeEnv) {\n console.error(\n `❌ --env is required for platform \"${opts.platform}\"\\n` +\n ` Only Fire TV can read environment from native shell at runtime.\\n` +\n ` Valid environments: local, dev, staging, prod`\n )\n process.exit(1)\n}\n\n// For platforms with native env support, log that env will be read at runtime\nif (!opts.env && supportsNativeEnv) {\n console.log(\n `ℹ️ --env not provided. ${opts.platform} will read environment from native shell at runtime.`\n )\n}\n\n// Validate platform\nif (!VALID_PLATFORMS.includes(platform)) {\n console.error(`❌ Unknown platform: ${opts.platform}`)\n console.error(` Valid: ${VALID_PLATFORMS.join(\", \")}`)\n process.exit(1)\n}\n\n// Try to read from shell's .env file (run from shell directory)\nlet shellEnv: Record<string, string> = {}\nif (opts.env) {\n const envFile = path.join(process.cwd(), `.env.${opts.env}`)\n if (fs.existsSync(envFile)) {\n console.log(`📄 Reading config from ${envFile}`)\n const result = loadDotenv({ path: envFile })\n shellEnv = result.parsed || {}\n } else {\n console.log(`ℹ️ No .env.${opts.env} found, using defaults/CLI flags`)\n }\n}\n\n// Read shell version from package.json (for web shell)\nlet shellVersion = \"unknown\"\nconst packageJsonPath = path.join(process.cwd(), \"package.json\")\nif (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, \"utf-8\")\n )\n shellVersion = packageJson.version || \"unknown\"\n } catch {\n console.warn(`⚠️ Could not read version from package.json`)\n }\n}\n\n// Get predefined defaults for the specified environment\nconst envDefaults = opts.env ? ENV_DEFAULTS[opts.env] : undefined\nif (opts.env && !envDefaults) {\n console.error(`❌ Unknown environment: ${opts.env}`)\n console.error(` Valid: local, dev, staging, prod`)\n process.exit(1)\n}\n\n// Use env defaults if specified, otherwise fall back to dev defaults\n// (Fire TV without --env reads actual env from native at runtime, but needs URLs at build time)\nconst effectiveDefaults = envDefaults ?? ENV_DEFAULTS[\"dev\"]\n\n// Config precedence: CLI > shell .env > defaults\nconst config = {\n VITE_PLATFORM: platform,\n VITE_ENVIRONMENT: opts.env, // undefined for Fire TV without --env (reads from native)\n VITE_HUB_URL:\n opts.hubUrl || shellEnv.VITE_HUB_URL || effectiveDefaults.hubUrl,\n VITE_AMPLITUDE_DEPLOYMENT_KEY:\n opts.amplitudeKey ||\n shellEnv.VITE_AMPLITUDE_DEPLOYMENT_KEY ||\n effectiveDefaults.amplitudeKey ||\n \"\",\n VITE_VWR_URL: shellEnv.VITE_VWR_URL || effectiveDefaults.vwrUrl,\n VITE_CONFIG_URL:\n opts.configUrl ||\n shellEnv.VITE_CONFIG_URL ||\n effectiveDefaults.configUrl,\n VITE_CONFIG_FILE:\n opts.configFile ||\n shellEnv.VITE_CONFIG_FILE ||\n effectiveDefaults.configFile,\n VITE_LAUNCH_URL:\n opts.launchUrl ||\n shellEnv.VITE_LAUNCH_URL ||\n opts.hubUrl ||\n shellEnv.VITE_HUB_URL ||\n effectiveDefaults.hubUrl,\n VITE_DATADOG_APPLICATION_ID:\n opts.datadogAppId || shellEnv.VITE_DATADOG_APPLICATION_ID || \"\",\n VITE_DATADOG_CLIENT_TOKEN:\n opts.datadogClientToken || shellEnv.VITE_DATADOG_CLIENT_TOKEN || \"\",\n}\n\nconsole.log(\"🔧 Build configuration:\")\nconsole.log(` Platform: ${config.VITE_PLATFORM}`)\nconsole.log(\n ` Environment: ${config.VITE_ENVIRONMENT ?? \"(from native at runtime)\"}`\n)\nconsole.log(` Hub URL: ${config.VITE_HUB_URL}`)\nconsole.log(` VWR URL: ${config.VITE_VWR_URL}`)\nif (config.VITE_AMPLITUDE_DEPLOYMENT_KEY) {\n console.log(` Amplitude: ***`)\n} else {\n console.warn(` Amplitude: (not set)`)\n console.warn(\n ` ⚠️ VWR flag fetching will use safe defaults (vwr-enabled: false)`\n )\n}\nif (config.VITE_DATADOG_APPLICATION_ID && config.VITE_DATADOG_CLIENT_TOKEN) {\n console.log(` Datadog RUM: enabled`)\n} else {\n console.warn(` Datadog RUM: disabled (credentials not provided)`)\n}\n\n// Build with Vite (inline config to avoid path resolution issues)\nconst loaderSrcDir = path.join(__dirname, \"../src\")\nconst tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), \"vwr-loader-\"))\nconst loaderDistDir = tmpDir\n\n// Build define config - VITE_ENVIRONMENT is undefined for Fire TV (reads from native)\nconst defineConfig: Record<string, string> = {\n \"import.meta.env.VITE_PLATFORM\": JSON.stringify(config.VITE_PLATFORM),\n \"import.meta.env.VITE_SHELL_VERSION\": JSON.stringify(shellVersion),\n \"import.meta.env.VITE_HUB_URL\": JSON.stringify(config.VITE_HUB_URL),\n \"import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY\": JSON.stringify(\n config.VITE_AMPLITUDE_DEPLOYMENT_KEY\n ),\n \"import.meta.env.VITE_VWR_URL\": JSON.stringify(config.VITE_VWR_URL),\n \"import.meta.env.VITE_CONFIG_URL\": JSON.stringify(config.VITE_CONFIG_URL),\n \"import.meta.env.VITE_CONFIG_FILE\": JSON.stringify(config.VITE_CONFIG_FILE),\n \"import.meta.env.VITE_LAUNCH_URL\": JSON.stringify(config.VITE_LAUNCH_URL),\n \"import.meta.env.VITE_DATADOG_APPLICATION_ID\": JSON.stringify(\n config.VITE_DATADOG_APPLICATION_ID\n ),\n \"import.meta.env.VITE_DATADOG_CLIENT_TOKEN\": JSON.stringify(\n config.VITE_DATADOG_CLIENT_TOKEN\n ),\n}\n\n// Only inject VITE_ENVIRONMENT if provided (Fire TV reads from native otherwise)\nif (config.VITE_ENVIRONMENT) {\n defineConfig[\"import.meta.env.VITE_ENVIRONMENT\"] = JSON.stringify(\n config.VITE_ENVIRONMENT\n )\n}\n\ntry {\n console.log(`⏳ Building loader...`)\n await build({\n configFile: false,\n root: loaderSrcDir,\n // Use relative paths so loader works when served from any subdirectory\n base: \"./\",\n mode: opts.env ?? \"production\", // Use production mode for minification when env not specified\n logLevel: \"warn\",\n build: {\n outDir: loaderDistDir,\n emptyOutDir: true,\n target: \"es2017\",\n minify: opts.env === \"prod\" || !opts.env ? \"esbuild\" : false,\n sourcemap: true,\n rollupOptions: {\n input: {\n main: path.join(loaderSrcDir, \"index.html\"),\n },\n output: {\n entryFileNames: \"[name].js\",\n assetFileNames: \"[name].[ext]\",\n },\n },\n },\n define: defineConfig,\n })\n\n // Copy build output to specified directory\n const outputPath = path.resolve(opts.output)\n\n await fs.ensureDir(outputPath)\n await fs.copy(loaderDistDir, outputPath, { overwrite: true })\n\n console.log(`✅ VWR loader built successfully`)\n console.log(` Output: ${outputPath}`)\n console.log(` Files: index.html, main.js`)\n} finally {\n // Cleanup temp dir\n try {\n await fs.remove(tmpDir)\n } catch (e) {\n console.warn(\"⚠️ Failed to cleanup temp dir:\", e)\n }\n}\n"],"names":["loadDotenv"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"envDefaults.d.ts","sourceRoot":"","sources":["../src/envDefaults.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AAyBD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA0DlD,CAAA"}
1
+ {"version":3,"file":"envDefaults.d.ts","sourceRoot":"","sources":["../src/envDefaults.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AA0BD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA0DlD,CAAA"}
@@ -1,6 +1,7 @@
1
1
  const CONFIG_URL_DEFAULT = "https://vwr.volley.tv/config/";
2
2
  const CONFIG_FILE_DEFAULT = "vwrConfig.json";
3
- const VWR_URL_PATH_DEFAULT = "v1/latest/vwr.js";
3
+ const VWR_DEFAULT_VERSION = "1.0.0";
4
+ const VWR_URL_PATH_DEFAULT = `v1/${VWR_DEFAULT_VERSION}/vwr.js`;
4
5
  // Parse comma-separated env var, returning undefined if empty to allow fallback
5
6
  const parseTrustedOrigins = (envVar) => {
6
7
  const parsed = envVar === null || envVar === void 0 ? void 0 : envVar.split(",").filter(Boolean);
@@ -38,7 +39,7 @@ export const ENV_DEFAULTS = {
38
39
  },
39
40
  dev: {
40
41
  hubUrl: "https://game-clients-dev.volley.tv/hub",
41
- vwrUrl: `https://vwr.volley.tv/dev/${VWR_URL_PATH_DEFAULT}`,
42
+ vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
42
43
  configUrl: CONFIG_URL_DEFAULT,
43
44
  configFile: CONFIG_FILE_DEFAULT,
44
45
  platformApiUrl: "https://platform-dev.volley-services.net",
@@ -54,7 +55,7 @@ export const ENV_DEFAULTS = {
54
55
  },
55
56
  staging: {
56
57
  hubUrl: "https://game-clients-staging.volley.tv/hub",
57
- vwrUrl: `https://vwr.volley.tv/staging/${VWR_URL_PATH_DEFAULT}`,
58
+ vwrUrl: `https://vwr.volley.tv/${VWR_URL_PATH_DEFAULT}`,
58
59
  configUrl: CONFIG_URL_DEFAULT,
59
60
  configFile: CONFIG_FILE_DEFAULT,
60
61
  platformApiUrl: "https://platform-staging.volley-services.net",
@@ -1 +1 @@
1
- {"version":3,"file":"envDefaults.js","sourceRoot":"","sources":["../src/envDefaults.ts"],"names":[],"mappings":"AAWA,MAAM,kBAAkB,GAAG,+BAA+B,CAAA;AAC1D,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAC5C,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAE/C,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,CACxB,MAA0B,EACN,EAAE;IACtB,MAAM,MAAM,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,UAAU,GAAc;IAC1B,MAAM,EAAE,oCAAoC;IAC5C,MAAM,EAAE,yBAAyB,oBAAoB,EAAE;IACvD,SAAS,EAAE,kBAAkB;IAC7B,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,sCAAsC;IACtD,kBAAkB,EAAE,wBAAwB;IAC5C,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,CAAC;CAC3E,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAA8B;IACnD,KAAK,EAAE;QACH,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB;QAC/D,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,8BAA8B;QACtE,SAAS,EACL,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,+BAA+B;QACtE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,mBAAmB;QACnE,cAAc,EACV,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB;YACrC,0CAA0C;QAC9C,kBAAkB,EACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B;YAC1C,4BAA4B;QAChC,YAAY,EAAE,yCAAyC;QACvD,cAAc,EAAE,mBAAmB,CAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CACvC,IAAI;YACD,uBAAuB;YACvB,uBAAuB;YACvB,eAAe;YACf,mBAAmB;YACnB,uBAAuB;YACvB,gBAAgB;SACnB;KACJ;IACD,GAAG,EAAE;QACD,MAAM,EAAE,wCAAwC;QAChD,MAAM,EAAE,6BAA6B,oBAAoB,EAAE;QAC3D,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,mBAAmB;QAC/B,cAAc,EAAE,0CAA0C;QAC1D,kBAAkB,EAAE,4BAA4B;QAChD,YAAY,EAAE,yCAAyC;QACvD,cAAc,EAAE;YACZ,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YACnB,uBAAuB;YACvB,gBAAgB;SACnB;KACJ;IACD,OAAO,EAAE;QACL,MAAM,EAAE,4CAA4C;QACpD,MAAM,EAAE,iCAAiC,oBAAoB,EAAE;QAC/D,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,mBAAmB;QAC/B,cAAc,EAAE,8CAA8C;QAC9D,kBAAkB,EAAE,gCAAgC;QACpD,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE;YACZ,mBAAmB;YACnB,eAAe;YACf,uBAAuB;YACvB,gBAAgB;SACnB;KACJ;IACD,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,UAAU,EAAE,iBAAiB;CAC5C,CAAA"}
1
+ {"version":3,"file":"envDefaults.js","sourceRoot":"","sources":["../src/envDefaults.ts"],"names":[],"mappings":"AAWA,MAAM,kBAAkB,GAAG,+BAA+B,CAAA;AAC1D,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAC5C,MAAM,mBAAmB,GAAG,OAAO,CAAA;AACnC,MAAM,oBAAoB,GAAG,MAAM,mBAAmB,SAAS,CAAA;AAE/D,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,CACxB,MAA0B,EACN,EAAE;IACtB,MAAM,MAAM,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,UAAU,GAAc;IAC1B,MAAM,EAAE,oCAAoC;IAC5C,MAAM,EAAE,yBAAyB,oBAAoB,EAAE;IACvD,SAAS,EAAE,kBAAkB;IAC7B,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,sCAAsC;IACtD,kBAAkB,EAAE,wBAAwB;IAC5C,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,CAAC;CAC3E,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAA8B;IACnD,KAAK,EAAE;QACH,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB;QAC/D,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,8BAA8B;QACtE,SAAS,EACL,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,+BAA+B;QACtE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,mBAAmB;QACnE,cAAc,EACV,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB;YACrC,0CAA0C;QAC9C,kBAAkB,EACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B;YAC1C,4BAA4B;QAChC,YAAY,EAAE,yCAAyC;QACvD,cAAc,EAAE,mBAAmB,CAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CACvC,IAAI;YACD,uBAAuB;YACvB,uBAAuB;YACvB,eAAe;YACf,mBAAmB;YACnB,uBAAuB;YACvB,gBAAgB;SACnB;KACJ;IACD,GAAG,EAAE;QACD,MAAM,EAAE,wCAAwC;QAChD,MAAM,EAAE,yBAAyB,oBAAoB,EAAE;QACvD,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,mBAAmB;QAC/B,cAAc,EAAE,0CAA0C;QAC1D,kBAAkB,EAAE,4BAA4B;QAChD,YAAY,EAAE,yCAAyC;QACvD,cAAc,EAAE;YACZ,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YACnB,uBAAuB;YACvB,gBAAgB;SACnB;KACJ;IACD,OAAO,EAAE;QACL,MAAM,EAAE,4CAA4C;QACpD,MAAM,EAAE,yBAAyB,oBAAoB,EAAE;QACvD,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,mBAAmB;QAC/B,cAAc,EAAE,8CAA8C;QAC9D,kBAAkB,EAAE,gCAAgC;QACpD,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE;YACZ,mBAAmB;YACnB,eAAe;YACf,uBAAuB;YACvB,gBAAgB;SACnB;KACJ;IACD,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,UAAU,EAAE,iBAAiB;CAC5C,CAAA"}
@@ -29,4 +29,18 @@ export declare function exitIfBackNavigation(platform: Platform): void;
29
29
  * @returns Cleanup function to remove the listener
30
30
  */
31
31
  export declare function setupLGBackButtonHandler(): () => void;
32
+ /**
33
+ * Set up Fire TV back button (keycode 4) handler.
34
+ *
35
+ * On Fire TV, the native shell intercepts the back button at the Activity
36
+ * level and forwards it to JavaScript via the InputHandler Capacitor plugin.
37
+ * During the vwr-loader loading phase, we subscribe directly to InputHandler
38
+ * keyDown events and call Capacitor AppLifecycle.exitApp().
39
+ *
40
+ * Once VWR loads successfully, call the returned cleanup function - VWR
41
+ * will take over back button handling.
42
+ *
43
+ * @returns Cleanup function to remove the listener
44
+ */
45
+ export declare function setupFireTVBackButtonHandler(): () => void;
32
46
  //# sourceMappingURL=exitHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exitHandler.d.ts","sourceRoot":"","sources":["../src/exitHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAkB7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,IAAI,CAyBrD"}
1
+ {"version":3,"file":"exitHandler.d.ts","sourceRoot":"","sources":["../src/exitHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAkB7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,IAAI,CAyBrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,IAAI,CAgEzD"}
@@ -7,6 +7,8 @@
7
7
  import { logger } from "./logger";
8
8
  /** LG webOS back button keycode */
9
9
  const LG_BACK_KEYCODE = 461;
10
+ /** Android back button keycode (used by Fire TV InputHandler plugin) */
11
+ const ANDROID_BACK_KEYCODE = 4;
10
12
  /**
11
13
  * Exit the app if the page was loaded via back/forward navigation.
12
14
  *
@@ -65,6 +67,64 @@ export function setupLGBackButtonHandler() {
65
67
  logger.info("[Shell] LG back button handler removed");
66
68
  };
67
69
  }
70
+ /**
71
+ * Set up Fire TV back button (keycode 4) handler.
72
+ *
73
+ * On Fire TV, the native shell intercepts the back button at the Activity
74
+ * level and forwards it to JavaScript via the InputHandler Capacitor plugin.
75
+ * During the vwr-loader loading phase, we subscribe directly to InputHandler
76
+ * keyDown events and call Capacitor AppLifecycle.exitApp().
77
+ *
78
+ * Once VWR loads successfully, call the returned cleanup function - VWR
79
+ * will take over back button handling.
80
+ *
81
+ * @returns Cleanup function to remove the listener
82
+ */
83
+ export function setupFireTVBackButtonHandler() {
84
+ var _a, _b;
85
+ const inputHandler = (_b = (_a = window.Capacitor) === null || _a === void 0 ? void 0 : _a.Plugins) === null || _b === void 0 ? void 0 : _b.InputHandler;
86
+ if (!(inputHandler === null || inputHandler === void 0 ? void 0 : inputHandler.addListener)) {
87
+ logger.warn("[Shell] Capacitor InputHandler plugin not available");
88
+ return () => {
89
+ logger.info("[Shell] Fire TV back button handler removed");
90
+ };
91
+ }
92
+ let listenerHandle = null;
93
+ let isCleanedUp = false;
94
+ const listenerRegistration = inputHandler
95
+ .addListener("keyDown", (event) => {
96
+ if (event.keyCode === ANDROID_BACK_KEYCODE) {
97
+ logger.info("[Shell] Fire TV back button pressed, exiting app");
98
+ exitFireTVApp();
99
+ }
100
+ })
101
+ .then((handle) => {
102
+ listenerHandle = handle;
103
+ if (isCleanedUp) {
104
+ return Promise.resolve(handle.remove()).catch((error) => {
105
+ logger.error({ error }, "[Shell] Failed to remove Fire TV back button handler");
106
+ });
107
+ }
108
+ return undefined;
109
+ })
110
+ .catch((error) => {
111
+ logger.error({ error }, "[Shell] Failed to register Fire TV back button handler");
112
+ });
113
+ logger.info("[Shell] Fire TV back button handler registered");
114
+ return () => {
115
+ isCleanedUp = true;
116
+ if (listenerHandle) {
117
+ void Promise.resolve(listenerHandle.remove()).catch((error) => {
118
+ logger.error({ error }, "[Shell] Failed to remove Fire TV back button handler");
119
+ });
120
+ listenerHandle = null;
121
+ }
122
+ else {
123
+ void listenerRegistration;
124
+ }
125
+ logger.info("[Shell] Fire TV back button handler removed");
126
+ };
127
+ }
68
128
  /**
69
129
  * Exit the app using platform-specific methods.
70
130
  *
@@ -78,7 +138,10 @@ function exitApp(platform) {
78
138
  case "LG_TV":
79
139
  exitLGAppViaBackNavigation();
80
140
  break;
81
- // Fire TV and mobile apps handle exit at the native layer
141
+ case "FIRE_TV":
142
+ exitFireTVApp();
143
+ break;
144
+ // Mobile apps handle exit at the native layer
82
145
  // Web doesn't have a meaningful "exit" concept
83
146
  default:
84
147
  logger.info({ platform }, "[Shell] No platform-specific exit");
@@ -110,4 +173,23 @@ function exitLGAppViaBackNavigation() {
110
173
  logger.error({ error }, "[Shell] Failed to exit LG app");
111
174
  }
112
175
  }
176
+ /**
177
+ * Exit Fire TV app via Capacitor AppLifecycle plugin.
178
+ */
179
+ function exitFireTVApp() {
180
+ var _a, _b, _c;
181
+ try {
182
+ if ((_c = (_b = (_a = window.Capacitor) === null || _a === void 0 ? void 0 : _a.Plugins) === null || _b === void 0 ? void 0 : _b.AppLifecycle) === null || _c === void 0 ? void 0 : _c.exitApp) {
183
+ void window.Capacitor.Plugins.AppLifecycle.exitApp().catch((error) => {
184
+ logger.error({ error }, "[Shell] Failed to exit Fire TV app");
185
+ });
186
+ }
187
+ else {
188
+ logger.warn("[Shell] Capacitor AppLifecycle plugin not available");
189
+ }
190
+ }
191
+ catch (error) {
192
+ logger.error({ error }, "[Shell] Failed to exit Fire TV app");
193
+ }
194
+ }
113
195
  //# sourceMappingURL=exitHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exitHandler.js","sourceRoot":"","sources":["../src/exitHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exitHandler.js","sourceRoot":"","sources":["../src/exitHandler.ts"],"names":[],"mappings":"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"}
package/dist/loadVwr.js CHANGED
@@ -199,9 +199,29 @@ async function initializeVwr(rum) {
199
199
  vwrUrl: vwrConfig.vwrUrl,
200
200
  });
201
201
  }
202
+ // Build config source display string for VWR mode indicator
203
+ let configSourceDisplay;
204
+ switch (configSource) {
205
+ case "device":
206
+ configSourceDisplay = `device (${deviceId})`;
207
+ break;
208
+ case "environment":
209
+ configSourceDisplay = `environment (${ENVIRONMENT})`;
210
+ break;
211
+ case "shellVersion":
212
+ configSourceDisplay = `shell-version (${ENVIRONMENT}/${PLATFORM}/${shellVersion})`;
213
+ break;
214
+ case "local":
215
+ configSourceDisplay = "local";
216
+ break;
217
+ default:
218
+ configSourceDisplay = "defaults";
219
+ break;
220
+ }
202
221
  try {
203
222
  await vwr.init({
204
223
  hubUrl: vwrConfig.hubUrl,
224
+ launchUrl: vwrConfig.launchUrl,
205
225
  platform: PLATFORM,
206
226
  stage: ENVIRONMENT,
207
227
  appVersion: shellVersion,
@@ -209,6 +229,7 @@ async function initializeVwr(rum) {
209
229
  platformAuthApiUrl: vwrConfig.platformAuthApiUrl,
210
230
  trustedOrigins: new Set(vwrConfig.trustedDomains),
211
231
  nativeShellVersion: shellVersion,
232
+ configSource: configSourceDisplay,
212
233
  }, logger, rum);
213
234
  }
214
235
  catch (vwrError) {
@@ -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":"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"}