@better-fullstack/types 1.6.0 → 1.6.2

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-rS6DMnT_.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,73 @@ 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
+ if (nextStack.javaWebFramework === "spring-boot" && nextStack.javaBuildTool !== "none") {
1096
+ if (nextStack.javaOrm !== "spring-data-jpa") {
1097
+ const filteredLibraries = nextStack.javaLibraries.filter((library) => library !== "flyway" && library !== "liquibase");
1098
+ if (filteredLibraries.length !== nextStack.javaLibraries.length) {
1099
+ nextStack.javaLibraries = filteredLibraries;
1100
+ changed = true;
1101
+ changes.push({
1102
+ category: "javaOrm",
1103
+ message: "Java migration libraries cleared (Flyway and Liquibase require Spring Data JPA)"
1104
+ });
1105
+ }
1106
+ }
1107
+ if (nextStack.javaLibraries.includes("flyway") && nextStack.javaLibraries.includes("liquibase")) {
1108
+ nextStack.javaLibraries = nextStack.javaLibraries.filter((library) => library !== "liquibase");
1109
+ changed = true;
1110
+ changes.push({
1111
+ category: "javaLibraries",
1112
+ message: "Liquibase cleared (Flyway and Liquibase cannot be combined)"
1113
+ });
1114
+ }
1115
+ }
1116
+ }
1030
1117
  if (nextStack.webDeploy !== "none" && !nextStack.webFrontend.some((f) => f !== "none")) {
1031
1118
  nextStack.webDeploy = "none";
1032
1119
  changed = true;
@@ -1389,6 +1476,37 @@ const getDisabledReason = (currentStack, category, optionId) => {
1389
1476
  if (!currentStack.webFrontend.includes("next")) return "next-intl requires Next.js";
1390
1477
  }
1391
1478
  }
1479
+ if (category === "javaWebFramework") {
1480
+ if (optionId === "spring-boot" && currentStack.javaBuildTool === "none") return "Spring Boot requires Maven or Gradle";
1481
+ }
1482
+ if (category === "javaBuildTool") {
1483
+ if (optionId === "none") {
1484
+ if (currentStack.javaWebFramework === "spring-boot") return "Spring Boot requires Maven or Gradle";
1485
+ if (currentStack.javaOrm !== "none") return "Java ORM support requires Maven or Gradle";
1486
+ if (currentStack.javaAuth !== "none") return "Java auth support requires Maven or Gradle";
1487
+ if (currentStack.javaLibraries.some((library) => library !== "none")) return "Java libraries require Maven or Gradle";
1488
+ if (currentStack.javaTestingLibraries.some((library) => library !== "none")) return "Java testing libraries require Maven or Gradle";
1489
+ }
1490
+ }
1491
+ if (category === "javaOrm") {
1492
+ if (optionId !== "none" && currentStack.javaWebFramework !== "spring-boot") return "Java ORM support currently requires Spring Boot";
1493
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java ORM support requires Maven or Gradle";
1494
+ }
1495
+ if (category === "javaAuth") {
1496
+ if (optionId !== "none" && currentStack.javaWebFramework !== "spring-boot") return "Java auth support currently requires Spring Boot";
1497
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java auth support requires Maven or Gradle";
1498
+ }
1499
+ if (category === "javaLibraries") {
1500
+ if (optionId !== "none" && currentStack.javaWebFramework !== "spring-boot") return "Spring libraries currently require Spring Boot in the Java scaffold";
1501
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java libraries require Maven or Gradle";
1502
+ if (optionId === "flyway" && currentStack.javaOrm !== "spring-data-jpa") return "Flyway currently requires Spring Data JPA in the Java scaffold";
1503
+ if (optionId === "liquibase" && currentStack.javaOrm !== "spring-data-jpa") return "Liquibase currently requires Spring Data JPA in the Java scaffold";
1504
+ if (optionId === "flyway" && currentStack.javaLibraries.includes("liquibase")) return "Flyway cannot be combined with Liquibase in the current Java scaffold";
1505
+ if (optionId === "liquibase" && currentStack.javaLibraries.includes("flyway")) return "Liquibase cannot be combined with Flyway in the current Java scaffold";
1506
+ }
1507
+ if (category === "javaTestingLibraries") {
1508
+ if (optionId !== "none" && currentStack.javaBuildTool === "none") return "Java testing libraries require Maven or Gradle";
1509
+ }
1392
1510
  return null;
1393
1511
  };
