@24i/smartapps-bigscreen-rnv-build-engine 0.18.2-test.1 → 5.0.0-alpha.16
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/.eslintrc.vegaos.js +32 -0
- package/dist/src/__tests__/engine.spec.js +2 -0
- package/dist/src/__tests__/resolvers/resolveBaseUrl.spec.js +19 -14
- package/dist/src/__tests__/resolvers/resolveBuildFileName.spec.js +1 -0
- package/dist/src/__tests__/resolvers/resolveBuildVersion.spec.js +21 -7
- package/dist/src/__tests__/resolvers/resolveDeployLocations.spec.js +3 -0
- package/dist/src/__tests__/resolvers/resolveZippedPlatformBuildsRelativeFilePath.spec.js +1 -1
- package/dist/src/__tests__/utils/zipBuildsByPlatforms.spec.js +7 -0
- package/dist/src/resolvers/shared/constructFullUrl.js +1 -1
- package/dist/src/scripts/release/productionPackages/notifySlack.js +11 -13
- package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +10 -3
- package/dist/src/sdks/sdk-tizen/sdkTizen.js +1 -1
- package/dist/src/sdks/sdk-vegaos/sdkVegaOS.js +25 -7
- package/dist/src/tasks/task.rnv.hooks.run.js +1 -24
- package/dist/src/tasks/task.rnv.project.configure.js +4 -1
- package/dist/src/utils/copyEnvironmentFolder.js +2 -2
- package/dist/src/utils/forEachSupportedPlatformFlavour.js +14 -7
- package/dist/src/utils/getSafeSchemeString.js +1 -3
- package/dist/src/utils/zipBuildsByPlatforms.js +3 -3
- package/dist/src/utils/zipStagingProdBuildsByPlatforms.js +17 -16
- package/dist/templates/platforms/_shared/template.js +2 -1
- package/dist/templates/platforms/_shared/webpack.base.js +12 -0
- package/dist/templates/platforms/androidtv/project/app/build.gradle +3 -1
- package/dist/templates/platforms/androidtv/project/app/src/main/kotlin/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +1 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/kotlin/com/twentyfouri/tvbridge/global/utils/PlayerFactoryBitmovinCustomized.kt +3 -1
- package/dist/templates/platforms/androidtv/project/app/src/main/kotlin/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +1 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/kotlin/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +11 -0
- package/dist/templates/platforms/vegaos/project/manifest.toml +14 -0
- package/dist/templates/platforms/vegaos/project/package-lock.json +5838 -608
- package/dist/templates/platforms/vegaos/project/package.json +2 -0
- package/dist/templates/platforms/vegaos/project/src/App.tsx +5 -4
- package/dist/templates/platforms/vegaos/project/src/deviceApi/adInfo.ts +16 -0
- package/dist/templates/platforms/vegaos/project/src/deviceApi/index.ts +3 -0
- package/dist/templates/platforms/vegaos/project/src/deviceApi/purchase.ts +47 -0
- package/dist/templates/platforms/vegaos/project/src/inject.ts +13 -2
- package/dist/templates/platforms/vegaos/project/src/messageHandler.ts +24 -7
- package/fixDependency.js +53 -11
- package/index.js +103 -0
- package/jest.config.js +3 -0
- package/package.json +92 -90
- /package/dist/templates/platforms/vegaos/project/src/{deviceInfo.ts → deviceApi/deviceInfo.ts} +0 -0
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"release": "npm-run-all lint test build:app"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
+
"@amazon-devices/kepler-adid-retriever": "^1.0.14",
|
|
23
|
+
"@amazon-devices/keplerscript-appstore-iap-lib": "^2.12.13",
|
|
22
24
|
"@amazon-devices/react-native-device-info": "^2.0.1758683737",
|
|
23
25
|
"@amazon-devices/react-native-kepler": "^2.0.0",
|
|
24
26
|
"@amazon-devices/react-native-localize": "^2.0.1758683737",
|
|
@@ -2,8 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import { useRef, useState, useEffect } from 'react';
|
|
3
3
|
import { View, StyleSheet } from 'react-native';
|
|
4
4
|
import { WebView } from '@amazon-devices/webview';
|
|
5
|
-
import {
|
|
6
|
-
import { DeviceInfo, getDeviceInfo } from './deviceInfo';
|
|
5
|
+
import { createMessageHandler } from './messageHandler';
|
|
6
|
+
import { DeviceInfo, getDeviceInfo } from './deviceApi/deviceInfo';
|
|
7
|
+
import { getAdInfo } from './deviceApi';
|
|
7
8
|
import { getVegaOSBridge } from './inject';
|
|
8
9
|
import { WebViewMethods } from '@amazon-devices/webview/dist/types/WebViewTypes';
|
|
9
10
|
|
|
@@ -35,7 +36,7 @@ export const App = () => {
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
const handleLoad = () => {
|
|
38
|
-
webRef.current?.injectJavaScript(getVegaOSBridge(deviceInfo));
|
|
39
|
+
webRef.current?.injectJavaScript(getVegaOSBridge(deviceInfo, getAdInfo()));
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
return (
|
|
@@ -52,7 +53,7 @@ export const App = () => {
|
|
|
52
53
|
mediaPlaybackRequiresUserAction={false}
|
|
53
54
|
mixedContentMode="always"
|
|
54
55
|
onLoad={handleLoad}
|
|
55
|
-
onMessage={
|
|
56
|
+
onMessage={createMessageHandler(webRef)}
|
|
56
57
|
/>
|
|
57
58
|
</View>
|
|
58
59
|
);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AdIdRetriever } from '@amazon-devices/kepler-adid-retriever';
|
|
2
|
+
|
|
3
|
+
export type AdInfo = {
|
|
4
|
+
adId: string;
|
|
5
|
+
latEnabled: boolean;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const getAdInfo = (): AdInfo => {
|
|
9
|
+
try {
|
|
10
|
+
const adId = AdIdRetriever.fetchAdvertisingId();
|
|
11
|
+
const latEnabled = !AdIdRetriever.isAdvertisingTrackingEnabled();
|
|
12
|
+
return { adId, latEnabled };
|
|
13
|
+
} catch {
|
|
14
|
+
return { adId: '', latEnabled: true };
|
|
15
|
+
}
|
|
16
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import { WebViewMethods } from '@amazon-devices/webview/dist/types/WebViewTypes';
|
|
3
|
+
import {
|
|
4
|
+
FulfillmentResult,
|
|
5
|
+
PurchaseResponseCode,
|
|
6
|
+
PurchasingService,
|
|
7
|
+
} from '@amazon-devices/keplerscript-appstore-iap-lib';
|
|
8
|
+
|
|
9
|
+
type WebViewRef = RefObject<WebViewMethods | null>;
|
|
10
|
+
|
|
11
|
+
const dispatchEvent = (webRef: WebViewRef, eventName: string, detail: object) => {
|
|
12
|
+
const detailString = JSON.stringify(detail);
|
|
13
|
+
webRef.current?.injectJavaScript(`
|
|
14
|
+
document.dispatchEvent(new CustomEvent('${eventName}', { detail: ${detailString} }));
|
|
15
|
+
true;
|
|
16
|
+
`);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const handlePurchase = async (webRef: WebViewRef, sku: string) => {
|
|
20
|
+
try {
|
|
21
|
+
const response = await PurchasingService.purchase({ sku });
|
|
22
|
+
if (response.responseCode === PurchaseResponseCode.SUCCESSFUL) {
|
|
23
|
+
dispatchEvent(webRef, 'iapSuccess', {
|
|
24
|
+
userId: response.userData.userId,
|
|
25
|
+
receipt: JSON.stringify(response.receipt),
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
dispatchEvent(webRef, 'iapError', {
|
|
29
|
+
message: `Purchase failed with response code: ${response.responseCode}`,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
} catch (error) {
|
|
33
|
+
const message = error instanceof Error ? error.message : 'Purchase failed with unknown error';
|
|
34
|
+
dispatchEvent(webRef, 'iapError', { message });
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const handleNotifyFulfillment = async (receiptId: string) => {
|
|
39
|
+
try {
|
|
40
|
+
await PurchasingService.notifyFulfillment({
|
|
41
|
+
receiptId,
|
|
42
|
+
fulfillmentResult: FulfillmentResult.FULFILLED,
|
|
43
|
+
});
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error('[VegaOS] Failed to notify fulfillment', error);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
import { DeviceInfo } from './
|
|
1
|
+
import { AdInfo, DeviceInfo } from './deviceApi';
|
|
2
2
|
|
|
3
|
-
export const getVegaOSBridge = (deviceInfo: DeviceInfo) => {
|
|
3
|
+
export const getVegaOSBridge = (deviceInfo: DeviceInfo, adInfo: AdInfo) => {
|
|
4
4
|
const deviceInfoString = JSON.stringify(deviceInfo);
|
|
5
|
+
const adInfoString = JSON.stringify(adInfo);
|
|
5
6
|
return `
|
|
6
7
|
window.VegaOSBridge = {
|
|
7
8
|
deviceInfo: ${deviceInfoString},
|
|
9
|
+
adInfo: ${adInfoString},
|
|
8
10
|
getDeviceInfo: function() {
|
|
9
11
|
return window.VegaOSBridge.deviceInfo;
|
|
10
12
|
},
|
|
13
|
+
getAdInfo: function() {
|
|
14
|
+
return window.VegaOSBridge.adInfo;
|
|
15
|
+
},
|
|
11
16
|
exit: function() {
|
|
12
17
|
window.ReactNativeWebView.postMessage(JSON.stringify({ type: 'EXIT_APP' }));
|
|
18
|
+
},
|
|
19
|
+
purchase: function(sku) {
|
|
20
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: 'PURCHASE', sku: sku }));
|
|
21
|
+
},
|
|
22
|
+
notifyFulfillment: function(receiptId) {
|
|
23
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: 'NOTIFY_FULFILLMENT', receiptId: receiptId }));
|
|
13
24
|
}
|
|
14
25
|
};
|
|
15
26
|
true; // Přidání 'true;' na konec zabraňuje chybám, kdy WebView padá při vracení nedefinovaného objektu
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
WebViewMessageEvent,
|
|
4
|
+
WebViewMethods,
|
|
5
|
+
} from '@amazon-devices/webview/dist/types/WebViewTypes';
|
|
2
6
|
import { BackHandler } from 'react-native';
|
|
7
|
+
import { handlePurchase, handleNotifyFulfillment } from './deviceApi';
|
|
3
8
|
|
|
4
|
-
|
|
5
|
-
const message = JSON.parse(event.nativeEvent.data);
|
|
9
|
+
type WebViewRef = RefObject<WebViewMethods | null>;
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
export const createMessageHandler =
|
|
12
|
+
(webRef: WebViewRef) => (event: WebViewMessageEvent) => {
|
|
13
|
+
const message = JSON.parse(event.nativeEvent.data);
|
|
14
|
+
switch (message.type) {
|
|
15
|
+
case 'EXIT_APP':
|
|
16
|
+
BackHandler.exitApp();
|
|
17
|
+
break;
|
|
18
|
+
case 'PURCHASE':
|
|
19
|
+
handlePurchase(webRef, message.sku);
|
|
20
|
+
break;
|
|
21
|
+
case 'NOTIFY_FULFILLMENT':
|
|
22
|
+
handleNotifyFulfillment(message.receiptId);
|
|
23
|
+
break;
|
|
24
|
+
default:
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
};
|
package/fixDependency.js
CHANGED
|
@@ -1,19 +1,61 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
|
|
3
|
-
const fs = require('fs')
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
const packageDir = __dirname;
|
|
7
|
+
const packageJson = require('./package.json');
|
|
8
|
+
|
|
9
|
+
const addIfExists = (paths, targetPath) => {
|
|
10
|
+
if (targetPath && fs.existsSync(targetPath)) {
|
|
11
|
+
paths.add(targetPath);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const resolveNestedDependency = (packageName, nestedPackageName, paths) => {
|
|
16
|
+
try {
|
|
17
|
+
const packageJsonPath = require.resolve(`${packageName}/package.json`, { paths });
|
|
18
|
+
return path.join(path.dirname(packageJsonPath), 'node_modules', nestedPackageName);
|
|
19
|
+
} catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const collectDependencyPaths = (deleteDependencies = []) => {
|
|
25
|
+
const paths = new Set();
|
|
26
|
+
const monorepoRoot = path.resolve(packageDir, '..', '..', '..');
|
|
27
|
+
const smartappsSdkRoot = path.resolve(packageDir, '..', '..');
|
|
28
|
+
const baseDirs = [packageDir, smartappsSdkRoot, monorepoRoot, process.cwd()];
|
|
4
29
|
|
|
5
|
-
const main = async (deleteDependencies) => {
|
|
6
|
-
console.log("Fix dependencies")
|
|
7
|
-
if (deleteDependencies === undefined) return;
|
|
8
30
|
for (const dependency of deleteDependencies) {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
try {
|
|
12
|
-
await fs.rm(packageLockFilePath, { recursive: true, force: true });
|
|
13
|
-
} catch {
|
|
14
|
-
console.log("error")
|
|
31
|
+
for (const baseDir of baseDirs) {
|
|
32
|
+
addIfExists(paths, path.resolve(baseDir, dependency.path));
|
|
15
33
|
}
|
|
16
34
|
}
|
|
35
|
+
|
|
36
|
+
const resolvePaths = [packageDir, smartappsSdkRoot, monorepoRoot, process.cwd()];
|
|
37
|
+
addIfExists(paths, resolveNestedDependency('fstream', 'graceful-fs', resolvePaths));
|
|
38
|
+
addIfExists(paths, resolveNestedDependency('unzip2', 'graceful-fs', resolvePaths));
|
|
39
|
+
|
|
40
|
+
return paths;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const fixDependencies = () => {
|
|
44
|
+
const paths = collectDependencyPaths(packageJson.deleteDependencies);
|
|
45
|
+
|
|
46
|
+
if (!paths.size) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
console.log('Fix dependencies');
|
|
51
|
+
for (const dependencyPath of paths) {
|
|
52
|
+
console.log(dependencyPath);
|
|
53
|
+
fs.rmSync(dependencyPath, { recursive: true, force: true });
|
|
54
|
+
}
|
|
17
55
|
};
|
|
18
56
|
|
|
19
|
-
|
|
57
|
+
if (require.main === module) {
|
|
58
|
+
fixDependencies();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = fixDependencies;
|
package/index.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const { spawnSync } = require('child_process');
|
|
4
|
+
|
|
5
|
+
const packageDir = __dirname;
|
|
6
|
+
const distEntry = path.join(packageDir, 'dist', 'src', 'index.js');
|
|
7
|
+
const fixDependencies = require('./fixDependency');
|
|
8
|
+
|
|
9
|
+
const getLatestMtimeMs = (targetPath) => {
|
|
10
|
+
if (!fs.existsSync(targetPath)) {
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const stat = fs.statSync(targetPath);
|
|
15
|
+
if (!stat.isDirectory()) {
|
|
16
|
+
return stat.mtimeMs;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return fs.readdirSync(targetPath).reduce((latest, entry) => {
|
|
20
|
+
const entryPath = path.join(targetPath, entry);
|
|
21
|
+
return Math.max(latest, getLatestMtimeMs(entryPath));
|
|
22
|
+
}, stat.mtimeMs);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const shouldBuildDist = () => {
|
|
26
|
+
if (!fs.existsSync(distEntry)) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const sourceMtime = Math.max(
|
|
31
|
+
getLatestMtimeMs(path.join(packageDir, 'src')),
|
|
32
|
+
getLatestMtimeMs(path.join(packageDir, 'templates')),
|
|
33
|
+
getLatestMtimeMs(path.join(packageDir, 'tsconfig.json'))
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
return sourceMtime > fs.statSync(distEntry).mtimeMs;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const buildDist = () => {
|
|
40
|
+
const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
41
|
+
const result = spawnSync(npmCommand, ['run', 'build'], {
|
|
42
|
+
cwd: packageDir,
|
|
43
|
+
env: {
|
|
44
|
+
...process.env,
|
|
45
|
+
SMARTAPPS_RNV_BUILD_ENGINE_BOOTSTRAP: '1',
|
|
46
|
+
},
|
|
47
|
+
stdio: 'inherit',
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
if (result.error) {
|
|
51
|
+
throw result.error;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (result.status !== 0) {
|
|
55
|
+
throw new Error(`Failed to build ${path.relative(process.cwd(), packageDir)} before loading RNV engine`);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const ensureEsbuild = () => {
|
|
60
|
+
let esbuildDir;
|
|
61
|
+
try {
|
|
62
|
+
esbuildDir = path.dirname(require.resolve('esbuild/package.json', { paths: [packageDir, process.cwd()] }));
|
|
63
|
+
} catch {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const binPath = path.join(esbuildDir, 'bin', 'esbuild');
|
|
68
|
+
const validation = spawnSync(binPath, ['--version'], {
|
|
69
|
+
encoding: 'utf8',
|
|
70
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
if (validation.status === 0) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const result = spawnSync(process.execPath, [path.join(esbuildDir, 'install.js')], {
|
|
78
|
+
cwd: process.cwd(),
|
|
79
|
+
env: process.env,
|
|
80
|
+
stdio: 'inherit',
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
if (result.error) {
|
|
84
|
+
throw result.error;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (result.status !== 0) {
|
|
88
|
+
throw new Error('Failed to install esbuild native binary before loading RNV engine');
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
if (shouldBuildDist()) {
|
|
93
|
+
buildDist();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!fs.existsSync(distEntry)) {
|
|
97
|
+
throw new Error(`Missing compiled RNV build engine entry: ${distEntry}`);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
fixDependencies();
|
|
101
|
+
ensureEsbuild();
|
|
102
|
+
|
|
103
|
+
module.exports = require(distEntry);
|
package/jest.config.js
CHANGED
|
@@ -5,4 +5,7 @@ module.exports = {
|
|
|
5
5
|
'/node_modules/ansi-color/', // compiler error: Octal literal in strict mode
|
|
6
6
|
'/node_modules/fstream', // compiler error: Octal literal in strict mode
|
|
7
7
|
],
|
|
8
|
+
// build output contains compiled copies of the source tests and templates.
|
|
9
|
+
testPathIgnorePatterns: ['<rootDir>/dist/'],
|
|
10
|
+
modulePathIgnorePatterns: ['<rootDir>/dist/'],
|
|
8
11
|
};
|
package/package.json
CHANGED
|
@@ -1,92 +1,94 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
2
|
+
"name": "@24i/smartapps-bigscreen-rnv-build-engine",
|
|
3
|
+
"version": "5.0.0-alpha.16",
|
|
4
|
+
"description": "Package with build engine for SmartApps BIGscreen projects...",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build:clean": "rm -rf dist",
|
|
8
|
+
"build": "npm run build:clean && tsc && npm run copy:projects",
|
|
9
|
+
"copy:project:tizen": "mkdir -p dist/templates/platforms/tizen && cp -R templates/platforms/tizen/project dist/templates/platforms/tizen/",
|
|
10
|
+
"copy:project:webos": "mkdir -p dist/templates/platforms/webos && cp -R templates/platforms/webos/project dist/templates/platforms/webos/",
|
|
11
|
+
"copy:project:androidtv": "mkdir -p dist/templates/platforms/androidtv && cp -R templates/platforms/androidtv/project dist/templates/platforms/androidtv/",
|
|
12
|
+
"copy:project:vegaos": "mkdir -p dist/templates/platforms/vegaos && cp -R templates/platforms/vegaos/project dist/templates/platforms/vegaos/",
|
|
13
|
+
"copy:projects": "npm run copy:project:tizen && npm run copy:project:webos && npm run copy:project:androidtv && npm run copy:project:vegaos",
|
|
14
|
+
"eslint": "eslint \"./src/**/*.{js,jsx,ts,tsx}\" \"./templates/**/*.{js,jsx,ts,tsx}\"",
|
|
15
|
+
"eslint:vegaos": "eslint --no-eslintrc --no-ignore --config .eslintrc.vegaos.js \"./templates/platforms/vegaos/project/**/*.{js,jsx,ts,tsx}\"",
|
|
16
|
+
"stylelint": "stylelint \"./src/**/*.scss\" --aei --rd --risd --rdd",
|
|
17
|
+
"lintcheck": "npm run eslint && npm run eslint:vegaos && npm run stylelint",
|
|
18
|
+
"typecheck": "tsc --noEmit",
|
|
19
|
+
"lintcheck:cached": "npm run eslint -- --cache && npm run eslint:vegaos -- --cache && npm run stylelint -- --cache",
|
|
20
|
+
"typecheck:cached": "tsc --noEmit --incremental",
|
|
21
|
+
"test": "jest",
|
|
22
|
+
"postinstall": "node fixDependency.js"
|
|
23
|
+
},
|
|
24
|
+
"deleteDependencies": [
|
|
25
|
+
{
|
|
26
|
+
"path": "../../unzip2/node_modules/graceful-fs/",
|
|
27
|
+
"version": "^4.2.8"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"path": "./node_modules/fstream/node_modules/graceful-fs/",
|
|
31
|
+
"version": "^4.2.8"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"path": "../../fstream/node_modules/graceful-fs/",
|
|
35
|
+
"version": "^4.2.8"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"fs-extra": "11.1.1",
|
|
40
|
+
"xml2js": "^0.4.23"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/fs-extra": "11.0.1",
|
|
44
|
+
"@types/inquirer": "8.2.1",
|
|
45
|
+
"@types/ip": "1.1.0",
|
|
46
|
+
"@types/mini-css-extract-plugin": "1.4.3",
|
|
47
|
+
"@types/node": "18.0.3",
|
|
48
|
+
"@types/semver": "7.3.10",
|
|
49
|
+
"@types/ssh2": "1.11.4",
|
|
50
|
+
"@types/tapable": "2.2.2",
|
|
51
|
+
"@types/webpack": "5.28.0",
|
|
52
|
+
"@types/xml2js": "0.4.11",
|
|
53
|
+
"nock": "13.2.8",
|
|
54
|
+
"svgo": "1.3.2"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"@24i/smartapps-bigscreen-device": "*",
|
|
58
|
+
"@rnv/sdk-webpack": "0.35.3",
|
|
59
|
+
"assign-deep": "1.0.1",
|
|
60
|
+
"core-js": "3.36.1",
|
|
61
|
+
"coveralls": "3.1.1",
|
|
62
|
+
"css-hot-loader": "1.4.4",
|
|
63
|
+
"css-loader": "5.2.7",
|
|
64
|
+
"filemanager-webpack-plugin": "6.1.7",
|
|
65
|
+
"fork-ts-checker-webpack-plugin": "7.2.11",
|
|
66
|
+
"glob": "8.0.1",
|
|
67
|
+
"html-webpack-harddisk-plugin": "2.0.0",
|
|
68
|
+
"html-webpack-plugin": "5.5.0",
|
|
69
|
+
"ip": "1.1.5",
|
|
70
|
+
"manifoldjs-windows10": "0.1.8",
|
|
71
|
+
"mini-css-extract-plugin": "2.6.0",
|
|
72
|
+
"node-ssh": "12.0.4",
|
|
73
|
+
"ora": "5.4.1",
|
|
74
|
+
"raf": "3.4.1",
|
|
75
|
+
"regenerator-runtime": "0.13.9",
|
|
76
|
+
"renative-template-blank": "0.35.3",
|
|
77
|
+
"rnv": "0.35.3",
|
|
78
|
+
"sass": "^1.77.4",
|
|
79
|
+
"sass-loader": "12.6.0",
|
|
80
|
+
"source-map-loader": "3.0.1",
|
|
81
|
+
"svgo": "1.3.2",
|
|
82
|
+
"ts-loader": "9.3.0",
|
|
83
|
+
"webpack": "5.72.0",
|
|
84
|
+
"webpack-cli": "4.10.0",
|
|
85
|
+
"webpack-dev-server": "4.9.0",
|
|
86
|
+
"webpack-spritesmith": "1.1.0"
|
|
87
|
+
},
|
|
88
|
+
"keywords": [],
|
|
89
|
+
"author": "24i",
|
|
90
|
+
"license": "ISC",
|
|
91
|
+
"publishConfig": {
|
|
92
|
+
"access": "public"
|
|
93
|
+
}
|
|
92
94
|
}
|
/package/dist/templates/platforms/vegaos/project/src/{deviceInfo.ts → deviceApi/deviceInfo.ts}
RENAMED
|
File without changes
|