{ "name": "my-links", "version": "3.3.1", "type": "module", "license": "GPL-3.0-only", "scripts": { "start": "node bin/server.js", "build": "node ace build", "dev": "node ace serve --hmr", "test": "node ace test", "lint": "eslint . --report-unused-disable-directives --max-warnings 0 --ignore-pattern '.adonisjs/*'", "format": "prettier --write --parser typescript '**/*.{ts,tsx}'", "typecheck": "tsc --noEmit", "check": "pnpm run lint && pnpm run typecheck", "prepare": "husky", "release": "release-it", "generate-icons": "pwa-assets-generator", "tuyau": "node ace tuyau:generate" }, "imports": { "#admin/*": "./app/admin/*.js", "#adonis/api": "./.adonisjs/api.ts", "#auth/*": "./app/auth/*.js", "#api/*": "./app/api/*.js", "#collections/*": "./app/collections/*.js", "#config/*": "./config/*.js", "#core/*": "./app/core/*.js", "#favicons/*": "./app/favicons/*.js", "#home/*": "./app/home/*.js", "#legal/*": "./app/legal/*.js", "#links/*": "./app/links/*.js", "#search/*": "./app/search/*.js", "#shared_collections/*": "./app/shared_collections/*.js", "#user/*": "./app/user/*.js", "#user_settings/*": "./app/user_settings/*.js", "#providers/*": "./providers/*.js", "#database/*": "./database/*.js", "#tests/*": "./tests/*.js", "#shared/*": "./shared/*.js", "#start/*": "./start/*.js" }, "devDependencies": { "@adonisjs/assembler": "^7.8.2", "@adonisjs/eslint-config": "2.1.2", "@adonisjs/prettier-config": "^1.4.5", "@adonisjs/tsconfig": "^1.4.1", "@faker-js/faker": "^10.1.0", "@japa/assert": "^4.1.1", "@japa/plugin-adonisjs": "^4.0.0", "@japa/runner": "^4.4.0", "@swc/core": "^1.15.1", "@tuyau/utils": "^0.0.9", "@types/luxon": "^3.7.1", "@types/node": "^24.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@typescript-eslint/eslint-plugin": "^8.46.3", "@vite-pwa/assets-generator": "^1.0.2", "eslint": "^9.39.1", "hot-hook": "^0.4.0", "husky": "^9.1.7", "lint-staged": "^16.2.6", "pino-pretty": "^13.1.2", "postcss": "^8.5.6", "postcss-preset-mantine": "^1.18.0", "postcss-simple-vars": "^7.0.1", "prettier": "^3.6.2", "release-it": "^19.0.6", "ts-node-maintained": "^10.9.6", "typescript": "~5.9.3", "vite": "^7.2.2" }, "dependencies": { "@adonisjs/ally": "^5.1.1", "@adonisjs/auth": "^9.5.1", "@adonisjs/core": "^6.19.1", "@adonisjs/cors": "^2.2.1", "@adonisjs/inertia": "^3.1.1", "@adonisjs/lucid": "^21.8.1", "@adonisjs/session": "^7.5.1", "@adonisjs/shield": "^8.2.0", "@adonisjs/static": "^1.1.1", "@adonisjs/vite": "^4.0.0", "@inertiajs/react": "^2.2.15", "@izzyjs/route": "^2.1.7", "@mantine/core": "^8.3.6", "@mantine/hooks": "^8.3.6", "@mantine/modals": "^8.3.6", "@mantine/spotlight": "^8.3.6", "@tuyau/client": "^0.2.10", "@tuyau/core": "^0.4.2", "@tuyau/inertia": "^0.0.15", "@vinejs/vine": "^4.1.0", "@vitejs/plugin-react": "^5.1.0", "bentocache": "^1.5.0", "clsx": "^2.1.1", "dayjs": "^1.11.19", "edge.js": "^6.3.0", "i18next": "^25.6.1", "knex": "^3.1.0", "luxon": "^3.7.2", "node-html-parser": "^7.0.1", "pg": "^8.16.3", "react": "^19.2.0", "react-dom": "^19.2.0", "react-i18next": "^16.2.4", "react-icons": "^5.5.0", "reflect-metadata": "^0.2.2", "vite-plugin-pwa": "^1.1.0", "zustand": "^5.0.8" }, "hotHook": { "boundaries": [ "./app/**/controllers/*.ts", "./app/**/middleware/*.ts" ] }, "prettier": { "trailingComma": "es5", "semi": true, "singleQuote": true, "useTabs": true, "quoteProps": "as-needed", "bracketSpacing": true, "arrowParens": "always", "printWidth": 80 }, "lint-staged": { "*.js,*.ts,*.jsx,*.tsx": "eslint --cache --fix" }, "volta": { "node": "24.11.0" } }