create-better-fullstack 2.1.8 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/{add-handler-ztNjzoMN.mjs → add-handler-CE3XIs3y.mjs} +8 -8
  2. package/dist/{addons-setup-LaAj43NP.mjs → addons-setup-DR924M7b.mjs} +1 -1
  3. package/dist/addons-setup-Du2VSv8V.mjs +7 -0
  4. package/dist/{analytics-DVltG11u.mjs → analytics-BXlOG6u6.mjs} +1 -1
  5. package/dist/{bts-config-DQVWvPDs.mjs → bts-config-B_HhcMXL.mjs} +30 -0
  6. package/dist/cli.mjs +2 -2
  7. package/dist/{config-processing-D9-F2Us9.mjs → config-processing-DJisMeW-.mjs} +17 -1
  8. package/dist/{doctor-a4ca3SMd.mjs → doctor-Cc7sLuow.mjs} +2 -2
  9. package/dist/{file-formatter-gvmrpd-g.mjs → file-formatter-BgbfpYf4.mjs} +442 -22
  10. package/dist/{gen-CCClL7Ve.mjs → gen-BZ0QCxCC.mjs} +1 -1
  11. package/dist/{generated-checks-BV9jol5h.mjs → generated-checks-CbioGjCh.mjs} +1 -1
  12. package/dist/index.d.mts +461 -183
  13. package/dist/index.mjs +20 -9
  14. package/dist/{install-dependencies-RoUyaE8o.mjs → install-dependencies-D__bmW4k.mjs} +86 -18
  15. package/dist/{mcp-492OkjcS.mjs → mcp-DNKAo8nO.mjs} +5 -5
  16. package/dist/mcp-entry.mjs +37 -225
  17. package/dist/{registry-DSf2CEaU.mjs → registry-Cm3D45oT.mjs} +1 -1
  18. package/dist/run-C_S7ujfY.mjs +15 -0
  19. package/dist/{run-T6g1jkfy.mjs → run-DmN7QRt5.mjs} +1155 -292
  20. package/dist/scaffold-manifest-ByKtMhTd.mjs +4 -0
  21. package/dist/{scaffold-manifest-Dyi0voqE.mjs → scaffold-manifest-CNFz-lmH.mjs} +34 -5
  22. package/dist/{update-DJ8CI5KW.mjs → update-B270pWHc.mjs} +182 -25
  23. package/package.json +6 -6
  24. package/dist/addons-setup-DnLjAzTw.mjs +0 -7
  25. package/dist/run-CD8f7PHh.mjs +0 -15
  26. package/dist/scaffold-manifest-DGRyepdb.mjs +0 -4
