@better-fullstack/types 2.1.0 → 2.1.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,7 +1,7 @@
1
1
  import { $ as DotnetJobQueueSchema, $i as TemplateSchema, $n as MOBILE_STORAGE_VALUES, $r as RUST_CLI_VALUES, $t as FileUploadSchema, A as CachingSchema, Ai as SHADCN_BASE_VALUES, An as JAVA_AUTH_VALUES, Ar as PaymentsSchema, At as ElixirCachingSchema, B as DOTNET_OBSERVABILITY_VALUES, Bi as ShadcnBaseSchema, Bn as JavaBuildToolSchema, Br as PythonOrmSchema, Bt as ElixirRealtimeSchema, C as BetterTStackConfigSchema, Ci as RustOrmSchema, Cn as GoRealtimeSchema, Cr as PYTHON_QUALITY_VALUES, Ct as ELIXIR_WEB_FRAMEWORK_VALUES, D as CMS_VALUES, Di as SEARCH_VALUES, Dn as I18nSchema, Dr as PYTHON_VALIDATION_VALUES, Dt as EffectSchema, E as CMSSchema, Ei as RustWebFrameworkSchema, En as I18N_VALUES, Er as PYTHON_TESTING_VALUES, Et as EcosystemSchema, F as DOTNET_API_VALUES, Fi as SHADCN_STYLE_VALUES, Fn as JAVA_TESTING_LIBRARIES_VALUES, Fr as PythonAuthSchema, Ft as ElixirJsonSchema, G as DOTNET_WEB_FRAMEWORK_VALUES, Gi as ShadcnStyleSchema, Gn as JavaWebFrameworkSchema, Gr as PythonValidationSchema, Gt as ExamplesSchema, H as DOTNET_REALTIME_VALUES, Hi as ShadcnFontSchema, Hn as JavaLoggingSchema, Hr as PythonRealtimeSchema, Ht as ElixirValidationSchema, I as DOTNET_AUTH_VALUES, Ii as STATE_MANAGEMENT_VALUES, In as JAVA_WEB_FRAMEWORK_VALUES, Ir as PythonCachingSchema, It as ElixirLibrariesSchema, J as DirectoryConflictSchema, Ji as StackPartSchema, Jn as LoggingSchema, Jr as REALTIME_VALUES, Jt as FILE_UPLOAD_VALUES, K as DatabaseSchema, Ki as StackPartEcosystemSchema, Kn as JobQueueSchema, Kr as PythonWebFrameworkSchema, Kt as FEATURE_FLAGS_VALUES, L as DOTNET_CACHING_VALUES, Li as SearchSchema, Ln as JOB_QUEUE_VALUES, Lr as PythonCliSchema, Lt as ElixirObservabilitySchema, M as DATABASE_SETUP_VALUES, Mi as SHADCN_FONT_VALUES, Mn as JAVA_LIBRARIES_VALUES, Mr as ProjectNameSchema, Mt as ElixirEmailSchema, N as DATABASE_VALUES, Ni as SHADCN_ICON_LIBRARY_VALUES, Nn as JAVA_LOGGING_VALUES, Nr as PythonAiSchema, Nt as ElixirHttpSchema, O as CSSFrameworkSchema, Oi as SERVER_DEPLOY_VALUES, On as InitResultSchema, Or as PYTHON_WEB_FRAMEWORK_VALUES, Ot as ElixirApiSchema, P as DIRECTORY_CONFLICT_VALUES, Pi as SHADCN_RADIUS_VALUES, Pn as JAVA_ORM_VALUES, Pr as PythonApiSchema, Pt as ElixirJobsSchema, Q as DotnetDeploySchema, Qi as TESTING_VALUES, Qn as MOBILE_PUSH_VALUES, Qr as RUST_CACHING_VALUES, Qt as FileStorageSchema, R as DOTNET_DEPLOY_VALUES, Ri as ServerDeploySchema, Rn as JavaApiSchema, Rr as PythonGraphqlSchema, Rt as ElixirOrmSchema, S as BetterTStackConfigFileSchema, Si as RustObservabilitySchema, Sn as GoOrmSchema, Sr as PYTHON_ORM_VALUES, St as ELIXIR_VALIDATION_VALUES, T as CLIInputSchema, Ti as RustTemplatingSchema, Tn as GoWebFrameworkSchema, Tr as PYTHON_TASK_QUEUE_VALUES, Tt as EXAMPLES_VALUES, U as DOTNET_TESTING_VALUES, Ui as ShadcnIconLibrarySchema, Un as JavaOrmSchema, Ur as PythonTaskQueueSchema, Ut as ElixirWebFrameworkSchema, V as DOTNET_ORM_VALUES, Vi as ShadcnColorThemeSchema, Vn as JavaLibrariesSchema, Vr as PythonQualitySchema, Vt as ElixirTestingSchema, W as DOTNET_VALIDATION_VALUES, Wi as ShadcnRadiusSchema, Wn as JavaTestingLibrariesSchema, Wr as PythonTestingSchema, Wt as EmailSchema, X as DotnetAuthSchema, Xi as StateManagementSchema, Xn as MOBILE_NAVIGATION_VALUES, Xr as RUST_API_VALUES, Xt as FRONTEND_VALUES, Y as DotnetApiSchema, Yi as StackPartSourceSchema, Yn as MOBILE_DEEP_LINKING_VALUES, Yr as RUNTIME_VALUES, Yt as FORMS_VALUES, Z as DotnetCachingSchema, Zi as TEMPLATE_VALUES, Zn as MOBILE_OTA_VALUES, Zr as RUST_AUTH_VALUES, Zt as FeatureFlagsSchema, _ as AuthSchema, _i as RustErrorHandlingSchema, _n as GoCliSchema, _r as PYTHON_AUTH_VALUES, _t as ELIXIR_OBSERVABILITY_VALUES, a as ANALYTICS_VALUES, aa as VERSION_CHANNEL_VALUES, ai as RUST_OBSERVABILITY_VALUES, an as GO_CLI_VALUES, ar as MobilePushSchema, at as DotnetWebFrameworkSchema, b as BetterFullstackConfigFileSchema, bi as RustLoggingSchema, bn as GoMessageQueueSchema, br as PYTHON_GRAPHQL_VALUES, bt as ELIXIR_REALTIME_VALUES, c as API_VALUES, ca as VersionChannelSchema, ci as RUST_TEMPLATING_VALUES, cn as GO_MESSAGE_QUEUE_VALUES, cr as MobileUISchema, ct as ELIXIR_API_VALUES, d as AddInputSchema, di as RealtimeSchema, dn as GO_REALTIME_VALUES, dr as ORM_VALUES, dt as ELIXIR_DEPLOY_VALUES, ea as TestingSchema, ei as RUST_ERROR_HANDLING_VALUES, en as FormsSchema, er as MOBILE_TESTING_VALUES, et as DotnetObservabilitySchema, f as AddonsSchema, fi as RuntimeSchema, fn as GO_TESTING_VALUES, fr as ObservabilitySchema, ft as ELIXIR_EMAIL_VALUES, g as AstroIntegrationSchema, gi as RustCliSchema, gn as GoCachingSchema, gr as PYTHON_API_VALUES, gt as ELIXIR_LIBRARIES_VALUES, h as AnimationSchema, hi as RustCachingSchema, hn as GoAuthSchema, hr as PYTHON_AI_VALUES, ht as ELIXIR_JSON_VALUES, i as AI_VALUES, ia as VECTOR_DB_VALUES, ii as RUST_MESSAGE_QUEUE_VALUES, in as GO_CACHING_VALUES, ir as MobileOTASchema, it as DotnetValidationSchema, j as CreateInputSchema, ji as SHADCN_COLOR_THEME_VALUES, jn as JAVA_BUILD_TOOL_VALUES, jr as ProjectConfigSchema, jt as ElixirDeploySchema, k as CSS_FRAMEWORK_VALUES, ki as SHADCN_BASE_COLOR_VALUES, kn as JAVA_API_VALUES, kr as PackageManagerSchema, kt as ElixirAuthSchema, l as ASTRO_INTEGRATION_VALUES, la as WEB_DEPLOY_VALUES, li as RUST_WEB_FRAMEWORK_VALUES, ln as GO_OBSERVABILITY_VALUES, lr as OBSERVABILITY_VALUES, lt as ELIXIR_AUTH_VALUES, m as AnalyticsSchema, mi as RustAuthSchema, mn as GoApiSchema, mr as PAYMENTS_VALUES, mt as ELIXIR_JOBS_VALUES, n as AISchema, na as UI_LIBRARY_VALUES, ni as RUST_LIBRARIES_VALUES, nn as GO_API_VALUES, nr as MobileDeepLinkingSchema, nt as DotnetRealtimeSchema, o as ANIMATION_VALUES, oa as ValidationSchema, oi as RUST_ORM_VALUES, on as GO_CONFIG_VALUES, or as MobileStorageSchema, ot as ECOSYSTEM_VALUES, p as AiDocsSchema, pi as RustApiSchema, pn as GO_WEB_FRAMEWORK_VALUES, pr as PACKAGE_MANAGER_VALUES, pt as ELIXIR_HTTP_VALUES, q as DatabaseSetupSchema, qi as StackPartRoleSchema, qn as LOGGING_VALUES, qr as RATE_LIMIT_VALUES, qt as FILE_STORAGE_VALUES, r as AI_DOCS_VALUES, ra as VALIDATION_VALUES, ri as RUST_LOGGING_VALUES, rn as GO_AUTH_VALUES, rr as MobileNavigationSchema, rt as DotnetTestingSchema, s as APISchema, sa as VectorDbSchema, si as RUST_REALTIME_VALUES, sn as GO_LOGGING_VALUES, sr as MobileTestingSchema, st as EFFECT_VALUES, t as ADDONS_VALUES, ta as UILibrarySchema, ti as RUST_FRONTEND_VALUES, tn as FrontendSchema, tr as MOBILE_UI_VALUES, tt as DotnetOrmSchema, u as AUTH_VALUES, ua as WebDeploySchema, ui as RateLimitSchema, un as GO_ORM_VALUES, ur as ORMSchema, ut as ELIXIR_CACHING_VALUES, v as BACKEND_VALUES, vi as RustFrontendSchema, vn as GoConfigSchema, vr as PYTHON_CACHING_VALUES, vt as ELIXIR_ORM_VALUES, w as CACHING_VALUES, wi as RustRealtimeSchema, wn as GoTestingSchema, wr as PYTHON_REALTIME_VALUES, wt as EMAIL_VALUES, x as BetterFullstackConfigSchema, xi as RustMessageQueueSchema, xn as GoObservabilitySchema, xr as PYTHON_OBSERVABILITY_VALUES, xt as ELIXIR_TESTING_VALUES, y as BackendSchema, yi as RustLibrariesSchema, yn as GoLoggingSchema, yr as PYTHON_CLI_VALUES, yt as ELIXIR_QUALITY_VALUES, z as DOTNET_JOB_QUEUE_VALUES, zi as ShadcnBaseColorSchema, zn as JavaAuthSchema, zr as PythonObservabilitySchema, zt as ElixirQualitySchema } from "./schemas-Cg75ZlzB.mjs";
