@better-t-stack/template-generator 3.25.3 → 3.25.5

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/dist/index.d.mts CHANGED
@@ -145,7 +145,7 @@ declare const dependencyVersionMap: {
145
145
  readonly "@orpc/client": "^1.12.2";
146
146
  readonly "@orpc/openapi": "^1.12.2";
147
147
  readonly "@orpc/zod": "^1.12.2";
148
- readonly "@orpc/tanstack-query": "^1.12.2";
148
+ readonly "@orpc/tanstack-query": "^1.13.6";
149
149
  readonly "@trpc/tanstack-react-query": "^11.7.2";
150
150
  readonly "@trpc/server": "^11.7.2";
151
151
  readonly "@trpc/client": "^11.7.2";
@@ -159,8 +159,8 @@ declare const dependencyVersionMap: {
159
159
  readonly "@convex-dev/better-auth": "^0.10.13";
160
160
  readonly "@tanstack/svelte-query": "^5.85.3";
161
161
  readonly "@tanstack/svelte-query-devtools": "^5.85.3";
162
- readonly "@tanstack/vue-query-devtools": "^5.90.2";
163
- readonly "@tanstack/vue-query": "^5.90.2";
162
+ readonly "@tanstack/vue-query-devtools": "^6.1.5";
163
+ readonly "@tanstack/vue-query": "^5.92.9";
164
164
  readonly "@tanstack/react-query-devtools": "^5.91.1";
165
165
  readonly "@tanstack/react-query": "^5.90.12";
166
166
  readonly "@tanstack/react-form": "^1.28.0";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/virtual-fs.ts","../src/core/template-processor.ts","../src/template-handlers/utils.ts","../src/template-handlers/addons.ts","../src/generator.ts","../src/processors/addons-deps.ts","../src/bts-config.ts","../src/templates.generated.ts","../src/utils/add-deps.ts","../src/utils/reproducible-command.ts"],"sourcesContent":[],"mappings":";;;;;;;cAOa,iBAAA;;;;;;EAAA,QAAA,CAAA,QAAA,EAAA,MAAiB,CAAA,EAAA,MAAA,GAAA,SAAA;EA6Ea,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAkCX,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAgB,eAcrC,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAA,KAGJ,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;2CAnDoC;;EC1E3B,WAAA,CAAA,CAAA,EAAA,MAAA,EAAA;EAIA,iBAAY,CAAA,CAAA,EAAA,MAAA,EAAA;EAIZ,YAAA,CAAA,CAAA,EAAA,MAAiB;EAUjB,iBAAA,CAAA,CAAA,EAAkB,MAAA;6BD0FF;;eAAgB,MAAA,CAcrC;EE/HC,KAAA,CAAA,CAAA,EF+HD,MAAA,CAGJ,GElIoB;;;;ECAL,QAAA,aAAA;;;;iBFKN,qBAAA,2BAAgD;iBAIhD,YAAA;iBAIA,iBAAA;iBAUA,kBAAA,6CAGL;;;KC1BC,YAAA,GAAe;;;iBCAL,qBAAA,MACf,8BACM,sBACH,gBACP;;;;;AHFH;;;;;;;;;ACGA;AAIA;AAIgB,iBG+BM,QAAA,CH/BW,OAAA,EGgCtB,gBHhCsB,CAAA,EGiC9B,OHjC8B,CGiCtB,MHjCsB,CGiCf,eHjCe,EGiCE,cHjCF,CAAA,CAAA;;;iBIJjB,iBAAA,MAAuB,2BAA2B;;;;;;;iBCJlD,mBAAA,MACT,kCACU;;;cCTJ,oBAAoB;cAyo0BpB,cAAA;;;cC/n0BA;;;ERNA,SAAA,mBAAiB,EAAA,OAAA;EA6Ea,SAAA,eAAA,EAAA,SAAA;EAkCX,SAAA,oBAAA,EAAA,SAAA;EAAgB,SAcrC,6BAAA,EAAA,SAAA;EAAA,SAGJ,mBAAA,EAAA,UAAA;EAAA,SAAA,aAAA,EAAA,SAAA;;;;EC7HS,SAAA,MAAA,EAAA,QAAqB;EAIrB,SAAA,0BAAY,EAAA,QAAA;EAIZ,SAAA,EAAA,EAAA,SAAiB;EAUjB,SAAA,WAAA,EAAkB,SAAA;;;;ECvBtB,SAAA,gBAAY,EAAG,QAAG;;;;ECAR,SAAA,yBAAqB,EAAA,QAAA;EACpC,SAAA,wBAAA,EAAA,QAAA;EACM,SAAA,gCAAA,EAAA,QAAA;EACH,SAAA,oBAAA,EAAA,QAAA;EACP,SAAA,6BAAA,EAAA,QAAA;EAAO,SAAA,QAAA,EAAA,SAAA;;;;ECwCY,SAAA,gBAAQ,EAAA,QAAA;EACnB,SAAA,MAAA,EAAA,SAAA;EACO,SAAA,KAAA,EAAA,SAAA;EAAiB,SAAA,KAAA,EAAA,QAAA;EAAxB,SAAA,QAAA,EAAA,SAAA;EAAR,SAAA,aAAA,EAAA,SAAA;EAAO,SAAA,GAAA,EAAA,SAAA;;;;ECrCM,SAAA,gBAAiB,EAAA,QAAM;;;;ECJvB,SAAA,mBAAmB,EAAA,QAC5B;;;;ECRM,SAAA,gBAuo0BX,EAAA,QAvo0B+B;EAyo0BpB,SAAA,aAAc,EAAA,SAAA;;;;EC/n0Bd,SAAA,EAAA,EAAA,SAAA;EAkJD,SAAA,EAAA,EAAA,QAAA;;;;ECpII,SAAA,eAAA,EAAA,QAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KDoI/B,qBAAA,gBAAqC;;;iBCpIjC,2BAAA,SAAoC"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/virtual-fs.ts","../src/core/template-processor.ts","../src/template-handlers/utils.ts","../src/template-handlers/addons.ts","../src/generator.ts","../src/processors/addons-deps.ts","../src/bts-config.ts","../src/templates.generated.ts","../src/utils/add-deps.ts","../src/utils/reproducible-command.ts"],"sourcesContent":[],"mappings":";;;;;;;cAOa,iBAAA;;;;;;EAAA,QAAA,CAAA,QAAA,EAAA,MAAiB,CAAA,EAAA,MAAA,GAAA,SAAA;EA6Ea,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAkCX,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAgB,eAcrC,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAA,KAGJ,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;2CAnDoC;;EC1E3B,WAAA,CAAA,CAAA,EAAA,MAAA,EAAA;EAIA,iBAAY,CAAA,CAAA,EAAA,MAAA,EAAA;EAIZ,YAAA,CAAA,CAAA,EAAA,MAAiB;EAUjB,iBAAA,CAAA,CAAA,EAAkB,MAAA;6BD0FF;;eAAgB,MAAA,CAcrC;EE/HC,KAAA,CAAA,CAAA,EF+HD,MAAA,CAGJ,GElIoB;;;;ECAL,QAAA,aAAA;;;;iBFKN,qBAAA,2BAAgD;iBAIhD,YAAA;iBAIA,iBAAA;iBAUA,kBAAA,6CAGL;;;KC1BC,YAAA,GAAe;;;iBCAL,qBAAA,MACf,8BACM,sBACH,gBACP;;;;;AHFH;;;;;;;;;ACGA;AAIA;AAIgB,iBG+BM,QAAA,CH/BW,OAAA,EGgCtB,gBHhCsB,CAAA,EGiC9B,OHjC8B,CGiCtB,MHjCsB,CGiCf,eHjCe,EGiCE,cHjCF,CAAA,CAAA;;;iBIJjB,iBAAA,MAAuB,2BAA2B;;;;;;;iBCJlD,mBAAA,MACT,kCACU;;;cCTJ,oBAAoB;cAiv0BpB,cAAA;;;cCvu0BA;;;ERNA,SAAA,mBAAiB,EAAA,OAAA;EA6Ea,SAAA,eAAA,EAAA,SAAA;EAkCX,SAAA,oBAAA,EAAA,SAAA;EAAgB,SAcrC,6BAAA,EAAA,SAAA;EAAA,SAGJ,mBAAA,EAAA,UAAA;EAAA,SAAA,aAAA,EAAA,SAAA;;;;EC7HS,SAAA,MAAA,EAAA,QAAqB;EAIrB,SAAA,0BAAY,EAAA,QAAA;EAIZ,SAAA,EAAA,EAAA,SAAiB;EAUjB,SAAA,WAAA,EAAkB,SAAA;;;;ECvBtB,SAAA,gBAAY,EAAG,QAAG;;;;ECAR,SAAA,yBAAqB,EAAA,QAAA;EACpC,SAAA,wBAAA,EAAA,QAAA;EACM,SAAA,gCAAA,EAAA,QAAA;EACH,SAAA,oBAAA,EAAA,QAAA;EACP,SAAA,6BAAA,EAAA,QAAA;EAAO,SAAA,QAAA,EAAA,SAAA;;;;ECwCY,SAAA,gBAAQ,EAAA,QAAA;EACnB,SAAA,MAAA,EAAA,SAAA;EACO,SAAA,KAAA,EAAA,SAAA;EAAiB,SAAA,KAAA,EAAA,QAAA;EAAxB,SAAA,QAAA,EAAA,SAAA;EAAR,SAAA,aAAA,EAAA,SAAA;EAAO,SAAA,GAAA,EAAA,SAAA;;;;ECrCM,SAAA,gBAAiB,EAAA,QAAM;;;;ECJvB,SAAA,mBAAmB,EAAA,QAC5B;;;;ECRM,SAAA,gBA+u0BX,EAAA,QA/u0B+B;EAiv0BpB,SAAA,aAAc,EAAA,SAAA;;;;ECvu0Bd,SAAA,EAAA,EAAA,SAAA;EAkJD,SAAA,EAAA,EAAA,QAAA;;;;ECpII,SAAA,eAAA,EAAA,QAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KDoI/B,qBAAA,gBAAqC;;;iBCpIjC,2BAAA,SAAoC"}
