@wix/headless-localization-utils 1.0.2 → 1.0.3

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/build/index.cjs CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ MULTILINGUAL_COOKIE_HEADER_KEY: () => MULTILINGUAL_COOKIE_HEADER_KEY,
23
24
  getLocalizationData: () => getLocalizationData
24
25
  });
25
26
  module.exports = __toCommonJS(index_exports);
@@ -155,6 +156,7 @@ function getLocalizationData(url, header, siteProperties) {
155
156
  }
156
157
  // Annotate the CommonJS export names for ESM import in node:
157
158
  0 && (module.exports = {
159
+ MULTILINGUAL_COOKIE_HEADER_KEY,
158
160
  getLocalizationData
159
161
  });
160
162
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/localeUtils.ts","../src/urlUtils.ts","../src/languageHeaderUtils.ts","../src/localizationUtils.ts"],"sourcesContent":["export {\n getLocalizationData,\n type LocalizationData,\n} from './localizationUtils.js';\n","import type { scripts } from '@wix/headless-site-assets';\n\n// Type for locale object\nexport type Locale = scripts.Locale;\n\n// Type for locale string building\nexport const buildLocaleString = (\n locale?: null | Locale,\n): string | undefined => {\n if (!locale) {\n return;\n }\n\n // in case of dialects, language code will be in the form of\n // en-au and not just en\n if (locale.languageCode?.includes('-')) {\n return locale.languageCode;\n }\n\n const localeParts = [locale.languageCode, locale.country].filter(Boolean);\n\n if (localeParts.length === 0) {\n return;\n }\n\n return localeParts.join('-');\n};\n","import type { scripts } from '@wix/headless-site-assets';\n\nexport type SupportedLanguage = scripts.SupportedLanguage;\n\ntype AvailableLocale = SupportedLanguage;\n\nconst getLanguageFromQueryParam = (url: URL) =>\n url.searchParams.get('lang') ?? undefined;\nconst getLanguageFromSubfolder = (url: URL) => url.pathname.split('/')[1];\nconst getLanguageFromSubdomain = (url: URL) => url.hostname.split('.')[0];\n\nexport const extractLanguageFromUrlAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n const localeFromQueryParams = extractFromQueryParamsAndValidate(\n url,\n availableLocales,\n );\n if (localeFromQueryParams?.resolutionMethod === 'QUERY_PARAM') {\n return localeFromQueryParams;\n }\n\n const localeFromSubfolder = extractFromSubfolderAndValidate(\n url,\n availableLocales,\n );\n if (localeFromSubfolder?.resolutionMethod === 'SUBDIRECTORY') {\n return localeFromSubfolder;\n }\n\n const localeFromSubdomain = extractFromSubdomainAndValidate(\n url,\n availableLocales,\n );\n if (localeFromSubdomain?.resolutionMethod === 'SUBDOMAIN') {\n return localeFromSubdomain;\n }\n\n // Fallback if a locale is available but doesn't have the correct resolution method\n return localeFromQueryParams ?? localeFromSubfolder ?? localeFromSubdomain;\n};\n\nexport const clearLanguageFromUrl = (\n urlString: string,\n languageCodes: string[],\n): string => {\n const url = new URL(urlString);\n url.searchParams.delete('lang');\n\n const subfolderLanguage = url.pathname.split('/')[1]?.toLowerCase();\n if (languageCodes.includes(subfolderLanguage ?? '')) {\n const segments = url.pathname.split('/'); // ['', 'en', 'docs', 'api']\n segments.splice(1, 1); // Remove index 1\n url.pathname = segments.join('/');\n }\n\n const subdirectoryLanguage = url.hostname.split('.')[0]?.toLowerCase();\n if (languageCodes.includes(subdirectoryLanguage ?? '')) {\n const parts = url.hostname.split('.'); // ['fr', 'example', 'com']\n parts.shift(); // ['example', 'com']\n url.hostname = parts.join('.');\n }\n\n return url.href;\n};\n\n// https://somesite.com/hello?lang:XX\nconst extractFromQueryParamsAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n return getLanguageIfExists(getLanguageFromQueryParam(url), availableLocales);\n};\n\n// https://somesite.com/XX/hello\nconst extractFromSubfolderAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n return getLanguageIfExists(getLanguageFromSubfolder(url), availableLocales);\n};\n\n// https://XX.somesite.com/hello\nconst extractFromSubdomainAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n return getLanguageIfExists(getLanguageFromSubdomain(url), availableLocales);\n};\n\nconst getLanguageIfExists = (\n languageCode: string | undefined,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n if (languageCode == null) {\n return undefined;\n }\n const lowerCasedCode = languageCode.toLowerCase();\n return availableLocales.find(\n (locale) => locale.locale?.languageCode?.toLowerCase() === lowerCasedCode,\n );\n};\n","import type { scripts } from '@wix/headless-site-assets';\nimport {\n MULTILINGUAL_COOKIE_HEADER_KEY,\n WixLanguage,\n} from './localizationUtils.js';\n\nexport const calculateLocaleFromMultilingualCookie = (\n headers: Headers,\n supportedLanguages: scripts.SupportedLanguage[],\n) => {\n if (!supportedLanguages.length) {\n return undefined;\n }\n\n const languageCode = getWixLanguageFromCookie(headers)?.languageCode;\n if (!languageCode) {\n return undefined;\n }\n return supportedLanguages.find(\n (supportedLanguage) => supportedLanguage.languageCode === languageCode,\n );\n};\n\nconst getWixLanguageFromCookie = (\n headers: Headers,\n): WixLanguage | undefined => {\n try {\n const cookies = headers.get('cookie') ?? undefined;\n\n const languageCookie = cookies\n ?.split(';')\n .find((keyValue) =>\n keyValue.trim().startsWith(`${MULTILINGUAL_COOKIE_HEADER_KEY}=`),\n );\n\n return languageCookie\n ? { languageCode: languageCookie.split('=')[1] }\n : undefined;\n } catch {\n return undefined;\n }\n};\n","import type { Essentials, Multilingual } from '@wix/headless-node';\nimport type { scripts } from '@wix/headless-site-assets';\nimport { buildLocaleString } from './localeUtils.js';\nimport {\n clearLanguageFromUrl,\n extractLanguageFromUrlAndValidate,\n} from './urlUtils.js';\nimport { calculateLocaleFromMultilingualCookie } from './languageHeaderUtils.js';\n\nexport type EssentialProperties = scripts.EssentialProperties;\nexport const MULTILINGUAL_COOKIE_HEADER_KEY = `wixLanguage`;\nexport interface WixLanguage {\n languageCode?: string;\n}\n\nexport type LocalizationData = {\n cleanUrl: string;\n essentials: Essentials;\n};\n\nexport function getLocalizationData(\n url: URL,\n header: Headers,\n siteProperties: EssentialProperties,\n): LocalizationData {\n const availableLocales =\n siteProperties?.multilingual?.supportedLanguages ?? [];\n const explicitRequestedLocale = extractLanguageFromUrlAndValidate(\n url,\n availableLocales,\n );\n\n const languageCodes = [\n ...availableLocales.map((locale) => locale.locale?.languageCode),\n siteProperties?.locale?.languageCode,\n ].filter((languageCode) => Boolean(languageCode)) as string[];\n\n const locale =\n buildLocaleString(\n explicitRequestedLocale?.locale ??\n calculateLocaleFromMultilingualCookie(header, availableLocales)\n ?.locale ??\n siteProperties?.locale,\n ) ?? undefined;\n\n const language =\n explicitRequestedLocale?.languageCode ??\n calculateLocaleFromMultilingualCookie(header, availableLocales)\n ?.languageCode ??\n siteProperties?.language ??\n undefined;\n\n const cleanUrl = clearLanguageFromUrl(url.href, languageCodes);\n\n const essentials: Essentials = {\n language,\n locale,\n multilingual: siteProperties?.multilingual as Multilingual | undefined,\n timezone: siteProperties?.timeZone ?? undefined,\n };\n\n return { cleanUrl, essentials };\n}\n"],"mappings":"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","names":["locale"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/localeUtils.ts","../src/urlUtils.ts","../src/languageHeaderUtils.ts","../src/localizationUtils.ts"],"sourcesContent":["export {\n getLocalizationData,\n type LocalizationData,\n MULTILINGUAL_COOKIE_HEADER_KEY,\n} from './localizationUtils.js';\n","import type { scripts } from '@wix/headless-site-assets';\n\n// Type for locale object\nexport type Locale = scripts.Locale;\n\n// Type for locale string building\nexport const buildLocaleString = (\n locale?: null | Locale,\n): string | undefined => {\n if (!locale) {\n return;\n }\n\n // in case of dialects, language code will be in the form of\n // en-au and not just en\n if (locale.languageCode?.includes('-')) {\n return locale.languageCode;\n }\n\n const localeParts = [locale.languageCode, locale.country].filter(Boolean);\n\n if (localeParts.length === 0) {\n return;\n }\n\n return localeParts.join('-');\n};\n","import type { scripts } from '@wix/headless-site-assets';\n\nexport type SupportedLanguage = scripts.SupportedLanguage;\n\ntype AvailableLocale = SupportedLanguage;\n\nconst getLanguageFromQueryParam = (url: URL) =>\n url.searchParams.get('lang') ?? undefined;\nconst getLanguageFromSubfolder = (url: URL) => url.pathname.split('/')[1];\nconst getLanguageFromSubdomain = (url: URL) => url.hostname.split('.')[0];\n\nexport const extractLanguageFromUrlAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n const localeFromQueryParams = extractFromQueryParamsAndValidate(\n url,\n availableLocales,\n );\n if (localeFromQueryParams?.resolutionMethod === 'QUERY_PARAM') {\n return localeFromQueryParams;\n }\n\n const localeFromSubfolder = extractFromSubfolderAndValidate(\n url,\n availableLocales,\n );\n if (localeFromSubfolder?.resolutionMethod === 'SUBDIRECTORY') {\n return localeFromSubfolder;\n }\n\n const localeFromSubdomain = extractFromSubdomainAndValidate(\n url,\n availableLocales,\n );\n if (localeFromSubdomain?.resolutionMethod === 'SUBDOMAIN') {\n return localeFromSubdomain;\n }\n\n // Fallback if a locale is available but doesn't have the correct resolution method\n return localeFromQueryParams ?? localeFromSubfolder ?? localeFromSubdomain;\n};\n\nexport const clearLanguageFromUrl = (\n urlString: string,\n languageCodes: string[],\n): string => {\n const url = new URL(urlString);\n url.searchParams.delete('lang');\n\n const subfolderLanguage = url.pathname.split('/')[1]?.toLowerCase();\n if (languageCodes.includes(subfolderLanguage ?? '')) {\n const segments = url.pathname.split('/'); // ['', 'en', 'docs', 'api']\n segments.splice(1, 1); // Remove index 1\n url.pathname = segments.join('/');\n }\n\n const subdirectoryLanguage = url.hostname.split('.')[0]?.toLowerCase();\n if (languageCodes.includes(subdirectoryLanguage ?? '')) {\n const parts = url.hostname.split('.'); // ['fr', 'example', 'com']\n parts.shift(); // ['example', 'com']\n url.hostname = parts.join('.');\n }\n\n return url.href;\n};\n\n// https://somesite.com/hello?lang:XX\nconst extractFromQueryParamsAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n return getLanguageIfExists(getLanguageFromQueryParam(url), availableLocales);\n};\n\n// https://somesite.com/XX/hello\nconst extractFromSubfolderAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n return getLanguageIfExists(getLanguageFromSubfolder(url), availableLocales);\n};\n\n// https://XX.somesite.com/hello\nconst extractFromSubdomainAndValidate = (\n url: URL,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n return getLanguageIfExists(getLanguageFromSubdomain(url), availableLocales);\n};\n\nconst getLanguageIfExists = (\n languageCode: string | undefined,\n availableLocales: AvailableLocale[],\n): AvailableLocale | undefined => {\n if (languageCode == null) {\n return undefined;\n }\n const lowerCasedCode = languageCode.toLowerCase();\n return availableLocales.find(\n (locale) => locale.locale?.languageCode?.toLowerCase() === lowerCasedCode,\n );\n};\n","import type { scripts } from '@wix/headless-site-assets';\nimport {\n MULTILINGUAL_COOKIE_HEADER_KEY,\n WixLanguage,\n} from './localizationUtils.js';\n\nexport const calculateLocaleFromMultilingualCookie = (\n headers: Headers,\n supportedLanguages: scripts.SupportedLanguage[],\n) => {\n if (!supportedLanguages.length) {\n return undefined;\n }\n\n const languageCode = getWixLanguageFromCookie(headers)?.languageCode;\n if (!languageCode) {\n return undefined;\n }\n return supportedLanguages.find(\n (supportedLanguage) => supportedLanguage.languageCode === languageCode,\n );\n};\n\nconst getWixLanguageFromCookie = (\n headers: Headers,\n): WixLanguage | undefined => {\n try {\n const cookies = headers.get('cookie') ?? undefined;\n\n const languageCookie = cookies\n ?.split(';')\n .find((keyValue) =>\n keyValue.trim().startsWith(`${MULTILINGUAL_COOKIE_HEADER_KEY}=`),\n );\n\n return languageCookie\n ? { languageCode: languageCookie.split('=')[1] }\n : undefined;\n } catch {\n return undefined;\n }\n};\n","import type { Essentials, Multilingual } from '@wix/headless-node';\nimport type { scripts } from '@wix/headless-site-assets';\nimport { buildLocaleString } from './localeUtils.js';\nimport {\n clearLanguageFromUrl,\n extractLanguageFromUrlAndValidate,\n} from './urlUtils.js';\nimport { calculateLocaleFromMultilingualCookie } from './languageHeaderUtils.js';\n\nexport type EssentialProperties = scripts.EssentialProperties;\nexport const MULTILINGUAL_COOKIE_HEADER_KEY = `wixLanguage`;\nexport interface WixLanguage {\n languageCode?: string;\n}\n\nexport type LocalizationData = {\n cleanUrl: string;\n essentials: Essentials;\n};\n\nexport function getLocalizationData(\n url: URL,\n header: Headers,\n siteProperties: EssentialProperties,\n): LocalizationData {\n const availableLocales =\n siteProperties?.multilingual?.supportedLanguages ?? [];\n const explicitRequestedLocale = extractLanguageFromUrlAndValidate(\n url,\n availableLocales,\n );\n\n const languageCodes = [\n ...availableLocales.map((locale) => locale.locale?.languageCode),\n siteProperties?.locale?.languageCode,\n ].filter((languageCode) => Boolean(languageCode)) as string[];\n\n const locale =\n buildLocaleString(\n explicitRequestedLocale?.locale ??\n calculateLocaleFromMultilingualCookie(header, availableLocales)\n ?.locale ??\n siteProperties?.locale,\n ) ?? undefined;\n\n const language =\n explicitRequestedLocale?.languageCode ??\n calculateLocaleFromMultilingualCookie(header, availableLocales)\n ?.languageCode ??\n siteProperties?.language ??\n undefined;\n\n const cleanUrl = clearLanguageFromUrl(url.href, languageCodes);\n\n const essentials: Essentials = {\n language,\n locale,\n multilingual: siteProperties?.multilingual as Multilingual | undefined,\n timezone: siteProperties?.timeZone ?? undefined,\n };\n\n return { cleanUrl, essentials };\n}\n"],"mappings":"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","names":["locale"]}
package/build/index.d.cts CHANGED
@@ -2,10 +2,11 @@ import { Essentials } from '@wix/headless-node';
2
2
  import { scripts } from '@wix/headless-site-assets';
