mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-14 16:54:04 +00:00
Create the complete TypeScript foundation for the Vue 3 migration in a parallel scripts-v2/ directory. 72 files, 5430 lines, zero any types, strict mode. - types/ (21 files): Domain interfaces for all 17 entities derived from actual Laravel models and API resources. Enums for all statuses. Generic API response wrappers. - api/ (29 files): Typed axios client with interceptors, endpoint constants from routes/api.php, 25 typed service classes covering every API endpoint. - composables/ (14 files): Vue 3 composition functions for auth, notifications, dialogs, modals, pagination, filters, currency, dates, theme, sidebar, company context, and permissions. - utils/ (5 files): Pure typed utilities for money formatting, date formatting (date-fns), localStorage, and error handling. - config/ (3 files): Typed ability constants, app constants. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
66 lines
1.7 KiB
JSON
66 lines
1.7 KiB
JSON
{
|
|
"private": true,
|
|
"engines": {
|
|
"node": ">=24"
|
|
},
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"watch": "vite build --watch",
|
|
"build": "vite build",
|
|
"serve": "vite preview",
|
|
"test": "eslint ./resources/scripts"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/forms": "^0.5.10",
|
|
"@tailwindcss/typography": "^0.5.16",
|
|
"@tailwindcss/vite": "^4.0.0",
|
|
"@types/lodash": "^4.17.24",
|
|
"@vitejs/plugin-vue": "^6.0.0",
|
|
"@vue/compiler-sfc": "^3.5.13",
|
|
"eslint": "^10.0.0",
|
|
"eslint-config-prettier": "^10.0.0",
|
|
"eslint-plugin-vue": "^10.0.0",
|
|
"prettier": "^3.4.2",
|
|
"tailwind-scrollbar": "^4.0.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^6.0.2",
|
|
"vue-tsc": "^3.2.6"
|
|
},
|
|
"dependencies": {
|
|
"@headlessui/vue": "^1.7.23",
|
|
"@heroicons/vue": "^2.2.0",
|
|
"@popperjs/core": "^2.11.8",
|
|
"@stripe/stripe-js": "^2.4.0",
|
|
"@tiptap/core": "^3.0.0",
|
|
"@tiptap/extension-text-align": "^3.0.0",
|
|
"@tiptap/pm": "^3.0.0",
|
|
"@tiptap/starter-kit": "^3.0.0",
|
|
"@tiptap/vue-3": "^3.0.0",
|
|
"@types/node": "^24.0.0",
|
|
"@vuelidate/components": "^1.2.6",
|
|
"@vuelidate/core": "^2.0.3",
|
|
"@vuelidate/validators": "^2.0.4",
|
|
"@vueuse/core": "^14.0.0",
|
|
"axios": "1.14.0",
|
|
"chart.js": "^4.5.1",
|
|
"date-fns": "^4.1.0",
|
|
"guid": "^0.0.12",
|
|
"laravel-vite-plugin": "^3.0.0",
|
|
"lodash": "^4.17.21",
|
|
"maska": "^3.0.4",
|
|
"mini-svg-data-uri": "^1.4.4",
|
|
"moment": "^2.30.1",
|
|
"path": "^0.12.7",
|
|
"pinia": "^3.0.0",
|
|
"v-money3": "^3.24.1",
|
|
"v-tooltip": "^4.0.0-beta.17",
|
|
"vite": "^8.0.0",
|
|
"vue": "^3.5",
|
|
"vue-flatpickr-component": "^12.0.0",
|
|
"vue-i18n": "^11.0.1",
|
|
"vue-router": "^5.0.0",
|
|
"vuedraggable": "^4.1.0"
|
|
}
|
|
}
|