<|start_filename|>index.js<|end_filename|>
import { AppRegistry, YellowBox } from 'react-native';
import App from './src/App';

/**
 * NOTE: Add Base64 polyfill, sometimes atob and btoa is missing
 * */
import Base64 from 'Base64';
global.btoa = Base64.btoa;
global.atob = Base64.atob;

/**
 * React Native 0.54 warning message ignore.
 */
YellowBox.ignoreWarnings([
  'Warning: componentWillMount is deprecated',
  'Warning: componentWillReceiveProps is deprecated',
  'Module RCTImageLoader',
]);

AppRegistry.registerComponent('DoobooIAP', () => App);


<|start_filename|>android/raw/assets_langs_en.json<|end_filename|>
{
  "HELLO": "Hello",
  "LOGIN": "Login",
  "USER_ID": "User ID",
  "NAVIGATE": "Navigate to %{name}",
  "CHANGE_THEME": "Change theme",
  "USER_ID_HINT": "Please type in your user id.",
  "USER_ID_DESCRIPTION": "User ID is used to find out which user made a purchase. If you do not want to duplicate the purchase information with other users on the server, please enter an ID to prevent duplicates yourself.",
  "WRITE_USER_ID": "Please write user ID",
  "TOTAL_PURCHASE": "Total Purchase",
  "ONE_TIME_PURCHASE": "One time purchase",
  "SUBSCRIPTION_PURCHASE": "Periodic payment",
  "PURCHASE": "Purchase"
}


<|start_filename|>assets/langs/ko.json<|end_filename|>
{
  "HELLO": "안녕하세요",
  "LOGIN": "로그인",
  "SIGN_UP": "회원가입",
  "FIND_PW": "비밀번호 찾기",
  "NAVIGATE": "%{name}으로 이동",
  "CHANGE_THEME": "테마 변경",
  "WRITE_USER_ID": "사용자 아이디를 입력해주세요",
  "TOTAL_PURCHASE": "총 결재액",
  "ONE_TIME_PURCHASE": "일회성 구매",
  "SUBSCRIPTION_PURCHASE": "정기 결제",
  "PURCHASE": "구매하기",
  "EMAIL": "Email",
  "EMAIL_HINT": "이메일 주소를 입력해주세요",
  "EMAIL_SENT": "이메일 전송 완료",
  "PASSWORD": "<PASSWORD>",
  "PASSWORD_CONFIRM": "비<PASSWORD> 확인",
  "PASSWORD_HINT": "비밀번호를 입력해주세요",
  "AGREEMENT1": "다음 단계로 진행함과 동시에 ",
  "AGREEMENT2": "이용약관",
  "AGREEMENT3": " 및 ",
  "AGREEMENT4": "개인정보취급방침",
  "AGREEMENT5": "에 동의하는 것으로 간주합니다.",
  "NAME": "이름",
  "NAME_HINT": "이름을 입력해주세요",
  "SUCCESS": "성공",
  "ERROR": "오류",
  "EMAIL_VERIFICATION_SENT": "이메일 인증 메일을 보냈습니다",
  "EMAIL_PASSWORD_RESET_SENT": "비밀번호 재설정 메일을 보냈습니다",
  "VERIFY_EMAIL_ADDRESS": "메일함을 확인하여 이메일을 인증해주세요",
  "ERROR_CHECK_EMAIL": "이메일을 확인해주세요",
  "ERROR_CHECK_PASSWORD": "비밀번호를 확인해주세요",
  "PASSWORD_MUST_MATCH": "비밀번호가 일치하지 않습니다.",
  "LOGOUT": "로그아웃"
}


