@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.
- package/README.md +45 -0
- package/dist/amplitudeFlagFetcher.d.ts +4 -2
- package/dist/amplitudeFlagFetcher.d.ts.map +1 -1
- package/dist/amplitudeFlagFetcher.js +26 -19
- package/dist/amplitudeFlagFetcher.js.map +1 -1
- package/dist/cli.js +86 -42
- package/dist/cli.js.map +1 -1
- package/dist/envDefaults.d.ts.map +1 -1
- package/dist/envDefaults.js +10 -0
- package/dist/envDefaults.js.map +1 -1
- package/dist/getDeviceId.d.ts.map +1 -1
- package/dist/getDeviceId.js +5 -8
- package/dist/getDeviceId.js.map +1 -1
- package/dist/getEnvironment.d.ts +25 -0
- package/dist/getEnvironment.d.ts.map +1 -0
- package/dist/getEnvironment.js +105 -0
- package/dist/getEnvironment.js.map +1 -0
- package/dist/loadVwr.d.ts +6 -1
- package/dist/loadVwr.d.ts.map +1 -1
- package/dist/loadVwr.js +14 -4
- package/dist/loadVwr.js.map +1 -1
- package/dist/main.js.map +1 -1
- package/dist/vwrConfig.d.ts.map +1 -1
- package/dist/vwrConfig.js +139 -128
- package/dist/vwrConfig.js.map +1 -1
- package/package.json +2 -2
- package/src/amplitudeFlagFetcher.test.ts +36 -64
- package/src/amplitudeFlagFetcher.ts +31 -22
- package/src/envDefaults.ts +10 -0
- package/src/getDeviceId.ts +9 -9
- package/src/getEnvironment.test.ts +457 -0
- package/src/getEnvironment.ts +140 -0
- package/src/loadVwr.ts +22 -4
- package/src/vwrConfig.test.ts +2 -2
- package/src/vwrConfig.ts +191 -209
package/README.md
CHANGED
|
@@ -72,6 +72,51 @@ The package includes a `vwr-loader.html` template that can be used as the entry
|
|
|
72
72
|
- `__HUB_URL__` - Hub application URL
|
|
73
73
|
- `__VWR_URL__` - Default VWR bundle URL
|
|
74
74
|
|
|
75
|
+
## CLI: build-loader
|
|
76
|
+
|
|
77
|
+
The `build-loader` CLI builds platform-specific VWR loader bundles.
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx build-loader --platform <platform> --output <path> [--env <env>] [options]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Required Options
|
|
84
|
+
|
|
85
|
+
| Option | Description |
|
|
86
|
+
|--------|-------------|
|
|
87
|
+
| `--platform` | Platform: `FIRE_TV`, `SAMSUNG_TV`, `LG_TV`, `MOBILE`, `WEB` |
|
|
88
|
+
| `--output` | Output directory path |
|
|
89
|
+
|
|
90
|
+
### Optional Options
|
|
91
|
+
|
|
92
|
+
| Option | Description |
|
|
93
|
+
|--------|-------------|
|
|
94
|
+
| `--env` | Environment: `local`, `dev`, `staging`, `prod` |
|
|
95
|
+
| `--hubUrl` | Override Hub URL |
|
|
96
|
+
| `--vwrUrl` | Override VWR URL |
|
|
97
|
+
| `--configUrl` | Override VWR Config URL |
|
|
98
|
+
| `--configFile` | Override VWR Config filename |
|
|
99
|
+
| `--amplitudeKey` | Override Amplitude deployment key |
|
|
100
|
+
| `--launchUrl` | Override launch URL |
|
|
101
|
+
|
|
102
|
+
### Environment Handling
|
|
103
|
+
|
|
104
|
+
- **Fire TV**: `--env` is **optional**. If omitted, environment is read from native `BuildConfig.ENVIRONMENT` at runtime. This ensures prod APKs cannot accidentally run dev VWR.
|
|
105
|
+
- **Other platforms**: `--env` is **required** since they don't support native environment reading.
|
|
106
|
+
|
|
107
|
+
### Examples
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Fire TV (reads env from native at runtime)
|
|
111
|
+
npx build-loader --platform FIRE_TV --output ./www
|
|
112
|
+
|
|
113
|
+
# Fire TV with env override (for testing)
|
|
114
|
+
npx build-loader --platform FIRE_TV --env dev --output ./www
|
|
115
|
+
|
|
116
|
+
# Samsung TV (env required)
|
|
117
|
+
npx build-loader --platform SAMSUNG_TV --env prod --output ./www
|
|
118
|
+
```
|
|
119
|
+
|
|
75
120
|
## Development Commands
|
|
76
121
|
|
|
77
122
|
```bash
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Logger } from "./logger";
|
|
1
2
|
export interface AmplitudeConfig {
|
|
2
3
|
apiKey: string;
|
|
3
4
|
apiUrl?: string;
|
|
@@ -16,8 +17,9 @@ export interface FlagResult {
|
|
|
16
17
|
* @param deviceId - Unique device identifier
|
|
17
18
|
* @param platform - Platform name (samsung, lg, firetv, ios, android)
|
|
18
19
|
* @param config - Amplitude configuration
|
|
19
|
-
* @param shellVersion -
|
|
20
|
+
* @param shellVersion - Shell version for flag targeting
|
|
21
|
+
* @param logger - Optional logger, defaults to console
|
|
20
22
|
* @returns Flag values with safe defaults on error
|
|
21
23
|
*/
|
|
22
|
-
export declare function fetchAmplitudeFlags(deviceId: string, platform: string, config: AmplitudeConfig, shellVersion?:
|
|
24
|
+
export declare function fetchAmplitudeFlags(deviceId: string, platform: string, config: AmplitudeConfig, shellVersion: string, logger?: Logger): Promise<FlagResult>;
|
|
23
25
|
//# sourceMappingURL=amplitudeFlagFetcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amplitudeFlagFetcher.d.ts","sourceRoot":"","sources":["../src/amplitudeFlagFetcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"amplitudeFlagFetcher.d.ts","sourceRoot":"","sources":["../src/amplitudeFlagFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAErD,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,MAAsB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAgErB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultLogger } from "./logger";
|
|
2
2
|
/**
|
|
3
3
|
* Fetch feature flags from Amplitude Experiment REST API.
|
|
4
4
|
*
|
|
@@ -9,30 +9,30 @@ import { getShellVersion } from "./getShellVersion";
|
|
|
9
9
|
* @param deviceId - Unique device identifier
|
|
10
10
|
* @param platform - Platform name (samsung, lg, firetv, ios, android)
|
|
11
11
|
* @param config - Amplitude configuration
|
|
12
|
-
* @param shellVersion -
|
|
12
|
+
* @param shellVersion - Shell version for flag targeting
|
|
13
|
+
* @param logger - Optional logger, defaults to console
|
|
13
14
|
* @returns Flag values with safe defaults on error
|
|
14
15
|
*/
|
|
15
|
-
export async function fetchAmplitudeFlags(deviceId, platform, config, shellVersion) {
|
|
16
|
+
export async function fetchAmplitudeFlags(deviceId, platform, config, shellVersion, logger = defaultLogger) {
|
|
16
17
|
var _a, _b, _c;
|
|
17
18
|
const { apiKey, apiUrl = "https://api.lab.amplitude.com/v1/vardata", timeout = 2000, } = config;
|
|
19
|
+
// Build context with user_properties
|
|
20
|
+
const context = {
|
|
21
|
+
user_properties: {
|
|
22
|
+
platformEnum: platform,
|
|
23
|
+
nativeShellAppVersion: shellVersion,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
// Build query parameters
|
|
27
|
+
const params = new URLSearchParams({
|
|
28
|
+
user_id: deviceId,
|
|
29
|
+
flag_keys: "vwr-enabled",
|
|
30
|
+
context: JSON.stringify(context),
|
|
31
|
+
});
|
|
32
|
+
// Start timeout immediately before the fetch call for accurate timing
|
|
18
33
|
const controller = new AbortController();
|
|
19
34
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
20
35
|
try {
|
|
21
|
-
// Get shell version if not provided
|
|
22
|
-
const version = shellVersion !== null && shellVersion !== void 0 ? shellVersion : (await getShellVersion(platform));
|
|
23
|
-
// Build context with user_properties
|
|
24
|
-
const context = {
|
|
25
|
-
user_properties: {
|
|
26
|
-
platformEnum: platform,
|
|
27
|
-
nativeShellAppVersion: version,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
// Build query parameters
|
|
31
|
-
const params = new URLSearchParams({
|
|
32
|
-
user_id: deviceId,
|
|
33
|
-
flag_keys: "vwr-enabled",
|
|
34
|
-
context: JSON.stringify(context),
|
|
35
|
-
});
|
|
36
36
|
const response = await fetch(`${apiUrl}?${params}`, {
|
|
37
37
|
method: "GET",
|
|
38
38
|
headers: {
|
|
@@ -50,7 +50,14 @@ export async function fetchAmplitudeFlags(deviceId, platform, config, shellVersi
|
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
catch (error) {
|
|
53
|
-
|
|
53
|
+
clearTimeout(timeoutId);
|
|
54
|
+
// Provide clear warning message for abort vs other errors
|
|
55
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
56
|
+
logger.warn(`[Shell] Amplitude flag fetch aborted because it took longer than ${timeout}ms`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
logger.warn("[Shell] Amplitude flag fetch failed:", { error });
|
|
60
|
+
}
|
|
54
61
|
// Return safe defaults - runs legacy path
|
|
55
62
|
return {
|
|
56
63
|
"vwr-enabled": false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amplitudeFlagFetcher.js","sourceRoot":"","sources":["../src/amplitudeFlagFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"amplitudeFlagFetcher.js","sourceRoot":"","sources":["../src/amplitudeFlagFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAA;AAYrD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,QAAgB,EAChB,QAAgB,EAChB,MAAuB,EACvB,YAAoB,EACpB,SAAiB,aAAa;;IAE9B,MAAM,EACF,MAAM,EACN,MAAM,GAAG,0CAA0C,EACnD,OAAO,GAAG,IAAI,GACjB,GAAG,MAAM,CAAA;IAEV,qCAAqC;IACrC,MAAM,OAAO,GAAG;QACZ,eAAe,EAAE;YACb,YAAY,EAAE,QAAQ;YACtB,qBAAqB,EAAE,YAAY;SACtC;KACJ,CAAA;IAED,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KACnC,CAAC,CAAA;IAEF,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;IAE/D,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,WAAW,MAAM,EAAE;aACrC;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC5B,CAAC,CAAA;QAEF,YAAY,CAAC,SAAS,CAAC,CAAA;QAEvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,OAAO;YACH,aAAa,EACT,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,0CAAE,OAAO,0CAAG,aAAa,CAAC,mCAAI,KAAK;SAC7D,CAAA;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,YAAY,CAAC,SAAS,CAAC,CAAA;QAEvB,0DAA0D;QAC1D,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CACP,oEAAoE,OAAO,IAAI,CAClF,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAClE,CAAC;QAED,0CAA0C;QAC1C,OAAO;YACH,aAAa,EAAE,KAAK;SACvB,CAAA;IACL,CAAC;AACL,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -48,8 +48,18 @@ const ENV_DEFAULTS = {
|
|
|
48
48
|
amplitudeKey: ""
|
|
49
49
|
},
|
|
50
50
|
prod: prodConfig,
|
|
51
|
-
production: prodConfig
|
|
51
|
+
production: prodConfig,
|
|
52
52
|
// Alias for prod
|
|
53
|
+
qa: {
|
|
54
|
+
// QA uses staging infrastructure
|
|
55
|
+
hubUrl: "https://game-clients-staging.volley.tv/hub",
|
|
56
|
+
vwrUrl: `https://vwr.volley.tv/staging/${VWR_URL_PATH_DEFAULT}`,
|
|
57
|
+
configUrl: CONFIG_URL_DEFAULT,
|
|
58
|
+
configFile: CONFIG_FILE_DEFAULT,
|
|
59
|
+
platformApiUrl: "https://platform-staging.volley-services.net",
|
|
60
|
+
platformAuthApiUrl: "https://auth-staging.volley.tv",
|
|
61
|
+
amplitudeKey: ""
|
|
62
|
+
}
|
|
53
63
|
};
|
|
54
64
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
55
65
|
const cliPackageJson = JSON.parse(
|
|
@@ -64,26 +74,56 @@ const VALID_PLATFORMS = [
|
|
|
64
74
|
"WEB"
|
|
65
75
|
];
|
|
66
76
|
const program = new Command();
|
|
77
|
+
const NATIVE_ENV_PLATFORMS = ["FIRE_TV"];
|
|
67
78
|
program.name("build-loader").version(cliPackageJson.version).description("Build vwr-loader with environment configuration").requiredOption(
|
|
68
79
|
"--platform <platform>",
|
|
69
80
|
"Platform: FIRE_TV, ANDROID_MOBILE, IOS_MOBILE, SAMSUNG_TV, LG_TV, WEB"
|
|
70
|
-
).
|
|
81
|
+
).option(
|
|
82
|
+
"--env <env>",
|
|
83
|
+
"Environment: local, dev, staging, prod (required for non-Fire TV platforms)"
|
|
84
|
+
).requiredOption("--output <path>", "Output directory").option("--hubUrl <url>", "Override Hub URL").option("--amplitudeKey <key>", "Override Amplitude deployment key").option("--vwrUrl <url>", "Override VWR URL").option("--configUrl <url>", "Override VWR Config URL").option("--configFile <filename>", "Override VWR Config Filename").option("--launchUrl <url>", "Override launch url").parse();
|
|
71
85
|
const opts = program.opts();
|
|
72
|
-
const normalizedPlatform = opts.platform.toUpperCase();
|
|
86
|
+
const normalizedPlatform = normalizePlatform(opts.platform.toUpperCase());
|
|
87
|
+
const supportsNativeEnv = NATIVE_ENV_PLATFORMS.includes(normalizedPlatform);
|
|
88
|
+
function normalizePlatform(platform) {
|
|
89
|
+
const aliases = {
|
|
90
|
+
FIRETV: "FIRE_TV",
|
|
91
|
+
SAMSUNGTV: "SAMSUNG_TV",
|
|
92
|
+
LGTV: "LG_TV",
|
|
93
|
+
ANDROIDMOBILE: "ANDROID_MOBILE",
|
|
94
|
+
IOSMOBILE: "IOS_MOBILE"
|
|
95
|
+
};
|
|
96
|
+
return aliases[platform] || platform;
|
|
97
|
+
}
|
|
98
|
+
if (!opts.env && !supportsNativeEnv) {
|
|
99
|
+
console.error(
|
|
100
|
+
`❌ --env is required for platform "${opts.platform}"
|
|
101
|
+
Only Fire TV can read environment from native shell at runtime.
|
|
102
|
+
Valid environments: local, dev, staging, prod`
|
|
103
|
+
);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
if (!opts.env && supportsNativeEnv) {
|
|
107
|
+
console.log(
|
|
108
|
+
`ℹ️ --env not provided. ${opts.platform} will read environment from native shell at runtime.`
|
|
109
|
+
);
|
|
110
|
+
}
|
|
73
111
|
if (!VALID_PLATFORMS.includes(normalizedPlatform)) {
|
|
74
112
|
console.error(`❌ Unknown platform: ${opts.platform}`);
|
|
75
113
|
console.error(` Valid: ${VALID_PLATFORMS.join(", ")}`);
|
|
76
114
|
process.exit(1);
|
|
77
115
|
}
|
|
78
116
|
opts.platform = normalizedPlatform;
|
|
79
|
-
const envFile = path.join(process.cwd(), `.env.${opts.env}`);
|
|
80
117
|
let shellEnv = {};
|
|
81
|
-
if (
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
118
|
+
if (opts.env) {
|
|
119
|
+
const envFile = path.join(process.cwd(), `.env.${opts.env}`);
|
|
120
|
+
if (fs.existsSync(envFile)) {
|
|
121
|
+
console.log(`📄 Reading config from ${envFile}`);
|
|
122
|
+
const result = config$1({ path: envFile });
|
|
123
|
+
shellEnv = result.parsed || {};
|
|
124
|
+
} else {
|
|
125
|
+
console.log(`ℹ️ No .env.${opts.env} found, using defaults/CLI flags`);
|
|
126
|
+
}
|
|
87
127
|
}
|
|
88
128
|
let shellVersion = "unknown";
|
|
89
129
|
const packageJsonPath = path.join(process.cwd(), "package.json");
|
|
@@ -97,23 +137,29 @@ if (fs.existsSync(packageJsonPath)) {
|
|
|
97
137
|
console.warn(`⚠️ Could not read version from package.json`);
|
|
98
138
|
}
|
|
99
139
|
}
|
|
100
|
-
const envDefaults = ENV_DEFAULTS[opts.env];
|
|
101
|
-
if (!envDefaults) {
|
|
140
|
+
const envDefaults = opts.env ? ENV_DEFAULTS[opts.env] : void 0;
|
|
141
|
+
if (opts.env && !envDefaults) {
|
|
102
142
|
console.error(`❌ Unknown environment: ${opts.env}`);
|
|
103
143
|
console.error(` Valid: local, dev, staging, prod`);
|
|
104
144
|
process.exit(1);
|
|
105
145
|
}
|
|
146
|
+
const effectiveDefaults = envDefaults ?? ENV_DEFAULTS["dev"];
|
|
106
147
|
const config = {
|
|
107
|
-
VITE_PLATFORM:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
148
|
+
VITE_PLATFORM: normalizedPlatform,
|
|
149
|
+
VITE_ENVIRONMENT: opts.env,
|
|
150
|
+
// undefined for Fire TV without --env (reads from native)
|
|
151
|
+
VITE_HUB_URL: opts.hubUrl || shellEnv.VITE_HUB_URL || effectiveDefaults.hubUrl,
|
|
152
|
+
VITE_AMPLITUDE_DEPLOYMENT_KEY: opts.amplitudeKey || shellEnv.VITE_AMPLITUDE_DEPLOYMENT_KEY || effectiveDefaults.amplitudeKey || "",
|
|
153
|
+
VITE_VWR_URL: opts.vwrUrl || shellEnv.VITE_VWR_URL || effectiveDefaults.vwrUrl,
|
|
154
|
+
VITE_CONFIG_URL: opts.configUrl || shellEnv.VITE_CONFIG_URL || effectiveDefaults.configUrl,
|
|
155
|
+
VITE_CONFIG_FILE: opts.configFile || shellEnv.VITE_CONFIG_FILE || effectiveDefaults.configFile,
|
|
156
|
+
VITE_LAUNCH_URL: opts.launchUrl || shellEnv.VITE_LAUNCH_URL || opts.hubUrl || shellEnv.VITE_HUB_URL || effectiveDefaults.hubUrl
|
|
114
157
|
};
|
|
115
158
|
console.log("🔧 Build configuration:");
|
|
116
159
|
console.log(` Platform: ${config.VITE_PLATFORM}`);
|
|
160
|
+
console.log(
|
|
161
|
+
` Environment: ${config.VITE_ENVIRONMENT ?? "(from native at runtime)"}`
|
|
162
|
+
);
|
|
117
163
|
console.log(` Hub URL: ${config.VITE_HUB_URL}`);
|
|
118
164
|
console.log(` VWR URL: ${config.VITE_VWR_URL}`);
|
|
119
165
|
if (config.VITE_AMPLITUDE_DEPLOYMENT_KEY) {
|
|
@@ -127,6 +173,23 @@ if (config.VITE_AMPLITUDE_DEPLOYMENT_KEY) {
|
|
|
127
173
|
const loaderSrcDir = path.join(__dirname, "../src");
|
|
128
174
|
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "vwr-loader-"));
|
|
129
175
|
const loaderDistDir = tmpDir;
|
|
176
|
+
const defineConfig = {
|
|
177
|
+
"import.meta.env.VITE_PLATFORM": JSON.stringify(config.VITE_PLATFORM),
|
|
178
|
+
"import.meta.env.VITE_SHELL_VERSION": JSON.stringify(shellVersion),
|
|
179
|
+
"import.meta.env.VITE_HUB_URL": JSON.stringify(config.VITE_HUB_URL),
|
|
180
|
+
"import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY": JSON.stringify(
|
|
181
|
+
config.VITE_AMPLITUDE_DEPLOYMENT_KEY
|
|
182
|
+
),
|
|
183
|
+
"import.meta.env.VITE_VWR_URL": JSON.stringify(config.VITE_VWR_URL),
|
|
184
|
+
"import.meta.env.VITE_CONFIG_URL": JSON.stringify(config.VITE_CONFIG_URL),
|
|
185
|
+
"import.meta.env.VITE_CONFIG_FILE": JSON.stringify(config.VITE_CONFIG_FILE),
|
|
186
|
+
"import.meta.env.VITE_LAUNCH_URL": JSON.stringify(config.VITE_LAUNCH_URL)
|
|
187
|
+
};
|
|
188
|
+
if (config.VITE_ENVIRONMENT) {
|
|
189
|
+
defineConfig["import.meta.env.VITE_ENVIRONMENT"] = JSON.stringify(
|
|
190
|
+
config.VITE_ENVIRONMENT
|
|
191
|
+
);
|
|
192
|
+
}
|
|
130
193
|
try {
|
|
131
194
|
console.log(`⏳ Building loader...`);
|
|
132
195
|
await build({
|
|
@@ -134,13 +197,14 @@ try {
|
|
|
134
197
|
root: loaderSrcDir,
|
|
135
198
|
// Use relative paths so loader works when served from any subdirectory
|
|
136
199
|
base: "./",
|
|
137
|
-
mode: opts.env,
|
|
200
|
+
mode: opts.env ?? "production",
|
|
201
|
+
// Use production mode for minification when env not specified
|
|
138
202
|
logLevel: "warn",
|
|
139
203
|
build: {
|
|
140
204
|
outDir: loaderDistDir,
|
|
141
205
|
emptyOutDir: true,
|
|
142
206
|
target: "es2017",
|
|
143
|
-
minify: opts.env === "prod" ? "esbuild" : false,
|
|
207
|
+
minify: opts.env === "prod" || !opts.env ? "esbuild" : false,
|
|
144
208
|
sourcemap: true,
|
|
145
209
|
rollupOptions: {
|
|
146
210
|
input: {
|
|
@@ -152,27 +216,7 @@ try {
|
|
|
152
216
|
}
|
|
153
217
|
}
|
|
154
218
|
},
|
|
155
|
-
define:
|
|
156
|
-
"import.meta.env.VITE_ENVIRONMENT": JSON.stringify(opts.env),
|
|
157
|
-
"import.meta.env.VITE_PLATFORM": JSON.stringify(
|
|
158
|
-
config.VITE_PLATFORM
|
|
159
|
-
),
|
|
160
|
-
"import.meta.env.VITE_SHELL_VERSION": JSON.stringify(shellVersion),
|
|
161
|
-
"import.meta.env.VITE_HUB_URL": JSON.stringify(config.VITE_HUB_URL),
|
|
162
|
-
"import.meta.env.VITE_AMPLITUDE_DEPLOYMENT_KEY": JSON.stringify(
|
|
163
|
-
config.VITE_AMPLITUDE_DEPLOYMENT_KEY
|
|
164
|
-
),
|
|
165
|
-
"import.meta.env.VITE_VWR_URL": JSON.stringify(config.VITE_VWR_URL),
|
|
166
|
-
"import.meta.env.VITE_CONFIG_URL": JSON.stringify(
|
|
167
|
-
config.VITE_CONFIG_URL
|
|
168
|
-
),
|
|
169
|
-
"import.meta.env.VITE_CONFIG_FILE": JSON.stringify(
|
|
170
|
-
config.VITE_CONFIG_FILE
|
|
171
|
-
),
|
|
172
|
-
"import.meta.env.VITE_LAUNCH_URL": JSON.stringify(
|
|
173
|
-
config.VITE_LAUNCH_URL
|
|
174
|
-
)
|
|
175
|
-
}
|
|
219
|
+
define: defineConfig
|
|
176
220
|
});
|
|
177
221
|
const outputPath = path.resolve(opts.output);
|
|
178
222
|
await fs.ensureDir(outputPath);
|
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\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}\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: import.meta.env.VITE_TRUSTED_ORIGINS?.split(\",\").filter(\n Boolean\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 },\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 },\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\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 .requiredOption(\"--env <env>\", \"Environment: local, dev, staging, prod\")\n .requiredOption(\"--output <path>\", \"Output directory\")\n .option(\"--hubUrl <url>\", \"Override Hub URL\")\n .option(\"--amplitudeKey <key>\", \"Override Amplitude deployment key\")\n .option(\"--vwrUrl <url>\", \"Override VWR URL\")\n .option(\"--configUrl <url>\", \"Override VWR Config URL\")\n .option(\"--configFile <filename>\", \"Override VWR Config Filename\")\n .option(\"--launchUrl <url>\", \"Override launch url\")\n .parse()\n\nconst opts = program.opts()\n\n// Validate platform\nconst normalizedPlatform = opts.platform.toUpperCase()\nif (!VALID_PLATFORMS.includes(normalizedPlatform)) {\n console.error(`❌ Unknown platform: ${opts.platform}`)\n console.error(` Valid: ${VALID_PLATFORMS.join(\", \")}`)\n process.exit(1)\n}\nopts.platform = normalizedPlatform\n\n// Try to read from shell's .env file (run from shell directory)\nconst envFile = path.join(process.cwd(), `.env.${opts.env}`)\nlet shellEnv: Record<string, string> = {}\n\nif (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// 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\nconst envDefaults = ENV_DEFAULTS[opts.env]\nif (!envDefaults) {\n console.error(`❌ Unknown environment: ${opts.env}`)\n console.error(` Valid: local, dev, staging, prod`)\n process.exit(1)\n}\n\n// Config precedence: CLI > shell .env > defaults\nconst config = {\n VITE_PLATFORM: opts.platform,\n VITE_HUB_URL: opts.hubUrl || shellEnv.VITE_HUB_URL || envDefaults.hubUrl,\n VITE_AMPLITUDE_DEPLOYMENT_KEY:\n opts.amplitudeKey ||\n shellEnv.VITE_AMPLITUDE_DEPLOYMENT_KEY ||\n envDefaults.amplitudeKey ||\n \"\",\n VITE_VWR_URL:\n opts.vwrUrl ||\n shellEnv.VITE_VWR_URL ||\n envDefaults.vwrUrl ||\n \"https://vwr.volley.tv/v1/latest/vwr.js\",\n VITE_CONFIG_URL:\n opts.configUrl || shellEnv.VITE_CONFIG_URL || envDefaults.configUrl,\n VITE_CONFIG_FILE:\n opts.configFile || shellEnv.VITE_CONFIG_FILE || envDefaults.configFile,\n VITE_LAUNCH_URL:\n opts.launchUrl ||\n shellEnv.VITE_LAUNCH_URL ||\n opts.hubUrl ||\n shellEnv.VITE_HUB_URL ||\n envDefaults.hubUrl,\n}\n\nconsole.log(\"🔧 Build configuration:\")\nconsole.log(` Platform: ${config.VITE_PLATFORM}`)\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}\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\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,\n logLevel: \"warn\",\n build: {\n outDir: loaderDistDir,\n emptyOutDir: true,\n target: \"es2017\",\n minify: opts.env === \"prod\" ? \"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: {\n \"import.meta.env.VITE_ENVIRONMENT\": JSON.stringify(opts.env),\n \"import.meta.env.VITE_PLATFORM\": JSON.stringify(\n config.VITE_PLATFORM\n ),\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(\n config.VITE_CONFIG_URL\n ),\n \"import.meta.env.VITE_CONFIG_FILE\": JSON.stringify(\n config.VITE_CONFIG_FILE\n ),\n \"import.meta.env.VITE_LAUNCH_URL\": JSON.stringify(\n config.VITE_LAUNCH_URL\n ),\n },\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":";;;;;;;;AAWA,MAAM,qBAAqB;AAC3B,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAE7B,MAAM,aAAwB;AAAA,EAC1B,QAAQ;AAAA,EACR,QAAQ,yBAAyB,oBAAoB;AAAA,EACrD,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,cAAc;AAClB;AAEO,MAAM,eAA0C;AAAA,EACnD,OAAO;AAAA,IACH,QAAwC;AAAA,IACxC,QAAwC;AAAA,IACxC,WACuC;AAAA,IACvC,YAAgD;AAAA,IAChD,gBAEI;AAAA,IACJ,oBAEI;AAAA,IACJ,cAAc;AAAA,IACd,gBAAgB;AAAA,EAEhB;AAAA,EAEJ,KAAK;AAAA,IACD,QAAQ;AAAA,IACR,QAAQ,6BAA6B,oBAAoB;AAAA,IACzD,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,cAAc;AAAA,EAAA;AAAA,EAElB,SAAS;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ,iCAAiC,oBAAoB;AAAA,IAC7D,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,cAAc;AAAA,EAAA;AAAA,EAElB,MAAM;AAAA,EACN,YAAY;AAAA;AAChB;ACrDA,MAAM,YAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;AAG7D,MAAM,iBAAiB,KAAK;AAAA,EACxB,GAAG,aAAa,KAAK,KAAK,WAAW,iBAAiB,GAAG,OAAO;AACpE;AAEA,MAAM,kBAAkB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,MAAM,UAAU,IAAI,QAAA;AAEpB,QACK,KAAK,cAAc,EACnB,QAAQ,eAAe,OAAO,EAC9B,YAAY,iDAAiD,EAC7D;AAAA,EACG;AAAA,EACA;AACJ,EACC,eAAe,eAAe,wCAAwC,EACtE,eAAe,mBAAmB,kBAAkB,EACpD,OAAO,kBAAkB,kBAAkB,EAC3C,OAAO,wBAAwB,mCAAmC,EAClE,OAAO,kBAAkB,kBAAkB,EAC3C,OAAO,qBAAqB,yBAAyB,EACrD,OAAO,2BAA2B,8BAA8B,EAChE,OAAO,qBAAqB,qBAAqB,EACjD,MAAA;AAEL,MAAM,OAAO,QAAQ,KAAA;AAGrB,MAAM,qBAAqB,KAAK,SAAS,YAAA;AACzC,IAAI,CAAC,gBAAgB,SAAS,kBAAkB,GAAG;AAC/C,UAAQ,MAAM,uBAAuB,KAAK,QAAQ,EAAE;AACpD,UAAQ,MAAM,aAAa,gBAAgB,KAAK,IAAI,CAAC,EAAE;AACvD,UAAQ,KAAK,CAAC;AAClB;AACA,KAAK,WAAW;AAGhB,MAAM,UAAU,KAAK,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAAG,EAAE;AAC3D,IAAI,WAAmC,CAAA;AAEvC,IAAI,GAAG,WAAW,OAAO,GAAG;AACxB,UAAQ,IAAI,0BAA0B,OAAO,EAAE;AAC/C,QAAM,SAASA,SAAW,EAAE,MAAM,SAAS;AAC3C,aAAW,OAAO,UAAU,CAAA;AAChC,OAAO;AACH,UAAQ,IAAI,eAAe,KAAK,GAAG,kCAAkC;AACzE;AAGA,IAAI,eAAe;AACnB,MAAM,kBAAkB,KAAK,KAAK,QAAQ,IAAA,GAAO,cAAc;AAC/D,IAAI,GAAG,WAAW,eAAe,GAAG;AAChC,MAAI;AACA,UAAM,cAAc,KAAK;AAAA,MACrB,GAAG,aAAa,iBAAiB,OAAO;AAAA,IAAA;AAE5C,mBAAe,YAAY,WAAW;AAAA,EAC1C,QAAQ;AACJ,YAAQ,KAAK,8CAA8C;AAAA,EAC/D;AACJ;AAGA,MAAM,cAAc,aAAa,KAAK,GAAG;AACzC,IAAI,CAAC,aAAa;AACd,UAAQ,MAAM,0BAA0B,KAAK,GAAG,EAAE;AAClD,UAAQ,MAAM,qCAAqC;AACnD,UAAQ,KAAK,CAAC;AAClB;AAGA,MAAM,SAAS;AAAA,EACX,eAAe,KAAK;AAAA,EACpB,cAAc,KAAK,UAAU,SAAS,gBAAgB,YAAY;AAAA,EAClE,+BACI,KAAK,gBACL,SAAS,iCACT,YAAY,gBACZ;AAAA,EACJ,cACI,KAAK,UACL,SAAS,gBACT,YAAY,UACZ;AAAA,EACJ,iBACI,KAAK,aAAa,SAAS,mBAAmB,YAAY;AAAA,EAC9D,kBACI,KAAK,cAAc,SAAS,oBAAoB,YAAY;AAAA,EAChE,iBACI,KAAK,aACL,SAAS,mBACT,KAAK,UACL,SAAS,gBACT,YAAY;AACpB;AAEA,QAAQ,IAAI,yBAAyB;AACrC,QAAQ,IAAI,gBAAgB,OAAO,aAAa,EAAE;AAClD,QAAQ,IAAI,eAAe,OAAO,YAAY,EAAE;AAChD,QAAQ,IAAI,eAAe,OAAO,YAAY,EAAE;AAChD,IAAI,OAAO,+BAA+B;AACtC,UAAQ,IAAI,mBAAmB;AACnC,OAAO;AACH,UAAQ,KAAK,yBAAyB;AACtC,UAAQ;AAAA,IACJ;AAAA,EAAA;AAER;AAGA,MAAM,eAAe,KAAK,KAAK,WAAW,QAAQ;AAClD,MAAM,SAAS,MAAM,GAAG,QAAQ,KAAK,KAAK,GAAG,UAAU,aAAa,CAAC;AACrE,MAAM,gBAAgB;AAEtB,IAAI;AACA,UAAQ,IAAI,sBAAsB;AAClC,QAAM,MAAM;AAAA,IACR,YAAY;AAAA,IACZ,MAAM;AAAA;AAAA,IAEN,MAAM;AAAA,IACN,MAAM,KAAK;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,MACH,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ,KAAK,QAAQ,SAAS,YAAY;AAAA,MAC1C,WAAW;AAAA,MACX,eAAe;AAAA,QACX,OAAO;AAAA,UACH,MAAM,KAAK,KAAK,cAAc,YAAY;AAAA,QAAA;AAAA,QAE9C,QAAQ;AAAA,UACJ,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,QAAA;AAAA,MACpB;AAAA,IACJ;AAAA,IAEJ,QAAQ;AAAA,MACJ,oCAAoC,KAAK,UAAU,KAAK,GAAG;AAAA,MAC3D,iCAAiC,KAAK;AAAA,QAClC,OAAO;AAAA,MAAA;AAAA,MAEX,sCAAsC,KAAK,UAAU,YAAY;AAAA,MACjE,gCAAgC,KAAK,UAAU,OAAO,YAAY;AAAA,MAClE,iDAAiD,KAAK;AAAA,QAClD,OAAO;AAAA,MAAA;AAAA,MAEX,gCAAgC,KAAK,UAAU,OAAO,YAAY;AAAA,MAClE,mCAAmC,KAAK;AAAA,QACpC,OAAO;AAAA,MAAA;AAAA,MAEX,oCAAoC,KAAK;AAAA,QACrC,OAAO;AAAA,MAAA;AAAA,MAEX,mCAAmC,KAAK;AAAA,QACpC,OAAO;AAAA,MAAA;AAAA,IACX;AAAA,EACJ,CACH;AAGD,QAAM,aAAa,KAAK,QAAQ,KAAK,MAAM;AAE3C,QAAM,GAAG,UAAU,UAAU;AAC7B,QAAM,GAAG,KAAK,eAAe,YAAY,EAAE,WAAW,MAAM;AAE5D,UAAQ,IAAI,iCAAiC;AAC7C,UAAQ,IAAI,cAAc,UAAU,EAAE;AACtC,UAAQ,IAAI,+BAA+B;AAC/C,UAAA;AAEI,MAAI;AACA,UAAM,GAAG,OAAO,MAAM;AAAA,EAC1B,SAAS,GAAG;AACR,YAAQ,KAAK,kCAAkC,CAAC;AAAA,EACpD;AACJ;"}
|
|
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\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}\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: import.meta.env.VITE_TRUSTED_ORIGINS?.split(\",\").filter(\n Boolean\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 },\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 },\n prod: prodConfig,\n production: prodConfig, // Alias for prod\n qa: {\n // QA uses staging infrastructure\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 },\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(\"--vwrUrl <url>\", \"Override VWR URL\")\n .option(\"--configUrl <url>\", \"Override VWR Config URL\")\n .option(\"--configFile <filename>\", \"Override VWR Config Filename\")\n .option(\"--launchUrl <url>\", \"Override launch url\")\n .parse()\n\nconst opts = program.opts()\n// Normalize platform name (handle FIRETV -> FIRE_TV, etc.)\nconst normalizedPlatform = normalizePlatform(opts.platform.toUpperCase())\nconst supportsNativeEnv = NATIVE_ENV_PLATFORMS.includes(normalizedPlatform)\n\nfunction normalizePlatform(platform: string): string {\n // Handle common variants\n const aliases: Record<string, string> = {\n FIRETV: \"FIRE_TV\",\n SAMSUNGTV: \"SAMSUNG_TV\",\n LGTV: \"LG_TV\",\n ANDROIDMOBILE: \"ANDROID_MOBILE\",\n IOSMOBILE: \"IOS_MOBILE\",\n }\n return aliases[platform] || platform\n}\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(normalizedPlatform)) {\n console.error(`❌ Unknown platform: ${opts.platform}`)\n console.error(` Valid: ${VALID_PLATFORMS.join(\", \")}`)\n process.exit(1)\n}\nopts.platform = normalizedPlatform\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: normalizedPlatform,\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:\n opts.vwrUrl || 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}\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}\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}\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;AAgBD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,
|
|
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;AAgBD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAgDlD,CAAA"}
|
package/dist/envDefaults.js
CHANGED
|
@@ -44,5 +44,15 @@ export const ENV_DEFAULTS = {
|
|
|
44
44
|
},
|
|
45
45
|
prod: prodConfig,
|
|
46
46
|
production: prodConfig, // Alias for prod
|
|
47
|
+
qa: {
|
|
48
|
+
// QA uses staging infrastructure
|
|
49
|
+
hubUrl: "https://game-clients-staging.volley.tv/hub",
|
|
50
|
+
vwrUrl: `https://vwr.volley.tv/staging/${VWR_URL_PATH_DEFAULT}`,
|
|
51
|
+
configUrl: CONFIG_URL_DEFAULT,
|
|
52
|
+
configFile: CONFIG_FILE_DEFAULT,
|
|
53
|
+
platformApiUrl: "https://platform-staging.volley-services.net",
|
|
54
|
+
platformAuthApiUrl: "https://auth-staging.volley.tv",
|
|
55
|
+
amplitudeKey: "",
|
|
56
|
+
},
|
|
47
57
|
};
|
|
48
58
|
//# sourceMappingURL=envDefaults.js.map
|
package/dist/envDefaults.js.map
CHANGED
|
@@ -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,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;CACnB,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,MAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,0CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CACnE,OAAO,CACV;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;KAC1D;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;KACnB;IACD,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,UAAU,EAAE,iBAAiB;
|
|
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,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;CACnB,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,MAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,0CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CACnE,OAAO,CACV;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;KAC1D;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;KACnB;IACD,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,UAAU,EAAE,iBAAiB;IACzC,EAAE,EAAE;QACA,iCAAiC;QACjC,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;KACnB;CACJ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDeviceId.d.ts","sourceRoot":"","sources":["../src/getDeviceId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAsB,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB;
|
|
1
|
+
{"version":3,"file":"getDeviceId.d.ts","sourceRoot":"","sources":["../src/getDeviceId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAsB,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB;AA8KD,UAAU,kBAAkB;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;CACL;AAmBD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,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;SACJ,CAAA;KACJ;CACJ"}
|
package/dist/getDeviceId.js
CHANGED
|
@@ -59,24 +59,21 @@ function getLocalStorageDeviceId() {
|
|
|
59
59
|
* Attempt to get device ID from Capacitor DeviceInfo plugin (FireTV)
|
|
60
60
|
*/
|
|
61
61
|
async function getFireTVDeviceId(logger) {
|
|
62
|
-
var _a;
|
|
62
|
+
var _a, _b, _c;
|
|
63
63
|
try {
|
|
64
|
-
|
|
65
|
-
const Capacitor = window.Capacitor;
|
|
66
|
-
const DeviceInfo = (_a = Capacitor === null || Capacitor === void 0 ? void 0 : Capacitor.Plugins) === null || _a === void 0 ? void 0 : _a.DeviceInfo;
|
|
67
|
-
if (!(DeviceInfo === null || DeviceInfo === void 0 ? void 0 : DeviceInfo.getAndroidId)) {
|
|
64
|
+
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.getAndroidId)) {
|
|
68
65
|
return null;
|
|
69
66
|
}
|
|
70
|
-
const result = await DeviceInfo.getAndroidId();
|
|
67
|
+
const result = await window.Capacitor.Plugins.DeviceInfo.getAndroidId();
|
|
71
68
|
if ((result === null || result === void 0 ? void 0 : result.androidId) && result.androidId.trim()) {
|
|
72
69
|
return result.androidId;
|
|
73
70
|
}
|
|
74
71
|
else {
|
|
75
|
-
logger.error("DeviceInfo.getAndroidId returned empty");
|
|
72
|
+
logger.error("Capacitor.Plugins.DeviceInfo.getAndroidId returned empty");
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
catch (error) {
|
|
79
|
-
const message = "DeviceInfo.getAndroidId failed:";
|
|
76
|
+
const message = "Capacitor.Plugins.DeviceInfo.getAndroidId failed:";
|
|
80
77
|
logger.error(message, { error });
|
|
81
78
|
}
|
|
82
79
|
return null;
|
package/dist/getDeviceId.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDeviceId.js","sourceRoot":"","sources":["../src/getDeviceId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,QAAgB,EAChB,SAAiB,aAAa;IAE9B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;IACjD,QAAQ,kBAAkB,EAAE,CAAC;QACzB,KAAK,SAAS;YACV,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC1C,KAAK,YAAY;YACb,OAAO,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC3C,KAAK,OAAO;YACR,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QACtC,KAAK,gBAAgB,CAAC;QACtB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ,EAAE,iBAAiB;YAC5B,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC1C,KAAK,KAAK;YACN,OAAO,uBAAuB,EAAE,CAAA;QACpC;YACI,MAAM,OAAO,GAAG,mCAAmC,QAAQ,EAAE,CAAA;YAC7D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,IAAI,CAAA;IACnB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB;IAC5B,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAC9B,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAAc;;IAC3C,IAAI,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"getDeviceId.js","sourceRoot":"","sources":["../src/getDeviceId.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Logger } from "./logger";
|
|
2
|
+
export type Environment = "local" | "dev" | "qa" | "staging" | "prod";
|
|
3
|
+
export type EnvironmentSource = "native" | "build-time" | "default";
|
|
4
|
+
export interface EnvironmentResult {
|
|
5
|
+
environment: Environment;
|
|
6
|
+
source: EnvironmentSource;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Get the environment for the current platform.
|
|
10
|
+
*
|
|
11
|
+
* Precedence:
|
|
12
|
+
* 1. Native shell (Fire TV only) - reads from BuildConfig.ENVIRONMENT
|
|
13
|
+
* 2. Build-time injection (VITE_ENVIRONMENT) - CLI override
|
|
14
|
+
* 3. Default fallback ("dev")
|
|
15
|
+
*
|
|
16
|
+
* This ensures production APKs cannot accidentally run dev VWR,
|
|
17
|
+
* since the native Android build variant determines the environment.
|
|
18
|
+
*
|
|
19
|
+
* @param platform - Platform identifier ('FIRE_TV', 'SAMSUNG_TV', 'LG_TV', 'MOBILE', 'WEB')
|
|
20
|
+
* @param buildTimeEnv - Optional build-time injected environment (from CLI)
|
|
21
|
+
* @param logger - Optional logger for reporting
|
|
22
|
+
* @returns Environment result with source information for logging
|
|
23
|
+
*/
|
|
24
|
+
export declare function getEnvironment(platform: string, buildTimeEnv: string | undefined, logger?: Logger): Promise<EnvironmentResult>;
|
|
25
|
+
//# sourceMappingURL=getEnvironment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEnvironment.d.ts","sourceRoot":"","sources":["../src/getEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAErD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAA;AAEnE,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,iBAAiB,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,GAAE,MAAsB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAuC5B"}
|