@better-fullstack/types 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,6 @@
1
- import { $ as FrontendSchema, $t as RUST_WEB_FRAMEWORK_VALUES, A as DATABASE_SETUP_VALUES, An as StateManagementSchema, At as PYTHON_WEB_FRAMEWORK_VALUES, B as EcosystemSchema, Bn as VersionChannelSchema, Bt as PythonTaskQueueSchema, C as CLIInputSchema, Cn as ShadcnBaseColorSchema, Ct as PYTHON_AI_VALUES, D as CSS_FRAMEWORK_VALUES, Dn as ShadcnIconLibrarySchema, Dt as PYTHON_QUALITY_VALUES, E as CSSFrameworkSchema, En as ShadcnFontSchema, Et as PYTHON_ORM_VALUES, F as DirectoryConflictSchema, Fn as UILibrarySchema, Ft as PythonAiSchema, G as FILE_STORAGE_VALUES, Gt as RUST_API_VALUES, H as EmailSchema, Hn as WebDeploySchema, Ht as PythonWebFrameworkSchema, I as ECOSYSTEM_VALUES, In as UI_LIBRARY_VALUES, It as PythonAuthSchema, J as FRONTEND_VALUES, Jt as RUST_ERROR_HANDLING_VALUES, K as FILE_UPLOAD_VALUES, Kt as RUST_CACHING_VALUES, L as EFFECT_VALUES, Ln as VALIDATION_VALUES, Lt as PythonGraphqlSchema, M as DIRECTORY_CONFLICT_VALUES, Mn as TESTING_VALUES, Mt as PaymentsSchema, N as DatabaseSchema, Nn as TemplateSchema, Nt as ProjectConfigSchema, O as CachingSchema, On as ShadcnRadiusSchema, Ot as PYTHON_TASK_QUEUE_VALUES, P as DatabaseSetupSchema, Pn as TestingSchema, Pt as ProjectNameSchema, Q as FormsSchema, Qt as RUST_ORM_VALUES, R as EMAIL_VALUES, Rn as VERSION_CHANNEL_VALUES, Rt as PythonOrmSchema, S as CACHING_VALUES, Sn as ServerDeploySchema, St as PAYMENTS_VALUES, T as CMS_VALUES, Tn as ShadcnColorThemeSchema, Tt as PYTHON_GRAPHQL_VALUES, U as ExamplesSchema, Ut as REALTIME_VALUES, V as EffectSchema, Vn as WEB_DEPLOY_VALUES, Vt as PythonValidationSchema, W as FEATURE_FLAGS_VALUES, Wt as RUNTIME_VALUES, X as FileStorageSchema, Xt as RUST_LIBRARIES_VALUES, Y as FeatureFlagsSchema, Yt as RUST_FRONTEND_VALUES, Z as FileUploadSchema, Zt as RUST_LOGGING_VALUES, _ as AuthSchema, _n as SHADCN_ICON_LIBRARY_VALUES, _t as OBSERVABILITY_VALUES, a as ANALYTICS_VALUES, an as RustErrorHandlingSchema, at as GoApiSchema, b as BetterTStackConfigFileSchema, bn as STATE_MANAGEMENT_VALUES, bt as ObservabilitySchema, c as API_VALUES, cn as RustLoggingSchema, ct as GoOrmSchema, d as AddInputSchema, dn as SEARCH_VALUES, dt as I18nSchema, en as RealtimeSchema, et as GO_API_VALUES, f as AddonsSchema, fn as SERVER_DEPLOY_VALUES, ft as InitResultSchema, g as AstroIntegrationSchema, gn as SHADCN_FONT_VALUES, gt as LoggingSchema, h as AnimationSchema, hn as SHADCN_COLOR_THEME_VALUES, ht as LOGGING_VALUES, i as AI_VALUES, in as RustCliSchema, it as GO_WEB_FRAMEWORK_VALUES, j as DATABASE_VALUES, jn as TEMPLATE_VALUES, jt as PackageManagerSchema, k as CreateInputSchema, kn as ShadcnStyleSchema, kt as PYTHON_VALIDATION_VALUES, l as ASTRO_INTEGRATION_VALUES, ln as RustOrmSchema, lt as GoWebFrameworkSchema, m as AnalyticsSchema, mn as SHADCN_BASE_VALUES, mt as JobQueueSchema, n as AISchema, nn as RustApiSchema, nt as GO_LOGGING_VALUES, o as ANIMATION_VALUES, on as RustFrontendSchema, ot as GoCliSchema, p as AiDocsSchema, pn as SHADCN_BASE_COLOR_VALUES, pt as JOB_QUEUE_VALUES, q as FORMS_VALUES, qt as RUST_CLI_VALUES, r as AI_DOCS_VALUES, rn as RustCachingSchema, rt as GO_ORM_VALUES, s as APISchema, sn as RustLibrariesSchema, st as GoLoggingSchema, t as ADDONS_VALUES, tn as RuntimeSchema, tt as GO_CLI_VALUES, u as AUTH_VALUES, un as RustWebFrameworkSchema, ut as I18N_VALUES, v as BACKEND_VALUES, vn as SHADCN_RADIUS_VALUES, vt as ORMSchema, w as CMSSchema, wn as ShadcnBaseSchema, wt as PYTHON_AUTH_VALUES, x as BetterTStackConfigSchema, xn as SearchSchema, xt as PACKAGE_MANAGER_VALUES, y as BackendSchema, yn as SHADCN_STYLE_VALUES, yt as ORM_VALUES, z as EXAMPLES_VALUES, zn as ValidationSchema, zt as PythonQualitySchema } from "./schemas-AEYe9g7W.mjs";
1
+ import { $ as FrontendSchema, $n as VALIDATION_VALUES, $t as PythonQualitySchema, A as DATABASE_SETUP_VALUES, An as SHADCN_BASE_VALUES, At as LoggingSchema, B as EcosystemSchema, Bn as ShadcnBaseSchema, Bt as PYTHON_ORM_VALUES, C as CLIInputSchema, Cn as RustLibrariesSchema, Ct as JavaBuildToolSchema, D as CSS_FRAMEWORK_VALUES, Dn as SEARCH_VALUES, Dt as JavaWebFrameworkSchema, E as CSSFrameworkSchema, En as RustWebFrameworkSchema, Et as JavaTestingLibrariesSchema, F as DirectoryConflictSchema, Fn as SHADCN_STYLE_VALUES, Ft as PACKAGE_MANAGER_VALUES, G as FILE_STORAGE_VALUES, Gn as ShadcnStyleSchema, Gt as PackageManagerSchema, H as EmailSchema, Hn as ShadcnFontSchema, Ht as PYTHON_TASK_QUEUE_VALUES, I as ECOSYSTEM_VALUES, In as STATE_MANAGEMENT_VALUES, It as PAYMENTS_VALUES, J as FRONTEND_VALUES, Jn as TESTING_VALUES, Jt as ProjectNameSchema, K as FILE_UPLOAD_VALUES, Kn as StateManagementSchema, Kt as PaymentsSchema, L as EFFECT_VALUES, Ln as SearchSchema, Lt as PYTHON_AI_VALUES, M as DIRECTORY_CONFLICT_VALUES, Mn as SHADCN_FONT_VALUES, Mt as ORMSchema, N as DatabaseSchema, Nn as SHADCN_ICON_LIBRARY_VALUES, Nt as ORM_VALUES, O as CachingSchema, On as SERVER_DEPLOY_VALUES, Ot as JobQueueSchema, P as DatabaseSetupSchema, Pn as SHADCN_RADIUS_VALUES, Pt as ObservabilitySchema, Q as FormsSchema, Qn as UI_LIBRARY_VALUES, Qt as PythonOrmSchema, R as EMAIL_VALUES, Rn as ServerDeploySchema, Rt as PYTHON_AUTH_VALUES, S as CACHING_VALUES, Sn as RustFrontendSchema, St as JavaAuthSchema, T as CMS_VALUES, Tn as RustOrmSchema, Tt as JavaOrmSchema, U as ExamplesSchema, Un as ShadcnIconLibrarySchema, Ut as PYTHON_VALIDATION_VALUES, V as EffectSchema, Vn as ShadcnColorThemeSchema, Vt as PYTHON_QUALITY_VALUES, W as FEATURE_FLAGS_VALUES, Wn as ShadcnRadiusSchema, Wt as PYTHON_WEB_FRAMEWORK_VALUES, X as FileStorageSchema, Xn as TestingSchema, Xt as PythonAuthSchema, Y as FeatureFlagsSchema, Yn as TemplateSchema, Yt as PythonAiSchema, Z as FileUploadSchema, Zn as UILibrarySchema, Zt as PythonGraphqlSchema, _ as AuthSchema, _n as RustApiSchema, _t as JAVA_LIBRARIES_VALUES, a as ANALYTICS_VALUES, an as RUST_API_VALUES, at as GO_WEB_FRAMEWORK_VALUES, b as BetterTStackConfigFileSchema, bn as RustCliSchema, bt as JAVA_WEB_FRAMEWORK_VALUES, c as API_VALUES, cn as RUST_CLI_VALUES, ct as GoCliSchema, d as AddInputSchema, dn as RUST_LIBRARIES_VALUES, dt as GoWebFrameworkSchema, en as PythonTaskQueueSchema, er as VERSION_CHANNEL_VALUES, et as GO_API_VALUES, f as AddonsSchema, fn as RUST_LOGGING_VALUES, ft as I18N_VALUES, g as AstroIntegrationSchema, gn as RuntimeSchema, gt as JAVA_BUILD_TOOL_VALUES, h as AnimationSchema, hn as RealtimeSchema, ht as JAVA_AUTH_VALUES, i as AI_VALUES, in as RUNTIME_VALUES, ir as WebDeploySchema, it as GO_ORM_VALUES, j as DATABASE_VALUES, jn as SHADCN_COLOR_THEME_VALUES, jt as OBSERVABILITY_VALUES, k as CreateInputSchema, kn as SHADCN_BASE_COLOR_VALUES, kt as LOGGING_VALUES, l as ASTRO_INTEGRATION_VALUES, ln as RUST_ERROR_HANDLING_VALUES, lt as GoLoggingSchema, m as AnalyticsSchema, mn as RUST_WEB_FRAMEWORK_VALUES, mt as InitResultSchema, n as AISchema, nn as PythonWebFrameworkSchema, nr as VersionChannelSchema, nt as GO_CLI_VALUES, o as ANIMATION_VALUES, on as RUST_AUTH_VALUES, ot as GoApiSchema, p as AiDocsSchema, pn as RUST_ORM_VALUES, pt as I18nSchema, q as FORMS_VALUES, qn as TEMPLATE_VALUES, qt as ProjectConfigSchema, r as AI_DOCS_VALUES, rn as REALTIME_VALUES, rr as WEB_DEPLOY_VALUES, rt as GO_LOGGING_VALUES, s as APISchema, sn as RUST_CACHING_VALUES, st as GoAuthSchema, t as ADDONS_VALUES, tn as PythonValidationSchema, tr as ValidationSchema, tt as GO_AUTH_VALUES, u as AUTH_VALUES, un as RUST_FRONTEND_VALUES, ut as GoOrmSchema, v as BACKEND_VALUES, vn as RustAuthSchema, vt as JAVA_ORM_VALUES, w as CMSSchema, wn as RustLoggingSchema, wt as JavaLibrariesSchema, x as BetterTStackConfigSchema, xn as RustErrorHandlingSchema, xt as JOB_QUEUE_VALUES, y as BackendSchema, yn as RustCachingSchema, yt as JAVA_TESTING_LIBRARIES_VALUES, z as EXAMPLES_VALUES, zn as ShadcnBaseColorSchema, zt as PYTHON_GRAPHQL_VALUES } from "./schemas-Bg3JFNO5.mjs";
2
+ import "./types.mjs";
3
+ import { t as createCliDefaultProjectConfigBase } from "./defaults-aGwVXJh5.mjs";
2
4
 
