@tantawowa/hosanna-tools 3.2.0 → 3.3.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 +26 -30
- package/dist/build-info.json +3 -3
- package/dist/cli.js +42 -30
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/lib/env-info.d.ts +2 -0
- package/dist/lib/env-info.js +53 -26
- package/dist/lib/env-info.js.map +1 -1
- package/dist/lib/spawn-env.d.ts +1 -0
- package/dist/lib/spawn-env.js +36 -0
- package/dist/lib/spawn-env.js.map +1 -0
- package/dist/native/native-project.js +2 -2
- package/dist/native/native-project.js.map +1 -1
- package/dist/run/android-emulator.js +23 -8
- package/dist/run/android-emulator.js.map +1 -1
- package/dist/run/apple-tv.js +1 -1
- package/dist/run/apple-tv.js.map +1 -1
- package/dist/run/executor.d.ts +6 -0
- package/dist/run/executor.js +49 -8
- package/dist/run/executor.js.map +1 -1
- package/dist/run/hsconfig-static-assets.d.ts +20 -0
- package/dist/run/hsconfig-static-assets.js +306 -0
- package/dist/run/hsconfig-static-assets.js.map +1 -0
- package/dist/run/ios-simulator.js +1 -1
- package/dist/run/ios-simulator.js.map +1 -1
- package/dist/run/planner.d.ts +3 -1
- package/dist/run/planner.js +115 -45
- package/dist/run/planner.js.map +1 -1
- package/dist/run/run-config.d.ts +1 -0
- package/dist/run/run-config.js +4 -4
- package/dist/run/run-config.js.map +1 -1
- package/dist/run/run-controller.js +44 -50
- package/dist/run/run-controller.js.map +1 -1
- package/dist/run/targets.d.ts +1 -1
- package/dist/run/targets.js +6 -14
- package/dist/run/targets.js.map +1 -1
- package/dist/run/types.d.ts +2 -2
- package/dist/run/types.js +6 -6
- package/dist/run/types.js.map +1 -1
- package/dist/support-tools/android-metro-build.d.ts +1 -0
- package/dist/support-tools/android-metro-build.js +2 -0
- package/dist/support-tools/android-metro-build.js.map +1 -1
- package/dist/support-tools/apple-bundler.d.ts +1 -0
- package/dist/support-tools/apple-bundler.js +20 -4
- package/dist/support-tools/apple-bundler.js.map +1 -1
- package/dist/support-tools/build-config-resolver.js +13 -4
- package/dist/support-tools/build-config-resolver.js.map +1 -1
- package/dist/support-tools/command-debugger.d.ts +8 -0
- package/dist/support-tools/command-debugger.js +86 -0
- package/dist/support-tools/command-debugger.js.map +1 -1
- package/dist/support-tools/mcp-server/client.d.ts +23 -0
- package/dist/support-tools/mcp-server/client.js +91 -11
- package/dist/support-tools/mcp-server/client.js.map +1 -1
- package/dist/support-tools/mcp-server/tools.js +400 -3
- package/dist/support-tools/mcp-server/tools.js.map +1 -1
- package/dist/updater/sdk-manager.js +28 -5
- package/dist/updater/sdk-manager.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -145,7 +145,7 @@ The CLI commands are organized into logical groups using colon-separated namespa
|
|
|
145
145
|
|
|
146
146
|
### Development Commands
|
|
147
147
|
- `run` - Canonical cross-platform app launcher. Requires `--platform` and supports web, Roku, iOS, Apple TV, Android, and Android TV launch targets.
|
|
148
|
-
- `target:list` - List launch targets for humans or agents, including web
|
|
148
|
+
- `target:list` - List launch targets for humans or agents, including web emulators, sims, and physical devices.
|
|
149
149
|
- `dev:start` - Run dev processes: vite, generator watch, and optional debugger
|
|
150
150
|
- `debugger:start` - Start the command debugger WebSocket proxy (only one debugger is needed for multiple apps; if the port is already in use, a friendly message is shown instead of crashing)
|
|
151
151
|
|
|
@@ -153,29 +153,27 @@ Examples:
|
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
155
|
hst run --platform web
|
|
156
|
-
hst run --platform roku --target
|
|
157
|
-
hst run --platform ios --target
|
|
158
|
-
hst run --platform android --target
|
|
159
|
-
hst run --platform apple-tv --target
|
|
160
|
-
hst run --platform android-tv --target
|
|
161
|
-
hst run --platform
|
|
162
|
-
hst run --platform roku --target emulated
|
|
163
|
-
hst run --platform ios --target simulator --device "iPhone 17 Pro"
|
|
156
|
+
hst run --platform roku --target emulator
|
|
157
|
+
hst run --platform ios --target emulator
|
|
158
|
+
hst run --platform android --target emulator
|
|
159
|
+
hst run --platform apple-tv --target emulator
|
|
160
|
+
hst run --platform android-tv --target emulator
|
|
161
|
+
hst run --platform ios --target sim --device "iPhone 17 Pro"
|
|
164
162
|
hst run --platform ios --target device --device "George iPhone" --no-logs
|
|
165
|
-
hst run --platform android --target
|
|
163
|
+
hst run --platform android --target sim --device "Pixel_8" --no-logs
|
|
166
164
|
hst run --platform android --target device --device "RF8M62694QT" --no-logs
|
|
167
|
-
hst run --platform android-tv --target
|
|
168
|
-
hst run --platform apple-tv --target
|
|
165
|
+
hst run --platform android-tv --target sim --device "Television_1080p" --no-logs
|
|
166
|
+
hst run --platform apple-tv --target sim --device "Apple TV 4K"
|
|
169
167
|
hst run --platform roku --target device --device "Living Room"
|
|
170
168
|
hst run --platform roku --target device --device "Living Room" --replace
|
|
171
169
|
hst target:list --platform ios --target device --json
|
|
172
|
-
hst target:list --platform android --target
|
|
173
|
-
hst target:list --platform android-tv --target
|
|
174
|
-
hst target:list --platform apple-tv --target
|
|
170
|
+
hst target:list --platform android --target sim --json
|
|
171
|
+
hst target:list --platform android-tv --target sim --json
|
|
172
|
+
hst target:list --platform apple-tv --target sim --json
|
|
175
173
|
hst target:list --form-factor tv --json
|
|
176
174
|
```
|
|
177
175
|
|
|
178
|
-
`hst run` is platform-explicit by design, so non-interactive agents do not guess between iOS, Apple TV, Android, Android TV, Roku, or web. `--target
|
|
176
|
+
`hst run` is platform-explicit by design, so non-interactive agents do not guess between iOS, Apple TV, Android, Android TV, Roku, or web. `--target emulator` starts or reuses the shared Vite/debugger dev services for any platform and opens a profiled DOM runtime URL for interactive runs; use `--device <preset-id>` to override defaults such as `iphone-15`, `pixel-8`, `apple-tv-4k`, `android-tv-1080p`, or `rokufhd`, and use `--no-open` for server-only launches. `--target sim` launches the vendor virtual device for platforms that have one: Apple Simulator for iOS and Apple TV, Android Emulator for Android and Android TV. `--target device` launches or deploys to physical local hardware. `web` and `browser` remain accepted aliases for the web emulator; `simulator` and `simulated` remain accepted aliases for `sim`; `emulated` remains an accepted alias for the web emulator. Device/sim runs record the target and refuse to overwrite a recorded session or safe-to-kill occupied resource in non-interactive mode unless `--replace` is passed. Preferred run defaults live in `.hosanna-tools/run.json`, and preferred devices live in `.hosanna-tools/devices.json` or `~/.hosanna-tools/devices.json`. Legacy `.hs-devices.json` files are still read for compatibility.
|
|
179
177
|
|
|
180
178
|
### Roku Commands (`roku:*`) - Roku Deployment & Packaging
|
|
181
179
|
- `roku:run` - Deploy a Roku app to a device (supports .zip file or folder)
|
|
@@ -328,25 +326,23 @@ silently break an install.
|
|
|
328
326
|
```bash
|
|
329
327
|
# Development workflow
|
|
330
328
|
hst run --platform web # Start/reuse web dev services
|
|
331
|
-
hst run --platform roku --target
|
|
332
|
-
hst run --platform ios --target
|
|
333
|
-
hst run --platform android --target
|
|
334
|
-
hst run --platform apple-tv --target
|
|
335
|
-
hst run --platform android-tv --target
|
|
336
|
-
hst run --platform
|
|
337
|
-
hst run --platform roku --target emulated
|
|
338
|
-
hst run --platform ios --target simulator --device "iPhone 17 Pro"
|
|
329
|
+
hst run --platform roku --target emulator
|
|
330
|
+
hst run --platform ios --target emulator
|
|
331
|
+
hst run --platform android --target emulator
|
|
332
|
+
hst run --platform apple-tv --target emulator
|
|
333
|
+
hst run --platform android-tv --target emulator
|
|
334
|
+
hst run --platform ios --target sim --device "iPhone 17 Pro"
|
|
339
335
|
hst run --platform ios --target device --device "George iPhone" --no-logs
|
|
340
|
-
hst run --platform android --target
|
|
336
|
+
hst run --platform android --target sim --device "Pixel_8" --no-logs
|
|
341
337
|
hst run --platform android --target device --device "RF8M62694QT" --no-logs
|
|
342
|
-
hst run --platform android-tv --target
|
|
343
|
-
hst run --platform apple-tv --target
|
|
338
|
+
hst run --platform android-tv --target sim --device "Television_1080p" --no-logs
|
|
339
|
+
hst run --platform apple-tv --target sim --device "Apple TV 4K"
|
|
344
340
|
hst run --platform roku --target device --device "Living Room"
|
|
345
341
|
hst run --platform roku --target device --device "Living Room" --replace
|
|
346
342
|
hst target:list --platform ios --target device --json
|
|
347
|
-
hst target:list --platform android --target
|
|
348
|
-
hst target:list --platform android-tv --target
|
|
349
|
-
hst target:list --platform apple-tv --target
|
|
343
|
+
hst target:list --platform android --target sim --json
|
|
344
|
+
hst target:list --platform android-tv --target sim --json
|
|
345
|
+
hst target:list --platform apple-tv --target sim --json
|
|
350
346
|
hst target:list --form-factor tv --json
|
|
351
347
|
hst generate:all --watch # Generate code with file watching
|
|
352
348
|
hst dev:start # Lower-level dev server task used by hst run
|
package/dist/build-info.json
CHANGED
package/dist/cli.js
CHANGED
|
@@ -69,11 +69,20 @@ function formatRunPlanText(plan, explain, command = 'run') {
|
|
|
69
69
|
if (explain) {
|
|
70
70
|
lines.push('', 'Resolution sources:');
|
|
71
71
|
for (const [key, value] of Object.entries(plan.sources)) {
|
|
72
|
-
lines.push(` ${key}: ${value}`);
|
|
72
|
+
lines.push(` ${key}: ${value}${explainResolvedValue(plan, key)}`);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
return lines.join('\n');
|
|
76
76
|
}
|
|
77
|
+
function explainResolvedValue(plan, key) {
|
|
78
|
+
if (key === 'hsconfig' && plan.resolved.hsconfig) {
|
|
79
|
+
return ` (${plan.resolved.hsconfig})`;
|
|
80
|
+
}
|
|
81
|
+
if (key === 'hscProject' && plan.resolved.hscProject) {
|
|
82
|
+
return ` (${plan.resolved.hscProject})`;
|
|
83
|
+
}
|
|
84
|
+
return '';
|
|
85
|
+
}
|
|
77
86
|
function rawCommandPositionals(command) {
|
|
78
87
|
const raw = (0, helpers_1.hideBin)(process.argv);
|
|
79
88
|
const index = raw.indexOf(command);
|
|
@@ -110,6 +119,7 @@ function runPlanFlagsFromCliArgs(args, format) {
|
|
|
110
119
|
appPackage: rawHasFlag('app-package') ? args['app-package'] : undefined,
|
|
111
120
|
files: rawHasFlag('files') ? args.files : undefined,
|
|
112
121
|
deployTimeoutMs: rawHasFlag('deploy-timeout-ms') ? args['deploy-timeout-ms'] : undefined,
|
|
122
|
+
hsconfig: rawHasFlag('hsconfig') ? args.hsconfig : undefined,
|
|
113
123
|
config: rawHasFlag('config') ? args.config : undefined,
|
|
114
124
|
hscProject: rawHasFlag('hsc-project') ? args.hscProject : undefined,
|
|
115
125
|
vitePort: rawHasFlag('vitePort') ? args.vitePort : undefined,
|
|
@@ -1400,7 +1410,7 @@ catch (err) {
|
|
|
1400
1410
|
process.exit(1);
|
|
1401
1411
|
}
|
|
1402
1412
|
})
|
|
1403
|
-
.command('target:list [platform]', 'List run targets discovered by hst, including web
|
|
1413
|
+
.command('target:list [platform]', 'List run targets discovered by hst, including web emulators, sims, and physical devices', yargs => yargs
|
|
1404
1414
|
.positional('platform', {
|
|
1405
1415
|
type: 'string',
|
|
1406
1416
|
choices: ['web', 'roku', 'ios', 'apple-tv', 'android', 'android-tv'],
|
|
@@ -1413,7 +1423,7 @@ catch (err) {
|
|
|
1413
1423
|
})
|
|
1414
1424
|
.option('target', {
|
|
1415
1425
|
type: 'string',
|
|
1416
|
-
choices: ['
|
|
1426
|
+
choices: ['emulator', 'web', 'browser', 'sim', 'simulator', 'device', 'simulated', 'emulated'],
|
|
1417
1427
|
describe: 'Filter by target kind',
|
|
1418
1428
|
})
|
|
1419
1429
|
.option('form-factor', {
|
|
@@ -1432,14 +1442,14 @@ catch (err) {
|
|
|
1432
1442
|
default: 'text',
|
|
1433
1443
|
describe: 'Output format',
|
|
1434
1444
|
})
|
|
1435
|
-
.example('$0 target:list --platform roku', 'List Roku web
|
|
1436
|
-
.example('$0 target:list --platform ios --target
|
|
1437
|
-
.example('$0 target:list --platform ios --target
|
|
1445
|
+
.example('$0 target:list --platform roku', 'List Roku web emulator and device targets')
|
|
1446
|
+
.example('$0 target:list --platform ios --target emulator --json', 'List the iOS web emulator target as JSON')
|
|
1447
|
+
.example('$0 target:list --platform ios --target sim --json', 'List iOS simulator targets as JSON')
|
|
1438
1448
|
.example('$0 target:list --platform ios --target device --json', 'List physical iOS device targets as JSON')
|
|
1439
|
-
.example('$0 target:list --platform android --target
|
|
1449
|
+
.example('$0 target:list --platform android --target sim --json', 'List Android phone emulator targets as JSON')
|
|
1440
1450
|
.example('$0 target:list --platform android --target device --json', 'List physical Android device targets as JSON')
|
|
1441
|
-
.example('$0 target:list --platform android-tv --target
|
|
1442
|
-
.example('$0 target:list --platform apple-tv --target
|
|
1451
|
+
.example('$0 target:list --platform android-tv --target sim --json', 'List Android TV emulator targets as JSON')
|
|
1452
|
+
.example('$0 target:list --platform apple-tv --target sim --json', 'List Apple TV simulator targets as JSON')
|
|
1443
1453
|
.example('$0 target:list --form-factor tv --json', 'List TV-class targets as JSON'), async (args) => {
|
|
1444
1454
|
try {
|
|
1445
1455
|
const mod = await Promise.resolve().then(() => __importStar(require('./run/targets.js')));
|
|
@@ -1475,11 +1485,11 @@ catch (err) {
|
|
|
1475
1485
|
})
|
|
1476
1486
|
.positional('target', {
|
|
1477
1487
|
type: 'string',
|
|
1478
|
-
describe: 'Target kind:
|
|
1488
|
+
describe: 'Target kind: emulator, sim, or device.',
|
|
1479
1489
|
})
|
|
1480
1490
|
.positional('deviceSelector', {
|
|
1481
1491
|
type: 'string',
|
|
1482
|
-
describe: 'Device IP, serial/UDID, AVD name, simulator name, or case-insensitive name substring.',
|
|
1492
|
+
describe: 'Device IP, serial/UDID, AVD name, simulator name, web preset id, or case-insensitive name substring.',
|
|
1483
1493
|
})
|
|
1484
1494
|
.option('platform', {
|
|
1485
1495
|
type: 'string',
|
|
@@ -1492,12 +1502,12 @@ catch (err) {
|
|
|
1492
1502
|
})
|
|
1493
1503
|
.option('target', {
|
|
1494
1504
|
type: 'string',
|
|
1495
|
-
choices: ['
|
|
1505
|
+
choices: ['emulator', 'web', 'browser', 'sim', 'simulator', 'device', 'simulated', 'emulated'],
|
|
1496
1506
|
describe: 'Target kind. Defaults by platform.',
|
|
1497
1507
|
})
|
|
1498
1508
|
.option('device', {
|
|
1499
1509
|
type: 'string',
|
|
1500
|
-
describe: 'Device IP, serial/UDID, case-insensitive name substring, or web preset id for --target
|
|
1510
|
+
describe: 'Device IP, serial/UDID, case-insensitive name substring, or web preset id for --target emulator',
|
|
1501
1511
|
})
|
|
1502
1512
|
.option('appName', {
|
|
1503
1513
|
type: 'string',
|
|
@@ -1519,13 +1529,14 @@ catch (err) {
|
|
|
1519
1529
|
.option('dry-run', { type: 'boolean', default: false, describe: 'Print the resolved build RunPlan without executing it' })
|
|
1520
1530
|
.option('format', { type: 'string', choices: ['text', 'json'], default: 'text', describe: 'Output format for --dry-run and build result' })
|
|
1521
1531
|
.option('explain', { type: 'boolean', default: false, describe: 'Include resolution source details in text dry-run output' })
|
|
1532
|
+
.option('hsconfig', { type: 'string', describe: 'Explicit hsconfig file for Roku/native build planning' })
|
|
1522
1533
|
.option('hsc-project', { type: 'string', describe: 'Explicit Roku HSC project file for hst build planning' })
|
|
1523
|
-
.option('config', { type: 'string', describe: '
|
|
1534
|
+
.option('config', { type: 'string', describe: 'Back-compatible alias for --hsconfig / --hsc-project' })
|
|
1524
1535
|
.option('source-root', { type: 'string', describe: 'Roku source root to preserve in build planning output' })
|
|
1525
1536
|
.example('$0 build roku dev device', 'Build the dev Roku output without deploying or streaming logs')
|
|
1526
1537
|
.example('$0 build roku prod device --hsc-project platforms/hsconfig-roku.prod.json', 'Build Roku with an explicit HSC project file')
|
|
1527
|
-
.example('$0 build ios dev
|
|
1528
|
-
.example('$0 build web dev
|
|
1538
|
+
.example('$0 build ios dev sim --device "iPhone 17 Pro"', 'Build an iOS simulator target without install, launch, or logs')
|
|
1539
|
+
.example('$0 build web dev emulator', 'Resolve web runtime build config without opening a browser'), async (args) => {
|
|
1529
1540
|
await runRunPlanCommand('build', args);
|
|
1530
1541
|
})
|
|
1531
1542
|
.command('run [platform] [env] [target] [deviceSelector]', 'Launch a Hosanna app on a platform target (web, Roku, iOS, Apple TV, Android, and Android TV targets are supported)', yargs => yargs
|
|
@@ -1540,11 +1551,11 @@ catch (err) {
|
|
|
1540
1551
|
})
|
|
1541
1552
|
.positional('target', {
|
|
1542
1553
|
type: 'string',
|
|
1543
|
-
describe: 'Target kind:
|
|
1554
|
+
describe: 'Target kind: emulator, sim, or device.',
|
|
1544
1555
|
})
|
|
1545
1556
|
.positional('deviceSelector', {
|
|
1546
1557
|
type: 'string',
|
|
1547
|
-
describe: 'Device IP, serial/UDID, AVD name, simulator name, or case-insensitive name substring.',
|
|
1558
|
+
describe: 'Device IP, serial/UDID, AVD name, simulator name, web preset id, or case-insensitive name substring.',
|
|
1548
1559
|
})
|
|
1549
1560
|
.option('platform', {
|
|
1550
1561
|
type: 'string',
|
|
@@ -1557,12 +1568,12 @@ catch (err) {
|
|
|
1557
1568
|
})
|
|
1558
1569
|
.option('target', {
|
|
1559
1570
|
type: 'string',
|
|
1560
|
-
choices: ['
|
|
1571
|
+
choices: ['emulator', 'web', 'browser', 'sim', 'simulator', 'device', 'simulated', 'emulated'],
|
|
1561
1572
|
describe: 'Target kind. Defaults by platform.',
|
|
1562
1573
|
})
|
|
1563
1574
|
.option('device', {
|
|
1564
1575
|
type: 'string',
|
|
1565
|
-
describe: 'Device IP, serial/UDID, case-insensitive name substring, or web preset id for --target
|
|
1576
|
+
describe: 'Device IP, serial/UDID, case-insensitive name substring, or web preset id for --target emulator',
|
|
1566
1577
|
})
|
|
1567
1578
|
.option('appName', {
|
|
1568
1579
|
type: 'string',
|
|
@@ -1592,8 +1603,9 @@ catch (err) {
|
|
|
1592
1603
|
.option('build-only', { type: 'boolean', default: false, describe: 'Plan or run build steps without opening browser/log streams where supported' })
|
|
1593
1604
|
.option('no-logs', { type: 'boolean', default: false, describe: 'Do not stream device logs after launch where supported' })
|
|
1594
1605
|
.option('build-cmd', { type: 'string', describe: 'Override the platform build command for device runs' })
|
|
1606
|
+
.option('hsconfig', { type: 'string', describe: 'Explicit hsconfig file for Roku/native run planning' })
|
|
1595
1607
|
.option('hsc-project', { type: 'string', describe: 'Explicit Roku HSC project file for hst run planning' })
|
|
1596
|
-
.option('config', { type: 'string', describe: '
|
|
1608
|
+
.option('config', { type: 'string', describe: 'Back-compatible alias for --hsconfig / --hsc-project' })
|
|
1597
1609
|
.option('app-package', { type: 'string', describe: 'Roku app .zip or folder to deploy for device runs' })
|
|
1598
1610
|
.option('source-root', { type: 'string', describe: 'Roku source root to deploy for device runs' })
|
|
1599
1611
|
.option('source-map-root', { type: 'string', describe: 'Roku source map root for log resolution' })
|
|
@@ -1603,17 +1615,17 @@ catch (err) {
|
|
|
1603
1615
|
.option('logs', { type: 'boolean', default: false, describe: 'Enable verbose deploy logging where supported' })
|
|
1604
1616
|
.option('applySourceMapToPaths', { type: 'boolean', default: true, describe: 'Resolve Roku stack trace paths with source maps during log streaming' })
|
|
1605
1617
|
.example('$0 run --platform web', 'Start/reuse web dev services for this app')
|
|
1606
|
-
.example('$0 run --platform roku --target
|
|
1607
|
-
.example('$0 run --platform ios --target
|
|
1608
|
-
.example('$0 run --platform android --target
|
|
1609
|
-
.example('$0 run --platform apple-tv --target
|
|
1610
|
-
.example('$0 run --platform android-tv --target
|
|
1611
|
-
.example('$0 run --platform ios --target
|
|
1618
|
+
.example('$0 run --platform roku --target emulator', 'Start/reuse the Roku TV web emulator')
|
|
1619
|
+
.example('$0 run --platform ios --target emulator', 'Start/reuse the iPhone-shaped web emulator profile')
|
|
1620
|
+
.example('$0 run --platform android --target emulator --device pixel-8', 'Start/reuse the Android-shaped web emulator profile')
|
|
1621
|
+
.example('$0 run --platform apple-tv --target emulator --no-open', 'Start/reuse the Apple TV web emulator profile without opening a browser')
|
|
1622
|
+
.example('$0 run --platform android-tv --target emulator', 'Start/reuse the Android TV web emulator profile')
|
|
1623
|
+
.example('$0 run --platform ios --target sim --device "iPhone 17 Pro"', 'Build, install, and launch on an iOS simulator')
|
|
1612
1624
|
.example('$0 run --platform ios --target device --device "George iPhone" --no-logs', 'Build, install, and launch on a physical iPhone')
|
|
1613
|
-
.example('$0 run --platform android --target
|
|
1625
|
+
.example('$0 run --platform android --target sim --device "Pixel_8" --no-logs', 'Build, install, and launch on an Android phone emulator')
|
|
1614
1626
|
.example('$0 run --platform android --target device --device "RF8M62694QT" --no-logs', 'Build, install, and launch on a physical Android device')
|
|
1615
|
-
.example('$0 run --platform android-tv --target
|
|
1616
|
-
.example('$0 run --platform apple-tv --target
|
|
1627
|
+
.example('$0 run --platform android-tv --target sim --device "Television_1080p" --no-logs', 'Build, install, and launch on an Android TV emulator')
|
|
1628
|
+
.example('$0 run --platform apple-tv --target sim --device "Apple TV 4K"', 'Build, install, and launch on an Apple TV simulator')
|
|
1617
1629
|
.example('$0 run --platform roku --target device --device "living room"', 'Build, deploy, launch, and stream logs on a Roku device')
|
|
1618
1630
|
.example('$0 run roku dev device --app criterion', 'Run a configured monorepo app/flavor')
|
|
1619
1631
|
.example('$0 run roku prod device --hsc-project platforms/hsconfig.criterion.prod.json', 'Override the Roku HSC project file'), async (args) => {
|