Compare commits

..

8 Commits

Author SHA1 Message Date
root
7df91a8e55 feat: add splash and adaptive icon assets, ignore EAS credentials
Some checks failed
Build (EAS) / EAS Build (Android Preview APK) (push) Failing after 3m41s
2026-02-21 17:56:35 +08:00
92532306ab test: verify host-based runner executes builds
Some checks failed
Build (EAS) / EAS Build (Android Preview APK) (push) Failing after 6m6s
2026-02-20 08:54:45 +08:00
5a885990b9 test: verify runner executes builds
Some checks failed
Build (EAS) / EAS Build (Android Preview APK) (push) Failing after 9m43s
2026-02-20 08:19:13 +08:00
27efa10ece test: verify EAS build pipeline with EXPO_TOKEN
Some checks are pending
Build (EAS) / EAS Build (Android Preview APK) (push) Waiting to run
2026-02-20 07:47:34 +08:00
root
6f02dee5c6 fix: add NativeWind types to tsconfig — resolves 241 TS errors
Some checks are pending
Build (EAS) / EAS Build (Android Preview APK) (push) Waiting to run
2026-02-20 03:07:01 +08:00
root
059de91a04 fix: add app icons and splash image for EAS build
Some checks are pending
Build (EAS) / EAS Build (Android Preview APK) (push) Waiting to run
2026-02-20 01:33:26 +08:00
root
0e9c953564 fix: add .npmrc legacy-peer-deps for EAS build compatibility
Some checks are pending
Build (EAS) / EAS Build (Android Preview APK) (push) Waiting to run
2026-02-20 00:44:31 +08:00
root
e01769b025 fix: add package-lock, EAS project ID, local credentials config
Some checks are pending
Build (EAS) / EAS Build (Android Preview APK) (push) Waiting to run
2026-02-19 23:56:01 +08:00
13 changed files with 155 additions and 82 deletions

4
.easignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules/
.expo/
*.keystore
credentials.json

4
.gitignore vendored
View File

@@ -10,3 +10,7 @@ npm-debug.*
*.orig.* *.orig.*
web-build/ web-build/
.env .env
# EAS credentials (generated locally, managed by Expo)
credentials.json
*.keystore

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
legacy-peer-deps=true

4
README.md Normal file
View File

@@ -0,0 +1,4 @@
<!-- EAS Build Pipeline Test - Fri Feb 20 07:47:34 AM PST 2026 -->
<!-- Runner test Fri Feb 20 08:19:13 AM PST 2026 -->
<!-- Host runner test Fri Feb 20 08:54:45 AM PST 2026 -->

View File

