refactor: code quality cleanup — remove any types, add logger, rename Kine to Tabata

- Phase 0: Rename all Kine references to Tabata (types, files, imports, i18n, analytics events)
- Phase 1: Add test coverage for tabataProgramStore, workoutProgramStore, and color utils (47 tests)
- Phase 2: Remove all `any` types from production code with proper typed replacements
- Phase 3: Replace ~60 raw console.* calls with __DEV__-gated logger utility
- Phase 4: Verify .DS_Store housekeeping (already clean)

0 TypeScript errors, 583/583 tests passing.
This commit is contained in:
Millian Lamiaux
2026-04-17 18:56:24 +02:00
parent e0e02c4550
commit 791f432334
176 changed files with 16508 additions and 2305 deletions

50
package-lock.json generated
View File

@@ -8,7 +8,10 @@
"name": "tabatafit",
"version": "1.0.0",
"dependencies": {
"@expo-google-fonts/dm-mono": "^0.4.2",
"@expo-google-fonts/dm-serif-display": "^0.4.2",
"@expo-google-fonts/inter": "^0.4.2",
"@expo-google-fonts/outfit": "^0.4.3",
"@expo/ui": "~0.2.0-beta.9",
"@react-native-async-storage/async-storage": "^2.2.0",
"@react-navigation/bottom-tabs": "^7.4.0",
@@ -26,6 +29,7 @@
"expo-device": "~8.0.10",
"expo-file-system": "~19.0.21",
"expo-font": "~14.0.11",
"expo-gl": "~16.0.10",
"expo-haptics": "~15.0.8",
"expo-image": "~3.0.11",
"expo-keep-awake": "~15.0.8",
@@ -1994,12 +1998,30 @@
}
}
},
"node_modules/@expo-google-fonts/dm-mono": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@expo-google-fonts/dm-mono/-/dm-mono-0.4.2.tgz",
"integrity": "sha512-loMaZOkQRs1r7yt4rN39zcr9e0J+smwnSx929yuODkuiPfsY4PaW18C9SEZ0BvXfcBKoRhatGoIBl8V2MOYVPQ==",
"license": "MIT AND OFL-1.1"
},
"node_modules/@expo-google-fonts/dm-serif-display": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@expo-google-fonts/dm-serif-display/-/dm-serif-display-0.4.2.tgz",
"integrity": "sha512-onlO8xAzsgMbKcwUE+fAgJ5AFHhk06VtaDN7eQOJwjV65QIciDKTiSNu1ymHc4m6g/x6D9OqPIYPXdTNIfaEaA==",
"license": "MIT AND OFL-1.1"
},
"node_modules/@expo-google-fonts/inter": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@expo-google-fonts/inter/-/inter-0.4.2.tgz",
"integrity": "sha512-syfiImMaDmq7cFi0of+waE2M4uSCyd16zgyWxdPOY7fN2VBmSLKEzkfbZgeOjJq61kSqPBNNtXjggiQiSD6gMQ==",
"license": "MIT AND OFL-1.1"
},
"node_modules/@expo-google-fonts/outfit": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@expo-google-fonts/outfit/-/outfit-0.4.3.tgz",
"integrity": "sha512-2uQmDVJencWLllxds6SG92E+SjxyZfvg7eZKZ5XLHggmm5AuUyQK7lzMAFOUzT6kheq2kJ7BAiubMdjKT32fJg==",
"license": "MIT AND OFL-1.1"
},
"node_modules/@expo/code-signing-certificates": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.6.tgz",
@@ -7591,6 +7613,34 @@
"react-native": "*"
}
},
"node_modules/expo-gl": {
"version": "16.0.10",
"resolved": "https://registry.npmjs.org/expo-gl/-/expo-gl-16.0.10.tgz",
"integrity": "sha512-/pPlSJvfmrGuW+UXBRVADr52nhiHFwRGXB8shhQb+b6KKreCuTmQZUASznAXS6YaHNjkOghmkaUW0hRnyiAwBQ==",
"license": "MIT",
"dependencies": {
"invariant": "^2.2.4"
},
"peerDependencies": {
"expo": "*",
"react": "*",
"react-dom": "*",
"react-native": "*",
"react-native-reanimated": "*",
"react-native-web": "*"
},
"peerDependenciesMeta": {
"react-dom": {
"optional": true
},
"react-native-reanimated": {
"optional": true
},
"react-native-web": {
"optional": true
}
}
},
"node_modules/expo-haptics": {
"version": "15.0.8",
"resolved": "https://registry.npmjs.org/expo-haptics/-/expo-haptics-15.0.8.tgz",