{"version":3,"file":"server.mjs","names":["gtMiddleware","getLocale","getEnableI18n","getGT","getMessages","getTranslations","mainGtMiddleware","mainGetLocale","mainGetEnableI18n","mainGetGT","mainGetMessages","mainGetTranslations"],"sources":["../../core/dist/unwrapApiResult-BzGfPw75.mjs","../src/condition-store/singleton.ts","../src/middleware/gtMiddleware.ts","../src/functions/runtime.ts","../src/server.ts"],"sourcesContent":["import { t as ApiError } from \"./ApiError-CUKcz3YS.mjs\";\n//#region src/settings/settings.ts\nconst libraryDefaultLocale = \"en\";\nconst defaultTimeout = 6e4;\n//#endregion\n//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\n//#region src/settings/settingsUrls.ts\nconst defaultCacheUrl = \"https://cdn.gtx.dev\";\nconst defaultBaseUrl = \"https://api.gtx.dev\";\nconst defaultRuntimeApiUrl = \"https://api.gtx.dev\";\n//#endregion\n//#region src/translate/utils/unwrapApiResult.ts\nfunction isErrorResult(error) {\n\treturn typeof error === \"object\" && error !== null && \"error\" in error && typeof error.error === \"string\";\n}\nfunction hasDecodedError(result) {\n\treturn isErrorResult(result.error) || typeof result.error === \"string\";\n}\n/**\n* Unwraps a `@generaltranslation/api` SDK result, returning its data or\n* throwing an `ApiError` built from the failed response.\n*/\nfunction unwrapApiResult(result) {\n\tif (result.data !== void 0) return result.data;\n\tif (result.response) {\n\t\tconst details = isErrorResult(result.error) ? result.error.error : typeof result.error === \"string\" ? result.error : result.response.statusText;\n\t\tthrow new ApiError(details, result.response.status, details);\n\t}\n\tthrow result.error;\n}\n//#endregion\nexport { defaultCacheUrl as a, formatDiagnosticErrorDetails as c, defaultBaseUrl as i, defaultTimeout as l, isErrorResult as n, defaultRuntimeApiUrl as o, unwrapApiResult as r, createDiagnosticMessage as s, hasDecodedError as t, libraryDefaultLocale as u };\n\n//# sourceMappingURL=unwrapApiResult-BzGfPw75.mjs.map","import { createDiagnosticMessage } from 'generaltranslation/internal';\nimport { createGlobalSingleton } from 'gt-i18n/internal';\nimport type { AsyncLocalConditionStore } from './AsyncLocalConditionStore';\n\nconst conditionStoreNotInitializedError = createDiagnosticMessage({\n  source: 'gt-tanstack-start',\n  severity: 'Error',\n  whatHappened: 'Cannot read GT server request state before initialization',\n  why: 'initializeGT() has not initialized the TanStack Start server condition store',\n  fix: \"Call initializeGT() from 'gt-tanstack-start' during application setup before using gtMiddleware or server APIs.\",\n});\n\nconst conditionStoreSingleton = createGlobalSingleton<AsyncLocalConditionStore>(\n  {\n    namespace: 'tanstackStart',\n    key: 'conditionStore',\n    source: 'gt-tanstack-start',\n    notInitialized: () => conditionStoreNotInitializedError,\n  }\n);\n\nexport const getConditionStore = conditionStoreSingleton.get;\nexport const setConditionStore = conditionStoreSingleton.set;\nexport const isConditionStoreInitialized =\n  conditionStoreSingleton.isInitialized;\n","import {\n  createMiddleware,\n  type RequestMiddlewareAfterServer,\n} from '@tanstack/react-start';\nimport { getConditionStore } from '../condition-store/singleton';\n\n/**\n * Establish request-scoped GT conditions for SSR, server routes, and server\n * functions.\n */\nexport const gtMiddleware: RequestMiddlewareAfterServer<\n  {},\n  undefined,\n  undefined\n> = createMiddleware().server(({ request, pathname, next }) => {\n  return getConditionStore().run(request, () => next(), pathname);\n});\n","import { createIsomorphicFn } from '@tanstack/react-start';\nimport { getReadonlyConditionStore } from '@generaltranslation/react-core/pure';\nimport {\n  getGTInternal,\n  getMessagesInternal,\n  getTranslationsInternal,\n} from 'gt-i18n/internal';\nimport type {\n  GTFunctionType,\n  MFunctionType,\n  Message,\n  TFunctionType,\n} from 'gt-i18n/types';\nimport { getConditionStore } from '../condition-store/singleton';\n\n/** Return the locale associated with the current request or browser. */\nexport const getLocale: () => string = createIsomorphicFn()\n  .server((): string => getConditionStore().getLocale())\n  .client((): string => getReadonlyConditionStore().getLocale());\n\n/** Return whether internationalization is enabled for the current runtime. */\nexport const getEnableI18n: () => boolean = createIsomorphicFn()\n  .server((): boolean => getConditionStore().getEnableI18n())\n  .client((): boolean => getReadonlyConditionStore().getEnableI18n());\n\n/** Return a string translation function for the current runtime. */\nexport const getGT: (messages?: Message[]) => Promise<GTFunctionType> =\n  createIsomorphicFn()\n    .server((messages?: Message[]) => {\n      const conditionStore = getConditionStore();\n      return getGTInternal(\n        {\n          locale: conditionStore.getLocale(),\n          enableI18n: conditionStore.getEnableI18n(),\n        },\n        messages\n      );\n    })\n    .client((messages?: Message[]) => {\n      const conditionStore = getReadonlyConditionStore();\n      return getGTInternal(\n        {\n          locale: conditionStore.getLocale(),\n          enableI18n: conditionStore.getEnableI18n(),\n        },\n        messages\n      );\n    });\n\n/** Return a registered-message translation function for the current runtime. */\nexport const getMessages: () => Promise<MFunctionType> = createIsomorphicFn()\n  .server(() => {\n    const conditionStore = getConditionStore();\n    return getMessagesInternal({\n      locale: conditionStore.getLocale(),\n      enableI18n: conditionStore.getEnableI18n(),\n    });\n  })\n  .client(() => {\n    const conditionStore = getReadonlyConditionStore();\n    return getMessagesInternal({\n      locale: conditionStore.getLocale(),\n      enableI18n: conditionStore.getEnableI18n(),\n    });\n  });\n\n/** Return a dictionary translation function for the current runtime. */\nexport const getTranslations: (rootId?: string) => Promise<TFunctionType> =\n  createIsomorphicFn()\n    .server((rootId?: string) => {\n      const conditionStore = getConditionStore();\n      return getTranslationsInternal({\n        locale: conditionStore.getLocale(),\n        enableI18n: conditionStore.getEnableI18n(),\n        rootId,\n      });\n    })\n    .client((rootId?: string) => {\n      const conditionStore = getReadonlyConditionStore();\n      return getTranslationsInternal({\n        locale: conditionStore.getLocale(),\n        enableI18n: conditionStore.getEnableI18n(),\n        rootId,\n      });\n    });\n","import type { RequestMiddlewareAfterServer } from '@tanstack/react-start';\nimport { gtMiddleware as mainGtMiddleware } from './middleware/gtMiddleware';\nimport {\n  getEnableI18n as mainGetEnableI18n,\n  getGT as mainGetGT,\n  getLocale as mainGetLocale,\n  getMessages as mainGetMessages,\n  getTranslations as mainGetTranslations,\n} from './functions/runtime';\n\n/** @deprecated Import `gtMiddleware` from `gt-tanstack-start` instead. */\nexport const gtMiddleware: RequestMiddlewareAfterServer<\n  {},\n  undefined,\n  undefined\n> = mainGtMiddleware;\n\n/** @deprecated Import `getLocale` from `gt-tanstack-start` instead. */\nexport const getLocale = mainGetLocale;\n\n/** @deprecated Import `getEnableI18n` from `gt-tanstack-start` instead. */\nexport const getEnableI18n = mainGetEnableI18n;\n\n/** @deprecated Import `getGT` from `gt-tanstack-start` instead. */\nexport const getGT = mainGetGT;\n\n/** @deprecated Import `getMessages` from `gt-tanstack-start` instead. */\nexport const getMessages = mainGetMessages;\n\n/** @deprecated Import `getTranslations` from `gt-tanstack-start` instead. */\nexport const getTranslations = mainGetTranslations;\n"],"mappings":"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"}