3
5
  //#region src/capabilities.ts
4
6
  const CAPABILITY_DEFINITIONS = { auth: [
@@ -260,7 +262,14 @@ const CATEGORY_ORDER = [
260
262
  "goOrm",
261
263
  "goApi",
262
264
  "goCli",
263
- "goLogging"
265
+ "goLogging",
266
+ "goAuth",
267
+ "javaWebFramework",
268
+ "javaBuildTool",
269
+ "javaOrm",
270
+ "javaAuth",
271
+ "javaLibraries",
272
+ "javaTestingLibraries"
264
273
  ];
265
274
  const DEFAULT_RUNTIME = "bun";
266
275
  function validateProjectName(name) {
@@ -319,7 +328,8 @@ const getCategoryDisplayName = (categoryKey) => {
319
328
  rustLibraries: "Rust Core Libraries",
320
329
  rustLogging: "Rust Logging",
321
330
  rustErrorHandling: "Rust Error Handling",
322
- rustCaching: "Rust Caching"
331
+ rustCaching: "Rust Caching",
332
+ rustAuth: "Rust Auth"
323
333
  };
324
334
  const pythonCategoryNames = {
325
335
  pythonWebFramework: "Python Web Framework",
@@ -336,11 +346,21 @@ const getCategoryDisplayName = (categoryKey) => {
336
346
  goOrm: "Go ORM / Database",
337
347
  goApi: "Go API Layer",
338
348
  goCli: "Go CLI Tools",
339
- goLogging: "Go Logging"
349
+ goLogging: "Go Logging",
350
+ goAuth: "Go Auth"
351
+ };
352
+ const javaCategoryNames = {
353
+ javaWebFramework: "Java Web Framework",
354
+ javaBuildTool: "Java Build Tool",
355
+ javaOrm: "Java ORM / Database",
356
+ javaAuth: "Java Auth",
357
+ javaLibraries: "Java Libraries",
358
+ javaTestingLibraries: "Java Testing Libraries"
340
359
  };
341
360
  if (rustCategoryNames[categoryKey]) return rustCategoryNames[categoryKey];
342
361
  if (pythonCategoryNames[categoryKey]) return pythonCategoryNames[categoryKey];
343
362
  if (goCategoryNames[categoryKey]) return goCategoryNames[categoryKey];
363
+ if (javaCategoryNames[categoryKey]) return javaCategoryNames[categoryKey];
344
364
  const tsCategoryNames = { i18n: "Internationalization (i18n)" };
345
365
  if (tsCategoryNames[categoryKey]) return tsCategoryNames[categoryKey];
346
366
  const result = categoryKey.replace(/([A-Z])/g, " $1");
@@ -1027,6 +1047,52 @@ const analyzeStackCompatibility = (stack) => {
1027
1047
  });
1028
1048
  }
1029
1049
  }
1050
+ if (nextStack.ecosystem === "java") {
1051
+ if (nextStack.javaBuildTool === "none") {
1052
+ if (nextStack.javaWebFramework !== "none") {
1053
+ nextStack.javaWebFramework = "none";
1054
+ changed = true;
1055
+ changes.push({
1056
+ category: "javaBuildTool",
1057
+ message: "Java web framework set to 'None' (source-only Java does not use a framework)"
1058
+ });
1059
+ }
1060
+ if (nextStack.javaTestingLibraries.some((library) => library !== "none")) {
1061
+ nextStack.javaTestingLibraries = [];
1062
+ changed = true;
1063
+ changes.push({
1064
+ category: "javaBuildTool",
1065
+ message: "Java testing libraries cleared (a build tool is required for test dependencies)"
1066
+ });
1067
+ }
1068
+ }
1069
+ if (nextStack.javaWebFramework !== "spring-boot" || nextStack.javaBuildTool === "none") {
1070
+ if (nextStack.javaOrm !== "none") {
1071
+ nextStack.javaOrm = "none";
1072
+ changed = true;
1073
+ changes.push({
1074
+ category: "javaWebFramework",
1075
+ message: "Java ORM set to 'None' (current scaffold only supports it with Spring Boot)"
1076
+ });
1077
+ }
1078
+ if (nextStack.javaAuth !== "none") {
1079
+ nextStack.javaAuth = "none";
1080
+ changed = true;
1081
+ changes.push({
1082
+ category: "javaWebFramework",
1083
+ message: "Java auth set to 'None' (current scaffold only supports it with Spring Boot)"
1084
+ });
1085
+ }
1086
+ if (nextStack.javaLibraries.some((library) => library !== "none")) {
1087
+ nextStack.javaLibraries = [];
1088
+ changed = true;
1089
+ changes.push({
1090
+ category: "javaWebFramework",
1091
+ message: "Java libraries cleared (Spring libraries require Spring Boot)"
1092
+ });
1093
+ }
1094
+ }
1095
+ }
1030
1096
  if (nextStack.webDeploy !== "none" && !nextStack.webFrontend.some((f) => f !== "none")) {
1031
1097
  nextStack.webDeploy = "none";
1032
1098
  changed = true;
@@ -1389,6 +1455,34 @@ const getDisabledReason = (currentStack, category, optionId) => {
1389
1455
  if (!currentStack.webFrontend.includes("next")) return "next-intl requires Next.js";
1390
1456
  }
1391
1457
  }
1458
+ if (category === "javaWebFramework") {
1459
+ if (optionId === "spring-boot" && currentStack.javaBuildTool === "none") return "Spring Boot requires Maven or Gradle";
1460
+ }
1461
+ if (category === "javaBuildTool") {
1462
+ if (optionId === "none") {
1463
+ if (currentStack.javaWebFramework === "spring-boot") return "Spring Boot requires Maven or Gradle";
1464
+ if (currentStack.javaOrm !== "none") return "Java ORM support requires Maven or Gradle";
1465
+ if (currentStack.javaAuth !== "none") return "Java auth support requires Maven or Gradle";
1466
+ if (currentStack.javaLibraries.some((library) => library !== "none")) return "Java libraries require Maven or Gradle";
1467
+ if (currentStack.javaTestingLibraries.some((library) => library !== "none")) return "Java testing libraries require Maven or Gradle";
1468
+ }
1469
+ }
1470
+ if (category === "javaOrm") {
1471
+ if (optionId !== "none" && currentStack.javaWebFramework !== "spring-boot") return "Java ORM support currently requires Spring Boot";
1472
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java ORM support requires Maven or Gradle";
1473
+ }
1474
+ if (category === "javaAuth") {
1475
+ if (optionId !== "none" && currentStack.javaWebFramework !== "spring-boot") return "Java auth support currently requires Spring Boot";
1476
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java auth support requires Maven or Gradle";
1477
+ }
1478
+ if (category === "javaLibraries") {
1479
+ if (optionId !== "none" && currentStack.javaWebFramework !== "spring-boot") return "Spring libraries currently require Spring Boot in the Java scaffold";
1480
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java libraries require Maven or Gradle";
1481
+ if (optionId === "flyway" && currentStack.javaOrm !== "spring-data-jpa") return "Flyway currently requires Spring Data JPA in the Java scaffold";
1482
+ }
1483
+ if (category === "javaTestingLibraries") {
1484
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java testing libraries require Maven or Gradle";
1485
+ }
1392
1486
  return null;
1393
1487
  };
