virastack 0.0.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +94 -18
- package/bin/virastack.js +7 -0
- package/package.json +43 -9
- package/src/commands/add.js +64 -0
- package/src/commands/init.js +286 -0
- package/src/i18n.js +231 -0
- package/src/index.js +64 -0
- package/src/utils/args.js +60 -0
- package/src/utils/copy-template.js +81 -0
- package/src/utils/exec.js +29 -0
- package/src/utils/git.js +38 -0
- package/src/utils/is-online.js +14 -0
- package/src/utils/package-info.js +12 -0
- package/src/utils/package-manager.js +33 -0
- package/src/utils/setup-env.js +25 -0
- package/src/utils/telemetry.js +86 -0
- package/src/utils/tools.js +48 -0
- package/src/utils/update-package-json.js +44 -0
- package/src/utils/update-readme.js +25 -0
- package/src/utils/validate-project-name.js +26 -0
- package/templates/nextjs/.changeset/README.md +8 -0
- package/templates/nextjs/.changeset/config.json +11 -0
- package/templates/nextjs/.env.example +6 -0
- package/templates/nextjs/.env.local +6 -0
- package/templates/nextjs/.eslintcache +1 -0
- package/templates/nextjs/.github/workflows/ci.yml +41 -0
- package/templates/nextjs/.husky/commit-msg +1 -0
- package/templates/nextjs/.husky/pre-commit +1 -0
- package/templates/nextjs/.husky/pre-push +1 -0
- package/templates/nextjs/.prettierignore +6 -0
- package/templates/nextjs/.prettierrc +42 -0
- package/templates/nextjs/.vscode/extensions.json +7 -0
- package/templates/nextjs/.vscode/settings.json +20 -0
- package/templates/nextjs/LICENSE +21 -0
- package/templates/nextjs/README.md +202 -0
- package/templates/nextjs/_gitignore +45 -0
- package/templates/nextjs/commitlint.config.js +6 -0
- package/templates/nextjs/eslint.config.mjs +27 -0
- package/templates/nextjs/knip.config.js +25 -0
- package/templates/nextjs/next-env.d.ts +6 -0
- package/templates/nextjs/next.config.ts +39 -0
- package/templates/nextjs/package.json +115 -0
- package/templates/nextjs/pnpm-lock.yaml +6467 -0
- package/templates/nextjs/pnpm-workspace.yaml +3 -0
- package/templates/nextjs/postcss.config.mjs +7 -0
- package/templates/nextjs/public/favicon.ico +0 -0
- package/templates/nextjs/public/llms.txt +96 -0
- package/templates/nextjs/public/logo.png +0 -0
- package/templates/nextjs/public/logo.webp +0 -0
- package/templates/nextjs/public/og.png +0 -0
- package/templates/nextjs/src/app/error.tsx +34 -0
- package/templates/nextjs/src/app/favicon.ico +0 -0
- package/templates/nextjs/src/app/global-error.tsx +32 -0
- package/templates/nextjs/src/app/layout.tsx +37 -0
- package/templates/nextjs/src/app/loading.tsx +12 -0
- package/templates/nextjs/src/app/manifest.ts +22 -0
- package/templates/nextjs/src/app/not-found.tsx +18 -0
- package/templates/nextjs/src/app/page.tsx +5 -0
- package/templates/nextjs/src/app/robots.ts +13 -0
- package/templates/nextjs/src/app/sitemap.ts +14 -0
- package/templates/nextjs/src/components/shared/ThemeToggle.tsx +30 -0
- package/templates/nextjs/src/components/ui/avatar.tsx +54 -0
- package/templates/nextjs/src/components/ui/button.tsx +46 -0
- package/templates/nextjs/src/components/ui/dialog.tsx +107 -0
- package/templates/nextjs/src/components/ui/field.tsx +24 -0
- package/templates/nextjs/src/components/ui/index.ts +27 -0
- package/templates/nextjs/src/components/ui/input.tsx +23 -0
- package/templates/nextjs/src/components/ui/label.tsx +17 -0
- package/templates/nextjs/src/components/ui/skeleton.tsx +13 -0
- package/templates/nextjs/src/components/ui/table.tsx +94 -0
- package/templates/nextjs/src/components/ui/tabs.tsx +46 -0
- package/templates/nextjs/src/config/seo.config.ts +37 -0
- package/templates/nextjs/src/config/site.config.ts +15 -0
- package/templates/nextjs/src/constants/index.ts +5 -0
- package/templates/nextjs/src/env.ts +41 -0
- package/templates/nextjs/src/features/landing/api/get-users.api.ts +7 -0
- package/templates/nextjs/src/features/landing/api/index.ts +2 -0
- package/templates/nextjs/src/features/landing/api/query-keys.ts +7 -0
- package/templates/nextjs/src/features/landing/components/CartDemo.tsx +66 -0
- package/templates/nextjs/src/features/landing/components/Features.tsx +39 -0
- package/templates/nextjs/src/features/landing/components/Hero.tsx +65 -0
- package/templates/nextjs/src/features/landing/components/LandingPage.tsx +17 -0
- package/templates/nextjs/src/features/landing/components/ProjectFormDemo.tsx +62 -0
- package/templates/nextjs/src/features/landing/components/Reveal.tsx +83 -0
- package/templates/nextjs/src/features/landing/components/Showcase.tsx +66 -0
- package/templates/nextjs/src/features/landing/components/UsersDemo.tsx +188 -0
- package/templates/nextjs/src/features/landing/data/features.data.tsx +47 -0
- package/templates/nextjs/src/features/landing/data/index.ts +1 -0
- package/templates/nextjs/src/features/landing/helpers/get-initials.ts +15 -0
- package/templates/nextjs/src/features/landing/helpers/index.ts +7 -0
- package/templates/nextjs/src/features/landing/helpers/motion.ts +21 -0
- package/templates/nextjs/src/features/landing/hooks/index.ts +1 -0
- package/templates/nextjs/src/features/landing/hooks/use-users.ts +16 -0
- package/templates/nextjs/src/features/landing/icons/index.ts +6 -0
- package/templates/nextjs/src/features/landing/icons/nextjs.tsx +68 -0
- package/templates/nextjs/src/features/landing/icons/react-hook-form.tsx +18 -0
- package/templates/nextjs/src/features/landing/icons/react.tsx +20 -0
- package/templates/nextjs/src/features/landing/icons/tailwind.tsx +14 -0
- package/templates/nextjs/src/features/landing/icons/tanstack.tsx +321 -0
- package/templates/nextjs/src/features/landing/icons/typescript.tsx +16 -0
- package/templates/nextjs/src/features/landing/index.ts +1 -0
- package/templates/nextjs/src/features/landing/schemas/index.ts +1 -0
- package/templates/nextjs/src/features/landing/schemas/project.schema.ts +7 -0
- package/templates/nextjs/src/features/landing/stores/counter.store.ts +18 -0
- package/templates/nextjs/src/features/landing/stores/index.ts +1 -0
- package/templates/nextjs/src/features/landing/types/index.ts +1 -0
- package/templates/nextjs/src/features/landing/types/user.types.ts +9 -0
- package/templates/nextjs/src/helpers/format-date.ts +13 -0
- package/templates/nextjs/src/helpers/index.ts +1 -0
- package/templates/nextjs/src/hooks/index.ts +5 -0
- package/templates/nextjs/src/lib/api.ts +97 -0
- package/templates/nextjs/src/lib/query-client.ts +18 -0
- package/templates/nextjs/src/lib/utils.ts +12 -0
- package/templates/nextjs/src/providers/Providers.tsx +15 -0
- package/templates/nextjs/src/providers/QueryProvider.tsx +19 -0
- package/templates/nextjs/src/providers/ThemeProvider.tsx +9 -0
- package/templates/nextjs/src/providers/index.ts +1 -0
- package/templates/nextjs/src/proxy.ts +6 -0
- package/templates/nextjs/src/schemas/index.ts +5 -0
- package/templates/nextjs/src/stores/index.ts +5 -0
- package/templates/nextjs/src/styles/tailwind.css +122 -0
- package/templates/nextjs/src/types/site-config.types.ts +10 -0
- package/templates/nextjs/tsconfig.json +45 -0
- package/templates/nextjs/tsconfig.tsbuildinfo +1 -0
- package/templates/tanstack/.changeset/README.md +8 -0
- package/templates/tanstack/.changeset/config.json +11 -0
- package/templates/tanstack/.env.example +6 -0
- package/templates/tanstack/.env.local +6 -0
- package/templates/tanstack/.eslintcache +1 -0
- package/templates/tanstack/.github/workflows/ci.yml +41 -0
- package/templates/tanstack/.husky/commit-msg +1 -0
- package/templates/tanstack/.husky/pre-commit +1 -0
- package/templates/tanstack/.husky/pre-push +1 -0
- package/templates/tanstack/.prettierignore +7 -0
- package/templates/tanstack/.prettierrc +41 -0
- package/templates/tanstack/.vscode/extensions.json +7 -0
- package/templates/tanstack/.vscode/settings.json +22 -0
- package/templates/tanstack/LICENSE +21 -0
- package/templates/tanstack/README.md +204 -0
- package/templates/tanstack/_gitignore +52 -0
- package/templates/tanstack/commitlint.config.js +6 -0
- package/templates/tanstack/eslint.config.js +28 -0
- package/templates/tanstack/knip.config.js +22 -0
- package/templates/tanstack/package.json +130 -0
- package/templates/tanstack/pnpm-lock.yaml +5835 -0
- package/templates/tanstack/pnpm-workspace.yaml +3 -0
- package/templates/tanstack/public/favicon.ico +0 -0
- package/templates/tanstack/public/llms.txt +86 -0
- package/templates/tanstack/public/logo.png +0 -0
- package/templates/tanstack/public/logo.webp +0 -0
- package/templates/tanstack/public/og.png +0 -0
- package/templates/tanstack/src/components/shared/DefaultCatchBoundary.tsx +36 -0
- package/templates/tanstack/src/components/shared/NotFound.tsx +18 -0
- package/templates/tanstack/src/components/shared/Pending.tsx +13 -0
- package/templates/tanstack/src/components/shared/ThemeToggle.tsx +31 -0
- package/templates/tanstack/src/components/ui/avatar.tsx +52 -0
- package/templates/tanstack/src/components/ui/button.tsx +47 -0
- package/templates/tanstack/src/components/ui/dialog.tsx +107 -0
- package/templates/tanstack/src/components/ui/field.tsx +24 -0
- package/templates/tanstack/src/components/ui/index.ts +27 -0
- package/templates/tanstack/src/components/ui/input.tsx +23 -0
- package/templates/tanstack/src/components/ui/label.tsx +17 -0
- package/templates/tanstack/src/components/ui/skeleton.tsx +13 -0
- package/templates/tanstack/src/components/ui/table.tsx +94 -0
- package/templates/tanstack/src/components/ui/tabs.tsx +46 -0
- package/templates/tanstack/src/config/seo.config.ts +52 -0
- package/templates/tanstack/src/config/site.config.ts +15 -0
- package/templates/tanstack/src/constants/index.ts +5 -0
- package/templates/tanstack/src/env.ts +47 -0
- package/templates/tanstack/src/features/landing/api/get-users.api.ts +7 -0
- package/templates/tanstack/src/features/landing/api/index.ts +2 -0
- package/templates/tanstack/src/features/landing/api/query-keys.ts +7 -0
- package/templates/tanstack/src/features/landing/components/CartDemo.tsx +66 -0
- package/templates/tanstack/src/features/landing/components/Features.tsx +39 -0
- package/templates/tanstack/src/features/landing/components/Hero.tsx +63 -0
- package/templates/tanstack/src/features/landing/components/LandingPage.tsx +17 -0
- package/templates/tanstack/src/features/landing/components/ProjectFormDemo.tsx +63 -0
- package/templates/tanstack/src/features/landing/components/Reveal.tsx +83 -0
- package/templates/tanstack/src/features/landing/components/Showcase.tsx +66 -0
- package/templates/tanstack/src/features/landing/components/UsersDemo.tsx +191 -0
- package/templates/tanstack/src/features/landing/data/features.data.tsx +45 -0
- package/templates/tanstack/src/features/landing/data/index.ts +1 -0
- package/templates/tanstack/src/features/landing/helpers/get-initials.ts +15 -0
- package/templates/tanstack/src/features/landing/helpers/index.ts +7 -0
- package/templates/tanstack/src/features/landing/helpers/motion.ts +21 -0
- package/templates/tanstack/src/features/landing/hooks/index.ts +1 -0
- package/templates/tanstack/src/features/landing/hooks/use-users.ts +19 -0
- package/templates/tanstack/src/features/landing/icons/index.ts +5 -0
- package/templates/tanstack/src/features/landing/icons/react-hook-form.tsx +18 -0
- package/templates/tanstack/src/features/landing/icons/react.tsx +20 -0
- package/templates/tanstack/src/features/landing/icons/tailwind.tsx +14 -0
- package/templates/tanstack/src/features/landing/icons/tanstack.tsx +321 -0
- package/templates/tanstack/src/features/landing/icons/typescript.tsx +16 -0
- package/templates/tanstack/src/features/landing/index.ts +1 -0
- package/templates/tanstack/src/features/landing/schemas/index.ts +1 -0
- package/templates/tanstack/src/features/landing/schemas/project.schema.ts +7 -0
- package/templates/tanstack/src/features/landing/stores/counter.store.ts +18 -0
- package/templates/tanstack/src/features/landing/stores/index.ts +1 -0
- package/templates/tanstack/src/features/landing/types/index.ts +1 -0
- package/templates/tanstack/src/features/landing/types/user.types.ts +9 -0
- package/templates/tanstack/src/helpers/format-date.ts +13 -0
- package/templates/tanstack/src/helpers/index.ts +1 -0
- package/templates/tanstack/src/hooks/index.ts +5 -0
- package/templates/tanstack/src/lib/api.ts +97 -0
- package/templates/tanstack/src/lib/query-client.ts +18 -0
- package/templates/tanstack/src/lib/utils.ts +13 -0
- package/templates/tanstack/src/providers/Providers.tsx +12 -0
- package/templates/tanstack/src/providers/ThemeProvider.tsx +98 -0
- package/templates/tanstack/src/providers/devtools.tsx +6 -0
- package/templates/tanstack/src/providers/index.ts +1 -0
- package/templates/tanstack/src/providers/root-provider.ts +9 -0
- package/templates/tanstack/src/routeTree.gen.ts +123 -0
- package/templates/tanstack/src/router.tsx +27 -0
- package/templates/tanstack/src/routes/__root.tsx +78 -0
- package/templates/tanstack/src/routes/index.tsx +13 -0
- package/templates/tanstack/src/routes/robots[.]txt.ts +21 -0
- package/templates/tanstack/src/routes/site[.]webmanifest.ts +32 -0
- package/templates/tanstack/src/routes/sitemap[.]xml.ts +27 -0
- package/templates/tanstack/src/schemas/index.ts +5 -0
- package/templates/tanstack/src/start.ts +20 -0
- package/templates/tanstack/src/stores/index.ts +5 -0
- package/templates/tanstack/src/styles/tailwind.css +123 -0
- package/templates/tanstack/src/types/site-config.types.ts +10 -0
- package/templates/tanstack/tsconfig.json +25 -0
- package/templates/tanstack/tsr.config.json +3 -0
- package/templates/tanstack/vite.config.ts +12 -0
- package/templates-i18n/nextjs/.changeset/README.md +8 -0
- package/templates-i18n/nextjs/.changeset/config.json +11 -0
- package/templates-i18n/nextjs/.env.example +6 -0
- package/templates-i18n/nextjs/.eslintcache +1 -0
- package/templates-i18n/nextjs/.github/workflows/ci.yml +41 -0
- package/templates-i18n/nextjs/.husky/commit-msg +1 -0
- package/templates-i18n/nextjs/.husky/pre-commit +1 -0
- package/templates-i18n/nextjs/.husky/pre-push +1 -0
- package/templates-i18n/nextjs/.prettierignore +6 -0
- package/templates-i18n/nextjs/.prettierrc +42 -0
- package/templates-i18n/nextjs/.vscode/extensions.json +7 -0
- package/templates-i18n/nextjs/.vscode/settings.json +20 -0
- package/templates-i18n/nextjs/LICENSE +21 -0
- package/templates-i18n/nextjs/README.md +202 -0
- package/templates-i18n/nextjs/_gitignore +45 -0
- package/templates-i18n/nextjs/commitlint.config.js +6 -0
- package/templates-i18n/nextjs/eslint.config.mjs +27 -0
- package/templates-i18n/nextjs/knip.config.js +29 -0
- package/templates-i18n/nextjs/next-env.d.ts +6 -0
- package/templates-i18n/nextjs/next.config.ts +42 -0
- package/templates-i18n/nextjs/package.json +117 -0
- package/templates-i18n/nextjs/pnpm-lock.yaml +6854 -0
- package/templates-i18n/nextjs/pnpm-workspace.yaml +3 -0
- package/templates-i18n/nextjs/postcss.config.mjs +7 -0
- package/templates-i18n/nextjs/public/favicon.ico +0 -0
- package/templates-i18n/nextjs/public/llms.txt +96 -0
- package/templates-i18n/nextjs/public/logo.png +0 -0
- package/templates-i18n/nextjs/public/logo.webp +0 -0
- package/templates-i18n/nextjs/public/og.png +0 -0
- package/templates-i18n/nextjs/src/app/[locale]/error.tsx +34 -0
- package/templates-i18n/nextjs/src/app/[locale]/layout.tsx +60 -0
- package/templates-i18n/nextjs/src/app/[locale]/loading.tsx +12 -0
- package/templates-i18n/nextjs/src/app/[locale]/not-found.tsx +18 -0
- package/templates-i18n/nextjs/src/app/[locale]/page.tsx +10 -0
- package/templates-i18n/nextjs/src/app/favicon.ico +0 -0
- package/templates-i18n/nextjs/src/app/global-error.tsx +32 -0
- package/templates-i18n/nextjs/src/app/manifest.ts +22 -0
- package/templates-i18n/nextjs/src/app/robots.ts +13 -0
- package/templates-i18n/nextjs/src/app/sitemap.ts +14 -0
- package/templates-i18n/nextjs/src/components/shared/LanguageSwitcher.tsx +48 -0
- package/templates-i18n/nextjs/src/components/shared/ThemeToggle.tsx +30 -0
- package/templates-i18n/nextjs/src/components/ui/avatar.tsx +54 -0
- package/templates-i18n/nextjs/src/components/ui/button.tsx +46 -0
- package/templates-i18n/nextjs/src/components/ui/dialog.tsx +107 -0
- package/templates-i18n/nextjs/src/components/ui/field.tsx +24 -0
- package/templates-i18n/nextjs/src/components/ui/index.ts +27 -0
- package/templates-i18n/nextjs/src/components/ui/input.tsx +23 -0
- package/templates-i18n/nextjs/src/components/ui/label.tsx +17 -0
- package/templates-i18n/nextjs/src/components/ui/skeleton.tsx +13 -0
- package/templates-i18n/nextjs/src/components/ui/table.tsx +94 -0
- package/templates-i18n/nextjs/src/components/ui/tabs.tsx +46 -0
- package/templates-i18n/nextjs/src/config/seo.config.ts +37 -0
- package/templates-i18n/nextjs/src/config/site.config.ts +15 -0
- package/templates-i18n/nextjs/src/constants/index.ts +5 -0
- package/templates-i18n/nextjs/src/env.ts +41 -0
- package/templates-i18n/nextjs/src/features/landing/api/get-users.api.ts +7 -0
- package/templates-i18n/nextjs/src/features/landing/api/index.ts +2 -0
- package/templates-i18n/nextjs/src/features/landing/api/query-keys.ts +7 -0
- package/templates-i18n/nextjs/src/features/landing/components/CartDemo.tsx +68 -0
- package/templates-i18n/nextjs/src/features/landing/components/Features.tsx +84 -0
- package/templates-i18n/nextjs/src/features/landing/components/Hero.tsx +76 -0
- package/templates-i18n/nextjs/src/features/landing/components/LandingPage.tsx +17 -0
- package/templates-i18n/nextjs/src/features/landing/components/ProjectFormDemo.tsx +64 -0
- package/templates-i18n/nextjs/src/features/landing/components/Reveal.tsx +83 -0
- package/templates-i18n/nextjs/src/features/landing/components/Showcase.tsx +83 -0
- package/templates-i18n/nextjs/src/features/landing/components/UsersDemo.tsx +191 -0
- package/templates-i18n/nextjs/src/features/landing/data/features.data.tsx +47 -0
- package/templates-i18n/nextjs/src/features/landing/data/index.ts +1 -0
- package/templates-i18n/nextjs/src/features/landing/helpers/get-initials.ts +15 -0
- package/templates-i18n/nextjs/src/features/landing/helpers/index.ts +7 -0
- package/templates-i18n/nextjs/src/features/landing/helpers/motion.ts +21 -0
- package/templates-i18n/nextjs/src/features/landing/hooks/index.ts +1 -0
- package/templates-i18n/nextjs/src/features/landing/hooks/use-users.ts +16 -0
- package/templates-i18n/nextjs/src/features/landing/icons/index.ts +6 -0
- package/templates-i18n/nextjs/src/features/landing/icons/nextjs.tsx +68 -0
- package/templates-i18n/nextjs/src/features/landing/icons/react-hook-form.tsx +18 -0
- package/templates-i18n/nextjs/src/features/landing/icons/react.tsx +20 -0
- package/templates-i18n/nextjs/src/features/landing/icons/tailwind.tsx +14 -0
- package/templates-i18n/nextjs/src/features/landing/icons/tanstack.tsx +321 -0
- package/templates-i18n/nextjs/src/features/landing/icons/typescript.tsx +16 -0
- package/templates-i18n/nextjs/src/features/landing/index.ts +1 -0
- package/templates-i18n/nextjs/src/features/landing/schemas/index.ts +1 -0
- package/templates-i18n/nextjs/src/features/landing/schemas/project.schema.ts +9 -0
- package/templates-i18n/nextjs/src/features/landing/stores/counter.store.ts +18 -0
- package/templates-i18n/nextjs/src/features/landing/stores/index.ts +1 -0
- package/templates-i18n/nextjs/src/features/landing/types/index.ts +1 -0
- package/templates-i18n/nextjs/src/features/landing/types/user.types.ts +9 -0
- package/templates-i18n/nextjs/src/helpers/format-date.ts +13 -0
- package/templates-i18n/nextjs/src/helpers/index.ts +1 -0
- package/templates-i18n/nextjs/src/hooks/index.ts +5 -0
- package/templates-i18n/nextjs/src/i18n/request.ts +16 -0
- package/templates-i18n/nextjs/src/i18n/routing.ts +11 -0
- package/templates-i18n/nextjs/src/lib/api.ts +97 -0
- package/templates-i18n/nextjs/src/lib/query-client.ts +18 -0
- package/templates-i18n/nextjs/src/lib/utils.ts +12 -0
- package/templates-i18n/nextjs/src/messages/en.json +55 -0
- package/templates-i18n/nextjs/src/messages/tr.json +55 -0
- package/templates-i18n/nextjs/src/providers/Providers.tsx +15 -0
- package/templates-i18n/nextjs/src/providers/QueryProvider.tsx +19 -0
- package/templates-i18n/nextjs/src/providers/ThemeProvider.tsx +9 -0
- package/templates-i18n/nextjs/src/providers/index.ts +1 -0
- package/templates-i18n/nextjs/src/proxy.ts +16 -0
- package/templates-i18n/nextjs/src/schemas/index.ts +5 -0
- package/templates-i18n/nextjs/src/stores/index.ts +5 -0
- package/templates-i18n/nextjs/src/styles/tailwind.css +122 -0
- package/templates-i18n/nextjs/src/types/site-config.types.ts +10 -0
- package/templates-i18n/nextjs/tsconfig.json +45 -0
- package/templates-i18n/nextjs/tsconfig.tsbuildinfo +1 -0
- package/templates-i18n/tanstack/.changeset/README.md +8 -0
- package/templates-i18n/tanstack/.changeset/config.json +11 -0
- package/templates-i18n/tanstack/.env.example +6 -0
- package/templates-i18n/tanstack/.eslintcache +1 -0
- package/templates-i18n/tanstack/.github/workflows/ci.yml +41 -0
- package/templates-i18n/tanstack/.husky/commit-msg +1 -0
- package/templates-i18n/tanstack/.husky/pre-commit +1 -0
- package/templates-i18n/tanstack/.husky/pre-push +1 -0
- package/templates-i18n/tanstack/.prettierignore +7 -0
- package/templates-i18n/tanstack/.prettierrc +41 -0
- package/templates-i18n/tanstack/.vscode/extensions.json +7 -0
- package/templates-i18n/tanstack/.vscode/settings.json +22 -0
- package/templates-i18n/tanstack/LICENSE +21 -0
- package/templates-i18n/tanstack/README.md +204 -0
- package/templates-i18n/tanstack/_gitignore +52 -0
- package/templates-i18n/tanstack/commitlint.config.js +6 -0
- package/templates-i18n/tanstack/eslint.config.js +29 -0
- package/templates-i18n/tanstack/knip.config.js +26 -0
- package/templates-i18n/tanstack/messages/en.json +65 -0
- package/templates-i18n/tanstack/messages/tr.json +65 -0
- package/templates-i18n/tanstack/package.json +132 -0
- package/templates-i18n/tanstack/pnpm-lock.yaml +5998 -0
- package/templates-i18n/tanstack/pnpm-workspace.yaml +3 -0
- package/templates-i18n/tanstack/project.inlang/README.md +157 -0
- package/templates-i18n/tanstack/project.inlang/settings.json +9 -0
- package/templates-i18n/tanstack/public/favicon.ico +0 -0
- package/templates-i18n/tanstack/public/llms.txt +86 -0
- package/templates-i18n/tanstack/public/logo.png +0 -0
- package/templates-i18n/tanstack/public/logo.webp +0 -0
- package/templates-i18n/tanstack/public/og.png +0 -0
- package/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx +36 -0
- package/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx +57 -0
- package/templates-i18n/tanstack/src/components/shared/NotFound.tsx +18 -0
- package/templates-i18n/tanstack/src/components/shared/Pending.tsx +13 -0
- package/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx +31 -0
- package/templates-i18n/tanstack/src/components/ui/avatar.tsx +52 -0
- package/templates-i18n/tanstack/src/components/ui/button.tsx +47 -0
- package/templates-i18n/tanstack/src/components/ui/dialog.tsx +107 -0
- package/templates-i18n/tanstack/src/components/ui/field.tsx +24 -0
- package/templates-i18n/tanstack/src/components/ui/index.ts +27 -0
- package/templates-i18n/tanstack/src/components/ui/input.tsx +23 -0
- package/templates-i18n/tanstack/src/components/ui/label.tsx +17 -0
- package/templates-i18n/tanstack/src/components/ui/skeleton.tsx +13 -0
- package/templates-i18n/tanstack/src/components/ui/table.tsx +94 -0
- package/templates-i18n/tanstack/src/components/ui/tabs.tsx +46 -0
- package/templates-i18n/tanstack/src/config/seo.config.ts +52 -0
- package/templates-i18n/tanstack/src/config/site.config.ts +15 -0
- package/templates-i18n/tanstack/src/constants/index.ts +5 -0
- package/templates-i18n/tanstack/src/env.ts +47 -0
- package/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts +7 -0
- package/templates-i18n/tanstack/src/features/landing/api/index.ts +2 -0
- package/templates-i18n/tanstack/src/features/landing/api/query-keys.ts +7 -0
- package/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx +67 -0
- package/templates-i18n/tanstack/src/features/landing/components/Features.tsx +79 -0
- package/templates-i18n/tanstack/src/features/landing/components/Hero.tsx +68 -0
- package/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx +17 -0
- package/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx +64 -0
- package/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx +83 -0
- package/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx +81 -0
- package/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx +191 -0
- package/templates-i18n/tanstack/src/features/landing/data/features.data.tsx +45 -0
- package/templates-i18n/tanstack/src/features/landing/data/index.ts +1 -0
- package/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts +15 -0
- package/templates-i18n/tanstack/src/features/landing/helpers/index.ts +7 -0
- package/templates-i18n/tanstack/src/features/landing/helpers/motion.ts +21 -0
- package/templates-i18n/tanstack/src/features/landing/hooks/index.ts +1 -0
- package/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts +19 -0
- package/templates-i18n/tanstack/src/features/landing/icons/index.ts +5 -0
- package/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx +18 -0
- package/templates-i18n/tanstack/src/features/landing/icons/react.tsx +20 -0
- package/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx +14 -0
- package/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx +321 -0
- package/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx +16 -0
- package/templates-i18n/tanstack/src/features/landing/index.ts +1 -0
- package/templates-i18n/tanstack/src/features/landing/schemas/index.ts +1 -0
- package/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts +10 -0
- package/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts +18 -0
- package/templates-i18n/tanstack/src/features/landing/stores/index.ts +1 -0
- package/templates-i18n/tanstack/src/features/landing/types/index.ts +1 -0
- package/templates-i18n/tanstack/src/features/landing/types/user.types.ts +9 -0
- package/templates-i18n/tanstack/src/helpers/format-date.ts +13 -0
- package/templates-i18n/tanstack/src/helpers/index.ts +1 -0
- package/templates-i18n/tanstack/src/hooks/index.ts +5 -0
- package/templates-i18n/tanstack/src/lib/api.ts +97 -0
- package/templates-i18n/tanstack/src/lib/query-client.ts +18 -0
- package/templates-i18n/tanstack/src/lib/utils.ts +13 -0
- package/templates-i18n/tanstack/src/paraglide/README.md +162 -0
- package/templates-i18n/tanstack/src/providers/Providers.tsx +12 -0
- package/templates-i18n/tanstack/src/providers/ThemeProvider.tsx +98 -0
- package/templates-i18n/tanstack/src/providers/devtools.tsx +6 -0
- package/templates-i18n/tanstack/src/providers/index.ts +1 -0
- package/templates-i18n/tanstack/src/providers/root-provider.ts +9 -0
- package/templates-i18n/tanstack/src/routeTree.gen.ts +179 -0
- package/templates-i18n/tanstack/src/router.tsx +27 -0
- package/templates-i18n/tanstack/src/routes/$lang/index.tsx +13 -0
- package/templates-i18n/tanstack/src/routes/$lang.tsx +22 -0
- package/templates-i18n/tanstack/src/routes/__root.tsx +80 -0
- package/templates-i18n/tanstack/src/routes/index.tsx +13 -0
- package/templates-i18n/tanstack/src/routes/robots[.]txt.ts +21 -0
- package/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts +32 -0
- package/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts +27 -0
- package/templates-i18n/tanstack/src/schemas/index.ts +5 -0
- package/templates-i18n/tanstack/src/server.ts +10 -0
- package/templates-i18n/tanstack/src/start.ts +20 -0
- package/templates-i18n/tanstack/src/stores/index.ts +5 -0
- package/templates-i18n/tanstack/src/styles/tailwind.css +123 -0
- package/templates-i18n/tanstack/src/types/site-config.types.ts +10 -0
- package/templates-i18n/tanstack/tsconfig.json +26 -0
- package/templates-i18n/tanstack/tsr.config.json +3 -0
- package/templates-i18n/tanstack/vite.config.ts +31 -0
- package/index.js +0 -3
- package/public/start.jpg +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry of ViraStack tools the CLI knows how to wire up.
|
|
3
|
+
*
|
|
4
|
+
* - "dependency" tools are added straight to package.json and installed
|
|
5
|
+
* like any other npm package (e.g. @virastack/mask).
|
|
6
|
+
* - "postinstall-cli" tools ship their own `init` command that writes files
|
|
7
|
+
* into the target project (e.g. @virastack/ai writes .cursor/rules), so we
|
|
8
|
+
* shell out to them instead of treating them as a runtime dependency.
|
|
9
|
+
*/
|
|
10
|
+
export const TOOLS = [
|
|
11
|
+
{
|
|
12
|
+
id: "mask",
|
|
13
|
+
package: "@virastack/mask",
|
|
14
|
+
kind: "dependency",
|
|
15
|
+
version: "latest",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "password",
|
|
19
|
+
package: "@virastack/password",
|
|
20
|
+
kind: "dependency",
|
|
21
|
+
version: "latest",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "ai",
|
|
25
|
+
package: "@virastack/ai",
|
|
26
|
+
kind: "postinstall-cli",
|
|
27
|
+
version: "latest",
|
|
28
|
+
hiddenFromInit: true,
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
export function findTool(id) {
|
|
33
|
+
return TOOLS.find((tool) => tool.id === id);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Parses a comma-separated tools flag into valid tool ids.
|
|
38
|
+
* Unknown ids are ignored; empty / missing input yields [].
|
|
39
|
+
*/
|
|
40
|
+
export function parseToolsFlag(value) {
|
|
41
|
+
if (value == null || value === true) return [];
|
|
42
|
+
|
|
43
|
+
return String(value)
|
|
44
|
+
.split(",")
|
|
45
|
+
.map((part) => part.trim())
|
|
46
|
+
.filter(Boolean)
|
|
47
|
+
.filter((id) => Boolean(findTool(id)));
|
|
48
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { findTool } from "./tools.js";
|
|
4
|
+
import { toPackageName } from "./validate-project-name.js";
|
|
5
|
+
import { getCliVersion } from "./package-info.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Rewrites the scaffolded package.json: gives it the user's project name
|
|
9
|
+
* and adds a dependency entry for every selected "dependency"-kind tool
|
|
10
|
+
* (e.g. @virastack/mask). Tools with an "init" CLI (like @virastack/ai)
|
|
11
|
+
* are handled separately since they aren't a runtime dependency.
|
|
12
|
+
*/
|
|
13
|
+
export async function updatePackageJson(targetDir, { projectName, tools }) {
|
|
14
|
+
const pkgPath = path.join(targetDir, "package.json");
|
|
15
|
+
|
|
16
|
+
let pkg;
|
|
17
|
+
try {
|
|
18
|
+
pkg = JSON.parse(await fs.readFile(pkgPath, "utf8"));
|
|
19
|
+
} catch {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
pkg.name = toPackageName(projectName);
|
|
24
|
+
pkg.version = "1.0.0"; // Scaffolded project's own initial version
|
|
25
|
+
delete pkg.author;
|
|
26
|
+
delete pkg.repository;
|
|
27
|
+
delete pkg.bugs;
|
|
28
|
+
delete pkg.homepage;
|
|
29
|
+
delete pkg.keywords;
|
|
30
|
+
|
|
31
|
+
if (pkg.virastack) {
|
|
32
|
+
pkg.virastack.version = getCliVersion();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
pkg.dependencies = pkg.dependencies ?? {};
|
|
36
|
+
for (const toolId of tools) {
|
|
37
|
+
const tool = findTool(toolId);
|
|
38
|
+
if (tool?.kind === "dependency") {
|
|
39
|
+
pkg.dependencies[tool.package] = tool.version ?? "^1.0.0";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
await fs.writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
44
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Personalizes the scaffolded README: renames the H1 to the user's project
|
|
6
|
+
* and strips the marketing hero image (assets/ is not copied into projects).
|
|
7
|
+
*/
|
|
8
|
+
export async function updateReadme(targetDir, projectName) {
|
|
9
|
+
const readmePath = path.join(targetDir, "README.md");
|
|
10
|
+
|
|
11
|
+
let content;
|
|
12
|
+
try {
|
|
13
|
+
content = await fs.readFile(readmePath, "utf8");
|
|
14
|
+
} catch {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let updated = content
|
|
19
|
+
.replace(/^#\s+.+$/m, `# ${projectName}`)
|
|
20
|
+
.replace(/^!\[.*?\]\(\.\/assets\/.*?\)\n*/m, "");
|
|
21
|
+
|
|
22
|
+
if (updated === content) return;
|
|
23
|
+
|
|
24
|
+
await fs.writeFile(readmePath, updated);
|
|
25
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Same shape npm itself enforces for package names (scoped names included).
|
|
2
|
+
const NPM_NAME_PATTERN = /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns null when valid, or an error code ("empty" | "invalid") otherwise.
|
|
6
|
+
* "." is always valid — it means "use the current directory".
|
|
7
|
+
*/
|
|
8
|
+
export function validateProjectName(value) {
|
|
9
|
+
const trimmed = (value ?? "").trim();
|
|
10
|
+
|
|
11
|
+
if (trimmed.length === 0) return "empty";
|
|
12
|
+
if (trimmed === ".") return null;
|
|
13
|
+
if (!NPM_NAME_PATTERN.test(trimmed)) return "invalid";
|
|
14
|
+
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function toPackageName(name) {
|
|
19
|
+
const sanitized = name
|
|
20
|
+
.trim()
|
|
21
|
+
.toLowerCase()
|
|
22
|
+
.replace(/[^a-z0-9-~]+/g, "-")
|
|
23
|
+
.replace(/^-+|-+$/g, "");
|
|
24
|
+
|
|
25
|
+
return sanitized.length > 0 ? sanitized : "virastack-app";
|
|
26
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Changesets
|
|
2
|
+
|
|
3
|
+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
|
|
4
|
+
with multi-package repos, or single-package repos to help you version and publish your code. You can
|
|
5
|
+
find the full documentation for it [in our repository](https://github.com/changesets/changesets).
|
|
6
|
+
|
|
7
|
+
We have a quick list of common questions to get you started engaging with this project in
|
|
8
|
+
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json",
|
|
3
|
+
"changelog": "@changesets/cli/changelog",
|
|
4
|
+
"commit": false,
|
|
5
|
+
"fixed": [],
|
|
6
|
+
"linked": [],
|
|
7
|
+
"access": "restricted",
|
|
8
|
+
"baseBranch": "main",
|
|
9
|
+
"updateInternalDependencies": "patch",
|
|
10
|
+
"ignore": []
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Public (exposed to the browser) — must be prefixed with NEXT_PUBLIC_
|
|
2
|
+
NEXT_PUBLIC_APP_URL="http://localhost:3000"
|
|
3
|
+
NEXT_PUBLIC_APP_NAME="ViraStack Start - Next.js Edition"
|
|
4
|
+
|
|
5
|
+
# Server-only (never exposed to the browser)
|
|
6
|
+
# NODE_ENV is set automatically by Next.js — no need to define it here.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Public (exposed to the browser) — must be prefixed with NEXT_PUBLIC_
|
|
2
|
+
NEXT_PUBLIC_APP_URL="http://localhost:3000"
|
|
3
|
+
NEXT_PUBLIC_APP_NAME="ViraStack Start - Next.js Edition"
|
|
4
|
+
|
|
5
|
+
# Server-only (never exposed to the browser)
|
|
6
|
+
# NODE_ENV is set automatically by Next.js — no need to define it here.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/commitlint.config.js":"1","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/eslint.config.mjs":"2","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/knip.config.js":"3","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/next.config.ts":"4","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/postcss.config.mjs":"5","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/error.tsx":"6","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/global-error.tsx":"7","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/layout.tsx":"8","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/loading.tsx":"9","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/manifest.ts":"10","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/not-found.tsx":"11","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/page.tsx":"12","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/robots.ts":"13","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/sitemap.ts":"14","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/shared/ThemeToggle.tsx":"15","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/avatar.tsx":"16","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/button.tsx":"17","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/dialog.tsx":"18","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/field.tsx":"19","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/index.ts":"20","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/input.tsx":"21","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/label.tsx":"22","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/skeleton.tsx":"23","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/table.tsx":"24","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/tabs.tsx":"25","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/config/seo.config.ts":"26","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/config/site.config.ts":"27","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/constants/index.ts":"28","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/env.ts":"29","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/api/get-users.api.ts":"30","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/api/index.ts":"31","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/api/query-keys.ts":"32","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/CartDemo.tsx":"33","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Features.tsx":"34","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Hero.tsx":"35","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/LandingPage.tsx":"36","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/ProjectFormDemo.tsx":"37","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Reveal.tsx":"38","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Showcase.tsx":"39","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/UsersDemo.tsx":"40","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/data/features.data.tsx":"41","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/data/index.ts":"42","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/helpers/get-initials.ts":"43","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/helpers/index.ts":"44","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/helpers/motion.ts":"45","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/hooks/index.ts":"46","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/hooks/use-users.ts":"47","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/index.ts":"48","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/nextjs.tsx":"49","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/react-hook-form.tsx":"50","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/react.tsx":"51","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/tailwind.tsx":"52","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/tanstack.tsx":"53","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/typescript.tsx":"54","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/index.ts":"55","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/schemas/index.ts":"56","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/schemas/project.schema.ts":"57","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/stores/counter.store.ts":"58","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/stores/index.ts":"59","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/types/index.ts":"60","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/types/user.types.ts":"61","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/helpers/format-date.ts":"62","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/helpers/index.ts":"63","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/hooks/index.ts":"64","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/lib/api.ts":"65","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/lib/query-client.ts":"66","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/lib/utils.ts":"67","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/Providers.tsx":"68","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/QueryProvider.tsx":"69","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/ThemeProvider.tsx":"70","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/index.ts":"71","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/proxy.ts":"72","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/schemas/index.ts":"73","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/stores/index.ts":"74","/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/types/site-config.types.ts":"75"},{"size":129,"mtime":1784724501650,"results":"76","hashOfConfig":"77"},{"size":686,"mtime":1784724501676,"results":"78","hashOfConfig":"77"},{"size":673,"mtime":1785160748328,"results":"79","hashOfConfig":"77"},{"size":1012,"mtime":1784850857359,"results":"80","hashOfConfig":"81"},{"size":94,"mtime":1784718957433,"results":"82","hashOfConfig":"77"},{"size":946,"mtime":1784724501477,"results":"83","hashOfConfig":"81"},{"size":841,"mtime":1785104632420,"results":"84","hashOfConfig":"81"},{"size":916,"mtime":1785162519531,"results":"85","hashOfConfig":"81"},{"size":390,"mtime":1784724501632,"results":"86","hashOfConfig":"81"},{"size":500,"mtime":1784850863737,"results":"87","hashOfConfig":"81"},{"size":652,"mtime":1784724501676,"results":"88","hashOfConfig":"81"},{"size":116,"mtime":1784848916026,"results":"89","hashOfConfig":"81"},{"size":277,"mtime":1784724501632,"results":"90","hashOfConfig":"81"},{"size":298,"mtime":1784724501487,"results":"91","hashOfConfig":"81"},{"size":816,"mtime":1785178279649,"results":"92","hashOfConfig":"81"},{"size":1653,"mtime":1784844376542,"results":"93","hashOfConfig":"81"},{"size":1798,"mtime":1784724501645,"results":"94","hashOfConfig":"81"},{"size":3186,"mtime":1784724501676,"results":"95","hashOfConfig":"81"},{"size":570,"mtime":1784844670765,"results":"96","hashOfConfig":"81"},{"size":775,"mtime":1784844515795,"results":"97","hashOfConfig":"81"},{"size":926,"mtime":1784724501478,"results":"98","hashOfConfig":"81"},{"size":430,"mtime":1784724501487,"results":"99","hashOfConfig":"81"},{"size":304,"mtime":1784724501650,"results":"100","hashOfConfig":"81"},{"size":2820,"mtime":1784844955937,"results":"101","hashOfConfig":"81"},{"size":1515,"mtime":1784724501477,"results":"102","hashOfConfig":"81"},{"size":1002,"mtime":1784850859164,"results":"103","hashOfConfig":"81"},{"size":535,"mtime":1784852972801,"results":"104","hashOfConfig":"81"},{"size":156,"mtime":1784848451874,"results":"105","hashOfConfig":"81"},{"size":1281,"mtime":1785162800911,"results":"106","hashOfConfig":"81"},{"size":233,"mtime":1784852534866,"results":"107","hashOfConfig":"81"},{"size":127,"mtime":1784852535385,"results":"108","hashOfConfig":"81"},{"size":301,"mtime":1784852534009,"results":"109","hashOfConfig":"81"},{"size":2271,"mtime":1784851697232,"results":"110","hashOfConfig":"81"},{"size":1645,"mtime":1784848485630,"results":"111","hashOfConfig":"81"},{"size":2614,"mtime":1785102111792,"results":"112","hashOfConfig":"81"},{"size":472,"mtime":1785058808101,"results":"113","hashOfConfig":"81"},{"size":1909,"mtime":1784851697297,"results":"114","hashOfConfig":"81"},{"size":2020,"mtime":1784848449487,"results":"115","hashOfConfig":"81"},{"size":2780,"mtime":1785102111792,"results":"116","hashOfConfig":"81"},{"size":6399,"mtime":1784853209773,"results":"117","hashOfConfig":"81"},{"size":1585,"mtime":1785058808101,"results":"118","hashOfConfig":"81"},{"size":66,"mtime":1784848481686,"results":"119","hashOfConfig":"81"},{"size":354,"mtime":1784848482176,"results":"120","hashOfConfig":"81"},{"size":192,"mtime":1784848482953,"results":"121","hashOfConfig":"81"},{"size":696,"mtime":1784849743469,"results":"122","hashOfConfig":"81"},{"size":63,"mtime":1784848503787,"results":"123","hashOfConfig":"81"},{"size":410,"mtime":1784852536400,"results":"124","hashOfConfig":"81"},{"size":402,"mtime":1784848418232,"results":"125","hashOfConfig":"81"},{"size":1971,"mtime":1784848418228,"results":"126","hashOfConfig":"81"},{"size":1973,"mtime":1784848418232,"results":"127","hashOfConfig":"81"},{"size":6639,"mtime":1784848418231,"results":"128","hashOfConfig":"81"},{"size":807,"mtime":1784848418231,"results":"129","hashOfConfig":"81"},{"size":12913,"mtime":1784848427096,"results":"130","hashOfConfig":"81"},{"size":1892,"mtime":1784848418232,"results":"131","hashOfConfig":"81"},{"size":73,"mtime":1784848503742,"results":"132","hashOfConfig":"81"},{"size":94,"mtime":1784848436144,"results":"133","hashOfConfig":"81"},{"size":210,"mtime":1784757948429,"results":"134","hashOfConfig":"81"},{"size":478,"mtime":1784724501650,"results":"135","hashOfConfig":"81"},{"size":75,"mtime":1784848436021,"results":"136","hashOfConfig":"81"},{"size":65,"mtime":1784848474605,"results":"137","hashOfConfig":"81"},{"size":127,"mtime":1784853202425,"results":"138","hashOfConfig":"81"},{"size":411,"mtime":1784724501672,"results":"139","hashOfConfig":"81"},{"size":52,"mtime":1784724501650,"results":"140","hashOfConfig":"81"},{"size":144,"mtime":1784848450819,"results":"141","hashOfConfig":"81"},{"size":2960,"mtime":1784724501676,"results":"142","hashOfConfig":"81"},{"size":465,"mtime":1784724501477,"results":"143","hashOfConfig":"81"},{"size":353,"mtime":1784724501672,"results":"144","hashOfConfig":"81"},{"size":496,"mtime":1784724501650,"results":"145","hashOfConfig":"81"},{"size":533,"mtime":1784844398829,"results":"146","hashOfConfig":"81"},{"size":303,"mtime":1785178185026,"results":"147","hashOfConfig":"81"},{"size":51,"mtime":1784724501676,"results":"148","hashOfConfig":"81"},{"size":172,"mtime":1784850857628,"results":"149","hashOfConfig":"81"},{"size":154,"mtime":1784848451473,"results":"150","hashOfConfig":"81"},{"size":154,"mtime":1784848451215,"results":"151","hashOfConfig":"81"},{"size":160,"mtime":1784724501650,"results":"152","hashOfConfig":"81"},{"filePath":"153","messages":"154","suppressedMessages":"155","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"18fg6fv",{"filePath":"156","messages":"157","suppressedMessages":"158","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"159","messages":"160","suppressedMessages":"161","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"162","messages":"163","suppressedMessages":"164","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"5rtamk",{"filePath":"165","messages":"166","suppressedMessages":"167","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"168","messages":"169","suppressedMessages":"170","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"171","messages":"172","suppressedMessages":"173","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"174","messages":"175","suppressedMessages":"176","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"177","messages":"178","suppressedMessages":"179","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"180","messages":"181","suppressedMessages":"182","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"183","messages":"184","suppressedMessages":"185","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"186","messages":"187","suppressedMessages":"188","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"189","messages":"190","suppressedMessages":"191","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"192","messages":"193","suppressedMessages":"194","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"195","messages":"196","suppressedMessages":"197","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"198","messages":"199","suppressedMessages":"200","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"201","messages":"202","suppressedMessages":"203","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"204","messages":"205","suppressedMessages":"206","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"207","messages":"208","suppressedMessages":"209","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"210","messages":"211","suppressedMessages":"212","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"213","messages":"214","suppressedMessages":"215","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"216","messages":"217","suppressedMessages":"218","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"219","messages":"220","suppressedMessages":"221","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"222","messages":"223","suppressedMessages":"224","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"225","messages":"226","suppressedMessages":"227","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"228","messages":"229","suppressedMessages":"230","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"231","messages":"232","suppressedMessages":"233","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"234","messages":"235","suppressedMessages":"236","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"237","messages":"238","suppressedMessages":"239","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"240","messages":"241","suppressedMessages":"242","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"243","messages":"244","suppressedMessages":"245","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"246","messages":"247","suppressedMessages":"248","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"249","messages":"250","suppressedMessages":"251","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"252","messages":"253","suppressedMessages":"254","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"255","messages":"256","suppressedMessages":"257","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"258","messages":"259","suppressedMessages":"260","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"261","messages":"262","suppressedMessages":"263","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"264","messages":"265","suppressedMessages":"266","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"267","messages":"268","suppressedMessages":"269","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"270","messages":"271","suppressedMessages":"272","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"273","messages":"274","suppressedMessages":"275","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"276","messages":"277","suppressedMessages":"278","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"279","messages":"280","suppressedMessages":"281","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"282","messages":"283","suppressedMessages":"284","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"285","messages":"286","suppressedMessages":"287","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"288","messages":"289","suppressedMessages":"290","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"291","messages":"292","suppressedMessages":"293","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"294","messages":"295","suppressedMessages":"296","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"297","messages":"298","suppressedMessages":"299","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"300","messages":"301","suppressedMessages":"302","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"303","messages":"304","suppressedMessages":"305","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"306","messages":"307","suppressedMessages":"308","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"309","messages":"310","suppressedMessages":"311","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"312","messages":"313","suppressedMessages":"314","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"315","messages":"316","suppressedMessages":"317","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"318","messages":"319","suppressedMessages":"320","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"321","messages":"322","suppressedMessages":"323","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"324","messages":"325","suppressedMessages":"326","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"327","messages":"328","suppressedMessages":"329","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"330","messages":"331","suppressedMessages":"332","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"333","messages":"334","suppressedMessages":"335","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"336","messages":"337","suppressedMessages":"338","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"339","messages":"340","suppressedMessages":"341","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"342","messages":"343","suppressedMessages":"344","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"345","messages":"346","suppressedMessages":"347","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"348","messages":"349","suppressedMessages":"350","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"351","messages":"352","suppressedMessages":"353","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"354","messages":"355","suppressedMessages":"356","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"357","messages":"358","suppressedMessages":"359","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"360","messages":"361","suppressedMessages":"362","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"363","messages":"364","suppressedMessages":"365","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"366","messages":"367","suppressedMessages":"368","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"369","messages":"370","suppressedMessages":"371","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"372","messages":"373","suppressedMessages":"374","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"375","messages":"376","suppressedMessages":"377","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/commitlint.config.js",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/eslint.config.mjs",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/knip.config.js",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/next.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/postcss.config.mjs",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/error.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/global-error.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/layout.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/loading.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/manifest.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/not-found.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/page.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/robots.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/app/sitemap.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/shared/ThemeToggle.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/avatar.tsx",[],["378"],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/button.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/dialog.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/field.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/input.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/label.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/skeleton.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/table.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/components/ui/tabs.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/config/seo.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/config/site.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/constants/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/env.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/api/get-users.api.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/api/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/api/query-keys.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/CartDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Features.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Hero.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/LandingPage.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/ProjectFormDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Reveal.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/Showcase.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/components/UsersDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/data/features.data.tsx",[],["379"],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/data/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/helpers/get-initials.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/helpers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/helpers/motion.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/hooks/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/hooks/use-users.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/nextjs.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/react-hook-form.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/react.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/tailwind.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/tanstack.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/icons/typescript.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/schemas/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/schemas/project.schema.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/stores/counter.store.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/stores/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/types/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/features/landing/types/user.types.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/helpers/format-date.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/helpers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/hooks/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/lib/api.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/lib/query-client.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/lib/utils.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/Providers.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/QueryProvider.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/ThemeProvider.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/providers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/proxy.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/schemas/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/stores/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates/nextjs/src/types/site-config.types.ts",[],[],{"ruleId":"380","severity":1,"message":"381","line":27,"column":5,"nodeType":"382","endLine":35,"endColumn":7,"suppressions":"383"},{"ruleId":"380","severity":1,"message":"381","line":45,"column":11,"nodeType":"382","endLine":45,"endColumn":75,"suppressions":"384"},"@next/next/no-img-element","Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element","JSXOpeningElement",["385"],["386"],{"kind":"387","justification":"388"},{"kind":"387","justification":"389"},"directive","intentional for flexible avatar sources",""]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, master]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main, master]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Install pnpm
|
|
18
|
+
uses: pnpm/action-setup@v4
|
|
19
|
+
with:
|
|
20
|
+
version: 10
|
|
21
|
+
|
|
22
|
+
- name: Setup Node.js
|
|
23
|
+
uses: actions/setup-node@v4
|
|
24
|
+
with:
|
|
25
|
+
node-version: 22
|
|
26
|
+
cache: "pnpm"
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: pnpm install --frozen-lockfile
|
|
30
|
+
|
|
31
|
+
- name: Typecheck
|
|
32
|
+
run: pnpm run typecheck
|
|
33
|
+
|
|
34
|
+
- name: Lint
|
|
35
|
+
run: pnpm run lint:ci
|
|
36
|
+
|
|
37
|
+
- name: Knip
|
|
38
|
+
run: pnpm run knip
|
|
39
|
+
|
|
40
|
+
- name: Build
|
|
41
|
+
run: pnpm run build
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npx --no -- commitlint --edit "$1"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npx --no -- lint-staged
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npm run typecheck && npm run lint:ci
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"singleQuote": false,
|
|
3
|
+
"trailingComma": "all",
|
|
4
|
+
"printWidth": 100,
|
|
5
|
+
"plugins": ["@ianvs/prettier-plugin-sort-imports", "prettier-plugin-tailwindcss"],
|
|
6
|
+
"tailwindFunctions": ["cn", "clsx", "cva"],
|
|
7
|
+
"tailwindStylesheet": "./src/styles/tailwind.css",
|
|
8
|
+
"importOrder": [
|
|
9
|
+
"^react$",
|
|
10
|
+
"^next($|/)",
|
|
11
|
+
"",
|
|
12
|
+
"^@tanstack/.*",
|
|
13
|
+
"^zustand($|/)",
|
|
14
|
+
"^lucide-react($|/)",
|
|
15
|
+
"<THIRD_PARTY_MODULES>",
|
|
16
|
+
"",
|
|
17
|
+
"^@/types($|/)",
|
|
18
|
+
"^@/constants($|/)",
|
|
19
|
+
"^@/schemas($|/)",
|
|
20
|
+
"^@/config($|/)",
|
|
21
|
+
"^@/env($|/)",
|
|
22
|
+
"",
|
|
23
|
+
"^@/assets($|/)",
|
|
24
|
+
"^@/styles($|/)",
|
|
25
|
+
"^@/lib($|/)",
|
|
26
|
+
"^@/helpers($|/)",
|
|
27
|
+
"",
|
|
28
|
+
"^@/providers($|/)",
|
|
29
|
+
"^@/stores($|/)",
|
|
30
|
+
"^@/hooks($|/)",
|
|
31
|
+
"^@/data($|/)",
|
|
32
|
+
"",
|
|
33
|
+
"^@/components($|/)",
|
|
34
|
+
"^@/layout($|/)",
|
|
35
|
+
"^@/features($|/)",
|
|
36
|
+
"^@/ui($|/)",
|
|
37
|
+
"^@/.*",
|
|
38
|
+
"",
|
|
39
|
+
"^[./]"
|
|
40
|
+
],
|
|
41
|
+
"importOrderParserPlugins": ["typescript", "jsx"]
|
|
42
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"editor.codeActionsOnSave": {
|
|
5
|
+
"source.fixAll.eslint": "explicit"
|
|
6
|
+
},
|
|
7
|
+
"typescript.tsdk": "node_modules/typescript/lib",
|
|
8
|
+
"files.exclude": {
|
|
9
|
+
"**/.git": true,
|
|
10
|
+
"**/.svn": true,
|
|
11
|
+
"**/.hg": true,
|
|
12
|
+
"**/.DS_Store": true,
|
|
13
|
+
"**/Thumbs.db": true,
|
|
14
|
+
"**/.cache": true,
|
|
15
|
+
"**/.next": true,
|
|
16
|
+
"**/build": true,
|
|
17
|
+
"**/dist": true,
|
|
18
|
+
"**/node_modules": true
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026-present Ömer Gülçiçek (ViraStack)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|