diff --git a/.eslintignore b/.eslintignore index 9e6474960..936206a64 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,4 +12,5 @@ packages/**/lib/** **/dist/** **/platformAssets/** **/platformBuilds/** -packages/template-starter/appConfigs/base/assets/webos/public/webOSTVjs-1.1.1/** \ No newline at end of file +packages/template-starter/appConfigs/base/assets/webos/public/webOSTVjs-1.1.1/** +packages/template-starter/build/** \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9bf19e69f..64c887cd3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,99 @@ +# OSX +# +.DS_Store + +# Xcode +# +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android Studio +# +*.iml + +# node.js +# +node_modules/ dist lib -node_modules -coverage build -.DS_Store +# NPM +# +npm-debug.log + +# Yarn +# yarn-error.log -tsconfig.tsbuildinfo +# Lerna +# +lerna-debug.log + +# BUCK +# +buck-out/ +\.buckd/ + +# Visual Studio +# +.vscode/* .vscode +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + + +# Testing +# +coverage +reporting +coverage-ts + +# Expo +# +.expo + +# Next +# +.next + +# ReNative +# +.rnv +renative.private.json +renative.local.json +renative.local.json +renative.build.json +renative.runtime.json +rnv.private.json +rnv.local.json +rnv.build.json +rnv.runtime.json +metro.config.local.js +platformBuilds +platformAssets -!**/overrides/**/lib -!**/overrides/**/build \ No newline at end of file +# Other +# +.binlog +*.binlog +.bundle +vendor +.watchman-cookie-* +.rollup.cache diff --git a/buildHooks/src/git.js b/buildHooks/src/git.js index f85b59770..cc6cdb8fd 100644 --- a/buildHooks/src/git.js +++ b/buildHooks/src/git.js @@ -1,9 +1,7 @@ import path from 'path'; -import { FileUtils, Logger } from 'rnv'; +import { logHook, readObjectSync } from '@rnv/core'; import simpleGit from 'simple-git'; -const { readObjectSync } = FileUtils; - export const gitCommit = async (c) => { const baseDir = c.paths.project.dir; @@ -11,13 +9,13 @@ export const gitCommit = async (c) => { const { version } = rootPkgFile; - Logger.logHook(`gitCommitAndTagVersion ${version}`); + logHook(`gitCommitAndTagVersion ${version}`); const git = simpleGit({ baseDir }); - Logger.logHook('adding files'); + logHook('adding files'); await git.add(`${baseDir}/*`); - Logger.logHook('COMMITING...'); + logHook('COMMITING...'); await git.commit(`chore(release): publish ${version}`); - Logger.logHook('DONE'); + logHook('DONE'); return true; }; @@ -27,7 +25,7 @@ export const gitTag = async (c) => { const rootPkgFile = readObjectSync(path.join(baseDir, 'lerna.json')); const { version } = rootPkgFile; - Logger.logHook(`gitTagAndPush ${version}`); + logHook(`gitTagAndPush ${version}`); const git = simpleGit({ baseDir }); await git.addTag(`${version}`); await git.push(); diff --git a/examples/package.json b/examples/package.json index 0531d12ba..7d29ce9a3 100644 --- a/examples/package.json +++ b/examples/package.json @@ -23,7 +23,7 @@ "react-native-linear-gradient": "^2.8.3", "react-native-reanimated": "^3.3.0", "react-native-safe-area-context": "^4.7.1", - "react-native-screens": "3.19.0", + "react-native-screens": "3.29.0", "react-native-svg": "^13.14.0", "react-native-svg-uri": "^1.2.3" }, @@ -34,7 +34,7 @@ "@react-native-community/eslint-config": "^3.2.0", "@tsconfig/react-native": "^2.0.2", "@types/jest": "^29.2.1", - "@types/react": "^18.0.24", + "@types/react": "18.2.52", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.2.1", "eslint": "^8.19.0", diff --git a/lerna.json b/lerna.json index f58067eab..9711528fc 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.0-alpha.2", + "version": "1.3.0-feat-rnv-update.19", "packages": [ "packages/*" ], diff --git a/package.json b/package.json index a34ef9c68..5e287f846 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,9 @@ "name": "@flexn-io/create-monorepo", "private": true, "scripts": { - "bootstrap": "(rnv unlink|| true) && npx lerna bootstrap && npx jetify && yarn build", - "bootstrap-clean": "rm -rf ./node_modules; npx lerna clean --yes && yarn bootstrap", + "bootstrap": "npx lerna@6 bootstrap && npx jetify && yarn build", + "bootstrap-clean": "yarn clean-gitignore && yarn bootstrap", + "clean-gitignore": "git clean -f -d -i -X", "build": "lerna run build", "watch-alt": "npx lerna run compile & npx lerna watch -- lerna run compile", "watch": "npx lerna exec yarn watch --parallel", @@ -66,28 +67,35 @@ "clean-template-post-nightly": "cd packages/template-starter && npx rnv hooks run -x cleanupPostNightly -c template --only" }, "devDependencies": { - "@flexn/eslint-config": "0.1.7", - "@flexn/prettier-config": "0.1.7", + "@babel/eslint-parser": "7.17.0", + "@flexn/eslint-config": "1.0.0", + "@flexn/prettier-config": "1.0.0", "@flexn/typescript-config": "1.0.0", - "@flexn/build-hooks": "0.30.0", - "@types/jest": "~27.0.2", + "@flexn/build-hooks": "1.0.0-feat-rnv-update.0", + "@rnv/core": "1.0.0-rc.17", + "@types/jest": "^29.5.12", "@types/lodash-es": "~4.17.5", "@types/lodash.debounce": "~4.0.6", "@types/lodash.throttle": "~4.1.7", - "@types/node": "~16.11.7", - "@types/react-dom": "~18.2.4", - "@types/react-native": "~0.67.2", + "@types/node": "^18.15.3", "@types/chromecast-caf-receiver": "~6.0.6", "@types/react-native-snap-carousel": "~3.8.5", "@types/react-native-vector-icons": "6.4.13", + "@typescript-eslint/eslint-plugin": "^5.4.0", + "@typescript-eslint/parser": "^5.4.0", + "husky": "^7.0.0", + "jest": "^29.6.3", + "jest-environment-jsdom": "29.7.0", + "lerna": "^6.6.2", + "prettier": "2.8.8", + "simple-git": "^3.16.0", + "eslint": "8.40.0", "eslint-config-prettier": "8.8.0", - "husky": "4.2.5", - "jest": "27.3.1", - "lerna": "6.6.2", - "rnv": "0.37.3", - "typescript": "4.9.5", - "prettier": "2.3.1", - "eslint": "8.40.0" + "eslint-plugin-react": "7.33.2", + "ts-jest": "^27.0.7", + "ts-node": "^10.9.1", + "typescript": "5.2.2", + "typescript-coverage-report": "0.8.0" }, "husky": { "hooks": { @@ -111,7 +119,8 @@ ] }, "resolutions": { - "@types/react": "18.2.6", + "@babel/core": "7.24.4", + "@types/react": "18.2.52", "tslib": "2.5.2" } } diff --git a/packages/app-harness/.gitignore b/packages/app-harness/.gitignore index 0b445003f..e8e92c8b2 100644 --- a/packages/app-harness/.gitignore +++ b/packages/app-harness/.gitignore @@ -1,46 +1,3 @@ -# -------------------------------- -# Generated by ReNative -# -------------------------------- -.DS_Store -node_modules -npm-debug.log -yarn-error.log -.env -.next -.expo - -#------------------------------- -# Visual Studio -#------------------------------- -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json - -#------------------------------- -# RENATIVE -#------------------------------- - -platformBuilds -platformAssets -buildHooks/dist -renative.local.json -renative.private.json -renative.build.json -renative.runtime.json -rnv-config.local.json -metro.config.local.js - -.vercel -releases -.tmp - - -dist -build - -reporting - -.rollup.cache \ No newline at end of file +# Special case for rnv template. public folder is generated we don't want to commit it +public/ \ No newline at end of file diff --git a/packages/app-harness/appConfigs/harness/renative.json b/packages/app-harness/appConfigs/harness/renative.json index daf9aee0e..4a825cab5 100644 --- a/packages/app-harness/appConfigs/harness/renative.json +++ b/packages/app-harness/appConfigs/harness/renative.json @@ -1,4 +1,5 @@ { + "$schema": "../../.rnv/schema/rnv.app.json", "extendsTemplate": "@flexn/create-template-starter/appConfigs/base/renative.json", "id": "harness", "common": { diff --git a/packages/app-harness/babel.config.js b/packages/app-harness/babel.config.js index 8d4e05438..6bac176fe 100644 --- a/packages/app-harness/babel.config.js +++ b/packages/app-harness/babel.config.js @@ -1,3 +1,5 @@ -const { withRNVBabel } = require('rnv'); +const { withRNVBabel } = require('@rnv/adapter'); -module.exports = withRNVBabel({}); +module.exports = withRNVBabel({ + plugins: ['react-native-reanimated/plugin'], +}); diff --git a/packages/app-harness/metadata.json b/packages/app-harness/metadata.json index 0b494bfb8..260001cbd 100644 --- a/packages/app-harness/metadata.json +++ b/packages/app-harness/metadata.json @@ -1,6 +1,6 @@ { "name": "app-harness", - "version": "1.3.0-alpha.2", + "version": "1.3.0-feat-rnv-update.19", "identifier": "io.flexn.app.harness", "icon": "./static/icon.png" } diff --git a/packages/app-harness/metro.config.js b/packages/app-harness/metro.config.js index 58f9428bf..fc7d7b4a4 100644 --- a/packages/app-harness/metro.config.js +++ b/packages/app-harness/metro.config.js @@ -1,3 +1,3 @@ -const { withRNVMetro } = require('rnv'); +const { withRNVMetro } = require('@rnv/adapter'); module.exports = withRNVMetro({}); diff --git a/packages/app-harness/next.config.js b/packages/app-harness/next.config.js index 2de5af799..a7820b6be 100644 --- a/packages/app-harness/next.config.js +++ b/packages/app-harness/next.config.js @@ -1,3 +1,3 @@ -const { withRNV } = require('@rnv/engine-rn-next'); +const { withRNVNext } = require('@rnv/adapter'); -module.exports = withRNV({}); +module.exports = withRNVNext({}); diff --git a/packages/app-harness/package.json b/packages/app-harness/package.json index fb09f016e..2f8d36762 100644 --- a/packages/app-harness/package.json +++ b/packages/app-harness/package.json @@ -1,6 +1,6 @@ { "name": "@flexn/app-harness", - "version": "1.3.0-alpha.2", + "version": "1.3.0-feat-rnv-update.19", "scripts": { "bootstrap": "cd ../.. && yarn bootstrap", "build": "yarn clean && yarn compile", @@ -45,69 +45,57 @@ "web:release": "npx rnv build -p web -c harness -s release && vercel ./platformBuilds/harness_web/project" }, "dependencies": { - "@flexn/create": "1.3.0-alpha.2", + "@babel/preset-react": "7.23.3", + "@flexn/create": "1.3.0-feat-rnv-update.19", "@flexn/fonts": "1.0.1", "@flexn/graybox": "1.0.0", "@flexn/recyclerlistview": "4.2.7", - "@flexn/shopify-flash-list": "1.4.8", - "@lightningjs/core": "2.8.0", - "@lightningjs/sdk": "5.2.0", - "@react-native-community/masked-view": "0.1.11", - "@react-native-masked-view/masked-view": "0.2.9", - "@react-navigation/bottom-tabs": "5.1.1", - "@react-navigation/core": "6.1.0", - "@react-navigation/drawer": "6.1.8", - "@react-navigation/elements": "1.3.17", - "@react-navigation/material-bottom-tabs": "6.0.9", - "@react-navigation/material-top-tabs": "5.3.10", - "@react-navigation/native": "6.0.6", - "@react-navigation/native-stack": "5.0.5", - "@react-navigation/routers": "5.1.0", - "@react-navigation/stack": "6.0.11", + "@flexn/shopify-flash-list": "1.4.9", + "@react-native-masked-view/masked-view": "0.3.1", + "@react-navigation/bottom-tabs": "6.5.19", + "@react-navigation/core": "6.4.15", + "@react-navigation/drawer": "6.6.14", + "@react-navigation/elements": "^1.3.29", + "@react-navigation/material-bottom-tabs": "6.2.27", + "@react-navigation/material-top-tabs": "6.6.12", + "@react-navigation/native": "6.1.16", + "@react-navigation/native-stack": "6.9.25", + "@react-navigation/routers": "6.1.9", + "@react-navigation/stack": "6.3.28", "@react-navigation/web": "1.0.0-alpha.9", - "@rnv/engine-rn-web": "0.37.3", - "@rnv/renative": "0.37.3", + "@rnv/renative": "1.0.0-rc.17", "@sentry/react": "6.13.3", "@sentry/react-native": "3.1.1", "@sentry/tracing": "6.13.3", - "next": "12.1.6", + "next": "14.1.4", "raf": "3.4.1", "react": "18.2.0", "react-art": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.67.2", + "react-native": "0.73.4", "react-native-carplay": "2.0.0", - "react-native-gesture-handler": "2.9.0", + "react-native-gesture-handler": "2.14.1", "react-native-google-cast": "4.6.0", "react-native-media-query": "2.0.0", - "react-native-reanimated": "1.13.3", - "react-native-safe-area-context": "4.3.4", - "react-native-screens": "3.20.0", + "react-native-reanimated": "3.6.1", + "react-native-safe-area-context": "4.9.0", + "react-native-screens": "3.29.0", "react-native-snap-carousel": "3.9.1", - "react-native-tvos": "0.66.3-1", + "react-native-tvos": "0.73.6-0", "react-native-vector-icons": "9.2.0", "react-native-web": "0.18.9", "tslib": "2.5.2" }, "devDependencies": { - "@flexn/create-template-starter": "1.3.0-alpha.2", - "@flexn/plugins": "1.0.9", - "@lightningjs/cli": "2.11.0", - "@react-native-community/cli": "^6.0.0", - "@react-native-community/cli-platform-ios": "^6.0.0", - "@rnv/engine-lightning": "0.37.3", - "@rnv/engine-rn": "0.37.3", - "@rnv/engine-rn-electron": "0.37.3", - "@rnv/engine-rn-next": "0.37.3", - "@rnv/engine-rn-tvos": "0.37.3", - "@rnv/engine-rn-web": "0.37.3", - "jetifier": "1.6.5", - "rnv": "0.37.3", - "ts-node": "^10.9.1", - "xcode": "2.1.0" - }, - "optionalDependencies": { - "ios-deploy": "1.10.0" + "@flexn/create-template-starter": "1.3.0-feat-rnv-update.19", + "@rnv/cli": "1.0.0-rc.17", + "@rnv/config-templates": "1.0.0-rc.17", + "@rnv/engine-rn": "1.0.0-rc.17", + "@rnv/engine-rn-electron": "1.0.0-rc.17", + "@rnv/engine-rn-next": "1.0.0-rc.17", + "@rnv/engine-rn-tvos": "1.0.0-rc.17", + "@rnv/engine-rn-web": "1.0.0-rc.17", + "jetifier": "1.6.5" }, "private": true, "browserslist": [ diff --git a/packages/app-harness/renative.json b/packages/app-harness/renative.json index 94805cca6..587edc98b 100644 --- a/packages/app-harness/renative.json +++ b/packages/app-harness/renative.json @@ -1,4 +1,5 @@ { + "$schema": ".rnv/schema/rnv.project.json", "extendsTemplate": "@flexn/create-template-starter/renative.json", "crypto": { "decrypt": { @@ -23,7 +24,7 @@ "projectName": "app-harness", "templates": { "@flexn/create-template-starter": { - "version": "1.3.0-alpha.2" + "version": "1.3.0-feat-rnv-update.19" } }, "platforms": { diff --git a/packages/app-harness/src/config.ts b/packages/app-harness/src/config.ts index ea1def325..71dfe6b0a 100644 --- a/packages/app-harness/src/config.ts +++ b/packages/app-harness/src/config.ts @@ -29,7 +29,7 @@ export const hasVerticalMenu = !hasHorizontalMenu && !hasFullScreenMenu; const isEngineNative = isEngineRn || isEngineRnMacos || isEngineRnWindows; // Disable yellow warnings UI -console.disableYellowBox = true; // eslint-disable-line no-console +// console.disableYellowBox = true; // eslint-disable-line no-console const theme = { color1: '#222222', @@ -68,6 +68,7 @@ export const themeStyles = StyleSheet.create({ alignSelf: 'stretch', width: '100%', }, + // @ts-expect-error - TODO: fix this modalContainer: isEngineRnWeb ? { position: 'absolute', diff --git a/packages/app-harness/src/navigation/index.tsx b/packages/app-harness/src/navigation/index.tsx index 2b58be431..f37e0c017 100644 --- a/packages/app-harness/src/navigation/index.tsx +++ b/packages/app-harness/src/navigation/index.tsx @@ -6,7 +6,7 @@ import Selector from '../screens/selector'; import testsList, { Test } from '../testsList'; export type RootStackParamList = { - List: { description: string; id: string } | undefined; + [key: string]: { description: string; id: string } | undefined; }; export type NavigationProps = StackScreenProps; diff --git a/packages/app-harness/src/screens/tests/complexTabs.tsx b/packages/app-harness/src/screens/tests/complexTabs.tsx index 100a06a72..2507bc12d 100644 --- a/packages/app-harness/src/screens/tests/complexTabs.tsx +++ b/packages/app-harness/src/screens/tests/complexTabs.tsx @@ -50,7 +50,7 @@ function generateData(width: number, height: number, items = 30) { for (let index = 0; index < items; index++) { temp.push({ index, - backgroundImage: `https://placekitten.com/${width}/${height}`, + backgroundImage: `https://picsum.photos/${width}/${height}`, title: `${kittyNames[interval()]} ${kittyNames[interval()]} ${kittyNames[interval()]}`, }); } diff --git a/packages/app-harness/src/screens/tests/directionalFocus.tsx b/packages/app-harness/src/screens/tests/directionalFocus.tsx index 641f986ad..a85f885f4 100644 --- a/packages/app-harness/src/screens/tests/directionalFocus.tsx +++ b/packages/app-harness/src/screens/tests/directionalFocus.tsx @@ -19,7 +19,7 @@ function generateData(width: number, height: number, items = 30) { for (let index = 0; index < items; index++) { temp.push({ index, - backgroundImage: `https://placekitten.com/${width + index}/${height}`, + backgroundImage: `https://picsum.photos/${width + index}/${height}`, title: `${kittyNames[interval()]} ${kittyNames[interval()]} ${kittyNames[interval()]}`, }); } diff --git a/packages/app-harness/src/screens/tests/dynamicRows.tsx b/packages/app-harness/src/screens/tests/dynamicRows.tsx index 650e2feb0..0ef7a2e99 100644 --- a/packages/app-harness/src/screens/tests/dynamicRows.tsx +++ b/packages/app-harness/src/screens/tests/dynamicRows.tsx @@ -17,7 +17,7 @@ function generateData(width: number, height: number, items = 30) { for (let index = 0; index < items; index++) { temp.push({ index, - backgroundImage: `https://placekitten.com/${width}/${height}`, + backgroundImage: `https://picsum.photos/${width}/${height}`, title: `${kittyNames[interval()]} ${kittyNames[interval()]} ${kittyNames[interval()]}`, }); } diff --git a/packages/app-harness/src/screens/tests/grid.tsx b/packages/app-harness/src/screens/tests/grid.tsx index 4de361d16..19c6ef3ab 100644 --- a/packages/app-harness/src/screens/tests/grid.tsx +++ b/packages/app-harness/src/screens/tests/grid.tsx @@ -17,7 +17,7 @@ function generateData(width: number, height: number, items = 30) { for (let index = 0; index < items; index++) { temp.push({ index, - backgroundImage: `https://placekitten.com/${width}/${height}`, + backgroundImage: `https://picsum.photos/${width}/${height}`, title: `${kittyNames[interval()]} ${kittyNames[interval()]} ${kittyNames[interval()]}`, }); } diff --git a/packages/app-harness/src/screens/tests/list.tsx b/packages/app-harness/src/screens/tests/list.tsx index 3859fe2ad..4482c855b 100644 --- a/packages/app-harness/src/screens/tests/list.tsx +++ b/packages/app-harness/src/screens/tests/list.tsx @@ -17,7 +17,7 @@ function generateData(width: number, height: number, items = 30) { for (let index = 0; index < items; index++) { temp.push({ index, - backgroundImage: `https://placekitten.com/${width + index}/${height}`, + backgroundImage: `https://picsum.photos/${width + index}/${height}`, title: `${kittyNames[interval()]} ${kittyNames[interval()]} ${kittyNames[interval()]}`, }); } diff --git a/packages/app-harness/src/screens/tests/overflow.tsx b/packages/app-harness/src/screens/tests/overflow.tsx index 087020df3..c4d802b0b 100644 --- a/packages/app-harness/src/screens/tests/overflow.tsx +++ b/packages/app-harness/src/screens/tests/overflow.tsx @@ -15,7 +15,7 @@ const Overflow = () => { {layer1Buttons.map((_, i) => ( @@ -30,7 +30,7 @@ const Overflow = () => { {layer2Buttons.map((_, i) => ( @@ -43,7 +43,7 @@ const Overflow = () => { ))} - + {layer3Buttons.map((_, i) => (