package/dist/index.d.mts CHANGED
@@ -41,11 +41,11 @@ declare const router: {
41
41
  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<{
42
42
  template: z.ZodOptional<z.ZodEnum<{
43
43
  none: "none";
44
- uniwind: "uniwind";
45
44
  mern: "mern";
46
45
  pern: "pern";
47
46
  t3: "t3";
48
47
  saas: "saas";
48
+ uniwind: "uniwind";
49
49
  }>>;
50
50
  fromHistory: z.ZodOptional<z.ZodNumber>;
51
51
  config: z.ZodOptional<z.ZodString>;
@@ -96,6 +96,7 @@ declare const router: {
96
96
  auth0: "auth0";
97
97
  workos: "workos";
98
98
  kinde: "kinde";
99
+ passport: "passport";
99
100
  }>>;
100
101
  payments: z.ZodOptional<z.ZodEnum<{
101
102
  none: "none";
@@ -104,6 +105,7 @@ declare const router: {
104
105
  stripe: "stripe";
105
106
  "lemon-squeezy": "lemon-squeezy";
106
107
  paddle: "paddle";
108
+ paypal: "paypal";
107
109
  dodo: "dodo";
108
110
  creem: "creem";
109
111
  autumn: "autumn";
@@ -127,8 +129,8 @@ declare const router: {
127
129
  uppy: "uppy";
128
130
  }>>;
129
131
  effect: z.ZodOptional<z.ZodEnum<{
130
- effect: "effect";
131
132
  none: "none";
133
+ effect: "effect";
132
134
  "effect-full": "effect-full";
133
135
  }>>;
134
136
  stateManagement: z.ZodOptional<z.ZodEnum<{
@@ -168,6 +170,7 @@ declare const router: {
168
170
  playwright: "playwright";
169
171
  "vitest-playwright": "vitest-playwright";
170
172
  jest: "jest";
173
+ mocha: "mocha";
171
174
  cypress: "cypress";
172
175
  }>>;
173
176
  ai: z.ZodOptional<z.ZodEnum<{
@@ -177,6 +180,8 @@ declare const router: {
177
180
  voltagent: "voltagent";
178
181
  langgraph: "langgraph";
179
182
  "openai-agents": "openai-agents";
183
+ "openai-sdk": "openai-sdk";
184
+ "anthropic-sdk": "anthropic-sdk";
180
185
  "google-adk": "google-adk";
181
186
  modelfusion: "modelfusion";
182
187
  langchain: "langchain";
@@ -187,6 +192,7 @@ declare const router: {
187
192
  realtime: z.ZodOptional<z.ZodEnum<{
188
193
  none: "none";
189
194
  "socket-io": "socket-io";
195
+ ws: "ws";
190
196
  partykit: "partykit";
191
197
  ably: "ably";
192
198
  pusher: "pusher";
@@ -236,6 +242,7 @@ declare const router: {
236
242
  posthog: "posthog";
237
243
  plausible: "plausible";
238
244
  umami: "umami";
245
+ ga4: "ga4";
239
246
  }>>;
240
247
  cms: z.ZodOptional<z.ZodEnum<{
241
248
  none: "none";
@@ -245,6 +252,7 @@ declare const router: {
245
252
  tinacms: "tinacms";
246
253
  directus: "directus";
247
254
  keystatic: "keystatic";
255
+ contentful: "contentful";
248
256
  }>>;
249
257
  caching: z.ZodOptional<z.ZodEnum<{
250
258
  none: "none";
@@ -293,9 +301,9 @@ declare const router: {
293
301
  }>>;
294
302
  mobileUI: z.ZodOptional<z.ZodEnum<{
295
303
  none: "none";
304
+ uniwind: "uniwind";
296
305
  tamagui: "tamagui";
297
306
  "gluestack-ui": "gluestack-ui";
298
- uniwind: "uniwind";
299
307
  unistyles: "unistyles";
300
308
  }>>;
301
309
  mobileStorage: z.ZodOptional<z.ZodEnum<{
@@ -325,6 +333,8 @@ declare const router: {
325
333
  "tanstack-router": "tanstack-router";
326
334
  "react-router": "react-router";
327
335
  "react-vite": "react-vite";
336
+ "vanilla-vite": "vanilla-vite";
337
+ vue: "vue";
328
338
  "tanstack-start": "tanstack-start";
329
339
  next: "next";
330
340
  vinext: "vinext";
@@ -343,10 +353,10 @@ declare const router: {
343
353
  }>>>;
344
354
  astroIntegration: z.ZodOptional<z.ZodEnum<{
345
355
  none: "none";
356
+ vue: "vue";
346
357
  svelte: "svelte";
347
358
  solid: "solid";
348
359
  react: "react";
349
- vue: "vue";
350
360
  }>>;
351
361
  addons: z.ZodOptional<z.ZodArray<z.ZodEnum<{
352
362
  none: "none";
@@ -378,10 +388,19 @@ declare const router: {
378
388
  devcontainer: "devcontainer";
379
389
  "docker-compose": "docker-compose";
380
390
  "github-actions": "github-actions";
391
+ eslint: "eslint";
392
+ prettier: "prettier";
393
+ axios: "axios";
394
+ firebase: "firebase";
395
+ "graphql-codegen": "graphql-codegen";
396
+ "openapi-typescript": "openapi-typescript";
397
+ "apollo-client": "apollo-client";
398
+ electron: "electron";
399
+ capacitor: "capacitor";
381
400
  }>>>;
382
401
  examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
383
- ai: "ai";
384
402
  none: "none";
403
+ ai: "ai";
385
404
  "chat-sdk": "chat-sdk";
386
405
  "tanstack-showcase": "tanstack-showcase";
387
406
  }>>>;
@@ -415,13 +434,13 @@ declare const router: {
415
434
  docker: "docker";
416
435
  }>>;
417
436
  backend: z.ZodOptional<z.ZodEnum<{
418
- effect: "effect";
419
437
  none: "none";
420
438
  hono: "hono";
421
439
  express: "express";
422
440
  fastify: "fastify";
423
441
  elysia: "elysia";
424
442
  fets: "fets";
443
+ effect: "effect";
425
444
  nestjs: "nestjs";
426
445
  adonisjs: "adonisjs";
427
446
  nitro: "nitro";
@@ -451,6 +470,7 @@ declare const router: {
451
470
  scss: "scss";
452
471
  less: "less";
453
472
  "postcss-only": "postcss-only";
473
+ "styled-components": "styled-components";
454
474
  }>>;
455
475
  uiLibrary: z.ZodOptional<z.ZodEnum<{
456
476
  none: "none";
@@ -535,8 +555,8 @@ declare const router: {
535
555
  "geist-mono": "geist-mono";
536
556
  }>>;
537
557
  shadcnRadius: z.ZodOptional<z.ZodEnum<{
538
- default: "default";
539
558
  none: "none";
559
+ default: "default";
540
560
  small: "small";
541
561
  medium: "medium";
542
562
  large: "large";
@@ -564,10 +584,10 @@ declare const router: {
564
584
  vercel: "vercel";
565
585
  }>>;
566
586
  directoryConflict: z.ZodOptional<z.ZodEnum<{
567
- error: "error";
568
587
  merge: "merge";
569
588
  overwrite: "overwrite";
570
589
  increment: "increment";
590
+ error: "error";
571
591
  }>>;
572
592
  renderTitle: z.ZodOptional<z.ZodBoolean>;
573
593
  disableAnalytics: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -579,22 +599,29 @@ declare const router: {
579
599
  rocket: "rocket";
580
600
  poem: "poem";
581
601
  loco: "loco";
602
+ warp: "warp";
603
+ salvo: "salvo";
582
604
  }>>;
583
605
  rustFrontend: z.ZodOptional<z.ZodEnum<{
584
606
  none: "none";
585
607
  leptos: "leptos";
586
608
  dioxus: "dioxus";
609
+ yew: "yew";
587
610
  }>>;
588
611
  rustOrm: z.ZodOptional<z.ZodEnum<{
589
612
  none: "none";
613
+ mongodb: "mongodb";
590
614
  "sea-orm": "sea-orm";
591
615
  sqlx: "sqlx";
592
616
  diesel: "diesel";
617
+ rusqlite: "rusqlite";
618
+ "tokio-postgres": "tokio-postgres";
593
619
  }>>;
594
620
  rustApi: z.ZodOptional<z.ZodEnum<{
595
621
  none: "none";
596
622
  tonic: "tonic";
597
623
  "async-graphql": "async-graphql";
624
+ jsonrpsee: "jsonrpsee";
598
625
  }>>;
599
626
  rustCli: z.ZodOptional<z.ZodEnum<{
600
627
  none: "none";
@@ -602,12 +629,12 @@ declare const router: {
602
629
  ratatui: "ratatui";
603
630
  }>>;
604
631
  rustLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
605
- config: "config";
606
632
  none: "none";
607
633
  serde: "serde";
608
634
  uuid: "uuid";
609
635
  chrono: "chrono";
610
636
  reqwest: "reqwest";
637
+ config: "config";
611
638
  dashmap: "dashmap";
612
639
  "parking-lot": "parking-lot";
613
640
  secrecy: "secrecy";
@@ -620,6 +647,13 @@ declare const router: {
620
647
  mockall: "mockall";
621
648
  proptest: "proptest";
622
649
  insta: "insta";
650
+ rand: "rand";
651
+ regex: "regex";
652
+ rayon: "rayon";
653
+ itertools: "itertools";
654
+ rstest: "rstest";
655
+ "cargo-nextest": "cargo-nextest";
656
+ "cargo-audit": "cargo-audit";
623
657
  }>>>;
624
658
  rustLogging: z.ZodOptional<z.ZodEnum<{
625
659
  none: "none";
@@ -640,6 +674,8 @@ declare const router: {
640
674
  none: "none";
641
675
  oauth2: "oauth2";
642
676
  torii: "torii";
677
+ openidconnect: "openidconnect";
678
+ "tower-sessions": "tower-sessions";
643
679
  }>>;
644
680
  rustRealtime: z.ZodOptional<z.ZodEnum<{
645
681
  none: "none";
@@ -648,15 +684,19 @@ declare const router: {
648
684
  rustMessageQueue: z.ZodOptional<z.ZodEnum<{
649
685
  none: "none";
650
686
  lapin: "lapin";
687
+ rdkafka: "rdkafka";
688
+ "async-nats": "async-nats";
651
689
  }>>;
652
690
  rustObservability: z.ZodOptional<z.ZodEnum<{
653
691
  none: "none";
654
692
  opentelemetry: "opentelemetry";
693
+ metrics: "metrics";
655
694
  }>>;
656
695
  rustTemplating: z.ZodOptional<z.ZodEnum<{
657
696
  none: "none";
658
697
  askama: "askama";
659
698
  tera: "tera";
699
+ minijinja: "minijinja";
660
700
  }>>;
661
701
  pythonWebFramework: z.ZodOptional<z.ZodEnum<{
662
702
  none: "none";
@@ -680,11 +720,11 @@ declare const router: {
680
720
  pythonAi: z.ZodOptional<z.ZodArray<z.ZodEnum<{
681
721
  none: "none";
682
722
  langgraph: "langgraph";
723
+ "openai-sdk": "openai-sdk";
724
+ "anthropic-sdk": "anthropic-sdk";
683
725
  "google-adk": "google-adk";
684
726
  langchain: "langchain";
685
727
  llamaindex: "llamaindex";
686
- "openai-sdk": "openai-sdk";
687
- "anthropic-sdk": "anthropic-sdk";
688
728
  crewai: "crewai";
689
729
  haystack: "haystack";
690
730
  "pydantic-ai": "pydantic-ai";
@@ -752,10 +792,14 @@ declare const router: {
752
792
  fiber: "fiber";
753
793
  chi: "chi";
754
794
  stdlib: "stdlib";
795
+ "go-zero": "go-zero";
796
+ kratos: "kratos";
797
+ httprouter: "httprouter";
755
798
  }>>;
756
799
  goOrm: z.ZodOptional<z.ZodEnum<{
757
800
  none: "none";
758
801
  bun: "bun";
802
+ sqlx: "sqlx";
759
803
  gorm: "gorm";
760
804
  sqlc: "sqlc";
761
805
  ent: "ent";
@@ -764,6 +808,9 @@ declare const router: {
764
808
  none: "none";
765
809
  "grpc-go": "grpc-go";
766
810
  gqlgen: "gqlgen";
811
+ "grpc-gateway": "grpc-gateway";
812
+ "connect-go": "connect-go";
813
+ "oapi-codegen": "oapi-codegen";
767
814
  }>>;
768
815
  goCli: z.ZodOptional<z.ZodEnum<{
769
816
  none: "none";
@@ -780,6 +827,7 @@ declare const router: {
780
827
  }>>;
781
828
  goAuth: z.ZodOptional<z.ZodEnum<{
782
829
  none: "none";
830
+ oauth2: "oauth2";
783
831
  jwt: "jwt";
784
832
  casbin: "casbin";
785
833
  goth: "goth";
@@ -788,6 +836,9 @@ declare const router: {
788
836
  none: "none";
789
837
  testify: "testify";
790
838
  gomock: "gomock";
839
+ testcontainers: "testcontainers";
840
+ "ginkgo-gomega": "ginkgo-gomega";
841
+ mockery: "mockery";
791
842
  }>>>;
792
843
  goRealtime: z.ZodOptional<z.ZodEnum<{
793
844
  none: "none";
@@ -798,6 +849,8 @@ declare const router: {
798
849
  none: "none";
799
850
  nats: "nats";
800
851
  watermill: "watermill";
852
+ "kafka-go": "kafka-go";
853
+ asynq: "asynq";
801
854
  }>>;
802
855
  goCaching: z.ZodOptional<z.ZodEnum<{
803
856
  none: "none";
@@ -812,6 +865,31 @@ declare const router: {
812
865
  goObservability: z.ZodOptional<z.ZodEnum<{
813
866
  none: "none";
814
867
  opentelemetry: "opentelemetry";
868
+ prometheus: "prometheus";
869
+ }>>;
870
+ goValidation: z.ZodOptional<z.ZodEnum<{
871
+ none: "none";
872
+ validator: "validator";
873
+ }>>;
874
+ goQuality: z.ZodOptional<z.ZodEnum<{
875
+ none: "none";
876
+ "golangci-lint": "golangci-lint";
877
+ }>>;
878
+ goMigrations: z.ZodOptional<z.ZodEnum<{
879
+ none: "none";
880
+ "golang-migrate": "golang-migrate";
881
+ }>>;
882
+ goTemplating: z.ZodOptional<z.ZodEnum<{
883
+ none: "none";
884
+ templ: "templ";
885
+ }>>;
886
+ goProtoTooling: z.ZodOptional<z.ZodEnum<{
887
+ none: "none";
888
+ buf: "buf";
889
+ }>>;
890
+ goDI: z.ZodOptional<z.ZodEnum<{
891
+ none: "none";
892
+ fx: "fx";
815
893
  }>>;
816
894
  javaWebFramework: z.ZodOptional<z.ZodEnum<{
817
895
  none: "none";
@@ -873,9 +951,9 @@ declare const router: {
873
951
  }>>>;
874
952
  javaTestingLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
875
953
  none: "none";
954
+ testcontainers: "testcontainers";
876
955
  junit5: "junit5";
877
956
  mockito: "mockito";
878
- testcontainers: "testcontainers";
879
957
  assertj: "assertj";
880
958
  "rest-assured": "rest-assured";
881
959
  wiremock: "wiremock";
@@ -956,18 +1034,22 @@ declare const router: {
956
1034
  none: "none";
957
1035
  ecto: "ecto";
958
1036
  "ecto-sql": "ecto-sql";
1037
+ myxql: "myxql";
1038
+ ecto_sqlite3: "ecto_sqlite3";
959
1039
  }>>;
960
1040
  elixirAuth: z.ZodOptional<z.ZodEnum<{
961
1041
  none: "none";
962
1042
  "phx-gen-auth": "phx-gen-auth";
963
1043
  ueberauth: "ueberauth";
964
1044
  guardian: "guardian";
1045
+ pow: "pow";
965
1046
  }>>;
966
1047
  elixirApi: z.ZodOptional<z.ZodEnum<{
967
1048
  none: "none";
968
1049
  grpc: "grpc";
969
1050
  rest: "rest";
970
1051
  absinthe: "absinthe";
1052
+ open_api_spex: "open_api_spex";
971
1053
  }>>;
972
1054
  elixirRealtime: z.ZodOptional<z.ZodEnum<{
973
1055
  none: "none";
@@ -990,6 +1072,7 @@ declare const router: {
990
1072
  none: "none";
991
1073
  req: "req";
992
1074
  finch: "finch";
1075
+ tesla: "tesla";
993
1076
  }>>;
994
1077
  elixirJson: z.ZodOptional<z.ZodEnum<{
995
1078
  none: "none";
@@ -998,15 +1081,18 @@ declare const router: {
998
1081
  elixirEmail: z.ZodOptional<z.ZodEnum<{
999
1082
  none: "none";
1000
1083
  swoosh: "swoosh";
1084
+ bamboo: "bamboo";
1001
1085
  }>>;
1002
1086
  elixirCaching: z.ZodOptional<z.ZodEnum<{
1003
1087
  none: "none";
1004
1088
  cachex: "cachex";
1005
1089
  nebulex: "nebulex";
1090
+ redix: "redix";
1006
1091
  }>>;
1007
1092
  elixirObservability: z.ZodOptional<z.ZodEnum<{
1008
1093
  none: "none";
1009
1094
  opentelemetry: "opentelemetry";
1095
+ sentry: "sentry";
1010
1096
  telemetry: "telemetry";
1011
1097
  prom_ex: "prom_ex";
1012
1098
  }>>;
@@ -1016,12 +1102,37 @@ declare const router: {
1016
1102
  mox: "mox";
1017
1103
  bypass: "bypass";
1018
1104
  wallaby: "wallaby";
1105
+ stream_data: "stream_data";
1106
+ ex_machina: "ex_machina";
1019
1107
  }>>;
1020
1108
  elixirQuality: z.ZodOptional<z.ZodEnum<{
1021
1109
  none: "none";
1022
1110
  credo: "credo";
1023
1111
  dialyxir: "dialyxir";
1024
1112
  sobelow: "sobelow";
1113
+ excoveralls: "excoveralls";
1114
+ mix_audit: "mix_audit";
1115
+ }>>;
1116
+ elixirI18n: z.ZodOptional<z.ZodEnum<{
1117
+ none: "none";
1118
+ gettext: "gettext";
1119
+ }>>;
1120
+ elixirHttpServer: z.ZodOptional<z.ZodEnum<{
1121
+ none: "none";
1122
+ bandit: "bandit";
1123
+ cowboy: "cowboy";
1124
+ }>>;
1125
+ elixirApplicationFramework: z.ZodOptional<z.ZodEnum<{
1126
+ none: "none";
1127
+ ash: "ash";
1128
+ }>>;
1129
+ elixirDocumentation: z.ZodOptional<z.ZodEnum<{
1130
+ none: "none";
1131
+ ex_doc: "ex_doc";
1132
+ }>>;
1133
+ elixirClustering: z.ZodOptional<z.ZodEnum<{
1134
+ none: "none";
1135
+ libcluster: "libcluster";
1025
1136
  }>>;
1026
1137
  elixirDeploy: z.ZodOptional<z.ZodEnum<{
1027
1138
  none: "none";
@@ -1034,6 +1145,9 @@ declare const router: {
1034
1145
  none: "none";
1035
1146
  nx: "nx";
1036
1147
  broadway: "broadway";
1148
+ ex_aws: "ex_aws";
1149
+ floki: "floki";
1150
+ rustler: "rustler";
1037
1151
  }>>>;
1038
1152
  aiDocs: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1039
1153
  none: "none";
@@ -1052,11 +1166,11 @@ declare const router: {
1052
1166
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1053
1167
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1054
1168
  runtime: "none" | "bun" | "node" | "workers";
1055
- 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")[];
1056
- 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" | "devcontainer" | "docker-compose" | "github-actions")[];
1169
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "vanilla-vite" | "vue" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
1170
+ 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" | "devcontainer" | "docker-compose" | "github-actions" | "eslint" | "prettier" | "axios" | "firebase" | "graphql-codegen" | "openapi-typescript" | "apollo-client" | "electron" | "capacitor")[];
1057
1171
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
1058
- auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
1059
- payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo" | "creem" | "autumn" | "commet";
1172
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1173
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1060
1174
  git: boolean;
1061
1175
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1062
1176
  versionChannel: "stable" | "latest" | "beta";
@@ -1065,24 +1179,24 @@ declare const router: {
1065
1179
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1066
1180
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1067
1181
  serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1068
- ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1182
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1069
1183
  effect: "effect" | "none" | "effect-full";
1070
1184
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1071
1185
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1072
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1186
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1073
1187
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1074
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1188
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1075
1189
  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";
1076
1190
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1077
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1191
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1078
1192
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1079
1193
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1080
1194
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1081
1195
  logging: "none" | "pino" | "winston" | "evlog";
1082
1196
  observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1083
1197
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1084
- analytics: "none" | "posthog" | "plausible" | "umami";
1085
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1198
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1199
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1086
1200
  caching: "none" | "redis" | "upstash-redis";
1087
1201
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1088
1202
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1096,24 +1210,24 @@ declare const router: {
1096
1210
  mobilePush: "none" | "expo-notifications";
1097
1211
  mobileOTA: "none" | "expo-updates";
1098
1212
  mobileDeepLinking: "none" | "expo-linking";
1099
- rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco";
1100
- rustFrontend: "none" | "leptos" | "dioxus";
1101
- rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
1102
- rustApi: "none" | "tonic" | "async-graphql";
1213
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1214
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1215
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1216
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1103
1217
  rustCli: "none" | "clap" | "ratatui";
1104
- rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta")[];
1218
+ rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta" | "rand" | "regex" | "rayon" | "itertools" | "rstest" | "cargo-nextest" | "cargo-audit")[];
1105
1219
  rustLogging: "none" | "tracing" | "env-logger";
1106
1220
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1107
1221
  rustCaching: "none" | "redis" | "moka";
1108
- rustAuth: "none" | "oauth2" | "torii";
1222
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1109
1223
  rustRealtime: "none" | "tokio-tungstenite";
1110
- rustMessageQueue: "none" | "lapin";
1111
- rustObservability: "none" | "opentelemetry";
1112
- rustTemplating: "none" | "askama" | "tera";
1224
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1225
+ rustObservability: "none" | "opentelemetry" | "metrics";
1226
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1113
1227
  pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1114
1228
  pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1115
1229
  pythonValidation: "none" | "pydantic";
1116
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1230
+ pythonAi: ("none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1117
1231
  pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1118
1232
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1119
1233
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
@@ -1124,18 +1238,24 @@ declare const router: {
1124
1238
  pythonRealtime: "none" | "python-socketio" | "websockets";
1125
1239
  pythonObservability: "none" | "opentelemetry";
1126
1240
  pythonCli: ("none" | "typer" | "click" | "rich")[];
1127
- goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib";
1128
- goOrm: "none" | "bun" | "gorm" | "sqlc" | "ent";
1129
- goApi: "none" | "grpc-go" | "gqlgen";
1241
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1242
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1243
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1130
1244
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1131
1245
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1132
- goAuth: "none" | "jwt" | "casbin" | "goth";
1133
- goTesting: ("none" | "testify" | "gomock")[];
1246
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1247
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1134
1248
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1135
- goMessageQueue: "none" | "nats" | "watermill";
1249
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1136
1250
  goCaching: "none" | "redis" | "ristretto";
1137
1251
  goConfig: "none" | "viper" | "koanf";
1138
- goObservability: "none" | "opentelemetry";
1252
+ goObservability: "none" | "opentelemetry" | "prometheus";
1253
+ goValidation: "none" | "validator";
1254
+ goQuality: "none" | "golangci-lint";
1255
+ goMigrations: "none" | "golang-migrate";
1256
+ goTemplating: "none" | "templ";
1257
+ goProtoTooling: "none" | "buf";
1258
+ goDI: "none" | "fx";
1139
1259
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1140
1260
  javaBuildTool: "none" | "maven" | "gradle";
1141
1261
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
@@ -1143,7 +1263,7 @@ declare const router: {
1143
1263
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1144
1264
  javaLogging: "none" | "logback" | "log4j2";
1145
1265
  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")[];
1146
- javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1266
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1147
1267
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1148
1268
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1149
1269
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1156,24 +1276,29 @@ declare const router: {
1156
1276
  dotnetCaching: "none" | "redis" | "memory-cache";
1157
1277
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1158
1278
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1159
- elixirOrm: "none" | "ecto" | "ecto-sql";
1160
- elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1161
- elixirApi: "none" | "grpc" | "rest" | "absinthe";
1279
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1280
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1281
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1162
1282
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1163
1283
  elixirJobs: "none" | "oban" | "quantum";
1164
1284
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1165
- elixirHttp: "none" | "req" | "finch";
1285
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1166
1286
  elixirJson: "none" | "jason";
1167
- elixirEmail: "none" | "swoosh";
1168
- elixirCaching: "none" | "cachex" | "nebulex";
1169
- elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1170
- elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1171
- elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1287
+ elixirEmail: "none" | "swoosh" | "bamboo";
1288
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1289
+ elixirObservability: "none" | "opentelemetry" | "sentry" | "telemetry" | "prom_ex";
1290
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1291
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1292
+ elixirI18n: "none" | "gettext";
1293
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1294
+ elixirApplicationFramework: "none" | "ash";
1295
+ elixirDocumentation: "none" | "ex_doc";
1296
+ elixirClustering: "none" | "libcluster";
1172
1297
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1173
- elixirLibraries: ("none" | "nx" | "broadway")[];
1298
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1174
1299
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1175
1300
  workspaceShape?: "monorepo" | "single-app" | undefined;
1176
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1301
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1177
1302
  shadcnBase?: "radix" | "base" | undefined;
1178
1303
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1179
1304
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1184,7 +1309,7 @@ declare const router: {
1184
1309
  javaLanguage?: "java" | "kotlin" | undefined;
1185
1310
  stackParts?: {
1186
1311
  id: string;
1187
- role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "push" | "mobile" | "graphql" | "deploy" | "navigation" | "ui" | "css" | "storage" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1312
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "mobile" | "graphql" | "deploy" | "migrations" | "navigation" | "ui" | "css" | "storage" | "push" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1188
1313
  toolId: string;
1189
1314
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1190
1315
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1216,11 +1341,11 @@ declare const router: {
1216
1341
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1217
1342
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1218
1343
  runtime: "none" | "bun" | "node" | "workers";
1219
- 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")[];
1220
- 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" | "devcontainer" | "docker-compose" | "github-actions")[];
1344
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "vanilla-vite" | "vue" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
1345
+ 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" | "devcontainer" | "docker-compose" | "github-actions" | "eslint" | "prettier" | "axios" | "firebase" | "graphql-codegen" | "openapi-typescript" | "apollo-client" | "electron" | "capacitor")[];
1221
1346
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
1222
- auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
1223
- payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo" | "creem" | "autumn" | "commet";
1347
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1348
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1224
1349
  git: boolean;
1225
1350
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1226
1351
  versionChannel: "stable" | "latest" | "beta";
@@ -1229,24 +1354,24 @@ declare const router: {
1229
1354
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1230
1355
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1231
1356
  serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1232
- ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1357
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1233
1358
  effect: "effect" | "none" | "effect-full";
1234
1359
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1235
1360
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1236
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1361
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1237
1362
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1238
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1363
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1239
1364
  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";
1240
1365
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1241
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1366
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1242
1367
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1243
1368
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1244
1369
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1245
1370
  logging: "none" | "pino" | "winston" | "evlog";
1246
1371
  observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1247
1372
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1248
- analytics: "none" | "posthog" | "plausible" | "umami";
1249
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1373
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1374
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1250
1375
  caching: "none" | "redis" | "upstash-redis";
1251
1376
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1252
1377
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1260,24 +1385,24 @@ declare const router: {
1260
1385
  mobilePush: "none" | "expo-notifications";
1261
1386
  mobileOTA: "none" | "expo-updates";
1262
1387
  mobileDeepLinking: "none" | "expo-linking";
1263
- rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco";
1264
- rustFrontend: "none" | "leptos" | "dioxus";
1265
- rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
1266
- rustApi: "none" | "tonic" | "async-graphql";
1388
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1389
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1390
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1391
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1267
1392
  rustCli: "none" | "clap" | "ratatui";
1268
- rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta")[];
1393
+ rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta" | "rand" | "regex" | "rayon" | "itertools" | "rstest" | "cargo-nextest" | "cargo-audit")[];
1269
1394
  rustLogging: "none" | "tracing" | "env-logger";
1270
1395
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1271
1396
  rustCaching: "none" | "redis" | "moka";
1272
- rustAuth: "none" | "oauth2" | "torii";
1397
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1273
1398
  rustRealtime: "none" | "tokio-tungstenite";
1274
- rustMessageQueue: "none" | "lapin";
1275
- rustObservability: "none" | "opentelemetry";
1276
- rustTemplating: "none" | "askama" | "tera";
1399
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1400
+ rustObservability: "none" | "opentelemetry" | "metrics";
1401
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1277
1402
  pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1278
1403
  pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1279
1404
  pythonValidation: "none" | "pydantic";
1280
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1405
+ pythonAi: ("none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1281
1406
  pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1282
1407
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1283
1408
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
@@ -1288,18 +1413,24 @@ declare const router: {
1288
1413
  pythonRealtime: "none" | "python-socketio" | "websockets";
1289
1414
  pythonObservability: "none" | "opentelemetry";
1290
1415
  pythonCli: ("none" | "typer" | "click" | "rich")[];
1291
- goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib";
1292
- goOrm: "none" | "bun" | "gorm" | "sqlc" | "ent";
1293
- goApi: "none" | "grpc-go" | "gqlgen";
1416
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1417
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1418
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1294
1419
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1295
1420
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1296
- goAuth: "none" | "jwt" | "casbin" | "goth";
1297
- goTesting: ("none" | "testify" | "gomock")[];
1421
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1422
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1298
1423
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1299
- goMessageQueue: "none" | "nats" | "watermill";
1424
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1300
1425
  goCaching: "none" | "redis" | "ristretto";
1301
1426
  goConfig: "none" | "viper" | "koanf";
1302
- goObservability: "none" | "opentelemetry";
1427
+ goObservability: "none" | "opentelemetry" | "prometheus";
1428
+ goValidation: "none" | "validator";
1429
+ goQuality: "none" | "golangci-lint";
1430
+ goMigrations: "none" | "golang-migrate";
1431
+ goTemplating: "none" | "templ";
1432
+ goProtoTooling: "none" | "buf";
1433
+ goDI: "none" | "fx";
1303
1434
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1304
1435
  javaBuildTool: "none" | "maven" | "gradle";
1305
1436
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
@@ -1307,7 +1438,7 @@ declare const router: {
1307
1438
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1308
1439
  javaLogging: "none" | "logback" | "log4j2";
1309
1440
  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")[];
1310
- javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1441
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1311
1442
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1312
1443
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1313
1444
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1320,24 +1451,29 @@ declare const router: {
1320
1451
  dotnetCaching: "none" | "redis" | "memory-cache";
1321
1452
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1322
1453
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1323
- elixirOrm: "none" | "ecto" | "ecto-sql";
1324
- elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1325
- elixirApi: "none" | "grpc" | "rest" | "absinthe";
1454
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1455
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1456
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1326
1457
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1327
1458
  elixirJobs: "none" | "oban" | "quantum";
1328
1459
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1329
- elixirHttp: "none" | "req" | "finch";
1460
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1330
1461
  elixirJson: "none" | "jason";
1331
- elixirEmail: "none" | "swoosh";
1332
- elixirCaching: "none" | "cachex" | "nebulex";
1333
- elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1334
- elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1335
- elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1462
+ elixirEmail: "none" | "swoosh" | "bamboo";
1463
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1464
+ elixirObservability: "none" | "opentelemetry" | "sentry" | "telemetry" | "prom_ex";
1465
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1466
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1467
+ elixirI18n: "none" | "gettext";
1468
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1469
+ elixirApplicationFramework: "none" | "ash";
1470
+ elixirDocumentation: "none" | "ex_doc";
1471
+ elixirClustering: "none" | "libcluster";
1336
1472
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1337
- elixirLibraries: ("none" | "nx" | "broadway")[];
1473
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1338
1474
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1339
1475
  workspaceShape?: "monorepo" | "single-app" | undefined;
1340
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1476
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1341
1477
  shadcnBase?: "radix" | "base" | undefined;
1342
1478
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1343
1479
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1348,7 +1484,7 @@ declare const router: {
1348
1484
  javaLanguage?: "java" | "kotlin" | undefined;
1349
1485
  stackParts?: {
1350
1486
  id: string;
1351
- role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "push" | "mobile" | "graphql" | "deploy" | "navigation" | "ui" | "css" | "storage" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1487
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "mobile" | "graphql" | "deploy" | "migrations" | "navigation" | "ui" | "css" | "storage" | "push" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1352
1488
  toolId: string;
1353
1489
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1354
1490
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1394,11 +1530,11 @@ declare const router: {
1394
1530
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1395
1531
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1396
1532
  runtime: "none" | "bun" | "node" | "workers";
1397
- 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")[];
1398
- 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" | "devcontainer" | "docker-compose" | "github-actions")[];
1533
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "vanilla-vite" | "vue" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
1534
+ 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" | "devcontainer" | "docker-compose" | "github-actions" | "eslint" | "prettier" | "axios" | "firebase" | "graphql-codegen" | "openapi-typescript" | "apollo-client" | "electron" | "capacitor")[];
1399
1535
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
1400
- auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
1401
- payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo" | "creem" | "autumn" | "commet";
1536
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1537
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1402
1538
  git: boolean;
1403
1539
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1404
1540
  versionChannel: "stable" | "latest" | "beta";
@@ -1407,24 +1543,24 @@ declare const router: {
1407
1543
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1408
1544
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1409
1545
  serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1410
- ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1546
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1411
1547
  effect: "effect" | "none" | "effect-full";
1412
1548
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1413
1549
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1414
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1550
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1415
1551
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1416
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1552
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1417
1553
  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";
1418
1554
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1419
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1555
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1420
1556
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1421
1557
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1422
1558
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1423
1559
  logging: "none" | "pino" | "winston" | "evlog";
1424
1560
  observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1425
1561
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1426
- analytics: "none" | "posthog" | "plausible" | "umami";
1427
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1562
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1563
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1428
1564
  caching: "none" | "redis" | "upstash-redis";
1429
1565
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1430
1566
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1438,24 +1574,24 @@ declare const router: {
1438
1574
  mobilePush: "none" | "expo-notifications";
1439
1575
  mobileOTA: "none" | "expo-updates";
1440
1576
  mobileDeepLinking: "none" | "expo-linking";
1441
- rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco";
1442
- rustFrontend: "none" | "leptos" | "dioxus";
1443
- rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
1444
- rustApi: "none" | "tonic" | "async-graphql";
1577
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1578
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1579
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1580
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1445
1581
  rustCli: "none" | "clap" | "ratatui";
1446
- rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta")[];
1582
+ rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta" | "rand" | "regex" | "rayon" | "itertools" | "rstest" | "cargo-nextest" | "cargo-audit")[];
1447
1583
  rustLogging: "none" | "tracing" | "env-logger";
1448
1584
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1449
1585
  rustCaching: "none" | "redis" | "moka";
1450
- rustAuth: "none" | "oauth2" | "torii";
1586
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1451
1587
  rustRealtime: "none" | "tokio-tungstenite";
1452
- rustMessageQueue: "none" | "lapin";
1453
- rustObservability: "none" | "opentelemetry";
1454
- rustTemplating: "none" | "askama" | "tera";
1588
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1589
+ rustObservability: "none" | "opentelemetry" | "metrics";
1590
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1455
1591
  pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1456
1592
  pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1457
1593
  pythonValidation: "none" | "pydantic";
1458
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1594
+ pythonAi: ("none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1459
1595
  pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1460
1596
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1461
1597
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
@@ -1466,18 +1602,24 @@ declare const router: {
1466
1602
  pythonRealtime: "none" | "python-socketio" | "websockets";
1467
1603
  pythonObservability: "none" | "opentelemetry";
1468
1604
  pythonCli: ("none" | "typer" | "click" | "rich")[];
1469
- goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib";
1470
- goOrm: "none" | "bun" | "gorm" | "sqlc" | "ent";
1471
- goApi: "none" | "grpc-go" | "gqlgen";
1605
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1606
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1607
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1472
1608
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1473
1609
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1474
- goAuth: "none" | "jwt" | "casbin" | "goth";
1475
- goTesting: ("none" | "testify" | "gomock")[];
1610
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1611
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1476
1612
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1477
- goMessageQueue: "none" | "nats" | "watermill";
1613
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1478
1614
  goCaching: "none" | "redis" | "ristretto";
1479
1615
  goConfig: "none" | "viper" | "koanf";
1480
- goObservability: "none" | "opentelemetry";
1616
+ goObservability: "none" | "opentelemetry" | "prometheus";
1617
+ goValidation: "none" | "validator";
1618
+ goQuality: "none" | "golangci-lint";
1619
+ goMigrations: "none" | "golang-migrate";
1620
+ goTemplating: "none" | "templ";
1621
+ goProtoTooling: "none" | "buf";
1622
+ goDI: "none" | "fx";
1481
1623
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1482
1624
  javaBuildTool: "none" | "maven" | "gradle";
1483
1625
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
@@ -1485,7 +1627,7 @@ declare const router: {
1485
1627
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1486
1628
  javaLogging: "none" | "logback" | "log4j2";
1487
1629
  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")[];
1488
- javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1630
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1489
1631
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1490
1632
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1491
1633
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1498,24 +1640,29 @@ declare const router: {
1498
1640
  dotnetCaching: "none" | "redis" | "memory-cache";
1499
1641
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1500
1642
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1501
- elixirOrm: "none" | "ecto" | "ecto-sql";
1502
- elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1503
- elixirApi: "none" | "grpc" | "rest" | "absinthe";
1643
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1644
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1645
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1504
1646
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1505
1647
  elixirJobs: "none" | "oban" | "quantum";
1506
1648
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1507
- elixirHttp: "none" | "req" | "finch";
1649
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1508
1650
  elixirJson: "none" | "jason";
1509
- elixirEmail: "none" | "swoosh";
1510
- elixirCaching: "none" | "cachex" | "nebulex";
1511
- elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1512
- elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1513
- elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1651
+ elixirEmail: "none" | "swoosh" | "bamboo";
1652
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1653
+ elixirObservability: "none" | "opentelemetry" | "sentry" | "telemetry" | "prom_ex";
1654
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1655
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1656
+ elixirI18n: "none" | "gettext";
1657
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1658
+ elixirApplicationFramework: "none" | "ash";
1659
+ elixirDocumentation: "none" | "ex_doc";
1660
+ elixirClustering: "none" | "libcluster";
1514
1661
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1515
- elixirLibraries: ("none" | "nx" | "broadway")[];
1662
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1516
1663
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1517
1664
  workspaceShape?: "monorepo" | "single-app" | undefined;
1518
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1665
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1519
1666
  shadcnBase?: "radix" | "base" | undefined;
1520
1667
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1521
1668
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1526,7 +1673,7 @@ declare const router: {
1526
1673
  javaLanguage?: "java" | "kotlin" | undefined;
1527
1674
  stackParts?: {
1528
1675
  id: string;
1529
- role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "push" | "mobile" | "graphql" | "deploy" | "navigation" | "ui" | "css" | "storage" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1676
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "mobile" | "graphql" | "deploy" | "migrations" | "navigation" | "ui" | "css" | "storage" | "push" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1530
1677
  toolId: string;
1531
1678
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1532
1679
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1558,11 +1705,11 @@ declare const router: {
1558
1705
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1559
1706
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1560
1707
  runtime: "none" | "bun" | "node" | "workers";
1561
- 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")[];
1562
- 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" | "devcontainer" | "docker-compose" | "github-actions")[];
1708
+ frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "vanilla-vite" | "vue" | "tanstack-start" | "next" | "vinext" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
1709
+ 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" | "devcontainer" | "docker-compose" | "github-actions" | "eslint" | "prettier" | "axios" | "firebase" | "graphql-codegen" | "openapi-typescript" | "apollo-client" | "electron" | "capacitor")[];
1563
1710
  examples: ("ai" | "none" | "chat-sdk" | "tanstack-showcase")[];
1564
- auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde";
1565
- payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo" | "creem" | "autumn" | "commet";
1711
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1712
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1566
1713
  git: boolean;
1567
1714
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1568
1715
  versionChannel: "stable" | "latest" | "beta";
@@ -1571,24 +1718,24 @@ declare const router: {
1571
1718
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1572
1719
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1573
1720
  serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1574
- ai: "none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1721
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1575
1722
  effect: "effect" | "none" | "effect-full";
1576
1723
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1577
1724
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1578
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1725
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1579
1726
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1580
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1727
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1581
1728
  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";
1582
1729
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1583
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1730
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1584
1731
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1585
1732
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1586
1733
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1587
1734
  logging: "none" | "pino" | "winston" | "evlog";
1588
1735
  observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1589
1736
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1590
- analytics: "none" | "posthog" | "plausible" | "umami";
1591
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1737
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1738
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1592
1739
  caching: "none" | "redis" | "upstash-redis";
1593
1740
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1594
1741
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1602,24 +1749,24 @@ declare const router: {
1602
1749
  mobilePush: "none" | "expo-notifications";
1603
1750
  mobileOTA: "none" | "expo-updates";
1604
1751
  mobileDeepLinking: "none" | "expo-linking";
1605
- rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco";
1606
- rustFrontend: "none" | "leptos" | "dioxus";
1607
- rustOrm: "none" | "sea-orm" | "sqlx" | "diesel";
1608
- rustApi: "none" | "tonic" | "async-graphql";
1752
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1753
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1754
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1755
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1609
1756
  rustCli: "none" | "clap" | "ratatui";
1610
- rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta")[];
1757
+ rustLibraries: ("config" | "none" | "serde" | "uuid" | "chrono" | "reqwest" | "dashmap" | "parking-lot" | "secrecy" | "tokio-util" | "utoipa" | "validator" | "jsonwebtoken" | "argon2" | "tokio-test" | "mockall" | "proptest" | "insta" | "rand" | "regex" | "rayon" | "itertools" | "rstest" | "cargo-nextest" | "cargo-audit")[];
1611
1758
  rustLogging: "none" | "tracing" | "env-logger";
1612
1759
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1613
1760
  rustCaching: "none" | "redis" | "moka";
1614
- rustAuth: "none" | "oauth2" | "torii";
1761
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1615
1762
  rustRealtime: "none" | "tokio-tungstenite";
1616
- rustMessageQueue: "none" | "lapin";
1617
- rustObservability: "none" | "opentelemetry";
1618
- rustTemplating: "none" | "askama" | "tera";
1763
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1764
+ rustObservability: "none" | "opentelemetry" | "metrics";
1765
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1619
1766
  pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1620
1767
  pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1621
1768
  pythonValidation: "none" | "pydantic";
1622
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1769
+ pythonAi: ("none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1623
1770
  pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1624
1771
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1625
1772
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
@@ -1630,18 +1777,24 @@ declare const router: {
1630
1777
  pythonRealtime: "none" | "python-socketio" | "websockets";
1631
1778
  pythonObservability: "none" | "opentelemetry";
1632
1779
  pythonCli: ("none" | "typer" | "click" | "rich")[];
1633
- goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib";
1634
- goOrm: "none" | "bun" | "gorm" | "sqlc" | "ent";
1635
- goApi: "none" | "grpc-go" | "gqlgen";
1780
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1781
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1782
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1636
1783
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1637
1784
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1638
- goAuth: "none" | "jwt" | "casbin" | "goth";
1639
- goTesting: ("none" | "testify" | "gomock")[];
1785
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1786
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1640
1787
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1641
- goMessageQueue: "none" | "nats" | "watermill";
1788
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1642
1789
  goCaching: "none" | "redis" | "ristretto";
1643
1790
  goConfig: "none" | "viper" | "koanf";
1644
- goObservability: "none" | "opentelemetry";
1791
+ goObservability: "none" | "opentelemetry" | "prometheus";
1792
+ goValidation: "none" | "validator";
1793
+ goQuality: "none" | "golangci-lint";
1794
+ goMigrations: "none" | "golang-migrate";
1795
+ goTemplating: "none" | "templ";
1796
+ goProtoTooling: "none" | "buf";
1797
+ goDI: "none" | "fx";
1645
1798
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1646
1799
  javaBuildTool: "none" | "maven" | "gradle";
1647
1800
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
@@ -1649,7 +1802,7 @@ declare const router: {
1649
1802
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1650
1803
  javaLogging: "none" | "logback" | "log4j2";
1651
1804
  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")[];
1652
- javaTestingLibraries: ("none" | "junit5" | "mockito" | "testcontainers" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1805
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1653
1806
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1654
1807
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1655
1808
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1662,24 +1815,29 @@ declare const router: {
1662
1815
  dotnetCaching: "none" | "redis" | "memory-cache";
1663
1816
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1664
1817
  elixirWebFramework: "none" | "phoenix" | "phoenix-live-view";
1665
- elixirOrm: "none" | "ecto" | "ecto-sql";
1666
- elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian";
1667
- elixirApi: "none" | "grpc" | "rest" | "absinthe";
1818
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1819
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1820
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1668
1821
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1669
1822
  elixirJobs: "none" | "oban" | "quantum";
1670
1823
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1671
- elixirHttp: "none" | "req" | "finch";
1824
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1672
1825
  elixirJson: "none" | "jason";
1673
- elixirEmail: "none" | "swoosh";
1674
- elixirCaching: "none" | "cachex" | "nebulex";
1675
- elixirObservability: "none" | "opentelemetry" | "telemetry" | "prom_ex";
1676
- elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby";
1677
- elixirQuality: "none" | "credo" | "dialyxir" | "sobelow";
1826
+ elixirEmail: "none" | "swoosh" | "bamboo";
1827
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1828
+ elixirObservability: "none" | "opentelemetry" | "sentry" | "telemetry" | "prom_ex";
1829
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1830
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1831
+ elixirI18n: "none" | "gettext";
1832
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1833
+ elixirApplicationFramework: "none" | "ash";
1834
+ elixirDocumentation: "none" | "ex_doc";
1835
+ elixirClustering: "none" | "libcluster";
1678
1836
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1679
- elixirLibraries: ("none" | "nx" | "broadway")[];
1837
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1680
1838
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1681
1839
  workspaceShape?: "monorepo" | "single-app" | undefined;
1682
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1840
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1683
1841
  shadcnBase?: "radix" | "base" | undefined;
1684
1842
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1685
1843
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1690,7 +1848,7 @@ declare const router: {
1690
1848
  javaLanguage?: "java" | "kotlin" | undefined;
1691
1849
  stackParts?: {
1692
1850
  id: string;
1693
- role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "push" | "mobile" | "graphql" | "deploy" | "navigation" | "ui" | "css" | "storage" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1851
+ role: "api" | "runtime" | "backend" | "database" | "orm" | "dbSetup" | "auth" | "payments" | "email" | "fileUpload" | "logging" | "observability" | "stateManagement" | "forms" | "validation" | "testing" | "realtime" | "jobQueue" | "caching" | "rateLimit" | "i18n" | "search" | "vectorDb" | "fileStorage" | "animation" | "cms" | "featureFlags" | "analytics" | "codeQuality" | "documentation" | "examples" | "ai" | "effect" | "config" | "frontend" | "mobile" | "graphql" | "deploy" | "migrations" | "navigation" | "ui" | "css" | "storage" | "push" | "ota" | "deepLinking" | "appPlatform" | "dataFetching" | "workspaceTooling" | "language" | "buildTool" | "cli" | "errorHandling" | "httpClient" | "libraries" | "templating";
1694
1852
  toolId: string;
1695
1853
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1696
1854
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1742,10 +1900,10 @@ declare const router: {
1742
1900
  }>>;
1743
1901
  astroIntegration: z.ZodOptional<z.ZodEnum<{
1744
1902
  none: "none";
1903
+ vue: "vue";
1745
1904
  svelte: "svelte";
1746
1905
  solid: "solid";
1747
1906
  react: "react";
1748
- vue: "vue";
1749
1907
  }>>;
1750
1908
  runtime: z.ZodOptional<z.ZodEnum<{
1751
1909
  none: "none";
@@ -1754,13 +1912,13 @@ declare const router: {
1754
1912
  workers: "workers";
1755
1913
  }>>;
1756
1914
  backend: z.ZodOptional<z.ZodEnum<{
1757
- effect: "effect";
1758
1915
  none: "none";
1759
1916
  hono: "hono";
1760
1917
  express: "express";
1761
1918
  fastify: "fastify";
1762
1919
  elysia: "elysia";
1763
1920
  fets: "fets";
1921
+ effect: "effect";
1764
1922
  nestjs: "nestjs";
1765
1923
  adonisjs: "adonisjs";
1766
1924
  nitro: "nitro";
@@ -1833,6 +1991,7 @@ declare const router: {
1833
1991
  auth0: "auth0";
1834
1992
  workos: "workos";
1835
1993
  kinde: "kinde";
1994
+ passport: "passport";
1836
1995
  }>>;
1837
1996
  payments: z.ZodOptional<z.ZodEnum<{
1838
1997
  none: "none";
@@ -1841,6 +2000,7 @@ declare const router: {
1841
2000
  stripe: "stripe";
1842
2001
  "lemon-squeezy": "lemon-squeezy";
1843
2002
  paddle: "paddle";
2003
+ paypal: "paypal";
1844
2004
  dodo: "dodo";
1845
2005
  creem: "creem";
1846
2006
  autumn: "autumn";
@@ -1915,11 +2075,13 @@ declare const router: {
1915
2075
  playwright: "playwright";
1916
2076
  "vitest-playwright": "vitest-playwright";
1917
2077
  jest: "jest";
2078
+ mocha: "mocha";
1918
2079
  cypress: "cypress";
1919
2080
  }>>;
1920
2081
  realtime: z.ZodOptional<z.ZodEnum<{
1921
2082
  none: "none";
1922
2083
  "socket-io": "socket-io";
2084
+ ws: "ws";
1923
2085
  partykit: "partykit";
1924
2086
  ably: "ably";
1925
2087
  pusher: "pusher";
@@ -1987,6 +2149,7 @@ declare const router: {
1987
2149
  scss: "scss";
1988
2150
  less: "less";
1989
2151
  "postcss-only": "postcss-only";
2152
+ "styled-components": "styled-components";
1990
2153
  }>>;
1991
2154
  uiLibrary: z.ZodOptional<z.ZodEnum<{
1992
2155
  none: "none";
@@ -2013,6 +2176,7 @@ declare const router: {
2013
2176
  tinacms: "tinacms";
2014
2177
  directus: "directus";
2015
2178
  keystatic: "keystatic";
2179
+ contentful: "contentful";
2016
2180
  }>>;
2017
2181
  featureFlags: z.ZodOptional<z.ZodEnum<{
2018
2182
  none: "none";
@@ -2027,6 +2191,7 @@ declare const router: {
2027
2191
  posthog: "posthog";
2028
2192
  plausible: "plausible";
2029
2193
  umami: "umami";
2194
+ ga4: "ga4";
2030
2195
  }>>;
2031
2196
  mobileNavigation: z.ZodOptional<z.ZodEnum<{
2032
2197
  none: "none";
@@ -2035,9 +2200,9 @@ declare const router: {
2035
2200
  }>>;
2036
2201
  mobileUI: z.ZodOptional<z.ZodEnum<{
2037
2202
  none: "none";
2203
+ uniwind: "uniwind";
2038
2204
  tamagui: "tamagui";
2039
2205
  "gluestack-ui": "gluestack-ui";
2040
- uniwind: "uniwind";
2041
2206
  unistyles: "unistyles";
2042
2207
  }>>;
2043
2208
  mobileStorage: z.ZodOptional<z.ZodEnum<{
@@ -2074,8 +2239,8 @@ declare const router: {
2074
2239
  beta: "beta";
2075
2240
  }>>;
2076
2241
  examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2077
- ai: "ai";
2078
2242
  none: "none";
2243
+ ai: "ai";
2079
2244
  "chat-sdk": "chat-sdk";
2080
2245
  "tanstack-showcase": "tanstack-showcase";
2081
2246
  }>>>;
@@ -2086,6 +2251,8 @@ declare const router: {
2086
2251
  voltagent: "voltagent";
2087
2252
  langgraph: "langgraph";
2088
2253
  "openai-agents": "openai-agents";
2254
+ "openai-sdk": "openai-sdk";
2255
+ "anthropic-sdk": "anthropic-sdk";
2089
2256
  "google-adk": "google-adk";
2090
2257
  modelfusion: "modelfusion";
2091
2258
  langchain: "langchain";
@@ -2101,8 +2268,8 @@ declare const router: {
2101
2268
  }>>>;
2102
2269
  install: z.ZodOptional<z.ZodBoolean>;
2103
2270
  effect: z.ZodOptional<z.ZodEnum<{
2104
- effect: "effect";
2105
2271
  none: "none";
2272
+ effect: "effect";
2106
2273
  "effect-full": "effect-full";
2107
2274
  }>>;
2108
2275
  shadcnBase: z.ZodOptional<z.ZodEnum<{
@@ -2171,8 +2338,8 @@ declare const router: {
2171
2338
  "geist-mono": "geist-mono";
2172
2339
  }>>;
2173
2340
  shadcnRadius: z.ZodOptional<z.ZodEnum<{
2174
- default: "default";
2175
2341
  none: "none";
2342
+ default: "default";
2176
2343
  small: "small";
2177
2344
  medium: "medium";
2178
2345
  large: "large";
@@ -2184,22 +2351,29 @@ declare const router: {
2184
2351
  rocket: "rocket";
2185
2352
  poem: "poem";
2186
2353
  loco: "loco";
2354
+ warp: "warp";
2355
+ salvo: "salvo";
2187
2356
  }>>;
2188
2357
  rustFrontend: z.ZodOptional<z.ZodEnum<{
2189
2358
  none: "none";
2190
2359
  leptos: "leptos";
2191
2360
  dioxus: "dioxus";
2361
+ yew: "yew";
2192
2362
  }>>;
2193
2363
  rustOrm: z.ZodOptional<z.ZodEnum<{
2194
2364
  none: "none";
2365
+ mongodb: "mongodb";
2195
2366
  "sea-orm": "sea-orm";
2196
2367
  sqlx: "sqlx";
2197
2368
  diesel: "diesel";
2369
+ rusqlite: "rusqlite";
2370
+ "tokio-postgres": "tokio-postgres";
2198
2371
  }>>;
2199
2372
  rustApi: z.ZodOptional<z.ZodEnum<{
2200
2373
  none: "none";
2201
2374
  tonic: "tonic";
2202
2375
  "async-graphql": "async-graphql";
2376
+ jsonrpsee: "jsonrpsee";
2203
2377
  }>>;
2204
2378
  rustCli: z.ZodOptional<z.ZodEnum<{
2205
2379
  none: "none";
@@ -2207,12 +2381,12 @@ declare const router: {
2207
2381
  ratatui: "ratatui";
2208
2382
  }>>;
2209
2383
  rustLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2210
- config: "config";
2211
2384
  none: "none";
2212
2385
  serde: "serde";
2213
2386
  uuid: "uuid";
2214
2387
  chrono: "chrono";
2215
2388
  reqwest: "reqwest";
2389
+ config: "config";
2216
2390
  dashmap: "dashmap";
2217
2391
  "parking-lot": "parking-lot";
2218
2392
  secrecy: "secrecy";
@@ -2225,6 +2399,13 @@ declare const router: {
2225
2399
  mockall: "mockall";
2226
2400
  proptest: "proptest";
2227
2401
  insta: "insta";
2402
+ rand: "rand";
2403
+ regex: "regex";
2404
+ rayon: "rayon";
2405
+ itertools: "itertools";
2406
+ rstest: "rstest";
2407
+ "cargo-nextest": "cargo-nextest";
2408
+ "cargo-audit": "cargo-audit";
2228
2409
  }>>>;
2229
2410
  rustLogging: z.ZodOptional<z.ZodEnum<{
2230
2411
  none: "none";
@@ -2245,6 +2426,8 @@ declare const router: {
2245
2426
  none: "none";
2246
2427
  oauth2: "oauth2";
2247
2428
  torii: "torii";
2429
+ openidconnect: "openidconnect";
2430
+ "tower-sessions": "tower-sessions";
2248
2431
  }>>;
2249
2432
  rustRealtime: z.ZodOptional<z.ZodEnum<{
2250
2433
  none: "none";
@@ -2253,15 +2436,19 @@ declare const router: {
2253
2436
  rustMessageQueue: z.ZodOptional<z.ZodEnum<{
2254
2437
  none: "none";
2255
2438
  lapin: "lapin";
2439
+ rdkafka: "rdkafka";
2440
+ "async-nats": "async-nats";
2256
2441
  }>>;
2257
2442
  rustObservability: z.ZodOptional<z.ZodEnum<{
2258
2443
  none: "none";
2259
2444
  opentelemetry: "opentelemetry";
2445
+ metrics: "metrics";
2260
2446
  }>>;
2261
2447
  rustTemplating: z.ZodOptional<z.ZodEnum<{
2262
2448
  none: "none";
2263
2449
  askama: "askama";
2264
2450
  tera: "tera";
2451
+ minijinja: "minijinja";
2265
2452
  }>>;
2266
2453
  pythonWebFramework: z.ZodOptional<z.ZodEnum<{
2267
2454
  none: "none";
@@ -2285,11 +2472,11 @@ declare const router: {
2285
2472
  pythonAi: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2286
2473
  none: "none";
2287
2474
  langgraph: "langgraph";
2475
+ "openai-sdk": "openai-sdk";
2476
+ "anthropic-sdk": "anthropic-sdk";
2288
2477
  "google-adk": "google-adk";
2289
2478
  langchain: "langchain";
2290
2479
  llamaindex: "llamaindex";
2291
- "openai-sdk": "openai-sdk";
2292
- "anthropic-sdk": "anthropic-sdk";
2293
2480
  crewai: "crewai";
2294
2481
  haystack: "haystack";
2295
2482
  "pydantic-ai": "pydantic-ai";
@@ -2357,10 +2544,14 @@ declare const router: {
2357
2544
  fiber: "fiber";
2358
2545
  chi: "chi";
2359
2546
  stdlib: "stdlib";
2547
+ "go-zero": "go-zero";
2548
+ kratos: "kratos";
2549
+ httprouter: "httprouter";
2360
2550
  }>>;
2361
2551
  goOrm: z.ZodOptional<z.ZodEnum<{
2362
2552
  none: "none";
2363
2553
  bun: "bun";
2554
+ sqlx: "sqlx";
2364
2555
  gorm: "gorm";
2365
2556
  sqlc: "sqlc";
2366
2557
  ent: "ent";
@@ -2369,6 +2560,9 @@ declare const router: {
2369
2560
  none: "none";
2370
2561
  "grpc-go": "grpc-go";
2371
2562
  gqlgen: "gqlgen";
2563
+ "grpc-gateway": "grpc-gateway";
2564
+ "connect-go": "connect-go";
2565
+ "oapi-codegen": "oapi-codegen";
2372
2566
  }>>;
2373
2567
  goCli: z.ZodOptional<z.ZodEnum<{
2374
2568
  none: "none";
@@ -2385,6 +2579,7 @@ declare const router: {
2385
2579
  }>>;
2386
2580
  goAuth: z.ZodOptional<z.ZodEnum<{
2387
2581
  none: "none";
2582
+ oauth2: "oauth2";
2388
2583
  jwt: "jwt";
2389
2584
  casbin: "casbin";
2390
2585
  goth: "goth";
@@ -2393,6 +2588,9 @@ declare const router: {
2393
2588
  none: "none";
2394
2589
  testify: "testify";
2395
2590
  gomock: "gomock";
2591
+ testcontainers: "testcontainers";
2592
+ "ginkgo-gomega": "ginkgo-gomega";
2593
+ mockery: "mockery";
2396
2594
  }>>>;
2397
2595
  goRealtime: z.ZodOptional<z.ZodEnum<{
2398
2596
  none: "none";
@@ -2403,6 +2601,8 @@ declare const router: {
2403
2601
  none: "none";
2404
2602
  nats: "nats";
2405
2603
  watermill: "watermill";
2604
+ "kafka-go": "kafka-go";
2605
+ asynq: "asynq";
2406
2606
  }>>;
2407
2607
  goCaching: z.ZodOptional<z.ZodEnum<{
2408
2608
  none: "none";
@@ -2417,6 +2617,31 @@ declare const router: {
2417
2617
  goObservability: z.ZodOptional<z.ZodEnum<{
2418
2618
  none: "none";
2419
2619
  opentelemetry: "opentelemetry";
2620
+ prometheus: "prometheus";
2621
+ }>>;
2622
+ goValidation: z.ZodOptional<z.ZodEnum<{
2623
+ none: "none";
2624
+ validator: "validator";
2625
+ }>>;
2626
+ goQuality: z.ZodOptional<z.ZodEnum<{
2627
+ none: "none";
2628
+ "golangci-lint": "golangci-lint";
2629
+ }>>;
2630
+ goMigrations: z.ZodOptional<z.ZodEnum<{
2631
+ none: "none";
2632
+ "golang-migrate": "golang-migrate";
2633
+ }>>;
2634
+ goTemplating: z.ZodOptional<z.ZodEnum<{
2635
+ none: "none";
2636
+ templ: "templ";
2637
+ }>>;
2638
+ goProtoTooling: z.ZodOptional<z.ZodEnum<{
2639
+ none: "none";
2640
+ buf: "buf";
2641
+ }>>;
2642
+ goDI: z.ZodOptional<z.ZodEnum<{
2643
+ none: "none";
2644
+ fx: "fx";
2420
2645
  }>>;
2421
2646
  javaLanguage: z.ZodOptional<z.ZodEnum<{
2422
2647
  java: "java";
@@ -2478,9 +2703,9 @@ declare const router: {
2478
2703
  }>>>;
2479
2704
  javaTestingLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2480
2705
  none: "none";
2706
+ testcontainers: "testcontainers";
2481
2707
  junit5: "junit5";
2482
2708
  mockito: "mockito";
2483
- testcontainers: "testcontainers";
2484
2709
  assertj: "assertj";
2485
2710
  "rest-assured": "rest-assured";
2486
2711
  wiremock: "wiremock";
@@ -2561,18 +2786,22 @@ declare const router: {
2561
2786
  none: "none";
2562
2787
  ecto: "ecto";
2563
2788
  "ecto-sql": "ecto-sql";
2789
+ myxql: "myxql";
2790
+ ecto_sqlite3: "ecto_sqlite3";
2564
2791
  }>>;
2565
2792
  elixirAuth: z.ZodOptional<z.ZodEnum<{
2566
2793
  none: "none";
2567
2794
  "phx-gen-auth": "phx-gen-auth";
2568
2795
  ueberauth: "ueberauth";
2569
2796
  guardian: "guardian";
2797
+ pow: "pow";
2570
2798
  }>>;
2571
2799
  elixirApi: z.ZodOptional<z.ZodEnum<{
2572
2800
  none: "none";
2573
2801
  grpc: "grpc";
2574
2802
  rest: "rest";
2575
2803
  absinthe: "absinthe";
2804
+ open_api_spex: "open_api_spex";
2576
2805
  }>>;
2577
2806
  elixirRealtime: z.ZodOptional<z.ZodEnum<{
2578
2807
  none: "none";
@@ -2595,6 +2824,7 @@ declare const router: {
2595
2824
  none: "none";
2596
2825
  req: "req";
2597
2826
  finch: "finch";
2827
+ tesla: "tesla";
2598
2828
  }>>;
2599
2829
  elixirJson: z.ZodOptional<z.ZodEnum<{
2600
2830
  none: "none";
@@ -2603,15 +2833,18 @@ declare const router: {
2603
2833
  elixirEmail: z.ZodOptional<z.ZodEnum<{
2604
2834
  none: "none";
2605
2835
  swoosh: "swoosh";
2836
+ bamboo: "bamboo";
2606
2837
  }>>;
2607
2838
  elixirCaching: z.ZodOptional<z.ZodEnum<{
2608
2839
  none: "none";
2609
2840
  cachex: "cachex";
2610
2841
  nebulex: "nebulex";
2842
+ redix: "redix";
2611
2843
  }>>;
2612
2844
  elixirObservability: z.ZodOptional<z.ZodEnum<{
2613
2845
  none: "none";
2614
2846
  opentelemetry: "opentelemetry";
2847
+ sentry: "sentry";
2615
2848
  telemetry: "telemetry";
2616
2849
  prom_ex: "prom_ex";
2617
2850
  }>>;
@@ -2621,12 +2854,37 @@ declare const router: {
2621
2854
  mox: "mox";
2622
2855
  bypass: "bypass";
2623
2856
  wallaby: "wallaby";
2857
+ stream_data: "stream_data";
2858
+ ex_machina: "ex_machina";
2624
2859
  }>>;
2625
2860
  elixirQuality: z.ZodOptional<z.ZodEnum<{
2626
2861
  none: "none";
2627
2862
  credo: "credo";
2628
2863
  dialyxir: "dialyxir";
2629
2864
  sobelow: "sobelow";
2865
+ excoveralls: "excoveralls";
2866
+ mix_audit: "mix_audit";
2867
+ }>>;
2868
+ elixirI18n: z.ZodOptional<z.ZodEnum<{
2869
+ none: "none";
2870
+ gettext: "gettext";
2871
+ }>>;
2872
+ elixirHttpServer: z.ZodOptional<z.ZodEnum<{
2873
+ none: "none";
2874
+ bandit: "bandit";
2875
+ cowboy: "cowboy";
2876
+ }>>;
2877
+ elixirApplicationFramework: z.ZodOptional<z.ZodEnum<{
2878
+ none: "none";
2879
+ ash: "ash";
2880
+ }>>;
2881
+ elixirDocumentation: z.ZodOptional<z.ZodEnum<{
2882
+ none: "none";
2883
+ ex_doc: "ex_doc";
2884
+ }>>;
2885
+ elixirClustering: z.ZodOptional<z.ZodEnum<{
2886
+ none: "none";
2887
+ libcluster: "libcluster";
2630
2888
  }>>;
2631
2889
  elixirDeploy: z.ZodOptional<z.ZodEnum<{
2632
2890
  none: "none";
@@ -2639,6 +2897,9 @@ declare const router: {
2639
2897
  none: "none";
2640
2898
  nx: "nx";
2641
2899
  broadway: "broadway";
2900
+ ex_aws: "ex_aws";
2901
+ floki: "floki";
2902
+ rustler: "rustler";
2642
2903
  }>>>;
2643
2904
  part: z.ZodOptional<z.ZodArray<z.ZodString>>;
2644
2905
  dryRun: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -2657,6 +2918,8 @@ declare const router: {
2657
2918
  "tanstack-router": "tanstack-router";
2658
2919
  "react-router": "react-router";
2659
2920
  "react-vite": "react-vite";
2921
+ "vanilla-vite": "vanilla-vite";
2922
+ vue: "vue";
2660
2923
  "tanstack-start": "tanstack-start";
2661
2924
  next: "next";
2662
2925
  vinext: "vinext";
@@ -2703,6 +2966,15 @@ declare const router: {
2703
2966
  devcontainer: "devcontainer";
2704
2967
  "docker-compose": "docker-compose";
2705
2968
  "github-actions": "github-actions";
2969
+ eslint: "eslint";
2970
+ prettier: "prettier";
2971
+ axios: "axios";
2972
+ firebase: "firebase";
2973
+ "graphql-codegen": "graphql-codegen";
2974
+ "openapi-typescript": "openapi-typescript";
2975
+ "apollo-client": "apollo-client";
2976
+ electron: "electron";
2977
+ capacitor: "capacitor";
2706
2978
  }>>>;
2707
2979
  projectDir: z.ZodOptional<z.ZodString>;
2708
2980
  acknowledgeArchitectureChange: z.ZodOptional<z.ZodBoolean>;
@@ -2882,8 +3154,14 @@ type Frontend = import__better_fullstack_types.Frontend;
2882
3154
  type GoApi = import__better_fullstack_types.GoApi;
2883
3155
  type GoAuth = import__better_fullstack_types.GoAuth;
2884
3156
  type GoCli = import__better_fullstack_types.GoCli;
3157
+ type GoDI = import__better_fullstack_types.GoDI;
2885
3158
  type GoLogging = import__better_fullstack_types.GoLogging;
3159
+ type GoMigrations = import__better_fullstack_types.GoMigrations;
2886
3160
  type GoOrm = import__better_fullstack_types.GoOrm;
3161
+ type GoProtoTooling = import__better_fullstack_types.GoProtoTooling;
3162
+ type GoQuality = import__better_fullstack_types.GoQuality;
3163
+ type GoTemplating = import__better_fullstack_types.GoTemplating;
3164
+ type GoValidation = import__better_fullstack_types.GoValidation;
2887
3165
  type GoWebFramework = import__better_fullstack_types.GoWebFramework;
2888
3166
  type InitResult = import__better_fullstack_types.InitResult;
2889
3167
  type JavaAuth = import__better_fullstack_types.JavaAuth;
@@ -2915,4 +3193,4 @@ type ServerDeploy = import__better_fullstack_types.ServerDeploy;
2915
3193
  type Template = import__better_fullstack_types.Template;
2916
3194
  type UILibrary = import__better_fullstack_types.UILibrary;
2917
3195
  type WebDeploy = import__better_fullstack_types.WebDeploy;
2918
- 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, check, create, createBtsCli, createVirtual, docs, doctor, generateVirtualProject, history, router, sponsors, telemetry, update };
3196
+ 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 GoDI, type GoLogging, type GoMigrations, type GoOrm, type GoProtoTooling, type GoQuality, type GoTemplating, type GoValidation, 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, check, create, createBtsCli, createVirtual, docs, doctor, generateVirtualProject, history, router, sponsors, telemetry, update };