@tanstack/create 0.61.1 → 0.61.3

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.
Files changed (139) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/frameworks/react/add-ons/ai/assets/src/components/demo-AIAssistant.tsx +2 -2
  3. package/dist/frameworks/react/add-ons/ai/assets/src/components/demo-GuitarRecommendation.tsx +1 -1
  4. package/dist/frameworks/react/add-ons/ai/assets/src/lib/demo-ai-hook.ts +1 -1
  5. package/dist/frameworks/react/add-ons/ai/assets/src/lib/demo-guitar-tools.ts +1 -1
  6. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/ai-chat.tsx +5 -5
  7. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.chat.ts +1 -1
  8. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/guitars/$guitarId.tsx +1 -1
  9. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/guitars/index.tsx +1 -1
  10. package/dist/frameworks/react/add-ons/better-auth/assets/src/integrations/better-auth/header-user.tsx +1 -1
  11. package/dist/frameworks/react/add-ons/better-auth/assets/src/routes/api/auth/$.ts +1 -1
  12. package/dist/frameworks/react/add-ons/better-auth/assets/src/routes/demo/better-auth.tsx +1 -1
  13. package/dist/frameworks/react/add-ons/convex/assets/src/routes/demo/convex.tsx +1 -1
  14. package/dist/frameworks/react/add-ons/db/assets/src/components/demo.chat-area.tsx +1 -1
  15. package/dist/frameworks/react/add-ons/db/assets/src/components/demo.messages.tsx +1 -1
  16. package/dist/frameworks/react/add-ons/db/assets/src/hooks/demo.useChat.ts +1 -1
  17. package/dist/frameworks/react/add-ons/db/assets/src/routes/demo/db-chat.tsx +1 -1
  18. package/dist/frameworks/react/add-ons/drizzle/assets/src/routes/demo/drizzle.tsx.ejs +2 -2
  19. package/dist/frameworks/react/add-ons/form/assets/src/components/demo.FormComponents.tsx.ejs +15 -11
  20. package/dist/frameworks/react/add-ons/form/assets/src/routes/demo/form.address.tsx.ejs +1 -1
  21. package/dist/frameworks/react/add-ons/form/assets/src/routes/demo/form.simple.tsx.ejs +1 -1
  22. package/dist/frameworks/react/add-ons/mcp/assets/src/routes/demo/api.mcp-todos.ts +1 -1
  23. package/dist/frameworks/react/add-ons/mcp/assets/src/routes/mcp.ts +2 -2
  24. package/dist/frameworks/react/add-ons/neon/assets/src/routes/demo/neon.tsx +1 -1
  25. package/dist/frameworks/react/add-ons/oRPC/assets/src/orpc/client.ts +1 -1
  26. package/dist/frameworks/react/add-ons/oRPC/assets/src/routes/api.$.ts +3 -3
  27. package/dist/frameworks/react/add-ons/oRPC/assets/src/routes/api.rpc.$.ts +2 -2
  28. package/dist/frameworks/react/add-ons/oRPC/assets/src/routes/demo/orpc-todo.tsx +1 -1
  29. package/dist/frameworks/react/add-ons/paraglide/assets/src/components/LocaleSwitcher.tsx.ejs +2 -2
  30. package/dist/frameworks/react/add-ons/paraglide/assets/src/routes/demo.i18n.tsx.ejs +1 -1
  31. package/dist/frameworks/react/add-ons/prisma/assets/src/routes/demo/prisma.tsx.ejs +1 -1
  32. package/dist/frameworks/react/add-ons/shadcn/assets/components.json +5 -5
  33. package/dist/frameworks/react/add-ons/shadcn/assets/src/lib/utils.ts +2 -1
  34. package/dist/frameworks/react/add-ons/store/assets/src/routes/demo/store.tsx.ejs +1 -1
  35. package/dist/frameworks/react/add-ons/storybook/assets/src/routes/demo/storybook.tsx +5 -5
  36. package/dist/frameworks/react/add-ons/strapi/assets/src/routes/demo/strapi.tsx +1 -1
  37. package/dist/frameworks/react/add-ons/strapi/assets/src/routes/demo/strapi_.$articleId.tsx +1 -1
  38. package/dist/frameworks/react/add-ons/t3env/README.md +1 -1
  39. package/dist/frameworks/react/add-ons/tRPC/assets/src/integrations/trpc/react.ts +1 -1
  40. package/dist/frameworks/react/add-ons/tRPC/assets/src/routes/api.trpc.$.tsx +1 -1
  41. package/dist/frameworks/react/add-ons/tRPC/assets/src/routes/demo/trpc-todo.tsx +1 -1
  42. package/dist/frameworks/react/add-ons/table/assets/src/routes/demo/table.tsx.ejs +2 -2
  43. package/dist/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +66 -7
  44. package/dist/frameworks/react/examples/events/assets/src/components/RemyAssistant.tsx +2 -2
  45. package/dist/frameworks/react/examples/events/assets/src/components/SpeakerCard.tsx +1 -1
  46. package/dist/frameworks/react/examples/events/assets/src/components/TalkCard.tsx +1 -1
  47. package/dist/frameworks/react/examples/events/assets/src/components/ui/card.tsx +1 -1
  48. package/dist/frameworks/react/examples/events/assets/src/routes/api.remy-chat.ts +1 -1
  49. package/dist/frameworks/react/examples/events/assets/src/routes/index.tsx +4 -4
  50. package/dist/frameworks/react/examples/events/assets/src/routes/schedule.index.tsx +1 -1
  51. package/dist/frameworks/react/examples/events/assets/src/routes/speakers.$slug.tsx +2 -2
  52. package/dist/frameworks/react/examples/events/assets/src/routes/speakers.index.tsx +2 -2
  53. package/dist/frameworks/react/examples/events/assets/src/routes/talks.$slug.tsx +1 -1
  54. package/dist/frameworks/react/examples/events/assets/src/routes/talks.index.tsx +2 -2
  55. package/dist/frameworks/react/examples/resume/assets/src/components/ResumeAssistant.tsx +2 -2
  56. package/dist/frameworks/react/examples/resume/assets/src/components/ui/badge.tsx +1 -1
  57. package/dist/frameworks/react/examples/resume/assets/src/components/ui/card.tsx +1 -1
  58. package/dist/frameworks/react/examples/resume/assets/src/components/ui/checkbox.tsx +1 -1
  59. package/dist/frameworks/react/examples/resume/assets/src/components/ui/hover-card.tsx +1 -1
  60. package/dist/frameworks/react/examples/resume/assets/src/components/ui/separator.tsx +1 -1
  61. package/dist/frameworks/react/examples/resume/assets/src/routes/api.resume-chat.ts +1 -1
  62. package/dist/frameworks/react/examples/resume/assets/src/routes/index.tsx +6 -6
  63. package/dist/frameworks/react/project/base/package.json +5 -2
  64. package/dist/frameworks/react/project/base/src/routes/__root.tsx.ejs +2 -2
  65. package/dist/frameworks/react/project/base/tsconfig.json.ejs +5 -5
  66. package/dist/frameworks/react/project/base/vite.config.ts.ejs +2 -11
  67. package/dist/frameworks/react/toolchains/eslint/assets/eslint.config.js +16 -1
  68. package/dist/frameworks/solid/toolchains/eslint/assets/eslint.config.js +16 -1
  69. package/dist/package-json.js +7 -1
  70. package/package.json +1 -1
  71. package/src/frameworks/react/add-ons/ai/assets/src/components/demo-AIAssistant.tsx +2 -2
  72. package/src/frameworks/react/add-ons/ai/assets/src/components/demo-GuitarRecommendation.tsx +1 -1
  73. package/src/frameworks/react/add-ons/ai/assets/src/lib/demo-ai-hook.ts +1 -1
  74. package/src/frameworks/react/add-ons/ai/assets/src/lib/demo-guitar-tools.ts +1 -1
  75. package/src/frameworks/react/add-ons/ai/assets/src/routes/demo/ai-chat.tsx +5 -5
  76. package/src/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.chat.ts +1 -1
  77. package/src/frameworks/react/add-ons/ai/assets/src/routes/demo/guitars/$guitarId.tsx +1 -1
  78. package/src/frameworks/react/add-ons/ai/assets/src/routes/demo/guitars/index.tsx +1 -1
  79. package/src/frameworks/react/add-ons/better-auth/assets/src/integrations/better-auth/header-user.tsx +1 -1
  80. package/src/frameworks/react/add-ons/better-auth/assets/src/routes/api/auth/$.ts +1 -1
  81. package/src/frameworks/react/add-ons/better-auth/assets/src/routes/demo/better-auth.tsx +1 -1
  82. package/src/frameworks/react/add-ons/convex/assets/src/routes/demo/convex.tsx +1 -1
  83. package/src/frameworks/react/add-ons/db/assets/src/components/demo.chat-area.tsx +1 -1
  84. package/src/frameworks/react/add-ons/db/assets/src/components/demo.messages.tsx +1 -1
  85. package/src/frameworks/react/add-ons/db/assets/src/hooks/demo.useChat.ts +1 -1
  86. package/src/frameworks/react/add-ons/db/assets/src/routes/demo/db-chat.tsx +1 -1
  87. package/src/frameworks/react/add-ons/drizzle/assets/src/routes/demo/drizzle.tsx.ejs +2 -2
  88. package/src/frameworks/react/add-ons/form/assets/src/components/demo.FormComponents.tsx.ejs +15 -11
  89. package/src/frameworks/react/add-ons/form/assets/src/routes/demo/form.address.tsx.ejs +1 -1
  90. package/src/frameworks/react/add-ons/form/assets/src/routes/demo/form.simple.tsx.ejs +1 -1
  91. package/src/frameworks/react/add-ons/mcp/assets/src/routes/demo/api.mcp-todos.ts +1 -1
  92. package/src/frameworks/react/add-ons/mcp/assets/src/routes/mcp.ts +2 -2
  93. package/src/frameworks/react/add-ons/neon/assets/src/routes/demo/neon.tsx +1 -1
  94. package/src/frameworks/react/add-ons/oRPC/assets/src/orpc/client.ts +1 -1
  95. package/src/frameworks/react/add-ons/oRPC/assets/src/routes/api.$.ts +3 -3
  96. package/src/frameworks/react/add-ons/oRPC/assets/src/routes/api.rpc.$.ts +2 -2
  97. package/src/frameworks/react/add-ons/oRPC/assets/src/routes/demo/orpc-todo.tsx +1 -1
  98. package/src/frameworks/react/add-ons/paraglide/assets/src/components/LocaleSwitcher.tsx.ejs +2 -2
  99. package/src/frameworks/react/add-ons/paraglide/assets/src/routes/demo.i18n.tsx.ejs +1 -1
  100. package/src/frameworks/react/add-ons/prisma/assets/src/routes/demo/prisma.tsx.ejs +1 -1
  101. package/src/frameworks/react/add-ons/shadcn/assets/components.json +5 -5
  102. package/src/frameworks/react/add-ons/shadcn/assets/src/lib/utils.ts +2 -1
  103. package/src/frameworks/react/add-ons/store/assets/src/routes/demo/store.tsx.ejs +1 -1
  104. package/src/frameworks/react/add-ons/storybook/assets/src/routes/demo/storybook.tsx +5 -5
  105. package/src/frameworks/react/add-ons/strapi/assets/src/routes/demo/strapi.tsx +1 -1
  106. package/src/frameworks/react/add-ons/strapi/assets/src/routes/demo/strapi_.$articleId.tsx +1 -1
  107. package/src/frameworks/react/add-ons/t3env/README.md +1 -1
  108. package/src/frameworks/react/add-ons/tRPC/assets/src/integrations/trpc/react.ts +1 -1
  109. package/src/frameworks/react/add-ons/tRPC/assets/src/routes/api.trpc.$.tsx +1 -1
  110. package/src/frameworks/react/add-ons/tRPC/assets/src/routes/demo/trpc-todo.tsx +1 -1
  111. package/src/frameworks/react/add-ons/table/assets/src/routes/demo/table.tsx.ejs +2 -2
  112. package/src/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +66 -7
  113. package/src/frameworks/react/examples/events/assets/src/components/RemyAssistant.tsx +2 -2
  114. package/src/frameworks/react/examples/events/assets/src/components/SpeakerCard.tsx +1 -1
  115. package/src/frameworks/react/examples/events/assets/src/components/TalkCard.tsx +1 -1
  116. package/src/frameworks/react/examples/events/assets/src/components/ui/card.tsx +1 -1
  117. package/src/frameworks/react/examples/events/assets/src/routes/api.remy-chat.ts +1 -1
  118. package/src/frameworks/react/examples/events/assets/src/routes/index.tsx +4 -4
  119. package/src/frameworks/react/examples/events/assets/src/routes/schedule.index.tsx +1 -1
  120. package/src/frameworks/react/examples/events/assets/src/routes/speakers.$slug.tsx +2 -2
  121. package/src/frameworks/react/examples/events/assets/src/routes/speakers.index.tsx +2 -2
  122. package/src/frameworks/react/examples/events/assets/src/routes/talks.$slug.tsx +1 -1
  123. package/src/frameworks/react/examples/events/assets/src/routes/talks.index.tsx +2 -2
  124. package/src/frameworks/react/examples/resume/assets/src/components/ResumeAssistant.tsx +2 -2
  125. package/src/frameworks/react/examples/resume/assets/src/components/ui/badge.tsx +1 -1
  126. package/src/frameworks/react/examples/resume/assets/src/components/ui/card.tsx +1 -1
  127. package/src/frameworks/react/examples/resume/assets/src/components/ui/checkbox.tsx +1 -1
  128. package/src/frameworks/react/examples/resume/assets/src/components/ui/hover-card.tsx +1 -1
  129. package/src/frameworks/react/examples/resume/assets/src/components/ui/separator.tsx +1 -1
  130. package/src/frameworks/react/examples/resume/assets/src/routes/api.resume-chat.ts +1 -1
  131. package/src/frameworks/react/examples/resume/assets/src/routes/index.tsx +6 -6
  132. package/src/frameworks/react/project/base/package.json +5 -2
  133. package/src/frameworks/react/project/base/src/routes/__root.tsx.ejs +2 -2
  134. package/src/frameworks/react/project/base/tsconfig.json.ejs +5 -5
  135. package/src/frameworks/react/project/base/vite.config.ts.ejs +2 -11
  136. package/src/frameworks/react/toolchains/eslint/assets/eslint.config.js +16 -1
  137. package/src/frameworks/solid/toolchains/eslint/assets/eslint.config.js +16 -1
  138. package/src/package-json.ts +12 -2
  139. package/tests/package-json.test.ts +29 -0
