{"version":3,"file":"getLocale.cjs","names":["internationalization","DEFAULT_LOCALE","LOCALES","getLocaleFromStorageServer","localeResolver","getPreferredLanguages"],"sources":["../../../src/localization/getLocale.ts"],"sourcesContent":["import { internationalization } from '@intlayer/config/built';\nimport { DEFAULT_LOCALE, LOCALES } from '@intlayer/config/defaultValues';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { getLocaleFromStorageServer } from '../utils/localeStorage';\nimport { getPreferredLanguages } from './localeDetector';\nimport { localeResolver } from './localeResolver';\n\nexport type RequestContext = {\n  getHeader?: (name: string) => string | null | undefined;\n  getCookie?: (name: string) => string | null | undefined;\n};\n\nexport const getLocale = async (ctx: RequestContext = {}): Promise<Locale> => {\n  const defaultLocale = internationalization?.defaultLocale ?? DEFAULT_LOCALE;\n  const availableLocales = internationalization?.locales ?? LOCALES;\n\n  // Try locale from storage (cookie or header)\n  const storedLocale = getLocaleFromStorageServer({\n    getCookie: ctx.getCookie,\n    getHeader: ctx.getHeader,\n  });\n\n  if (storedLocale) {\n    return storedLocale;\n  }\n\n  // Fallback to Accept-Language negotiation\n  const acceptLanguageHeader = ctx.getHeader?.('accept-language');\n\n  if (!acceptLanguageHeader) {\n    return defaultLocale;\n  }\n\n  const preferredLocaleStrings = getPreferredLanguages(\n    acceptLanguageHeader,\n    availableLocales\n  );\n\n  const userFallbackLocale = localeResolver(\n    preferredLocaleStrings,\n    availableLocales,\n    defaultLocale\n  );\n\n  if (userFallbackLocale) {\n    return userFallbackLocale;\n  }\n\n  // Default locale\n  return defaultLocale;\n};\n"],"mappings":";;;;;;;;;AAYA,MAAa,YAAY,OAAO,MAAsB,EAAE,KAAsB;CAC5E,MAAM,gBAAgBA,6CAAsB,iBAAiBC;CAC7D,MAAM,mBAAmBD,6CAAsB,WAAWE;CAG1D,MAAM,eAAeC,uDAA2B;EAC9C,WAAW,IAAI;EACf,WAAW,IAAI;EAChB,CAAC;AAEF,KAAI,aACF,QAAO;CAIT,MAAM,uBAAuB,IAAI,YAAY,kBAAkB;AAE/D,KAAI,CAAC,qBACH,QAAO;CAQT,MAAM,qBAAqBC,mDALIC,0DAC7B,sBACA,iBAIsB,EACtB,kBACA,cACD;AAED,KAAI,mBACF,QAAO;AAIT,QAAO"}