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,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 VITE_
|
|
2
|
+
VITE_APP_URL="http://localhost:3000"
|
|
3
|
+
VITE_APP_NAME="ViraStack Start - TanStack Edition"
|
|
4
|
+
|
|
5
|
+
# Server-only (never exposed to the browser)
|
|
6
|
+
# NODE_ENV is set automatically by Vite — no need to define it here.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx":"1","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx":"2","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/NotFound.tsx":"3","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/Pending.tsx":"4","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx":"5","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/avatar.tsx":"6","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/button.tsx":"7","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/dialog.tsx":"8","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/field.tsx":"9","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/index.ts":"10","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/input.tsx":"11","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/label.tsx":"12","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/skeleton.tsx":"13","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/table.tsx":"14","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/tabs.tsx":"15","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/seo.config.ts":"16","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/site.config.ts":"17","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/constants/index.ts":"18","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/env.ts":"19","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts":"20","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/index.ts":"21","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/query-keys.ts":"22","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx":"23","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Features.tsx":"24","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Hero.tsx":"25","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx":"26","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx":"27","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx":"28","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx":"29","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx":"30","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/features.data.tsx":"31","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/index.ts":"32","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts":"33","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/index.ts":"34","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/motion.ts":"35","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/index.ts":"36","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts":"37","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/index.ts":"38","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx":"39","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react.tsx":"40","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx":"41","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx":"42","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx":"43","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/index.ts":"44","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/index.ts":"45","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts":"46","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts":"47","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/index.ts":"48","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/index.ts":"49","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/user.types.ts":"50","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/format-date.ts":"51","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/index.ts":"52","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/hooks/index.ts":"53","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/api.ts":"54","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/query-client.ts":"55","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/utils.ts":"56","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/Providers.tsx":"57","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/ThemeProvider.tsx":"58","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/devtools.tsx":"59","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/index.ts":"60","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/root-provider.ts":"61","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/router.tsx":"62","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang/index.tsx":"63","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang.tsx":"64","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/__root.tsx":"65","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/index.tsx":"66","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/robots[.]txt.ts":"67","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts":"68","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts":"69","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/schemas/index.ts":"70","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/server.ts":"71","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/start.ts":"72","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/stores/index.ts":"73","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/types/site-config.types.ts":"74","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/vite.config.ts":"75"},{"size":1246,"mtime":1785060939000,"results":"76","hashOfConfig":"77"},{"size":1900,"mtime":1785175930867,"results":"78","hashOfConfig":"77"},{"size":659,"mtime":1784854633000,"results":"79","hashOfConfig":"77"},{"size":460,"mtime":1784890377000,"results":"80","hashOfConfig":"77"},{"size":830,"mtime":1785177872880,"results":"81","hashOfConfig":"77"},{"size":1454,"mtime":1784854986000,"results":"82","hashOfConfig":"77"},{"size":1841,"mtime":1784854986000,"results":"83","hashOfConfig":"77"},{"size":3186,"mtime":1784724501000,"results":"84","hashOfConfig":"77"},{"size":570,"mtime":1784844670000,"results":"85","hashOfConfig":"77"},{"size":775,"mtime":1784844515000,"results":"86","hashOfConfig":"77"},{"size":926,"mtime":1784724501000,"results":"87","hashOfConfig":"77"},{"size":430,"mtime":1784724501000,"results":"88","hashOfConfig":"77"},{"size":304,"mtime":1784724501000,"results":"89","hashOfConfig":"77"},{"size":2820,"mtime":1784844955000,"results":"90","hashOfConfig":"77"},{"size":1515,"mtime":1784724501000,"results":"91","hashOfConfig":"77"},{"size":2002,"mtime":1784855059000,"results":"92","hashOfConfig":"77"},{"size":521,"mtime":1784854595000,"results":"93","hashOfConfig":"77"},{"size":156,"mtime":1784848451000,"results":"94","hashOfConfig":"77"},{"size":1384,"mtime":1785162800964,"results":"95","hashOfConfig":"77"},{"size":233,"mtime":1784852534000,"results":"96","hashOfConfig":"77"},{"size":127,"mtime":1784852535000,"results":"97","hashOfConfig":"77"},{"size":301,"mtime":1784852534000,"results":"98","hashOfConfig":"77"},{"size":2363,"mtime":1785164243571,"results":"99","hashOfConfig":"77"},{"size":2641,"mtime":1785164243580,"results":"100","hashOfConfig":"77"},{"size":2748,"mtime":1785164243592,"results":"101","hashOfConfig":"77"},{"size":476,"mtime":1785058808000,"results":"102","hashOfConfig":"77"},{"size":2048,"mtime":1785164228849,"results":"103","hashOfConfig":"77"},{"size":2020,"mtime":1784848449000,"results":"104","hashOfConfig":"77"},{"size":3222,"mtime":1785164243620,"results":"105","hashOfConfig":"77"},{"size":6524,"mtime":1785164243638,"results":"106","hashOfConfig":"77"},{"size":1528,"mtime":1785058808000,"results":"107","hashOfConfig":"77"},{"size":66,"mtime":1784848481000,"results":"108","hashOfConfig":"77"},{"size":354,"mtime":1784848482000,"results":"109","hashOfConfig":"77"},{"size":192,"mtime":1784848482000,"results":"110","hashOfConfig":"77"},{"size":696,"mtime":1784849743000,"results":"111","hashOfConfig":"77"},{"size":63,"mtime":1784848503000,"results":"112","hashOfConfig":"77"},{"size":566,"mtime":1784890383000,"results":"113","hashOfConfig":"77"},{"size":340,"mtime":1784855062000,"results":"114","hashOfConfig":"77"},{"size":1973,"mtime":1784848418000,"results":"115","hashOfConfig":"77"},{"size":6639,"mtime":1784848418000,"results":"116","hashOfConfig":"77"},{"size":807,"mtime":1784848418000,"results":"117","hashOfConfig":"77"},{"size":12913,"mtime":1784848427000,"results":"118","hashOfConfig":"77"},{"size":1892,"mtime":1784848418000,"results":"119","hashOfConfig":"77"},{"size":73,"mtime":1784848503000,"results":"120","hashOfConfig":"77"},{"size":97,"mtime":1785163805287,"results":"121","hashOfConfig":"77"},{"size":297,"mtime":1785164243720,"results":"122","hashOfConfig":"77"},{"size":478,"mtime":1784724501000,"results":"123","hashOfConfig":"77"},{"size":75,"mtime":1784848436000,"results":"124","hashOfConfig":"77"},{"size":65,"mtime":1784848474000,"results":"125","hashOfConfig":"77"},{"size":127,"mtime":1784853202000,"results":"126","hashOfConfig":"77"},{"size":411,"mtime":1784724501000,"results":"127","hashOfConfig":"77"},{"size":52,"mtime":1784724501000,"results":"128","hashOfConfig":"77"},{"size":144,"mtime":1784848450000,"results":"129","hashOfConfig":"77"},{"size":2902,"mtime":1784890382000,"results":"130","hashOfConfig":"77"},{"size":465,"mtime":1784724501000,"results":"131","hashOfConfig":"77"},{"size":376,"mtime":1784854986000,"results":"132","hashOfConfig":"77"},{"size":350,"mtime":1785177896586,"results":"133","hashOfConfig":"77"},{"size":3049,"mtime":1785177856899},{"size":160,"mtime":1784855044000,"results":"134","hashOfConfig":"77"},{"size":51,"mtime":1784854605000,"results":"135","hashOfConfig":"77"},{"size":163,"mtime":1784855059000,"results":"136","hashOfConfig":"77"},{"size":708,"mtime":1785173719143,"results":"137","hashOfConfig":"77"},{"size":314,"mtime":1785093200098,"results":"138","hashOfConfig":"77"},{"size":774,"mtime":1785175914505,"results":"139","hashOfConfig":"77"},{"size":2399,"mtime":1785173723285,"results":"140","hashOfConfig":"77"},{"size":330,"mtime":1785175430774,"results":"141","hashOfConfig":"77"},{"size":448,"mtime":1784890374000,"results":"142","hashOfConfig":"77"},{"size":833,"mtime":1784890376000,"results":"143","hashOfConfig":"77"},{"size":702,"mtime":1784890375000,"results":"144","hashOfConfig":"77"},{"size":154,"mtime":1784848451000,"results":"145","hashOfConfig":"77"},{"size":349,"mtime":1785102111859,"results":"146","hashOfConfig":"77"},{"size":766,"mtime":1784890449000,"results":"147","hashOfConfig":"77"},{"size":154,"mtime":1784848451000,"results":"148","hashOfConfig":"77"},{"size":160,"mtime":1784724501000,"results":"149","hashOfConfig":"77"},{"size":771,"mtime":1785164244307,"results":"150","hashOfConfig":"77"},{"filePath":"151","messages":"152","suppressedMessages":"153","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1invr81",{"filePath":"154","messages":"155","suppressedMessages":"156","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"157","messages":"158","suppressedMessages":"159","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"160","messages":"161","suppressedMessages":"162","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"163","messages":"164","suppressedMessages":"165","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"166","messages":"167","suppressedMessages":"168","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"169","messages":"170","suppressedMessages":"171","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"172","messages":"173","suppressedMessages":"174","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"175","messages":"176","suppressedMessages":"177","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"178","messages":"179","suppressedMessages":"180","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"181","messages":"182","suppressedMessages":"183","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"184","messages":"185","suppressedMessages":"186","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"187","messages":"188","suppressedMessages":"189","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"190","messages":"191","suppressedMessages":"192","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"193","messages":"194","suppressedMessages":"195","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"196","messages":"197","suppressedMessages":"198","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"199","messages":"200","suppressedMessages":"201","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"202","messages":"203","suppressedMessages":"204","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"205","messages":"206","suppressedMessages":"207","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"208","messages":"209","suppressedMessages":"210","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"211","messages":"212","suppressedMessages":"213","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"214","messages":"215","suppressedMessages":"216","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"217","messages":"218","suppressedMessages":"219","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"220","messages":"221","suppressedMessages":"222","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"223","messages":"224","suppressedMessages":"225","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"226","messages":"227","suppressedMessages":"228","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"229","messages":"230","suppressedMessages":"231","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"232","messages":"233","suppressedMessages":"234","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"235","messages":"236","suppressedMessages":"237","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"238","messages":"239","suppressedMessages":"240","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"241","messages":"242","suppressedMessages":"243","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"244","messages":"245","suppressedMessages":"246","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"247","messages":"248","suppressedMessages":"249","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"250","messages":"251","suppressedMessages":"252","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"253","messages":"254","suppressedMessages":"255","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"256","messages":"257","suppressedMessages":"258","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"259","messages":"260","suppressedMessages":"261","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"262","messages":"263","suppressedMessages":"264","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"265","messages":"266","suppressedMessages":"267","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"268","messages":"269","suppressedMessages":"270","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"271","messages":"272","suppressedMessages":"273","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"274","messages":"275","suppressedMessages":"276","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"277","messages":"278","suppressedMessages":"279","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"280","messages":"281","suppressedMessages":"282","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"283","messages":"284","suppressedMessages":"285","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"286","messages":"287","suppressedMessages":"288","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"289","messages":"290","suppressedMessages":"291","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"292","messages":"293","suppressedMessages":"294","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"295","messages":"296","suppressedMessages":"297","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"298","messages":"299","suppressedMessages":"300","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"301","messages":"302","suppressedMessages":"303","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"304","messages":"305","suppressedMessages":"306","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"307","messages":"308","suppressedMessages":"309","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"310","messages":"311","suppressedMessages":"312","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"313","messages":"314","suppressedMessages":"315","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"316","messages":"317","suppressedMessages":"318","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"319","messages":"320","suppressedMessages":"321","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"322","messages":"323","suppressedMessages":"324","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"325","messages":"326","suppressedMessages":"327","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"328","messages":"329","suppressedMessages":"330","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"331","messages":"332","suppressedMessages":"333","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"334","messages":"335","suppressedMessages":"336","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"337","messages":"338","suppressedMessages":"339","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"340","messages":"341","suppressedMessages":"342","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"343","messages":"344","suppressedMessages":"345","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"346","messages":"347","suppressedMessages":"348","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"349","messages":"350","suppressedMessages":"351","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"352","messages":"353","suppressedMessages":"354","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"355","messages":"356","suppressedMessages":"357","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"358","messages":"359","suppressedMessages":"360","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"361","messages":"362","suppressedMessages":"363","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"364","messages":"365","suppressedMessages":"366","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"367","messages":"368","suppressedMessages":"369","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"370","messages":"371","suppressedMessages":"372","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/NotFound.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/Pending.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/avatar.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/button.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/dialog.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/field.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/input.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/label.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/skeleton.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/table.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/tabs.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/seo.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/site.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/constants/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/env.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/query-keys.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Features.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Hero.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/features.data.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/motion.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/user.types.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/format-date.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/hooks/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/api.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/query-client.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/utils.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/Providers.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/devtools.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/root-provider.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/router.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang/index.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/__root.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/index.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/robots[.]txt.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/schemas/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/server.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/start.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/stores/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/types/site-config.types.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/vite.config.ts",[],[]]
|
|
@@ -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,41 @@
|
|
|
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
|
+
"^@tanstack/.*",
|
|
11
|
+
"",
|
|
12
|
+
"^zustand($|/)",
|
|
13
|
+
"^lucide-react($|/)",
|
|
14
|
+
"<THIRD_PARTY_MODULES>",
|
|
15
|
+
"",
|
|
16
|
+
"^@/types($|/)",
|
|
17
|
+
"^@/constants($|/)",
|
|
18
|
+
"^@/schemas($|/)",
|
|
19
|
+
"^@/config($|/)",
|
|
20
|
+
"^@/env($|/)",
|
|
21
|
+
"",
|
|
22
|
+
"^@/assets($|/)",
|
|
23
|
+
"^@/styles($|/)",
|
|
24
|
+
"^@/lib($|/)",
|
|
25
|
+
"^@/helpers($|/)",
|
|
26
|
+
"",
|
|
27
|
+
"^@/providers($|/)",
|
|
28
|
+
"^@/stores($|/)",
|
|
29
|
+
"^@/hooks($|/)",
|
|
30
|
+
"^@/data($|/)",
|
|
31
|
+
"",
|
|
32
|
+
"^@/components($|/)",
|
|
33
|
+
"^@/layout($|/)",
|
|
34
|
+
"^@/features($|/)",
|
|
35
|
+
"^@/ui($|/)",
|
|
36
|
+
"^@/.*",
|
|
37
|
+
"",
|
|
38
|
+
"^[./]"
|
|
39
|
+
],
|
|
40
|
+
"importOrderParserPlugins": ["typescript", "jsx"]
|
|
41
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
"**/.tanstack": true,
|
|
17
|
+
"**/.output": true,
|
|
18
|
+
"**/build": true,
|
|
19
|
+
"**/dist": true,
|
|
20
|
+
"**/node_modules": true
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -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.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<a href="https://github.com/virastack/start" target="_blank" rel="noreferrer">
|
|
4
|
+
<picture>
|
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/virastack/start/main/assets/logo-dark.png">
|
|
6
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/virastack/start/main/assets/logo-light.png">
|
|
7
|
+
<img src="https://raw.githubusercontent.com/virastack/start/main/assets/logo-light.png" alt="ViraStack Start" height="120" style="max-width: 100%;" />
|
|
8
|
+
</picture>
|
|
9
|
+
</a>
|
|
10
|
+
|
|
11
|
+
# ViraStack Start — TanStack Edition
|
|
12
|
+
|
|
13
|
+
_The TanStack Start boilerplate that feels effortless._
|
|
14
|
+
|
|
15
|
+
[](https://virastack.com)
|
|
16
|
+
[](https://www.npmjs.com/package/virastack)
|
|
17
|
+
[](https://www.npmjs.com/package/virastack)
|
|
18
|
+
[](package.json)
|
|
19
|
+
[](LICENSE)
|
|
20
|
+
[](https://github.com/virastack/start/actions/workflows/ci.yml)
|
|
21
|
+
[](https://x.com/virastack)
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
**Docs:** [See the docs](https://www.virastack.com/)
|
|
28
|
+
|
|
29
|
+
**Contents:** [Why](#why-virastack) · [Features](#features) · [Getting started](#getting-started) · [Environment](#environment-variables) · [Scripts](#scripts) · [Project structure](#project-structure) · [Customization](#customization) · [ViraStack AI](#virastack-ai) · [Deployment](#deployment)
|
|
30
|
+
|
|
31
|
+
Production-grade TanStack Start starter with feature-sliced architecture, strict TypeScript, and a pre-configured [**ViraStack AI**](https://github.com/virastack/ai) layer — so you and your coding agents ship consistent code from day one.
|
|
32
|
+
|
|
33
|
+
## Why ViraStack
|
|
34
|
+
|
|
35
|
+
- **Opinionated, not opaque** — clear folder rules and placement conventions; nothing important is hidden behind magic
|
|
36
|
+
- **Agent-ready by default** — `AGENTS.md`, Cursor rules, `llms.txt`, and design skills ship with every project
|
|
37
|
+
- **Own your UI** — Base UI primitives in `components/ui` (shadcn-style), fully editable
|
|
38
|
+
- **State triad** — TanStack Query (server), Zustand (client), nuqs (URL) — each with a dedicated job
|
|
39
|
+
- **DX that sticks** — ESLint, Prettier, Knip, Husky, Commitlint, and GitHub Actions CI out of the box
|
|
40
|
+
|
|
41
|
+
## Features
|
|
42
|
+
|
|
43
|
+
**Included**
|
|
44
|
+
|
|
45
|
+
- ⚡ **TanStack Start** — file-based TanStack Router, type-safe loaders, SSR
|
|
46
|
+
- ⚛️ **React 19** + TypeScript strict (`noUncheckedIndexedAccess`)
|
|
47
|
+
- 🎨 **Tailwind CSS 4** + Base UI primitives
|
|
48
|
+
- 🔄 **TanStack Query** · **Zustand** · **nuqs**
|
|
49
|
+
- 📋 **React Hook Form** + **Zod** — validated forms end to end
|
|
50
|
+
- 🤖 **ViraStack AI** — agent context, scoped rules, design skills
|
|
51
|
+
- ✅ **Quality built in** — ESLint, Prettier, Knip, Husky, Commitlint, CI (typecheck → lint → knip → build)
|
|
52
|
+
|
|
53
|
+
**Optional / bring your own**
|
|
54
|
+
|
|
55
|
+
- Auth, database, i18n, analytics, and monitoring — wire them in when you need them; the architecture is ready
|
|
56
|
+
|
|
57
|
+
## Getting started
|
|
58
|
+
|
|
59
|
+
**Quick Start & Setup:** Please follow the instructions in the main [ViraStack Start README](https://github.com/virastack/start#quick-start).
|
|
60
|
+
|
|
61
|
+
Once your project is scaffolded, start the development server:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pnpm dev
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Open [http://localhost:3000](http://localhost:3000). The home route renders `LandingPage` from `src/features/landing` — a full demo of the stack (theme toggle, TanStack Query, Zustand, Zod forms, nuqs). Delete that feature when you are ready to build.
|
|
68
|
+
|
|
69
|
+
## Environment variables
|
|
70
|
+
|
|
71
|
+
Validated in `src/env.ts`. Scaffolded projects already have `.env.local`.
|
|
72
|
+
|
|
73
|
+
| Variable | Scope | Description |
|
|
74
|
+
| :-------------- | :----- | :------------------------------------------------------------ |
|
|
75
|
+
| `VITE_APP_URL` | Public | Canonical app URL (default `http://localhost:3000`) |
|
|
76
|
+
| `VITE_APP_NAME` | Public | Product name shown in UI/metadata (default `ViraStack Start`) |
|
|
77
|
+
|
|
78
|
+
`NODE_ENV` is set by Vite — do not define it manually. Add new vars in both `.env.example` and `src/env.ts`.
|
|
79
|
+
|
|
80
|
+
## Scripts
|
|
81
|
+
|
|
82
|
+
| Script | Description |
|
|
83
|
+
| :------------------------------ | :------------------------------------------- |
|
|
84
|
+
| `dev` | Start the Vite + TanStack Start dev server |
|
|
85
|
+
| `build` | Production build |
|
|
86
|
+
| `start` / `preview` | Serve the production build |
|
|
87
|
+
| `lint` / `lint:fix` / `lint:ci` | ESLint (+ format check in CI) |
|
|
88
|
+
| `format` / `format:check` | Prettier |
|
|
89
|
+
| `typecheck` | `tsc --noEmit` |
|
|
90
|
+
| `knip` | Find unused files, exports, and dependencies |
|
|
91
|
+
|
|
92
|
+
CI runs the same gates: typecheck → lint → knip → build (see `.github/workflows/ci.yml`).
|
|
93
|
+
|
|
94
|
+
## Project structure
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
src/
|
|
98
|
+
├── routes/ # File-based TanStack Router routes
|
|
99
|
+
├── features/
|
|
100
|
+
│ └── landing/ # Demo feature (canonical folder layout)
|
|
101
|
+
│ ├── api/
|
|
102
|
+
│ ├── components/ # Hero, Features, Showcase, demos, LandingPage
|
|
103
|
+
│ ├── constants/
|
|
104
|
+
│ ├── data/
|
|
105
|
+
│ ├── helpers/
|
|
106
|
+
│ ├── hooks/
|
|
107
|
+
│ ├── icons/ # Brand SVGs used only by the landing demo
|
|
108
|
+
│ ├── schemas/
|
|
109
|
+
│ ├── stores/
|
|
110
|
+
│ ├── types/
|
|
111
|
+
│ └── index.ts
|
|
112
|
+
├── components/
|
|
113
|
+
│ ├── ui/ # Base UI primitives (Button, Dialog, Tabs, …)
|
|
114
|
+
│ ├── layout/ # Header, Footer (reusable chrome)
|
|
115
|
+
│ └── shared/ # Cross-feature components (ThemeToggle, …)
|
|
116
|
+
├── hooks/ # Shared hooks (promote via Rule of Three)
|
|
117
|
+
├── stores/
|
|
118
|
+
├── schemas/
|
|
119
|
+
├── providers/
|
|
120
|
+
├── lib/ # api.ts, query-client.ts, utils
|
|
121
|
+
├── config/
|
|
122
|
+
├── constants/
|
|
123
|
+
├── helpers/
|
|
124
|
+
├── types/
|
|
125
|
+
├── styles/
|
|
126
|
+
├── integrations/ # Framework integrations (TanStack Query)
|
|
127
|
+
├── router.tsx
|
|
128
|
+
├── start.ts # Global request middleware (security headers)
|
|
129
|
+
└── env.ts
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The bundled `landing` feature follows the ViraStack AI feature tree and is meant to be deleted when you start building.
|
|
133
|
+
|
|
134
|
+
**Quick start (strip the demo)**
|
|
135
|
+
|
|
136
|
+
1. Delete `src/features/landing`
|
|
137
|
+
2. Replace `src/routes/index.tsx` with your own route
|
|
138
|
+
3. Keep `components/layout` Header/Footer if you still want site chrome — pass `links` only when you need nav items
|
|
139
|
+
|
|
140
|
+
**Rules of thumb**
|
|
141
|
+
|
|
142
|
+
- Default scope is `features/[feature]/` — promote to global `src/` only when a second feature needs it
|
|
143
|
+
- No cross-feature imports; share via `components/`, `lib/`, `hooks/`, etc.
|
|
144
|
+
- Path aliases are mandatory; parent-relative imports (`../`) are forbidden
|
|
145
|
+
|
|
146
|
+
See [`docs/architecture-guide.md`](docs/architecture-guide.md) for placement rules and import conventions.
|
|
147
|
+
|
|
148
|
+
## Customization
|
|
149
|
+
|
|
150
|
+
Search the repo for `FIXME:` to find the first things to own:
|
|
151
|
+
|
|
152
|
+
| File | What to change |
|
|
153
|
+
| :---------------------------- | :-------------------------------- |
|
|
154
|
+
| `src/config/site.config.ts` | Site name, description, metadata |
|
|
155
|
+
| `vite.config.ts` | Vite / TanStack Start options |
|
|
156
|
+
| `src/start.ts` | Global request middleware/headers |
|
|
157
|
+
| `src/lib/api.ts` | Auth header / API client wiring |
|
|
158
|
+
| `src/env.ts` + `.env.example` | New environment variables |
|
|
159
|
+
| `public/` | Favicon and static assets |
|
|
160
|
+
|
|
161
|
+
You own every file — trim demos, rename features, keep only what you need.
|
|
162
|
+
|
|
163
|
+
## ViraStack AI
|
|
164
|
+
|
|
165
|
+
Developed with [**ViraStack AI**](https://github.com/virastack/ai) — an AI-native architecture kit that ships agent context into every project:
|
|
166
|
+
|
|
167
|
+
| File | Purpose |
|
|
168
|
+
| :---------------- | :------------------------------- |
|
|
169
|
+
| `AGENTS.md` | Agent operating guide |
|
|
170
|
+
| `CLAUDE.md` | Claude Code entry point |
|
|
171
|
+
| `.cursor/rules/` | Scoped coding rules |
|
|
172
|
+
| `public/llms.txt` | Machine-readable project summary |
|
|
173
|
+
| `.agents/skills/` | Design-taste skills |
|
|
174
|
+
|
|
175
|
+
Install or refresh rules: `npx @virastack/ai init`
|
|
176
|
+
|
|
177
|
+
## Deployment
|
|
178
|
+
|
|
179
|
+
Works with [Netlify](https://www.netlify.com/), [Cloudflare](https://developers.cloudflare.com/), Nitro, Railway, or any Node host:
|
|
180
|
+
|
|
181
|
+
1. Push the repo and import the project
|
|
182
|
+
2. Set `VITE_APP_URL` and `VITE_APP_NAME` from `.env.example`
|
|
183
|
+
3. Deploy — `pnpm build` / `pnpm start` work on any Node host that can serve the Vite output
|
|
184
|
+
|
|
185
|
+
## Philosophy
|
|
186
|
+
|
|
187
|
+
- Minimal surface, strong conventions
|
|
188
|
+
- Agent-first documentation lives next to the code
|
|
189
|
+
- Own your UI and architecture — no locked black boxes
|
|
190
|
+
- Production-ready DX without forcing auth/db opinions until you need them
|
|
191
|
+
|
|
192
|
+
## Contributing
|
|
193
|
+
|
|
194
|
+
Ideas and bug reports welcome — open an [issue](https://github.com/virastack/start/issues).
|
|
195
|
+
|
|
196
|
+
PRs that improve DX, architecture docs, or the landing showcase are especially appreciated.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
<div align="center">
|
|
201
|
+
|
|
202
|
+
Bootstrapped with [**ViraStack Start**](https://github.com/virastack/start) · Built by <a href="https://omergulcicek.com">Ömer Gülçiçek</a> · <a href="LICENSE">MIT Licensed</a>
|
|
203
|
+
|
|
204
|
+
</div>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# dependencies
|
|
2
|
+
/node_modules
|
|
3
|
+
/.pnp
|
|
4
|
+
.pnp.*
|
|
5
|
+
.yarn/*
|
|
6
|
+
!.yarn/patches
|
|
7
|
+
!.yarn/plugins
|
|
8
|
+
!.yarn/releases
|
|
9
|
+
!.yarn/versions
|
|
10
|
+
|
|
11
|
+
# testing
|
|
12
|
+
/coverage
|
|
13
|
+
|
|
14
|
+
# build / framework
|
|
15
|
+
/dist
|
|
16
|
+
/dist-ssr
|
|
17
|
+
.nitro
|
|
18
|
+
.tanstack
|
|
19
|
+
.wrangler
|
|
20
|
+
.output
|
|
21
|
+
.vinxi
|
|
22
|
+
__unconfig*
|
|
23
|
+
|
|
24
|
+
# production
|
|
25
|
+
/build
|
|
26
|
+
|
|
27
|
+
# misc
|
|
28
|
+
.DS_Store
|
|
29
|
+
*.pem
|
|
30
|
+
*.local
|
|
31
|
+
todos.json
|
|
32
|
+
|
|
33
|
+
# debug
|
|
34
|
+
npm-debug.log*
|
|
35
|
+
yarn-debug.log*
|
|
36
|
+
yarn-error.log*
|
|
37
|
+
.pnpm-debug.log*
|
|
38
|
+
|
|
39
|
+
# env files
|
|
40
|
+
.env*
|
|
41
|
+
!.env.example
|
|
42
|
+
|
|
43
|
+
# vercel
|
|
44
|
+
.vercel
|
|
45
|
+
|
|
46
|
+
# typescript
|
|
47
|
+
*.tsbuildinfo
|
|
48
|
+
|
|
49
|
+
# cache / tooling
|
|
50
|
+
.eslintcache
|
|
51
|
+
.knip
|
|
52
|
+
.turbo
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import { tanstackConfig } from "@tanstack/eslint-config";
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
...tanstackConfig,
|
|
7
|
+
{
|
|
8
|
+
rules: {
|
|
9
|
+
"import/no-cycle": "off",
|
|
10
|
+
"import/order": "off",
|
|
11
|
+
"sort-imports": "off",
|
|
12
|
+
"@typescript-eslint/array-type": "off",
|
|
13
|
+
"@typescript-eslint/require-await": "off",
|
|
14
|
+
"pnpm/json-enforce-catalog": "off",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
ignores: [
|
|
19
|
+
"eslint.config.js",
|
|
20
|
+
"knip.config.js",
|
|
21
|
+
"commitlint.config.js",
|
|
22
|
+
"src/routeTree.gen.ts",
|
|
23
|
+
"src/paraglide/**",
|
|
24
|
+
"dist/**",
|
|
25
|
+
".tanstack/**",
|
|
26
|
+
".output/**",
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** @type {import('knip').KnipConfig} */
|
|
2
|
+
const config = {
|
|
3
|
+
entry: ["src/router.tsx", "src/start.ts", "src/server.ts", "src/routes/**/*.{ts,tsx}"],
|
|
4
|
+
project: ["src/**/*.{ts,tsx,js,jsx}"],
|
|
5
|
+
ignore: [
|
|
6
|
+
"src/components/ui/**",
|
|
7
|
+
// Shared-layer barrels reserved for Rule-of-Three promotions
|
|
8
|
+
"src/hooks/index.ts",
|
|
9
|
+
"src/stores/index.ts",
|
|
10
|
+
"src/schemas/index.ts",
|
|
11
|
+
"src/constants/index.ts",
|
|
12
|
+
// Domain-layer barrels
|
|
13
|
+
"src/features/**/data/index.ts",
|
|
14
|
+
"src/features/**/data/*.data.tsx",
|
|
15
|
+
"src/features/**/schemas/index.ts",
|
|
16
|
+
],
|
|
17
|
+
ignoreDependencies: ["tailwindcss", "tw-animate-css"],
|
|
18
|
+
rules: {
|
|
19
|
+
dependencies: "error",
|
|
20
|
+
exports: "warn",
|
|
21
|
+
types: "warn",
|
|
22
|
+
files: "warn",
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
module.exports = config;
|