create-better-fullstack 1.7.1 → 1.8.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/dist/index.d.mts CHANGED
@@ -22,10 +22,10 @@ declare const router: {
22
22
  create: _orpc_server0.Procedure<_orpc_server0.MergedInitialContext<Record<never, never>, Record<never, never>, Record<never, never>>, Record<never, never>, z.ZodTuple<[z.ZodOptional<z.ZodString>, z.ZodObject<{
23
23
  template: z.ZodOptional<z.ZodEnum<{
24
24
  none: "none";
25
+ uniwind: "uniwind";
25
26
  mern: "mern";
26
27
  pern: "pern";
27
28
  t3: "t3";
28
- uniwind: "uniwind";
29
29
  }>>;
30
30
  yes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
31
31
  yolo: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -33,10 +33,12 @@ declare const router: {
33
33
  dryRun: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
34
34
  ecosystem: z.ZodOptional<z.ZodEnum<{
35
35
  typescript: "typescript";
36
+ "react-native": "react-native";
36
37
  rust: "rust";
37
38
  python: "python";
38
39
  go: "go";
39
40
  java: "java";
41
+ elixir: "elixir";
40
42
  }>>;
41
43
  database: z.ZodOptional<z.ZodEnum<{
42
44
  none: "none";
@@ -178,6 +180,7 @@ declare const router: {
178
180
  none: "none";
179
181
  pino: "pino";
180
182
  winston: "winston";
183
+ evlog: "evlog";
181
184
  }>>;
182
185
  observability: z.ZodOptional<z.ZodEnum<{
183
186
  none: "none";
@@ -204,6 +207,7 @@ declare const router: {
204
207
  sanity: "sanity";
205
208
  strapi: "strapi";
206
209
  tinacms: "tinacms";
210
+ directus: "directus";
207
211
  }>>;
208
212
  caching: z.ZodOptional<z.ZodEnum<{
209
213
  none: "none";
@@ -225,6 +229,41 @@ declare const router: {
225
229
  none: "none";
226
230
  s3: "s3";
227
231
  r2: "r2";
232
+ cloudinary: "cloudinary";
233
+ }>>;
234
+ mobileNavigation: z.ZodOptional<z.ZodEnum<{
235
+ none: "none";
236
+ "expo-router": "expo-router";
237
+ "react-navigation": "react-navigation";
238
+ }>>;
239
+ mobileUI: z.ZodOptional<z.ZodEnum<{
240
+ none: "none";
241
+ tamagui: "tamagui";
242
+ "gluestack-ui": "gluestack-ui";
243
+ uniwind: "uniwind";
244
+ unistyles: "unistyles";
245
+ }>>;
246
+ mobileStorage: z.ZodOptional<z.ZodEnum<{
247
+ none: "none";
248
+ mmkv: "mmkv";
249
+ }>>;
250
+ mobileTesting: z.ZodOptional<z.ZodEnum<{
251
+ none: "none";
252
+ maestro: "maestro";
253
+ "react-native-testing-library": "react-native-testing-library";
254
+ "maestro-react-native-testing-library": "maestro-react-native-testing-library";
255
+ }>>;
256
+ mobilePush: z.ZodOptional<z.ZodEnum<{
257
+ none: "none";
258
+ "expo-notifications": "expo-notifications";
259
+ }>>;
260
+ mobileOTA: z.ZodOptional<z.ZodEnum<{
261
+ none: "none";
262
+ "expo-updates": "expo-updates";
263
+ }>>;
264
+ mobileDeepLinking: z.ZodOptional<z.ZodEnum<{
265
+ none: "none";
266
+ "expo-linking": "expo-linking";
228
267
  }>>;
229
268
  frontend: z.ZodOptional<z.ZodArray<z.ZodEnum<{
230
269
  none: "none";
@@ -233,6 +272,7 @@ declare const router: {
233
272
  "react-vite": "react-vite";
234
273
  "tanstack-start": "tanstack-start";
235
274
  next: "next";
275
+ vinext: "vinext";
236
276
  nuxt: "nuxt";
237
277
  "native-bare": "native-bare";
238
278
  "native-uniwind": "native-uniwind";
@@ -272,6 +312,7 @@ declare const router: {
272
312
  wxt: "wxt";
273
313
  msw: "msw";
274
314
  storybook: "storybook";
315
+ swr: "swr";
275
316
  "tanstack-query": "tanstack-query";
276
317
  "tanstack-table": "tanstack-table";
277
318
  "tanstack-virtual": "tanstack-virtual";
@@ -348,6 +389,7 @@ declare const router: {
348
389
  uiLibrary: z.ZodOptional<z.ZodEnum<{
349
390
  none: "none";
350
391
  "shadcn-ui": "shadcn-ui";
392
+ "shadcn-svelte": "shadcn-svelte";
351
393
  daisyui: "daisyui";
352
394
  "radix-ui": "radix-ui";
353
395
  "headless-ui": "headless-ui";
@@ -665,6 +707,88 @@ declare const router: {
665
707
  archunit: "archunit";
666
708
  jqwik: "jqwik";
667
709
  }>>>;
710
+ elixirWebFramework: z.ZodOptional<z.ZodEnum<{
711
+ none: "none";
712
+ phoenix: "phoenix";
713
+ "phoenix-live-view": "phoenix-live-view";
714
+ }>>;
715
+ elixirOrm: z.ZodOptional<z.ZodEnum<{
716
+ none: "none";
717
+ ecto: "ecto";
718
+ "ecto-sql": "ecto-sql";
719
+ }>>;
720
+ elixirAuth: z.ZodOptional<z.ZodEnum<{
721
+ none: "none";
722
+ "phx-gen-auth": "phx-gen-auth";
723
+ ueberauth: "ueberauth";
724
+ guardian: "guardian";
725
+ }>>;
726
+ elixirApi: z.ZodOptional<z.ZodEnum<{
727
+ none: "none";
728
+ rest: "rest";
729
+ absinthe: "absinthe";
730
+ }>>;
731
+ elixirRealtime: z.ZodOptional<z.ZodEnum<{
732
+ none: "none";
733
+ channels: "channels";
734
+ presence: "presence";
735
+ pubsub: "pubsub";
736
+ "live-view-streams": "live-view-streams";
737
+ }>>;
738
+ elixirJobs: z.ZodOptional<z.ZodEnum<{
739
+ none: "none";
740
+ oban: "oban";
741
+ quantum: "quantum";
742
+ }>>;
743
+ elixirValidation: z.ZodOptional<z.ZodEnum<{
744
+ none: "none";
745
+ "ecto-changesets": "ecto-changesets";
746
+ "nimble-options": "nimble-options";
747
+ }>>;
748
+ elixirHttp: z.ZodOptional<z.ZodEnum<{
749
+ none: "none";
750
+ req: "req";
751
+ finch: "finch";
752
+ }>>;
753
+ elixirJson: z.ZodOptional<z.ZodEnum<{
754
+ none: "none";
755
+ jason: "jason";
756
+ }>>;
757
+ elixirEmail: z.ZodOptional<z.ZodEnum<{
758
+ none: "none";
759
+ swoosh: "swoosh";
760
+ }>>;
761
+ elixirCaching: z.ZodOptional<z.ZodEnum<{
762
+ none: "none";
763
+ cachex: "cachex";
764
+ nebulex: "nebulex";
765
+ }>>;
766
+ elixirObservability: z.ZodOptional<z.ZodEnum<{
767
+ none: "none";
768
+ opentelemetry: "opentelemetry";
769
+ telemetry: "telemetry";
770
+ prom_ex: "prom_ex";
771
+ }>>;
772
+ elixirTesting: z.ZodOptional<z.ZodEnum<{
773
+ none: "none";
774
+ ex_unit: "ex_unit";
775
+ mox: "mox";
776
+ bypass: "bypass";
777
+ wallaby: "wallaby";
778
+ }>>;
779
+ elixirQuality: z.ZodOptional<z.ZodEnum<{
780
+ none: "none";
781
+ credo: "credo";
782
+ dialyxir: "dialyxir";
783
+ sobelow: "sobelow";
784
+ }>>;
785
+ elixirDeploy: z.ZodOptional<z.ZodEnum<{
786
+ none: "none";
787
+ docker: "docker";
788
+ fly: "fly";
789
+ gigalixir: "gigalixir";
790
+ "mix-release": "mix-release";
791
+ }>>;
668
792
  aiDocs: z.ZodOptional<z.ZodArray<z.ZodEnum<{
669
793
  none: "none";
670
794
  "claude-md": "claude-md";
@@ -677,13 +801,13 @@ declare const router: {
677
801
  projectName: string;
678
802
  projectDir: string;
679
803
  relativePath: string;
680
- ecosystem: "typescript" | "rust" | "python" | "go" | "java";
804
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
681
805
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
682
806
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
683
807
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
684
808
  runtime: "none" | "bun" | "node" | "workers";
685
- frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
686
- addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
809
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
810
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
687
811
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
688
812
  auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
689
813
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
@@ -702,21 +826,28 @@ declare const router: {
702
826
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
703
827
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
704
828
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
705
- uiLibrary: "none" | "shadcn-ui" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
829
+ uiLibrary: "none" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
706
830
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
707
831
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
708
832
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
709
833
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
710
834
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
711
- logging: "none" | "pino" | "winston";
835
+ logging: "none" | "pino" | "winston" | "evlog";
712
836
  observability: "none" | "opentelemetry" | "sentry" | "grafana";
713
837
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
714
838
  analytics: "none" | "plausible" | "umami";
715
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms";
839
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
716
840
  caching: "none" | "upstash-redis";
717
841
  i18n: "none" | "i18next" | "next-intl";
718
842
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
719
- fileStorage: "none" | "s3" | "r2";
843
+ fileStorage: "none" | "s3" | "r2" | "cloudinary";
844
+ mobileNavigation: "none" | "expo-router" | "react-navigation";
845
+ mobileUI: "none" | "uniwind" | "tamagui" | "gluestack-ui" | "unistyles";
846
+ mobileStorage: "none" | "mmkv";
847
+ mobileTesting: "none" | "maestro" | "react-native-testing-library" | "maestro-react-native-testing-library";
848
+ mobilePush: "none" | "expo-notifications";
849
+ mobileOTA: "none" | "expo-updates";
850
+ mobileDeepLinking: "none" | "expo-linking";
720
851
  rustWebFramework: "none" | "axum" | "actix-web" | "rocket";
721
852
  rustFrontend: "none" | "leptos" | "dioxus";
722
853
  rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
@@ -748,6 +879,21 @@ declare const router: {
748
879
  javaAuth: "none" | "spring-security";
749
880
  javaLibraries: ("none" | "spring-actuator" | "spring-validation" | "flyway" | "liquibase" | "springdoc-openapi" | "lombok" | "mapstruct" | "caffeine" | "resilience4j" | "spring-webflux" | "spring-batch" | "spring-kafka" | "spring-mail" | "spring-devtools" | "micrometer-prometheus" | "thymeleaf")[];
750
881
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
882
+ elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
883
+ elixirOrm: "none" | "ecto" | "ecto-sql";
884
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
885
+ elixirApi: "none" | "rest" | "absinthe";
886
+ elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
887
+ elixirJobs: "none" | "oban" | "quantum";
888
+ elixirValidation: "none" | "ecto-changesets" | "nimble-options";
889
+ elixirHttp: "none" | "req" | "finch";
890
+ elixirJson: "none" | "jason";
891
+ elixirEmail: "none" | "swoosh";
892
+ elixirCaching: "none" | "cachex" | "nebulex";
893
+ elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
894
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
895
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
896
+ elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
751
897
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
752
898
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
753
899
  shadcnBase?: "radix" | "base" | undefined;
@@ -774,13 +920,13 @@ declare const router: {
774
920
  projectName: string;
775
921
  projectDir: string;
776
922
  relativePath: string;
777
- ecosystem: "typescript" | "rust" | "python" | "go" | "java";
923
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
778
924
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
779
925
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
780
926
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
781
927
  runtime: "none" | "bun" | "node" | "workers";
782
- frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
783
- addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
928
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
929
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
784
930
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
785
931
  auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
786
932
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
@@ -799,21 +945,28 @@ declare const router: {
799
945
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
800
946
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
801
947
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
802
- uiLibrary: "none" | "shadcn-ui" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
948
+ uiLibrary: "none" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
803
949
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
804
950
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
805
951
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
806
952
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
807
953
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
808
- logging: "none" | "pino" | "winston";
954
+ logging: "none" | "pino" | "winston" | "evlog";
809
955
  observability: "none" | "opentelemetry" | "sentry" | "grafana";
810
956
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
811
957
  analytics: "none" | "plausible" | "umami";
812
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms";
958
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
813
959
  caching: "none" | "upstash-redis";
814
960
  i18n: "none" | "i18next" | "next-intl";
815
961
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
816
- fileStorage: "none" | "s3" | "r2";
962
+ fileStorage: "none" | "s3" | "r2" | "cloudinary";
963
+ mobileNavigation: "none" | "expo-router" | "react-navigation";
964
+ mobileUI: "none" | "uniwind" | "tamagui" | "gluestack-ui" | "unistyles";
965
+ mobileStorage: "none" | "mmkv";
966
+ mobileTesting: "none" | "maestro" | "react-native-testing-library" | "maestro-react-native-testing-library";
967
+ mobilePush: "none" | "expo-notifications";
968
+ mobileOTA: "none" | "expo-updates";
969
+ mobileDeepLinking: "none" | "expo-linking";
817
970
  rustWebFramework: "none" | "axum" | "actix-web" | "rocket";
818
971
  rustFrontend: "none" | "leptos" | "dioxus";
819
972
  rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
@@ -845,6 +998,21 @@ declare const router: {
845
998
  javaAuth: "none" | "spring-security";
846
999
  javaLibraries: ("none" | "spring-actuator" | "spring-validation" | "flyway" | "liquibase" | "springdoc-openapi" | "lombok" | "mapstruct" | "caffeine" | "resilience4j" | "spring-webflux" | "spring-batch" | "spring-kafka" | "spring-mail" | "spring-devtools" | "micrometer-prometheus" | "thymeleaf")[];
847
1000
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1001
+ elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1002
+ elixirOrm: "none" | "ecto" | "ecto-sql";
1003
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1004
+ elixirApi: "none" | "rest" | "absinthe";
1005
+ elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1006
+ elixirJobs: "none" | "oban" | "quantum";
1007
+ elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1008
+ elixirHttp: "none" | "req" | "finch";
1009
+ elixirJson: "none" | "jason";
1010
+ elixirEmail: "none" | "swoosh";
1011
+ elixirCaching: "none" | "cachex" | "nebulex";
1012
+ elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1013
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1014
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1015
+ elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
848
1016
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
849
1017
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
850
1018
  shadcnBase?: "radix" | "base" | undefined;
@@ -884,13 +1052,13 @@ declare const router: {
884
1052
  projectName: string;
885
1053
  projectDir: string;
886
1054
  relativePath: string;
887
- ecosystem: "typescript" | "rust" | "python" | "go" | "java";
1055
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
888
1056
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
889
1057
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
890
1058
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
891
1059
  runtime: "none" | "bun" | "node" | "workers";
892
- frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
893
- addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
1060
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
1061
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
894
1062
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
895
1063
  auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
896
1064
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
@@ -909,21 +1077,28 @@ declare const router: {
909
1077
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
910
1078
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
911
1079
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
912
- uiLibrary: "none" | "shadcn-ui" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1080
+ uiLibrary: "none" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
913
1081
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
914
1082
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
915
1083
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
916
1084
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
917
1085
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
918
- logging: "none" | "pino" | "winston";
1086
+ logging: "none" | "pino" | "winston" | "evlog";
919
1087
  observability: "none" | "opentelemetry" | "sentry" | "grafana";
920
1088
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
921
1089
  analytics: "none" | "plausible" | "umami";
922
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms";
1090
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
923
1091
  caching: "none" | "upstash-redis";
924
1092
  i18n: "none" | "i18next" | "next-intl";
925
1093
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
926
- fileStorage: "none" | "s3" | "r2";
1094
+ fileStorage: "none" | "s3" | "r2" | "cloudinary";
1095
+ mobileNavigation: "none" | "expo-router" | "react-navigation";
1096
+ mobileUI: "none" | "uniwind" | "tamagui" | "gluestack-ui" | "unistyles";
1097
+ mobileStorage: "none" | "mmkv";
1098
+ mobileTesting: "none" | "maestro" | "react-native-testing-library" | "maestro-react-native-testing-library";
1099
+ mobilePush: "none" | "expo-notifications";
1100
+ mobileOTA: "none" | "expo-updates";
1101
+ mobileDeepLinking: "none" | "expo-linking";
927
1102
  rustWebFramework: "none" | "axum" | "actix-web" | "rocket";
928
1103
  rustFrontend: "none" | "leptos" | "dioxus";
929
1104
  rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
@@ -955,6 +1130,21 @@ declare const router: {
955
1130
  javaAuth: "none" | "spring-security";
956
1131
  javaLibraries: ("none" | "spring-actuator" | "spring-validation" | "flyway" | "liquibase" | "springdoc-openapi" | "lombok" | "mapstruct" | "caffeine" | "resilience4j" | "spring-webflux" | "spring-batch" | "spring-kafka" | "spring-mail" | "spring-devtools" | "micrometer-prometheus" | "thymeleaf")[];
957
1132
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1133
+ elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1134
+ elixirOrm: "none" | "ecto" | "ecto-sql";
1135
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1136
+ elixirApi: "none" | "rest" | "absinthe";
1137
+ elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1138
+ elixirJobs: "none" | "oban" | "quantum";
1139
+ elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1140
+ elixirHttp: "none" | "req" | "finch";
1141
+ elixirJson: "none" | "jason";
1142
+ elixirEmail: "none" | "swoosh";
1143
+ elixirCaching: "none" | "cachex" | "nebulex";
1144
+ elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1145
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1146
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1147
+ elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
958
1148
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
959
1149
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
960
1150
  shadcnBase?: "radix" | "base" | undefined;
@@ -981,13 +1171,13 @@ declare const router: {
981
1171
  projectName: string;
982
1172
  projectDir: string;
983
1173
  relativePath: string;
984
- ecosystem: "typescript" | "rust" | "python" | "go" | "java";
1174
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
985
1175
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
986
1176
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
987
1177
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
988
1178
  runtime: "none" | "bun" | "node" | "workers";
989
- frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
990
- addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
1179
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
1180
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "docker-compose")[];
991
1181
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
992
1182
  auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
993
1183
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
@@ -1006,21 +1196,28 @@ declare const router: {
1006
1196
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1007
1197
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1008
1198
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1009
- uiLibrary: "none" | "shadcn-ui" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1199
+ uiLibrary: "none" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "mui" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1010
1200
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1011
1201
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1012
1202
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1013
1203
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1014
1204
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1015
- logging: "none" | "pino" | "winston";
1205
+ logging: "none" | "pino" | "winston" | "evlog";
1016
1206
  observability: "none" | "opentelemetry" | "sentry" | "grafana";
1017
1207
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1018
1208
  analytics: "none" | "plausible" | "umami";
1019
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms";
1209
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
1020
1210
  caching: "none" | "upstash-redis";
1021
1211
  i18n: "none" | "i18next" | "next-intl";
1022
1212
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
1023
- fileStorage: "none" | "s3" | "r2";
1213
+ fileStorage: "none" | "s3" | "r2" | "cloudinary";
1214
+ mobileNavigation: "none" | "expo-router" | "react-navigation";
1215
+ mobileUI: "none" | "uniwind" | "tamagui" | "gluestack-ui" | "unistyles";
1216
+ mobileStorage: "none" | "mmkv";
1217
+ mobileTesting: "none" | "maestro" | "react-native-testing-library" | "maestro-react-native-testing-library";
1218
+ mobilePush: "none" | "expo-notifications";
1219
+ mobileOTA: "none" | "expo-updates";
1220
+ mobileDeepLinking: "none" | "expo-linking";
1024
1221
  rustWebFramework: "none" | "axum" | "actix-web" | "rocket";
1025
1222
  rustFrontend: "none" | "leptos" | "dioxus";
1026
1223
  rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
@@ -1052,6 +1249,21 @@ declare const router: {
1052
1249
  javaAuth: "none" | "spring-security";
1053
1250
  javaLibraries: ("none" | "spring-actuator" | "spring-validation" | "flyway" | "liquibase" | "springdoc-openapi" | "lombok" | "mapstruct" | "caffeine" | "resilience4j" | "spring-webflux" | "spring-batch" | "spring-kafka" | "spring-mail" | "spring-devtools" | "micrometer-prometheus" | "thymeleaf")[];
1054
1251
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1252
+ elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1253
+ elixirOrm: "none" | "ecto" | "ecto-sql";
1254
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1255
+ elixirApi: "none" | "rest" | "absinthe";
1256
+ elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1257
+ elixirJobs: "none" | "oban" | "quantum";
1258
+ elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1259
+ elixirHttp: "none" | "req" | "finch";
1260
+ elixirJson: "none" | "jason";
1261
+ elixirEmail: "none" | "swoosh";
1262
+ elixirCaching: "none" | "cachex" | "nebulex";
1263
+ elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1264
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1265
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1266
+ elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1055
1267
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1056
1268
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1057
1269
  shadcnBase?: "radix" | "base" | undefined;
@@ -1109,6 +1321,7 @@ declare const router: {
1109
1321
  wxt: "wxt";
1110
1322
  msw: "msw";
1111
1323
  storybook: "storybook";
1324
+ swr: "swr";
1112
1325
  "tanstack-query": "tanstack-query";
1113
1326
  "tanstack-table": "tanstack-table";
1114
1327
  "tanstack-virtual": "tanstack-virtual";
@@ -1234,6 +1447,21 @@ type DatabaseSetup = import__better_fullstack_types.DatabaseSetup;
1234
1447
  type DirectoryConflict = import__better_fullstack_types.DirectoryConflict;
1235
1448
  type Ecosystem = import__better_fullstack_types.Ecosystem;
1236
1449
  type Effect = import__better_fullstack_types.Effect;
1450
+ type ElixirApi = import__better_fullstack_types.ElixirApi;
1451
+ type ElixirAuth = import__better_fullstack_types.ElixirAuth;
1452
+ type ElixirCaching = import__better_fullstack_types.ElixirCaching;
1453
+ type ElixirDeploy = import__better_fullstack_types.ElixirDeploy;
1454
+ type ElixirEmail = import__better_fullstack_types.ElixirEmail;
1455
+ type ElixirHttp = import__better_fullstack_types.ElixirHttp;
1456
+ type ElixirJobs = import__better_fullstack_types.ElixirJobs;
1457
+ type ElixirJson = import__better_fullstack_types.ElixirJson;
1458
+ type ElixirObservability = import__better_fullstack_types.ElixirObservability;
1459
+ type ElixirOrm = import__better_fullstack_types.ElixirOrm;
1460
+ type ElixirQuality = import__better_fullstack_types.ElixirQuality;
1461
+ type ElixirRealtime = import__better_fullstack_types.ElixirRealtime;
1462
+ type ElixirTesting = import__better_fullstack_types.ElixirTesting;
1463
+ type ElixirValidation = import__better_fullstack_types.ElixirValidation;
1464
+ type ElixirWebFramework = import__better_fullstack_types.ElixirWebFramework;
1237
1465
  type Examples = import__better_fullstack_types.Examples;
1238
1466
  type Frontend = import__better_fullstack_types.Frontend;
1239
1467
  type GoApi = import__better_fullstack_types.GoApi;
@@ -1272,4 +1500,4 @@ type ServerDeploy = import__better_fullstack_types.ServerDeploy;
1272
1500
  type Template = import__better_fullstack_types.Template;
1273
1501
  type UILibrary = import__better_fullstack_types.UILibrary;
1274
1502
  type WebDeploy = import__better_fullstack_types.WebDeploy;
1275
- export { type API, type AddInput, type AddResult, type Addons, type AiDocs, type Analytics, type Animation, type Auth, type Backend, type BetterTStackConfig, type CMS, type CSSFramework, type Caching, type CreateInput, type Database, type DatabaseSetup, type DirectoryConflict, EMBEDDED_TEMPLATES, type Ecosystem, type Effect, type Examples, type Frontend, type GeneratorOptions, type GeneratorResult, type GoApi, type GoAuth, type GoCli, type GoLogging, type GoOrm, type GoWebFramework, type InitResult, type JavaAuth, type JavaBuildTool, type JavaLibraries, type JavaOrm, type JavaTestingLibraries, type JavaWebFramework, type Logging, type ORM, type PackageManager, type Payments, type PythonAi, type PythonOrm, type PythonQuality, type PythonTaskQueue, type PythonValidation, type PythonWebFramework, type Realtime, type Runtime, type RustApi, type RustCli, type RustFrontend, type RustLibraries, type RustLogging, type RustOrm, type RustWebFramework, type ServerDeploy, TEMPLATE_COUNT, type Template, type UILibrary, type VirtualDirectory, type VirtualFile, VirtualFileSystem, type VirtualFileTree, type VirtualNode, type WebDeploy, add, builder, create, createBtsCli, createVirtual, docs, generateVirtualProject, history, router, sponsors };
1503
+ export { type API, type AddInput, type AddResult, type Addons, type AiDocs, type Analytics, type Animation, type Auth, type Backend, type BetterTStackConfig, type CMS, type CSSFramework, type Caching, type CreateInput, type Database, type DatabaseSetup, type DirectoryConflict, EMBEDDED_TEMPLATES, type Ecosystem, type Effect, type ElixirApi, type ElixirAuth, type ElixirCaching, type ElixirDeploy, type ElixirEmail, type ElixirHttp, type ElixirJobs, type ElixirJson, type ElixirObservability, type ElixirOrm, type ElixirQuality, type ElixirRealtime, type ElixirTesting, type ElixirValidation, type ElixirWebFramework, type Examples, type Frontend, type GeneratorOptions, type GeneratorResult, type GoApi, type GoAuth, type GoCli, type GoLogging, type GoOrm, type GoWebFramework, type InitResult, type JavaAuth, type JavaBuildTool, type JavaLibraries, type JavaOrm, type JavaTestingLibraries, type JavaWebFramework, type Logging, type ORM, type PackageManager, type Payments, type PythonAi, type PythonOrm, type PythonQuality, type PythonTaskQueue, type PythonValidation, type PythonWebFramework, type Realtime, type Runtime, type RustApi, type RustCli, type RustFrontend, type RustLibraries, type RustLogging, type RustOrm, type RustWebFramework, type ServerDeploy, TEMPLATE_COUNT, type Template, type UILibrary, type VirtualDirectory, type VirtualFile, VirtualFileSystem, type VirtualFileTree, type VirtualNode, type WebDeploy, add, builder, create, createBtsCli, createVirtual, docs, generateVirtualProject, history, router, sponsors };