3
3
 
4
4
  type EssentialProperties = scripts.EssentialProperties;
5
+ declare const MULTILINGUAL_COOKIE_HEADER_KEY = "wixLanguage";
5
6
  type LocalizationData = {
6
7
  cleanUrl: string;
7
8
  essentials: Essentials;
8
9
  };
9
10
  declare function getLocalizationData(url: URL, header: Headers, siteProperties: EssentialProperties): LocalizationData;
10
11
 
11
- export { type LocalizationData, getLocalizationData };
12
+ export { type LocalizationData, MULTILINGUAL_COOKIE_HEADER_KEY, getLocalizationData };
package/build/index.d.ts CHANGED
@@ -2,10 +2,11 @@ import { Essentials } from '@wix/headless-node';
2
2
  import { scripts } from '@wix/headless-site-assets';
3
3
 
4
4
  type EssentialProperties = scripts.EssentialProperties;
5
+ declare const MULTILINGUAL_COOKIE_HEADER_KEY = "wixLanguage";
5
6
  type LocalizationData = {
6
7
  cleanUrl: string;
7
8
  essentials: Essentials;
8
9
  };
9
10
  declare function getLocalizationData(url: URL, header: Headers, siteProperties: EssentialProperties): LocalizationData;
10
11
 
11
- export { type LocalizationData, getLocalizationData };
12
+ export { type LocalizationData, MULTILINGUAL_COOKIE_HEADER_KEY, getLocalizationData };
package/build/index.js CHANGED
@@ -128,6 +128,7 @@ function getLocalizationData(url, header, siteProperties) {
128
128
  return { cleanUrl, essentials };
129
129
  }
130
130
  export {
131
+ MULTILINGUAL_COOKIE_HEADER_KEY,
131
132
  getLocalizationData
132
133
  };
133
134
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/headless-localization-utils",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "unpkg": true,
5
5
  "license": "MIT",
6
6
  "author": {
@@ -74,5 +74,5 @@
74
74
  ]
75
75
  }
76
76
  },
77
- "falconPackageHash": "fab8779c7b1cb24ed5f7900d16434788b70125872039e1a93f643728"
77
+ "falconPackageHash": "a897f873c70cd942f726a736161c2126fb69392c9ca303c30a79687e"
78
78
  }