@@ -8,6 +8,7 @@
"scheme": "territorylog", "scheme": "territorylog",
"userInterfaceStyle": "light", "userInterfaceStyle": "light",
"splash": { "splash": {
"image": "./assets/images/splash.png",
"resizeMode": "contain", "resizeMode": "contain",
"backgroundColor": "#1A6B72" "backgroundColor": "#1A6B72"
}, },
@@ -17,10 +18,19 @@
}, },
"android": { "android": {
"adaptiveIcon": { "adaptiveIcon": {
"foregroundImage": "./assets/images/adaptive-icon.png",
"backgroundColor": "#1A6B72" "backgroundColor": "#1A6B72"
}, },
"package": "com.juankibin.territorylog", "package": "com.juankibin.territorylog",
"versionCode": 1 "versionCode": 1,
"permissions": [
"android.permission.ACCESS_COARSE_LOCATION",
"android.permission.ACCESS_FINE_LOCATION",
"android.permission.USE_BIOMETRIC",
"android.permission.USE_FINGERPRINT",
"android.permission.CAMERA",
"android.permission.RECORD_AUDIO"
]
}, },
"web": { "web": {
"bundler": "metro" "bundler": "metro"
@@ -49,6 +59,14 @@
], ],
"experiments": { "experiments": {
"typedRoutes": true "typedRoutes": true
},
"extra": {
"router": {
"origin": false
},
"eas": {
"projectId": "3cbc82c9-a3ef-4589-9984-0e71b6474d9c"
}
} }
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
assets/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
assets/images/splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -10,8 +10,10 @@
"preview": { "preview": {
"distribution": "internal", "distribution": "internal",
"android": { "android": {
"buildType": "apk" "buildType": "apk",
} "credentialsSource": "local"
},
"credentialsSource": "local"
}, },
"production": { "production": {
"android": { "android": {

140
package-lock.json generated
View File

@@ -9,6 +9,8 @@
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@gorhom/bottom-sheet": "^5.0.0", "@gorhom/bottom-sheet": "^5.0.0",
"ajv": "^8.18.0",
"ajv-keywords": "^5.1.0",
"expo": "~52.0.0", "expo": "~52.0.0",
"expo-camera": "~16.0.0", "expo-camera": "~16.0.0",
"expo-crypto": "~13.0.0", "expo-crypto": "~13.0.0",
@@ -1760,6 +1762,30 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/@eslint/eslintrc/node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.57.1", "version": "8.57.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
@@ -4571,16 +4597,15 @@
} }
}, },
"node_modules/ajv": { "node_modules/ajv": {
"version": "6.12.6", "version": "8.18.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.3",
"fast-json-stable-stringify": "^2.0.0", "fast-uri": "^3.0.1",
"json-schema-traverse": "^0.4.1", "json-schema-traverse": "^1.0.0",
"uri-js": "^4.2.2" "require-from-string": "^2.0.2"
}, },
"funding": { "funding": {
"type": "github", "type": "github",
@@ -4604,28 +4629,6 @@
} }
} }
}, },
"node_modules/ajv-formats/node_modules/ajv": {
"version": "8.18.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
"integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ajv-formats/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/ajv-keywords": { "node_modules/ajv-keywords": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
@@ -7073,6 +7076,23 @@
"url": "https://eslint.org/donate" "url": "https://eslint.org/donate"
} }
}, },
"node_modules/eslint-plugin-expo/node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/eslint-plugin-expo/node_modules/eslint": { "node_modules/eslint-plugin-expo/node_modules/eslint": {
"version": "9.39.2", "version": "9.39.2",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz",
@@ -7221,6 +7241,13 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/eslint-plugin-expo/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/eslint-plugin-import": { "node_modules/eslint-plugin-import": {
"version": "2.32.0", "version": "2.32.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
@@ -7391,6 +7418,30 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/eslint/node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/espree": { "node_modules/espree": {
"version": "9.6.1", "version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
@@ -9838,10 +9889,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/json-schema-traverse": { "node_modules/json-schema-traverse": {
"version": "0.4.1", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/json-stable-stringify-without-jsonify": { "node_modules/json-stable-stringify-without-jsonify": {
@@ -13479,28 +13529,6 @@
"url": "https://opencollective.com/webpack" "url": "https://opencollective.com/webpack"
} }
}, },
"node_modules/schema-utils/node_modules/ajv": {
"version": "8.18.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
"integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/schema-utils/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/selfsigned": { "node_modules/selfsigned": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",

View File

@@ -10,39 +10,44 @@
"lint": "eslint . --ext .ts,.tsx" "lint": "eslint . --ext .ts,.tsx"
}, },
"dependencies": { "dependencies": {
"@gorhom/bottom-sheet": "^5.0.0",
"ajv": "^8.18.0",
"ajv-keywords": "^5.1.0",
"expo": "~52.0.0", "expo": "~52.0.0",
"expo-crypto": "~13.0.0",
"expo-router": "~4.0.0",
"expo-sqlite": "~15.0.0",
"expo-location": "~18.0.0",
"expo-local-authentication": "~14.0.0",
"expo-camera": "~16.0.0", "expo-camera": "~16.0.0",
"expo-sharing": "~12.0.0", "expo-crypto": "~13.0.0",
"expo-document-picker": "~12.0.0", "expo-document-picker": "~12.0.0",
"expo-file-system": "~18.0.0", "expo-file-system": "~18.0.0",
"expo-local-authentication": "~14.0.0",
"expo-location": "~18.0.0",
"expo-router": "~4.0.0",
"expo-secure-store": "~14.0.1",
"expo-sharing": "~12.0.0",
"expo-sqlite": "~15.0.0",
"lucide-react-native": "^0.460.0",
"nativewind": "^4.0.0",
"react": "18.3.1", "react": "18.3.1",
"react-native": "0.76.7", "react-native": "0.76.7",
"expo-secure-store": "~14.0.1", "react-native-gesture-handler": "~2.20.0",
"react-native-map-clustering": "^1.1.0",
"react-native-maps": "1.27.1",
"react-native-qrcode-svg": "^6.3.0", "react-native-qrcode-svg": "^6.3.0",
"react-native-reanimated": "~3.16.0",
"react-native-safe-area-context": "4.12.0", "react-native-safe-area-context": "4.12.0",
"react-native-screens": "~4.0.0", "react-native-screens": "~4.0.0",
"react-native-gesture-handler": "~2.20.0",
"react-native-reanimated": "~3.16.0",
"@gorhom/bottom-sheet": "^5.0.0",
"zustand": "^5.0.0",
"nativewind": "^4.0.0",
"lucide-react-native": "^0.460.0",
"react-native-svg": "15.8.0", "react-native-svg": "15.8.0",
"react-native-maps": "1.27.1", "zustand": "^5.0.0"
"react-native-map-clustering": "^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.25.0", "@babel/core": "^7.25.0",
"@types/react": "~18.3.12", "@types/react": "~18.3.12",
"typescript": "^5.3.0",
"tailwindcss": "^3.4.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-expo": "~8.0.0", "eslint-config-expo": "~8.0.0",
"prettier": "^3.3.0" "prettier": "^3.3.0",
"tailwindcss": "^3.4.0",
"typescript": "^5.3.0"
},
"engines": {
"node": ">=18.0.0"
} }
} }

View File

@@ -4,6 +4,13 @@
"strict": true, "strict": true,
"paths": { "paths": {
"@/*": ["./*"] "@/*": ["./*"]
} },
} "types": ["nativewind/types"]
},
"include": [
"**/*.ts",
"**/*.tsx",
".expo/types/**/*.d.ts",
"expo-env.d.ts"
]
} }