<|start_filename|>assets/langs/en.json<|end_filename|>
{
  "HELLO": "Hello",
  "LOGIN": "Login",
  "SIGN_UP": "Sign Up",
  "FIND_PW": "Find password",
  "NAVIGATE": "Navigate to %{name}",
  "CHANGE_THEME": "Change theme",
  "WRITE_USER_ID": "Please write user ID",
  "TOTAL_PURCHASE": "Total Purchase",
  "ONE_TIME_PURCHASE": "One time purchase",
  "SUBSCRIPTION_PURCHASE": "Periodic payment",
  "PURCHASE": "Purchase",
  "EMAIL": "Email",
  "EMAIL_HINT": "Please write email address",
  "EMAIL_SENT": "Email has sent",
  "PASSWORD": "Password",
  "PASSWORD_CONFIRM": "<PASSWORD>",
  "PASSWORD_HINT": "<PASSWORD> write password",
  "FORGOT_PW": "Forgot password?",
  "AGREEMENT1": "We consider that you agree with ",
  "AGREEMENT2": "Terms for Agreement",
  "AGREEMENT3": " and ",
  "AGREEMENT4": "Privacy Policy",
  "AGREEMENT5": " by going onto next step.",
  "NAME": "Name",
  "NAME_HINT": "Please write your name",
  "SUCCESS": "Success",
  "ERROR": "Error",
  "EMAIL_VERIFICATION_SENT": "Email verification sent",
  "EMAIL_PASSWORD_RESET_SENT": "Password reset email sent",
  "VERIFY_EMAIL_ADDRESS": "Please verify email in your email inbox",
  "ERROR_CHECK_EMAIL": "Please check your email address",
  "ERROR_CHECK_PASSWORD": "<PASSWORD>",
  "PASSWORD_MUST_MATCH": "Passwords must match.",
  "LOGOUT": "Logout"
}


<|start_filename|>.eslintrc.js<|end_filename|>
module.exports = {
  root: true,
  extends: '@dooboo/eslint-config',
  rules: {
    'react/display-name': 0,
    '@typescript-eslint/ban-ts-ignore': 0,
  },
};


