@24i/smartapps-bigscreen-rnv-build-engine 0.10.1-alpha.1519 → 0.10.1-alpha.1530
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/.eslintcache +1 -0
- package/dist/src/__tests__/engine.spec.js +57 -0
- package/dist/src/__tests__/utils/forEachSupportedPlatformFlavour.spec.js +104 -0
- package/dist/src/__tests__/utils/generateSvgSpriteMap.spec.js +85 -0
- package/dist/src/__tests__/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.spec.js +116 -0
- package/dist/src/__tests__/utils/replaceRelevantStringsInConfig/replaceTemplateString.spec.js +66 -0
- package/dist/src/__tests__/utils/zipBuildsByPlatforms.spec.js +69 -0
- package/dist/src/engine.js +1 -2
- package/dist/src/resolvers/resolveGenericRnvConfig.js +5 -2
- package/dist/src/utils/generateSvgSpriteMap.js +4 -2
- package/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +3 -5
- package/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +8 -30
- package/dist/src/utils/zipBuildsByPlatforms.js +8 -3
- package/dist/templates/platforms/_shared/webpack.base.js +23 -7
- package/dist/templates/platforms/entone/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/entone/webpack.config.prod.js +1 -1
- package/dist/templates/platforms/hbbtv/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/hbbtv/webpack.config.prod.js +1 -1
- package/dist/templates/platforms/kreatv/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/kreatv/webpack.config.prod.js +1 -1
- package/dist/templates/platforms/saphi/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/saphi/webpack.config.prod.js +1 -1
- package/dist/templates/platforms/tizen/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/tizen/webpack.config.prod.js +1 -1
- package/dist/templates/platforms/webos/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/webos/webpack.config.prod.js +1 -1
- package/dist/templates/platforms/webtv/webpack.config.dev.js +1 -1
- package/dist/templates/platforms/webtv/webpack.config.prod.js +1 -1
- package/package.json +5 -3
- package/dist/src/utils/mergeDeep.js +0 -23
package/.eslintcache
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/@24i/smartapps-bigscreen-icon/index.d.ts":"1","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/better-opn/index.d.ts":"2","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/filemanager-webpack-plugin/index.d.ts":"3","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/rnv/index.d.ts":"4","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBaseUrl.spec.ts":"5","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildFileExtension.spec.ts":"6","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildFileName.spec.ts":"7","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildVersion.spec.ts":"8","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildVersionOffset.spec.ts":"9","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveDeployLocations.spec.ts":"10","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveGenericRnvConfig.spec.ts":"11","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveHbbtvDeployConfig.spec.ts":"12","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveHbbtvDeployUrl.spec.ts":"13","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveHbbtvRemoteBuildDirRelativePath.spec.ts":"14","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveSupportedPlatforms.spec.ts":"15","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveUsedFlavours.spec.ts":"16","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveZippedPlatformBuildsRelativeFilePath.spec.ts":"17","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/registerSdkPath.spec.ts":"18","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/sdkInstaller.spec.ts":"19","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/clean.spec.ts":"20","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/download.spec.ts":"21","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/install.spec.ts":"22","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/unzip.spec.ts":"23","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/constants/buildSchemes.ts":"24","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/constants/index.ts":"25","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/constants/platforms.ts":"26","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/engine.ts":"27","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/index.ts":"28","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/index.ts":"29","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBaseUrl.ts":"30","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildFileExtension.ts":"31","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildFileName.ts":"32","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildVersion.ts":"33","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildVersionOffset.ts":"34","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveDeployLocations.ts":"35","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveGenericRnvConfig.ts":"36","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveHbbtvDeployConfig.ts":"37","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveHbbtvDeployUrl.ts":"38","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.ts":"39","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveSupportedPlatforms.ts":"40","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveUsedFlavours.ts":"41","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.ts":"42","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/buildAllWithScheme.ts":"43","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/formatTableDataSpaces.ts":"44","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/generateDeployUrls.ts":"45","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/index.ts":"46","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/makeTableDataByScheme.ts":"47","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/afterVersionBump.ts":"48","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/beforeVersionBump.ts":"49","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/checkReleaseNotes.ts":"50","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/pushRelease.ts":"51","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/pushReleaseCandidate.ts":"52","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/pushReleaseNotes.ts":"53","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/deleteSourceMaps.ts":"54","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/deployToAppCenter.ts":"55","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/githubRelease.ts":"56","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/generateWebhoook.ts":"57","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/makePayload.ts":"58","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/notifySlack.ts":"59","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/slackBlockKitBuilder.ts":"60","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/sentryRelease.ts":"61","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/urlsMarkdown.ts":"62","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/releaseAllWithScheme.ts":"63","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/cmdUtils.ts":"64","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/fsUtils.ts":"65","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/gitUtils.ts":"66","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/index.ts":"67","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/stringUtils.ts":"68","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/index.ts":"69","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-tizen/index.ts":"70","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-tizen/sdkTizen.ts":"71","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/index.ts":"72","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/registerSdkPath.ts":"73","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/index.ts":"74","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/sdkInstaller.ts":"75","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/clean.ts":"76","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/download.ts":"77","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/index.ts":"78","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/install.ts":"79","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/unzip.ts":"80","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webos/index.ts":"81","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webos/sdkWebos.ts":"82","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webpack/index.ts":"83","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webpack/sdkWebpack.ts":"84","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/deploy/aswS3/aws.ts":"85","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/deploy/aswS3/deployS3.ts":"86","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/deploy/hbbtv/deployHbbtv.ts":"87","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/engineTasks.ts":"88","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.build.ts":"89","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.configure.ts":"90","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.configureSoft.ts":"91","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.deploy.ts":"92","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.hooks.run.ts":"93","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.package.ts":"94","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.project.configure.ts":"95","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.start.ts":"96","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/types/c.ts":"97","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/types/constants.ts":"98","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/types/index.ts":"99","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/forEachSupportedPlatformFlavour.ts":"100","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/generateSvgSpriteMap.ts":"101","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/mergeDeep.ts":"102","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/replaceRelevantStringsInConfig/index.ts":"103","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.ts":"104","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.ts":"105","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/zipBuildsByPlatforms.ts":"106","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/_shared/template.ts":"107","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/_shared/webpack.base.ts":"108","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/entone/webpack.config.dev.ts":"109","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/entone/webpack.config.prod.ts":"110","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/hbbtv/webpack.config.dev.ts":"111","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/hbbtv/webpack.config.prod.ts":"112","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/saphi/webpack.config.dev.ts":"113","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/saphi/webpack.config.prod.ts":"114","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/tizen/webpack.config.dev.ts":"115","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/tizen/webpack.config.prod.ts":"116","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webos/webpack.config.dev.ts":"117","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webos/webpack.config.prod.ts":"118","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webtv/webpack.config.dev.ts":"119","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webtv/webpack.config.prod.ts":"120","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/kreatv/webpack.config.dev.ts":"121","/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/kreatv/webpack.config.prod.ts":"122"},{"size":75,"mtime":1627904435043,"results":"123","hashOfConfig":"124"},{"size":29,"mtime":1627904435043,"results":"125","hashOfConfig":"124"},{"size":45,"mtime":1627904435043,"results":"126","hashOfConfig":"124"},{"size":8681,"mtime":1627904435043,"results":"127","hashOfConfig":"124"},{"size":4791,"mtime":1633521871415,"results":"128","hashOfConfig":"124"},{"size":1065,"mtime":1633521871415,"results":"129","hashOfConfig":"124"},{"size":5232,"mtime":1633521871415,"results":"130","hashOfConfig":"124"},{"size":3731,"mtime":1633521871415,"results":"131","hashOfConfig":"124"},{"size":4588,"mtime":1633521871416,"results":"132","hashOfConfig":"124"},{"size":3690,"mtime":1633521871416,"results":"133","hashOfConfig":"124"},{"size":3166,"mtime":1633521871416,"results":"134","hashOfConfig":"124"},{"size":1953,"mtime":1633521871417,"results":"135","hashOfConfig":"124"},{"size":2254,"mtime":1633521871417,"results":"136","hashOfConfig":"124"},{"size":3211,"mtime":1633521871417,"results":"137","hashOfConfig":"124"},{"size":877,"mtime":1633521871418,"results":"138","hashOfConfig":"124"},{"size":1380,"mtime":1633521871418,"results":"139","hashOfConfig":"124"},{"size":913,"mtime":1633521871418,"results":"140","hashOfConfig":"124"},{"size":2610,"mtime":1630330436500,"results":"141","hashOfConfig":"124"},{"size":4413,"mtime":1630934861294,"results":"142","hashOfConfig":"124"},{"size":1097,"mtime":1630330436500,"results":"143","hashOfConfig":"124"},{"size":4755,"mtime":1630934861294,"results":"144","hashOfConfig":"124"},{"size":1518,"mtime":1630330436501,"results":"145","hashOfConfig":"124"},{"size":1109,"mtime":1630330436501,"results":"146","hashOfConfig":"124"},{"size":270,"mtime":1629665964550,"results":"147","hashOfConfig":"124"},{"size":88,"mtime":1627904435044,"results":"148","hashOfConfig":"124"},{"size":204,"mtime":1633521871419,"results":"149","hashOfConfig":"124"},{"size":3330,"mtime":1633521871420,"results":"150","hashOfConfig":"124"},{"size":204,"mtime":1630934861294,"results":"151","hashOfConfig":"124"},{"size":930,"mtime":1629665964550,"results":"152","hashOfConfig":"124"},{"size":1153,"mtime":1633521871420,"results":"153","hashOfConfig":"124"},{"size":360,"mtime":1629665964550,"results":"154","hashOfConfig":"124"},{"size":1318,"mtime":1633521871420,"results":"155","hashOfConfig":"124"},{"size":1560,"mtime":1629665964551,"results":"156","hashOfConfig":"124"},{"size":1341,"mtime":1627904435045,"results":"157","hashOfConfig":"124"},{"size":3341,"mtime":1633521871420,"results":"158","hashOfConfig":"124"},{"size":1172,"mtime":1633521871420,"results":"159","hashOfConfig":"124"},{"size":399,"mtime":1627904435046,"results":"160","hashOfConfig":"124"},{"size":646,"mtime":1633521871421,"results":"161","hashOfConfig":"124"},{"size":1021,"mtime":1633521871421,"results":"162","hashOfConfig":"124"},{"size":261,"mtime":1629665964551,"results":"163","hashOfConfig":"124"},{"size":1017,"mtime":1629665964552,"results":"164","hashOfConfig":"124"},{"size":740,"mtime":1633521871421,"results":"165","hashOfConfig":"124"},{"size":1115,"mtime":1629665964552,"results":"166","hashOfConfig":"124"},{"size":1177,"mtime":1629665964552,"results":"167","hashOfConfig":"124"},{"size":3117,"mtime":1630934861294,"results":"168","hashOfConfig":"124"},{"size":82,"mtime":1630934861295,"results":"169","hashOfConfig":"124"},{"size":2839,"mtime":1629665964552,"results":"170","hashOfConfig":"124"},{"size":951,"mtime":1627904435047,"results":"171","hashOfConfig":"124"},{"size":386,"mtime":1628192669562,"results":"172","hashOfConfig":"124"},{"size":660,"mtime":1628192669562,"results":"173","hashOfConfig":"124"},{"size":1335,"mtime":1628192669563,"results":"174","hashOfConfig":"124"},{"size":381,"mtime":1627904435048,"results":"175","hashOfConfig":"124"},{"size":1577,"mtime":1628192669563,"results":"176","hashOfConfig":"124"},{"size":408,"mtime":1627904435048,"results":"177","hashOfConfig":"124"},{"size":2827,"mtime":1629665964552,"results":"178","hashOfConfig":"124"},{"size":4977,"mtime":1629665964553,"results":"179","hashOfConfig":"124"},{"size":1820,"mtime":1628864961979,"results":"180","hashOfConfig":"124"},{"size":3714,"mtime":1629665964553,"results":"181","hashOfConfig":"124"},{"size":1097,"mtime":1629665964553,"results":"182","hashOfConfig":"124"},{"size":923,"mtime":1627904435049,"results":"183","hashOfConfig":"124"},{"size":2885,"mtime":1629665964553,"results":"184","hashOfConfig":"124"},{"size":3003,"mtime":1633521871422,"results":"185","hashOfConfig":"124"},{"size":2963,"mtime":1629665964554,"results":"186","hashOfConfig":"124"},{"size":492,"mtime":1627904435050,"results":"187","hashOfConfig":"124"},{"size":480,"mtime":1629665964554,"results":"188","hashOfConfig":"124"},{"size":3289,"mtime":1628192669565,"results":"189","hashOfConfig":"124"},{"size":164,"mtime":1627904435051,"results":"190","hashOfConfig":"124"},{"size":96,"mtime":1627904435051,"results":"191","hashOfConfig":"124"},{"size":561,"mtime":1627904435051,"results":"192","hashOfConfig":"124"},{"size":28,"mtime":1630934861295,"results":"193","hashOfConfig":"124"},{"size":10124,"mtime":1630934861295,"results":"194","hashOfConfig":"124"},{"size":68,"mtime":1630330436501,"results":"195","hashOfConfig":"124"},{"size":489,"mtime":1630330436501,"results":"196","hashOfConfig":"124"},{"size":47,"mtime":1630330436501,"results":"197","hashOfConfig":"124"},{"size":1542,"mtime":1630934861295,"results":"198","hashOfConfig":"124"},{"size":268,"mtime":1630330436502,"results":"199","hashOfConfig":"124"},{"size":1978,"mtime":1630330436502,"results":"200","hashOfConfig":"124"},{"size":142,"mtime":1630330436502,"results":"201","hashOfConfig":"124"},{"size":1089,"mtime":1630330436502,"results":"202","hashOfConfig":"124"},{"size":407,"mtime":1630330436502,"results":"203","hashOfConfig":"124"},{"size":28,"mtime":1630934861295,"results":"204","hashOfConfig":"124"},{"size":5332,"mtime":1631721998506,"results":"205","hashOfConfig":"124"},{"size":30,"mtime":1630934861296,"results":"206","hashOfConfig":"124"},{"size":968,"mtime":1630934861296,"results":"207","hashOfConfig":"124"},{"size":607,"mtime":1629665964554,"results":"208","hashOfConfig":"124"},{"size":2189,"mtime":1629665964554,"results":"209","hashOfConfig":"124"},{"size":3989,"mtime":1633521871422,"results":"210","hashOfConfig":"124"},{"size":783,"mtime":1627904435054,"results":"211","hashOfConfig":"124"},{"size":3022,"mtime":1633521871423,"results":"212","hashOfConfig":"124"},{"size":1640,"mtime":1633521871424,"results":"213","hashOfConfig":"124"},{"size":1320,"mtime":1627904435055,"results":"214","hashOfConfig":"124"},{"size":1396,"mtime":1633521871425,"results":"215","hashOfConfig":"124"},{"size":1931,"mtime":1627904435055,"results":"216","hashOfConfig":"124"},{"size":1045,"mtime":1627904435056,"results":"217","hashOfConfig":"124"},{"size":5206,"mtime":1627904435056,"results":"218","hashOfConfig":"124"},{"size":2153,"mtime":1633521871425,"results":"219","hashOfConfig":"124"},{"size":9437,"mtime":1633521871425,"results":"220","hashOfConfig":"124"},{"size":255,"mtime":1629665964555,"results":"221","hashOfConfig":"124"},{"size":2955,"mtime":1629665964555,"results":"222","hashOfConfig":"124"},{"size":1419,"mtime":1629665964555,"results":"223","hashOfConfig":"124"},{"size":3896,"mtime":1631721998509,"results":"224","hashOfConfig":"124"},{"size":681,"mtime":1629665964555,"results":"225","hashOfConfig":"124"},{"size":83,"mtime":1627904435057,"results":"226","hashOfConfig":"124"},{"size":1168,"mtime":1627904435057,"results":"227","hashOfConfig":"124"},{"size":2593,"mtime":1627904435058,"results":"228","hashOfConfig":"124"},{"size":1963,"mtime":1629665964556,"results":"229","hashOfConfig":"124"},{"size":3219,"mtime":1627904435058,"results":"230","hashOfConfig":"124"},{"size":10576,"mtime":1631721998532,"results":"231","hashOfConfig":"124"},{"size":1461,"mtime":1627904435059,"results":"232","hashOfConfig":"124"},{"size":1327,"mtime":1627904435059,"results":"233","hashOfConfig":"124"},{"size":2659,"mtime":1627904435059,"results":"234","hashOfConfig":"124"},{"size":2525,"mtime":1627904435060,"results":"235","hashOfConfig":"124"},{"size":1461,"mtime":1627904435060,"results":"236","hashOfConfig":"124"},{"size":1327,"mtime":1627904435060,"results":"237","hashOfConfig":"124"},{"size":1488,"mtime":1627904435061,"results":"238","hashOfConfig":"124"},{"size":1327,"mtime":1627904435061,"results":"239","hashOfConfig":"124"},{"size":1552,"mtime":1627904435064,"results":"240","hashOfConfig":"124"},{"size":1364,"mtime":1627904435064,"results":"241","hashOfConfig":"124"},{"size":1461,"mtime":1627904435064,"results":"242","hashOfConfig":"124"},{"size":1327,"mtime":1627904435064,"results":"243","hashOfConfig":"124"},{"size":1461,"mtime":1633521871426,"results":"244","hashOfConfig":"124"},{"size":1327,"mtime":1633521871426,"results":"245","hashOfConfig":"124"},{"filePath":"246","messages":"247","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ov9brn",{"filePath":"248","messages":"249","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"250","messages":"251","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"252","messages":"253","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"254","messages":"255","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"256","messages":"257","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"258","messages":"259","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"260","messages":"261","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"262","messages":"263","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"264","messages":"265","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"266","messages":"267","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"268","messages":"269","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"270","messages":"271","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"272","messages":"273","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"274","messages":"275","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"276","messages":"277","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"278","messages":"279","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"280","messages":"281","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"282","messages":"283","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"284","messages":"285","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"286","messages":"287","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"288","messages":"289","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"290","messages":"291","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"292","messages":"293","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"294","messages":"295","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"296","messages":"297","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"298","messages":"299","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"300","messages":"301","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"302","messages":"303","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"304","messages":"305","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"306","messages":"307","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"308","messages":"309","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"310","messages":"311","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"312","messages":"313","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"314","messages":"315","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"316","messages":"317","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"318","messages":"319","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"320","messages":"321","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"322","messages":"323","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"324","messages":"325","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"326","messages":"327","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"328","messages":"329","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"330","messages":"331","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"332","messages":"333","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"334","messages":"335","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"336","messages":"337","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"338","messages":"339","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"340","messages":"341","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"342","messages":"343","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"344","messages":"345","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"346","messages":"347","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"348","messages":"349","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"350","messages":"351","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"352","messages":"353","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"354","messages":"355","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"356","messages":"357","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"358","messages":"359","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"360","messages":"361","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"362","messages":"363","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"364","messages":"365","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"366","messages":"367","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"368","messages":"369","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"370","messages":"371","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"372","messages":"373","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"374","messages":"375","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"376","messages":"377","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"378","messages":"379","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"380","messages":"381","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"382","messages":"383","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"384","messages":"385","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"386","messages":"387","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"388","messages":"389","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"390","messages":"391","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"392","messages":"393","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"394","messages":"395","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"396","messages":"397","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"398","messages":"399","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"400","messages":"401","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"402","messages":"403","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"404","messages":"405","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"406","messages":"407","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"408","messages":"409","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"410","messages":"411","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"412","messages":"413","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"414","messages":"415","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"416","messages":"417","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"418","messages":"419","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"420","messages":"421","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"422","messages":"423","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"424","messages":"425","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"426","messages":"427","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"428","messages":"429","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"430","messages":"431","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"432","messages":"433","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"434","messages":"435","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"436","messages":"437","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"438","messages":"439","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"440","messages":"441","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"442","messages":"443","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"444","messages":"445","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"446","messages":"447","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"448","messages":"449","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"450","messages":"451","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"452","messages":"453","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"454","messages":"455","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"456","messages":"457","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"458","messages":"459","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"460","messages":"461","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"462","messages":"463","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"464","messages":"465","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"466","messages":"467","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"468","messages":"469","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"470","messages":"471","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"472","messages":"473","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"474","messages":"475","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"476","messages":"477","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"478","messages":"479","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"480","messages":"481","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"482","messages":"483","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"484","messages":"485","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"486","messages":"487","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"488","messages":"489","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/@24i/smartapps-bigscreen-icon/index.d.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/better-opn/index.d.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/filemanager-webpack-plugin/index.d.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/@types/rnv/index.d.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBaseUrl.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildFileExtension.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildFileName.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildVersion.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveBuildVersionOffset.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveDeployLocations.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveGenericRnvConfig.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveHbbtvDeployConfig.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveHbbtvDeployUrl.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveHbbtvRemoteBuildDirRelativePath.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveSupportedPlatforms.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveUsedFlavours.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/resolvers/resolveZippedPlatformBuildsRelativeFilePath.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/registerSdkPath.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/sdkInstaller.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/clean.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/download.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/install.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/__tests__/sdks/sdk-utils/sdk-installer/services/unzip.spec.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/constants/buildSchemes.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/constants/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/constants/platforms.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/engine.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBaseUrl.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildFileExtension.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildFileName.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildVersion.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveBuildVersionOffset.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveDeployLocations.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveGenericRnvConfig.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveHbbtvDeployConfig.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveHbbtvDeployUrl.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveSupportedPlatforms.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveUsedFlavours.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/buildAllWithScheme.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/formatTableDataSpaces.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/generateDeployUrls.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/generateDeployUrls/makeTableDataByScheme.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/afterVersionBump.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/beforeVersionBump.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/checkReleaseNotes.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/pushRelease.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/pushReleaseCandidate.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/gitReleaser/pushReleaseNotes.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/deleteSourceMaps.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/deployToAppCenter.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/githubRelease.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/generateWebhoook.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/makePayload.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/notifySlack.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/notifySlack/slackBlockKitBuilder.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/sentryRelease.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/release/urlsMarkdown.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/releaseAllWithScheme.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/cmdUtils.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/fsUtils.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/gitUtils.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/scripts/utils/stringUtils.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-tizen/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-tizen/sdkTizen.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/registerSdkPath.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/sdkInstaller.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/clean.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/download.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/install.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-utils/sdk-installer/services/unzip.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webos/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webos/sdkWebos.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webpack/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/sdks/sdk-webpack/sdkWebpack.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/deploy/aswS3/aws.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/deploy/aswS3/deployS3.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/deploy/hbbtv/deployHbbtv.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/engineTasks.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.build.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.configure.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.configureSoft.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.deploy.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.hooks.run.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.package.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.project.configure.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/tasks/task.rnv.start.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/types/c.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/types/constants.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/types/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/forEachSupportedPlatformFlavour.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/generateSvgSpriteMap.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/mergeDeep.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/replaceRelevantStringsInConfig/index.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/src/utils/zipBuildsByPlatforms.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/_shared/template.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/_shared/webpack.base.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/entone/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/entone/webpack.config.prod.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/hbbtv/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/hbbtv/webpack.config.prod.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/saphi/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/saphi/webpack.config.prod.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/tizen/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/tizen/webpack.config.prod.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webos/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webos/webpack.config.prod.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webtv/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/webtv/webpack.config.prod.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/kreatv/webpack.config.dev.ts",[],"/Users/martin/24i/smartapps-bigscreen-sdk/packages/rnv-build-engine/templates/platforms/kreatv/webpack.config.prod.ts",[]]
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const engine_1 = __importDefault(require("../engine"));
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
const engineTasks_1 = require("../tasks/engineTasks");
|
|
9
|
+
jest.mock('../../../renative.engine.json', () => ({ __esModule: true, id: 'engineID', plugins: {} }), { virtual: true });
|
|
10
|
+
describe('engine config', () => {
|
|
11
|
+
afterAll(() => {
|
|
12
|
+
jest.resetModules();
|
|
13
|
+
jest.resetAllMocks();
|
|
14
|
+
jest.clearAllMocks();
|
|
15
|
+
});
|
|
16
|
+
const configuredFileExtensions = ['js', 'jsx', 'ts', 'tsx', 'json'];
|
|
17
|
+
it('generates task', () => {
|
|
18
|
+
expect(Object.keys(engine_1.default.tasks)).toHaveLength(engineTasks_1.engineTaskList.length);
|
|
19
|
+
});
|
|
20
|
+
it('loads parses renative.engine.json file content into "config" property', () => {
|
|
21
|
+
expect(engine_1.default.config).toStrictEqual({
|
|
22
|
+
__esModule: true, id: 'engineID', plugins: {},
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
it('has defined "projectDirName"', () => {
|
|
26
|
+
expect(engine_1.default.projectDirName).toBeDefined();
|
|
27
|
+
});
|
|
28
|
+
it('has defined "serverDirName"', () => {
|
|
29
|
+
expect(engine_1.default.serverDirName).toBeDefined();
|
|
30
|
+
});
|
|
31
|
+
describe('platform properties', () => {
|
|
32
|
+
it('has defined platform specific file extensions for each platform', () => {
|
|
33
|
+
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
34
|
+
const { extenstions } = engine_1.default.platforms[platform];
|
|
35
|
+
expect(extenstions).toBeInstanceOf(Array);
|
|
36
|
+
const customExtensions = extenstions
|
|
37
|
+
.filter((extension) => !configuredFileExtensions.includes(extension));
|
|
38
|
+
expect(customExtensions.length)
|
|
39
|
+
.toBeGreaterThanOrEqual(configuredFileExtensions.length);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
it('has set isWebHosted property to true for each platform', () => {
|
|
43
|
+
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
44
|
+
expect(engine_1.default.platforms[platform].isWebHosted).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
it('has set defaultPort property for each platform', () => {
|
|
48
|
+
const minAllowedPortNumber = 1024;
|
|
49
|
+
const maxAllowedPortNumber = 49151;
|
|
50
|
+
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
51
|
+
const { defaultPort } = engine_1.default.platforms[platform];
|
|
52
|
+
expect(defaultPort).toBeGreaterThanOrEqual(minAllowedPortNumber);
|
|
53
|
+
expect(defaultPort).toBeLessThanOrEqual(maxAllowedPortNumber);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const forEachSupportedPlatformFlavour_1 = require("../../utils/forEachSupportedPlatformFlavour");
|
|
4
|
+
describe('forEachSupportedPlatformFlavour', () => {
|
|
5
|
+
const originalConsoleLog = console.log;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
console.log = jest.fn();
|
|
8
|
+
});
|
|
9
|
+
afterEach(() => {
|
|
10
|
+
console.log = originalConsoleLog;
|
|
11
|
+
jest.resetAllMocks();
|
|
12
|
+
jest.clearAllMocks();
|
|
13
|
+
jest.resetModules();
|
|
14
|
+
});
|
|
15
|
+
it('calls provided callback for each supported flavour', () => {
|
|
16
|
+
const rnvC = {
|
|
17
|
+
runtime: {
|
|
18
|
+
scheme: 'scheme1',
|
|
19
|
+
},
|
|
20
|
+
buildConfig: {
|
|
21
|
+
defaults: {
|
|
22
|
+
supportedPlatforms: [
|
|
23
|
+
'webtv',
|
|
24
|
+
'tizen',
|
|
25
|
+
'webos',
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
platforms: {
|
|
29
|
+
webtv: { deploy: { supportedFlavours: ['flavour1', 'flavour2'] } },
|
|
30
|
+
tizen: { deploy: { supportedFlavours: ['flavour2', 'flavour3'] } },
|
|
31
|
+
webos: { deploy: { supportedFlavours: ['flavour4'] } },
|
|
32
|
+
hbbtv: { deploy: { supportedFlavours: ['flavour1', 'flavour2'] } },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
const spyCb = jest.fn();
|
|
37
|
+
(0, forEachSupportedPlatformFlavour_1.forEachSupportedPlatformFlavour)(rnvC, spyCb);
|
|
38
|
+
expect(spyCb).toBeCalledTimes(5);
|
|
39
|
+
expect(spyCb.mock.calls[0][0]).toStrictEqual({
|
|
40
|
+
platform: 'webtv', flavour: 'flavour1', scheme: 'scheme1',
|
|
41
|
+
});
|
|
42
|
+
expect(spyCb.mock.calls[1][0]).toStrictEqual({
|
|
43
|
+
platform: 'webtv', flavour: 'flavour2', scheme: 'scheme1',
|
|
44
|
+
});
|
|
45
|
+
expect(spyCb.mock.calls[2][0]).toStrictEqual({
|
|
46
|
+
platform: 'tizen', flavour: 'flavour2', scheme: 'scheme1',
|
|
47
|
+
});
|
|
48
|
+
expect(spyCb.mock.calls[3][0]).toStrictEqual({
|
|
49
|
+
platform: 'tizen', flavour: 'flavour3', scheme: 'scheme1',
|
|
50
|
+
});
|
|
51
|
+
expect(spyCb.mock.calls[4][0]).toStrictEqual({
|
|
52
|
+
platform: 'webos', flavour: 'flavour4', scheme: 'scheme1',
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
it('logs progress message', () => {
|
|
56
|
+
const rnvC = {
|
|
57
|
+
runtime: {
|
|
58
|
+
scheme: 'scheme1',
|
|
59
|
+
},
|
|
60
|
+
buildConfig: {
|
|
61
|
+
defaults: {
|
|
62
|
+
supportedPlatforms: [
|
|
63
|
+
'tizen',
|
|
64
|
+
'webos',
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
platforms: {
|
|
68
|
+
tizen: { deploy: { supportedFlavours: ['flavour1', 'flavour2'] } },
|
|
69
|
+
webos: { deploy: { supportedFlavours: ['flavour1'] } },
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
const spyCb = jest.fn();
|
|
74
|
+
const mockedLog = console.log;
|
|
75
|
+
(0, forEachSupportedPlatformFlavour_1.forEachSupportedPlatformFlavour)(rnvC, spyCb);
|
|
76
|
+
expect(mockedLog).toBeCalledTimes(3);
|
|
77
|
+
expect(mockedLog.mock.calls[0][0]).toBe('\nProcessing "tizen" platform (1/2) and its "flavour1" flavour (1/2)...');
|
|
78
|
+
expect(mockedLog.mock.calls[1][0]).toBe('\nProcessing "tizen" platform (1/2) and its "flavour2" flavour (2/2)...');
|
|
79
|
+
expect(mockedLog.mock.calls[2][0]).toBe('\nProcessing "webos" platform (2/2) and its "flavour1" flavour (1/1)...');
|
|
80
|
+
});
|
|
81
|
+
it('not throws when supported flavour for platform are not defined', () => {
|
|
82
|
+
const rnvC = {
|
|
83
|
+
runtime: {
|
|
84
|
+
scheme: 'scheme1',
|
|
85
|
+
},
|
|
86
|
+
buildConfig: {
|
|
87
|
+
defaults: {
|
|
88
|
+
supportedPlatforms: [
|
|
89
|
+
'tizen',
|
|
90
|
+
'webos',
|
|
91
|
+
'webtv',
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
platforms: {
|
|
95
|
+
tizen: { deploy: {} },
|
|
96
|
+
webos: {},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
const spyCb = jest.fn();
|
|
101
|
+
expect(() => (0, forEachSupportedPlatformFlavour_1.forEachSupportedPlatformFlavour)(rnvC, spyCb)).not.toThrow();
|
|
102
|
+
expect(spyCb).toBeCalledTimes(0);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const generateSvgSpriteMap_1 = require("../../utils/generateSvgSpriteMap");
|
|
9
|
+
describe('generateSvgSpriteMap', () => {
|
|
10
|
+
const originalConsoleLogFn = console.log;
|
|
11
|
+
const projectDir = path_1.default.resolve(process.cwd(), 'temp');
|
|
12
|
+
const platformAssetsDir = path_1.default.resolve(projectDir, 'platformAssets');
|
|
13
|
+
const runtimeDir = path_1.default.resolve(platformAssetsDir, 'runtime');
|
|
14
|
+
const iconsDir = path_1.default.resolve(projectDir, 'icons');
|
|
15
|
+
const svgoConfigPath = path_1.default.resolve(iconsDir, '.svgo.yml');
|
|
16
|
+
const outputCssFilePath = path_1.default.resolve(runtimeDir, 'icons.css');
|
|
17
|
+
const rnvC = {
|
|
18
|
+
runtime: {
|
|
19
|
+
appId: 'appId',
|
|
20
|
+
},
|
|
21
|
+
platform: 'platform1',
|
|
22
|
+
paths: {
|
|
23
|
+
project: {
|
|
24
|
+
dir: projectDir,
|
|
25
|
+
builds: {
|
|
26
|
+
dir: path_1.default.resolve(projectDir, 'platformBuilds'),
|
|
27
|
+
},
|
|
28
|
+
assets: {
|
|
29
|
+
dir: platformAssetsDir,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
buildConfig: {
|
|
34
|
+
common: {
|
|
35
|
+
svgIconsMaskList: [],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
fs_1.default.mkdirSync(iconsDir, { recursive: true });
|
|
41
|
+
fs_1.default.mkdirSync(rnvC.paths.project.builds.dir, { recursive: true });
|
|
42
|
+
fs_1.default.mkdirSync(runtimeDir, { recursive: true });
|
|
43
|
+
console.log = () => { };
|
|
44
|
+
});
|
|
45
|
+
afterEach(() => {
|
|
46
|
+
fs_1.default.rmdirSync(projectDir, { recursive: true });
|
|
47
|
+
console.log = () => originalConsoleLogFn;
|
|
48
|
+
});
|
|
49
|
+
it('generates empty icons.css file when no input icons are found', () => {
|
|
50
|
+
(0, generateSvgSpriteMap_1.generateSvgSpriteMap)(rnvC);
|
|
51
|
+
expect(fs_1.default.existsSync(outputCssFilePath)).toBe(true);
|
|
52
|
+
expect(fs_1.default.statSync(outputCssFilePath).size).toBe(0);
|
|
53
|
+
});
|
|
54
|
+
it('generates icons.css and icons.json when input icons are found', () => {
|
|
55
|
+
fs_1.default.writeFileSync(svgoConfigPath, 'multipass: true');
|
|
56
|
+
const svgData = '<svg viewBox="0 0 10 10"><circle cx="0" cy="0" r="10" fill="red" /></svg>';
|
|
57
|
+
fs_1.default.writeFileSync(path_1.default.resolve(iconsDir, 'icon1.svg'), svgData);
|
|
58
|
+
fs_1.default.writeFileSync(path_1.default.resolve(iconsDir, 'icon2.svg'), svgData);
|
|
59
|
+
rnvC.buildConfig.common.svgIconsMaskList.push('icon1.svg');
|
|
60
|
+
(0, generateSvgSpriteMap_1.generateSvgSpriteMap)(rnvC);
|
|
61
|
+
rnvC.buildConfig.common.svgIconsMaskList.length = 0;
|
|
62
|
+
expect(fs_1.default.existsSync(outputCssFilePath)).toBe(true);
|
|
63
|
+
const outputCssContentRows = fs_1.default.readFileSync(outputCssFilePath).toString().split('\n');
|
|
64
|
+
expect(outputCssContentRows).toHaveLength(11);
|
|
65
|
+
expect(outputCssContentRows[0]).toBe('.icon-icon1 {');
|
|
66
|
+
expect(outputCssContentRows[1].startsWith(' background-image: url(')).toBe(true);
|
|
67
|
+
expect(outputCssContentRows[2]).toBe('}');
|
|
68
|
+
expect(outputCssContentRows[3]).toBe('');
|
|
69
|
+
expect(outputCssContentRows[4]).toBe('.icon-mask-icon1 {');
|
|
70
|
+
expect(outputCssContentRows[5].startsWith(' -webkit-mask-image: url(')).toBe(true);
|
|
71
|
+
expect(outputCssContentRows[6]).toBe('}');
|
|
72
|
+
expect(outputCssContentRows[7]).toBe('');
|
|
73
|
+
expect(outputCssContentRows[8]).toBe('.icon-icon2 {');
|
|
74
|
+
expect(outputCssContentRows[9].startsWith(' background-image: url(')).toBe(true);
|
|
75
|
+
expect(outputCssContentRows[10]).toBe('}');
|
|
76
|
+
const outputJsonPath = path_1.default.resolve(platformAssetsDir, 'icons.json');
|
|
77
|
+
expect(fs_1.default.existsSync(outputJsonPath)).toBe(true);
|
|
78
|
+
const outputJsonContent = JSON.parse(fs_1.default.readFileSync(outputJsonPath).toString());
|
|
79
|
+
expect(outputJsonContent).toStrictEqual({
|
|
80
|
+
icon1: '',
|
|
81
|
+
icon2: '',
|
|
82
|
+
'mask-icon1': '',
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const replaceRelevantStringsInConfig_1 = require("../../../utils/replaceRelevantStringsInConfig");
|
|
4
|
+
describe('replaceRelevantStringsInConfig', () => {
|
|
5
|
+
it('replaces template strings inside c.buildConfig.defaults object', () => {
|
|
6
|
+
const rnvC = {
|
|
7
|
+
runtime: {
|
|
8
|
+
scheme: 'scheme1',
|
|
9
|
+
},
|
|
10
|
+
platform: 'platform1',
|
|
11
|
+
buildConfig: {
|
|
12
|
+
defaults: {
|
|
13
|
+
defaultProp1: 'defaultProp1',
|
|
14
|
+
defaultProp2: '{{c.buildConfig.defaults.defaultProp1}}',
|
|
15
|
+
defaultProp3: '{{configProps.sharedProp}}',
|
|
16
|
+
defaultProp4: '{{c.buildConfig.defaults.defaultProp5}}',
|
|
17
|
+
},
|
|
18
|
+
platforms: {
|
|
19
|
+
platform1: { sharedProp: 'sharedPropPlatform1' },
|
|
20
|
+
platform2: { sharedProp: 'sharedPropPlatform2' },
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
(0, replaceRelevantStringsInConfig_1.replaceRelevantStringsInConfig)(rnvC);
|
|
25
|
+
expect(rnvC).toStrictEqual({
|
|
26
|
+
runtime: {
|
|
27
|
+
scheme: 'scheme1',
|
|
28
|
+
},
|
|
29
|
+
platform: 'platform1',
|
|
30
|
+
buildConfig: {
|
|
31
|
+
defaults: {
|
|
32
|
+
defaultProp1: 'defaultProp1',
|
|
33
|
+
defaultProp2: 'defaultProp1',
|
|
34
|
+
defaultProp3: 'sharedPropPlatform1',
|
|
35
|
+
defaultProp4: '',
|
|
36
|
+
},
|
|
37
|
+
platforms: {
|
|
38
|
+
platform1: { sharedProp: 'sharedPropPlatform1' },
|
|
39
|
+
platform2: { sharedProp: 'sharedPropPlatform2' },
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
it('replaces template strings inside c.buildConfig.common object', () => {
|
|
45
|
+
const rnvC = {
|
|
46
|
+
runtime: {
|
|
47
|
+
scheme: 'scheme1',
|
|
48
|
+
},
|
|
49
|
+
platform: 'platform1',
|
|
50
|
+
buildConfig: {
|
|
51
|
+
common: {
|
|
52
|
+
commonProp1: 'commonProp1',
|
|
53
|
+
commonProp2: '{{c.buildConfig.common.commonProp1}}',
|
|
54
|
+
commonProp3: '{{configProps.commonProp1}}',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
(0, replaceRelevantStringsInConfig_1.replaceRelevantStringsInConfig)(rnvC);
|
|
59
|
+
expect(rnvC).toStrictEqual({
|
|
60
|
+
runtime: {
|
|
61
|
+
scheme: 'scheme1',
|
|
62
|
+
},
|
|
63
|
+
platform: 'platform1',
|
|
64
|
+
buildConfig: {
|
|
65
|
+
common: {
|
|
66
|
+
commonProp1: 'commonProp1',
|
|
67
|
+
commonProp2: 'commonProp1',
|
|
68
|
+
commonProp3: 'commonProp1',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it('replaces template strings inside c.buildConfig.platforms object', () => {
|
|
74
|
+
const rnvC = {
|
|
75
|
+
runtime: {
|
|
76
|
+
scheme: 'scheme1',
|
|
77
|
+
},
|
|
78
|
+
platform: 'platform1',
|
|
79
|
+
buildConfig: {
|
|
80
|
+
platforms: {
|
|
81
|
+
platform1: {
|
|
82
|
+
platform1Prop1: '{{c.buildConfig.platforms.platform2.platform2Prop1}}',
|
|
83
|
+
platform1Prop2: 'platform1Prop2',
|
|
84
|
+
commonProp: 'commonPropPlatform1Value',
|
|
85
|
+
},
|
|
86
|
+
platform2: {
|
|
87
|
+
platform2Prop1: 'platform2Prop1',
|
|
88
|
+
platform2Prop2: '{{c.buildConfig.platforms.platform1.platform1Prop2}}',
|
|
89
|
+
commonProp: '{{configProps.commonProp}}',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
(0, replaceRelevantStringsInConfig_1.replaceRelevantStringsInConfig)(rnvC);
|
|
95
|
+
expect(rnvC).toStrictEqual({
|
|
96
|
+
runtime: {
|
|
97
|
+
scheme: 'scheme1',
|
|
98
|
+
},
|
|
99
|
+
platform: 'platform1',
|
|
100
|
+
buildConfig: {
|
|
101
|
+
platforms: {
|
|
102
|
+
platform1: {
|
|
103
|
+
platform1Prop1: 'platform2Prop1',
|
|
104
|
+
platform1Prop2: 'platform1Prop2',
|
|
105
|
+
commonProp: 'commonPropPlatform1Value',
|
|
106
|
+
},
|
|
107
|
+
platform2: {
|
|
108
|
+
platform2Prop1: 'platform2Prop1',
|
|
109
|
+
platform2Prop2: 'platform1Prop2',
|
|
110
|
+
commonProp: 'commonPropPlatform1Value',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const replaceTemplateString_1 = require("../../../utils/replaceRelevantStringsInConfig/replaceTemplateString");
|
|
4
|
+
describe('replaceTemplateString', () => {
|
|
5
|
+
describe('string input not wrapped into placeholder brackets', () => {
|
|
6
|
+
it('returns input value', () => {
|
|
7
|
+
const rnvC = {};
|
|
8
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, '')).toBe('');
|
|
9
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, 'c')).toBe('c');
|
|
10
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, 'c.buildConfig.projectName')).toBe('c.buildConfig.projectName');
|
|
11
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, 'configProps.engine')).toBe('configProps.engine');
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
describe('string input wrapped into placeholder brackets', () => {
|
|
15
|
+
describe('{{c.}} pattern', () => {
|
|
16
|
+
it('throws when input points to non string value in rnv c object', () => {
|
|
17
|
+
const rnvC = { buildConfig: { common: { deploy: true } } };
|
|
18
|
+
expect(() => (0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{c.buildConfig}}')).toThrow();
|
|
19
|
+
expect(() => (0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{c.buildConfig.common}}')).toThrow();
|
|
20
|
+
expect(() => (0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{c.buildConfig.common.deploy}}')).toThrow();
|
|
21
|
+
});
|
|
22
|
+
it('returns empty string when value is not found in rnv c object', () => {
|
|
23
|
+
const rnvC = {};
|
|
24
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{c.buildConfig.projectName}}')).toBe('');
|
|
25
|
+
});
|
|
26
|
+
it('returns correct value from rnv c object for pattern on input', () => {
|
|
27
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)({ buildConfig: { projectName: 'prj' } }, '{{c.buildConfig.projectName}}')).toBe('prj');
|
|
28
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)({
|
|
29
|
+
buildConfig: {
|
|
30
|
+
projectName: '{{c.buildConfig.common.id}}',
|
|
31
|
+
workspaceID: '{{c.buildConfig.projectName}}',
|
|
32
|
+
common: { id: 'id' },
|
|
33
|
+
},
|
|
34
|
+
}, '{{c.buildConfig.workspaceID}}')).toBe('id');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('{{configProps.}} pattern', () => {
|
|
38
|
+
it('throws when input points to non string value in rnv c object', () => {
|
|
39
|
+
const rnvC = {
|
|
40
|
+
runtime: { scheme: 'scheme' },
|
|
41
|
+
buildConfig: { common: { deploy: { testProp: true } } },
|
|
42
|
+
};
|
|
43
|
+
expect(() => (0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{configProps.deploy}}')).toThrow();
|
|
44
|
+
expect(() => (0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{configProps.deploy.testProp}}')).toThrow();
|
|
45
|
+
});
|
|
46
|
+
it('returns empty string when value is not found in rnv c object', () => {
|
|
47
|
+
const rnvC = {
|
|
48
|
+
platform: 'somePlatform',
|
|
49
|
+
runtime: { scheme: 'scheme' },
|
|
50
|
+
buildConfig: { common: { deploy: { testProp: true } } },
|
|
51
|
+
};
|
|
52
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)(rnvC, '{{configProps.deploy.notExistingProp}}')).toBe('');
|
|
53
|
+
});
|
|
54
|
+
it('returns correct value from rnv c object for pattern on input', () => {
|
|
55
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)({ buildConfig: { projectName: 'prj' } }, '{{c.buildConfig.projectName}}')).toBe('prj');
|
|
56
|
+
expect((0, replaceTemplateString_1.replaceTemplateString)({
|
|
57
|
+
buildConfig: {
|
|
58
|
+
projectName: '{{c.buildConfig.common.id}}',
|
|
59
|
+
workspaceID: '{{c.buildConfig.projectName}}',
|
|
60
|
+
common: { id: 'id' },
|
|
61
|
+
},
|
|
62
|
+
}, '{{c.buildConfig.workspaceID}}')).toBe('id');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
9
|
+
const zipBuildsByPlatforms_1 = require("../../utils/zipBuildsByPlatforms");
|
|
10
|
+
const constants_1 = require("../../constants");
|
|
11
|
+
describe('zipBuildsByPlatforms', () => {
|
|
12
|
+
const platformBuildsPath = path_1.default.resolve(process.cwd(), 'platformBuilds');
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
15
|
+
const outputPaths = [
|
|
16
|
+
path_1.default.resolve(platformBuildsPath, `${platform}_any_name_1`, 'output'),
|
|
17
|
+
path_1.default.resolve(platformBuildsPath, `${platform}_any_name_2`, 'output'),
|
|
18
|
+
];
|
|
19
|
+
outputPaths.forEach((outputPath) => {
|
|
20
|
+
fs_1.default.mkdirSync(outputPath, { recursive: true });
|
|
21
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputPath, 'build.zip'), 'data');
|
|
22
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputPath, 'another_build.zip'), 'data');
|
|
23
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputPath, 'build.wgt'), 'data');
|
|
24
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputPath, 'another_build.wgt'), 'data');
|
|
25
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputPath, 'build.ipk'), 'data');
|
|
26
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputPath, 'another_build.ipk'), 'data');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
fs_1.default.rmdirSync(platformBuildsPath, { recursive: true });
|
|
32
|
+
});
|
|
33
|
+
it('create zip file for each supported platform', () => {
|
|
34
|
+
const rnvC = {
|
|
35
|
+
buildConfig: {
|
|
36
|
+
paths: {
|
|
37
|
+
platformBuildsDir: platformBuildsPath,
|
|
38
|
+
},
|
|
39
|
+
defaults: {
|
|
40
|
+
supportedPlatforms: Object.values(constants_1.Platforms),
|
|
41
|
+
},
|
|
42
|
+
common: {
|
|
43
|
+
appNameInFileName: 'appNameInFileName',
|
|
44
|
+
packageVersion: '1.0.0',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
(0, zipBuildsByPlatforms_1.zipBuildsByPlatforms)(rnvC);
|
|
49
|
+
const zippedBuildsDirPath = path_1.default.resolve(platformBuildsPath, 'zipped_by_platform');
|
|
50
|
+
Object.values(constants_1.Platforms).forEach((platform) => {
|
|
51
|
+
const zippedPlatformBuildFilePath = path_1.default.resolve(zippedBuildsDirPath, `appNameInFileName_${platform}_1.0.0.zip`);
|
|
52
|
+
expect(fs_1.default.existsSync(zippedPlatformBuildFilePath)).toBe(true);
|
|
53
|
+
const zipFileContent = child_process_1.default
|
|
54
|
+
.execSync(`zipinfo -1 ${zippedPlatformBuildFilePath}`)
|
|
55
|
+
.toString()
|
|
56
|
+
.split('\n')
|
|
57
|
+
.filter((filename) => filename.length);
|
|
58
|
+
if (platform === constants_1.Platforms.TIZEN) {
|
|
59
|
+
expect(zipFileContent).toStrictEqual(['another_build.wgt', 'build.wgt']);
|
|
60
|
+
}
|
|
61
|
+
else if (platform === constants_1.Platforms.WEBOS) {
|
|
62
|
+
expect(zipFileContent).toStrictEqual(['another_build.ipk', 'build.ipk']);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
expect(zipFileContent).toStrictEqual(['another_build.zip', 'build.zip']);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
package/dist/src/engine.js
CHANGED
|
@@ -28,7 +28,6 @@ exports.Resolvers = Resolvers;
|
|
|
28
28
|
const CNF = __importStar(require("../../renative.engine.json"));
|
|
29
29
|
const constants_1 = require("./constants");
|
|
30
30
|
const engineTasks_1 = require("./tasks/engineTasks");
|
|
31
|
-
const { generateEngineTasks } = rnv_1.EngineManager;
|
|
32
31
|
const generateEngineExtensions = (platformExtensions) => {
|
|
33
32
|
const fileExtensions = ['js', 'jsx', 'ts', 'tsx', 'json'];
|
|
34
33
|
const output = [];
|
|
@@ -42,7 +41,7 @@ const generateEngineExtensions = (platformExtensions) => {
|
|
|
42
41
|
};
|
|
43
42
|
exports.default = {
|
|
44
43
|
initializeRuntimeConfig: (c) => rnv_1.Config.initializeConfig(c),
|
|
45
|
-
tasks: generateEngineTasks(engineTasks_1.engineTaskList),
|
|
44
|
+
tasks: rnv_1.EngineManager.generateEngineTasks(engineTasks_1.engineTaskList),
|
|
46
45
|
config: CNF,
|
|
47
46
|
projectDirName: 'project',
|
|
48
47
|
serverDirName: 'server',
|
|
@@ -18,17 +18,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
21
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
25
|
exports.getBaseConfig = void 0;
|
|
23
26
|
const fs = __importStar(require("fs"));
|
|
24
27
|
const path = __importStar(require("path"));
|
|
25
28
|
const rnv_1 = require("rnv");
|
|
29
|
+
const assign_deep_1 = __importDefault(require("assign-deep"));
|
|
26
30
|
const replaceRelevantStringsInConfig_1 = require("../utils/replaceRelevantStringsInConfig");
|
|
27
|
-
const mergeDeep_1 = require("../utils/mergeDeep");
|
|
28
31
|
const mergeFileJsonIntoObject = (filePath, targetObject) => {
|
|
29
32
|
const fileContentAsString = fs.readFileSync(filePath).toString();
|
|
30
33
|
const fileContentAsJSON = JSON.parse(fileContentAsString);
|
|
31
|
-
(0,
|
|
34
|
+
(0, assign_deep_1.default)(targetObject, fileContentAsJSON);
|
|
32
35
|
};
|
|
33
36
|
const getBaseConfig = () => {
|
|
34
37
|
const c = rnv_1.ConfigManager.createRnvConfig({ ci: true }, process);
|
|
@@ -26,7 +26,7 @@ const generateSvgSpriteMap = (c) => {
|
|
|
26
26
|
iconsFolder: '/icons',
|
|
27
27
|
cssOutput: '../../platformAssets/runtime/icons.css',
|
|
28
28
|
jsonOutput: '/icons.json',
|
|
29
|
-
maskList: c.buildConfig
|
|
29
|
+
maskList: c.buildConfig?.common.svgIconsMaskList || [],
|
|
30
30
|
};
|
|
31
31
|
const projectPaths = c.paths.project;
|
|
32
32
|
const iconsPath = path_1.default.join(projectPaths.dir, config.iconsFolder);
|
|
@@ -44,7 +44,9 @@ const generateSvgSpriteMap = (c) => {
|
|
|
44
44
|
(0, child_process_1.execSync)(`npx svgo -f "${iconsPath}" -o "${optimisedPath}" --config="${configPath}" --multipass`);
|
|
45
45
|
const files = fs_1.default.readdirSync(optimisedPath);
|
|
46
46
|
const spriteNames = {};
|
|
47
|
-
const svgSymbols = files
|
|
47
|
+
const svgSymbols = files
|
|
48
|
+
.filter((name) => name.endsWith('.svg'))
|
|
49
|
+
.map((fileName) => {
|
|
48
50
|
const maskListIncludesFileName = config.maskList.includes(fileName);
|
|
49
51
|
const spriteName = fileName
|
|
50
52
|
.replace('.svg', '')
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.replaceRelevantStringsInConfig = void 0;
|
|
4
4
|
const replaceTemplateString_1 = require("./replaceTemplateString");
|
|
5
|
-
const processObject = (c, object
|
|
5
|
+
const processObject = (c, object) => {
|
|
6
6
|
if (!object)
|
|
7
7
|
return;
|
|
8
8
|
const objectKeys = Object.keys(object);
|
|
@@ -18,16 +18,14 @@ const processObject = (c, object, excludedPropsList = []) => {
|
|
|
18
18
|
processStringValue(keyValue, key);
|
|
19
19
|
}
|
|
20
20
|
else if (typeof keyValue === 'object' && keyValue !== null) {
|
|
21
|
-
|
|
22
|
-
processObject(c, keyValue);
|
|
23
|
-
}
|
|
21
|
+
processObject(c, keyValue);
|
|
24
22
|
}
|
|
25
23
|
});
|
|
26
24
|
};
|
|
27
25
|
const replaceRelevantStringsInConfig = (c) => {
|
|
28
26
|
const { defaults, common, platforms } = c.buildConfig;
|
|
29
27
|
processObject(c, defaults);
|
|
30
|
-
processObject(c, common
|
|
28
|
+
processObject(c, common);
|
|
31
29
|
processObject(c, platforms);
|
|
32
30
|
};
|
|
33
31
|
exports.replaceRelevantStringsInConfig = replaceRelevantStringsInConfig;
|
|
@@ -2,24 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.replaceTemplateString = void 0;
|
|
4
4
|
const rnv_1 = require("rnv");
|
|
5
|
-
const resolvers_1 = require("../../resolvers");
|
|
6
5
|
const { getConfigProp } = rnv_1.Common;
|
|
7
6
|
const getValueFromConfigByStringPath = (c, stringPathToObjectProp) => {
|
|
8
7
|
const pathToPropList = stringPathToObjectProp.split('.');
|
|
9
8
|
const listLength = pathToPropList.length;
|
|
10
9
|
let currentPropValue = c;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
10
|
+
for (let i = 1; i < listLength; i++) {
|
|
11
|
+
currentPropValue = currentPropValue[pathToPropList[i]];
|
|
12
|
+
if (currentPropValue === undefined) {
|
|
13
|
+
return null;
|
|
17
14
|
}
|
|
18
|
-
return currentPropValue;
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
return null;
|
|
22
15
|
}
|
|
16
|
+
return currentPropValue;
|
|
23
17
|
};
|
|
24
18
|
const getValue = (c, stringInsideBracelets) => {
|
|
25
19
|
if (stringInsideBracelets.startsWith('c.')) {
|
|
@@ -28,35 +22,19 @@ const getValue = (c, stringInsideBracelets) => {
|
|
|
28
22
|
if (stringInsideBracelets.startsWith('configProps.')) {
|
|
29
23
|
return getConfigProp(c, c.platform, stringInsideBracelets.replace('configProps.', ''));
|
|
30
24
|
}
|
|
31
|
-
if (stringInsideBracelets === 'BRANCH_COMMIT_OFFSET') {
|
|
32
|
-
return (0, resolvers_1.resolveBuildVersionOffset)(c);
|
|
33
|
-
}
|
|
34
25
|
return stringInsideBracelets;
|
|
35
26
|
};
|
|
36
27
|
const injectorStartMark = '{{';
|
|
37
28
|
const injectorEndMark = '}}';
|
|
38
29
|
const injectorRegexp = new RegExp(`${injectorStartMark}.*?${injectorEndMark}`, 'g');
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
const matches = outputString.match(/\[\[[^[\]]+]]/g);
|
|
42
|
-
if (!matches || !matches.length)
|
|
43
|
-
return outputString;
|
|
44
|
-
const getStringInside = (templateString = '') => (templateString.slice(injectorStartMark.length, -injectorEndMark.length));
|
|
45
|
-
const removeBracelets = (match) => {
|
|
46
|
-
outputString = outputString.replace(match, getStringInside(match));
|
|
47
|
-
};
|
|
48
|
-
matches.forEach(removeBracelets);
|
|
49
|
-
return outputString;
|
|
50
|
-
};
|
|
51
|
-
const replaceTemplateString = (c, string = '') => {
|
|
52
|
-
if (!string)
|
|
30
|
+
const replaceTemplateString = (c, input) => {
|
|
31
|
+
if (!input)
|
|
53
32
|
return '';
|
|
54
33
|
const replacer = (match) => {
|
|
55
34
|
const stringInBracelets = match.slice(injectorStartMark.length, -injectorEndMark.length);
|
|
56
35
|
const value = getValue(c, stringInBracelets);
|
|
57
36
|
return value === match ? value : replaceTemplateString(c, value);
|
|
58
37
|
};
|
|
59
|
-
|
|
60
|
-
return handleStringEnd(parsedString);
|
|
38
|
+
return input.replace(injectorRegexp, replacer);
|
|
61
39
|
};
|
|
62
40
|
exports.replaceTemplateString = replaceTemplateString;
|
|
@@ -30,12 +30,17 @@ const getPlatformBuildsPaths = (c, platformName) => {
|
|
|
30
30
|
const { platformBuildsDir } = c.buildConfig.paths;
|
|
31
31
|
const outputGlob = `${platformBuildsDir}/**/output`;
|
|
32
32
|
const platformBuildsGlob = `${outputGlob}/*.${(0, resolvers_1.resolveBuildFileExtension)(platformName)}`;
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
try {
|
|
34
|
+
const buildsPathsCandidates = glob.sync(platformBuildsGlob) || [];
|
|
35
|
+
return buildsPathsCandidates.filter((path) => path.includes(platformName));
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
35
40
|
};
|
|
36
41
|
const processPlatform = (c, platformName) => {
|
|
37
42
|
const platformBuildsPaths = getPlatformBuildsPaths(c, platformName);
|
|
38
|
-
if (platformBuildsPaths.length === 0)
|
|
43
|
+
if (platformBuildsPaths && platformBuildsPaths.length === 0)
|
|
39
44
|
return;
|
|
40
45
|
const outputZipFilePath = (0, resolvers_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
|
|
41
46
|
const tempPlatformDir = `${(0, path_1.dirname)(outputZipFilePath)}/${platformName}`;
|
|
@@ -12,6 +12,7 @@ const mini_css_extract_plugin_1 = __importDefault(require("mini-css-extract-plug
|
|
|
12
12
|
const filemanager_webpack_plugin_1 = __importDefault(require("filemanager-webpack-plugin"));
|
|
13
13
|
const html_webpack_plugin_1 = __importDefault(require("html-webpack-plugin"));
|
|
14
14
|
const fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
|
|
15
|
+
const webpack_spritesmith_1 = __importDefault(require("webpack-spritesmith"));
|
|
15
16
|
const smartapps_bigscreen_rnv_build_engine_1 = require("@24i/smartapps-bigscreen-rnv-build-engine");
|
|
16
17
|
const getAnimationType = (isAnimated = false) => (isAnimated ? 'animated' : 'basic');
|
|
17
18
|
const generateFlavourJSExtensions = ({ resolution: { height }, animated, extensions }) => {
|
|
@@ -52,10 +53,10 @@ const includeRtlFiles = ({ shouldIncludeRtlFiles }) => (content, loaderContext)
|
|
|
52
53
|
};
|
|
53
54
|
const getAppContentPath = (baseUrl, isBuildHosted = false) => {
|
|
54
55
|
const isBuildHostedAndHasBaseUrl = isBuildHosted && !!baseUrl;
|
|
55
|
-
const relativePath = path_1.default.join(isBuildHostedAndHasBaseUrl ? '
|
|
56
|
+
const relativePath = path_1.default.join(isBuildHostedAndHasBaseUrl ? 'public/' : '', 'content');
|
|
56
57
|
return isBuildHostedAndHasBaseUrl
|
|
57
58
|
? `${baseUrl}/${relativePath}`
|
|
58
|
-
: relativePath
|
|
59
|
+
: `./${relativePath}`;
|
|
59
60
|
};
|
|
60
61
|
function generateConfig(config) {
|
|
61
62
|
const projectDir = path_1.default.resolve(config.currentDir, '../../');
|
|
@@ -74,14 +75,9 @@ function generateConfig(config) {
|
|
|
74
75
|
const isDevServer = appBuildEngineProjectDir.endsWith('/server');
|
|
75
76
|
const { PLATFORM } = process.env;
|
|
76
77
|
const isBuildHosted = config.isBuildHosted || false;
|
|
77
|
-
const modulePaths = [
|
|
78
|
-
'src',
|
|
79
|
-
'node_modules',
|
|
80
|
-
].concat(config.modulePaths || []);
|
|
81
78
|
const rules = {
|
|
82
79
|
babel: {
|
|
83
80
|
test: /\.[tj]sx?$/,
|
|
84
|
-
include: modulePaths.map((v) => path_1.default.resolve(projectDir, v)),
|
|
85
81
|
use: [
|
|
86
82
|
{
|
|
87
83
|
loader: 'ts-loader',
|
|
@@ -188,6 +184,26 @@ function generateConfig(config) {
|
|
|
188
184
|
css: new mini_css_extract_plugin_1.default({
|
|
189
185
|
filename: 'content/css/[name].css',
|
|
190
186
|
}),
|
|
187
|
+
png: new webpack_spritesmith_1.default({
|
|
188
|
+
src: {
|
|
189
|
+
cwd: path_1.default.resolve(appBuildDir, '../../icons'),
|
|
190
|
+
glob: '*.png',
|
|
191
|
+
},
|
|
192
|
+
target: {
|
|
193
|
+
image: path_1.default.resolve(appBuildEngineProjectPublicDir, './sprite.png'),
|
|
194
|
+
css: [
|
|
195
|
+
path_1.default.resolve(appBuildDir, '../../platformAssets/sprite.json'),
|
|
196
|
+
path_1.default.resolve(appBuildEngineProjectPublicDir, './sprite.css'),
|
|
197
|
+
],
|
|
198
|
+
},
|
|
199
|
+
apiOptions: {
|
|
200
|
+
cssImageRef: 'sprite.png',
|
|
201
|
+
generateSpriteName: (fullPathToSourceFile) => {
|
|
202
|
+
const { name } = path_1.default.parse(fullPathToSourceFile);
|
|
203
|
+
return `png-${name}`;
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
}),
|
|
191
207
|
fileManager: new filemanager_webpack_plugin_1.default({
|
|
192
208
|
events: {
|
|
193
209
|
onStart: [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@24i/smartapps-bigscreen-rnv-build-engine",
|
|
3
|
-
"version": "0.10.1-alpha.
|
|
3
|
+
"version": "0.10.1-alpha.1530+13746b3e",
|
|
4
4
|
"description": "Package with build engine for SmartApps BIGscreen projects...",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@24i/smartapps-bigscreen-device": ">=0.10.1-alpha.1515",
|
|
33
|
+
"assign-deep": "^1.0.1",
|
|
33
34
|
"core-js": "3.15.2",
|
|
34
35
|
"coveralls": "3.1.1",
|
|
35
36
|
"css-hot-loader": "1.4.4",
|
|
@@ -54,10 +55,11 @@
|
|
|
54
55
|
"ts-loader": "8.1.0",
|
|
55
56
|
"webpack": "4.46.0",
|
|
56
57
|
"webpack-cli": "3.3.12",
|
|
57
|
-
"webpack-dev-server": "3.11.2"
|
|
58
|
+
"webpack-dev-server": "3.11.2",
|
|
59
|
+
"webpack-spritesmith": "^1.1.0"
|
|
58
60
|
},
|
|
59
61
|
"keywords": [],
|
|
60
62
|
"author": "24i",
|
|
61
63
|
"license": "ISC",
|
|
62
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "13746b3ea699015090a75e306d7da21c4acc9b5c"
|
|
63
65
|
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeDeep = void 0;
|
|
4
|
-
const isObject = (item) => (item && typeof item === 'object' && !Array.isArray(item));
|
|
5
|
-
const mergeDeep = (target, ...sources) => {
|
|
6
|
-
if (!sources.length)
|
|
7
|
-
return target;
|
|
8
|
-
const source = sources.shift();
|
|
9
|
-
if (isObject(target) && isObject(source)) {
|
|
10
|
-
Object.keys(source).forEach((key) => {
|
|
11
|
-
if (isObject(source[key])) {
|
|
12
|
-
if (!target[key])
|
|
13
|
-
Object.assign(target, { [key]: {} });
|
|
14
|
-
mergeDeep(target[key], source[key]);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
Object.assign(target, { [key]: source[key] });
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return mergeDeep(target, ...sources);
|
|
22
|
-
};
|
|
23
|
-
exports.mergeDeep = mergeDeep;
|