1394
1488
  const isOptionCompatible = (currentStack, category, optionId) => {
@@ -1777,7 +1871,7 @@ function isFrontendAllowedWithBackend(frontend, backend, auth) {
1777
1871
  if (backend === "convex" && frontend === "redwood") return false;
1778
1872
  if (backend === "convex" && frontend === "fresh") return false;
1779
1873
  if (frontend === "qwik" && backend && backend !== "none") return false;
1780
- if (frontend === "angular" && backend && backend !== "none") return false;
1874
+ if (frontend === "angular" && backend === "self") return false;
1781
1875
  if (frontend === "redwood" && backend && backend !== "none") return false;
1782
1876
  if (frontend === "fresh" && backend && backend !== "none") return false;
1783
1877
  if (auth && auth !== "none") return getCapabilityDisabledReason("auth", {
@@ -1916,7 +2010,11 @@ function evaluateCompatibility(input) {
1916
2010
  ["forms", input.forms],
1917
2011
  ["stateManagement", input.stateManagement],
1918
2012
  ["animation", input.animation],
1919
- ["ai", input.aiSdk]
2013
+ ["ai", input.aiSdk],
2014
+ ["javaWebFramework", input.javaWebFramework],
2015
+ ["javaBuildTool", input.javaBuildTool],
2016
+ ["javaOrm", input.javaOrm],
2017
+ ["javaAuth", input.javaAuth]
1920
2018
  ];
1921
2019
  for (const [category, optionId] of scalarChecks) {
1922
2020
  const reason = getDisabledReason(input, category, optionId);
@@ -1949,6 +2047,24 @@ function evaluateCompatibility(input) {
1949
2047
  optionId: addon
1950
2048
  });
1951
2049
  }
2050
+ for (const javaLibrary of input.javaLibraries) {
2051
+ const reason = getDisabledReason(input, "javaLibraries", javaLibrary);
2052
+ if (reason) issues.push({
2053
+ code: "INCOMPATIBLE_JAVA_LIBRARY",
2054
+ message: reason,
2055
+ category: "javaLibraries",
2056
+ optionId: javaLibrary
2057
+ });
2058
+ }
2059
+ for (const testingLibrary of input.javaTestingLibraries) {
2060
+ const reason = getDisabledReason(input, "javaTestingLibraries", testingLibrary);
2061
+ if (reason) issues.push({
2062
+ code: "INCOMPATIBLE_JAVA_TESTING_LIBRARY",
2063
+ message: reason,
2064
+ category: "javaTestingLibraries",
2065
+ optionId: testingLibrary
2066
+ });
2067
+ }
1952
2068
  return { issues };
1953
2069
  }
1954
2070
 
@@ -2030,7 +2146,11 @@ const MULTI_SELECT_CATEGORIES = new Set([
2030
2146
  "documentation",
2031
2147
  "appPlatforms",
2032
2148
  "examples",
2033
- "aiDocs"
2149
+ "aiDocs",
2150
+ "rustLibraries",
2151
+ "pythonAi",
2152
+ "javaLibraries",
2153
+ "javaTestingLibraries"
2034
2154
  ]);
2035
2155
  const CATEGORY_VALUE_IDS = {
2036
2156
  api: API_VALUES,
@@ -2094,6 +2214,7 @@ const CATEGORY_VALUE_IDS = {
2094
2214
  rustLogging: RUST_LOGGING_VALUES,
2095
2215
  rustErrorHandling: RUST_ERROR_HANDLING_VALUES,
2096
2216
  rustCaching: RUST_CACHING_VALUES,
2217
+ rustAuth: RUST_AUTH_VALUES,
2097
2218
  pythonWebFramework: PYTHON_WEB_FRAMEWORK_VALUES,
2098
2219
  pythonOrm: PYTHON_ORM_VALUES,
2099
2220
  pythonValidation: PYTHON_VALIDATION_VALUES,
@@ -2106,7 +2227,14 @@ const CATEGORY_VALUE_IDS = {
2106
2227
  goOrm: GO_ORM_VALUES,
2107
2228
  goApi: GO_API_VALUES,
2108
2229
  goCli: GO_CLI_VALUES,
2109
- goLogging: GO_LOGGING_VALUES
2230
+ goLogging: GO_LOGGING_VALUES,
2231
+ goAuth: GO_AUTH_VALUES,
2232
+ javaWebFramework: JAVA_WEB_FRAMEWORK_VALUES,
2233
+ javaBuildTool: JAVA_BUILD_TOOL_VALUES,
2234
+ javaOrm: JAVA_ORM_VALUES,
2235
+ javaAuth: JAVA_AUTH_VALUES,
2236
+ javaLibraries: JAVA_LIBRARIES_VALUES,
2237
+ javaTestingLibraries: JAVA_TESTING_LIBRARIES_VALUES
2110
2238
  };
2111
2239
  const EXACT_LABEL_OVERRIDES = {
2112
2240
  api: {
@@ -2388,6 +2516,7 @@ const EXACT_LABEL_OVERRIDES = {
2388
2516
  moka: "Moka",
2389
2517
  redis: "Redis"
2390
2518
  },
2519
+ rustAuth: { oauth2: "OAuth2" },
2391
2520
  pythonWebFramework: {
2392
2521
  fastapi: "FastAPI",
2393
2522
  django: "Django",
@@ -2396,7 +2525,8 @@ const EXACT_LABEL_OVERRIDES = {
2396
2525
  },
2397
2526
  pythonOrm: {
2398
2527
  sqlalchemy: "SQLAlchemy",
2399
- sqlmodel: "SQLModel"
2528
+ sqlmodel: "SQLModel",
2529
+ "tortoise-orm": "Tortoise ORM"
2400
2530
  },
2401
2531
  pythonValidation: { pydantic: "Pydantic" },
2402
2532
  pythonAi: {
@@ -2434,6 +2564,23 @@ const EXACT_LABEL_OVERRIDES = {
2434
2564
  zap: "Zap",
2435
2565
  zerolog: "Zerolog",
2436
2566
  slog: "slog"
2567
+ },
2568
+ goAuth: {
2569
+ casbin: "Casbin",
2570
+ jwt: "golang-jwt"
2571
+ },
2572
+ javaWebFramework: { "spring-boot": "Spring Boot" },
2573
+ javaBuildTool: { maven: "Maven" },
2574
+ javaOrm: { "spring-data-jpa": "Spring Data JPA" },
2575
+ javaAuth: { "spring-security": "Spring Security" },
2576
+ javaLibraries: {
2577
+ "spring-actuator": "Spring Boot Actuator",
2578
+ "spring-validation": "Spring Validation"
2579
+ },
2580
+ javaTestingLibraries: {
2581
+ junit5: "JUnit 5",
2582
+ mockito: "Mockito",
2583
+ testcontainers: "Testcontainers"
2437
2584
  }
2438
2585
  };
2439
2586
  const OPTION_ALIASES = {
@@ -2555,6 +2702,7 @@ const OPTION_CATEGORY_METADATA = {
2555
2702
  rustLogging: buildCategoryMetadata("rustLogging"),
2556
2703
  rustErrorHandling: buildCategoryMetadata("rustErrorHandling"),
2557
2704
  rustCaching: buildCategoryMetadata("rustCaching"),
2705
+ rustAuth: buildCategoryMetadata("rustAuth"),
2558
2706
  pythonWebFramework: buildCategoryMetadata("pythonWebFramework"),
2559
2707
  pythonOrm: buildCategoryMetadata("pythonOrm"),
2560
2708
  pythonValidation: buildCategoryMetadata("pythonValidation"),
@@ -2567,7 +2715,14 @@ const OPTION_CATEGORY_METADATA = {
2567
2715
  goOrm: buildCategoryMetadata("goOrm"),
2568
2716
  goApi: buildCategoryMetadata("goApi"),
2569
2717
  goCli: buildCategoryMetadata("goCli"),
2570
- goLogging: buildCategoryMetadata("goLogging")
2718
+ goLogging: buildCategoryMetadata("goLogging"),
2719
+ goAuth: buildCategoryMetadata("goAuth"),
2720
+ javaWebFramework: buildCategoryMetadata("javaWebFramework"),
2721
+ javaBuildTool: buildCategoryMetadata("javaBuildTool"),
2722
+ javaOrm: buildCategoryMetadata("javaOrm"),
2723
+ javaAuth: buildCategoryMetadata("javaAuth"),
2724
+ javaLibraries: buildCategoryMetadata("javaLibraries"),
2725
+ javaTestingLibraries: buildCategoryMetadata("javaTestingLibraries")
2571
2726
  };
2572
2727
  const OPTION_LOOKUP = Object.fromEntries(Object.entries(OPTION_CATEGORY_METADATA).map(([category, metadata]) => [category, new Map(metadata.options.flatMap((option) => [[option.id.toLowerCase(), option.id], ...option.aliases.map((alias) => [alias.toLowerCase(), option.id])]))]));
2573
2728
  function isMultiSelectCategory(category) {
@@ -2594,10 +2749,13 @@ const VITE_WEB_FRONTENDS = new Set([
2594
2749
  "svelte",
2595
2750
  "fresh"
2596
2751
  ]);
2752
+ const ASTRO_WEB_FRONTENDS = new Set(["astro"]);
2597
2753
  function getLocalWebDevPort(frontend) {
2598
- return frontend.some((entry) => VITE_WEB_FRONTENDS.has(entry)) ? 5173 : 3001;
2754
+ if (frontend.some((entry) => VITE_WEB_FRONTENDS.has(entry))) return 5173;
2755
+ if (frontend.some((entry) => ASTRO_WEB_FRONTENDS.has(entry))) return 4321;
2756
+ return 3001;
2599
2757
  }
2600
2758
 
2601
2759
  //#endregion
2602
- export { ADDONS_VALUES, AISchema, AI_DOCS_VALUES, AI_VALUES, ANALYTICS_VALUES, ANIMATION_VALUES, APISchema, API_VALUES, ASTRO_INTEGRATION_VALUES, AUTH_VALUES, AddInputSchema, AddonsSchema, AiDocsSchema, AnalyticsSchema, AnimationSchema, AstroIntegrationSchema, AuthSchema, BACKEND_VALUES, BackendSchema, BetterTStackConfigFileSchema, BetterTStackConfigSchema, CACHING_VALUES, CLIInputSchema, CMSSchema, CMS_VALUES, CSSFrameworkSchema, CSS_FRAMEWORK_VALUES, CachingSchema, CreateInputSchema, DATABASE_SETUP_VALUES, DATABASE_VALUES, DIRECTORY_CONFLICT_VALUES, DatabaseSchema, DatabaseSetupSchema, DirectoryConflictSchema, ECOSYSTEM_VALUES, EFFECT_VALUES, EMAIL_VALUES, EXAMPLES_VALUES, EcosystemSchema, EffectSchema, EmailSchema, ExamplesSchema, FEATURE_FLAGS_VALUES, FILE_STORAGE_VALUES, FILE_UPLOAD_VALUES, FORMS_VALUES, FRONTEND_VALUES, FeatureFlagsSchema, FileStorageSchema, FileUploadSchema, FormsSchema, FrontendSchema, GO_API_VALUES, GO_CLI_VALUES, GO_LOGGING_VALUES, GO_ORM_VALUES, GO_WEB_FRAMEWORK_VALUES, GoApiSchema, GoCliSchema, GoLoggingSchema, GoOrmSchema, GoWebFrameworkSchema, I18N_VALUES, I18nSchema, InitResultSchema, JOB_QUEUE_VALUES, JobQueueSchema, LOGGING_VALUES, LoggingSchema, OBSERVABILITY_VALUES, OPTION_CATEGORY_METADATA, ORMSchema, ORM_VALUES, ObservabilitySchema, PACKAGE_MANAGER_VALUES, PAYMENTS_VALUES, PYTHON_AI_VALUES, PYTHON_AUTH_VALUES, PYTHON_GRAPHQL_VALUES, PYTHON_ORM_VALUES, PYTHON_QUALITY_VALUES, PYTHON_TASK_QUEUE_VALUES, PYTHON_VALIDATION_VALUES, PYTHON_WEB_FRAMEWORK_VALUES, PackageManagerSchema, PaymentsSchema, ProjectConfigSchema, ProjectNameSchema, PythonAiSchema, PythonAuthSchema, PythonGraphqlSchema, PythonOrmSchema, PythonQualitySchema, PythonTaskQueueSchema, PythonValidationSchema, PythonWebFrameworkSchema, REALTIME_VALUES, RUNTIME_VALUES, RUST_API_VALUES, RUST_CACHING_VALUES, RUST_CLI_VALUES, RUST_ERROR_HANDLING_VALUES, RUST_FRONTEND_VALUES, RUST_LIBRARIES_VALUES, RUST_LOGGING_VALUES, RUST_ORM_VALUES, RUST_WEB_FRAMEWORK_VALUES, RealtimeSchema, RuntimeSchema, RustApiSchema, RustCachingSchema, RustCliSchema, RustErrorHandlingSchema, RustFrontendSchema, RustLibrariesSchema, RustLoggingSchema, RustOrmSchema, RustWebFrameworkSchema, SEARCH_VALUES, SERVER_DEPLOY_VALUES, SHADCN_BASE_COLOR_VALUES, SHADCN_BASE_VALUES, SHADCN_COLOR_THEME_VALUES, SHADCN_FONT_VALUES, SHADCN_ICON_LIBRARY_VALUES, SHADCN_RADIUS_VALUES, SHADCN_STYLE_VALUES, STATE_MANAGEMENT_VALUES, SearchSchema, ServerDeploySchema, ShadcnBaseColorSchema, ShadcnBaseSchema, ShadcnColorThemeSchema, ShadcnFontSchema, ShadcnIconLibrarySchema, ShadcnRadiusSchema, ShadcnStyleSchema, StateManagementSchema, TEMPLATE_VALUES, TESTING_VALUES, TemplateSchema, TestingSchema, UILibrarySchema, UI_LIBRARY_VALUES, VALIDATION_VALUES, VERSION_CHANNEL_VALUES, ValidationSchema, VersionChannelSchema, WEB_DEPLOY_VALUES, WebDeploySchema, allowedApisForFrontends, analyzeStackCompatibility, evaluateCompatibility, getCapabilityDefinitions, getCapabilityDisabledReason, getCategoryCliValues, getCategoryDisplayName, getCategoryOptionIds, getCompatibleAddons, getCompatibleCSSFrameworks, getCompatibleFormLibraries, getCompatibleUILibraries, getDisabledReason, getLocalWebDevPort, getOptionMetadata, getSupportedCapabilityOptions, hasPWACompatibleFrontend, hasTauriCompatibleFrontend, hasWebStyling, isExampleAIAllowed, isExampleChatSdkAllowed, isFrontendAllowedWithBackend, isMultiSelectCategory, isOptionCompatible, isWebFrontend, normalizeCapabilitySelection, normalizeOptionId, requiresChatSdkVercelAI, requiresChatSdkVercelAIForSelection, splitFrontends, validateAddonCompatibility, validateProjectName };
2760
+ export { ADDONS_VALUES, AISchema, AI_DOCS_VALUES, AI_VALUES, ANALYTICS_VALUES, ANIMATION_VALUES, APISchema, API_VALUES, ASTRO_INTEGRATION_VALUES, AUTH_VALUES, AddInputSchema, AddonsSchema, AiDocsSchema, AnalyticsSchema, AnimationSchema, AstroIntegrationSchema, AuthSchema, BACKEND_VALUES, BackendSchema, BetterTStackConfigFileSchema, BetterTStackConfigSchema, CACHING_VALUES, CLIInputSchema, CMSSchema, CMS_VALUES, CSSFrameworkSchema, CSS_FRAMEWORK_VALUES, CachingSchema, CreateInputSchema, DATABASE_SETUP_VALUES, DATABASE_VALUES, DIRECTORY_CONFLICT_VALUES, DatabaseSchema, DatabaseSetupSchema, DirectoryConflictSchema, ECOSYSTEM_VALUES, EFFECT_VALUES, EMAIL_VALUES, EXAMPLES_VALUES, EcosystemSchema, EffectSchema, EmailSchema, ExamplesSchema, FEATURE_FLAGS_VALUES, FILE_STORAGE_VALUES, FILE_UPLOAD_VALUES, FORMS_VALUES, FRONTEND_VALUES, FeatureFlagsSchema, FileStorageSchema, FileUploadSchema, FormsSchema, FrontendSchema, GO_API_VALUES, GO_AUTH_VALUES, GO_CLI_VALUES, GO_LOGGING_VALUES, GO_ORM_VALUES, GO_WEB_FRAMEWORK_VALUES, GoApiSchema, GoAuthSchema, GoCliSchema, GoLoggingSchema, GoOrmSchema, GoWebFrameworkSchema, I18N_VALUES, I18nSchema, InitResultSchema, JAVA_AUTH_VALUES, JAVA_BUILD_TOOL_VALUES, JAVA_LIBRARIES_VALUES, JAVA_ORM_VALUES, JAVA_TESTING_LIBRARIES_VALUES, JAVA_WEB_FRAMEWORK_VALUES, JOB_QUEUE_VALUES, JavaAuthSchema, JavaBuildToolSchema, JavaLibrariesSchema, JavaOrmSchema, JavaTestingLibrariesSchema, JavaWebFrameworkSchema, JobQueueSchema, LOGGING_VALUES, LoggingSchema, OBSERVABILITY_VALUES, OPTION_CATEGORY_METADATA, ORMSchema, ORM_VALUES, ObservabilitySchema, PACKAGE_MANAGER_VALUES, PAYMENTS_VALUES, PYTHON_AI_VALUES, PYTHON_AUTH_VALUES, PYTHON_GRAPHQL_VALUES, PYTHON_ORM_VALUES, PYTHON_QUALITY_VALUES, PYTHON_TASK_QUEUE_VALUES, PYTHON_VALIDATION_VALUES, PYTHON_WEB_FRAMEWORK_VALUES, PackageManagerSchema, PaymentsSchema, ProjectConfigSchema, ProjectNameSchema, PythonAiSchema, PythonAuthSchema, PythonGraphqlSchema, PythonOrmSchema, PythonQualitySchema, PythonTaskQueueSchema, PythonValidationSchema, PythonWebFrameworkSchema, REALTIME_VALUES, RUNTIME_VALUES, RUST_API_VALUES, RUST_AUTH_VALUES, RUST_CACHING_VALUES, RUST_CLI_VALUES, RUST_ERROR_HANDLING_VALUES, RUST_FRONTEND_VALUES, RUST_LIBRARIES_VALUES, RUST_LOGGING_VALUES, RUST_ORM_VALUES, RUST_WEB_FRAMEWORK_VALUES, RealtimeSchema, RuntimeSchema, RustApiSchema, RustAuthSchema, RustCachingSchema, RustCliSchema, RustErrorHandlingSchema, RustFrontendSchema, RustLibrariesSchema, RustLoggingSchema, RustOrmSchema, RustWebFrameworkSchema, SEARCH_VALUES, SERVER_DEPLOY_VALUES, SHADCN_BASE_COLOR_VALUES, SHADCN_BASE_VALUES, SHADCN_COLOR_THEME_VALUES, SHADCN_FONT_VALUES, SHADCN_ICON_LIBRARY_VALUES, SHADCN_RADIUS_VALUES, SHADCN_STYLE_VALUES, STATE_MANAGEMENT_VALUES, SearchSchema, ServerDeploySchema, ShadcnBaseColorSchema, ShadcnBaseSchema, ShadcnColorThemeSchema, ShadcnFontSchema, ShadcnIconLibrarySchema, ShadcnRadiusSchema, ShadcnStyleSchema, StateManagementSchema, TEMPLATE_VALUES, TESTING_VALUES, TemplateSchema, TestingSchema, UILibrarySchema, UI_LIBRARY_VALUES, VALIDATION_VALUES, VERSION_CHANNEL_VALUES, ValidationSchema, VersionChannelSchema, WEB_DEPLOY_VALUES, WebDeploySchema, allowedApisForFrontends, analyzeStackCompatibility, createCliDefaultProjectConfigBase, evaluateCompatibility, getCapabilityDefinitions, getCapabilityDisabledReason, getCategoryCliValues, getCategoryDisplayName, getCategoryOptionIds, getCompatibleAddons, getCompatibleCSSFrameworks, getCompatibleFormLibraries, getCompatibleUILibraries, getDisabledReason, getLocalWebDevPort, getOptionMetadata, getSupportedCapabilityOptions, hasPWACompatibleFrontend, hasTauriCompatibleFrontend, hasWebStyling, isExampleAIAllowed, isExampleChatSdkAllowed, isFrontendAllowedWithBackend, isMultiSelectCategory, isOptionCompatible, isWebFrontend, normalizeCapabilitySelection, normalizeOptionId, requiresChatSdkVercelAI, requiresChatSdkVercelAIForSelection, splitFrontends, validateAddonCompatibility, validateProjectName };
2603
2761
  //# sourceMappingURL=index.mjs.map