<|start_filename|>package.json<|end_filename|>
{
  "name": "DoobooIAP",
  "version": "0.0.1",
  "description": "boilerplate for react-native by dooboolab!",
  "author": "hyochan <<EMAIL>>",
  "private": true,
  "postinstall": "npx jetify",
  "scripts": {
    "dev": "node node_modules/react-native/local-cli/cli.js start",
    "tsc": "tsc",
    "watch": "tsc -w",
    "cp:config": "cp .env.sample .env",
    "start": "npm run dev",
    "codecov": "codecov",
    "postinstall": "npx jetify",
    "upgrade": "react-native-git-upgrade && npm install --save react-native",
    "upgrade:major": "react-native upgrade",
    "test": "jest",
    "start:packager": "node_modules/react-native/packager/packager.sh",
    "start:reset": "node node_modules/react-native/local-cli/cli.js start --reset-cache",
    "android": "node node_modules/react-native/local-cli/cli.js run-android",
    "android:shake": "adb shell input keyevent 82",
    "android:log": "adb logcat '*:S' ReactNative:V ReactNativeJS:V",
    "android:apk": "cd android && ./gradlew assembleRelease",
    "android:release": "node node_modules/react-native/local-cli/cli.js run-android --variant=release",
    "ios": "node node_modules/react-native/local-cli/cli.js run-ios",
    "ios:release": "node node_modules/react-native/local-cli/cli.js run-ios --configuration Release",
    "ios:devices": "xcrun simctl list devices",
    "ios:dooboolab": "node node_modules/react-native/local-cli/cli.js run-ios --device 'dooboolab'",
    "ios:dooboolab-release": "node node_modules/react-native/local-cli/cli.js run-ios --configuration Release --device 'dooboolab'",
    "ios:iphone5": "node node_modules/react-native/local-cli/cli.js run-ios  --simulator='iPhone 5s'",
    "ios:iphone7": "node node_modules/react-native/local-cli/cli.js run-ios  --simulator='iPhone 7'",
    "ios:reset": "rm -rf ios/build/ModuleCache",
    "lint": "eslint src --ext .ts,.tsx,.js,.jsx",
    "lint:fix": "eslint src --ext .ts,.tsx,.js,.jsx --fix",
    "prettier": "prettier --check src/**/**.{ts,tsx,js,jsx}",
    "prettier:fix": "prettier --write src/**/**.{ts,tsx,js,jsx}",
    "build:ios": "react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ./ios",
    "build:android": "react-native bundle --entry-file index.js --platform android --dev false --bundle-output android/main.jsbundle --assets-dest ./android"
  },
  "dependencies": {
    "@dooboo-ui/native": "^0.6.0",
    "@dooboo-ui/native-theme": "^0.1.5",
    "@react-native-community/masked-view": "^0.1.6",
    "@react-navigation/core": "^5.1.6",
    "@react-navigation/native": "^5.0.7",
    "@react-navigation/stack": "^5.0.8",
    "Base64": "^1.1.0",
    "firebase": "^7.9.1",
    "i18n-js": "^3.5.1",
    "react": "16.9.0",
    "react-native": "0.61.5",
    "react-native-config": "^0.12.0",
    "react-native-dark-mode": "^0.2.2",
    "react-native-gesture-handler": "^1.6.0",
    "react-native-iap": "^4.4.1",
    "react-native-localize": "^1.3.3",
    "react-native-reanimated": "^1.7.0",
    "react-native-safe-area-context": "^0.7.3",
    "react-native-screens": "^2.0.0-beta.10",
    "react-native-splash-screen": "^3.2.0",
    "react-native-webview": "^8.1.2",
    "styled-components": "^5.0.1"
  },
  "devDependencies": {
    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.8.4",
    "@babel/plugin-proposal-class-properties": "^7.8.3",
    "@babel/plugin-proposal-decorators": "7.8.3",
    "@babel/plugin-proposal-object-rest-spread": "^7.8.3",
    "@babel/plugin-transform-runtime": "7.8.3",
    "@babel/preset-typescript": "^7.8.3",
    "@babel/runtime": "^7.8.4",
    "@bam.tech/react-native-make": "^1.0.3",
    "@dooboo/eslint-config": "^0.3.7",
    "@testing-library/jest-native": "^3.1.0",
    "@testing-library/react-native": "^5.0.3",
    "@types/i18n-js": "^3.0.1",
    "@types/jest": "^25.1.3",
    "@types/react": "^16.9.22",
    "@types/react-native": "^0.61.16",
    "@types/react-test-renderer": "^16.9",
    "@types/styled-components": "^5.0.0",
    "babel-jest": "25.1.0",
    "babel-preset-react-native": "^5.0.2",
    "codecov": "^3.6.5",
    "eslint": "^6.8.0",
    "husky": "^4.2.3",
    "jest": "^25.1.0",
    "jest-fetch-mock": "^3.0.1",
    "jest-styled-components": "^7.0.0",
    "jetifier": "^1.6.5",
    "metro-react-native-babel-preset": "^0.58.0",
    "prettier": "^1.19.1",
    "pretty-quick": "^2.0.1",
    "react-dom": "^16.9.0",
    "react-test-renderer": "^16.9.0",
    "ts-jest": "^25.2.1",
    "typescript": "3.8.2"
  },
  "husky": {
    "hooks": {
      "pre-commit": "yarn lint:fix && pretty-quick --staged"
    }
  }
}


<|start_filename|>android/raw/assets_langs_ko.json<|end_filename|>
{
  "HELLO": "안녕하세요",
  "LOGIN": "로그인",
  "USER_ID": "사용자 아이디",
  "NAVIGATE": "%{name}으로 이동",
  "CHANGE_THEME": "테마 변경",
  "USER_ID_HINT": "당신의 사용자 ID를 입력해주세요.",
  "USER_ID_DESCRIPTION": "사용자 아이디는 어떠한 사용자가 구매를 했는지 알아내기 위해서 사용됩니다. 만약 서버에서 다른 사용자와의 구매정보가 중복되기를 원치 않으시면 스스로 중복을 방지할 만한 아이디를 입력해주시기 바랍니다.",
  "WRITE_USER_ID": "사용자 아이디를 입력해주세요.",
  "TOTAL_PURCHASE": "총 결재액",
  "ONE_TIME_PURCHASE": "일회성 구매",
  "SUBSCRIPTION_PURCHASE": "정기 결제",
  "PURCHASE": "구매하기"
}
