create-better-fullstack 2.1.8 → 2.3.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 (29) hide show
  1. package/README.md +4 -4
  2. package/dist/{add-handler-ztNjzoMN.mjs → add-handler-z4NCxoq6.mjs} +9 -8
  3. package/dist/addons-setup-COE1e1db.mjs +7 -0
  4. package/dist/{addons-setup-LaAj43NP.mjs → addons-setup-DKtiNexf.mjs} +1 -1
  5. package/dist/{analytics-DVltG11u.mjs → analytics-BD8hZvIj.mjs} +1 -1
  6. package/dist/{bts-config-DQVWvPDs.mjs → bts-config-Bwd6GB7B.mjs} +59 -0
  7. package/dist/cli.mjs +2 -2
  8. package/dist/command-exists-DtX9ldL8.mjs +15 -0
  9. package/dist/{config-processing-D9-F2Us9.mjs → config-processing-B-RT_mVE.mjs} +32 -3
  10. package/dist/{doctor-a4ca3SMd.mjs → doctor-LmNs-hDr.mjs} +4 -3
  11. package/dist/{file-formatter-gvmrpd-g.mjs → file-formatter-DxF56-mO.mjs} +550 -24
  12. package/dist/{gen-CCClL7Ve.mjs → gen-CQfQU0uZ.mjs} +1 -1
  13. package/dist/{generated-checks-BV9jol5h.mjs → generated-checks-BUcI5VM2.mjs} +55 -22
  14. package/dist/index.d.mts +741 -211
  15. package/dist/index.mjs +30 -9
  16. package/dist/{install-dependencies-RoUyaE8o.mjs → install-dependencies-CJiUklm3.mjs} +132 -23
  17. package/dist/{mcp-492OkjcS.mjs → mcp-BBammItk.mjs} +5 -5
  18. package/dist/mcp-entry.mjs +76 -236
  19. package/dist/{registry-DSf2CEaU.mjs → registry-D0JfLCoH.mjs} +1 -1
  20. package/dist/{run-T6g1jkfy.mjs → run-BAIeghcU.mjs} +1948 -318
  21. package/dist/run-CAl4L4uU.mjs +16 -0
  22. package/dist/scaffold-manifest-CQwvyttq.mjs +4 -0
  23. package/dist/{scaffold-manifest-Dyi0voqE.mjs → scaffold-manifest-Dr3Anmlf.mjs} +34 -5
  24. package/dist/{update-DJ8CI5KW.mjs → update-CnrBdWrh.mjs} +182 -25
  25. package/package.json +24 -7
  26. package/dist/addons-setup-DnLjAzTw.mjs +0 -7
  27. package/dist/run-CD8f7PHh.mjs +0 -15
  28. package/dist/scaffold-manifest-DGRyepdb.mjs +0 -4
  29. /package/dist/{update-deps-aD-iQw4U.mjs → update-deps-G3FgqBlW.mjs} +0 -0
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<{
@@ -320,11 +328,36 @@ declare const router: {
320
328
  none: "none";
321
329
  "expo-linking": "expo-linking";
322
330
  }>>;
331
+ mobileLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
332
+ none: "none";
333
+ "expo-sqlite": "expo-sqlite";
334
+ "expo-camera": "expo-camera";
335
+ "expo-image-picker": "expo-image-picker";
336
+ "expo-location": "expo-location";
337
+ "expo-sensors": "expo-sensors";
338
+ "expo-file-system": "expo-file-system";
339
+ "expo-image": "expo-image";
340
+ "expo-audio": "expo-audio";
341
+ "expo-video": "expo-video";
342
+ "expo-contacts": "expo-contacts";
343
+ "expo-calendar": "expo-calendar";
344
+ "expo-local-authentication": "expo-local-authentication";
345
+ "expo-sharing": "expo-sharing";
346
+ "expo-clipboard": "expo-clipboard";
347
+ "expo-task-manager": "expo-task-manager";
348
+ "expo-background-task": "expo-background-task";
349
+ "expo-maps": "expo-maps";
350
+ "expo-brightness": "expo-brightness";
351
+ "expo-battery": "expo-battery";
352
+ "expo-screen-capture": "expo-screen-capture";
353
+ }>>>;
323
354
  frontend: z.ZodOptional<z.ZodArray<z.ZodEnum<{
324
355
  none: "none";
325
356
  "tanstack-router": "tanstack-router";
326
357
  "react-router": "react-router";
327
358
  "react-vite": "react-vite";
359
+ "vanilla-vite": "vanilla-vite";
360
+ vue: "vue";
328
361
  "tanstack-start": "tanstack-start";
329
362
  next: "next";
330
363
  vinext: "vinext";
@@ -343,10 +376,10 @@ declare const router: {
343
376
  }>>>;
344
377
  astroIntegration: z.ZodOptional<z.ZodEnum<{
345
378
  none: "none";
379
+ vue: "vue";
346
380
  svelte: "svelte";
347
381
  solid: "solid";
348
382
  react: "react";
349
- vue: "vue";
350
383
  }>>;
351
384
  addons: z.ZodOptional<z.ZodArray<z.ZodEnum<{
352
385
  none: "none";
@@ -378,10 +411,19 @@ declare const router: {
378
411
  devcontainer: "devcontainer";
379
412
  "docker-compose": "docker-compose";
380
413
  "github-actions": "github-actions";
414
+ eslint: "eslint";
415
+ prettier: "prettier";
416
+ axios: "axios";
417
+ firebase: "firebase";
418
+ "graphql-codegen": "graphql-codegen";
419
+ "openapi-typescript": "openapi-typescript";
420
+ "apollo-client": "apollo-client";
421
+ electron: "electron";
422
+ capacitor: "capacitor";
381
423
  }>>>;
382
424
  examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
383
- ai: "ai";
384
425
  none: "none";
426
+ ai: "ai";
385
427
  "chat-sdk": "chat-sdk";
386
428
  "tanstack-showcase": "tanstack-showcase";
387
429
  }>>>;
@@ -415,13 +457,13 @@ declare const router: {
415
457
  docker: "docker";
416
458
  }>>;
417
459
  backend: z.ZodOptional<z.ZodEnum<{
418
- effect: "effect";
419
460
  none: "none";
420
461
  hono: "hono";
421
462
  express: "express";
422
463
  fastify: "fastify";
423
464
  elysia: "elysia";
424
465
  fets: "fets";
466
+ effect: "effect";
425
467
  nestjs: "nestjs";
426
468
  adonisjs: "adonisjs";
427
469
  nitro: "nitro";
@@ -451,6 +493,7 @@ declare const router: {
451
493
  scss: "scss";
452
494
  less: "less";
453
495
  "postcss-only": "postcss-only";
496
+ "styled-components": "styled-components";
454
497
  }>>;
455
498
  uiLibrary: z.ZodOptional<z.ZodEnum<{
456
499
  none: "none";
@@ -535,8 +578,8 @@ declare const router: {
535
578
  "geist-mono": "geist-mono";
536
579
  }>>;
537
580
  shadcnRadius: z.ZodOptional<z.ZodEnum<{
538
- default: "default";
539
581
  none: "none";
582
+ default: "default";
540
583
  small: "small";
541
584
  medium: "medium";
542
585
  large: "large";
@@ -564,10 +607,10 @@ declare const router: {
564
607
  vercel: "vercel";
565
608
  }>>;
566
609
  directoryConflict: z.ZodOptional<z.ZodEnum<{
567
- error: "error";
568
610
  merge: "merge";
569
611
  overwrite: "overwrite";
570
612
  increment: "increment";
613
+ error: "error";
571
614
  }>>;
572
615
  renderTitle: z.ZodOptional<z.ZodBoolean>;
573
616
  disableAnalytics: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -579,22 +622,29 @@ declare const router: {
579
622
  rocket: "rocket";
580
623
  poem: "poem";
581
624
  loco: "loco";
625
+ warp: "warp";
626
+ salvo: "salvo";
582
627
  }>>;
583
628
  rustFrontend: z.ZodOptional<z.ZodEnum<{
584
629
  none: "none";
585
630
  leptos: "leptos";
586
631
  dioxus: "dioxus";
632
+ yew: "yew";
587
633
  }>>;
588
634
  rustOrm: z.ZodOptional<z.ZodEnum<{
589
635
  none: "none";
636
+ mongodb: "mongodb";
590
637
  "sea-orm": "sea-orm";
591
638
  sqlx: "sqlx";
592
639
  diesel: "diesel";
640
+ rusqlite: "rusqlite";
641
+ "tokio-postgres": "tokio-postgres";
593
642
  }>>;
594
643
  rustApi: z.ZodOptional<z.ZodEnum<{
595
644
  none: "none";
596
645
  tonic: "tonic";
597
646
  "async-graphql": "async-graphql";
647
+ jsonrpsee: "jsonrpsee";
598
648
  }>>;
599
649
  rustCli: z.ZodOptional<z.ZodEnum<{
600
650
  none: "none";
@@ -602,12 +652,12 @@ declare const router: {
602
652
  ratatui: "ratatui";
603
653
  }>>;
604
654
  rustLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
605
- config: "config";
606
655
  none: "none";
607
656
  serde: "serde";
608
657
  uuid: "uuid";
609
658
  chrono: "chrono";
610
659
  reqwest: "reqwest";
660
+ config: "config";
611
661
  dashmap: "dashmap";
612
662
  "parking-lot": "parking-lot";
613
663
  secrecy: "secrecy";
@@ -620,6 +670,13 @@ declare const router: {
620
670
  mockall: "mockall";
621
671
  proptest: "proptest";
622
672
  insta: "insta";
673
+ rand: "rand";
674
+ regex: "regex";
675
+ rayon: "rayon";
676
+ itertools: "itertools";
677
+ rstest: "rstest";
678
+ "cargo-nextest": "cargo-nextest";
679
+ "cargo-audit": "cargo-audit";
623
680
  }>>>;
624
681
  rustLogging: z.ZodOptional<z.ZodEnum<{
625
682
  none: "none";
@@ -640,6 +697,8 @@ declare const router: {
640
697
  none: "none";
641
698
  oauth2: "oauth2";
642
699
  torii: "torii";
700
+ openidconnect: "openidconnect";
701
+ "tower-sessions": "tower-sessions";
643
702
  }>>;
644
703
  rustRealtime: z.ZodOptional<z.ZodEnum<{
645
704
  none: "none";
@@ -648,15 +707,19 @@ declare const router: {
648
707
  rustMessageQueue: z.ZodOptional<z.ZodEnum<{
649
708
  none: "none";
650
709
  lapin: "lapin";
710
+ rdkafka: "rdkafka";
711
+ "async-nats": "async-nats";
651
712
  }>>;
652
713
  rustObservability: z.ZodOptional<z.ZodEnum<{
653
714
  none: "none";
654
715
  opentelemetry: "opentelemetry";
716
+ metrics: "metrics";
655
717
  }>>;
656
718
  rustTemplating: z.ZodOptional<z.ZodEnum<{
657
719
  none: "none";
658
720
  askama: "askama";
659
721
  tera: "tera";
722
+ minijinja: "minijinja";
660
723
  }>>;
661
724
  pythonWebFramework: z.ZodOptional<z.ZodEnum<{
662
725
  none: "none";
@@ -665,6 +728,8 @@ declare const router: {
665
728
  flask: "flask";
666
729
  litestar: "litestar";
667
730
  starlette: "starlette";
731
+ aiohttp: "aiohttp";
732
+ streamlit: "streamlit";
668
733
  }>>;
669
734
  pythonOrm: z.ZodOptional<z.ZodEnum<{
670
735
  none: "none";
@@ -672,6 +737,7 @@ declare const router: {
672
737
  sqlmodel: "sqlmodel";
673
738
  "tortoise-orm": "tortoise-orm";
674
739
  peewee: "peewee";
740
+ pymongo: "pymongo";
675
741
  }>>;
676
742
  pythonValidation: z.ZodOptional<z.ZodEnum<{
677
743
  none: "none";
@@ -679,21 +745,27 @@ declare const router: {
679
745
  }>>;
680
746
  pythonAi: z.ZodOptional<z.ZodArray<z.ZodEnum<{
681
747
  none: "none";
748
+ mcp: "mcp";
682
749
  langgraph: "langgraph";
750
+ "openai-sdk": "openai-sdk";
751
+ "anthropic-sdk": "anthropic-sdk";
683
752
  "google-adk": "google-adk";
684
753
  langchain: "langchain";
685
754
  llamaindex: "llamaindex";
686
- "openai-sdk": "openai-sdk";
687
- "anthropic-sdk": "anthropic-sdk";
688
755
  crewai: "crewai";
689
756
  haystack: "haystack";
690
757
  "pydantic-ai": "pydantic-ai";
691
758
  smolagents: "smolagents";
759
+ pytorch: "pytorch";
760
+ transformers: "transformers";
761
+ "scikit-learn": "scikit-learn";
762
+ tensorflow: "tensorflow";
692
763
  }>>>;
693
764
  pythonAuth: z.ZodOptional<z.ZodEnum<{
694
765
  none: "none";
695
766
  authlib: "authlib";
696
767
  jwt: "jwt";
768
+ pyjwt: "pyjwt";
697
769
  "fastapi-users": "fastapi-users";
698
770
  }>>;
699
771
  pythonApi: z.ZodOptional<z.ZodEnum<{
@@ -724,6 +796,7 @@ declare const router: {
724
796
  none: "none";
725
797
  pytest: "pytest";
726
798
  hypothesis: "hypothesis";
799
+ "pytest-cov": "pytest-cov";
727
800
  }>>>;
728
801
  pythonCaching: z.ZodOptional<z.ZodEnum<{
729
802
  none: "none";
@@ -738,6 +811,7 @@ declare const router: {
738
811
  pythonObservability: z.ZodOptional<z.ZodEnum<{
739
812
  none: "none";
740
813
  opentelemetry: "opentelemetry";
814
+ "prometheus-client": "prometheus-client";
741
815
  }>>;
742
816
  pythonCli: z.ZodOptional<z.ZodArray<z.ZodEnum<{
743
817
  none: "none";
@@ -745,6 +819,37 @@ declare const router: {
745
819
  click: "click";
746
820
  rich: "rich";
747
821
  }>>>;
822
+ pythonCloudSdk: z.ZodOptional<z.ZodEnum<{
823
+ none: "none";
824
+ boto3: "boto3";
825
+ }>>;
826
+ pythonHttpClient: z.ZodOptional<z.ZodEnum<{
827
+ none: "none";
828
+ requests: "requests";
829
+ }>>;
830
+ pythonData: z.ZodOptional<z.ZodArray<z.ZodEnum<{
831
+ none: "none";
832
+ numpy: "numpy";
833
+ pandas: "pandas";
834
+ scipy: "scipy";
835
+ }>>>;
836
+ pythonMedia: z.ZodOptional<z.ZodEnum<{
837
+ none: "none";
838
+ pillow: "pillow";
839
+ }>>;
840
+ pythonServer: z.ZodOptional<z.ZodEnum<{
841
+ none: "none";
842
+ gunicorn: "gunicorn";
843
+ }>>;
844
+ pythonPackageManager: z.ZodOptional<z.ZodEnum<{
845
+ none: "none";
846
+ uv: "uv";
847
+ poetry: "poetry";
848
+ }>>;
849
+ pythonMessageQueue: z.ZodOptional<z.ZodEnum<{
850
+ none: "none";
851
+ "confluent-kafka": "confluent-kafka";
852
+ }>>;
748
853
  goWebFramework: z.ZodOptional<z.ZodEnum<{
749
854
  none: "none";
750
855
  gin: "gin";
@@ -752,10 +857,14 @@ declare const router: {
752
857
  fiber: "fiber";
753
858
  chi: "chi";
754
859
  stdlib: "stdlib";
860
+ "go-zero": "go-zero";
861
+ kratos: "kratos";
862
+ httprouter: "httprouter";
755
863
  }>>;
756
864
  goOrm: z.ZodOptional<z.ZodEnum<{
757
865
  none: "none";
758
866
  bun: "bun";
867
+ sqlx: "sqlx";
759
868
  gorm: "gorm";
760
869
  sqlc: "sqlc";
761
870
  ent: "ent";
@@ -764,6 +873,9 @@ declare const router: {
764
873
  none: "none";
765
874
  "grpc-go": "grpc-go";
766
875
  gqlgen: "gqlgen";
876
+ "grpc-gateway": "grpc-gateway";
877
+ "connect-go": "connect-go";
878
+ "oapi-codegen": "oapi-codegen";
767
879
  }>>;
768
880
  goCli: z.ZodOptional<z.ZodEnum<{
769
881
  none: "none";
@@ -780,6 +892,7 @@ declare const router: {
780
892
  }>>;
781
893
  goAuth: z.ZodOptional<z.ZodEnum<{
782
894
  none: "none";
895
+ oauth2: "oauth2";
783
896
  jwt: "jwt";
784
897
  casbin: "casbin";
785
898
  goth: "goth";
@@ -788,6 +901,9 @@ declare const router: {
788
901
  none: "none";
789
902
  testify: "testify";
790
903
  gomock: "gomock";
904
+ testcontainers: "testcontainers";
905
+ "ginkgo-gomega": "ginkgo-gomega";
906
+ mockery: "mockery";
791
907
  }>>>;
792
908
  goRealtime: z.ZodOptional<z.ZodEnum<{
793
909
  none: "none";
@@ -798,6 +914,8 @@ declare const router: {
798
914
  none: "none";
799
915
  nats: "nats";
800
916
  watermill: "watermill";
917
+ "kafka-go": "kafka-go";
918
+ asynq: "asynq";
801
919
  }>>;
802
920
  goCaching: z.ZodOptional<z.ZodEnum<{
803
921
  none: "none";
@@ -812,6 +930,31 @@ declare const router: {
812
930
  goObservability: z.ZodOptional<z.ZodEnum<{
813
931
  none: "none";
814
932
  opentelemetry: "opentelemetry";
933
+ prometheus: "prometheus";
934
+ }>>;
935
+ goValidation: z.ZodOptional<z.ZodEnum<{
936
+ none: "none";
937
+ validator: "validator";
938
+ }>>;
939
+ goQuality: z.ZodOptional<z.ZodEnum<{
940
+ none: "none";
941
+ "golangci-lint": "golangci-lint";
942
+ }>>;
943
+ goMigrations: z.ZodOptional<z.ZodEnum<{
944
+ none: "none";
945
+ "golang-migrate": "golang-migrate";
946
+ }>>;
947
+ goTemplating: z.ZodOptional<z.ZodEnum<{
948
+ none: "none";
949
+ templ: "templ";
950
+ }>>;
951
+ goProtoTooling: z.ZodOptional<z.ZodEnum<{
952
+ none: "none";
953
+ buf: "buf";
954
+ }>>;
955
+ goDI: z.ZodOptional<z.ZodEnum<{
956
+ none: "none";
957
+ fx: "fx";
815
958
  }>>;
816
959
  javaWebFramework: z.ZodOptional<z.ZodEnum<{
817
960
  none: "none";
@@ -870,12 +1013,32 @@ declare const router: {
870
1013
  thymeleaf: "thymeleaf";
871
1014
  "spring-amqp": "spring-amqp";
872
1015
  "opentelemetry-java": "opentelemetry-java";
1016
+ "spring-data-redis": "spring-data-redis";
1017
+ "spring-data-mongodb": "spring-data-mongodb";
1018
+ "spring-data-elasticsearch": "spring-data-elasticsearch";
1019
+ "spring-data-neo4j": "spring-data-neo4j";
1020
+ "spring-data-cassandra": "spring-data-cassandra";
1021
+ "spring-data-couchbase": "spring-data-couchbase";
1022
+ "spring-data-jdbc": "spring-data-jdbc";
1023
+ "spring-data-rest": "spring-data-rest";
1024
+ "spring-quartz": "spring-quartz";
1025
+ "spring-pulsar": "spring-pulsar";
1026
+ "spring-integration": "spring-integration";
1027
+ "spring-websocket": "spring-websocket";
1028
+ "spring-rsocket": "spring-rsocket";
1029
+ "spring-hateoas": "spring-hateoas";
1030
+ "spring-session-redis": "spring-session-redis";
1031
+ "spring-session-jdbc": "spring-session-jdbc";
1032
+ "spring-ldap": "spring-ldap";
1033
+ "spring-oauth2-client": "spring-oauth2-client";
1034
+ "spring-saml2": "spring-saml2";
1035
+ "spring-restclient": "spring-restclient";
873
1036
  }>>>;
874
1037
  javaTestingLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
875
1038
  none: "none";
1039
+ testcontainers: "testcontainers";
876
1040
  junit5: "junit5";
877
1041
  mockito: "mockito";
878
- testcontainers: "testcontainers";
879
1042
  assertj: "assertj";
880
1043
  "rest-assured": "rest-assured";
881
1044
  wiremock: "wiremock";
@@ -947,6 +1110,29 @@ declare const router: {
947
1110
  azure: "azure";
948
1111
  aws: "aws";
949
1112
  }>>;
1113
+ dotnetLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1114
+ none: "none";
1115
+ sentry: "sentry";
1116
+ automapper: "automapper";
1117
+ mediatr: "mediatr";
1118
+ fastendpoints: "fastendpoints";
1119
+ "api-versioning": "api-versioning";
1120
+ scalar: "scalar";
1121
+ polly: "polly";
1122
+ masstransit: "masstransit";
1123
+ rebus: "rebus";
1124
+ coravel: "coravel";
1125
+ "magic-onion": "magic-onion";
1126
+ "prometheus-net": "prometheus-net";
1127
+ seq: "seq";
1128
+ "application-insights": "application-insights";
1129
+ "mongodb-driver": "mongodb-driver";
1130
+ nhibernate: "nhibernate";
1131
+ mapster: "mapster";
1132
+ scrutor: "scrutor";
1133
+ refit: "refit";
1134
+ "fluent-email": "fluent-email";
1135
+ }>>>;
950
1136
  elixirWebFramework: z.ZodOptional<z.ZodEnum<{
951
1137
  none: "none";
952
1138
  phoenix: "phoenix";
@@ -956,18 +1142,22 @@ declare const router: {
956
1142
  none: "none";
957
1143
  ecto: "ecto";
958
1144
  "ecto-sql": "ecto-sql";
1145
+ myxql: "myxql";
1146
+ ecto_sqlite3: "ecto_sqlite3";
959
1147
  }>>;
960
1148
  elixirAuth: z.ZodOptional<z.ZodEnum<{
961
1149
  none: "none";
962
1150
  "phx-gen-auth": "phx-gen-auth";
963
1151
  ueberauth: "ueberauth";
964
1152
  guardian: "guardian";
1153
+ pow: "pow";
965
1154
  }>>;
966
1155
  elixirApi: z.ZodOptional<z.ZodEnum<{
967
1156
  none: "none";
968
1157
  grpc: "grpc";
969
1158
  rest: "rest";
970
1159
  absinthe: "absinthe";
1160
+ open_api_spex: "open_api_spex";
971
1161
  }>>;
972
1162
  elixirRealtime: z.ZodOptional<z.ZodEnum<{
973
1163
  none: "none";
@@ -990,6 +1180,7 @@ declare const router: {
990
1180
  none: "none";
991
1181
  req: "req";
992
1182
  finch: "finch";
1183
+ tesla: "tesla";
993
1184
  }>>;
994
1185
  elixirJson: z.ZodOptional<z.ZodEnum<{
995
1186
  none: "none";
@@ -998,15 +1189,18 @@ declare const router: {
998
1189
  elixirEmail: z.ZodOptional<z.ZodEnum<{
999
1190
  none: "none";
1000
1191
  swoosh: "swoosh";
1192
+ bamboo: "bamboo";
1001
1193
  }>>;
1002
1194
  elixirCaching: z.ZodOptional<z.ZodEnum<{
1003
1195
  none: "none";
1004
1196
  cachex: "cachex";
1005
1197
  nebulex: "nebulex";
1198
+ redix: "redix";
1006
1199
  }>>;
1007
1200
  elixirObservability: z.ZodOptional<z.ZodEnum<{
1008
1201
  none: "none";
1009
1202
  opentelemetry: "opentelemetry";
1203
+ sentry: "sentry";
1010
1204
  telemetry: "telemetry";
1011
1205
  prom_ex: "prom_ex";
1012
1206
  }>>;
@@ -1016,12 +1210,37 @@ declare const router: {
1016
1210
  mox: "mox";
1017
1211
  bypass: "bypass";
1018
1212
  wallaby: "wallaby";
1213
+ stream_data: "stream_data";
1214
+ ex_machina: "ex_machina";
1019
1215
  }>>;
1020
1216
  elixirQuality: z.ZodOptional<z.ZodEnum<{
1021
1217
  none: "none";
1022
1218
  credo: "credo";
1023
1219
  dialyxir: "dialyxir";
1024
1220
  sobelow: "sobelow";
1221
+ excoveralls: "excoveralls";
1222
+ mix_audit: "mix_audit";
1223
+ }>>;
1224
+ elixirI18n: z.ZodOptional<z.ZodEnum<{
1225
+ none: "none";
1226
+ gettext: "gettext";
1227
+ }>>;
1228
+ elixirHttpServer: z.ZodOptional<z.ZodEnum<{
1229
+ none: "none";
1230
+ bandit: "bandit";
1231
+ cowboy: "cowboy";
1232
+ }>>;
1233
+ elixirApplicationFramework: z.ZodOptional<z.ZodEnum<{
1234
+ none: "none";
1235
+ ash: "ash";
1236
+ }>>;
1237
+ elixirDocumentation: z.ZodOptional<z.ZodEnum<{
1238
+ none: "none";
1239
+ ex_doc: "ex_doc";
1240
+ }>>;
1241
+ elixirClustering: z.ZodOptional<z.ZodEnum<{
1242
+ none: "none";
1243
+ libcluster: "libcluster";
1025
1244
  }>>;
1026
1245
  elixirDeploy: z.ZodOptional<z.ZodEnum<{
1027
1246
  none: "none";
@@ -1034,6 +1253,9 @@ declare const router: {
1034
1253
  none: "none";
1035
1254
  nx: "nx";
1036
1255
  broadway: "broadway";
1256
+ ex_aws: "ex_aws";
1257
+ floki: "floki";
1258
+ rustler: "rustler";
1037
1259
  }>>>;
1038
1260
  aiDocs: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1039
1261
  none: "none";
@@ -1052,11 +1274,11 @@ declare const router: {
1052
1274
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1053
1275
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1054
1276
  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")[];
1277
+ 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")[];
1278
+ 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
1279
  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";
1280
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1281
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1060
1282
  git: boolean;
1061
1283
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1062
1284
  versionChannel: "stable" | "latest" | "beta";
@@ -1065,24 +1287,24 @@ declare const router: {
1065
1287
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1066
1288
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1067
1289
  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";
1290
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1069
1291
  effect: "effect" | "none" | "effect-full";
1070
1292
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1071
1293
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1072
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1294
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1073
1295
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1074
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1296
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1075
1297
  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
1298
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1077
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1299
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1078
1300
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1079
1301
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1080
1302
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1081
1303
  logging: "none" | "pino" | "winston" | "evlog";
1082
- observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1304
+ observability: "none" | "sentry" | "opentelemetry" | "grafana" | "datadog" | "axiom" | "betterstack";
1083
1305
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1084
- analytics: "none" | "posthog" | "plausible" | "umami";
1085
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1306
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1307
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1086
1308
  caching: "none" | "redis" | "upstash-redis";
1087
1309
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1088
1310
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1096,54 +1318,68 @@ declare const router: {
1096
1318
  mobilePush: "none" | "expo-notifications";
1097
1319
  mobileOTA: "none" | "expo-updates";
1098
1320
  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";
1321
+ mobileLibraries: ("none" | "expo-sqlite" | "expo-camera" | "expo-image-picker" | "expo-location" | "expo-sensors" | "expo-file-system" | "expo-image" | "expo-audio" | "expo-video" | "expo-contacts" | "expo-calendar" | "expo-local-authentication" | "expo-sharing" | "expo-clipboard" | "expo-task-manager" | "expo-background-task" | "expo-maps" | "expo-brightness" | "expo-battery" | "expo-screen-capture")[];
1322
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1323
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1324
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1325
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1103
1326
  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")[];
1327
+ 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
1328
  rustLogging: "none" | "tracing" | "env-logger";
1106
1329
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1107
1330
  rustCaching: "none" | "redis" | "moka";
1108
- rustAuth: "none" | "oauth2" | "torii";
1331
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1109
1332
  rustRealtime: "none" | "tokio-tungstenite";
1110
- rustMessageQueue: "none" | "lapin";
1111
- rustObservability: "none" | "opentelemetry";
1112
- rustTemplating: "none" | "askama" | "tera";
1113
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1114
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1333
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1334
+ rustObservability: "none" | "opentelemetry" | "metrics";
1335
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1336
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette" | "aiohttp" | "streamlit";
1337
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee" | "pymongo";
1115
1338
  pythonValidation: "none" | "pydantic";
1116
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1117
- pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1339
+ pythonAi: ("none" | "mcp" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents" | "pytorch" | "transformers" | "scikit-learn" | "tensorflow")[];
1340
+ pythonAuth: "none" | "authlib" | "jwt" | "pyjwt" | "fastapi-users";
1118
1341
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1119
1342
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1120
1343
  pythonGraphql: "none" | "strawberry" | "ariadne";
1121
1344
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1122
- pythonTesting: ("none" | "pytest" | "hypothesis")[];
1345
+ pythonTesting: ("none" | "pytest" | "hypothesis" | "pytest-cov")[];
1123
1346
  pythonCaching: "none" | "redis" | "aiocache";
1124
1347
  pythonRealtime: "none" | "python-socketio" | "websockets";
1125
- pythonObservability: "none" | "opentelemetry";
1348
+ pythonObservability: "none" | "opentelemetry" | "prometheus-client";
1126
1349
  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";
1350
+ pythonCloudSdk: "none" | "boto3";
1351
+ pythonHttpClient: "none" | "requests";
1352
+ pythonData: ("none" | "numpy" | "pandas" | "scipy")[];
1353
+ pythonMedia: "none" | "pillow";
1354
+ pythonServer: "none" | "gunicorn";
1355
+ pythonPackageManager: "none" | "uv" | "poetry";
1356
+ pythonMessageQueue: "none" | "confluent-kafka";
1357
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1358
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1359
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1130
1360
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1131
1361
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1132
- goAuth: "none" | "jwt" | "casbin" | "goth";
1133
- goTesting: ("none" | "testify" | "gomock")[];
1362
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1363
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1134
1364
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1135
- goMessageQueue: "none" | "nats" | "watermill";
1365
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1136
1366
  goCaching: "none" | "redis" | "ristretto";
1137
1367
  goConfig: "none" | "viper" | "koanf";
1138
- goObservability: "none" | "opentelemetry";
1368
+ goObservability: "none" | "opentelemetry" | "prometheus";
1369
+ goValidation: "none" | "validator";
1370
+ goQuality: "none" | "golangci-lint";
1371
+ goMigrations: "none" | "golang-migrate";
1372
+ goTemplating: "none" | "templ";
1373
+ goProtoTooling: "none" | "buf";
1374
+ goDI: "none" | "fx";
1139
1375
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1140
1376
  javaBuildTool: "none" | "maven" | "gradle";
1141
1377
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1142
1378
  javaAuth: "none" | "spring-security" | "keycloak";
1143
1379
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1144
1380
  javaLogging: "none" | "logback" | "log4j2";
1145
- 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")[];
1381
+ 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" | "spring-data-redis" | "spring-data-mongodb" | "spring-data-elasticsearch" | "spring-data-neo4j" | "spring-data-cassandra" | "spring-data-couchbase" | "spring-data-jdbc" | "spring-data-rest" | "spring-quartz" | "spring-pulsar" | "spring-integration" | "spring-websocket" | "spring-rsocket" | "spring-hateoas" | "spring-session-redis" | "spring-session-jdbc" | "spring-ldap" | "spring-oauth2-client" | "spring-saml2" | "spring-restclient")[];
1382
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1147
1383
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1148
1384
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1149
1385
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1155,25 +1391,31 @@ declare const router: {
1155
1391
  dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1156
1392
  dotnetCaching: "none" | "redis" | "memory-cache";
1157
1393
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1394
+ dotnetLibraries: ("none" | "sentry" | "automapper" | "mediatr" | "fastendpoints" | "api-versioning" | "scalar" | "polly" | "masstransit" | "rebus" | "coravel" | "magic-onion" | "prometheus-net" | "seq" | "application-insights" | "mongodb-driver" | "nhibernate" | "mapster" | "scrutor" | "refit" | "fluent-email")[];
1158
1395
  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";
1396
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1397
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1398
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1162
1399
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1163
1400
  elixirJobs: "none" | "oban" | "quantum";
1164
1401
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1165
- elixirHttp: "none" | "req" | "finch";
1402
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1166
1403
  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";
1404
+ elixirEmail: "none" | "swoosh" | "bamboo";
1405
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1406
+ elixirObservability: "none" | "sentry" | "opentelemetry" | "telemetry" | "prom_ex";
1407
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1408
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1409
+ elixirI18n: "none" | "gettext";
1410
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1411
+ elixirApplicationFramework: "none" | "ash";
1412
+ elixirDocumentation: "none" | "ex_doc";
1413
+ elixirClustering: "none" | "libcluster";
1172
1414
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1173
- elixirLibraries: ("none" | "nx" | "broadway")[];
1415
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1174
1416
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1175
1417
  workspaceShape?: "monorepo" | "single-app" | undefined;
1176
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1418
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1177
1419
  shadcnBase?: "radix" | "base" | undefined;
1178
1420
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1179
1421
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1184,7 +1426,7 @@ declare const router: {
1184
1426
  javaLanguage?: "java" | "kotlin" | undefined;
1185
1427
  stackParts?: {
1186
1428
  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";
1429
+ 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" | "packageManager" | "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" | "cloudSdk" | "data" | "media" | "server" | "messageQueue";
1188
1430
  toolId: string;
1189
1431
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1190
1432
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1216,11 +1458,11 @@ declare const router: {
1216
1458
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1217
1459
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1218
1460
  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")[];
1461
+ 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")[];
1462
+ 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
1463
  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";
1464
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1465
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1224
1466
  git: boolean;
1225
1467
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1226
1468
  versionChannel: "stable" | "latest" | "beta";
@@ -1229,24 +1471,24 @@ declare const router: {
1229
1471
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1230
1472
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1231
1473
  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";
1474
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1233
1475
  effect: "effect" | "none" | "effect-full";
1234
1476
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1235
1477
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1236
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1478
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1237
1479
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1238
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1480
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1239
1481
  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
1482
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1241
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1483
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1242
1484
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1243
1485
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1244
1486
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1245
1487
  logging: "none" | "pino" | "winston" | "evlog";
1246
- observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1488
+ observability: "none" | "sentry" | "opentelemetry" | "grafana" | "datadog" | "axiom" | "betterstack";
1247
1489
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1248
- analytics: "none" | "posthog" | "plausible" | "umami";
1249
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1490
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1491
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1250
1492
  caching: "none" | "redis" | "upstash-redis";
1251
1493
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1252
1494
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1260,54 +1502,68 @@ declare const router: {
1260
1502
  mobilePush: "none" | "expo-notifications";
1261
1503
  mobileOTA: "none" | "expo-updates";
1262
1504
  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";
1505
+ mobileLibraries: ("none" | "expo-sqlite" | "expo-camera" | "expo-image-picker" | "expo-location" | "expo-sensors" | "expo-file-system" | "expo-image" | "expo-audio" | "expo-video" | "expo-contacts" | "expo-calendar" | "expo-local-authentication" | "expo-sharing" | "expo-clipboard" | "expo-task-manager" | "expo-background-task" | "expo-maps" | "expo-brightness" | "expo-battery" | "expo-screen-capture")[];
1506
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1507
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1508
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1509
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1267
1510
  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")[];
1511
+ 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
1512
  rustLogging: "none" | "tracing" | "env-logger";
1270
1513
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1271
1514
  rustCaching: "none" | "redis" | "moka";
1272
- rustAuth: "none" | "oauth2" | "torii";
1515
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1273
1516
  rustRealtime: "none" | "tokio-tungstenite";
1274
- rustMessageQueue: "none" | "lapin";
1275
- rustObservability: "none" | "opentelemetry";
1276
- rustTemplating: "none" | "askama" | "tera";
1277
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1278
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1517
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1518
+ rustObservability: "none" | "opentelemetry" | "metrics";
1519
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1520
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette" | "aiohttp" | "streamlit";
1521
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee" | "pymongo";
1279
1522
  pythonValidation: "none" | "pydantic";
1280
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1281
- pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1523
+ pythonAi: ("none" | "mcp" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents" | "pytorch" | "transformers" | "scikit-learn" | "tensorflow")[];
1524
+ pythonAuth: "none" | "authlib" | "jwt" | "pyjwt" | "fastapi-users";
1282
1525
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1283
1526
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1284
1527
  pythonGraphql: "none" | "strawberry" | "ariadne";
1285
1528
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1286
- pythonTesting: ("none" | "pytest" | "hypothesis")[];
1529
+ pythonTesting: ("none" | "pytest" | "hypothesis" | "pytest-cov")[];
1287
1530
  pythonCaching: "none" | "redis" | "aiocache";
1288
1531
  pythonRealtime: "none" | "python-socketio" | "websockets";
1289
- pythonObservability: "none" | "opentelemetry";
1532
+ pythonObservability: "none" | "opentelemetry" | "prometheus-client";
1290
1533
  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";
1534
+ pythonCloudSdk: "none" | "boto3";
1535
+ pythonHttpClient: "none" | "requests";
1536
+ pythonData: ("none" | "numpy" | "pandas" | "scipy")[];
1537
+ pythonMedia: "none" | "pillow";
1538
+ pythonServer: "none" | "gunicorn";
1539
+ pythonPackageManager: "none" | "uv" | "poetry";
1540
+ pythonMessageQueue: "none" | "confluent-kafka";
1541
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1542
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1543
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1294
1544
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1295
1545
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1296
- goAuth: "none" | "jwt" | "casbin" | "goth";
1297
- goTesting: ("none" | "testify" | "gomock")[];
1546
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1547
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1298
1548
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1299
- goMessageQueue: "none" | "nats" | "watermill";
1549
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1300
1550
  goCaching: "none" | "redis" | "ristretto";
1301
1551
  goConfig: "none" | "viper" | "koanf";
1302
- goObservability: "none" | "opentelemetry";
1552
+ goObservability: "none" | "opentelemetry" | "prometheus";
1553
+ goValidation: "none" | "validator";
1554
+ goQuality: "none" | "golangci-lint";
1555
+ goMigrations: "none" | "golang-migrate";
1556
+ goTemplating: "none" | "templ";
1557
+ goProtoTooling: "none" | "buf";
1558
+ goDI: "none" | "fx";
1303
1559
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1304
1560
  javaBuildTool: "none" | "maven" | "gradle";
1305
1561
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1306
1562
  javaAuth: "none" | "spring-security" | "keycloak";
1307
1563
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1308
1564
  javaLogging: "none" | "logback" | "log4j2";
1309
- 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")[];
1565
+ 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" | "spring-data-redis" | "spring-data-mongodb" | "spring-data-elasticsearch" | "spring-data-neo4j" | "spring-data-cassandra" | "spring-data-couchbase" | "spring-data-jdbc" | "spring-data-rest" | "spring-quartz" | "spring-pulsar" | "spring-integration" | "spring-websocket" | "spring-rsocket" | "spring-hateoas" | "spring-session-redis" | "spring-session-jdbc" | "spring-ldap" | "spring-oauth2-client" | "spring-saml2" | "spring-restclient")[];
1566
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1311
1567
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1312
1568
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1313
1569
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1319,25 +1575,31 @@ declare const router: {
1319
1575
  dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1320
1576
  dotnetCaching: "none" | "redis" | "memory-cache";
1321
1577
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1578
+ dotnetLibraries: ("none" | "sentry" | "automapper" | "mediatr" | "fastendpoints" | "api-versioning" | "scalar" | "polly" | "masstransit" | "rebus" | "coravel" | "magic-onion" | "prometheus-net" | "seq" | "application-insights" | "mongodb-driver" | "nhibernate" | "mapster" | "scrutor" | "refit" | "fluent-email")[];
1322
1579
  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";
1580
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1581
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1582
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1326
1583
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1327
1584
  elixirJobs: "none" | "oban" | "quantum";
1328
1585
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1329
- elixirHttp: "none" | "req" | "finch";
1586
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1330
1587
  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";
1588
+ elixirEmail: "none" | "swoosh" | "bamboo";
1589
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1590
+ elixirObservability: "none" | "sentry" | "opentelemetry" | "telemetry" | "prom_ex";
1591
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1592
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1593
+ elixirI18n: "none" | "gettext";
1594
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1595
+ elixirApplicationFramework: "none" | "ash";
1596
+ elixirDocumentation: "none" | "ex_doc";
1597
+ elixirClustering: "none" | "libcluster";
1336
1598
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1337
- elixirLibraries: ("none" | "nx" | "broadway")[];
1599
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1338
1600
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1339
1601
  workspaceShape?: "monorepo" | "single-app" | undefined;
1340
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1602
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1341
1603
  shadcnBase?: "radix" | "base" | undefined;
1342
1604
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1343
1605
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1348,7 +1610,7 @@ declare const router: {
1348
1610
  javaLanguage?: "java" | "kotlin" | undefined;
1349
1611
  stackParts?: {
1350
1612
  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";
1613
+ 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" | "packageManager" | "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" | "cloudSdk" | "data" | "media" | "server" | "messageQueue";
1352
1614
  toolId: string;
1353
1615
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1354
1616
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1394,11 +1656,11 @@ declare const router: {
1394
1656
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1395
1657
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1396
1658
  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")[];
1659
+ 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")[];
1660
+ 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
1661
  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";
1662
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1663
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1402
1664
  git: boolean;
1403
1665
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1404
1666
  versionChannel: "stable" | "latest" | "beta";
@@ -1407,24 +1669,24 @@ declare const router: {
1407
1669
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1408
1670
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1409
1671
  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";
1672
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1411
1673
  effect: "effect" | "none" | "effect-full";
1412
1674
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1413
1675
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1414
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1676
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1415
1677
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1416
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1678
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1417
1679
  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
1680
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1419
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1681
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1420
1682
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1421
1683
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1422
1684
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1423
1685
  logging: "none" | "pino" | "winston" | "evlog";
1424
- observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1686
+ observability: "none" | "sentry" | "opentelemetry" | "grafana" | "datadog" | "axiom" | "betterstack";
1425
1687
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1426
- analytics: "none" | "posthog" | "plausible" | "umami";
1427
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1688
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1689
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1428
1690
  caching: "none" | "redis" | "upstash-redis";
1429
1691
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1430
1692
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1438,54 +1700,68 @@ declare const router: {
1438
1700
  mobilePush: "none" | "expo-notifications";
1439
1701
  mobileOTA: "none" | "expo-updates";
1440
1702
  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";
1703
+ mobileLibraries: ("none" | "expo-sqlite" | "expo-camera" | "expo-image-picker" | "expo-location" | "expo-sensors" | "expo-file-system" | "expo-image" | "expo-audio" | "expo-video" | "expo-contacts" | "expo-calendar" | "expo-local-authentication" | "expo-sharing" | "expo-clipboard" | "expo-task-manager" | "expo-background-task" | "expo-maps" | "expo-brightness" | "expo-battery" | "expo-screen-capture")[];
1704
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1705
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1706
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1707
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1445
1708
  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")[];
1709
+ 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
1710
  rustLogging: "none" | "tracing" | "env-logger";
1448
1711
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1449
1712
  rustCaching: "none" | "redis" | "moka";
1450
- rustAuth: "none" | "oauth2" | "torii";
1713
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1451
1714
  rustRealtime: "none" | "tokio-tungstenite";
1452
- rustMessageQueue: "none" | "lapin";
1453
- rustObservability: "none" | "opentelemetry";
1454
- rustTemplating: "none" | "askama" | "tera";
1455
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1456
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1715
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1716
+ rustObservability: "none" | "opentelemetry" | "metrics";
1717
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1718
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette" | "aiohttp" | "streamlit";
1719
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee" | "pymongo";
1457
1720
  pythonValidation: "none" | "pydantic";
1458
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1459
- pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1721
+ pythonAi: ("none" | "mcp" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents" | "pytorch" | "transformers" | "scikit-learn" | "tensorflow")[];
1722
+ pythonAuth: "none" | "authlib" | "jwt" | "pyjwt" | "fastapi-users";
1460
1723
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1461
1724
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1462
1725
  pythonGraphql: "none" | "strawberry" | "ariadne";
1463
1726
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1464
- pythonTesting: ("none" | "pytest" | "hypothesis")[];
1727
+ pythonTesting: ("none" | "pytest" | "hypothesis" | "pytest-cov")[];
1465
1728
  pythonCaching: "none" | "redis" | "aiocache";
1466
1729
  pythonRealtime: "none" | "python-socketio" | "websockets";
1467
- pythonObservability: "none" | "opentelemetry";
1730
+ pythonObservability: "none" | "opentelemetry" | "prometheus-client";
1468
1731
  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";
1732
+ pythonCloudSdk: "none" | "boto3";
1733
+ pythonHttpClient: "none" | "requests";
1734
+ pythonData: ("none" | "numpy" | "pandas" | "scipy")[];
1735
+ pythonMedia: "none" | "pillow";
1736
+ pythonServer: "none" | "gunicorn";
1737
+ pythonPackageManager: "none" | "uv" | "poetry";
1738
+ pythonMessageQueue: "none" | "confluent-kafka";
1739
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1740
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1741
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1472
1742
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1473
1743
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1474
- goAuth: "none" | "jwt" | "casbin" | "goth";
1475
- goTesting: ("none" | "testify" | "gomock")[];
1744
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1745
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1476
1746
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1477
- goMessageQueue: "none" | "nats" | "watermill";
1747
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1478
1748
  goCaching: "none" | "redis" | "ristretto";
1479
1749
  goConfig: "none" | "viper" | "koanf";
1480
- goObservability: "none" | "opentelemetry";
1750
+ goObservability: "none" | "opentelemetry" | "prometheus";
1751
+ goValidation: "none" | "validator";
1752
+ goQuality: "none" | "golangci-lint";
1753
+ goMigrations: "none" | "golang-migrate";
1754
+ goTemplating: "none" | "templ";
1755
+ goProtoTooling: "none" | "buf";
1756
+ goDI: "none" | "fx";
1481
1757
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1482
1758
  javaBuildTool: "none" | "maven" | "gradle";
1483
1759
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1484
1760
  javaAuth: "none" | "spring-security" | "keycloak";
1485
1761
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1486
1762
  javaLogging: "none" | "logback" | "log4j2";
1487
- 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")[];
1763
+ 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" | "spring-data-redis" | "spring-data-mongodb" | "spring-data-elasticsearch" | "spring-data-neo4j" | "spring-data-cassandra" | "spring-data-couchbase" | "spring-data-jdbc" | "spring-data-rest" | "spring-quartz" | "spring-pulsar" | "spring-integration" | "spring-websocket" | "spring-rsocket" | "spring-hateoas" | "spring-session-redis" | "spring-session-jdbc" | "spring-ldap" | "spring-oauth2-client" | "spring-saml2" | "spring-restclient")[];
1764
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1489
1765
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1490
1766
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1491
1767
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1497,25 +1773,31 @@ declare const router: {
1497
1773
  dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1498
1774
  dotnetCaching: "none" | "redis" | "memory-cache";
1499
1775
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1776
+ dotnetLibraries: ("none" | "sentry" | "automapper" | "mediatr" | "fastendpoints" | "api-versioning" | "scalar" | "polly" | "masstransit" | "rebus" | "coravel" | "magic-onion" | "prometheus-net" | "seq" | "application-insights" | "mongodb-driver" | "nhibernate" | "mapster" | "scrutor" | "refit" | "fluent-email")[];
1500
1777
  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";
1778
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1779
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1780
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1504
1781
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1505
1782
  elixirJobs: "none" | "oban" | "quantum";
1506
1783
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1507
- elixirHttp: "none" | "req" | "finch";
1784
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1508
1785
  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";
1786
+ elixirEmail: "none" | "swoosh" | "bamboo";
1787
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1788
+ elixirObservability: "none" | "sentry" | "opentelemetry" | "telemetry" | "prom_ex";
1789
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1790
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1791
+ elixirI18n: "none" | "gettext";
1792
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1793
+ elixirApplicationFramework: "none" | "ash";
1794
+ elixirDocumentation: "none" | "ex_doc";
1795
+ elixirClustering: "none" | "libcluster";
1514
1796
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1515
- elixirLibraries: ("none" | "nx" | "broadway")[];
1797
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1516
1798
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1517
1799
  workspaceShape?: "monorepo" | "single-app" | undefined;
1518
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1800
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1519
1801
  shadcnBase?: "radix" | "base" | undefined;
1520
1802
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1521
1803
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1526,7 +1808,7 @@ declare const router: {
1526
1808
  javaLanguage?: "java" | "kotlin" | undefined;
1527
1809
  stackParts?: {
1528
1810
  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";
1811
+ 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" | "packageManager" | "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" | "cloudSdk" | "data" | "media" | "server" | "messageQueue";
1530
1812
  toolId: string;
1531
1813
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1532
1814
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1558,11 +1840,11 @@ declare const router: {
1558
1840
  orm: "none" | "drizzle" | "prisma" | "mongoose" | "typeorm" | "kysely" | "mikroorm" | "sequelize";
1559
1841
  backend: "effect" | "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
1560
1842
  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")[];
1843
+ 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")[];
1844
+ 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
1845
  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";
1846
+ auth: "none" | "better-auth" | "better-auth-organizations" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0" | "workos" | "kinde" | "passport";
1847
+ payments: "none" | "revenuecat" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "paypal" | "dodo" | "creem" | "autumn" | "commet";
1566
1848
  git: boolean;
1567
1849
  packageManager: "bun" | "npm" | "pnpm" | "yarn";
1568
1850
  versionChannel: "stable" | "latest" | "beta";
@@ -1571,24 +1853,24 @@ declare const router: {
1571
1853
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph" | "graphql-yoga" | "apollo-server" | "openapi";
1572
1854
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "render" | "netlify" | "sst" | "vercel";
1573
1855
  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";
1856
+ ai: "none" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "modelfusion" | "tanstack-ai" | "ai-cli";
1575
1857
  effect: "effect" | "none" | "effect-full";
1576
1858
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
1577
1859
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
1578
- testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "cypress";
1860
+ testing: "none" | "vitest" | "playwright" | "vitest-playwright" | "jest" | "mocha" | "cypress";
1579
1861
  email: "none" | "react-email" | "resend" | "nodemailer" | "postmark" | "sendgrid" | "aws-ses" | "mailgun" | "plunk";
1580
- cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only";
1862
+ cssFramework: "none" | "tailwind" | "scss" | "less" | "postcss-only" | "styled-components";
1581
1863
  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
1864
  validation: "none" | "zod" | "valibot" | "arktype" | "typebox" | "typia" | "runtypes" | "effect-schema";
1583
- realtime: "none" | "socket-io" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1865
+ realtime: "none" | "socket-io" | "ws" | "partykit" | "ably" | "pusher" | "liveblocks" | "yjs";
1584
1866
  jobQueue: "none" | "bullmq" | "trigger-dev" | "inngest" | "temporal";
1585
1867
  animation: "none" | "framer-motion" | "gsap" | "react-spring" | "auto-animate" | "lottie";
1586
1868
  fileUpload: "none" | "uploadthing" | "filepond" | "uppy";
1587
1869
  logging: "none" | "pino" | "winston" | "evlog";
1588
- observability: "none" | "opentelemetry" | "sentry" | "grafana" | "datadog" | "axiom" | "betterstack";
1870
+ observability: "none" | "sentry" | "opentelemetry" | "grafana" | "datadog" | "axiom" | "betterstack";
1589
1871
  featureFlags: "none" | "growthbook" | "posthog" | "launchdarkly" | "flagsmith" | "unleash";
1590
- analytics: "none" | "posthog" | "plausible" | "umami";
1591
- cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic";
1872
+ analytics: "none" | "posthog" | "plausible" | "umami" | "ga4";
1873
+ cms: "none" | "payload" | "sanity" | "strapi" | "tinacms" | "directus" | "keystatic" | "contentful";
1592
1874
  caching: "none" | "redis" | "upstash-redis";
1593
1875
  rateLimit: "none" | "arcjet" | "upstash-ratelimit";
1594
1876
  i18n: "none" | "paraglide" | "i18next" | "next-intl" | "intlayer";
@@ -1602,54 +1884,68 @@ declare const router: {
1602
1884
  mobilePush: "none" | "expo-notifications";
1603
1885
  mobileOTA: "none" | "expo-updates";
1604
1886
  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";
1887
+ mobileLibraries: ("none" | "expo-sqlite" | "expo-camera" | "expo-image-picker" | "expo-location" | "expo-sensors" | "expo-file-system" | "expo-image" | "expo-audio" | "expo-video" | "expo-contacts" | "expo-calendar" | "expo-local-authentication" | "expo-sharing" | "expo-clipboard" | "expo-task-manager" | "expo-background-task" | "expo-maps" | "expo-brightness" | "expo-battery" | "expo-screen-capture")[];
1888
+ rustWebFramework: "none" | "axum" | "actix-web" | "rocket" | "poem" | "loco" | "warp" | "salvo";
1889
+ rustFrontend: "none" | "leptos" | "dioxus" | "yew";
1890
+ rustOrm: "none" | "mongodb" | "sea-orm" | "sqlx" | "diesel" | "rusqlite" | "tokio-postgres";
1891
+ rustApi: "none" | "tonic" | "async-graphql" | "jsonrpsee";
1609
1892
  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")[];
1893
+ 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
1894
  rustLogging: "none" | "tracing" | "env-logger";
1612
1895
  rustErrorHandling: "none" | "anyhow-thiserror" | "eyre";
1613
1896
  rustCaching: "none" | "redis" | "moka";
1614
- rustAuth: "none" | "oauth2" | "torii";
1897
+ rustAuth: "none" | "oauth2" | "torii" | "openidconnect" | "tower-sessions";
1615
1898
  rustRealtime: "none" | "tokio-tungstenite";
1616
- rustMessageQueue: "none" | "lapin";
1617
- rustObservability: "none" | "opentelemetry";
1618
- rustTemplating: "none" | "askama" | "tera";
1619
- pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette";
1620
- pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee";
1899
+ rustMessageQueue: "none" | "lapin" | "rdkafka" | "async-nats";
1900
+ rustObservability: "none" | "opentelemetry" | "metrics";
1901
+ rustTemplating: "none" | "askama" | "tera" | "minijinja";
1902
+ pythonWebFramework: "none" | "fastapi" | "django" | "flask" | "litestar" | "starlette" | "aiohttp" | "streamlit";
1903
+ pythonOrm: "none" | "sqlalchemy" | "sqlmodel" | "tortoise-orm" | "peewee" | "pymongo";
1621
1904
  pythonValidation: "none" | "pydantic";
1622
- pythonAi: ("none" | "langgraph" | "google-adk" | "langchain" | "llamaindex" | "openai-sdk" | "anthropic-sdk" | "crewai" | "haystack" | "pydantic-ai" | "smolagents")[];
1623
- pythonAuth: "none" | "authlib" | "jwt" | "fastapi-users";
1905
+ pythonAi: ("none" | "mcp" | "langgraph" | "openai-sdk" | "anthropic-sdk" | "google-adk" | "langchain" | "llamaindex" | "crewai" | "haystack" | "pydantic-ai" | "smolagents" | "pytorch" | "transformers" | "scikit-learn" | "tensorflow")[];
1906
+ pythonAuth: "none" | "authlib" | "jwt" | "pyjwt" | "fastapi-users";
1624
1907
  pythonApi: "none" | "django-rest-framework" | "django-ninja";
1625
1908
  pythonTaskQueue: "none" | "celery" | "rq" | "dramatiq" | "huey" | "taskiq";
1626
1909
  pythonGraphql: "none" | "strawberry" | "ariadne";
1627
1910
  pythonQuality: "none" | "ruff" | "mypy" | "pyright";
1628
- pythonTesting: ("none" | "pytest" | "hypothesis")[];
1911
+ pythonTesting: ("none" | "pytest" | "hypothesis" | "pytest-cov")[];
1629
1912
  pythonCaching: "none" | "redis" | "aiocache";
1630
1913
  pythonRealtime: "none" | "python-socketio" | "websockets";
1631
- pythonObservability: "none" | "opentelemetry";
1914
+ pythonObservability: "none" | "opentelemetry" | "prometheus-client";
1632
1915
  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";
1916
+ pythonCloudSdk: "none" | "boto3";
1917
+ pythonHttpClient: "none" | "requests";
1918
+ pythonData: ("none" | "numpy" | "pandas" | "scipy")[];
1919
+ pythonMedia: "none" | "pillow";
1920
+ pythonServer: "none" | "gunicorn";
1921
+ pythonPackageManager: "none" | "uv" | "poetry";
1922
+ pythonMessageQueue: "none" | "confluent-kafka";
1923
+ goWebFramework: "none" | "gin" | "echo" | "fiber" | "chi" | "stdlib" | "go-zero" | "kratos" | "httprouter";
1924
+ goOrm: "none" | "bun" | "sqlx" | "gorm" | "sqlc" | "ent";
1925
+ goApi: "none" | "grpc-go" | "gqlgen" | "grpc-gateway" | "connect-go" | "oapi-codegen";
1636
1926
  goCli: "none" | "cobra" | "bubbletea" | "urfave-cli";
1637
1927
  goLogging: "none" | "zap" | "zerolog" | "slog" | "logrus";
1638
- goAuth: "none" | "jwt" | "casbin" | "goth";
1639
- goTesting: ("none" | "testify" | "gomock")[];
1928
+ goAuth: "none" | "oauth2" | "jwt" | "casbin" | "goth";
1929
+ goTesting: ("none" | "testify" | "gomock" | "testcontainers" | "ginkgo-gomega" | "mockery")[];
1640
1930
  goRealtime: "none" | "gorilla-websocket" | "centrifuge";
1641
- goMessageQueue: "none" | "nats" | "watermill";
1931
+ goMessageQueue: "none" | "nats" | "watermill" | "kafka-go" | "asynq";
1642
1932
  goCaching: "none" | "redis" | "ristretto";
1643
1933
  goConfig: "none" | "viper" | "koanf";
1644
- goObservability: "none" | "opentelemetry";
1934
+ goObservability: "none" | "opentelemetry" | "prometheus";
1935
+ goValidation: "none" | "validator";
1936
+ goQuality: "none" | "golangci-lint";
1937
+ goMigrations: "none" | "golang-migrate";
1938
+ goTemplating: "none" | "templ";
1939
+ goProtoTooling: "none" | "buf";
1940
+ goDI: "none" | "fx";
1645
1941
  javaWebFramework: "none" | "spring-boot" | "quarkus" | "micronaut";
1646
1942
  javaBuildTool: "none" | "maven" | "gradle";
1647
1943
  javaOrm: "none" | "spring-data-jpa" | "jooq" | "mybatis";
1648
1944
  javaAuth: "none" | "spring-security" | "keycloak";
1649
1945
  javaApi: "none" | "spring-graphql" | "openapi-generator" | "grpc";
1650
1946
  javaLogging: "none" | "logback" | "log4j2";
1651
- 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")[];
1947
+ 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" | "spring-data-redis" | "spring-data-mongodb" | "spring-data-elasticsearch" | "spring-data-neo4j" | "spring-data-cassandra" | "spring-data-couchbase" | "spring-data-jdbc" | "spring-data-rest" | "spring-quartz" | "spring-pulsar" | "spring-integration" | "spring-websocket" | "spring-rsocket" | "spring-hateoas" | "spring-session-redis" | "spring-session-jdbc" | "spring-ldap" | "spring-oauth2-client" | "spring-saml2" | "spring-restclient")[];
1948
+ javaTestingLibraries: ("none" | "testcontainers" | "junit5" | "mockito" | "assertj" | "rest-assured" | "wiremock" | "awaitility" | "archunit" | "jqwik")[];
1653
1949
  dotnetWebFramework: "none" | "aspnet-minimal" | "aspnet-mvc" | "aspnet-blazor";
1654
1950
  dotnetOrm: "none" | "ef-core" | "dapper" | "linq2db";
1655
1951
  dotnetAuth: "none" | "aspnet-identity" | "duende-identityserver" | "auth0-aspnet";
@@ -1661,25 +1957,31 @@ declare const router: {
1661
1957
  dotnetValidation: "none" | "fluentvalidation" | "data-annotations";
1662
1958
  dotnetCaching: "none" | "redis" | "memory-cache";
1663
1959
  dotnetDeploy: "none" | "docker" | "azure" | "aws";
1960
+ dotnetLibraries: ("none" | "sentry" | "automapper" | "mediatr" | "fastendpoints" | "api-versioning" | "scalar" | "polly" | "masstransit" | "rebus" | "coravel" | "magic-onion" | "prometheus-net" | "seq" | "application-insights" | "mongodb-driver" | "nhibernate" | "mapster" | "scrutor" | "refit" | "fluent-email")[];
1664
1961
  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";
1962
+ elixirOrm: "none" | "ecto" | "ecto-sql" | "myxql" | "ecto_sqlite3";
1963
+ elixirAuth: "none" | "phx-gen-auth" | "ueberauth" | "guardian" | "pow";
1964
+ elixirApi: "none" | "grpc" | "rest" | "absinthe" | "open_api_spex";
1668
1965
  elixirRealtime: "none" | "channels" | "presence" | "pubsub" | "live-view-streams";
1669
1966
  elixirJobs: "none" | "oban" | "quantum";
1670
1967
  elixirValidation: "none" | "ecto-changesets" | "nimble-options";
1671
- elixirHttp: "none" | "req" | "finch";
1968
+ elixirHttp: "none" | "req" | "finch" | "tesla";
1672
1969
  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";
1970
+ elixirEmail: "none" | "swoosh" | "bamboo";
1971
+ elixirCaching: "none" | "cachex" | "nebulex" | "redix";
1972
+ elixirObservability: "none" | "sentry" | "opentelemetry" | "telemetry" | "prom_ex";
1973
+ elixirTesting: "none" | "ex_unit" | "mox" | "bypass" | "wallaby" | "stream_data" | "ex_machina";
1974
+ elixirQuality: "none" | "credo" | "dialyxir" | "sobelow" | "excoveralls" | "mix_audit";
1975
+ elixirI18n: "none" | "gettext";
1976
+ elixirHttpServer: "none" | "bandit" | "cowboy";
1977
+ elixirApplicationFramework: "none" | "ash";
1978
+ elixirDocumentation: "none" | "ex_doc";
1979
+ elixirClustering: "none" | "libcluster";
1678
1980
  elixirDeploy: "none" | "docker" | "fly" | "gigalixir" | "mix-release";
1679
- elixirLibraries: ("none" | "nx" | "broadway")[];
1981
+ elixirLibraries: ("none" | "nx" | "broadway" | "ex_aws" | "floki" | "rustler")[];
1680
1982
  aiDocs: ("none" | "claude-md" | "agents-md" | "cursorrules")[];
1681
1983
  workspaceShape?: "monorepo" | "single-app" | undefined;
1682
- astroIntegration?: "none" | "svelte" | "solid" | "react" | "vue" | undefined;
1984
+ astroIntegration?: "none" | "vue" | "svelte" | "solid" | "react" | undefined;
1683
1985
  shadcnBase?: "radix" | "base" | undefined;
1684
1986
  shadcnStyle?: "vega" | "nova" | "maia" | "lyra" | "mira" | "luma" | "sera" | undefined;
1685
1987
  shadcnIconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon" | "heroicons" | "react-icons" | undefined;
@@ -1690,7 +1992,7 @@ declare const router: {
1690
1992
  javaLanguage?: "java" | "kotlin" | undefined;
1691
1993
  stackParts?: {
1692
1994
  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";
1995
+ 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" | "packageManager" | "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" | "cloudSdk" | "data" | "media" | "server" | "messageQueue";
1694
1996
  toolId: string;
1695
1997
  ecosystem: "typescript" | "react-native" | "rust" | "python" | "go" | "java" | "elixir" | "dotnet" | "universal";
1696
1998
  source: "selected" | "defaulted" | "provided" | "legacy" | "adjusted";
@@ -1742,10 +2044,10 @@ declare const router: {
1742
2044
  }>>;
1743
2045
  astroIntegration: z.ZodOptional<z.ZodEnum<{
1744
2046
  none: "none";
2047
+ vue: "vue";
1745
2048
  svelte: "svelte";
1746
2049
  solid: "solid";
1747
2050
  react: "react";
1748
- vue: "vue";
1749
2051
  }>>;
1750
2052
  runtime: z.ZodOptional<z.ZodEnum<{
1751
2053
  none: "none";
@@ -1754,13 +2056,13 @@ declare const router: {
1754
2056
  workers: "workers";
1755
2057
  }>>;
1756
2058
  backend: z.ZodOptional<z.ZodEnum<{
1757
- effect: "effect";
1758
2059
  none: "none";
1759
2060
  hono: "hono";
1760
2061
  express: "express";
1761
2062
  fastify: "fastify";
1762
2063
  elysia: "elysia";
1763
2064
  fets: "fets";
2065
+ effect: "effect";
1764
2066
  nestjs: "nestjs";
1765
2067
  adonisjs: "adonisjs";
1766
2068
  nitro: "nitro";
@@ -1833,6 +2135,7 @@ declare const router: {
1833
2135
  auth0: "auth0";
1834
2136
  workos: "workos";
1835
2137
  kinde: "kinde";
2138
+ passport: "passport";
1836
2139
  }>>;
1837
2140
  payments: z.ZodOptional<z.ZodEnum<{
1838
2141
  none: "none";
@@ -1841,6 +2144,7 @@ declare const router: {
1841
2144
  stripe: "stripe";
1842
2145
  "lemon-squeezy": "lemon-squeezy";
1843
2146
  paddle: "paddle";
2147
+ paypal: "paypal";
1844
2148
  dodo: "dodo";
1845
2149
  creem: "creem";
1846
2150
  autumn: "autumn";
@@ -1915,11 +2219,13 @@ declare const router: {
1915
2219
  playwright: "playwright";
1916
2220
  "vitest-playwright": "vitest-playwright";
1917
2221
  jest: "jest";
2222
+ mocha: "mocha";
1918
2223
  cypress: "cypress";
1919
2224
  }>>;
1920
2225
  realtime: z.ZodOptional<z.ZodEnum<{
1921
2226
  none: "none";
1922
2227
  "socket-io": "socket-io";
2228
+ ws: "ws";
1923
2229
  partykit: "partykit";
1924
2230
  ably: "ably";
1925
2231
  pusher: "pusher";
@@ -1987,6 +2293,7 @@ declare const router: {
1987
2293
  scss: "scss";
1988
2294
  less: "less";
1989
2295
  "postcss-only": "postcss-only";
2296
+ "styled-components": "styled-components";
1990
2297
  }>>;
1991
2298
  uiLibrary: z.ZodOptional<z.ZodEnum<{
1992
2299
  none: "none";
@@ -2013,6 +2320,7 @@ declare const router: {
2013
2320
  tinacms: "tinacms";
2014
2321
  directus: "directus";
2015
2322
  keystatic: "keystatic";
2323
+ contentful: "contentful";
2016
2324
  }>>;
2017
2325
  featureFlags: z.ZodOptional<z.ZodEnum<{
2018
2326
  none: "none";
@@ -2027,6 +2335,7 @@ declare const router: {
2027
2335
  posthog: "posthog";
2028
2336
  plausible: "plausible";
2029
2337
  umami: "umami";
2338
+ ga4: "ga4";
2030
2339
  }>>;
2031
2340
  mobileNavigation: z.ZodOptional<z.ZodEnum<{
2032
2341
  none: "none";
@@ -2035,9 +2344,9 @@ declare const router: {
2035
2344
  }>>;
2036
2345
  mobileUI: z.ZodOptional<z.ZodEnum<{
2037
2346
  none: "none";
2347
+ uniwind: "uniwind";
2038
2348
  tamagui: "tamagui";
2039
2349
  "gluestack-ui": "gluestack-ui";
2040
- uniwind: "uniwind";
2041
2350
  unistyles: "unistyles";
2042
2351
  }>>;
2043
2352
  mobileStorage: z.ZodOptional<z.ZodEnum<{
@@ -2062,6 +2371,29 @@ declare const router: {
2062
2371
  none: "none";
2063
2372
  "expo-linking": "expo-linking";
2064
2373
  }>>;
2374
+ mobileLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2375
+ none: "none";
2376
+ "expo-sqlite": "expo-sqlite";
2377
+ "expo-camera": "expo-camera";
2378
+ "expo-image-picker": "expo-image-picker";
2379
+ "expo-location": "expo-location";
2380
+ "expo-sensors": "expo-sensors";
2381
+ "expo-file-system": "expo-file-system";
2382
+ "expo-image": "expo-image";
2383
+ "expo-audio": "expo-audio";
2384
+ "expo-video": "expo-video";
2385
+ "expo-contacts": "expo-contacts";
2386
+ "expo-calendar": "expo-calendar";
2387
+ "expo-local-authentication": "expo-local-authentication";
2388
+ "expo-sharing": "expo-sharing";
2389
+ "expo-clipboard": "expo-clipboard";
2390
+ "expo-task-manager": "expo-task-manager";
2391
+ "expo-background-task": "expo-background-task";
2392
+ "expo-maps": "expo-maps";
2393
+ "expo-brightness": "expo-brightness";
2394
+ "expo-battery": "expo-battery";
2395
+ "expo-screen-capture": "expo-screen-capture";
2396
+ }>>>;
2065
2397
  packageManager: z.ZodOptional<z.ZodEnum<{
2066
2398
  bun: "bun";
2067
2399
  npm: "npm";
@@ -2074,8 +2406,8 @@ declare const router: {
2074
2406
  beta: "beta";
2075
2407
  }>>;
2076
2408
  examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2077
- ai: "ai";
2078
2409
  none: "none";
2410
+ ai: "ai";
2079
2411
  "chat-sdk": "chat-sdk";
2080
2412
  "tanstack-showcase": "tanstack-showcase";
2081
2413
  }>>>;
@@ -2086,6 +2418,8 @@ declare const router: {
2086
2418
  voltagent: "voltagent";
2087
2419
  langgraph: "langgraph";
2088
2420
  "openai-agents": "openai-agents";
2421
+ "openai-sdk": "openai-sdk";
2422
+ "anthropic-sdk": "anthropic-sdk";
2089
2423
  "google-adk": "google-adk";
2090
2424
  modelfusion: "modelfusion";
2091
2425
  langchain: "langchain";
@@ -2101,8 +2435,8 @@ declare const router: {
2101
2435
  }>>>;
2102
2436
  install: z.ZodOptional<z.ZodBoolean>;
2103
2437
  effect: z.ZodOptional<z.ZodEnum<{
2104
- effect: "effect";
2105
2438
  none: "none";
2439
+ effect: "effect";
2106
2440
  "effect-full": "effect-full";
2107
2441
  }>>;
2108
2442
  shadcnBase: z.ZodOptional<z.ZodEnum<{
@@ -2171,8 +2505,8 @@ declare const router: {
2171
2505
  "geist-mono": "geist-mono";
2172
2506
  }>>;
2173
2507
  shadcnRadius: z.ZodOptional<z.ZodEnum<{
2174
- default: "default";
2175
2508
  none: "none";
2509
+ default: "default";
2176
2510
  small: "small";
2177
2511
  medium: "medium";
2178
2512
  large: "large";
@@ -2184,22 +2518,29 @@ declare const router: {
2184
2518
  rocket: "rocket";
2185
2519
  poem: "poem";
2186
2520
  loco: "loco";
2521
+ warp: "warp";
2522
+ salvo: "salvo";
2187
2523
  }>>;
2188
2524
  rustFrontend: z.ZodOptional<z.ZodEnum<{
2189
2525
  none: "none";
2190
2526
  leptos: "leptos";
2191
2527
  dioxus: "dioxus";
2528
+ yew: "yew";
2192
2529
  }>>;
2193
2530
  rustOrm: z.ZodOptional<z.ZodEnum<{
2194
2531
  none: "none";
2532
+ mongodb: "mongodb";
2195
2533
  "sea-orm": "sea-orm";
2196
2534
  sqlx: "sqlx";
2197
2535
  diesel: "diesel";
2536
+ rusqlite: "rusqlite";
2537
+ "tokio-postgres": "tokio-postgres";
2198
2538
  }>>;
2199
2539
  rustApi: z.ZodOptional<z.ZodEnum<{
2200
2540
  none: "none";
2201
2541
  tonic: "tonic";
2202
2542
  "async-graphql": "async-graphql";
2543
+ jsonrpsee: "jsonrpsee";
2203
2544
  }>>;
2204
2545
  rustCli: z.ZodOptional<z.ZodEnum<{
2205
2546
  none: "none";
@@ -2207,12 +2548,12 @@ declare const router: {
2207
2548
  ratatui: "ratatui";
2208
2549
  }>>;
2209
2550
  rustLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2210
- config: "config";
2211
2551
  none: "none";
2212
2552
  serde: "serde";
2213
2553
  uuid: "uuid";
2214
2554
  chrono: "chrono";
2215
2555
  reqwest: "reqwest";
2556
+ config: "config";
2216
2557
  dashmap: "dashmap";
2217
2558
  "parking-lot": "parking-lot";
2218
2559
  secrecy: "secrecy";
@@ -2225,6 +2566,13 @@ declare const router: {
2225
2566
  mockall: "mockall";
2226
2567
  proptest: "proptest";
2227
2568
  insta: "insta";
2569
+ rand: "rand";
2570
+ regex: "regex";
2571
+ rayon: "rayon";
2572
+ itertools: "itertools";
2573
+ rstest: "rstest";
2574
+ "cargo-nextest": "cargo-nextest";
2575
+ "cargo-audit": "cargo-audit";
2228
2576
  }>>>;
2229
2577
  rustLogging: z.ZodOptional<z.ZodEnum<{
2230
2578
  none: "none";
@@ -2245,6 +2593,8 @@ declare const router: {
2245
2593
  none: "none";
2246
2594
  oauth2: "oauth2";
2247
2595
  torii: "torii";
2596
+ openidconnect: "openidconnect";
2597
+ "tower-sessions": "tower-sessions";
2248
2598
  }>>;
2249
2599
  rustRealtime: z.ZodOptional<z.ZodEnum<{
2250
2600
  none: "none";
@@ -2253,15 +2603,19 @@ declare const router: {
2253
2603
  rustMessageQueue: z.ZodOptional<z.ZodEnum<{
2254
2604
  none: "none";
2255
2605
  lapin: "lapin";
2606
+ rdkafka: "rdkafka";
2607
+ "async-nats": "async-nats";
2256
2608
  }>>;
2257
2609
  rustObservability: z.ZodOptional<z.ZodEnum<{
2258
2610
  none: "none";
2259
2611
  opentelemetry: "opentelemetry";
2612
+ metrics: "metrics";
2260
2613
  }>>;
2261
2614
  rustTemplating: z.ZodOptional<z.ZodEnum<{
2262
2615
  none: "none";
2263
2616
  askama: "askama";
2264
2617
  tera: "tera";
2618
+ minijinja: "minijinja";
2265
2619
  }>>;
2266
2620
  pythonWebFramework: z.ZodOptional<z.ZodEnum<{
2267
2621
  none: "none";
@@ -2270,6 +2624,8 @@ declare const router: {
2270
2624
  flask: "flask";
2271
2625
  litestar: "litestar";
2272
2626
  starlette: "starlette";
2627
+ aiohttp: "aiohttp";
2628
+ streamlit: "streamlit";
2273
2629
  }>>;
2274
2630
  pythonOrm: z.ZodOptional<z.ZodEnum<{
2275
2631
  none: "none";
@@ -2277,6 +2633,7 @@ declare const router: {
2277
2633
  sqlmodel: "sqlmodel";
2278
2634
  "tortoise-orm": "tortoise-orm";
2279
2635
  peewee: "peewee";
2636
+ pymongo: "pymongo";
2280
2637
  }>>;
2281
2638
  pythonValidation: z.ZodOptional<z.ZodEnum<{
2282
2639
  none: "none";
@@ -2284,21 +2641,27 @@ declare const router: {
2284
2641
  }>>;
2285
2642
  pythonAi: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2286
2643
  none: "none";
2644
+ mcp: "mcp";
2287
2645
  langgraph: "langgraph";
2646
+ "openai-sdk": "openai-sdk";
2647
+ "anthropic-sdk": "anthropic-sdk";
2288
2648
  "google-adk": "google-adk";
2289
2649
  langchain: "langchain";
2290
2650
  llamaindex: "llamaindex";
2291
- "openai-sdk": "openai-sdk";
2292
- "anthropic-sdk": "anthropic-sdk";
2293
2651
  crewai: "crewai";
2294
2652
  haystack: "haystack";
2295
2653
  "pydantic-ai": "pydantic-ai";
2296
2654
  smolagents: "smolagents";
2655
+ pytorch: "pytorch";
2656
+ transformers: "transformers";
2657
+ "scikit-learn": "scikit-learn";
2658
+ tensorflow: "tensorflow";
2297
2659
  }>>>;
2298
2660
  pythonAuth: z.ZodOptional<z.ZodEnum<{
2299
2661
  none: "none";
2300
2662
  authlib: "authlib";
2301
2663
  jwt: "jwt";
2664
+ pyjwt: "pyjwt";
2302
2665
  "fastapi-users": "fastapi-users";
2303
2666
  }>>;
2304
2667
  pythonApi: z.ZodOptional<z.ZodEnum<{
@@ -2329,6 +2692,7 @@ declare const router: {
2329
2692
  none: "none";
2330
2693
  pytest: "pytest";
2331
2694
  hypothesis: "hypothesis";
2695
+ "pytest-cov": "pytest-cov";
2332
2696
  }>>>;
2333
2697
  pythonCaching: z.ZodOptional<z.ZodEnum<{
2334
2698
  none: "none";
@@ -2343,6 +2707,7 @@ declare const router: {
2343
2707
  pythonObservability: z.ZodOptional<z.ZodEnum<{
2344
2708
  none: "none";
2345
2709
  opentelemetry: "opentelemetry";
2710
+ "prometheus-client": "prometheus-client";
2346
2711
  }>>;
2347
2712
  pythonCli: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2348
2713
  none: "none";
@@ -2350,6 +2715,37 @@ declare const router: {
2350
2715
  click: "click";
2351
2716
  rich: "rich";
2352
2717
  }>>>;
2718
+ pythonCloudSdk: z.ZodOptional<z.ZodEnum<{
2719
+ none: "none";
2720
+ boto3: "boto3";
2721
+ }>>;
2722
+ pythonHttpClient: z.ZodOptional<z.ZodEnum<{
2723
+ none: "none";
2724
+ requests: "requests";
2725
+ }>>;
2726
+ pythonData: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2727
+ none: "none";
2728
+ numpy: "numpy";
2729
+ pandas: "pandas";
2730
+ scipy: "scipy";
2731
+ }>>>;
2732
+ pythonMedia: z.ZodOptional<z.ZodEnum<{
2733
+ none: "none";
2734
+ pillow: "pillow";
2735
+ }>>;
2736
+ pythonServer: z.ZodOptional<z.ZodEnum<{
2737
+ none: "none";
2738
+ gunicorn: "gunicorn";
2739
+ }>>;
2740
+ pythonPackageManager: z.ZodOptional<z.ZodEnum<{
2741
+ none: "none";
2742
+ uv: "uv";
2743
+ poetry: "poetry";
2744
+ }>>;
2745
+ pythonMessageQueue: z.ZodOptional<z.ZodEnum<{
2746
+ none: "none";
2747
+ "confluent-kafka": "confluent-kafka";
2748
+ }>>;
2353
2749
  goWebFramework: z.ZodOptional<z.ZodEnum<{
2354
2750
  none: "none";
2355
2751
  gin: "gin";
@@ -2357,10 +2753,14 @@ declare const router: {
2357
2753
  fiber: "fiber";
2358
2754
  chi: "chi";
2359
2755
  stdlib: "stdlib";
2756
+ "go-zero": "go-zero";
2757
+ kratos: "kratos";
2758
+ httprouter: "httprouter";
2360
2759
  }>>;
2361
2760
  goOrm: z.ZodOptional<z.ZodEnum<{
2362
2761
  none: "none";
2363
2762
  bun: "bun";
2763
+ sqlx: "sqlx";
2364
2764
  gorm: "gorm";
2365
2765
  sqlc: "sqlc";
2366
2766
  ent: "ent";
@@ -2369,6 +2769,9 @@ declare const router: {
2369
2769
  none: "none";
2370
2770
  "grpc-go": "grpc-go";
2371
2771
  gqlgen: "gqlgen";
2772
+ "grpc-gateway": "grpc-gateway";
2773
+ "connect-go": "connect-go";
2774
+ "oapi-codegen": "oapi-codegen";
2372
2775
  }>>;
2373
2776
  goCli: z.ZodOptional<z.ZodEnum<{
2374
2777
  none: "none";
@@ -2385,6 +2788,7 @@ declare const router: {
2385
2788
  }>>;
2386
2789
  goAuth: z.ZodOptional<z.ZodEnum<{
2387
2790
  none: "none";
2791
+ oauth2: "oauth2";
2388
2792
  jwt: "jwt";
2389
2793
  casbin: "casbin";
2390
2794
  goth: "goth";
@@ -2393,6 +2797,9 @@ declare const router: {
2393
2797
  none: "none";
2394
2798
  testify: "testify";
2395
2799
  gomock: "gomock";
2800
+ testcontainers: "testcontainers";
2801
+ "ginkgo-gomega": "ginkgo-gomega";
2802
+ mockery: "mockery";
2396
2803
  }>>>;
2397
2804
  goRealtime: z.ZodOptional<z.ZodEnum<{
2398
2805
  none: "none";
@@ -2403,6 +2810,8 @@ declare const router: {
2403
2810
  none: "none";
2404
2811
  nats: "nats";
2405
2812
  watermill: "watermill";
2813
+ "kafka-go": "kafka-go";
2814
+ asynq: "asynq";
2406
2815
  }>>;
2407
2816
  goCaching: z.ZodOptional<z.ZodEnum<{
2408
2817
  none: "none";
@@ -2417,6 +2826,31 @@ declare const router: {
2417
2826
  goObservability: z.ZodOptional<z.ZodEnum<{
2418
2827
  none: "none";
2419
2828
  opentelemetry: "opentelemetry";
2829
+ prometheus: "prometheus";
2830
+ }>>;
2831
+ goValidation: z.ZodOptional<z.ZodEnum<{
2832
+ none: "none";
2833
+ validator: "validator";
2834
+ }>>;
2835
+ goQuality: z.ZodOptional<z.ZodEnum<{
2836
+ none: "none";
2837
+ "golangci-lint": "golangci-lint";
2838
+ }>>;
2839
+ goMigrations: z.ZodOptional<z.ZodEnum<{
2840
+ none: "none";
2841
+ "golang-migrate": "golang-migrate";
2842
+ }>>;
2843
+ goTemplating: z.ZodOptional<z.ZodEnum<{
2844
+ none: "none";
2845
+ templ: "templ";
2846
+ }>>;
2847
+ goProtoTooling: z.ZodOptional<z.ZodEnum<{
2848
+ none: "none";
2849
+ buf: "buf";
2850
+ }>>;
2851
+ goDI: z.ZodOptional<z.ZodEnum<{
2852
+ none: "none";
2853
+ fx: "fx";
2420
2854
  }>>;
2421
2855
  javaLanguage: z.ZodOptional<z.ZodEnum<{
2422
2856
  java: "java";
@@ -2475,12 +2909,32 @@ declare const router: {
2475
2909
  thymeleaf: "thymeleaf";
2476
2910
  "spring-amqp": "spring-amqp";
2477
2911
  "opentelemetry-java": "opentelemetry-java";
2912
+ "spring-data-redis": "spring-data-redis";
2913
+ "spring-data-mongodb": "spring-data-mongodb";
2914
+ "spring-data-elasticsearch": "spring-data-elasticsearch";
2915
+ "spring-data-neo4j": "spring-data-neo4j";
2916
+ "spring-data-cassandra": "spring-data-cassandra";
2917
+ "spring-data-couchbase": "spring-data-couchbase";
2918
+ "spring-data-jdbc": "spring-data-jdbc";
2919
+ "spring-data-rest": "spring-data-rest";
2920
+ "spring-quartz": "spring-quartz";
2921
+ "spring-pulsar": "spring-pulsar";
2922
+ "spring-integration": "spring-integration";
2923
+ "spring-websocket": "spring-websocket";
2924
+ "spring-rsocket": "spring-rsocket";
2925
+ "spring-hateoas": "spring-hateoas";
2926
+ "spring-session-redis": "spring-session-redis";
2927
+ "spring-session-jdbc": "spring-session-jdbc";
2928
+ "spring-ldap": "spring-ldap";
2929
+ "spring-oauth2-client": "spring-oauth2-client";
2930
+ "spring-saml2": "spring-saml2";
2931
+ "spring-restclient": "spring-restclient";
2478
2932
  }>>>;
2479
2933
  javaTestingLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2480
2934
  none: "none";
2935
+ testcontainers: "testcontainers";
2481
2936
  junit5: "junit5";
2482
2937
  mockito: "mockito";
2483
- testcontainers: "testcontainers";
2484
2938
  assertj: "assertj";
2485
2939
  "rest-assured": "rest-assured";
2486
2940
  wiremock: "wiremock";
@@ -2552,6 +3006,29 @@ declare const router: {
2552
3006
  azure: "azure";
2553
3007
  aws: "aws";
2554
3008
  }>>;
3009
+ dotnetLibraries: z.ZodOptional<z.ZodArray<z.ZodEnum<{
3010
+ none: "none";
3011
+ sentry: "sentry";
3012
+ automapper: "automapper";
3013
+ mediatr: "mediatr";
3014
+ fastendpoints: "fastendpoints";
3015
+ "api-versioning": "api-versioning";
3016
+ scalar: "scalar";
3017
+ polly: "polly";
3018
+ masstransit: "masstransit";
3019
+ rebus: "rebus";
3020
+ coravel: "coravel";
3021
+ "magic-onion": "magic-onion";
3022
+ "prometheus-net": "prometheus-net";
3023
+ seq: "seq";
3024
+ "application-insights": "application-insights";
3025
+ "mongodb-driver": "mongodb-driver";
3026
+ nhibernate: "nhibernate";
3027
+ mapster: "mapster";
3028
+ scrutor: "scrutor";
3029
+ refit: "refit";
3030
+ "fluent-email": "fluent-email";
3031
+ }>>>;
2555
3032
  elixirWebFramework: z.ZodOptional<z.ZodEnum<{
2556
3033
  none: "none";
2557
3034
  phoenix: "phoenix";
@@ -2561,18 +3038,22 @@ declare const router: {
2561
3038
  none: "none";
2562
3039
  ecto: "ecto";
2563
3040
  "ecto-sql": "ecto-sql";
3041
+ myxql: "myxql";
3042
+ ecto_sqlite3: "ecto_sqlite3";
2564
3043
  }>>;
2565
3044
  elixirAuth: z.ZodOptional<z.ZodEnum<{
2566
3045
  none: "none";
2567
3046
  "phx-gen-auth": "phx-gen-auth";
2568
3047
  ueberauth: "ueberauth";
2569
3048
  guardian: "guardian";
3049
+ pow: "pow";
2570
3050
  }>>;
2571
3051
  elixirApi: z.ZodOptional<z.ZodEnum<{
2572
3052
  none: "none";
2573
3053
  grpc: "grpc";
2574
3054
  rest: "rest";
2575
3055
  absinthe: "absinthe";
3056
+ open_api_spex: "open_api_spex";
2576
3057
  }>>;
2577
3058
  elixirRealtime: z.ZodOptional<z.ZodEnum<{
2578
3059
  none: "none";
@@ -2595,6 +3076,7 @@ declare const router: {
2595
3076
  none: "none";
2596
3077
  req: "req";
2597
3078
  finch: "finch";
3079
+ tesla: "tesla";
2598
3080
  }>>;
2599
3081
  elixirJson: z.ZodOptional<z.ZodEnum<{
2600
3082
  none: "none";
@@ -2603,15 +3085,18 @@ declare const router: {
2603
3085
  elixirEmail: z.ZodOptional<z.ZodEnum<{
2604
3086
  none: "none";
2605
3087
  swoosh: "swoosh";
3088
+ bamboo: "bamboo";
2606
3089
  }>>;
2607
3090
  elixirCaching: z.ZodOptional<z.ZodEnum<{
2608
3091
  none: "none";
2609
3092
  cachex: "cachex";
2610
3093
  nebulex: "nebulex";
3094
+ redix: "redix";
2611
3095
  }>>;
2612
3096
  elixirObservability: z.ZodOptional<z.ZodEnum<{
2613
3097
  none: "none";
2614
3098
  opentelemetry: "opentelemetry";
3099
+ sentry: "sentry";
2615
3100
  telemetry: "telemetry";
2616
3101
  prom_ex: "prom_ex";
2617
3102
  }>>;
@@ -2621,12 +3106,37 @@ declare const router: {
2621
3106
  mox: "mox";
2622
3107
  bypass: "bypass";
2623
3108
  wallaby: "wallaby";
3109
+ stream_data: "stream_data";
3110
+ ex_machina: "ex_machina";
2624
3111
  }>>;
2625
3112
  elixirQuality: z.ZodOptional<z.ZodEnum<{
2626
3113
  none: "none";
2627
3114
  credo: "credo";
2628
3115
  dialyxir: "dialyxir";
2629
3116
  sobelow: "sobelow";
3117
+ excoveralls: "excoveralls";
3118
+ mix_audit: "mix_audit";
3119
+ }>>;
3120
+ elixirI18n: z.ZodOptional<z.ZodEnum<{
3121
+ none: "none";
3122
+ gettext: "gettext";
3123
+ }>>;
3124
+ elixirHttpServer: z.ZodOptional<z.ZodEnum<{
3125
+ none: "none";
3126
+ bandit: "bandit";
3127
+ cowboy: "cowboy";
3128
+ }>>;
3129
+ elixirApplicationFramework: z.ZodOptional<z.ZodEnum<{
3130
+ none: "none";
3131
+ ash: "ash";
3132
+ }>>;
3133
+ elixirDocumentation: z.ZodOptional<z.ZodEnum<{
3134
+ none: "none";
3135
+ ex_doc: "ex_doc";
3136
+ }>>;
3137
+ elixirClustering: z.ZodOptional<z.ZodEnum<{
3138
+ none: "none";
3139
+ libcluster: "libcluster";
2630
3140
  }>>;
2631
3141
  elixirDeploy: z.ZodOptional<z.ZodEnum<{
2632
3142
  none: "none";
@@ -2639,6 +3149,9 @@ declare const router: {
2639
3149
  none: "none";
2640
3150
  nx: "nx";
2641
3151
  broadway: "broadway";
3152
+ ex_aws: "ex_aws";
3153
+ floki: "floki";
3154
+ rustler: "rustler";
2642
3155
  }>>>;
2643
3156
  part: z.ZodOptional<z.ZodArray<z.ZodString>>;
2644
3157
  dryRun: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -2657,6 +3170,8 @@ declare const router: {
2657
3170
  "tanstack-router": "tanstack-router";
2658
3171
  "react-router": "react-router";
2659
3172
  "react-vite": "react-vite";
3173
+ "vanilla-vite": "vanilla-vite";
3174
+ vue: "vue";
2660
3175
  "tanstack-start": "tanstack-start";
2661
3176
  next: "next";
2662
3177
  vinext: "vinext";
@@ -2703,6 +3218,15 @@ declare const router: {
2703
3218
  devcontainer: "devcontainer";
2704
3219
  "docker-compose": "docker-compose";
2705
3220
  "github-actions": "github-actions";
3221
+ eslint: "eslint";
3222
+ prettier: "prettier";
3223
+ axios: "axios";
3224
+ firebase: "firebase";
3225
+ "graphql-codegen": "graphql-codegen";
3226
+ "openapi-typescript": "openapi-typescript";
3227
+ "apollo-client": "apollo-client";
3228
+ electron: "electron";
3229
+ capacitor: "capacitor";
2706
3230
  }>>>;
2707
3231
  projectDir: z.ZodOptional<z.ZodString>;
2708
3232
  acknowledgeArchitectureChange: z.ZodOptional<z.ZodBoolean>;
@@ -2882,8 +3406,14 @@ type Frontend = import__better_fullstack_types.Frontend;
2882
3406
  type GoApi = import__better_fullstack_types.GoApi;
2883
3407
  type GoAuth = import__better_fullstack_types.GoAuth;
2884
3408
  type GoCli = import__better_fullstack_types.GoCli;
3409
+ type GoDI = import__better_fullstack_types.GoDI;
2885
3410
  type GoLogging = import__better_fullstack_types.GoLogging;
3411
+ type GoMigrations = import__better_fullstack_types.GoMigrations;
2886
3412
  type GoOrm = import__better_fullstack_types.GoOrm;
3413
+ type GoProtoTooling = import__better_fullstack_types.GoProtoTooling;
3414
+ type GoQuality = import__better_fullstack_types.GoQuality;
3415
+ type GoTemplating = import__better_fullstack_types.GoTemplating;
3416
+ type GoValidation = import__better_fullstack_types.GoValidation;
2887
3417
  type GoWebFramework = import__better_fullstack_types.GoWebFramework;
2888
3418
  type InitResult = import__better_fullstack_types.InitResult;
2889
3419
  type JavaAuth = import__better_fullstack_types.JavaAuth;
@@ -2915,4 +3445,4 @@ type ServerDeploy = import__better_fullstack_types.ServerDeploy;
2915
3445
  type Template = import__better_fullstack_types.Template;
2916
3446
  type UILibrary = import__better_fullstack_types.UILibrary;
2917
3447
  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 };
3448
+ 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 };