@zsukim/ctv-run 1.0.0 โ 1.0.3
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 +37 -35
- package/dist/platforms/firetv.js +32 -20
- package/dist/platforms/tizen.js +5 -3
- package/dist/platforms/webos.js +4 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ctv-run
|
|
2
2
|
|
|
3
3
|
> React, Vue ๋ฑ **์น ๊ธฐ์ ๋ก ๋ง๋ TV ์ฑ**์ Vizio, LG webOS, Fire TV, Samsung Tizen์ ๋ฐฐํฌํ๊ณ ์คํํ๋ CLI ๋๊ตฌ์
๋๋ค.
|
|
4
4
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
| ๋ชจ๋ | ์ต์
| ์ค๋ช
|
|
|
24
24
|
|------|------|------|
|
|
25
|
-
| **Live Mode** | (๊ธฐ๋ณธ๊ฐ) |
|
|
25
|
+
| **Live Mode** | (๊ธฐ๋ณธ๊ฐ) | TV๊ฐ ๋ก๋ํ URL์ TV์ ์ฃผ์
. HMR ์ง์ |
|
|
26
26
|
| **Static Mode** | `--target=dist` | ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ TV์ ์ง์ ์ค์น |
|
|
27
27
|
|
|
28
28
|
> **Vizio**๋ ๊ตฌ์กฐ์ ํญ์ URL์ด ํ์ํ๋ฏ๋ก Live Mode๋ง ์ง์ํฉ๋๋ค.
|
|
@@ -31,31 +31,16 @@
|
|
|
31
31
|
|
|
32
32
|
## ctv.config.json
|
|
33
33
|
|
|
34
|
-
ํ๋ก์ ํธ ๋ฃจํธ์ ์์ฑํ๋ฉด CLI ์ต์
์ ์๋ตํ ์ ์์ต๋๋ค. CLI ์ต์
์ด ํญ์ ์ฐ์ ํฉ๋๋ค.
|
|
34
|
+
ํ๋ก์ ํธ ๋ฃจํธ์ ์์ฑํ๋ฉด CLI ์ต์
์ ์๋ตํ ์ ์์ต๋๋ค. ์ฌ์ฉํ๋ ํ๋ซํผ์ ์ค์ ๋ง ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค. CLI ์ต์
์ด ํญ์ ์ฐ์ ํฉ๋๋ค.
|
|
35
35
|
|
|
36
36
|
```json
|
|
37
37
|
{
|
|
38
38
|
"vizio": {
|
|
39
|
-
"ip": "192.168.
|
|
40
|
-
"url": "http://192.168.
|
|
41
|
-
},
|
|
42
|
-
"fire": {
|
|
43
|
-
"ip": "192.168.11.20",
|
|
44
|
-
"package": "com.example.tvapp",
|
|
45
|
-
"url": "http://192.168.11.10:3300",
|
|
46
|
-
"adbPath": "/usr/local/bin/adb",
|
|
47
|
-
"androidAssetsPath": "/path/to/android/app/src/main/assets"
|
|
39
|
+
"ip": "192.168.x.x",
|
|
40
|
+
"url": "http://192.168.x.x:3300"
|
|
48
41
|
},
|
|
49
42
|
"tizen": {
|
|
50
|
-
"ip": "192.168.
|
|
51
|
-
"appId": "A123456789.MyApp"
|
|
52
|
-
},
|
|
53
|
-
"webos": {
|
|
54
|
-
"deviceName": "my-lg-tv",
|
|
55
|
-
"appId": "com.example.tvapp"
|
|
56
|
-
},
|
|
57
|
-
"common": {
|
|
58
|
-
"devServerPort": 3300
|
|
43
|
+
"ip": "192.168.x.x"
|
|
59
44
|
}
|
|
60
45
|
}
|
|
61
46
|
```
|
|
@@ -66,24 +51,30 @@
|
|
|
66
51
|
|
|
67
52
|
| Field | ํ์ | Description |
|
|
68
53
|
|-------|------|-------------|
|
|
69
|
-
| `ip` | โ
|
|
|
70
|
-
| `url` | | TV
|
|
54
|
+
| `ip` | โ
| TV ๋ก์ปฌ IP |
|
|
55
|
+
| `url` | | TV๊ฐ ๋ก๋ํ URL |
|
|
56
|
+
| `port` | | TV๊ฐ ๋ก๋ํ URL์ ํฌํธ |
|
|
71
57
|
|
|
72
58
|
**Fire TV**
|
|
73
59
|
|
|
74
60
|
| Field | ํ์ | Description |
|
|
75
61
|
|-------|------|-------------|
|
|
76
|
-
| `ip` | โ
|
|
|
62
|
+
| `ip` | โ
| TV ๋ก์ปฌ IP |
|
|
77
63
|
| `package` | โ
| Android ์ฑ ํจํค์ง๋ช
|
|
|
78
|
-
| `url` | |
|
|
64
|
+
| `url` | | TV๊ฐ ๋ก๋ํ URL |
|
|
65
|
+
| `port` | | TV๊ฐ ๋ก๋ํ URL์ ํฌํธ |
|
|
66
|
+
| `activity` | | ์คํํ Activity (๊ธฐ๋ณธ๊ฐ: `.MainActivity`) |
|
|
79
67
|
| `adbPath` | | adb ์คํ ๊ฒฝ๋ก (๊ธฐ๋ณธ๊ฐ: `adb`) |
|
|
80
|
-
| `
|
|
68
|
+
| `androidProjectPath` | Static Mode ์ โ
| Android ํ๋ก์ ํธ ๋ฃจํธ ๊ฒฝ๋ก (gradlew๊ฐ ์๋ ํด๋) |
|
|
69
|
+
| `moduleName` | | Android ๋ชจ๋๋ช
(๊ธฐ๋ณธ๊ฐ: `app`) |
|
|
81
70
|
|
|
82
71
|
**Tizen**
|
|
83
72
|
|
|
84
73
|
| Field | ํ์ | Description |
|
|
85
74
|
|-------|------|-------------|
|
|
86
|
-
| `ip` | โ
|
|
|
75
|
+
| `ip` | โ
| TV ๋ก์ปฌ IP |
|
|
76
|
+
| `url` | | TV๊ฐ ๋ก๋ํ URL |
|
|
77
|
+
| `port` | | TV๊ฐ ๋ก๋ํ URL์ ํฌํธ |
|
|
87
78
|
| `appId` | | Tizen ์ฑ ๊ณ ์ ID (์์ผ๋ฉด ์๋ ์์ฑ) |
|
|
88
79
|
|
|
89
80
|
**WebOS**
|
|
@@ -91,13 +82,15 @@
|
|
|
91
82
|
| Field | ํ์ | Description |
|
|
92
83
|
|-------|------|-------------|
|
|
93
84
|
| `deviceName` | โ
| ares-cli์ ๋ฑ๋ก๋ ๊ธฐ๊ธฐ ์ด๋ฆ |
|
|
85
|
+
| `url` | | TV๊ฐ ๋ก๋ํ URL |
|
|
86
|
+
| `port` | | TV๊ฐ ๋ก๋ํ URL์ ํฌํธ |
|
|
94
87
|
| `appId` | | webOS ์ฑ ID (๊ธฐ๋ณธ๊ฐ: `com.ctvrun.app`) |
|
|
95
88
|
|
|
96
89
|
**Common**
|
|
97
90
|
|
|
98
91
|
| Field | Description |
|
|
99
92
|
|-------|-------------|
|
|
100
|
-
| `devServerPort` |
|
|
93
|
+
| `devServerPort` | ๋ชจ๋ ํ๋ซํผ์ ๊ณตํต์ผ๋ก ์ ์ฉํ ํฌํธ (๊ธฐ๋ณธ๊ฐ: `3000`) |
|
|
101
94
|
|
|
102
95
|
> ๐ก TV IP๊ฐ ๊ฐ๋ฐ์๋ง๋ค ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก `ctv.config.json`์ `.gitignore`์ ์ถ๊ฐํ๊ณ , `ctv.config.sample.json`์ ์ ์ฅ์์ ๊ณต์ ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
|
|
103
96
|
|
|
@@ -118,6 +111,9 @@ npx playwright install chromium
|
|
|
118
111
|
ADB๊ฐ ์ค์น๋์ด ์์ด์ผ ํ๋ฉฐ, TV์์ **๊ฐ๋ฐ์ ์ต์
โ ADB ๋๋ฒ๊น
**์ด ํ์ฑํ๋์ด ์์ด์ผ ํฉ๋๋ค.
|
|
119
112
|
|
|
120
113
|
```bash
|
|
114
|
+
# macOS โ ADB ์ค์น
|
|
115
|
+
brew install --cask android-platform-tools
|
|
116
|
+
|
|
121
117
|
# ์ฐ๊ฒฐ ํ์ธ
|
|
122
118
|
adb devices
|
|
123
119
|
```
|
|
@@ -186,7 +182,7 @@ ares-setup-device --list
|
|
|
186
182
|
# URL ์ง์ ์ง์
|
|
187
183
|
ctv-run vizio --ip=192.168.11.27 --url=http://192.168.11.10:3300
|
|
188
184
|
|
|
189
|
-
# ํฌํธ๋ง ์ง์
|
|
185
|
+
# ํฌํธ๋ง ์ง์ โ http://[๋ด PC IP]:3300 ์ผ๋ก ์๋ ์กฐํฉ
|
|
190
186
|
ctv-run vizio --ip=192.168.11.27 --port=3300
|
|
191
187
|
```
|
|
192
188
|
|
|
@@ -199,10 +195,10 @@ Playwright๋ก Vizio ์น ๋ฐ์ฒ๋ฅผ ์๋ ์กฐ์ํ์ฌ ํ์ด๋ง(PIN ์
๋ ฅ) ํ
|
|
|
199
195
|
### Fire TV
|
|
200
196
|
|
|
201
197
|
```bash
|
|
202
|
-
#
|
|
198
|
+
# URL ์ง์ ์ง์
|
|
203
199
|
ctv-run fire --url=http://192.168.11.10:3300
|
|
204
200
|
|
|
205
|
-
#
|
|
201
|
+
# ํฌํธ๋ง ์ง์ โ http://[๋ด PC IP]:3300 ์ผ๋ก ์๋ ์กฐํฉ
|
|
206
202
|
ctv-run fire --port=3300
|
|
207
203
|
|
|
208
204
|
# Static Mode โ dist๋ฅผ Android assets์ ๋ณต์ฌ ํ ๋ก์ปฌ ์คํ
|
|
@@ -221,8 +217,11 @@ ctv-run fire --target=dist
|
|
|
221
217
|
### Tizen
|
|
222
218
|
|
|
223
219
|
```bash
|
|
224
|
-
#
|
|
225
|
-
ctv-run tizen --ip=192.168.11.30
|
|
220
|
+
# URL ์ง์ ์ง์
|
|
221
|
+
ctv-run tizen --ip=192.168.11.30 --url=http://192.168.11.10:3300
|
|
222
|
+
|
|
223
|
+
# ํฌํธ๋ง ์ง์ โ http://[๋ด PC IP]:3300 ์ผ๋ก ์๋ ์กฐํฉ
|
|
224
|
+
ctv-run tizen --ip=192.168.11.30 --port=3300
|
|
226
225
|
|
|
227
226
|
# Static Mode โ dist๋ฅผ .wgt๋ก ํจํค์งํ์ฌ TV์ ์ค์น
|
|
228
227
|
ctv-run tizen --ip=192.168.11.30 --target=dist
|
|
@@ -242,8 +241,11 @@ ctv-run tizen --ip=192.168.11.30 --target=dist
|
|
|
242
241
|
### WebOS
|
|
243
242
|
|
|
244
243
|
```bash
|
|
245
|
-
#
|
|
246
|
-
ctv-run webos --device=my-lg-tv
|
|
244
|
+
# URL ์ง์ ์ง์
|
|
245
|
+
ctv-run webos --device=my-lg-tv --url=http://192.168.11.10:3300
|
|
246
|
+
|
|
247
|
+
# ํฌํธ๋ง ์ง์ โ http://[๋ด PC IP]:3300 ์ผ๋ก ์๋ ์กฐํฉ
|
|
248
|
+
ctv-run webos --device=my-lg-tv --port=3300
|
|
247
249
|
|
|
248
250
|
# Static Mode โ dist๋ฅผ .ipk๋ก ํจํค์งํ์ฌ TV์ ์ค์น
|
|
249
251
|
ctv-run webos --device=my-lg-tv --target=dist
|
package/dist/platforms/firetv.js
CHANGED
|
@@ -21,7 +21,7 @@ const ip_1 = require("../utils/ip");
|
|
|
21
21
|
const platform_1 = require("../utils/platform");
|
|
22
22
|
function runFireTv() {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
24
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
25
25
|
const args = process.argv.slice(2);
|
|
26
26
|
const config = (0, config_1.loadConfig)();
|
|
27
27
|
const getArg = (0, platform_1.makeArgParser)(args);
|
|
@@ -31,49 +31,61 @@ function runFireTv() {
|
|
|
31
31
|
const pkg = getArg('package') || ((_c = config.fire) === null || _c === void 0 ? void 0 : _c.package);
|
|
32
32
|
const activity = getArg('activity') || ((_d = config.fire) === null || _d === void 0 ? void 0 : _d.activity) || '.MainActivity';
|
|
33
33
|
const targetArg = getArg('target');
|
|
34
|
-
const
|
|
34
|
+
const androidProjectPath = getArg('androidProjectPath') || ((_e = config.fire) === null || _e === void 0 ? void 0 : _e.androidProjectPath);
|
|
35
|
+
const moduleName = getArg('moduleName') || ((_f = config.fire) === null || _f === void 0 ? void 0 : _f.moduleName) || 'app';
|
|
35
36
|
// ์ฑ URL ๊ฒฐ์ (Live Mode ์ ์ฉ)
|
|
36
|
-
const userUrl = getArg('url') || ((
|
|
37
|
-
const port = getArg('port') || ((
|
|
37
|
+
const userUrl = getArg('url') || ((_g = config.fire) === null || _g === void 0 ? void 0 : _g.url);
|
|
38
|
+
const port = getArg('port') || ((_h = config.fire) === null || _h === void 0 ? void 0 : _h.port) || ((_j = config.common) === null || _j === void 0 ? void 0 : _j.devServerPort) || 3000;
|
|
38
39
|
const appUrl = userUrl || `http://${(0, ip_1.getLocalIp)()}:${port}`;
|
|
39
40
|
if (!tvIp || !pkg) {
|
|
40
41
|
console.error(`\nโ Fire TV ํ์ ์ค์ (ip, package)์ด ๋๋ฝ๋์์ต๋๋ค!`);
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
|
-
// Static Mode
|
|
44
|
+
// Static Mode
|
|
44
45
|
if (targetArg) {
|
|
45
|
-
if (!
|
|
46
|
-
console.error(`\nโ ctv.config.json์ '
|
|
46
|
+
if (!androidProjectPath) {
|
|
47
|
+
console.error(`\nโ ctv.config.json์ 'androidProjectPath'๊ฐ ์ค์ ๋์ด ์์ง ์์ต๋๋ค.`);
|
|
47
48
|
return;
|
|
48
49
|
}
|
|
49
50
|
const distPath = path_1.default.resolve(process.cwd(), targetArg);
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
: path_1.default.resolve(process.cwd(), androidAssetsPath);
|
|
51
|
+
const assetsPath = path_1.default.join(androidProjectPath, moduleName, 'src', 'main', 'assets');
|
|
52
|
+
const apkPath = path_1.default.join(androidProjectPath, moduleName, 'build', 'outputs', 'apk', 'debug', `${moduleName}-debug.apk`);
|
|
53
53
|
console.log(`-----------------------------------------`);
|
|
54
54
|
console.log(`๐ก Target TV IP : ${tvIp}`);
|
|
55
55
|
console.log(`๐ฆ Package Name : ${pkg}`);
|
|
56
56
|
console.log(`๐ ADB Binary : ${adbBin}`);
|
|
57
|
-
console.log(`๐ฆ Mode : ๐ Static Mode
|
|
58
|
-
console.log(`๐
|
|
57
|
+
console.log(`๐ฆ Mode : ๐ Static Mode`);
|
|
58
|
+
console.log(`๐ Project : ${androidProjectPath}`);
|
|
59
59
|
console.log(`-----------------------------------------`);
|
|
60
60
|
try {
|
|
61
|
-
|
|
62
|
-
if (!fs_1.default.existsSync(
|
|
63
|
-
console.error(`\nโ ๊ฒฝ๋ก ์ค๋ฅ:
|
|
61
|
+
// assets ๋ณต์ฌ
|
|
62
|
+
if (!fs_1.default.existsSync(path_1.default.dirname(assetsPath))) {
|
|
63
|
+
console.error(`\nโ ๊ฒฝ๋ก ์ค๋ฅ: Android ํ๋ก์ ํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. (${androidProjectPath})`);
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
if (fs_1.default.existsSync(
|
|
67
|
-
(0, child_process_1.execSync)(`rm -rf "${
|
|
66
|
+
if (fs_1.default.existsSync(assetsPath)) {
|
|
67
|
+
(0, child_process_1.execSync)(`rm -rf "${assetsPath}"/*`);
|
|
68
68
|
}
|
|
69
69
|
else {
|
|
70
|
-
(0, child_process_1.execSync)(`mkdir -p "${
|
|
70
|
+
(0, child_process_1.execSync)(`mkdir -p "${assetsPath}"`);
|
|
71
71
|
}
|
|
72
|
-
(0, child_process_1.execSync)(`cp -r "${distPath}"/* "${
|
|
72
|
+
(0, child_process_1.execSync)(`cp -r "${distPath}"/* "${assetsPath}"`);
|
|
73
73
|
console.log(`โ
Asset copy complete.`);
|
|
74
|
+
// APK ๋น๋
|
|
75
|
+
console.log(`\n๐จ Building APK...`);
|
|
76
|
+
(0, child_process_1.execSync)(`./gradlew ${moduleName}:assembleDebug`, {
|
|
77
|
+
cwd: androidProjectPath,
|
|
78
|
+
stdio: 'inherit',
|
|
79
|
+
});
|
|
80
|
+
// APK ์ค์น
|
|
81
|
+
console.log(`\n๐ฒ Installing APK...`);
|
|
82
|
+
(0, child_process_1.execSync)(`${adbBin} -s ${tvIp}:5555 install -r "${apkPath}"`, {
|
|
83
|
+
stdio: 'inherit',
|
|
84
|
+
});
|
|
85
|
+
console.log(`โ
APK install complete.`);
|
|
74
86
|
}
|
|
75
87
|
catch (err) {
|
|
76
|
-
console.error(`\nโ
|
|
88
|
+
console.error(`\nโ Static Mode ์คํจ: ${err.message}`);
|
|
77
89
|
return;
|
|
78
90
|
}
|
|
79
91
|
}
|
package/dist/platforms/tizen.js
CHANGED
|
@@ -21,7 +21,7 @@ const ip_1 = require("../utils/ip");
|
|
|
21
21
|
const platform_1 = require("../utils/platform");
|
|
22
22
|
function runTizen() {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
var _a, _b, _c;
|
|
24
|
+
var _a, _b, _c, _d, _e;
|
|
25
25
|
const config = (0, config_1.loadConfig)();
|
|
26
26
|
const args = process.argv.slice(2);
|
|
27
27
|
const getArg = (0, platform_1.makeArgParser)(args);
|
|
@@ -32,8 +32,10 @@ function runTizen() {
|
|
|
32
32
|
}
|
|
33
33
|
const targetArg = getArg('target');
|
|
34
34
|
const isLiveMode = !targetArg;
|
|
35
|
+
const port = getArg('port') || ((_b = config.tizen) === null || _b === void 0 ? void 0 : _b.port) || ((_c = config.common) === null || _c === void 0 ? void 0 : _c.devServerPort) || 3000;
|
|
35
36
|
const appUrl = getArg('url') ||
|
|
36
|
-
|
|
37
|
+
((_d = config.tizen) === null || _d === void 0 ? void 0 : _d.url) ||
|
|
38
|
+
`http://${(0, ip_1.getLocalIp)()}:${port}`;
|
|
37
39
|
const tempAppDir = path_1.default.resolve(process.cwd(), '.ctv-run-tizen');
|
|
38
40
|
if (fs_extra_1.default.existsSync(tempAppDir))
|
|
39
41
|
fs_extra_1.default.removeSync(tempAppDir);
|
|
@@ -66,7 +68,7 @@ function runTizen() {
|
|
|
66
68
|
xmlInfo = getInfoFromXml(process.cwd());
|
|
67
69
|
const appId = getArg('appId') ||
|
|
68
70
|
(xmlInfo === null || xmlInfo === void 0 ? void 0 : xmlInfo.appId) ||
|
|
69
|
-
((
|
|
71
|
+
((_e = config.tizen) === null || _e === void 0 ? void 0 : _e.appId) ||
|
|
70
72
|
'A123456789.CtvRunApp';
|
|
71
73
|
const safeAppName = ((xmlInfo === null || xmlInfo === void 0 ? void 0 : xmlInfo.appName) || 'CtvRunApp').replace(/\s+/g, '');
|
|
72
74
|
// config.xml ์์ผ๋ฉด ์์ฑ
|
package/dist/platforms/webos.js
CHANGED
|
@@ -21,7 +21,7 @@ const ip_1 = require("../utils/ip");
|
|
|
21
21
|
const platform_1 = require("../utils/platform");
|
|
22
22
|
function runWebOS() {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
var _a, _b, _c;
|
|
24
|
+
var _a, _b, _c, _d, _e;
|
|
25
25
|
const config = (0, config_1.loadConfig)();
|
|
26
26
|
const args = process.argv.slice(2);
|
|
27
27
|
const getArg = (0, platform_1.makeArgParser)(args);
|
|
@@ -29,8 +29,10 @@ function runWebOS() {
|
|
|
29
29
|
const deviceName = getArg('device') || ((_a = config.webos) === null || _a === void 0 ? void 0 : _a.deviceName);
|
|
30
30
|
const appId = getArg('appId') || ((_b = config.webos) === null || _b === void 0 ? void 0 : _b.appId) || 'com.ctvrun.app';
|
|
31
31
|
const targetArg = getArg('target');
|
|
32
|
+
const port = getArg('port') || ((_c = config.webos) === null || _c === void 0 ? void 0 : _c.port) || ((_d = config.common) === null || _d === void 0 ? void 0 : _d.devServerPort) || 3000;
|
|
32
33
|
const appUrl = getArg('url') ||
|
|
33
|
-
|
|
34
|
+
((_e = config.webos) === null || _e === void 0 ? void 0 : _e.url) ||
|
|
35
|
+
`http://${(0, ip_1.getLocalIp)()}:${port}`;
|
|
34
36
|
// ๋ฑ๋ก๋ ๊ธฐ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ
|
|
35
37
|
if (!deviceName) {
|
|
36
38
|
console.log('\n๐บ ์ฐ๊ฒฐ๋ WebOS TV ์ ๋ณด๊ฐ ์์ต๋๋ค.');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zsukim/ctv-run",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Smart TV deployment CLI for Vizio, LG webOS, Fire TV, and Samsung Tizen",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ctv",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc",
|
|
29
29
|
"watch": "tsc -w",
|
|
30
|
-
"prepublishOnly": "tsc
|
|
30
|
+
"prepublishOnly": "tsc"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"fs-extra": "^11.3.4",
|