1394
1512
  const isOptionCompatible = (currentStack, category, optionId) => {
@@ -1777,7 +1895,7 @@ function isFrontendAllowedWithBackend(frontend, backend, auth) {
1777
1895
  if (backend === "convex" && frontend === "redwood") return false;
1778
1896
  if (backend === "convex" && frontend === "fresh") return false;
1779
1897
  if (frontend === "qwik" && backend && backend !== "none") return false;
1780
- if (frontend === "angular" && backend && backend !== "none") return false;
1898
+ if (frontend === "angular" && backend === "self") return false;
1781
1899
  if (frontend === "redwood" && backend && backend !== "none") return false;
1782
1900
  if (frontend === "fresh" && backend && backend !== "none") return false;
1783
1901
  if (auth && auth !== "none") return getCapabilityDisabledReason("auth", {
@@ -1916,7 +2034,11 @@ function evaluateCompatibility(input) {
1916
2034
  ["forms", input.forms],
1917
2035
  ["stateManagement", input.stateManagement],
1918
2036
  ["animation", input.animation],
1919
- ["ai", input.aiSdk]
2037
+ ["ai", input.aiSdk],
2038
+ ["javaWebFramework", input.javaWebFramework],
2039
+ ["javaBuildTool", input.javaBuildTool],
2040
+ ["javaOrm", input.javaOrm],
2041
+ ["javaAuth", input.javaAuth]
1920
2042
  ];
1921
2043
  for (const [category, optionId] of scalarChecks) {
1922
2044
  const reason = getDisabledReason(input, category, optionId);
@@ -1949,6 +2071,24 @@ function evaluateCompatibility(input) {
1949
2071
  optionId: addon
1950
2072
  });
1951
2073
  }
2074
+ for (const javaLibrary of input.javaLibraries) {
2075
+ const reason = getDisabledReason(input, "javaLibraries", javaLibrary);
2076
+ if (reason) issues.push({
2077
+ code: "INCOMPATIBLE_JAVA_LIBRARY",
2078
+ message: reason,
2079
+ category: "javaLibraries",
2080
+ optionId: javaLibrary
2081
+ });
2082
+ }
2083
+ for (const testingLibrary of input.javaTestingLibraries) {
2084
+ const reason = getDisabledReason(input, "javaTestingLibraries", testingLibrary);
2085
+ if (reason) issues.push({
2086
+ code: "INCOMPATIBLE_JAVA_TESTING_LIBRARY",
2087
+ message: reason,
2088
+ category: "javaTestingLibraries",
2089
+ optionId: testingLibrary
2090
+ });
2091
+ }
1952
2092
  return { issues };
1953
2093
  }
1954
2094
 
@@ -2030,7 +2170,11 @@ const MULTI_SELECT_CATEGORIES = new Set([
2030
2170
  "documentation",
2031
2171
  "appPlatforms",
2032
2172
  "examples",
2033
- "aiDocs"
2173
+ "aiDocs",
2174
+ "rustLibraries",
2175
+ "pythonAi",
2176
+ "javaLibraries",
2177
+ "javaTestingLibraries"
2034
2178
  ]);
2035
2179
  const CATEGORY_VALUE_IDS = {
2036
2180
  api: API_VALUES,
@@ -2094,6 +2238,7 @@ const CATEGORY_VALUE_IDS = {
2094
2238
  rustLogging: RUST_LOGGING_VALUES,
2095
2239
  rustErrorHandling: RUST_ERROR_HANDLING_VALUES,
2096
2240
  rustCaching: RUST_CACHING_VALUES,
2241
+ rustAuth: RUST_AUTH_VALUES,
2097
2242
  pythonWebFramework: PYTHON_WEB_FRAMEWORK_VALUES,
2098
2243
  pythonOrm: PYTHON_ORM_VALUES,
2099
2244
  pythonValidation: PYTHON_VALIDATION_VALUES,
@@ -2106,7 +2251,14 @@ const CATEGORY_VALUE_IDS = {
2106
2251
  goOrm: GO_ORM_VALUES,
2107
2252
  goApi: GO_API_VALUES,
2108
2253
  goCli: GO_CLI_VALUES,
2109
- goLogging: GO_LOGGING_VALUES
2254
+ goLogging: GO_LOGGING_VALUES,
2255
+ goAuth: GO_AUTH_VALUES,
2256
+ javaWebFramework: JAVA_WEB_FRAMEWORK_VALUES,
2257
+ javaBuildTool: JAVA_BUILD_TOOL_VALUES,
2258
+ javaOrm: JAVA_ORM_VALUES,
2259
+ javaAuth: JAVA_AUTH_VALUES,
2260
+ javaLibraries: JAVA_LIBRARIES_VALUES,
2261
+ javaTestingLibraries: JAVA_TESTING_LIBRARIES_VALUES
2110
2262
  };
2111
2263
  const EXACT_LABEL_OVERRIDES = {
2112
2264
  api: {
@@ -2388,6 +2540,7 @@ const EXACT_LABEL_OVERRIDES = {
2388
2540
  moka: "Moka",
2389
2541
  redis: "Redis"
2390
2542
  },
2543
+ rustAuth: { oauth2: "OAuth2" },
2391
2544
  pythonWebFramework: {
2392
2545
  fastapi: "FastAPI",
2393
2546
  django: "Django",
@@ -2396,7 +2549,8 @@ const EXACT_LABEL_OVERRIDES = {
2396
2549
  },
2397
2550
  pythonOrm: {
2398
2551
  sqlalchemy: "SQLAlchemy",
2399
- sqlmodel: "SQLModel"
2552
+ sqlmodel: "SQLModel",
2553
+ "tortoise-orm": "Tortoise ORM"
2400
2554
  },
2401
2555
  pythonValidation: { pydantic: "Pydantic" },
2402
2556
  pythonAi: {
@@ -2434,6 +2588,35 @@ const EXACT_LABEL_OVERRIDES = {
2434
2588
  zap: "Zap",
2435
2589
  zerolog: "Zerolog",
2436
2590
  slog: "slog"
2591
+ },
2592
+ goAuth: {
2593
+ casbin: "Casbin",
2594
+ jwt: "golang-jwt"
2595
+ },
2596
+ javaWebFramework: { "spring-boot": "Spring Boot" },
2597
+ javaBuildTool: { maven: "Maven" },
2598
+ javaOrm: { "spring-data-jpa": "Spring Data JPA" },
2599
+ javaAuth: { "spring-security": "Spring Security" },
2600
+ javaLibraries: {
2601
+ "spring-actuator": "Spring Boot Actuator",
2602
+ "spring-validation": "Spring Validation",
2603
+ flyway: "Flyway",
2604
+ liquibase: "Liquibase",
2605
+ "springdoc-openapi": "Springdoc OpenAPI",
2606
+ lombok: "Lombok",
2607
+ mapstruct: "MapStruct",
2608
+ caffeine: "Caffeine"
2609
+ },
2610
+ javaTestingLibraries: {
2611
+ junit5: "JUnit 5",
2612
+ mockito: "Mockito",
2613
+ testcontainers: "Testcontainers",
2614
+ assertj: "AssertJ",
2615
+ "rest-assured": "REST Assured",
2616
+ wiremock: "WireMock",
2617
+ awaitility: "Awaitility",
2618
+ archunit: "ArchUnit",
2619
+ jqwik: "jqwik"
2437
2620
  }
2438
2621
  };
2439
2622
  const OPTION_ALIASES = {
@@ -2555,6 +2738,7 @@ const OPTION_CATEGORY_METADATA = {
2555
2738
  rustLogging: buildCategoryMetadata("rustLogging"),
2556
2739
  rustErrorHandling: buildCategoryMetadata("rustErrorHandling"),
2557
2740
  rustCaching: buildCategoryMetadata("rustCaching"),
2741
+ rustAuth: buildCategoryMetadata("rustAuth"),
2558
2742
  pythonWebFramework: buildCategoryMetadata("pythonWebFramework"),
2559
2743
  pythonOrm: buildCategoryMetadata("pythonOrm"),
2560
2744
  pythonValidation: buildCategoryMetadata("pythonValidation"),
@@ -2567,7 +2751,14 @@ const OPTION_CATEGORY_METADATA = {
2567
2751
  goOrm: buildCategoryMetadata("goOrm"),
2568
2752
  goApi: buildCategoryMetadata("goApi"),
2569
2753
  goCli: buildCategoryMetadata("goCli"),
2570
- goLogging: buildCategoryMetadata("goLogging")
2754
+ goLogging: buildCategoryMetadata("goLogging"),
2755
+ goAuth: buildCategoryMetadata("goAuth"),
2756
+ javaWebFramework: buildCategoryMetadata("javaWebFramework"),
2757
+ javaBuildTool: buildCategoryMetadata("javaBuildTool"),
2758
+ javaOrm: buildCategoryMetadata("javaOrm"),
2759
+ javaAuth: buildCategoryMetadata("javaAuth"),
2760
+ javaLibraries: buildCategoryMetadata("javaLibraries"),
2761
+ javaTestingLibraries: buildCategoryMetadata("javaTestingLibraries")
2571
2762
  };
2572
2763
  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
2764
  function isMultiSelectCategory(category) {
@@ -2594,10 +2785,13 @@ const VITE_WEB_FRONTENDS = new Set([
2594
2785
  "svelte",
2595
2786
  "fresh"
2596
2787
  ]);
2788
+ const ASTRO_WEB_FRONTENDS = new Set(["astro"]);
2597
2789
  function getLocalWebDevPort(frontend) {
2598
- return frontend.some((entry) => VITE_WEB_FRONTENDS.has(entry)) ? 5173 : 3001;
2790
+ if (frontend.some((entry) => VITE_WEB_FRONTENDS.has(entry))) return 5173;
2791
+ if (frontend.some((entry) => ASTRO_WEB_FRONTENDS.has(entry))) return 4321;
2792
+ return 3001;
2599
2793
  }
2600
2794
 
2601
2795
  //#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 };
2796
+ 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
2797
  //# sourceMappingURL=index.mjs.map