2
2
  import "./types.mjs";
3
- import { $ as getCategoryDisplayName, A as getCompatibleFormLibraries, B as validateAddonCompatibility, C as allowedApisForFrontends, D as getApiFrontendCompatibilityIssue, E as getAIFrontendCompatibilityIssue, F as isOptionCompatible, G as GO_CATEGORY_ORDER, H as CATEGORY_ORDER, I as isWebFrontend, J as PYTHON_CATEGORY_ORDER, K as JAVA_CATEGORY_ORDER, L as requiresChatSdkVercelAI, M as getDisabledReason, N as hasWebStyling, O as getCompatibleAddons, P as isFrontendAllowedWithBackend, Q as getCategoryCliValues, R as requiresChatSdkVercelAIForSelection, S as usesVirtualNoneStackSelection, T as evaluateCompatibility, U as DOTNET_CATEGORY_ORDER, V as validateProjectName, W as ELIXIR_CATEGORY_ORDER, X as RUST_CATEGORY_ORDER, Y as REACT_NATIVE_CATEGORY_ORDER, Z as TYPESCRIPT_CATEGORY_ORDER, _ as parseStackSelectionFromSearch, a as STACK_SELECTION_URL_KEYS, at as getCapabilityDefinitions, b as stackSelectionToCliComparableConfig, c as cloneDefaultStackSelection, ct as normalizeCapabilitySelection, d as isArrayStackSelectionKey, et as getCategoryOptionIds, f as isCliDefaultStackSelection, g as normalizeStackSelectionValue, h as normalizeStackSelection, i as STACK_SELECTION_OPTION_CATEGORY_BY_KEY, it as normalizeOptionId, j as getCompatibleUILibraries, k as getCompatibleCSSFrameworks, l as createStackSelectionSearchParams, m as isStackSelectionDefault, n as NON_OPTION_STACK_SELECTION_KEYS, nt as getOptionMetadata, o as VIRTUAL_NONE_MULTI_SELECT_STACK_SELECTION_KEYS, ot as getCapabilityDisabledReason, p as isGraphStackSelection, q as OPTION_CATEGORY_METADATA, r as STACK_SELECTION_KEYS, rt as isMultiSelectCategory, s as cliInputToProjectConfigPartial, st as getSupportedCapabilityOptions, t as DEFAULT_STACK_SELECTION, tt as getCategoryOrderForEcosystem, u as generateStackSelectionCommand, v as parseStackSelectionFromUrlRecord, w as analyzeStackCompatibility, x as stackSelectionToProjectConfig, y as processCliArrayOption, z as splitFrontends } from "./stack-translation-CAU_sdNI.mjs";
4
- import { C as isBackendUtilsCompatibleBackend, E as requiresChatSdkVercelAIForExamples, S as hasTauriCompatibleFrontend, T as isExampleChatSdkAllowed, _ as UI_LIBRARY_COMPATIBILITY, a as getAddonStackPartBinding, b as hasPWACompatibleFrontend, c as getStackPartOptions, d as materializeProvidedStackParts, f as parseStackPartSpecs, g as BACKEND_UTILS_COMPATIBLE_BACKENDS, h as validateStackParts, i as formatStackPartSpec, l as getStackToolDefinitions, m as stackPartsToLegacyProjectConfigPartial, n as STACK_TOOL_DEFINITIONS, o as getRoleTargetPath, p as stackGraphToLegacyProjectConfigForEcosystem, r as createStackPart, s as getStackPartCompatibilityIssueForPart, t as ELIXIR_UNSUPPORTED_GRAPH_TOOLS, u as legacyProjectConfigToStackParts, v as getUnsupportedWebDeployFrontend, w as isExampleAIAllowed, x as hasTanStackAICompatibleFrontend, y as hasDockerComposeCompatibleFrontend } from "./stack-graph-D4iCezUq.mjs";
3
+ import { $ as getCategoryDisplayName, A as getCompatibleFormLibraries, B as validateAddonCompatibility, C as allowedApisForFrontends, D as getApiFrontendCompatibilityIssue, E as getAIFrontendCompatibilityIssue, F as isOptionCompatible, G as GO_CATEGORY_ORDER, H as CATEGORY_ORDER, I as isWebFrontend, J as PYTHON_CATEGORY_ORDER, K as JAVA_CATEGORY_ORDER, L as requiresChatSdkVercelAI, M as getDisabledReason, N as hasWebStyling, O as getCompatibleAddons, P as isFrontendAllowedWithBackend, Q as getCategoryCliValues, R as requiresChatSdkVercelAIForSelection, S as usesVirtualNoneStackSelection, T as evaluateCompatibility, U as DOTNET_CATEGORY_ORDER, V as validateProjectName, W as ELIXIR_CATEGORY_ORDER, X as RUST_CATEGORY_ORDER, Y as REACT_NATIVE_CATEGORY_ORDER, Z as TYPESCRIPT_CATEGORY_ORDER, _ as parseStackSelectionFromSearch, a as STACK_SELECTION_URL_KEYS, at as getCapabilityDefinitions, b as stackSelectionToCliComparableConfig, c as cloneDefaultStackSelection, ct as normalizeCapabilitySelection, d as isArrayStackSelectionKey, et as getCategoryOptionIds, f as isCliDefaultStackSelection, g as normalizeStackSelectionValue, h as normalizeStackSelection, i as STACK_SELECTION_OPTION_CATEGORY_BY_KEY, it as normalizeOptionId, j as getCompatibleUILibraries, k as getCompatibleCSSFrameworks, l as createStackSelectionSearchParams, m as isStackSelectionDefault, n as NON_OPTION_STACK_SELECTION_KEYS, nt as getOptionMetadata, o as VIRTUAL_NONE_MULTI_SELECT_STACK_SELECTION_KEYS, ot as getCapabilityDisabledReason, p as isGraphStackSelection, q as OPTION_CATEGORY_METADATA, r as STACK_SELECTION_KEYS, rt as isMultiSelectCategory, s as cliInputToProjectConfigPartial, st as getSupportedCapabilityOptions, t as DEFAULT_STACK_SELECTION, tt as getCategoryOrderForEcosystem, u as generateStackSelectionCommand, v as parseStackSelectionFromUrlRecord, w as analyzeStackCompatibility, x as stackSelectionToProjectConfig, y as processCliArrayOption, z as splitFrontends } from "./stack-translation-gNYPvlYt.mjs";
4
+ import { C as isBackendUtilsCompatibleBackend, E as requiresChatSdkVercelAIForExamples, S as hasTauriCompatibleFrontend, T as isExampleChatSdkAllowed, _ as UI_LIBRARY_COMPATIBILITY, a as getAddonStackPartBinding, b as hasPWACompatibleFrontend, c as getStackPartOptions, d as materializeProvidedStackParts, f as parseStackPartSpecs, g as BACKEND_UTILS_COMPATIBLE_BACKENDS, h as validateStackParts, i as formatStackPartSpec, l as getStackToolDefinitions, m as stackPartsToLegacyProjectConfigPartial, n as STACK_TOOL_DEFINITIONS, o as getRoleTargetPath, p as stackGraphToLegacyProjectConfigForEcosystem, r as createStackPart, s as getStackPartCompatibilityIssueForPart, t as ELIXIR_UNSUPPORTED_GRAPH_TOOLS, u as legacyProjectConfigToStackParts, v as getUnsupportedWebDeployFrontend, w as isExampleAIAllowed, x as hasTanStackAICompatibleFrontend, y as hasDockerComposeCompatibleFrontend } from "./stack-graph-Q0PrewPk.mjs";
5
5
  import { t as createCliDefaultProjectConfigBase } from "./defaults-u9UAambo.mjs";
