diff --git a/.github/workflows/frontend-admin-build.yml b/.github/workflows/frontend-admin-build.yml index 3c2bbe24..5b6639e1 100644 --- a/.github/workflows/frontend-admin-build.yml +++ b/.github/workflows/frontend-admin-build.yml @@ -32,55 +32,6 @@ jobs: working-directory: frontend-admin run: npx tsc --noEmit - build-apk-preview: - needs: typecheck - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - cache-dependency-path: frontend-admin/package-lock.json - - - name: Setup Expo & EAS CLI - uses: expo/expo-github-action@v8 - with: - eas-version: latest - token: ${{ secrets.EXPO_TOKEN }} - - - name: Install dependencies - working-directory: frontend-admin - run: npm ci - - - name: Inject EAS project ID - working-directory: frontend-admin - run: | - jq '.expo.extra.eas.projectId = "${{ secrets.EXPO_PROJECT_ID }}"' app.json > app.tmp.json - mv app.tmp.json app.json - - - name: Build production APK - working-directory: frontend-admin - env: - EAS_BUILD_NO_EXPO_GO_WARNING: true - run: eas build --platform android --profile preview --non-interactive - - - name: Download production APK - working-directory: frontend-admin - run: | - APK_URL=$(eas build:list --platform android --status finished --limit 1 --json --non-interactive | jq -r '.[0].artifacts.buildUrl') - curl -L -o admin-panel-prod.apk "$APK_URL" - - - name: Upload production APK artifact - uses: actions/upload-artifact@v4 - with: - name: admin-panel-android-prod-apk - path: frontend-admin/admin-panel-prod.apk - retention-days: 14 - build-apk-prod: needs: typecheck runs-on: ubuntu-latest diff --git a/.github/workflows/frontend-client-build.yml b/.github/workflows/frontend-client-build.yml index 47f125ba..dfd1e956 100644 --- a/.github/workflows/frontend-client-build.yml +++ b/.github/workflows/frontend-client-build.yml @@ -32,59 +32,6 @@ jobs: working-directory: mobile run: npx tsc --noEmit - build-apk-preview: - needs: typecheck - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - cache-dependency-path: mobile/package-lock.json - - - name: Setup Expo & EAS CLI - uses: expo/expo-github-action@v8 - with: - eas-version: latest - token: ${{ secrets.EXPO_TOKEN }} - - - name: Install dependencies - working-directory: mobile - run: npm ci - - - name: Inject EAS project ID - working-directory: mobile - run: | - jq '.expo.extra.eas.projectId = "${{ secrets.EXPO_PROJECT_ID_CLIENT }}"' app.json > app.tmp.json - mv app.tmp.json app.json - - - name: Debug app.json - working-directory: mobile - run: cat app.json - - - name: Build production APK - working-directory: mobile - env: - EAS_BUILD_NO_EXPO_GO_WARNING: true - run: eas build --platform android --profile preview --non-interactive - - - name: Download production APK - working-directory: mobile - run: | - APK_URL=$(eas build:list --platform android --status finished --limit 1 --json --non-interactive | jq -r '.[0].artifacts.buildUrl') - curl -L -o client-panel-prod.apk "$APK_URL" - - - name: Upload production APK artifact - uses: actions/upload-artifact@v4 - with: - name: client-panel-android-prod-apk - path: mobile/client-panel-prod.apk - retention-days: 14 - build-apk-prod: needs: typecheck runs-on: ubuntu-latest diff --git a/frontend-admin/src/api/tomtom.ts b/frontend-admin/src/api/tomtom.ts index b8d007d8..52e8e556 100644 --- a/frontend-admin/src/api/tomtom.ts +++ b/frontend-admin/src/api/tomtom.ts @@ -10,7 +10,7 @@ export interface LatLng { export interface RouteInfo { distance: string; // e.g. "2.4 km" - duration: string; // e.g. "8 min" + duration: string; distanceMeters: number; durationSeconds: number; coordinates: LatLng[]; diff --git a/mobile/package-lock.json b/mobile/package-lock.json index 2a8b963c..88208025 100644 --- a/mobile/package-lock.json +++ b/mobile/package-lock.json @@ -16,6 +16,7 @@ "axios": "^1.13.4", "expo": "~54.0.33", "expo-av": "~16.0.8", + "expo-build-properties": "~1.0.10", "expo-constants": "~18.0.13", "expo-device": "~8.0.10", "expo-font": "~14.0.11", @@ -3732,6 +3733,21 @@ "node": ">= 14" } }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "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/anser": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", @@ -5168,6 +5184,18 @@ } } }, + "node_modules/expo-build-properties": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/expo-build-properties/-/expo-build-properties-1.0.10.tgz", + "integrity": "sha512-mFCZbrbrv0AP5RB151tAoRzwRJelqM7bCJzCkxpu+owOyH+p/rFC/q7H5q8B9EpVWj8etaIuszR+gKwohpmu1Q==", + "dependencies": { + "ajv": "^8.11.0", + "semver": "^7.6.0" + }, + "peerDependencies": { + "expo": "*" + } + }, "node_modules/expo-constants": { "version": "18.0.13", "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.13.tgz", @@ -6053,6 +6081,21 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -7287,6 +7330,11 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "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==" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", diff --git a/mobile/package.json b/mobile/package.json index f88e7229..1e085603 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -17,6 +17,7 @@ "axios": "^1.13.4", "expo": "~54.0.33", "expo-av": "~16.0.8", + "expo-build-properties": "~1.0.10", "expo-constants": "~18.0.13", "expo-device": "~8.0.10", "expo-font": "~14.0.11",