Migrate JavaScript to TypeScript with full type safety

- Rename all .js/.jsx files to .ts/.tsx across resources/js and theme dirs
- Add TypeScript 6.0 with strict mode, tsconfig.json
- Add type definitions for Inertia page props, Alpine.js, Turbolinks
- Update vite.config.js entries to .ts/.tsx extensions
- Update all Blade @vite() calls to match new .ts/.tsx entry points
- Add TypeScript ESLint config (replacing unused Vue plugin)
- Add @types/react, @types/react-dom, @types/lodash
- Add typecheck script and integrate into check pipeline
- Full tsc --noEmit, ESLint, and production build pass cleanly
This commit is contained in:
root
2026-06-18 17:00:00 +02:00
parent 4aa6f01779
commit e6d92f27b3
41 changed files with 986 additions and 680 deletions
+84 -22
View File
@@ -1,15 +1,26 @@
{
"_axios-Bb9VWCvi.js": {
"file": "assets/axios-Bb9VWCvi.js",
"_axios-BEkq_c61.js": {
"file": "assets/axios-BEkq_c61.js",
"name": "axios",
"imports": [
"_chunk-QTnfLwEv.js"
"_chunk-b3L32Ng1.js"
]
},
"_chunk-QTnfLwEv.js": {
"file": "assets/chunk-QTnfLwEv.js",
"_chunk-b3L32Ng1.js": {
"file": "assets/chunk-b3L32Ng1.js",
"name": "chunk"
},
"_swiper-Cjlszzo3.js": {
"file": "assets/swiper-Cjlszzo3.js",
"name": "swiper",
"css": [
"assets/swiper-CrMA9oas.css"
]
},
"_swiper-CrMA9oas.css": {
"file": "assets/swiper-CrMA9oas.css",
"src": "_swiper-CrMA9oas.css"
},
"public/assets/images/background-dark.jpg": {
"file": "assets/background-dark-BfkMu3-0.jpg",
"src": "public/assets/images/background-dark.jpg"
@@ -18,6 +29,18 @@
"file": "assets/background-light-CP7oKwVT.jpg",
"src": "public/assets/images/background-light.jpg"
},
"public/assets/images/dusk/background_image.png": {
"file": "assets/background_image-BH7pVpv1.png",
"src": "public/assets/images/dusk/background_image.png"
},
"public/assets/images/dusk/leaderboard_circle_image.png": {
"file": "assets/leaderboard_circle_image-BYkDVX69.png",
"src": "public/assets/images/dusk/leaderboard_circle_image.png"
},
"public/assets/images/dusk/store_icon.png": {
"file": "assets/store_icon-B52tsSKO.png",
"src": "public/assets/images/dusk/store_icon.png"
},
"public/assets/images/icons/article.gif": {
"file": "assets/article-CYhGsSKA.gif",
"src": "public/assets/images/icons/article.gif"
@@ -111,7 +134,7 @@
"src": "public/assets/images/profile/profile-bg.png"
},
"resources/css/global.css": {
"file": "assets/global-DmKtm1TC.css",
"file": "assets/global-CwMfkl9f.css",
"name": "global",
"names": [
"global.css"
@@ -146,27 +169,27 @@
"assets/community-Do_t1zw9.png"
]
},
"resources/js/global.js": {
"file": "assets/global-r22-sRCc.js",
"resources/js/global.ts": {
"file": "assets/global-B6tm4RcQ.js",
"name": "global",
"src": "resources/js/global.js",
"src": "resources/js/global.ts",
"isEntry": true,
"imports": [
"_chunk-QTnfLwEv.js",
"_axios-Bb9VWCvi.js"
"_chunk-b3L32Ng1.js",
"_axios-BEkq_c61.js"
]
},
"resources/js/ssr.jsx": {
"file": "assets/ssr-DdmZbD73.js",
"resources/js/ssr.tsx": {
"file": "assets/ssr-GVDc-G73.js",
"name": "ssr",
"src": "resources/js/ssr.jsx",
"src": "resources/js/ssr.tsx",
"isEntry": true,
"imports": [
"_chunk-QTnfLwEv.js"
"_chunk-b3L32Ng1.js"
]
},
"resources/themes/atom/css/app.css": {
"file": "assets/app-DtTGSxkD.css",
"file": "assets/app-BPKvU7LK.css",
"name": "app",
"names": [
"app.css"
@@ -201,17 +224,56 @@
"assets/community-Do_t1zw9.png"
]
},
"resources/themes/atom/js/app.js": {
"file": "assets/app-CAkt-7PZ.js",
"resources/themes/atom/js/app.ts": {
"file": "assets/app-evCrhLY1.js",
"name": "app",
"src": "resources/themes/atom/js/app.js",
"src": "resources/themes/atom/js/app.ts",
"isEntry": true,
"imports": [
"_chunk-QTnfLwEv.js",
"_axios-Bb9VWCvi.js"
"_chunk-b3L32Ng1.js",
"_swiper-Cjlszzo3.js",
"_axios-BEkq_c61.js"
]
},
"resources/themes/dusk/css/app.css": {
"file": "assets/app-CHSILL1f.css",
"name": "app",
"names": [
"app.css"
],
"src": "resources/themes/dusk/css/app.css",
"isEntry": true,
"assets": [
"assets/background_image-BH7pVpv1.png",
"assets/feeds-BtHcJdHX.png",
"assets/chat-r5H1PnTg.png",
"assets/article-CYhGsSKA.gif",
"assets/lighthouse-BON6qnQ0.png",
"assets/store_icon-B52tsSKO.png",
"assets/catalog-D-956oDx.png",
"assets/inventory-BlHYLNGT.png",
"assets/due-chat-CeO4yxLu.png",
"assets/friends-BxpcKlvz.png",
"assets/credits-Dpg5Nmby.png",
"assets/duckets-CaGJI1Oy.png",
"assets/diamonds-BtfqKoQu.png",
"assets/trophy-gold-bbKmpkii.png",
"assets/trophy-silver-bGfHJkQ_.png",
"assets/trophy-bronze-CgV5j1MU.png",
"assets/leaderboard_circle_image-BYkDVX69.png"
]
},
"resources/themes/dusk/js/app.ts": {
"file": "assets/app-DKy1JARZ.js",
"name": "app",
"src": "resources/themes/dusk/js/app.ts",
"isEntry": true,
"imports": [
"_swiper-Cjlszzo3.js",
"_axios-BEkq_c61.js"
],
"css": [
"assets/app-CeYfhhVD.css"
"assets/app-DU8Y3NnC.css"
]
}
}