6
6
 
7
7
  //#region src/local-dev.ts
@@ -1 +1 @@
1
- {"version":3,"file":"stack-graph-CjobAqsm.d.mts","names":[],"sources":["../src/stack-graph.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-graph-CjobAqsm.d.mts","names":[],"sources":["../src/stack-graph.ts"],"sourcesContent":[],"mappings":"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"}
@@ -425,27 +425,14 @@ const BETTER_AUTH_UNSUPPORTED_ORM_TOOLS = new Set([
425
425
  "mikroorm",
426
426
  "sequelize"
427
427
  ]);
428
- const ELIXIR_ECTO_REQUIRED_TOOLS = new Set(["absinthe", "phx-gen-auth"]);
429
- const ELIXIR_ECTO_SQL_REQUIRED_TOOLS = new Set(["oban"]);
428
+ const ELIXIR_ECTO_REQUIRED_TOOLS = new Set(["absinthe"]);
429
+ const ELIXIR_ECTO_SQL_REQUIRED_TOOLS = new Set(["oban", "phx-gen-auth"]);
430
430
  const ELIXIR_PHOENIX_REQUIRED_ROLE_MESSAGES = {
431
431
  auth: "Elixir auth scaffolds require Phoenix",
432
432
  api: "Elixir API scaffolds require Phoenix",
433
433
  realtime: "Elixir realtime scaffolds require Phoenix"
434
434
  };
435
- const ELIXIR_UNSUPPORTED_GRAPH_TOOL_MESSAGES = {
436
- ecto: "Use Ecto SQL for generated Repo, migrations, schemas, and PostgreSQL wiring",
437
- ueberauth: "Ueberauth is not generated yet; use phx.gen.auth or no auth",
438
- guardian: "Guardian JWT wiring is not generated yet; use phx.gen.auth or no auth",
439
- "nimble-options": "NimbleOptions is not generated yet; use Ecto Changesets or no extra validation",
440
- nebulex: "Nebulex cache modules are not generated yet; use Cachex or no cache",
441
- opentelemetry: "OpenTelemetry setup is not generated yet; use Phoenix telemetry or no extra observability",
442
- prom_ex: "PromEx setup is not generated yet; use Phoenix telemetry or no extra observability",
443
- mox: "Mox-specific test boundaries are not generated yet; use ExUnit",
444
- bypass: "Bypass-specific HTTP tests are not generated yet; use ExUnit",
445
- wallaby: "Wallaby browser tests are not generated yet; use ExUnit",
446
- fly: "Fly.io config is not generated yet; use Docker or mix releases",
447
- gigalixir: "Gigalixir config is not generated yet; use Docker or mix releases"
448
- };
435
+ const ELIXIR_UNSUPPORTED_GRAPH_TOOL_MESSAGES = {};
449
436
  const ELIXIR_UNSUPPORTED_GRAPH_TOOLS = new Set(Object.keys(ELIXIR_UNSUPPORTED_GRAPH_TOOL_MESSAGES));
450
437
  const ROLE_TARGET_PATHS = {
451
438
  frontend: "apps/web",
@@ -465,22 +452,30 @@ const LEGACY_CAPABILITY_CATEGORIES_BY_ECOSYSTEM = {
465
452
  rust: {
466
453
  orm: "rustOrm",
467
454
  api: "rustApi",
468
- auth: "rustAuth"
455
+ auth: "rustAuth",
456
+ email: "email",
457
+ observability: "observability"
469
458
  },
470
459
  python: {
471
460
  orm: "pythonOrm",
472
461
  api: "pythonApi",
473
- auth: "pythonAuth"
462
+ auth: "pythonAuth",
463
+ email: "email",
464
+ observability: "observability"
474
465
  },
475
466
  go: {
476
467
  orm: "goOrm",
477
468
  api: "goApi",
478
- auth: "goAuth"
469
+ auth: "goAuth",
470
+ email: "email",
471
+ observability: "observability"
479
472
  },
480
473
  java: {
481
474
  orm: "javaOrm",
482
475
  api: "javaApi",
483
- auth: "javaAuth"
476
+ auth: "javaAuth",
477
+ email: "email",
478
+ observability: "observability"
484
479
  },
485
480
  dotnet: {
486
481
  orm: "dotnetOrm",
@@ -874,6 +869,8 @@ const STACK_TOOL_DEFINITIONS = [
874
869
  ...defineTools(RUST_ORM_VALUES, "orm", "rust", "rustOrm"),
875
870
  ...defineTools(RUST_API_VALUES, "api", "rust", "rustApi"),
876
871
  ...defineTools(RUST_AUTH_VALUES, "auth", "rust", "rustAuth"),
872
+ ...defineTools(["resend"], "email", "rust", "email"),
873
+ ...defineTools(["sentry"], "observability", "rust", "observability"),
877
874
  ...defineTools(RUST_REALTIME_VALUES, "realtime", "rust", "rustRealtime"),
878
875
  ...defineTools(RUST_MESSAGE_QUEUE_VALUES, "jobQueue", "rust", "rustMessageQueue"),
879
876
  ...defineTools(RUST_OBSERVABILITY_VALUES, "observability", "rust", "rustObservability"),
@@ -889,6 +886,8 @@ const STACK_TOOL_DEFINITIONS = [
889
886
  ...defineTools(PYTHON_AI_VALUES, "ai", "python", "pythonAi", { allowMultiple: true }),
890
887
  ...defineTools(PYTHON_API_VALUES, "api", "python", "pythonApi"),
891
888
  ...defineTools(PYTHON_AUTH_VALUES, "auth", "python", "pythonAuth"),
889
+ ...defineTools(["resend"], "email", "python", "email"),
890
+ ...defineTools(["sentry"], "observability", "python", "observability"),
892
891
  ...defineTools(PYTHON_TASK_QUEUE_VALUES, "jobQueue", "python", "pythonTaskQueue"),
893
892
  ...defineTools(PYTHON_GRAPHQL_VALUES, "api", "python", "pythonGraphql"),
894
893
  ...defineTools(PYTHON_QUALITY_VALUES, "codeQuality", "python", "pythonQuality"),
@@ -901,6 +900,8 @@ const STACK_TOOL_DEFINITIONS = [
901
900
  ...defineTools(GO_ORM_VALUES, "orm", "go", "goOrm"),
902
901
  ...defineTools(GO_API_VALUES, "api", "go", "goApi"),
903
902
  ...defineTools(GO_AUTH_VALUES, "auth", "go", "goAuth"),
903
+ ...defineTools(["resend"], "email", "go", "email"),
904
+ ...defineTools(["sentry"], "observability", "go", "observability"),
904
905
  ...defineTools(GO_CLI_VALUES, "cli", "go", "goCli"),
905
906
  ...defineTools(GO_LOGGING_VALUES, "logging", "go", "goLogging"),
906
907
  ...defineTools(GO_TESTING_VALUES, "testing", "go", "goTesting", { allowMultiple: true }),
@@ -914,6 +915,8 @@ const STACK_TOOL_DEFINITIONS = [
914
915
  ...defineTools(JAVA_ORM_VALUES, "orm", "java", "javaOrm"),
915
916
  ...defineTools(JAVA_AUTH_VALUES, "auth", "java", "javaAuth"),
916
917
  ...defineTools(JAVA_API_VALUES, "api", "java", "javaApi"),
918
+ ...defineTools(["resend"], "email", "java", "email"),
919
+ ...defineTools(["sentry"], "observability", "java", "observability"),
917
920
  ...defineTools(JAVA_LOGGING_VALUES, "logging", "java", "javaLogging"),
918
921
  ...defineTools(JAVA_LIBRARIES_VALUES, "libraries", "java", "javaLibraries", { allowMultiple: true }),
919
922
  ...defineTools(JAVA_TESTING_LIBRARIES_VALUES, "testing", "java", "javaTestingLibraries", { allowMultiple: true }),
@@ -1657,14 +1660,34 @@ function getStackPartCompatibilityIssue(part, context) {
1657
1660
  message: part.toolId === "phx-gen-auth" ? "phx.gen.auth requires Ecto" : "Absinthe GraphQL requires Ecto in the current Phoenix scaffold"
1658
1661
  });
1659
1662
  }
1660
- if (part.ecosystem === "elixir" && ELIXIR_ECTO_SQL_REQUIRED_TOOLS.has(part.toolId) && (!context.ownerRole || context.ownerRole === "backend")) {
1661
- if ((context.siblingToolIdsByRole?.orm ?? context.selectedToolIdsByRole?.orm) !== "ecto-sql") return createStackGraphIssue({
1662
- code: "INCOMPATIBLE_GRAPH_SELECTION",
1663
+ if (part.ecosystem === "elixir" && !context.ownerRole) {
1664
+ const phoenixRequiredMessage = ELIXIR_PHOENIX_REQUIRED_ROLE_MESSAGES[part.role];
1665
+ if (phoenixRequiredMessage && part.toolId !== "none") return createStackGraphIssue({
1666
+ code: "MISSING_OWNER_PART",
1663
1667
  partId: part.id,
1664
1668
  role: part.role,
1665
1669
  toolId: part.toolId,
1666
- message: "Oban requires Ecto SQL with PostgreSQL in the current Phoenix scaffold"
1670
+ message: phoenixRequiredMessage
1667
1671
  });
1672
+ if (part.role === "observability" && part.toolId === "phoenix-telemetry") return createStackGraphIssue({
1673
+ code: "MISSING_OWNER_PART",
1674
+ partId: part.id,
1675
+ role: part.role,
1676
+ toolId: part.toolId,
1677
+ message: "Phoenix telemetry requires Phoenix"
1678
+ });
1679
+ }
1680
+ if (part.ecosystem === "elixir" && ELIXIR_ECTO_SQL_REQUIRED_TOOLS.has(part.toolId) && (!context.ownerRole || context.ownerRole === "backend")) {
1681
+ if ((context.siblingToolIdsByRole?.orm ?? context.selectedToolIdsByRole?.orm) !== "ecto-sql") {
1682
+ const message = part.toolId === "phx-gen-auth" ? "phx.gen.auth requires Ecto SQL with PostgreSQL in the current Phoenix scaffold" : "Oban requires Ecto SQL with PostgreSQL in the current Phoenix scaffold";
1683
+ return createStackGraphIssue({
1684
+ code: "INCOMPATIBLE_GRAPH_SELECTION",
1685
+ partId: part.id,
1686
+ role: part.role,
1687
+ toolId: part.toolId,
1688
+ message
1689
+ });
1690
+ }
1668
1691
  }
1669
1692
  if (part.ecosystem === "elixir" && part.toolId === "live-view-streams" && context.ownerRole === "backend") {
1670
1693
  if (context.ownerToolId !== "phoenix-live-view") return createStackGraphIssue({
@@ -1675,6 +1698,13 @@ function getStackPartCompatibilityIssue(part, context) {
1675
1698
  message: "LiveView Streams require Phoenix LiveView"
1676
1699
  });
1677
1700
  }
1701
+ if (part.ecosystem === "elixir" && part.toolId === "wallaby" && context.ownerRole === "backend" && context.ownerToolId === "none") return createStackGraphIssue({
1702
+ code: "INCOMPATIBLE_OWNER_TOOL",
1703
+ partId: part.id,
1704
+ role: part.role,
1705
+ toolId: part.toolId,
1706
+ message: "Wallaby browser tests require Phoenix"
1707
+ });
1678
1708
  const unsupportedElixirGraphToolMessage = part.ecosystem === "elixir" ? ELIXIR_UNSUPPORTED_GRAPH_TOOL_MESSAGES[part.toolId] : void 0;
1679
1709
  if (unsupportedElixirGraphToolMessage) return createStackGraphIssue({
1680
1710
  code: "UNSUPPORTED_GRAPH_TOOL",
@@ -1683,23 +1713,6 @@ function getStackPartCompatibilityIssue(part, context) {
1683
1713
  toolId: part.toolId,
1684
1714
  message: unsupportedElixirGraphToolMessage
1685
1715
  });
1686
- if (part.ecosystem === "elixir" && !context.ownerRole) {
1687
- const phoenixRequiredMessage = ELIXIR_PHOENIX_REQUIRED_ROLE_MESSAGES[part.role];
1688
- if (phoenixRequiredMessage && part.toolId !== "none") return createStackGraphIssue({
1689
- code: "MISSING_OWNER_PART",
1690
- partId: part.id,
1691
- role: part.role,
1692
- toolId: part.toolId,
1693
- message: phoenixRequiredMessage
1694
- });
1695
- if (part.role === "observability" && part.toolId === "phoenix-telemetry") return createStackGraphIssue({
1696
- code: "MISSING_OWNER_PART",
1697
- partId: part.id,
1698
- role: part.role,
1699
- toolId: part.toolId,
1700
- message: "Phoenix telemetry requires Phoenix"
1701
- });
1702
- }
1703
1716
  }
1704
1717
  function getStackPartCompatibilityIssueForPart(part, parts) {
1705
1718
  return getStackPartCompatibilityIssue(part, getStackPartOptionContextForPart(part, parts));
@@ -2038,7 +2051,8 @@ function projectLegacyCategoryFromPart(config, part, ecosystem, parts) {
2038
2051
  }
2039
2052
  const legacyCategory = getLegacyCategoryForPart(part, parts);
2040
2053
  if (!legacyCategory || legacyCategory === "frontend") return;
2041
- if (legacyCategory === "database" || legacyCategory === "dbSetup" || part.ecosystem === ecosystem || legacyCategory === "auth" && (ecosystem === "typescript" || ecosystem === "react-native") && (part.ecosystem === "typescript" || part.ecosystem === "react-native")) config[legacyCategory] = part.toolId;
2054
+ const owner = part.ownerPartId ? parts.find((candidate) => candidate.id === part.ownerPartId) : void 0;
2055
+ if (legacyCategory === "database" || legacyCategory === "dbSetup" || part.ecosystem === ecosystem || owner?.role === "mobile" && part.ecosystem === "react-native" && (ecosystem === "typescript" || ecosystem === "react-native") || legacyCategory === "auth" && (ecosystem === "typescript" || ecosystem === "react-native") && (part.ecosystem === "typescript" || part.ecosystem === "react-native")) config[legacyCategory] = part.toolId;
2042
2056
  }
2043
2057
  function stackGraphToLegacyProjectConfigForEcosystem(config, ecosystem) {
2044
2058
  const parts = config.stackParts ?? [];
@@ -2063,6 +2077,7 @@ function stackGraphToLegacyProjectConfigForEcosystem(config, ecosystem) {
2063
2077
  projectLegacyCategoryFromPart(projected, orm, ecosystem, parts);
2064
2078
  projectLegacyCategoryFromPart(projected, api, ecosystem, parts);
2065
2079
  projectLegacyCategoryFromPart(projected, auth, ecosystem, parts);
2080
+ if (ecosystem === "go" && config.auth === "go-better-auth") projected.auth = config.auth;
2066
2081
  const backendScopedPartRoles = new Set([
2067
2082
  "database",
2068
2083
  "orm",
@@ -2164,4 +2179,4 @@ function validateStackParts(parts) {
2164
2179
 
2165
2180
  //#endregion
2166
2181
  export { isBackendUtilsCompatibleBackend as C, requiresChatSdkVercelAIForExamples as E, hasTauriCompatibleFrontend as S, isExampleChatSdkAllowed as T, UI_LIBRARY_COMPATIBILITY as _, getAddonStackPartBinding as a, hasPWACompatibleFrontend as b, getStackPartOptions as c, materializeProvidedStackParts as d, parseStackPartSpecs as f, BACKEND_UTILS_COMPATIBLE_BACKENDS as g, validateStackParts as h, formatStackPartSpec as i, getStackToolDefinitions as l, stackPartsToLegacyProjectConfigPartial as m, STACK_TOOL_DEFINITIONS as n, getRoleTargetPath as o, stackGraphToLegacyProjectConfigForEcosystem as p, createStackPart as r, getStackPartCompatibilityIssueForPart as s, ELIXIR_UNSUPPORTED_GRAPH_TOOLS as t, legacyProjectConfigToStackParts as u, getUnsupportedWebDeployFrontend as v, isExampleAIAllowed as w, hasTanStackAICompatibleFrontend as x, hasDockerComposeCompatibleFrontend as y };
2167
- //# sourceMappingURL=stack-graph-D4iCezUq.mjs.map
2182
+ //# sourceMappingURL=stack-graph-Q0PrewPk.mjs.map