@@ -3,7 +3,7 @@ import { Clock, User } from 'lucide-react'
3
3
 
4
4
  import { type Talk } from 'content-collections'
5
5
 
6
- import { Card, CardContent } from '@/components/ui/card'
6
+ import { Card, CardContent } from '#/components/ui/card'
7
7
 
8
8
  interface TalkCardProps {
9
9
  talk: Talk
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react'
2
2
 
3
- import { cn } from '@/lib/utils'
3
+ import { cn } from '#/lib/utils'
4
4
 
5
5
  function Card({ className, ...props }: React.ComponentProps<'div'>) {
6
6
  return (
@@ -11,7 +11,7 @@ import {
11
11
  getAllSpeakers,
12
12
  getAllTalks,
13
13
  searchConference,
14
- } from '@/lib/conference-tools'
14
+ } from '#/lib/conference-tools'
15
15
 
16
16
  export const Route = createFileRoute('/api/remy-chat')({
17
17
  server: {
@@ -3,10 +3,10 @@ import { ArrowRight, Calendar, MapPin, Users } from 'lucide-react'
3
3
 
4
4
  import { allSpeakers, allTalks } from 'content-collections'
5
5
 
6
- import SpeakerCard from '@/components/SpeakerCard'
7
- import TalkCard from '@/components/TalkCard'
8
- import RemyAssistant from '@/components/RemyAssistant'
9
- import HeroCarousel from '@/components/HeroCarousel'
6
+ import SpeakerCard from '#/components/SpeakerCard'
7
+ import TalkCard from '#/components/TalkCard'
8
+ import RemyAssistant from '#/components/RemyAssistant'
9
+ import HeroCarousel from '#/components/HeroCarousel'
10
10
 
11
11
  export const Route = createFileRoute('/')({
12
12
  component: HomePage,
@@ -4,7 +4,7 @@ import { useState } from 'react'
4
4
 
5
5
  import { allTalks, allSpeakers } from 'content-collections'
6
6
 
7
- import RemyAssistant from '@/components/RemyAssistant'
7
+ import RemyAssistant from '#/components/RemyAssistant'
8
8
 
9
9
  export const Route = createFileRoute('/schedule/')({
10
10
  component: SchedulePage,
@@ -5,8 +5,8 @@ import { Link } from '@tanstack/react-router'
5
5
 
6
6
  import { allSpeakers, allTalks } from 'content-collections'
7
7
 
8
- import RemyAssistant from '@/components/RemyAssistant'
9
- import TalkCard from '@/components/TalkCard'
8
+ import RemyAssistant from '#/components/RemyAssistant'
9
+ import TalkCard from '#/components/TalkCard'
10
10
 
11
11
  export const Route = createFileRoute('/speakers/$slug')({
12
12
  loader: async ({ params }) => {
@@ -2,8 +2,8 @@ import { createFileRoute } from '@tanstack/react-router'
2
2
 
3
3
  import { allSpeakers } from 'content-collections'
4
4
 
5
- import SpeakerCard from '@/components/SpeakerCard'
6
- import RemyAssistant from '@/components/RemyAssistant'
5
+ import SpeakerCard from '#/components/SpeakerCard'
6
+ import RemyAssistant from '#/components/RemyAssistant'
7
7
 
8
8
  export const Route = createFileRoute('/speakers/')({
9
9
  component: SpeakersPage,
@@ -4,7 +4,7 @@ import { Clock, User, ArrowLeft, Tag } from 'lucide-react'
4
4
 
5
5
  import { allTalks, allSpeakers } from 'content-collections'
6
6
 
7
- import RemyAssistant from '@/components/RemyAssistant'
7
+ import RemyAssistant from '#/components/RemyAssistant'
8
8
 
9
9
  export const Route = createFileRoute('/talks/$slug')({
10
10
  loader: async ({ params }) => {
@@ -2,8 +2,8 @@ import { createFileRoute } from '@tanstack/react-router'
2
2
 
3
3
  import { allTalks } from 'content-collections'
4
4
 
5
- import TalkCard from '@/components/TalkCard'
6
- import RemyAssistant from '@/components/RemyAssistant'
5
+ import TalkCard from '#/components/TalkCard'
6
+ import RemyAssistant from '#/components/RemyAssistant'
7
7
 
8
8
  export const Route = createFileRoute('/talks/')({
9
9
  component: TalksPage,
@@ -3,8 +3,8 @@ import { Send, X, Briefcase, UserCheck } from "lucide-react";
3
3
  import { Streamdown } from "streamdown";
4
4
  import { Store } from "@tanstack/store";
5
5
 
6
- import { useResumeChat } from "@/lib/resume-ai-hook";
7
- import type { ResumeChatMessages } from "@/lib/resume-ai-hook";
6
+ import { useResumeChat } from "#/lib/resume-ai-hook";
7
+ import type { ResumeChatMessages } from "#/lib/resume-ai-hook";
8
8
 
9
9
  function Messages({ messages }: { messages: ResumeChatMessages }) {
10
10
  const messagesContainerRef = useRef<HTMLDivElement>(null);
@@ -2,7 +2,7 @@ import * as React from "react"
2
2
  import { Slot } from "@radix-ui/react-slot"
3
3
  import { cva, type VariantProps } from "class-variance-authority"
4
4
 
5
- import { cn } from "@/lib/utils"
5
+ import { cn } from "#/lib/utils"
6
6
 
7
7
  const badgeVariants = cva(
8
8
  "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
@@ -1,6 +1,6 @@
1
1
  import * as React from "react"
2
2
 
3
- import { cn } from "@/lib/utils"
3
+ import { cn } from "#/lib/utils"
4
4
 
5
5
  function Card({ className, ...props }: React.ComponentProps<"div">) {
6
6
  return (
@@ -2,7 +2,7 @@ import * as React from "react"
2
2
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox"
3
3
  import { CheckIcon } from "lucide-react"
4
4
 
5
- import { cn } from "@/lib/utils"
5
+ import { cn } from "#/lib/utils"
6
6
 
7
7
  function Checkbox({
8
8
  className,
@@ -3,7 +3,7 @@
3
3
  import * as React from "react"
4
4
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card"
5
5
 
6
- import { cn } from "@/lib/utils"
6
+ import { cn } from "#/lib/utils"
7
7
 
8
8
  function HoverCard({
9
9
  ...props
@@ -1,7 +1,7 @@
1
1
  import * as React from "react"
2
2
  import * as SeparatorPrimitive from "@radix-ui/react-separator"
3
3
 
4
- import { cn } from "@/lib/utils"
4
+ import { cn } from "#/lib/utils"
5
5
 
6
6
  function Separator({
7
7
  className,
@@ -10,7 +10,7 @@ import {
10
10
  getAllJobs,
11
11
  getAllEducation,
12
12
  searchExperience,
13
- } from '@/lib/resume-tools'
13
+ } from '#/lib/resume-tools'
14
14
 
15
15
  export const Route = createFileRoute('/api/resume-chat')({
16
16
  server: {
@@ -3,17 +3,17 @@ import { marked } from 'marked'
3
3
 
4
4
  import { createFileRoute } from '@tanstack/react-router'
5
5
  import { allJobs, allEducations } from 'content-collections'
6
- import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
7
- import { Checkbox } from '@/components/ui/checkbox'
8
- import { Badge } from '@/components/ui/badge'
9
- import { Separator } from '@/components/ui/separator'
6
+ import { Card, CardContent, CardHeader, CardTitle } from '#/components/ui/card'
7
+ import { Checkbox } from '#/components/ui/checkbox'
8
+ import { Badge } from '#/components/ui/badge'
9
+ import { Separator } from '#/components/ui/separator'
10
10
  import {
11
11
  HoverCard,
12
12
  HoverCardContent,
13
13
  HoverCardTrigger,
14
- } from '@/components/ui/hover-card'
14
+ } from '#/components/ui/hover-card'
15
15
 
16
- import ResumeAssistant from '@/components/ResumeAssistant'
16
+ import ResumeAssistant from '#/components/ResumeAssistant'
17
17
 
18
18
  export const Route = createFileRoute('/')({
19
19
  component: App,
@@ -2,6 +2,9 @@
2
2
  "name": "",
3
3
  "private": true,
4
4
  "type": "module",
5
+ "imports": {
6
+ "#/*": "./src/*"
7
+ },
5
8
  "scripts": {
6
9
  "dev": "vite dev --port 3000",
7
10
  "build": "vite build",
@@ -16,8 +19,7 @@
16
19
  "@tanstack/react-start": "^1.132.0",
17
20
  "lucide-react": "^0.561.0",
18
21
  "react": "^19.2.0",
19
- "react-dom": "^19.2.0",
20
- "vite-tsconfig-paths": "^5.1.4"
22
+ "react-dom": "^19.2.0"
21
23
  },
22
24
  "devDependencies": {
23
25
  "@tanstack/devtools-vite": "^0.3.11",
@@ -29,6 +31,7 @@
29
31
  "jsdom": "^27.0.0",
30
32
  "typescript": "^5.7.2",
31
33
  "vite": "^7.1.7",
34
+ "vite-tsconfig-paths": "^5.1.4",
32
35
  "vitest": "^3.0.5"
33
36
  }
34
37
  }
@@ -8,7 +8,7 @@ import Header from '../components/Header'
8
8
  <% } %><% for(const integration of integrations.filter(i => i.type === 'layout' || i.type === 'provider' || i.type === 'devtools')) { %>
9
9
  import <%= integration.jsName %> from '<%= relativePath(integration.path, true) %>'
10
10
  <% } %><% if (addOnEnabled.paraglide) { %>
11
- import { getLocale } from '@/paraglide/runtime'
11
+ import { getLocale } from '#/paraglide/runtime'
12
12
  <% } %>
13
13
  import appCss from '../styles.css?url'
14
14
  <% if (addOnEnabled["apollo-client"]) { %>
@@ -17,7 +17,7 @@ import type { ApolloClientIntegration } from "@apollo/client-integration-tanstac
17
17
  <% if (addOnEnabled["tanstack-query"]) { %>
18
18
  import type { QueryClient } from '@tanstack/react-query'
19
19
  <% if (addOnEnabled.tRPC) { %>
20
- import type { TRPCRouter } from '@/integrations/trpc/router'
20
+ import type { TRPCRouter } from '#/integrations/trpc/router'
21
21
  import type { TRPCOptionsProxy } from '@trpc/tanstack-react-query'
22
22
  <% } %>
23
23
  <% } %>
@@ -5,6 +5,10 @@
5
5
  "target": "ES2022",
6
6
  "jsx": "react-jsx",
7
7
  "module": "ESNext",
8
+ "baseUrl": ".",
9
+ "paths": {
10
+ "@/*": ["./src/*"]
11
+ },
8
12
  "lib": ["ES2022", "DOM", "DOM.Iterable"],
9
13
  "types": ["vite/client"],
10
14
 
@@ -21,10 +25,6 @@
21
25
  "noUnusedLocals": true,
22
26
  "noUnusedParameters": true,
23
27
  "noFallthroughCasesInSwitch": true,
24
- "noUncheckedSideEffectImports": true,
25
- "baseUrl": ".",
26
- "paths": {
27
- "@/*": ["./src/*"]
28
- }
28
+ "noUncheckedSideEffectImports": true
29
29
  }
30
30
  }
@@ -1,31 +1,22 @@
1
1
  import { defineConfig } from 'vite'
2
2
  import { devtools } from '@tanstack/devtools-vite'
3
+ import tsconfigPaths from 'vite-tsconfig-paths'
3
4
  <% if (addOnEnabled.paraglide) { -%>
4
5
  import { paraglideVitePlugin } from "@inlang/paraglide-js"
5
6
  <% } -%>
6
7
  import { tanstackStart } from '@tanstack/react-start/plugin/vite';
7
8
  import viteReact from '@vitejs/plugin-react'
8
- import viteTsConfigPaths from 'vite-tsconfig-paths'
9
- import { fileURLToPath, URL } from 'node:url'
10
9
  import tailwindcss from "@tailwindcss/vite"
11
10
  <% for(const integration of integrations.filter(i => i.type === 'vite-plugin')) { %><%- integrationImportContent(integration) %>
12
11
  <% } %>
13
12
 
14
13
  const config = defineConfig({
15
- resolve: {
16
- alias: {
17
- '@': fileURLToPath(new URL('./src', import.meta.url)),
18
- },
19
- },
20
14
  plugins: [devtools(), <% if (addOnEnabled.paraglide) { %>paraglideVitePlugin({
21
15
  project: './project.inlang',
22
16
  outdir: './src/paraglide',
23
17
  strategy: ['url'],
24
18
  }), <% } %><% for(const integration of integrations.filter(i => i.type === 'vite-plugin')) { %><%- integrationImportCode(integration) %>,<% } %>
25
- // this is the plugin that enables path aliases
26
- viteTsConfigPaths({
27
- projects: ['./tsconfig.json'],
28
- }),
19
+ tsconfigPaths({ projects: ['./tsconfig.json'] }),
29
20
  tailwindcss(),
30
21
  tanstackStart(),
31
22
  viteReact(<% if (addOnEnabled.compiler) { %>{
@@ -2,4 +2,19 @@
2
2
 
3
3
  import { tanstackConfig } from '@tanstack/eslint-config'
4
4
 
5
- export default [...tanstackConfig]
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: ['eslint.config.js', 'prettier.config.js'],
19
+ },
20
+ ]
@@ -2,4 +2,19 @@
2
2
 
3
3
  import { tanstackConfig } from "@tanstack/eslint-config";
4
4
 
5
- export default [...tanstackConfig];
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: ["eslint.config.js", "prettier.config.js"],
19
+ },
20
+ ];
@@ -1,5 +1,6 @@
1
1
  import { render } from 'ejs';
2
- import { sortObject } from './utils.js';
2
+ import { formatCommand, sortObject } from './utils.js';
3
+ import { getPackageManagerExecuteCommand } from './package-manager.js';
3
4
  export function mergePackageJSON(packageJSON, overlayPackageJSON) {
4
5
  return {
5
6
  ...packageJSON,
@@ -19,6 +20,10 @@ export function mergePackageJSON(packageJSON, overlayPackageJSON) {
19
20
  };
20
21
  }
21
22
  export function createPackageJSON(options) {
23
+ const packageManager = options.packageManager;
24
+ function getPackageManagerExecuteScript(pkg, args = []) {
25
+ return formatCommand(getPackageManagerExecuteCommand(packageManager, pkg, args));
26
+ }
22
27
  let packageJSON = {
23
28
  ...JSON.parse(JSON.stringify(options.framework.basePackageJSON)),
24
29
  name: options.projectName,
@@ -50,6 +55,7 @@ export function createPackageJSON(options) {
50
55
  }, {}),
51
56
  addOnOption: options.addOnOptions,
52
57
  addOns: options.chosenAddOns,
58
+ getPackageManagerExecuteScript,
53
59
  };
54
60
  try {
55
61
  const renderedTemplate = render(addOn.packageTemplate, templateValues);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/create",
3
- "version": "0.61.1",
3
+ "version": "0.61.3",
4
4
  "description": "TanStack Application Builder Engine",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -5,8 +5,8 @@ import { Store } from '@tanstack/store'
5
5
  import { Send, X, ChevronRight, BotIcon } from 'lucide-react'
6
6
  import { Streamdown } from 'streamdown'
7
7
 
8
- import { useGuitarRecommendationChat } from '@/lib/demo-ai-hook'
9
- import type { ChatMessages } from '@/lib/demo-ai-hook'
8
+ import { useGuitarRecommendationChat } from '#/lib/demo-ai-hook'
9
+ import type { ChatMessages } from '#/lib/demo-ai-hook'
10
10
 
11
11
  import GuitarRecommendation from './demo-GuitarRecommendation'
12
12
 
@@ -2,7 +2,7 @@ import { useNavigate } from '@tanstack/react-router'
2
2
 
3
3
  import { showAIAssistant } from './demo-AIAssistant'
4
4
 
5
- import guitars from '@/data/demo-guitars'
5
+ import guitars from '#/data/demo-guitars'
6
6
 
7
7
  export default function GuitarRecommendation({ id }: { id: string }) {
8
8
  const navigate = useNavigate()
@@ -6,7 +6,7 @@ import {
6
6
  import type { InferChatMessages } from '@tanstack/ai-react'
7
7
  import { clientTools } from '@tanstack/ai-client'
8
8
 
9
- import { recommendGuitarToolDef } from '@/lib/demo-guitar-tools'
9
+ import { recommendGuitarToolDef } from '#/lib/demo-guitar-tools'
10
10
 
11
11
  const recommendGuitarToolClient = recommendGuitarToolDef.client(({ id }) => ({
12
12
  id: +id,
@@ -1,6 +1,6 @@
1
1
  import { toolDefinition } from '@tanstack/ai'
2
2
  import { z } from 'zod'
3
- import guitars from '@/data/demo-guitars'
3
+ import guitars from '#/data/demo-guitars'
4
4
 
5
5
  // Tool definition for getting guitars
6
6
  export const getGuitarsToolDef = toolDefinition({
@@ -11,12 +11,12 @@ import {
11
11
  } from 'lucide-react'
12
12
  import { Streamdown } from 'streamdown'
13
13
 
14
- import { useGuitarRecommendationChat } from '@/lib/demo-ai-hook'
15
- import type { ChatMessages } from '@/lib/demo-ai-hook'
16
- import { useAudioRecorder } from '@/hooks/demo-useAudioRecorder'
17
- import { useTTS } from '@/hooks/demo-useTTS'
14
+ import { useGuitarRecommendationChat } from '#/lib/demo-ai-hook'
15
+ import type { ChatMessages } from '#/lib/demo-ai-hook'
16
+ import { useAudioRecorder } from '#/hooks/demo-useAudioRecorder'
17
+ import { useTTS } from '#/hooks/demo-useTTS'
18
18
 
19
- import GuitarRecommendation from '@/components/demo-GuitarRecommendation'
19
+ import GuitarRecommendation from '#/components/demo-GuitarRecommendation'
20
20
 
21
21
  import './ai-chat.css'
22
22
 
@@ -5,7 +5,7 @@ import { openaiText } from '@tanstack/ai-openai'
5
5
  import { geminiText } from '@tanstack/ai-gemini'
6
6
  import { ollamaText } from '@tanstack/ai-ollama'
7
7
 
8
- import { getGuitars, recommendGuitarToolDef } from '@/lib/demo-guitar-tools'
8
+ import { getGuitars, recommendGuitarToolDef } from '#/lib/demo-guitar-tools'
9
9
 
10
10
  const SYSTEM_PROMPT = `You are a helpful assistant for a store that sells guitars.
11
11
 
@@ -1,6 +1,6 @@
1
1
  import { Link, createFileRoute } from '@tanstack/react-router'
2
2
 
3
- import guitars from '@/data/demo-guitars'
3
+ import guitars from '#/data/demo-guitars'
4
4
 
5
5
  export const Route = createFileRoute('/demo/guitars/$guitarId')({
6
6
  component: RouteComponent,
@@ -1,6 +1,6 @@
1
1
  import { Link, createFileRoute } from '@tanstack/react-router'
2
2
 
3
- import guitars from '@/data/demo-guitars'
3
+ import guitars from '#/data/demo-guitars'
4
4
 
5
5
  export const Route = createFileRoute('/demo/guitars/')({
6
6
  component: GuitarsIndex,
@@ -1,4 +1,4 @@
1
- import { authClient } from "@/lib/auth-client";
1
+ import { authClient } from "#/lib/auth-client";
2
2
  import { Link } from "@tanstack/react-router";
3
3
 
4
4
  export default function BetterAuthHeader() {
@@ -1,5 +1,5 @@
1
1
  import { createFileRoute } from '@tanstack/react-router'
2
- import { auth } from '@/lib/auth'
2
+ import { auth } from '#/lib/auth'
3
3
 
4
4
  export const Route = createFileRoute('/api/auth/$')({
5
5
  server: {
@@ -1,6 +1,6 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
2
  import { useState } from "react";
3
- import { authClient } from "@/lib/auth-client";
3
+ import { authClient } from "#/lib/auth-client";
4
4
 
5
5
  export const Route = createFileRoute("/demo/better-auth")({
6
6
  component: BetterAuthDemo,
@@ -4,7 +4,7 @@ import { useQuery, useMutation } from 'convex/react'
4
4
  import { Trash2, Plus, Check, Circle } from 'lucide-react'
5
5
 
6
6
  import { api } from '../../../convex/_generated/api'
7
- import { Id } from '../../../convex/_generated/dataModel'
7
+ import type { Id } from '../../../convex/_generated/dataModel'
8
8
 
9
9
  export const Route = createFileRoute('/demo/convex')({
10
10
  ssr: false,
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react'
2
2
 
3
- import { useChat, useMessages } from '@/hooks/demo.useChat'
3
+ import { useChat, useMessages } from '#/hooks/demo.useChat'
4
4
 
5
5
  import Messages from './demo.messages'
6
6
 
@@ -1,4 +1,4 @@
1
- import type { Message } from '@/db-collections'
1
+ import type { Message } from '#/db-collections'
2
2
 
3
3
  export const getAvatarColor = (username: string) => {
4
4
  const colors = [
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useRef } from 'react'
2
2
  import { useLiveQuery } from '@tanstack/react-db'
3
3
 
4
- import { messagesCollection, type Message } from '@/db-collections'
4
+ import { messagesCollection, type Message } from '#/db-collections'
5
5
 
6
6
  import type { Collection } from '@tanstack/react-db'
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { createFileRoute } from '@tanstack/react-router'
2
2
 
3
- import ChatArea from '@/components/demo.chat-area'
3
+ import ChatArea from '#/components/demo.chat-area'
4
4
 
5
5
  export const Route = createFileRoute('/demo/db-chat')({
6
6
  component: App,
@@ -1,8 +1,8 @@
1
1
  import { createFileRoute, useRouter } from '@tanstack/react-router'
2
2
  import { createServerFn } from '@tanstack/react-start'
3
- import { db } from '@/db/index'
3
+ import { db } from '#/db/index'
4
4
  import { desc } from 'drizzle-orm'
5
- import { todos } from '@/db/schema'
5
+ import { todos } from '#/db/schema'
6
6
 
7
7
  const getTodos = createServerFn({
8
8
  method: 'GET',
@@ -1,14 +1,14 @@
1
1
  import { useStore } from '@tanstack/react-form'
2
2
 
3
- import { useFieldContext, useFormContext } from '@/hooks/demo.form-context'
3
+ import { useFieldContext, useFormContext } from '#/hooks/demo.form-context'
4
4
  <% if (addOnEnabled.shadcn) { %>
5
- import { Button } from '@/components/ui/button'
6
- import { Input } from '@/components/ui/input'
7
- import { Textarea as ShadcnTextarea } from '@/components/ui/textarea'
8
- import * as ShadcnSelect from '@/components/ui/select'
9
- import { Slider as ShadcnSlider } from '@/components/ui/slider'
10
- import { Switch as ShadcnSwitch } from '@/components/ui/switch'
11
- import { Label } from '@/components/ui/label'
5
+ import { Button } from '#/components/ui/button'
6
+ import { Input } from '#/components/ui/input'
7
+ import { Textarea as ShadcnTextarea } from '#/components/ui/textarea'
8
+ import * as ShadcnSelect from '#/components/ui/select'
9
+ import { Slider as ShadcnSlider } from '#/components/ui/slider'
10
+ import { Switch as ShadcnSwitch } from '#/components/ui/switch'
11
+ import { Label } from '#/components/ui/label'
12
12
 
13
13
  export function SubscribeButton({ label }: { label: string }) {
14
14
  const form = useFormContext()
@@ -117,11 +117,15 @@ export function Select({
117
117
  <ShadcnSelect.SelectTrigger className="w-full">
118
118
  <ShadcnSelect.SelectValue placeholder={placeholder} />
119
119
  </ShadcnSelect.SelectTrigger>
120
- <ShadcnSelect.SelectContent>
120
+ <ShadcnSelect.SelectContent className="bg-background text-foreground">
121
121
  <ShadcnSelect.SelectGroup>
122
122
  <ShadcnSelect.SelectLabel>{label}</ShadcnSelect.SelectLabel>
123
123
  {values.map((value) => (
124
- <ShadcnSelect.SelectItem key={value.value} value={value.value}>
124
+ <ShadcnSelect.SelectItem
125
+ key={value.value}
126
+ value={value.value}
127
+ className="text-foreground"
128
+ >
125
129
  {value.label}
126
130
  </ShadcnSelect.SelectItem>
127
131
  ))}
@@ -297,4 +301,4 @@ export function Select({
297
301
  </div>
298
302
  )
299
303
  }
300
- <% } %>
304
+ <% } %>
@@ -1,6 +1,6 @@
1
1
  import { <% if (fileRouter) { %>createFileRoute<% } else { %>createRoute<% } %> } from '@tanstack/react-router'
2
2
 
3
- import { useAppForm } from '@/hooks/demo.form'
3
+ import { useAppForm } from '#/hooks/demo.form'
4
4
 
5
5
  <% if (codeRouter) { %>
6
6
  import type { RootRoute } from '@tanstack/react-router'
@@ -1,7 +1,7 @@
1
1
  import { <% if (fileRouter) { %>createFileRoute<% } else { %>createRoute<% } %> } from '@tanstack/react-router'
2
2
  import { z } from 'zod'
3
3
 
4
- import { useAppForm } from '@/hooks/demo.form'
4
+ import { useAppForm } from '#/hooks/demo.form'
5
5
 
6
6
  <% if (codeRouter) { %>
7
7
  import type { RootRoute } from '@tanstack/react-router'