create-better-fullstack 2.0.1 → 2.0.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.
package/dist/index.d.mts CHANGED
@@ -17,15 +17,15 @@ interface AddResult {
17
17
  setupWarnings?: string[];
18
18
  }
19
19
  //#endregion
20
- //#region src/index.d.ts
20
+ //#region src/run.d.ts
21
21
  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";
26
25
  mern: "mern";
27
26
  pern: "pern";
28
27
  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>>;
@@ -41,6 +41,7 @@ declare const router: {
41
41
  go: "go";
42
42
  java: "java";
43
43
  elixir: "elixir";
44
+ dotnet: "dotnet";
44
45
  }>>;
45
46
  database: z.ZodOptional<z.ZodEnum<{
46
47
  none: "none";
@@ -64,12 +65,15 @@ declare const router: {
64
65
  auth: z.ZodOptional<z.ZodEnum<{
65
66
  none: "none";
66
67
  "better-auth": "better-auth";
68
+ "better-auth-organizations": "better-auth-organizations";
67
69
  "go-better-auth": "go-better-auth";
68
70
  clerk: "clerk";
69
71
  nextauth: "nextauth";
70
72
  "stack-auth": "stack-auth";
71
73
  "supabase-auth": "supabase-auth";
72
74
  auth0: "auth0";
75
+ workos: "workos";
76
+ kinde: "kinde";
73
77
  }>>;
74
78
  payments: z.ZodOptional<z.ZodEnum<{
75
79
  none: "none";
@@ -97,8 +101,8 @@ declare const router: {
97
101
  uppy: "uppy";
98
102
  }>>;
99
103
  effect: z.ZodOptional<z.ZodEnum<{
100
- effect: "effect";
101
104
  none: "none";
105
+ effect: "effect";
102
106
  "effect-full": "effect-full";
103
107
  }>>;
104
108
  stateManagement: z.ZodOptional<z.ZodEnum<{
@@ -189,6 +193,9 @@ declare const router: {
189
193
  opentelemetry: "opentelemetry";
190
194
  sentry: "sentry";
191
195
  grafana: "grafana";
196
+ datadog: "datadog";
197
+ axiom: "axiom";
198
+ betterstack: "betterstack";
192
199
  }>>;
193
200
  featureFlags: z.ZodOptional<z.ZodEnum<{
194
201
  none: "none";
@@ -215,6 +222,11 @@ declare const router: {
215
222
  none: "none";
216
223
  "upstash-redis": "upstash-redis";
217
224
  }>>;
225
+ rateLimit: z.ZodOptional<z.ZodEnum<{
226
+ none: "none";
227
+ arcjet: "arcjet";
228
+ "upstash-ratelimit": "upstash-ratelimit";
229
+ }>>;
218
230
  i18n: z.ZodOptional<z.ZodEnum<{
219
231
  none: "none";
220
232
  i18next: "i18next";
@@ -240,9 +252,9 @@ declare const router: {
240
252
  }>>;
241
253
  mobileUI: z.ZodOptional<z.ZodEnum<{
242
254
  none: "none";
255
+ uniwind: "uniwind";
243
256
  tamagui: "tamagui";
244
257
  "gluestack-ui": "gluestack-ui";
245
- uniwind: "uniwind";
246
258
  unistyles: "unistyles";
247
259
  }>>;
248
260
  mobileStorage: z.ZodOptional<z.ZodEnum<{
@@ -307,6 +319,7 @@ declare const router: {
307
319
  mcp: "mcp";
308
320
  skills: "skills";
309
321
  turborepo: "turborepo";
322
+ nx: "nx";
310
323
  fumadocs: "fumadocs";
311
324
  ultracite: "ultracite";
312
325
  oxlint: "oxlint";
@@ -320,11 +333,12 @@ declare const router: {
320
333
  "tanstack-virtual": "tanstack-virtual";
321
334
  "tanstack-db": "tanstack-db";
322
335
  "tanstack-pacer": "tanstack-pacer";
336
+ "backend-utils": "backend-utils";
323
337
  "docker-compose": "docker-compose";
324
338
  }>>>;
325
339
  examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
326
- ai: "ai";
327
340
  none: "none";
341
+ ai: "ai";
328
342
  "chat-sdk": "chat-sdk";
329
343
  "tanstack-showcase": "tanstack-showcase";
330
344
  }>>>;
@@ -380,6 +394,7 @@ declare const router: {
380
394
  "ts-rest": "ts-rest";
381
395
  garph: "garph";
382
396
  "graphql-yoga": "graphql-yoga";
397
+ openapi: "openapi";
383
398
  }>>;
384
399
  cssFramework: z.ZodOptional<z.ZodEnum<{
385
400
  none: "none";
@@ -389,7 +404,6 @@ declare const router: {
389
404
  "postcss-only": "postcss-only";
390
405
  }>>;
391
406
  uiLibrary: z.ZodOptional<z.ZodEnum<{
392
- mui: "mui";
393
407
  none: "none";
394
408
  "shadcn-ui": "shadcn-ui";
395
409
  "shadcn-svelte": "shadcn-svelte";
@@ -400,6 +414,7 @@ declare const router: {
400
414
  "chakra-ui": "chakra-ui";
401
415
  nextui: "nextui";
402
416
  mantine: "mantine";
417
+ mui: "mui";
403
418
  antd: "antd";
404
419
  "base-ui": "base-ui";
405
420
  "ark-ui": "ark-ui";
@@ -483,6 +498,8 @@ declare const router: {
483
498
  cloudflare: "cloudflare";
484
499
  fly: "fly";
485
500
  railway: "railway";
501
+ render: "render";
502
+ netlify: "netlify";
486
503
  sst: "sst";
487
504
  vercel: "vercel";
488
505
  }>>;
@@ -492,14 +509,16 @@ declare const router: {
492
509
  cloudflare: "cloudflare";
493
510
  fly: "fly";
494
511
  railway: "railway";
512
+ render: "render";
513
+ netlify: "netlify";
495
514
  sst: "sst";
496
515
  vercel: "vercel";
497
516
  }>>;
498
517
  directoryConflict: z.ZodOptional<z.ZodEnum<{
499
- error: "error";
500
518
  merge: "merge";
501
519
  overwrite: "overwrite";
502
520
  increment: "increment";
521
+ error: "error";
503
522
  }>>;
504
523
  renderTitle: z.ZodOptional<z.ZodBoolean>;
505
524
  disableAnalytics: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -569,6 +588,24 @@ declare const router: {
569
588
  rustAuth: z.ZodOptional<z.ZodEnum<{
570
589
  none: "none";
571
590
  oauth2: "oauth2";
591
+ torii: "torii";
592
+ }>>;
593
+ rustRealtime: z.ZodOptional<z.ZodEnum<{
594
+ none: "none";
595
+ "tokio-tungstenite": "tokio-tungstenite";
596
+ }>>;
597
+ rustMessageQueue: z.ZodOptional<z.ZodEnum<{
598
+ none: "none";
599
+ lapin: "lapin";
600
+ }>>;
601
+ rustObservability: z.ZodOptional<z.ZodEnum<{
602
+ none: "none";
603
+ opentelemetry: "opentelemetry";
604
+ }>>;
605
+ rustTemplating: z.ZodOptional<z.ZodEnum<{
606
+ none: "none";
607
+ askama: "askama";
608
+ tera: "tera";
572
609
  }>>;
573
610
  pythonWebFramework: z.ZodOptional<z.ZodEnum<{
574
611
  none: "none";
@@ -576,12 +613,14 @@ declare const router: {
576
613
  django: "django";
577
614
  flask: "flask";
578
615
  litestar: "litestar";
616
+ starlette: "starlette";
579
617
  }>>;
580
618
  pythonOrm: z.ZodOptional<z.ZodEnum<{
581
619
  none: "none";
582
620
  sqlalchemy: "sqlalchemy";
583
621
  sqlmodel: "sqlmodel";
584
622
  "tortoise-orm": "tortoise-orm";
623
+ peewee: "peewee";
585
624
  }>>;
586
625
  pythonValidation: z.ZodOptional<z.ZodEnum<{
587
626
  none: "none";
@@ -590,17 +629,21 @@ declare const router: {
590
629
  pythonAi: z.ZodOptional<z.ZodArray<z.ZodEnum<{
591
630
  none: "none";
592
631
  langgraph: "langgraph";
632
+ "google-adk": "google-adk";
593
633
  langchain: "langchain";
594
634
  llamaindex: "llamaindex";
595
635
  "openai-sdk": "openai-sdk";
596
636
  "anthropic-sdk": "anthropic-sdk";
597
637
  crewai: "crewai";
598
638
  haystack: "haystack";
639
+ "pydantic-ai": "pydantic-ai";
640
+ smolagents: "smolagents";
599
641
  }>>>;
600
642
  pythonAuth: z.ZodOptional<z.ZodEnum<{
601
643
  none: "none";
602
644
  authlib: "authlib";
603
645
  jwt: "jwt";
646
+ "fastapi-users": "fastapi-users";
604
647
  }>>;
605
648
  pythonApi: z.ZodOptional<z.ZodEnum<{
606
649
  none: "none";
@@ -613,6 +656,7 @@ declare const router: {
613
656
  rq: "rq";
614
657
  dramatiq: "dramatiq";
615
658
  huey: "huey";
659
+ taskiq: "taskiq";
616
660
  }>>;
617
661
  pythonGraphql: z.ZodOptional<z.ZodEnum<{
618
662
  none: "none";
@@ -625,6 +669,31 @@ declare const router: {
625
669
  mypy: "mypy";
626
670
  pyright: "pyright";
627
671
  }>>;
672
+ pythonTesting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
673
+ none: "none";
674
+ pytest: "pytest";
675
+ hypothesis: "hypothesis";
676
+ }>>>;
677
+ pythonCaching: z.ZodOptional<z.ZodEnum<{
678
+ none: "none";
679
+ redis: "redis";
680
+ aiocache: "aiocache";
681
+ }>>;
682
+ pythonRealtime: z.ZodOptional<z.ZodEnum<{
683
+ none: "none";
684
+ "python-socketio": "python-socketio";
685
+ websockets: "websockets";
686
+ }>>;
687
+ pythonObservability: z.ZodOptional<z.ZodEnum<{
688
+ none: "none";
689
+ opentelemetry: "opentelemetry";
690
+ }>>;
691
+ pythonCli: z.ZodOptional<z.ZodArray<z.ZodEnum<{
692
+ none: "none";
693
+ typer: "typer";
694
+ click: "click";
695
+ rich: "rich";
696
+ }>>>;
628
697
  goWebFramework: z.ZodOptional<z.ZodEnum<{
629
698
  none: "none";
630
699
  gin: "gin";
@@ -633,14 +702,15 @@ declare const router: {
633
702
  chi: "chi";
634
703
  }>>;
635
704
  goOrm: z.ZodOptional<z.ZodEnum<{
636
- gorm: "gorm";
637
705
  none: "none";
706
+ gorm: "gorm";
638
707
  sqlc: "sqlc";
639
708
  ent: "ent";
640
709
  }>>;
641
710
  goApi: z.ZodOptional<z.ZodEnum<{
642
711
  none: "none";
643
712
  "grpc-go": "grpc-go";
713
+ gqlgen: "gqlgen";
644
714
  }>>;
645
715
  goCli: z.ZodOptional<z.ZodEnum<{
646
716
  none: "none";
@@ -659,6 +729,36 @@ declare const router: {
659
729
  none: "none";
660
730
  jwt: "jwt";
661
731
  casbin: "casbin";
732
+ goth: "goth";
733
+ }>>;
734
+ goTesting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
735
+ none: "none";
736
+ testify: "testify";
737
+ gomock: "gomock";
738
+ }>>>;
739
+ goRealtime: z.ZodOptional<z.ZodEnum<{
740
+ none: "none";
741
+ "gorilla-websocket": "gorilla-websocket";
742
+ centrifuge: "centrifuge";
743
+ }>>;
744
+ goMessageQueue: z.ZodOptional<z.ZodEnum<{
745
+ none: "none";
746
+ nats: "nats";
747
+ watermill: "watermill";
748
+ }>>;
749
+ goCaching: z.ZodOptional<z.ZodEnum<{
750
+ none: "none";
751
+ redis: "redis";
752
+ ristretto: "ristretto";
753
+ }>>;
754
+ goConfig: z.ZodOptional<z.ZodEnum<{
755
+ none: "none";
756
+ viper: "viper";
757
+ koanf: "koanf";
758
+ }>>;
759
+ goObservability: z.ZodOptional<z.ZodEnum<{
760
+ none: "none";
761
+ opentelemetry: "opentelemetry";
662
762
  }>>;
663
763
  javaWebFramework: z.ZodOptional<z.ZodEnum<{
664
764
  none: "none";
@@ -673,10 +773,21 @@ declare const router: {
673
773
  javaOrm: z.ZodOptional<z.ZodEnum<{
674
774
  none: "none";
675
775
  "spring-data-jpa": "spring-data-jpa";
776
+ jooq: "jooq";
777
+ mybatis: "mybatis";
676
778
  }>>;
677
779
  javaAuth: z.ZodOptional<z.ZodEnum<{
678
780
  none: "none";
679
781
  "spring-security": "spring-security";
782
+ keycloak: "keycloak";
783
+ }>>;
784
+ javaApi: z.ZodOptional<z.ZodEnum<{
785
+ none: "none";
786
+ "spring-graphql": "spring-graphql";
787
+ }>>;
788
+ javaLogging: z.ZodOptional<z.ZodEnum<{
789
+ none: "none";
790
+ logback: "logback";
680
791
  }>>;
681
792
  javaLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
682
793
  none: "none";
@@ -696,6 +807,8 @@ declare const router: {
696
807
  "spring-devtools": "spring-devtools";
697
808
  "micrometer-prometheus": "micrometer-prometheus";
698
809
  thymeleaf: "thymeleaf";
810
+ "spring-amqp": "spring-amqp";
811
+ "opentelemetry-java": "opentelemetry-java";
699
812
  }>>>;
700
813
  javaTestingLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
701
814
  none: "none";
@@ -709,6 +822,70 @@ declare const router: {
709
822
  archunit: "archunit";
710
823
  jqwik: "jqwik";
711
824
  }>>>;
825
+ dotnetWebFramework: z.ZodOptional<z.ZodEnum<{
826
+ none: "none";
827
+ "aspnet-minimal": "aspnet-minimal";
828
+ "aspnet-mvc": "aspnet-mvc";
829
+ "aspnet-blazor": "aspnet-blazor";
830
+ }>>;
831
+ dotnetOrm: z.ZodOptional<z.ZodEnum<{
832
+ none: "none";
833
+ "ef-core": "ef-core";
834
+ dapper: "dapper";
835
+ linq2db: "linq2db";
836
+ }>>;
837
+ dotnetAuth: z.ZodOptional<z.ZodEnum<{
838
+ none: "none";
839
+ "aspnet-identity": "aspnet-identity";
840
+ "duende-identityserver": "duende-identityserver";
841
+ "auth0-aspnet": "auth0-aspnet";
842
+ }>>;
843
+ dotnetApi: z.ZodOptional<z.ZodEnum<{
844
+ none: "none";
845
+ "minimal-api": "minimal-api";
846
+ "graphql-hotchocolate": "graphql-hotchocolate";
847
+ "grpc-dotnet": "grpc-dotnet";
848
+ }>>;
849
+ dotnetTesting: z.ZodOptional<z.ZodArray<z.ZodEnum<{
850
+ none: "none";
851
+ xunit: "xunit";
852
+ nunit: "nunit";
853
+ moq: "moq";
854
+ "testcontainers-dotnet": "testcontainers-dotnet";
855
+ }>>>;
856
+ dotnetJobQueue: z.ZodOptional<z.ZodEnum<{
857
+ none: "none";
858
+ hangfire: "hangfire";
859
+ "quartz-net": "quartz-net";
860
+ "hosted-services": "hosted-services";
861
+ }>>;
862
+ dotnetRealtime: z.ZodOptional<z.ZodEnum<{
863
+ none: "none";
864
+ signalr: "signalr";
865
+ }>>;
866
+ dotnetObservability: z.ZodOptional<z.ZodArray<z.ZodEnum<{
867
+ none: "none";
868
+ "opentelemetry-dotnet": "opentelemetry-dotnet";
869
+ serilog: "serilog";
870
+ nlog: "nlog";
871
+ "health-checks": "health-checks";
872
+ }>>>;
873
+ dotnetValidation: z.ZodOptional<z.ZodEnum<{
874
+ none: "none";
875
+ fluentvalidation: "fluentvalidation";
876
+ "data-annotations": "data-annotations";
877
+ }>>;
878
+ dotnetCaching: z.ZodOptional<z.ZodEnum<{
879
+ none: "none";
880
+ redis: "redis";
881
+ "memory-cache": "memory-cache";
882
+ }>>;
883
+ dotnetDeploy: z.ZodOptional<z.ZodEnum<{
884
+ none: "none";
885
+ docker: "docker";
886
+ azure: "azure";
887
+ aws: "aws";
888
+ }>>;
712
889
  elixirWebFramework: z.ZodOptional<z.ZodEnum<{
713
890
  none: "none";
714
891
  phoenix: "phoenix";
@@ -729,6 +906,7 @@ declare const router: {
729
906
  none: "none";
730
907
  rest: "rest";
731
908
  absinthe: "absinthe";
909
+ grpc: "grpc";
732
910
  }>>;
733
911
  elixirRealtime: z.ZodOptional<z.ZodEnum<{
734
912
  none: "none";
@@ -791,6 +969,11 @@ declare const router: {
791
969
  gigalixir: "gigalixir";
792
970
  "mix-release": "mix-release";
793
971
  }>>;
972
+ elixirLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
973
+ none: "none";
974
+ nx: "nx";
975
+ broadway: "broadway";
976
+ }>>>;
794
977
  aiDocs: z.ZodOptional<z.ZodArray<z.ZodEnum<{
795
978
  none: "none";
796
979
  "claude-md": "claude-md";
@@ -803,43 +986,44 @@ declare const router: {
803
986
  projectName: string;
804
987
  projectDir: string;
805
988
  relativePath: string;
806
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
989
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet";
807
990
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
808
991
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
809
992
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
810
993
  runtime: "none" | "bun" | "node" | "workers";
811
994
  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")[];
812
- 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")[];
995
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "nx" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "backend-utils" | "docker-compose")[];
813
996
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
814
- auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
997
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
815
998
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
816
999
  git: boolean;
817
1000
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
818
1001
  versionChannel: "stable" | "latest" | "beta";
819
1002
  install: boolean;
820
1003
  dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "upstash" | "d1" | "docker";
821
- api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga";
822
- webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
823
- serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
824
- ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion" | "tanstack-ai" | "ai-cli";
1004
+ api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "openapi";
1005
+ webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1006
+ serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1007
+ ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
825
1008
  effect: "effect" | "none" | "effect-full";
826
1009
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
827
1010
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
828
1011
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
829
1012
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
830
1013
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
831
- uiLibrary: "none" | "mui" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1014
+ 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";
832
1015
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
833
1016
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
834
1017
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
835
1018
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
836
1019
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
837
1020
  logging: "none" | "pino" | "winston" | "evlog";
838
- observability: "none" | "opentelemetry" | "sentry" | "grafana";
1021
+ observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
839
1022
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
840
1023
  analytics: "none" | "plausible" | "umami";
841
1024
  cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
842
1025
  caching: "none" | "upstash-redis";
1026
+ rateLimit: "none" | "arcjet" | "upstash-ratelimit";
843
1027
  i18n: "none" | "i18next" | "next-intl";
844
1028
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
845
1029
  fileStorage: "none" | "s3" | "r2" | "cloudinary";
@@ -859,32 +1043,60 @@ declare const router: {
859
1043
  rustLogging: "none" | "tracing" | "env-logger";
860
1044
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
861
1045
  rustCaching: "none" | "redis" | "moka";
862
- rustAuth: "none" | "oauth2";
863
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar";
864
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm";
1046
+ rustAuth: "none" | "oauth2" | "torii";
1047
+ rustRealtime: "none" | "tokio-tungstenite";
1048
+ rustMessageQueue: "none" | "lapin";
1049
+ rustObservability: "none" | "opentelemetry";
1050
+ rustTemplating: "none" | "askama" | "tera";
1051
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1052
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
865
1053
  pythonValidation: "none" | "pydantic";
866
- pythonAi: ("none" | "langgraph" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack")[];
867
- pythonAuth: "none" | "authlib" | "jwt";
1054
+ pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1055
+ pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
868
1056
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
869
- pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey";
1057
+ pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
870
1058
  pythonGraphql: "none" | "strawberry" | "ariadne";
871
1059
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1060
+ pythonTesting: ("none" | "pytest" | "hypothesis")[];
1061
+ pythonCaching: "none" | "redis" | "aiocache";
1062
+ pythonRealtime: "none" | "python-socketio" | "websockets";
1063
+ pythonObservability: "none" | "opentelemetry";
1064
+ pythonCli: ("none" | "typer" | "click" | "rich")[];
872
1065
  goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi";
873
1066
  goOrm: "none" | "gorm" | "sqlc" | "ent";
874
- goApi: "none" | "grpc-go";
1067
+ goApi: "none" | "grpc-go" | "gqlgen";
875
1068
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
876
1069
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
877
- goAuth: "none" | "jwt" | "casbin";
1070
+ goAuth: "none" | "jwt" | "casbin" | "goth";
1071
+ goTesting: ("none" | "testify" | "gomock")[];
1072
+ goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1073
+ goMessageQueue: "none" | "nats" | "watermill";
1074
+ goCaching: "none" | "redis" | "ristretto";
1075
+ goConfig: "none" | "viper" | "koanf";
1076
+ goObservability: "none" | "opentelemetry";
878
1077
  javaWebFramework: "none" | "spring-boot" | "quarkus";
879
1078
  javaBuildTool: "none" | "maven" | "gradle";
880
- javaOrm: "none" | "spring-data-jpa";
881
- javaAuth: "none" | "spring-security";
882
- 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")[];
1079
+ javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1080
+ javaAuth: "none" | "spring-security" | "keycloak";
1081
+ javaApi: "none" | "spring-graphql";
1082
+ javaLogging: "none" | "logback";
1083
+ 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" | "spring-amqp" | "opentelemetry-java")[];
883
1084
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1085
+ dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1086
+ dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1087
+ dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
1088
+ dotnetApi: "none" | "minimal-api" | "graphql-hotchocolate" | "grpc-dotnet";
1089
+ dotnetTesting: ("none" | "xunit" | "nunit" | "moq" | "testcontainers-dotnet")[];
1090
+ dotnetJobQueue: "none" | "hangfire" | "quartz-net" | "hosted-services";
1091
+ dotnetRealtime: "none" | "signalr";
1092
+ dotnetObservability: ("none" | "opentelemetry-dotnet" | "serilog" | "nlog" | "health-checks")[];
1093
+ dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1094
+ dotnetCaching: "none" | "redis" | "memory-cache";
1095
+ dotnetDeploy: "none" | "docker" | "azure" | "aws";
884
1096
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
885
1097
  elixirOrm: "none" | "ecto" | "ecto-sql";
886
1098
  elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
887
- elixirApi: "none" | "rest" | "absinthe";
1099
+ elixirApi: "none" | "rest" | "absinthe" | "grpc";
888
1100
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
889
1101
  elixirJobs: "none" | "oban" | "quantum";
890
1102
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
@@ -896,6 +1108,7 @@ declare const router: {
896
1108
  elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
897
1109
  elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
898
1110
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1111
+ elixirLibraries: ("none" | "nx" | "broadway")[];
899
1112
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
900
1113
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
901
1114
  shadcnBase?: "radix" | "base" | undefined;
@@ -907,9 +1120,9 @@ declare const router: {
907
1120
  shadcnRadius?: "default" | "none" | "small" | "medium" | "large" | undefined;
908
1121
  stackParts?: {
909
1122
  id: string;
910
- role: "api" | "runtime" | "backend" | "database" | "orm" | "auth" | "payments" | "email" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "jobQueue" | "caching" | "i18n" | "search" | "fileStorage" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "ai" | "frontend" | "css" | "ui" | "mobile" | "deploy" | "appPlatform";
1123
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "frontend" | "config" | "mobile" | "deploy" | "navigation" | "ui" | "css" | "storage" | "appPlatform" | "dataFetching" | "workspaceTooling" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
911
1124
  toolId: string;
912
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "universal";
1125
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
913
1126
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
914
1127
  ownerPartId?: string | undefined;
915
1128
  providedByPartId?: string | undefined;
@@ -933,43 +1146,44 @@ declare const router: {
933
1146
  projectName: string;
934
1147
  projectDir: string;
935
1148
  relativePath: string;
936
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
1149
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet";
937
1150
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
938
1151
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
939
1152
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
940
1153
  runtime: "none" | "bun" | "node" | "workers";
941
1154
  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")[];
942
- 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")[];
1155
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "nx" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "backend-utils" | "docker-compose")[];
943
1156
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
944
- auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
1157
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
945
1158
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
946
1159
  git: boolean;
947
1160
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
948
1161
  versionChannel: "stable" | "latest" | "beta";
949
1162
  install: boolean;
950
1163
  dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "upstash" | "d1" | "docker";
951
- api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga";
952
- webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
953
- serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
954
- ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion" | "tanstack-ai" | "ai-cli";
1164
+ api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "openapi";
1165
+ webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1166
+ serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1167
+ ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
955
1168
  effect: "effect" | "none" | "effect-full";
956
1169
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
957
1170
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
958
1171
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
959
1172
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
960
1173
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
961
- uiLibrary: "none" | "mui" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1174
+ 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";
962
1175
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
963
1176
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
964
1177
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
965
1178
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
966
1179
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
967
1180
  logging: "none" | "pino" | "winston" | "evlog";
968
- observability: "none" | "opentelemetry" | "sentry" | "grafana";
1181
+ observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
969
1182
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
970
1183
  analytics: "none" | "plausible" | "umami";
971
1184
  cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
972
1185
  caching: "none" | "upstash-redis";
1186
+ rateLimit: "none" | "arcjet" | "upstash-ratelimit";
973
1187
  i18n: "none" | "i18next" | "next-intl";
974
1188
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
975
1189
  fileStorage: "none" | "s3" | "r2" | "cloudinary";
@@ -989,32 +1203,60 @@ declare const router: {
989
1203
  rustLogging: "none" | "tracing" | "env-logger";
990
1204
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
991
1205
  rustCaching: "none" | "redis" | "moka";
992
- rustAuth: "none" | "oauth2";
993
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar";
994
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm";
1206
+ rustAuth: "none" | "oauth2" | "torii";
1207
+ rustRealtime: "none" | "tokio-tungstenite";
1208
+ rustMessageQueue: "none" | "lapin";
1209
+ rustObservability: "none" | "opentelemetry";
1210
+ rustTemplating: "none" | "askama" | "tera";
1211
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1212
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
995
1213
  pythonValidation: "none" | "pydantic";
996
- pythonAi: ("none" | "langgraph" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack")[];
997
- pythonAuth: "none" | "authlib" | "jwt";
1214
+ pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1215
+ pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
998
1216
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
999
- pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey";
1217
+ pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1000
1218
  pythonGraphql: "none" | "strawberry" | "ariadne";
1001
1219
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1220
+ pythonTesting: ("none" | "pytest" | "hypothesis")[];
1221
+ pythonCaching: "none" | "redis" | "aiocache";
1222
+ pythonRealtime: "none" | "python-socketio" | "websockets";
1223
+ pythonObservability: "none" | "opentelemetry";
1224
+ pythonCli: ("none" | "typer" | "click" | "rich")[];
1002
1225
  goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi";
1003
1226
  goOrm: "none" | "gorm" | "sqlc" | "ent";
1004
- goApi: "none" | "grpc-go";
1227
+ goApi: "none" | "grpc-go" | "gqlgen";
1005
1228
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1006
1229
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1007
- goAuth: "none" | "jwt" | "casbin";
1230
+ goAuth: "none" | "jwt" | "casbin" | "goth";
1231
+ goTesting: ("none" | "testify" | "gomock")[];
1232
+ goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1233
+ goMessageQueue: "none" | "nats" | "watermill";
1234
+ goCaching: "none" | "redis" | "ristretto";
1235
+ goConfig: "none" | "viper" | "koanf";
1236
+ goObservability: "none" | "opentelemetry";
1008
1237
  javaWebFramework: "none" | "spring-boot" | "quarkus";
1009
1238
  javaBuildTool: "none" | "maven" | "gradle";
1010
- javaOrm: "none" | "spring-data-jpa";
1011
- javaAuth: "none" | "spring-security";
1012
- 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")[];
1239
+ javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1240
+ javaAuth: "none" | "spring-security" | "keycloak";
1241
+ javaApi: "none" | "spring-graphql";
1242
+ javaLogging: "none" | "logback";
1243
+ 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" | "spring-amqp" | "opentelemetry-java")[];
1013
1244
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1245
+ dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1246
+ dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1247
+ dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
1248
+ dotnetApi: "none" | "minimal-api" | "graphql-hotchocolate" | "grpc-dotnet";
1249
+ dotnetTesting: ("none" | "xunit" | "nunit" | "moq" | "testcontainers-dotnet")[];
1250
+ dotnetJobQueue: "none" | "hangfire" | "quartz-net" | "hosted-services";
1251
+ dotnetRealtime: "none" | "signalr";
1252
+ dotnetObservability: ("none" | "opentelemetry-dotnet" | "serilog" | "nlog" | "health-checks")[];
1253
+ dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1254
+ dotnetCaching: "none" | "redis" | "memory-cache";
1255
+ dotnetDeploy: "none" | "docker" | "azure" | "aws";
1014
1256
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1015
1257
  elixirOrm: "none" | "ecto" | "ecto-sql";
1016
1258
  elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1017
- elixirApi: "none" | "rest" | "absinthe";
1259
+ elixirApi: "none" | "rest" | "absinthe" | "grpc";
1018
1260
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1019
1261
  elixirJobs: "none" | "oban" | "quantum";
1020
1262
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
@@ -1026,6 +1268,7 @@ declare const router: {
1026
1268
  elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1027
1269
  elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1028
1270
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1271
+ elixirLibraries: ("none" | "nx" | "broadway")[];
1029
1272
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1030
1273
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1031
1274
  shadcnBase?: "radix" | "base" | undefined;
@@ -1037,9 +1280,9 @@ declare const router: {
1037
1280
  shadcnRadius?: "default" | "none" | "small" | "medium" | "large" | undefined;
1038
1281
  stackParts?: {
1039
1282
  id: string;
1040
- role: "api" | "runtime" | "backend" | "database" | "orm" | "auth" | "payments" | "email" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "jobQueue" | "caching" | "i18n" | "search" | "fileStorage" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "ai" | "frontend" | "css" | "ui" | "mobile" | "deploy" | "appPlatform";
1283
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "frontend" | "config" | "mobile" | "deploy" | "navigation" | "ui" | "css" | "storage" | "appPlatform" | "dataFetching" | "workspaceTooling" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1041
1284
  toolId: string;
1042
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "universal";
1285
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1043
1286
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
1044
1287
  ownerPartId?: string | undefined;
1045
1288
  providedByPartId?: string | undefined;
@@ -1076,43 +1319,44 @@ declare const router: {
1076
1319
  projectName: string;
1077
1320
  projectDir: string;
1078
1321
  relativePath: string;
1079
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
1322
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet";
1080
1323
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
1081
1324
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1082
1325
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1083
1326
  runtime: "none" | "bun" | "node" | "workers";
1084
1327
  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")[];
1085
- 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")[];
1328
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "nx" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "backend-utils" | "docker-compose")[];
1086
1329
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
1087
- auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
1330
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
1088
1331
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
1089
1332
  git: boolean;
1090
1333
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1091
1334
  versionChannel: "stable" | "latest" | "beta";
1092
1335
  install: boolean;
1093
1336
  dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "upstash" | "d1" | "docker";
1094
- api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga";
1095
- webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
1096
- serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
1097
- ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion" | "tanstack-ai" | "ai-cli";
1337
+ api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "openapi";
1338
+ webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1339
+ serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1340
+ ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1098
1341
  effect: "effect" | "none" | "effect-full";
1099
1342
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1100
1343
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1101
1344
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1102
1345
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1103
1346
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1104
- uiLibrary: "none" | "mui" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1347
+ 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";
1105
1348
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1106
1349
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1107
1350
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1108
1351
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1109
1352
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1110
1353
  logging: "none" | "pino" | "winston" | "evlog";
1111
- observability: "none" | "opentelemetry" | "sentry" | "grafana";
1354
+ observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1112
1355
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1113
1356
  analytics: "none" | "plausible" | "umami";
1114
1357
  cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
1115
1358
  caching: "none" | "upstash-redis";
1359
+ rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1116
1360
  i18n: "none" | "i18next" | "next-intl";
1117
1361
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
1118
1362
  fileStorage: "none" | "s3" | "r2" | "cloudinary";
@@ -1132,32 +1376,60 @@ declare const router: {
1132
1376
  rustLogging: "none" | "tracing" | "env-logger";
1133
1377
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1134
1378
  rustCaching: "none" | "redis" | "moka";
1135
- rustAuth: "none" | "oauth2";
1136
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar";
1137
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm";
1379
+ rustAuth: "none" | "oauth2" | "torii";
1380
+ rustRealtime: "none" | "tokio-tungstenite";
1381
+ rustMessageQueue: "none" | "lapin";
1382
+ rustObservability: "none" | "opentelemetry";
1383
+ rustTemplating: "none" | "askama" | "tera";
1384
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1385
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1138
1386
  pythonValidation: "none" | "pydantic";
1139
- pythonAi: ("none" | "langgraph" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack")[];
1140
- pythonAuth: "none" | "authlib" | "jwt";
1387
+ pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1388
+ pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1141
1389
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1142
- pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey";
1390
+ pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1143
1391
  pythonGraphql: "none" | "strawberry" | "ariadne";
1144
1392
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1393
+ pythonTesting: ("none" | "pytest" | "hypothesis")[];
1394
+ pythonCaching: "none" | "redis" | "aiocache";
1395
+ pythonRealtime: "none" | "python-socketio" | "websockets";
1396
+ pythonObservability: "none" | "opentelemetry";
1397
+ pythonCli: ("none" | "typer" | "click" | "rich")[];
1145
1398
  goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi";
1146
1399
  goOrm: "none" | "gorm" | "sqlc" | "ent";
1147
- goApi: "none" | "grpc-go";
1400
+ goApi: "none" | "grpc-go" | "gqlgen";
1148
1401
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1149
1402
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1150
- goAuth: "none" | "jwt" | "casbin";
1403
+ goAuth: "none" | "jwt" | "casbin" | "goth";
1404
+ goTesting: ("none" | "testify" | "gomock")[];
1405
+ goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1406
+ goMessageQueue: "none" | "nats" | "watermill";
1407
+ goCaching: "none" | "redis" | "ristretto";
1408
+ goConfig: "none" | "viper" | "koanf";
1409
+ goObservability: "none" | "opentelemetry";
1151
1410
  javaWebFramework: "none" | "spring-boot" | "quarkus";
1152
1411
  javaBuildTool: "none" | "maven" | "gradle";
1153
- javaOrm: "none" | "spring-data-jpa";
1154
- javaAuth: "none" | "spring-security";
1155
- 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")[];
1412
+ javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1413
+ javaAuth: "none" | "spring-security" | "keycloak";
1414
+ javaApi: "none" | "spring-graphql";
1415
+ javaLogging: "none" | "logback";
1416
+ 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" | "spring-amqp" | "opentelemetry-java")[];
1156
1417
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1418
+ dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1419
+ dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1420
+ dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
1421
+ dotnetApi: "none" | "minimal-api" | "graphql-hotchocolate" | "grpc-dotnet";
1422
+ dotnetTesting: ("none" | "xunit" | "nunit" | "moq" | "testcontainers-dotnet")[];
1423
+ dotnetJobQueue: "none" | "hangfire" | "quartz-net" | "hosted-services";
1424
+ dotnetRealtime: "none" | "signalr";
1425
+ dotnetObservability: ("none" | "opentelemetry-dotnet" | "serilog" | "nlog" | "health-checks")[];
1426
+ dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1427
+ dotnetCaching: "none" | "redis" | "memory-cache";
1428
+ dotnetDeploy: "none" | "docker" | "azure" | "aws";
1157
1429
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1158
1430
  elixirOrm: "none" | "ecto" | "ecto-sql";
1159
1431
  elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1160
- elixirApi: "none" | "rest" | "absinthe";
1432
+ elixirApi: "none" | "rest" | "absinthe" | "grpc";
1161
1433
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1162
1434
  elixirJobs: "none" | "oban" | "quantum";
1163
1435
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
@@ -1169,6 +1441,7 @@ declare const router: {
1169
1441
  elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1170
1442
  elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1171
1443
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1444
+ elixirLibraries: ("none" | "nx" | "broadway")[];
1172
1445
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1173
1446
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1174
1447
  shadcnBase?: "radix" | "base" | undefined;
@@ -1180,9 +1453,9 @@ declare const router: {
1180
1453
  shadcnRadius?: "default" | "none" | "small" | "medium" | "large" | undefined;
1181
1454
  stackParts?: {
1182
1455
  id: string;
1183
- role: "api" | "runtime" | "backend" | "database" | "orm" | "auth" | "payments" | "email" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "jobQueue" | "caching" | "i18n" | "search" | "fileStorage" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "ai" | "frontend" | "css" | "ui" | "mobile" | "deploy" | "appPlatform";
1456
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "frontend" | "config" | "mobile" | "deploy" | "navigation" | "ui" | "css" | "storage" | "appPlatform" | "dataFetching" | "workspaceTooling" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1184
1457
  toolId: string;
1185
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "universal";
1458
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1186
1459
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
1187
1460
  ownerPartId?: string | undefined;
1188
1461
  providedByPartId?: string | undefined;
@@ -1206,43 +1479,44 @@ declare const router: {
1206
1479
  projectName: string;
1207
1480
  projectDir: string;
1208
1481
  relativePath: string;
1209
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir";
1482
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet";
1210
1483
  database: "none" | "sqlite" | "postgres" | "mysql" | "mongodb" | "edgedb" | "redis";
1211
1484
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1212
1485
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1213
1486
  runtime: "none" | "bun" | "node" | "workers";
1214
1487
  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")[];
1215
- 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")[];
1488
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "nx" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "swr" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer" | "backend-utils" | "docker-compose")[];
1216
1489
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
1217
- auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
1490
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
1218
1491
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
1219
1492
  git: boolean;
1220
1493
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1221
1494
  versionChannel: "stable" | "latest" | "beta";
1222
1495
  install: boolean;
1223
1496
  dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "upstash" | "d1" | "docker";
1224
- api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga";
1225
- webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
1226
- serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst" | "vercel";
1227
- ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion" | "tanstack-ai" | "ai-cli";
1497
+ api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "openapi";
1498
+ webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1499
+ serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1500
+ ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1228
1501
  effect: "effect" | "none" | "effect-full";
1229
1502
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1230
1503
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1231
1504
  testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1232
1505
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1233
1506
  cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1234
- uiLibrary: "none" | "mui" | "shadcn-ui" | "shadcn-svelte" | "daisyui" | "radix-ui" | "headless-ui" | "park-ui" | "chakra-ui" | "nextui" | "mantine" | "antd" | "base-ui" | "ark-ui" | "react-aria";
1507
+ 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";
1235
1508
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1236
1509
  realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1237
1510
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1238
1511
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1239
1512
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1240
1513
  logging: "none" | "pino" | "winston" | "evlog";
1241
- observability: "none" | "opentelemetry" | "sentry" | "grafana";
1514
+ observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1242
1515
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1243
1516
  analytics: "none" | "plausible" | "umami";
1244
1517
  cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus";
1245
1518
  caching: "none" | "upstash-redis";
1519
+ rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1246
1520
  i18n: "none" | "i18next" | "next-intl";
1247
1521
  search: "none" | "meilisearch" | "typesense" | "elasticsearch" | "algolia";
1248
1522
  fileStorage: "none" | "s3" | "r2" | "cloudinary";
@@ -1262,32 +1536,60 @@ declare const router: {
1262
1536
  rustLogging: "none" | "tracing" | "env-logger";
1263
1537
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1264
1538
  rustCaching: "none" | "redis" | "moka";
1265
- rustAuth: "none" | "oauth2";
1266
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar";
1267
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm";
1539
+ rustAuth: "none" | "oauth2" | "torii";
1540
+ rustRealtime: "none" | "tokio-tungstenite";
1541
+ rustMessageQueue: "none" | "lapin";
1542
+ rustObservability: "none" | "opentelemetry";
1543
+ rustTemplating: "none" | "askama" | "tera";
1544
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1545
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1268
1546
  pythonValidation: "none" | "pydantic";
1269
- pythonAi: ("none" | "langgraph" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack")[];
1270
- pythonAuth: "none" | "authlib" | "jwt";
1547
+ pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1548
+ pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1271
1549
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1272
- pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey";
1550
+ pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1273
1551
  pythonGraphql: "none" | "strawberry" | "ariadne";
1274
1552
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1553
+ pythonTesting: ("none" | "pytest" | "hypothesis")[];
1554
+ pythonCaching: "none" | "redis" | "aiocache";
1555
+ pythonRealtime: "none" | "python-socketio" | "websockets";
1556
+ pythonObservability: "none" | "opentelemetry";
1557
+ pythonCli: ("none" | "typer" | "click" | "rich")[];
1275
1558
  goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi";
1276
1559
  goOrm: "none" | "gorm" | "sqlc" | "ent";
1277
- goApi: "none" | "grpc-go";
1560
+ goApi: "none" | "grpc-go" | "gqlgen";
1278
1561
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1279
1562
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1280
- goAuth: "none" | "jwt" | "casbin";
1563
+ goAuth: "none" | "jwt" | "casbin" | "goth";
1564
+ goTesting: ("none" | "testify" | "gomock")[];
1565
+ goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1566
+ goMessageQueue: "none" | "nats" | "watermill";
1567
+ goCaching: "none" | "redis" | "ristretto";
1568
+ goConfig: "none" | "viper" | "koanf";
1569
+ goObservability: "none" | "opentelemetry";
1281
1570
  javaWebFramework: "none" | "spring-boot" | "quarkus";
1282
1571
  javaBuildTool: "none" | "maven" | "gradle";
1283
- javaOrm: "none" | "spring-data-jpa";
1284
- javaAuth: "none" | "spring-security";
1285
- 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")[];
1572
+ javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1573
+ javaAuth: "none" | "spring-security" | "keycloak";
1574
+ javaApi: "none" | "spring-graphql";
1575
+ javaLogging: "none" | "logback";
1576
+ 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" | "spring-amqp" | "opentelemetry-java")[];
1286
1577
  javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1578
+ dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1579
+ dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1580
+ dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
1581
+ dotnetApi: "none" | "minimal-api" | "graphql-hotchocolate" | "grpc-dotnet";
1582
+ dotnetTesting: ("none" | "xunit" | "nunit" | "moq" | "testcontainers-dotnet")[];
1583
+ dotnetJobQueue: "none" | "hangfire" | "quartz-net" | "hosted-services";
1584
+ dotnetRealtime: "none" | "signalr";
1585
+ dotnetObservability: ("none" | "opentelemetry-dotnet" | "serilog" | "nlog" | "health-checks")[];
1586
+ dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1587
+ dotnetCaching: "none" | "redis" | "memory-cache";
1588
+ dotnetDeploy: "none" | "docker" | "azure" | "aws";
1287
1589
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1288
1590
  elixirOrm: "none" | "ecto" | "ecto-sql";
1289
1591
  elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1290
- elixirApi: "none" | "rest" | "absinthe";
1592
+ elixirApi: "none" | "rest" | "absinthe" | "grpc";
1291
1593
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1292
1594
  elixirJobs: "none" | "oban" | "quantum";
1293
1595
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
@@ -1299,6 +1601,7 @@ declare const router: {
1299
1601
  elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1300
1602
  elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1301
1603
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1604
+ elixirLibraries: ("none" | "nx" | "broadway")[];
1302
1605
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1303
1606
  astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1304
1607
  shadcnBase?: "radix" | "base" | undefined;
@@ -1310,9 +1613,9 @@ declare const router: {
1310
1613
  shadcnRadius?: "default" | "none" | "small" | "medium" | "large" | undefined;
1311
1614
  stackParts?: {
1312
1615
  id: string;
1313
- role: "api" | "runtime" | "backend" | "database" | "orm" | "auth" | "payments" | "email" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "jobQueue" | "caching" | "i18n" | "search" | "fileStorage" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "ai" | "frontend" | "css" | "ui" | "mobile" | "deploy" | "appPlatform";
1616
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "frontend" | "config" | "mobile" | "deploy" | "navigation" | "ui" | "css" | "storage" | "appPlatform" | "dataFetching" | "workspaceTooling" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1314
1617
  toolId: string;
1315
- ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "universal";
1618
+ ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1316
1619
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
1317
1620
  ownerPartId?: string | undefined;
1318
1621
  providedByPartId?: string | undefined;
@@ -1360,6 +1663,7 @@ declare const router: {
1360
1663
  mcp: "mcp";
1361
1664
  skills: "skills";
1362
1665
  turborepo: "turborepo";
1666
+ nx: "nx";
1363
1667
  fumadocs: "fumadocs";
1364
1668
  ultracite: "ultracite";
1365
1669
  oxlint: "oxlint";
@@ -1373,6 +1677,7 @@ declare const router: {
1373
1677
  "tanstack-virtual": "tanstack-virtual";
1374
1678
  "tanstack-db": "tanstack-db";
1375
1679
  "tanstack-pacer": "tanstack-pacer";
1680
+ "backend-utils": "backend-utils";
1376
1681
  "docker-compose": "docker-compose";
1377
1682
  }>>>;
1378
1683
  webDeploy: z.ZodOptional<z.ZodEnum<{
@@ -1381,6 +1686,8 @@ declare const router: {
1381
1686
  cloudflare: "cloudflare";
1382
1687
  fly: "fly";
1383
1688
  railway: "railway";
1689
+ render: "render";
1690
+ netlify: "netlify";
1384
1691
  sst: "sst";
1385
1692
  vercel: "vercel";
1386
1693
  }>>;
@@ -1390,6 +1697,8 @@ declare const router: {
1390
1697
  cloudflare: "cloudflare";
1391
1698
  fly: "fly";
1392
1699
  railway: "railway";
1700
+ render: "render";
1701
+ netlify: "netlify";
1393
1702
  sst: "sst";
1394
1703
  vercel: "vercel";
1395
1704
  }>>;
@@ -1448,6 +1757,8 @@ declare function history(options?: {
1448
1757
  clear?: boolean;
1449
1758
  json?: boolean;
1450
1759
  }): Promise<void>;
1760
+ //#endregion
1761
+ //#region src/index.d.ts
1451
1762
  /**
1452
1763
  * Programmatic API to generate a project in-memory (virtual filesystem).
1453
1764
  * Returns a VirtualFileTree without writing to disk.