package/dist/index.mjs CHANGED
@@ -496,6 +496,10 @@ function updateRootPackageJson(vfs, config) {
496
496
  scripts.destroy = pmConfig.filter(infraPackageName, "destroy");
497
497
  }
498
498
  pkgJson.packageManager = `${packageManager}@latest`;
499
+ if (config.api === "orpc" && config.frontend.includes("nuxt")) pkgJson.overrides = {
500
+ ...pkgJson.overrides || {},
501
+ "@vue/devtools-api": "^8.0.7"
502
+ };
499
503
  if (backend === "convex") {
500
504
  if (!workspaces.includes("packages/*")) workspaces.push("packages/*");
501
505
  if ((config.frontend.length > 0 || addons.includes("starlight")) && !workspaces.includes("apps/*")) workspaces.push("apps/*");
@@ -767,7 +771,7 @@ const dependencyVersionMap = {
767
771
  "@orpc/client": "^1.12.2",
768
772
  "@orpc/openapi": "^1.12.2",
769
773
  "@orpc/zod": "^1.12.2",
770
- "@orpc/tanstack-query": "^1.12.2",
774
+ "@orpc/tanstack-query": "^1.13.6",
771
775
  "@trpc/tanstack-react-query": "^11.7.2",
772
776
  "@trpc/server": "^11.7.2",
773
777
  "@trpc/client": "^11.7.2",
@@ -781,8 +785,8 @@ const dependencyVersionMap = {
781
785
  "@convex-dev/better-auth": "^0.10.13",
782
786
  "@tanstack/svelte-query": "^5.85.3",
783
787
  "@tanstack/svelte-query-devtools": "^5.85.3",
784
- "@tanstack/vue-query-devtools": "^5.90.2",
785
- "@tanstack/vue-query": "^5.90.2",
788
+ "@tanstack/vue-query-devtools": "^6.1.5",
789
+ "@tanstack/vue-query": "^5.92.9",
786
790
  "@tanstack/react-query-devtools": "^5.91.1",
787
791
  "@tanstack/react-query": "^5.90.12",
788
792
  "@tanstack/react-form": "^1.28.0",
@@ -4667,6 +4671,11 @@ export default defineNuxtPlugin((nuxt) => {
4667
4671
  const toast = useToast()
4668
4672
 
4669
4673
  const queryClient = new QueryClient({
4674
+ defaultOptions: {
4675
+ queries: {
4676
+ staleTime: 5_000,
4677
+ },
4678
+ },
4670
4679
  queryCache: new QueryCache({
4671
4680
  onError: (error) => {
4672
4681
  console.log(error)
@@ -18192,22 +18201,48 @@ import { Chat } from '@ai-sdk/vue'
18192
18201
  import type { UIMessage } from 'ai'
18193
18202
  import { getTextFromMessage } from '@nuxt/ui/utils/ai'
18194
18203
  import { DefaultChatTransport } from 'ai'
18195
- import { ref } from 'vue'
18204
+ import { computed, ref } from 'vue'
18205
+
18206
+ const SUGGESTIONS = [
18207
+ {
18208
+ title: 'Plan a feature',
18209
+ prompt: 'Help me break down a small product feature into implementation steps.'
18210
+ },
18211
+ {
18212
+ title: 'Design the schema',
18213
+ prompt: 'Suggest a database schema for a collaborative notes app.'
18214
+ },
18215
+ {
18216
+ title: 'Add auth flow',
18217
+ prompt: 'What is the cleanest way to add login, signup, and protected routes here?'
18218
+ },
18219
+ {
18220
+ title: 'Deploy checklist',
18221
+ prompt: 'Give me a production deployment checklist for this stack.'
18222
+ }
18223
+ ] as const
18196
18224
 
18197
- const config = useRuntimeConfig()
18198
18225
  const messages: UIMessage[] = []
18199
18226
  const input = ref('')
18227
+ const aiApiUrl = {{#if (eq backend "self")}}'/api/ai'{{else}}\`\${useRuntimeConfig().public.serverUrl}/ai\`{{/if}}
18200
18228
 
18201
18229
  const chat = new Chat({
18202
18230
  messages,
18203
18231
  transport: new DefaultChatTransport({
18204
- api: \`\${config.public.serverUrl}/ai\`,
18232
+ api: aiApiUrl,
18205
18233
  }),
18206
18234
  onError(error) {
18207
18235
  console.error('Chat error:', error)
18208
18236
  }
18209
18237
  })
18210
18238
 
18239
+ const hasMessages = computed(() => chat.messages.length > 0)
18240
+ const isLoading = computed(() => chat.status === 'submitted' || chat.status === 'streaming')
18241
+
18242
+ function applySuggestion(prompt: string) {
18243
+ input.value = prompt
18244
+ }
18245
+
18211
18246
  async function handleSubmit(e: Event) {
18212
18247
  e.preventDefault()
18213
18248
  const userInput = input.value
@@ -18220,27 +18255,95 @@ async function handleSubmit(e: Event) {
18220
18255
  <\/script>
18221
18256
 
18222
18257
  <template>
18223
- <UContainer class="h-full flex flex-col overflow-hidden py-4">
18224
- <div class="flex-1 min-h-0 overflow-y-auto">
18225
- <UChatMessages :messages="chat.messages" :status="chat.status">
18226
- <template #content="{ message }">
18227
- <div class="whitespace-pre-wrap">\\{{ getTextFromMessage(message) }}</div>
18228
- </template>
18229
- </UChatMessages>
18258
+ <UContainer class="flex min-h-[calc(100vh-var(--ui-header-height)-2rem)] max-w-5xl flex-col py-4 sm:py-6">
18259
+ <div class="min-h-0 flex-1">
18260
+ <div v-if="!hasMessages" class="flex h-full items-center">
18261
+ <div class="mx-auto flex w-full max-w-3xl flex-col gap-8">
18262
+ <div class="space-y-3 text-center">
18263
+ <UBadge label="AI Chat" color="primary" variant="subtle" class="rounded-full" />
18264
+ <div class="space-y-2">
18265
+ <h1 class="text-3xl font-semibold tracking-tight text-highlighted sm:text-4xl">
18266
+ Ask the starter for your next move.
18267
+ </h1>
18268
+ <p class="mx-auto max-w-2xl text-sm leading-6 text-muted sm:text-base">
18269
+ Use the built-in chat to plan features, sketch schemas, or unblock implementation work without leaving the app.
18270
+ </p>
18271
+ </div>
18272
+ </div>
18273
+
18274
+ <div class="grid gap-3 sm:grid-cols-2">
18275
+ <UButton
18276
+ v-for="suggestion in SUGGESTIONS"
18277
+ :key="suggestion.title"
18278
+ color="neutral"
18279
+ variant="soft"
18280
+ class="h-auto justify-start rounded-2xl px-4 py-4 text-left"
18281
+ @click="applySuggestion(suggestion.prompt)"
18282
+ >
18283
+ <div class="space-y-1">
18284
+ <div class="text-sm font-medium text-highlighted">\\{{ suggestion.title }}</div>
18285
+ <div class="text-sm leading-6 text-muted">\\{{ suggestion.prompt }}</div>
18286
+ </div>
18287
+ </UButton>
18288
+ </div>
18289
+ </div>
18290
+ </div>
18291
+
18292
+ <div v-else class="mx-auto flex h-full w-full max-w-3xl min-h-0 flex-col">
18293
+ <UChatMessages
18294
+ :messages="chat.messages"
18295
+ :status="chat.status"
18296
+ :assistant="{
18297
+ variant: 'outline',
18298
+ avatar: {
18299
+ icon: 'i-lucide-bot'
18300
+ }
18301
+ }"
18302
+ :user="{
18303
+ variant: 'soft',
18304
+ avatar: {
18305
+ icon: 'i-lucide-user'
18306
+ }
18307
+ }"
18308
+ class="min-h-0 flex-1 px-1"
18309
+ >
18310
+ <template #content="{ message }">
18311
+ <div class="whitespace-pre-wrap text-sm leading-6">\\{{ getTextFromMessage(message) }}</div>
18312
+ </template>
18313
+ </UChatMessages>
18314
+ </div>
18230
18315
  </div>
18231
18316
 
18232
- <div class="shrink-0 pt-4 border-t border-gray-200 dark:border-gray-800">
18233
- <UChatPrompt
18234
- v-model="input"
18235
- :error="chat.error"
18236
- @submit="handleSubmit"
18237
- placeholder="Type your message..."
18238
- >
18239
- <UChatPromptSubmit :status="chat.status" @stop="() => chat.stop()" @reload="() => chat.regenerate()" />
18240
- </UChatPrompt>
18317
+ <div class="sticky bottom-0 mt-4 border-t border-default bg-default pt-4">
18318
+ <div class="mx-auto w-full max-w-3xl">
18319
+ <UChatPrompt
18320
+ v-model="input"
18321
+ icon="i-lucide-sparkles"
18322
+ variant="soft"
18323
+ :rows="1"
18324
+ :maxrows="8"
18325
+ :loading="isLoading"
18326
+ :error="chat.error"
18327
+ :placeholder="hasMessages ? 'Keep the conversation going...' : 'Ask about your app, schema, auth, or deployment...'"
18328
+ @submit="handleSubmit"
18329
+ >
18330
+ <UChatPromptSubmit
18331
+ class="ms-auto"
18332
+ :status="chat.status"
18333
+ @stop="() => chat.stop()"
18334
+ @reload="() => chat.regenerate()"
18335
+ />
18336
+ </UChatPrompt>
18337
+
18338
+ <div class="mt-2 flex items-center justify-between gap-3 px-1 text-xs text-muted">
18339
+ <span>Press Enter to send and Shift+Enter for a new line.</span>
18340
+ <span>\\{{ hasMessages ? \`\${chat.messages.length} messages\` : 'Ready when you are.' }}</span>
18341
+ </div>
18342
+ </div>
18241
18343
  </div>
18242
18344
  </UContainer>
18243
- </template>`],
18345
+ </template>
18346
+ `],
18244
18347
  ["examples/ai/web/react/next/src/app/ai/page.tsx.hbs", `{{#if (eq backend "convex")}}
18245
18348
  "use client";
18246
18349
 
@@ -21073,6 +21176,12 @@ const queryClient = useQueryClient()
21073
21176
 
21074
21177
  const todos = useQuery($orpc.todo.getAll.queryOptions())
21075
21178
 
21179
+ onServerPrefetch(async () => {
21180
+ try {
21181
+ await todos.suspense()
21182
+ } catch {}
21183
+ })
21184
+
21076
21185
  const createMutation = useMutation($orpc.todo.create.mutationOptions({
21077
21186
  onSuccess: () => {
21078
21187
  queryClient.invalidateQueries()
@@ -26062,18 +26171,11 @@ logs
26062
26171
 
26063
26172
  `],
26064
26173
  ["frontend/nuxt/app/app.config.ts.hbs", `export default defineAppConfig({
26065
- // https://ui.nuxt.com/getting-started/theme#design-system
26066
26174
  ui: {
26067
26175
  colors: {
26068
26176
  primary: 'emerald',
26069
26177
  neutral: 'neutral',
26070
26178
  },
26071
- button: {
26072
- defaultVariants: {
26073
- // Set default button color to neutral
26074
- // color: 'neutral'
26075
- }
26076
- }
26077
26179
  }
26078
26180
  })
26079
26181
  `],
@@ -26084,6 +26186,8 @@ import { VueQueryDevtools } from '@tanstack/vue-query-devtools'
26084
26186
  <\/script>
26085
26187
 
26086
26188
  <template>
26189
+ <NuxtAnnouncer />
26190
+ <NuxtRouteAnnouncer />
26087
26191
  <NuxtLoadingIndicator />
26088
26192
  <UApp>
26089
26193
  <NuxtLayout>
@@ -26142,7 +26246,7 @@ const items = computed<NavigationMenuItem[]>(() => [
26142
26246
  ["frontend/nuxt/app/layouts/default.vue.hbs", `<script setup><\/script>
26143
26247
 
26144
26248
  <template>
26145
- <div class="grid grid-rows-[auto_1fr] h-svh">
26249
+ <div>
26146
26250
  <Header />
26147
26251
  <UMain>
26148
26252
  <slot />
@@ -26182,6 +26286,12 @@ const healthCheck = useConvexQuery(api.healthCheck.get, {});
26182
26286
  {{else}}
26183
26287
  {{#unless (eq api "none")}}
26184
26288
  const healthCheck = useQuery($orpc.healthCheck.queryOptions())
26289
+
26290
+ onServerPrefetch(async () => {
26291
+ try {
26292
+ await healthCheck.suspense()
26293
+ } catch {}
26294
+ })
26185
26295
  {{/unless}}
26186
26296
  {{/if}}
26187
26297
  <\/script>
@@ -26254,6 +26364,9 @@ const healthCheck = useQuery($orpc.healthCheck.queryOptions())
26254
26364
  export default defineNuxtConfig({
26255
26365
  compatibilityDate: 'latest',
26256
26366
  devtools: { enabled: true },
26367
+ experimental: {
26368
+ payloadExtraction: 'client',
26369
+ },
26257
26370
  modules: [
26258
26371
  '@nuxt/ui'
26259
26372
  {{#if (eq backend "convex")}},
@@ -26268,7 +26381,7 @@ export default defineNuxtConfig({
26268
26381
  convex: {
26269
26382
  url: process.env.NUXT_PUBLIC_CONVEX_URL,
26270
26383
  },
26271
- {{else if (ne backend "self")}}
26384
+ {{else if (and (ne backend "self") (ne backend "none"))}}
26272
26385
  runtimeConfig: {
26273
26386
  public: {
26274
26387
  serverUrl: process.env.NUXT_PUBLIC_SERVER_URL,
@@ -26289,17 +26402,12 @@ export default defineNuxtConfig({
26289
26402
  "postinstall": "nuxt prepare"
26290
26403
  },
26291
26404
  "dependencies": {
26292
- "@nuxt/ui": "4.2.1",
26293
- "@nuxt/content": "^3.7.1",
26294
- "@nuxtjs/mdc": "^0.17.4",
26295
- "nuxt": "^4.1.2",
26296
- "vue": "^3.5.21",
26297
- "vue-router": "^4.5.1",
26298
- "@vue/devtools-api": "^8.0.5"
26405
+ "@nuxt/ui": "^4.5.1",
26406
+ "nuxt": "^4.4.2"
26299
26407
  },
26300
26408
  "devDependencies": {
26301
- "tailwindcss": "^4.1.13",
26302
- "@iconify-json/lucide": "^1.2.57"
26409
+ "tailwindcss": "^4.2.1",
26410
+ "@iconify-json/lucide": "^1.2.96"
26303
26411
  }
26304
26412
  }
26305
26413
  `],