@wix/headless-site 1.11.0 → 1.13.0
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/cjs/headers/index.js +3 -2
- package/dist/cjs/headers/index.js.map +1 -1
- package/dist/cjs/headers/multilingual-header.js +26 -0
- package/dist/cjs/headers/multilingual-header.js.map +1 -0
- package/dist/cjs/host-module.js +19 -7
- package/dist/cjs/host-module.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/multilingual-utils.js +38 -0
- package/dist/cjs/utils/multilingual-utils.js.map +1 -0
- package/dist/esm/headers/index.js +3 -2
- package/dist/esm/headers/index.js.map +1 -1
- package/dist/esm/headers/multilingual-header.js +21 -0
- package/dist/esm/headers/multilingual-header.js.map +1 -0
- package/dist/esm/host-module.js +19 -7
- package/dist/esm/host-module.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/multilingual-utils.js +32 -0
- package/dist/esm/utils/multilingual-utils.js.map +1 -0
- package/dist/types/headers/index.d.ts +2 -1
- package/dist/types/headers/index.d.ts.map +1 -1
- package/dist/types/headers/multilingual-header.d.ts +9 -0
- package/dist/types/headers/multilingual-header.d.ts.map +1 -0
- package/dist/types/host-module.d.ts.map +1 -1
- package/dist/types/types.d.ts +16 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/multilingual-utils.d.ts +4 -0
- package/dist/types/utils/multilingual-utils.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.getPassThroughHeaders = void 0;
|
|
5
5
|
var _commonConfigHeader = require("./common-config-header");
|
|
6
|
+
var _multilingualHeader = require("./multilingual-header");
|
|
6
7
|
/**
|
|
7
8
|
* Based on https://github.com/wix-private/metro/blob/master/packages/wix-headers/src/index.ts
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
|
-
const getPassThroughHeaders =
|
|
11
|
-
const headers = [(0, _commonConfigHeader.getCommonConfigHeader)()];
|
|
11
|
+
const getPassThroughHeaders = essentials => {
|
|
12
|
+
const headers = [(0, _commonConfigHeader.getCommonConfigHeader)(), (0, _multilingualHeader.getMultilingualHeader)(essentials)];
|
|
12
13
|
return headers.reduce((res, header) => {
|
|
13
14
|
const entries = Object.entries(header).filter(([_, value]) => !!value);
|
|
14
15
|
res = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_commonConfigHeader","require","getPassThroughHeaders","headers","getCommonConfigHeader","reduce","res","header","entries","Object","filter","_","value","fromEntries","exports"],"sources":["../../../src/headers/index.ts"],"sourcesContent":["/**\n * Based on https://github.com/wix-private/metro/blob/master/packages/wix-headers/src/index.ts\n */\n\nimport { getCommonConfigHeader } from './common-config-header';\n\nexport const getPassThroughHeaders = () => {\n const headers = [getCommonConfigHeader()];\n\n return headers.reduce((res, header) => {\n const entries = Object.entries(header).filter(([_, value]) => !!value);\n\n res = {\n ...res,\n ...Object.fromEntries(entries),\n };\n\n return res;\n }, {} as Record<string, string>);\n};\n"],"mappings":";;;;AAIA,IAAAA,mBAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_commonConfigHeader","require","_multilingualHeader","getPassThroughHeaders","essentials","headers","getCommonConfigHeader","getMultilingualHeader","reduce","res","header","entries","Object","filter","_","value","fromEntries","exports"],"sources":["../../../src/headers/index.ts"],"sourcesContent":["/**\n * Based on https://github.com/wix-private/metro/blob/master/packages/wix-headers/src/index.ts\n */\n\nimport { getCommonConfigHeader } from './common-config-header';\nimport { getMultilingualHeader } from './multilingual-header';\nimport { Essentials } from '../types';\n\nexport const getPassThroughHeaders = (essentials?: Essentials) => {\n const headers = [getCommonConfigHeader(), getMultilingualHeader(essentials)];\n\n return headers.reduce((res, header) => {\n const entries = Object.entries(header).filter(([_, value]) => !!value);\n\n res = {\n ...res,\n ...Object.fromEntries(entries),\n };\n\n return res;\n }, {} as Record<string, string>);\n};\n"],"mappings":";;;;AAIA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAMO,MAAME,qBAAqB,GAAIC,UAAuB,IAAK;EAChE,MAAMC,OAAO,GAAG,CAAC,IAAAC,yCAAqB,EAAC,CAAC,EAAE,IAAAC,yCAAqB,EAACH,UAAU,CAAC,CAAC;EAE5E,OAAOC,OAAO,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;IACrC,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACD,MAAM,CAAC,CAACG,MAAM,CAAC,CAAC,CAACC,CAAC,EAAEC,KAAK,CAAC,KAAK,CAAC,CAACA,KAAK,CAAC;IAEtEN,GAAG,GAAG;MACJ,GAAGA,GAAG;MACN,GAAGG,MAAM,CAACI,WAAW,CAACL,OAAO;IAC/B,CAAC;IAED,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAA2B,CAAC;AAClC,CAAC;AAACQ,OAAA,CAAAd,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getMultilingualHeader = exports.MULTILINGUAL_HEADER_KEY = exports.DUMMY_INSTANCE_ID = void 0;
|
|
5
|
+
var _multilingualUtils = require("../utils/multilingual-utils");
|
|
6
|
+
const MULTILINGUAL_HEADER_KEY = exports.MULTILINGUAL_HEADER_KEY = 'x-wix-linguist';
|
|
7
|
+
|
|
8
|
+
// Hard coded UUID for multilingual support https://wix.slack.com/archives/C04BFK71QHW/p1676992832913939 .
|
|
9
|
+
const DUMMY_INSTANCE_ID = exports.DUMMY_INSTANCE_ID = '00000000-0000-0000-0000-000000000000';
|
|
10
|
+
const getMultilingualHeader = essentials => {
|
|
11
|
+
var _multilingual$support;
|
|
12
|
+
const currentLocale = (0, _multilingualUtils.getCurrentLocale)(essentials);
|
|
13
|
+
const multilingual = essentials == null ? void 0 : essentials.multilingual;
|
|
14
|
+
if (currentLocale && multilingual != null && (_multilingual$support = multilingual.supportedLanguages) != null && _multilingual$support.length) {
|
|
15
|
+
var _multilingual$support2;
|
|
16
|
+
const language = multilingual == null || (_multilingual$support2 = multilingual.supportedLanguages) == null ? void 0 : _multilingual$support2.find(lang => (0, _multilingualUtils.getLanguageLocale)(lang) === currentLocale);
|
|
17
|
+
if (language) {
|
|
18
|
+
return {
|
|
19
|
+
[MULTILINGUAL_HEADER_KEY]: `${language.languageCode}|${currentLocale.toLowerCase()}|${!!language.isPrimary}|${DUMMY_INSTANCE_ID}`
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return {};
|
|
24
|
+
};
|
|
25
|
+
exports.getMultilingualHeader = getMultilingualHeader;
|
|
26
|
+
//# sourceMappingURL=multilingual-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_multilingualUtils","require","MULTILINGUAL_HEADER_KEY","exports","DUMMY_INSTANCE_ID","getMultilingualHeader","essentials","_multilingual$support","currentLocale","getCurrentLocale","multilingual","supportedLanguages","length","_multilingual$support2","language","find","lang","getLanguageLocale","languageCode","toLowerCase","isPrimary"],"sources":["../../../src/headers/multilingual-header.ts"],"sourcesContent":["import type { Essentials, SupportedLanguage } from '../types';\nimport {\n getLanguageLocale,\n getCurrentLocale,\n} from '../utils/multilingual-utils';\n\nexport const MULTILINGUAL_HEADER_KEY = 'x-wix-linguist';\n\n// Hard coded UUID for multilingual support https://wix.slack.com/archives/C04BFK71QHW/p1676992832913939 .\nexport const DUMMY_INSTANCE_ID = '00000000-0000-0000-0000-000000000000';\n\nexport const getMultilingualHeader = (essentials?: Essentials) => {\n const currentLocale = getCurrentLocale(essentials);\n const multilingual = essentials?.multilingual;\n\n if (currentLocale && multilingual?.supportedLanguages?.length) {\n const language = multilingual?.supportedLanguages?.find(\n (lang: SupportedLanguage) => getLanguageLocale(lang) === currentLocale,\n );\n if (language) {\n return {\n [MULTILINGUAL_HEADER_KEY]: `${\n language.languageCode\n }|${currentLocale.toLowerCase()}|${!!language.isPrimary}|${DUMMY_INSTANCE_ID}`,\n };\n }\n }\n return {};\n};\n"],"mappings":";;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AAKO,MAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,gBAAgB;;AAEvD;AACO,MAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,sCAAsC;AAEhE,MAAMC,qBAAqB,GAAIC,UAAuB,IAAK;EAAA,IAAAC,qBAAA;EAChE,MAAMC,aAAa,GAAG,IAAAC,mCAAgB,EAACH,UAAU,CAAC;EAClD,MAAMI,YAAY,GAAGJ,UAAU,oBAAVA,UAAU,CAAEI,YAAY;EAE7C,IAAIF,aAAa,IAAIE,YAAY,aAAAH,qBAAA,GAAZG,YAAY,CAAEC,kBAAkB,aAAhCJ,qBAAA,CAAkCK,MAAM,EAAE;IAAA,IAAAC,sBAAA;IAC7D,MAAMC,QAAQ,GAAGJ,YAAY,aAAAG,sBAAA,GAAZH,YAAY,CAAEC,kBAAkB,qBAAhCE,sBAAA,CAAkCE,IAAI,CACpDC,IAAuB,IAAK,IAAAC,oCAAiB,EAACD,IAAI,CAAC,KAAKR,aAC3D,CAAC;IACD,IAAIM,QAAQ,EAAE;MACZ,OAAO;QACL,CAACZ,uBAAuB,GAAG,GACzBY,QAAQ,CAACI,YAAY,IACnBV,aAAa,CAACW,WAAW,CAAC,CAAC,IAAI,CAAC,CAACL,QAAQ,CAACM,SAAS,IAAIhB,iBAAiB;MAC9E,CAAC;IACH;EACF;EACA,OAAO,CAAC,CAAC;AACX,CAAC;AAACD,OAAA,CAAAE,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
package/dist/cjs/host-module.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.createHostModule = void 0;
|
|
|
5
5
|
var _monitoringVelo = require("@wix/monitoring-velo");
|
|
6
6
|
var _headers = require("./headers");
|
|
7
7
|
var _authUtils = require("./utils/auth-utils");
|
|
8
|
+
var _multilingualUtils = require("./utils/multilingual-utils");
|
|
8
9
|
const createHostModule = () => {
|
|
9
10
|
return {
|
|
10
11
|
__type: 'host',
|
|
@@ -17,19 +18,16 @@ const createHostModule = () => {
|
|
|
17
18
|
return {
|
|
18
19
|
essentials: {
|
|
19
20
|
get passThroughHeaders() {
|
|
20
|
-
return (0, _headers.getPassThroughHeaders)();
|
|
21
|
+
return (0, _headers.getPassThroughHeaders)(getNormalizedEssentials(essentials));
|
|
21
22
|
},
|
|
22
23
|
get language() {
|
|
23
|
-
|
|
24
|
-
return (essentials == null ? void 0 : essentials.language) ?? ((_window$essentials = window.essentials) == null ? void 0 : _window$essentials.language) ?? 'en';
|
|
24
|
+
return getNormalizedEssentials(essentials).language ?? 'en';
|
|
25
25
|
},
|
|
26
26
|
get locale() {
|
|
27
|
-
|
|
28
|
-
return (essentials == null ? void 0 : essentials.locale) ?? ((_window$essentials2 = window.essentials) == null ? void 0 : _window$essentials2.locale) ?? 'en-US';
|
|
27
|
+
return (0, _multilingualUtils.getCurrentLocale)(getNormalizedEssentials(essentials));
|
|
29
28
|
},
|
|
30
29
|
get timezone() {
|
|
31
|
-
|
|
32
|
-
return (essentials == null ? void 0 : essentials.timezone) ?? ((_window$essentials3 = window.essentials) == null ? void 0 : _window$essentials3.timeZone) ?? 'UTC';
|
|
30
|
+
return getNormalizedEssentials(essentials).timezone ?? 'UTC';
|
|
33
31
|
}
|
|
34
32
|
},
|
|
35
33
|
getMonitoringClient: () => {
|
|
@@ -50,5 +48,19 @@ const createHostModule = () => {
|
|
|
50
48
|
}
|
|
51
49
|
};
|
|
52
50
|
};
|
|
51
|
+
|
|
52
|
+
// Normalize essentials by merging with window.essentials, handling property name differences
|
|
53
|
+
// Use a function to maintain reactivity to window.essentials changes
|
|
53
54
|
exports.createHostModule = createHostModule;
|
|
55
|
+
const getNormalizedEssentials = essentials => {
|
|
56
|
+
var _window$essentials, _window$essentials2, _window$essentials3, _window$essentials4;
|
|
57
|
+
return {
|
|
58
|
+
...essentials,
|
|
59
|
+
...(typeof window !== 'undefined' ? window.essentials : {}),
|
|
60
|
+
language: (essentials == null ? void 0 : essentials.language) ?? (typeof window !== 'undefined' ? (_window$essentials = window.essentials) == null ? void 0 : _window$essentials.language : undefined) ?? 'en',
|
|
61
|
+
locale: (essentials == null ? void 0 : essentials.locale) ?? (typeof window !== 'undefined' ? (_window$essentials2 = window.essentials) == null ? void 0 : _window$essentials2.locale : undefined),
|
|
62
|
+
timezone: (essentials == null ? void 0 : essentials.timezone) ?? (typeof window !== 'undefined' ? (_window$essentials3 = window.essentials) == null ? void 0 : _window$essentials3.timeZone : undefined),
|
|
63
|
+
multilingual: (essentials == null ? void 0 : essentials.multilingual) ?? (typeof window !== 'undefined' ? (_window$essentials4 = window.essentials) == null ? void 0 : _window$essentials4.multilingual : undefined)
|
|
64
|
+
};
|
|
65
|
+
};
|
|
54
66
|
//# sourceMappingURL=host-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_monitoringVelo","require","_headers","_authUtils","createHostModule","__type","create","host","essentials","passThroughHeaders","getPassThroughHeaders","
|
|
1
|
+
{"version":3,"names":["_monitoringVelo","require","_headers","_authUtils","_multilingualUtils","createHostModule","__type","create","host","essentials","passThroughHeaders","getPassThroughHeaders","getNormalizedEssentials","language","locale","getCurrentLocale","timezone","getMonitoringClient","producer","req","document","location","href","Request","createVeloMonitoringClient","namespace","getAuthToken","resolveAuthToken","exports","_window$essentials","_window$essentials2","_window$essentials3","_window$essentials4","window","undefined","timeZone","multilingual"],"sources":["../../src/host-module.ts"],"sourcesContent":["import type { HostModule, Host } from '@wix/sdk-types';\nimport { createVeloMonitoringClient } from '@wix/monitoring-velo';\nimport { getPassThroughHeaders } from './headers';\nimport { resolveAuthToken } from './utils/auth-utils';\nimport type { Essentials, SDK, SDKOptions } from './types';\nimport { getCurrentLocale } from './utils/multilingual-utils';\n\nexport const createHostModule = (): HostModule<SDK, Host> & {\n host: (options: SDKOptions) => Host;\n} => {\n return {\n __type: 'host',\n create: () => {\n return {};\n },\n host: ({ essentials }: SDKOptions = {}) => {\n return {\n essentials: {\n get passThroughHeaders() {\n return getPassThroughHeaders(getNormalizedEssentials(essentials));\n },\n get language() {\n return getNormalizedEssentials(essentials).language ?? 'en';\n },\n get locale() {\n return getCurrentLocale(getNormalizedEssentials(essentials));\n },\n get timezone() {\n return getNormalizedEssentials(essentials).timezone ?? 'UTC';\n },\n },\n getMonitoringClient: () => {\n let producer = 'unknown';\n let req: Request | undefined;\n\n if (typeof document !== 'undefined') {\n producer = document.location.href;\n req = new Request(document.location.href);\n }\n\n return createVeloMonitoringClient({\n namespace: 'Headless',\n producer,\n getAuthToken: async () => resolveAuthToken(),\n req,\n });\n },\n };\n },\n };\n};\n\n// Normalize essentials by merging with window.essentials, handling property name differences\n// Use a function to maintain reactivity to window.essentials changes\nconst getNormalizedEssentials = (essentials?: Essentials): Essentials => ({\n ...essentials,\n ...(typeof window !== 'undefined' ? window.essentials : {}),\n language:\n essentials?.language ??\n (typeof window !== 'undefined' ? window.essentials?.language : undefined) ??\n 'en',\n locale:\n essentials?.locale ??\n (typeof window !== 'undefined' ? window.essentials?.locale : undefined),\n timezone:\n essentials?.timezone ??\n (typeof window !== 'undefined' ? window.essentials?.timeZone : undefined),\n multilingual:\n essentials?.multilingual ??\n (typeof window !== 'undefined'\n ? window.essentials?.multilingual\n : undefined),\n});\n"],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/types.ts"],"sourcesContent":["export type SDK = {};\n\ndeclare global {\n interface Window {\n essentials: {\n language: string;\n locale?: string;\n timeZone?: string;\n };\n }\n}\n\nexport interface SDKOptions {\n essentials?: Essentials;\n}\n\nexport interface Essentials {\n language?: string;\n locale?: string;\n timezone?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/types.ts"],"sourcesContent":["export type SDK = {};\n\ndeclare global {\n interface Window {\n essentials: {\n language: string;\n locale?: string;\n timeZone?: string;\n multilingual?: Multilingual;\n };\n }\n}\n\nexport interface SDKOptions {\n essentials?: Essentials;\n}\n\nexport interface Essentials {\n language?: string;\n locale?: string;\n timezone?: string;\n multilingual?: Multilingual;\n}\n\nexport interface Multilingual {\n supportedLanguages?: SupportedLanguage[];\n}\n\nexport interface SupportedLanguage {\n languageCode?: string;\n isPrimary?: boolean;\n countryCode?: string;\n isVisitorPrimary?: boolean;\n locale?: Locale;\n}\n\nexport interface Locale {\n languageCode?: string;\n country?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getCurrentLocale = void 0;
|
|
5
|
+
exports.getLanguageLocale = getLanguageLocale;
|
|
6
|
+
function getLanguageLocale(language) {
|
|
7
|
+
var _language$locale;
|
|
8
|
+
if (!(language != null && language.languageCode)) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return [language.languageCode, (_language$locale = language.locale) == null ? void 0 : _language$locale.country].filter(Boolean).join('-');
|
|
12
|
+
}
|
|
13
|
+
const getCurrentLocale = essentials => {
|
|
14
|
+
var _document;
|
|
15
|
+
let locale = essentials == null ? void 0 : essentials.locale;
|
|
16
|
+
if (typeof document !== 'undefined' && (_document = document) != null && (_document = _document.location) != null && _document.href) {
|
|
17
|
+
try {
|
|
18
|
+
var _document2;
|
|
19
|
+
const url = new URL((_document2 = document) == null || (_document2 = _document2.location) == null ? void 0 : _document2.href);
|
|
20
|
+
const localeSearchParam = url.searchParams.get('lang'); // e.g., mysite.com/?lang=en
|
|
21
|
+
|
|
22
|
+
if (localeSearchParam) {
|
|
23
|
+
var _essentials$multiling;
|
|
24
|
+
const language = essentials == null || (_essentials$multiling = essentials.multilingual) == null || (_essentials$multiling = _essentials$multiling.supportedLanguages) == null ? void 0 : _essentials$multiling.find(lang => lang.languageCode === localeSearchParam);
|
|
25
|
+
|
|
26
|
+
// verify it's a valid locale
|
|
27
|
+
if (language != null && language.languageCode) {
|
|
28
|
+
locale = getLanguageLocale(language);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
} catch {
|
|
32
|
+
// Invalid URL, ignore
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return locale ?? 'en-US';
|
|
36
|
+
};
|
|
37
|
+
exports.getCurrentLocale = getCurrentLocale;
|
|
38
|
+
//# sourceMappingURL=multilingual-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getLanguageLocale","language","_language$locale","languageCode","undefined","locale","country","filter","Boolean","join","getCurrentLocale","essentials","_document","document","location","href","_document2","url","URL","localeSearchParam","searchParams","get","_essentials$multiling","multilingual","supportedLanguages","find","lang","exports"],"sources":["../../../src/utils/multilingual-utils.ts"],"sourcesContent":["import type { SupportedLanguage, Essentials } from '../types';\n\nexport function getLanguageLocale(language: SupportedLanguage) {\n if (!language?.languageCode) {\n return undefined;\n }\n\n return [language.languageCode, language.locale?.country]\n .filter(Boolean)\n .join('-');\n}\n\nexport const getCurrentLocale = (essentials: Essentials | undefined) => {\n let locale = essentials?.locale;\n\n if (typeof document !== 'undefined' && document?.location?.href) {\n try {\n const url = new URL(document?.location?.href);\n\n const localeSearchParam = url.searchParams.get('lang'); // e.g., mysite.com/?lang=en\n\n if (localeSearchParam) {\n const language = essentials?.multilingual?.supportedLanguages?.find(\n (lang: SupportedLanguage) => lang.languageCode === localeSearchParam,\n );\n\n // verify it's a valid locale\n if (language?.languageCode) {\n locale = getLanguageLocale(language);\n }\n }\n } catch {\n // Invalid URL, ignore\n }\n }\n\n return locale ?? 'en-US';\n};\n"],"mappings":";;;;;AAEO,SAASA,iBAAiBA,CAACC,QAA2B,EAAE;EAAA,IAAAC,gBAAA;EAC7D,IAAI,EAACD,QAAQ,YAARA,QAAQ,CAAEE,YAAY,GAAE;IAC3B,OAAOC,SAAS;EAClB;EAEA,OAAO,CAACH,QAAQ,CAACE,YAAY,GAAAD,gBAAA,GAAED,QAAQ,CAACI,MAAM,qBAAfH,gBAAA,CAAiBI,OAAO,CAAC,CACrDC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;AACd;AAEO,MAAMC,gBAAgB,GAAIC,UAAkC,IAAK;EAAA,IAAAC,SAAA;EACtE,IAAIP,MAAM,GAAGM,UAAU,oBAAVA,UAAU,CAAEN,MAAM;EAE/B,IAAI,OAAOQ,QAAQ,KAAK,WAAW,KAAAD,SAAA,GAAIC,QAAQ,cAAAD,SAAA,GAARA,SAAA,CAAUE,QAAQ,aAAlBF,SAAA,CAAoBG,IAAI,EAAE;IAC/D,IAAI;MAAA,IAAAC,UAAA;MACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAAAF,UAAA,GAACH,QAAQ,cAAAG,UAAA,GAARA,UAAA,CAAUF,QAAQ,qBAAlBE,UAAA,CAAoBD,IAAI,CAAC;MAE7C,MAAMI,iBAAiB,GAAGF,GAAG,CAACG,YAAY,CAACC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;;MAExD,IAAIF,iBAAiB,EAAE;QAAA,IAAAG,qBAAA;QACrB,MAAMrB,QAAQ,GAAGU,UAAU,aAAAW,qBAAA,GAAVX,UAAU,CAAEY,YAAY,cAAAD,qBAAA,GAAxBA,qBAAA,CAA0BE,kBAAkB,qBAA5CF,qBAAA,CAA8CG,IAAI,CAChEC,IAAuB,IAAKA,IAAI,CAACvB,YAAY,KAAKgB,iBACrD,CAAC;;QAED;QACA,IAAIlB,QAAQ,YAARA,QAAQ,CAAEE,YAAY,EAAE;UAC1BE,MAAM,GAAGL,iBAAiB,CAACC,QAAQ,CAAC;QACtC;MACF;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,OAAOI,MAAM,IAAI,OAAO;AAC1B,CAAC;AAACsB,OAAA,CAAAjB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { getCommonConfigHeader } from './common-config-header';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { getMultilingualHeader } from './multilingual-header';
|
|
7
|
+
export const getPassThroughHeaders = essentials => {
|
|
8
|
+
const headers = [getCommonConfigHeader(), getMultilingualHeader(essentials)];
|
|
8
9
|
return headers.reduce((res, header) => {
|
|
9
10
|
const entries = Object.entries(header).filter(_ref => {
|
|
10
11
|
let [_, value] = _ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getCommonConfigHeader","getPassThroughHeaders","headers","reduce","res","header","entries","Object","filter","_ref","_","value","fromEntries"],"sources":["../../../src/headers/index.ts"],"sourcesContent":["/**\n * Based on https://github.com/wix-private/metro/blob/master/packages/wix-headers/src/index.ts\n */\n\nimport { getCommonConfigHeader } from './common-config-header';\n\nexport const getPassThroughHeaders = () => {\n const headers = [getCommonConfigHeader()];\n\n return headers.reduce((res, header) => {\n const entries = Object.entries(header).filter(([_, value]) => !!value);\n\n res = {\n ...res,\n ...Object.fromEntries(entries),\n };\n\n return res;\n }, {} as Record<string, string>);\n};\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,wBAAwB;
|
|
1
|
+
{"version":3,"names":["getCommonConfigHeader","getMultilingualHeader","getPassThroughHeaders","essentials","headers","reduce","res","header","entries","Object","filter","_ref","_","value","fromEntries"],"sources":["../../../src/headers/index.ts"],"sourcesContent":["/**\n * Based on https://github.com/wix-private/metro/blob/master/packages/wix-headers/src/index.ts\n */\n\nimport { getCommonConfigHeader } from './common-config-header';\nimport { getMultilingualHeader } from './multilingual-header';\nimport { Essentials } from '../types';\n\nexport const getPassThroughHeaders = (essentials?: Essentials) => {\n const headers = [getCommonConfigHeader(), getMultilingualHeader(essentials)];\n\n return headers.reduce((res, header) => {\n const entries = Object.entries(header).filter(([_, value]) => !!value);\n\n res = {\n ...res,\n ...Object.fromEntries(entries),\n };\n\n return res;\n }, {} as Record<string, string>);\n};\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,wBAAwB;AAC9D,SAASC,qBAAqB,QAAQ,uBAAuB;AAG7D,OAAO,MAAMC,qBAAqB,GAAIC,UAAuB,IAAK;EAChE,MAAMC,OAAO,GAAG,CAACJ,qBAAqB,CAAC,CAAC,EAAEC,qBAAqB,CAACE,UAAU,CAAC,CAAC;EAE5E,OAAOC,OAAO,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;IACrC,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACD,MAAM,CAAC,CAACG,MAAM,CAACC,IAAA;MAAA,IAAC,CAACC,CAAC,EAAEC,KAAK,CAAC,GAAAF,IAAA;MAAA,OAAK,CAAC,CAACE,KAAK;IAAA,EAAC;IAEtEP,GAAG,GAAG;MACJ,GAAGA,GAAG;MACN,GAAGG,MAAM,CAACK,WAAW,CAACN,OAAO;IAC/B,CAAC;IAED,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAA2B,CAAC;AAClC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getLanguageLocale, getCurrentLocale } from '../utils/multilingual-utils';
|
|
2
|
+
export const MULTILINGUAL_HEADER_KEY = 'x-wix-linguist';
|
|
3
|
+
|
|
4
|
+
// Hard coded UUID for multilingual support https://wix.slack.com/archives/C04BFK71QHW/p1676992832913939 .
|
|
5
|
+
export const DUMMY_INSTANCE_ID = '00000000-0000-0000-0000-000000000000';
|
|
6
|
+
export const getMultilingualHeader = essentials => {
|
|
7
|
+
var _multilingual$support;
|
|
8
|
+
const currentLocale = getCurrentLocale(essentials);
|
|
9
|
+
const multilingual = essentials == null ? void 0 : essentials.multilingual;
|
|
10
|
+
if (currentLocale && multilingual != null && (_multilingual$support = multilingual.supportedLanguages) != null && _multilingual$support.length) {
|
|
11
|
+
var _multilingual$support2;
|
|
12
|
+
const language = multilingual == null || (_multilingual$support2 = multilingual.supportedLanguages) == null ? void 0 : _multilingual$support2.find(lang => getLanguageLocale(lang) === currentLocale);
|
|
13
|
+
if (language) {
|
|
14
|
+
return {
|
|
15
|
+
[MULTILINGUAL_HEADER_KEY]: `${language.languageCode}|${currentLocale.toLowerCase()}|${!!language.isPrimary}|${DUMMY_INSTANCE_ID}`
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return {};
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=multilingual-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getLanguageLocale","getCurrentLocale","MULTILINGUAL_HEADER_KEY","DUMMY_INSTANCE_ID","getMultilingualHeader","essentials","_multilingual$support","currentLocale","multilingual","supportedLanguages","length","_multilingual$support2","language","find","lang","languageCode","toLowerCase","isPrimary"],"sources":["../../../src/headers/multilingual-header.ts"],"sourcesContent":["import type { Essentials, SupportedLanguage } from '../types';\nimport {\n getLanguageLocale,\n getCurrentLocale,\n} from '../utils/multilingual-utils';\n\nexport const MULTILINGUAL_HEADER_KEY = 'x-wix-linguist';\n\n// Hard coded UUID for multilingual support https://wix.slack.com/archives/C04BFK71QHW/p1676992832913939 .\nexport const DUMMY_INSTANCE_ID = '00000000-0000-0000-0000-000000000000';\n\nexport const getMultilingualHeader = (essentials?: Essentials) => {\n const currentLocale = getCurrentLocale(essentials);\n const multilingual = essentials?.multilingual;\n\n if (currentLocale && multilingual?.supportedLanguages?.length) {\n const language = multilingual?.supportedLanguages?.find(\n (lang: SupportedLanguage) => getLanguageLocale(lang) === currentLocale,\n );\n if (language) {\n return {\n [MULTILINGUAL_HEADER_KEY]: `${\n language.languageCode\n }|${currentLocale.toLowerCase()}|${!!language.isPrimary}|${DUMMY_INSTANCE_ID}`,\n };\n }\n }\n return {};\n};\n"],"mappings":"AACA,SACEA,iBAAiB,EACjBC,gBAAgB,QACX,6BAA6B;AAEpC,OAAO,MAAMC,uBAAuB,GAAG,gBAAgB;;AAEvD;AACA,OAAO,MAAMC,iBAAiB,GAAG,sCAAsC;AAEvE,OAAO,MAAMC,qBAAqB,GAAIC,UAAuB,IAAK;EAAA,IAAAC,qBAAA;EAChE,MAAMC,aAAa,GAAGN,gBAAgB,CAACI,UAAU,CAAC;EAClD,MAAMG,YAAY,GAAGH,UAAU,oBAAVA,UAAU,CAAEG,YAAY;EAE7C,IAAID,aAAa,IAAIC,YAAY,aAAAF,qBAAA,GAAZE,YAAY,CAAEC,kBAAkB,aAAhCH,qBAAA,CAAkCI,MAAM,EAAE;IAAA,IAAAC,sBAAA;IAC7D,MAAMC,QAAQ,GAAGJ,YAAY,aAAAG,sBAAA,GAAZH,YAAY,CAAEC,kBAAkB,qBAAhCE,sBAAA,CAAkCE,IAAI,CACpDC,IAAuB,IAAKd,iBAAiB,CAACc,IAAI,CAAC,KAAKP,aAC3D,CAAC;IACD,IAAIK,QAAQ,EAAE;MACZ,OAAO;QACL,CAACV,uBAAuB,GAAG,GACzBU,QAAQ,CAACG,YAAY,IACnBR,aAAa,CAACS,WAAW,CAAC,CAAC,IAAI,CAAC,CAACJ,QAAQ,CAACK,SAAS,IAAId,iBAAiB;MAC9E,CAAC;IACH;EACF;EACA,OAAO,CAAC,CAAC;AACX,CAAC","ignoreList":[]}
|
package/dist/esm/host-module.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createVeloMonitoringClient } from '@wix/monitoring-velo';
|
|
2
2
|
import { getPassThroughHeaders } from './headers';
|
|
3
3
|
import { resolveAuthToken } from './utils/auth-utils';
|
|
4
|
+
import { getCurrentLocale } from './utils/multilingual-utils';
|
|
4
5
|
export const createHostModule = () => {
|
|
5
6
|
return {
|
|
6
7
|
__type: 'host',
|
|
@@ -14,19 +15,16 @@ export const createHostModule = () => {
|
|
|
14
15
|
return {
|
|
15
16
|
essentials: {
|
|
16
17
|
get passThroughHeaders() {
|
|
17
|
-
return getPassThroughHeaders();
|
|
18
|
+
return getPassThroughHeaders(getNormalizedEssentials(essentials));
|
|
18
19
|
},
|
|
19
20
|
get language() {
|
|
20
|
-
|
|
21
|
-
return (essentials == null ? void 0 : essentials.language) ?? ((_window$essentials = window.essentials) == null ? void 0 : _window$essentials.language) ?? 'en';
|
|
21
|
+
return getNormalizedEssentials(essentials).language ?? 'en';
|
|
22
22
|
},
|
|
23
23
|
get locale() {
|
|
24
|
-
|
|
25
|
-
return (essentials == null ? void 0 : essentials.locale) ?? ((_window$essentials2 = window.essentials) == null ? void 0 : _window$essentials2.locale) ?? 'en-US';
|
|
24
|
+
return getCurrentLocale(getNormalizedEssentials(essentials));
|
|
26
25
|
},
|
|
27
26
|
get timezone() {
|
|
28
|
-
|
|
29
|
-
return (essentials == null ? void 0 : essentials.timezone) ?? ((_window$essentials3 = window.essentials) == null ? void 0 : _window$essentials3.timeZone) ?? 'UTC';
|
|
27
|
+
return getNormalizedEssentials(essentials).timezone ?? 'UTC';
|
|
30
28
|
}
|
|
31
29
|
},
|
|
32
30
|
getMonitoringClient: () => {
|
|
@@ -47,4 +45,18 @@ export const createHostModule = () => {
|
|
|
47
45
|
}
|
|
48
46
|
};
|
|
49
47
|
};
|
|
48
|
+
|
|
49
|
+
// Normalize essentials by merging with window.essentials, handling property name differences
|
|
50
|
+
// Use a function to maintain reactivity to window.essentials changes
|
|
51
|
+
const getNormalizedEssentials = essentials => {
|
|
52
|
+
var _window$essentials, _window$essentials2, _window$essentials3, _window$essentials4;
|
|
53
|
+
return {
|
|
54
|
+
...essentials,
|
|
55
|
+
...(typeof window !== 'undefined' ? window.essentials : {}),
|
|
56
|
+
language: (essentials == null ? void 0 : essentials.language) ?? (typeof window !== 'undefined' ? (_window$essentials = window.essentials) == null ? void 0 : _window$essentials.language : undefined) ?? 'en',
|
|
57
|
+
locale: (essentials == null ? void 0 : essentials.locale) ?? (typeof window !== 'undefined' ? (_window$essentials2 = window.essentials) == null ? void 0 : _window$essentials2.locale : undefined),
|
|
58
|
+
timezone: (essentials == null ? void 0 : essentials.timezone) ?? (typeof window !== 'undefined' ? (_window$essentials3 = window.essentials) == null ? void 0 : _window$essentials3.timeZone : undefined),
|
|
59
|
+
multilingual: (essentials == null ? void 0 : essentials.multilingual) ?? (typeof window !== 'undefined' ? (_window$essentials4 = window.essentials) == null ? void 0 : _window$essentials4.multilingual : undefined)
|
|
60
|
+
};
|
|
61
|
+
};
|
|
50
62
|
//# sourceMappingURL=host-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createVeloMonitoringClient","getPassThroughHeaders","resolveAuthToken","createHostModule","__type","create","host","_temp","essentials","passThroughHeaders","language","
|
|
1
|
+
{"version":3,"names":["createVeloMonitoringClient","getPassThroughHeaders","resolveAuthToken","getCurrentLocale","createHostModule","__type","create","host","_temp","essentials","passThroughHeaders","getNormalizedEssentials","language","locale","timezone","getMonitoringClient","producer","req","document","location","href","Request","namespace","getAuthToken","_window$essentials","_window$essentials2","_window$essentials3","_window$essentials4","window","undefined","timeZone","multilingual"],"sources":["../../src/host-module.ts"],"sourcesContent":["import type { HostModule, Host } from '@wix/sdk-types';\nimport { createVeloMonitoringClient } from '@wix/monitoring-velo';\nimport { getPassThroughHeaders } from './headers';\nimport { resolveAuthToken } from './utils/auth-utils';\nimport type { Essentials, SDK, SDKOptions } from './types';\nimport { getCurrentLocale } from './utils/multilingual-utils';\n\nexport const createHostModule = (): HostModule<SDK, Host> & {\n host: (options: SDKOptions) => Host;\n} => {\n return {\n __type: 'host',\n create: () => {\n return {};\n },\n host: ({ essentials }: SDKOptions = {}) => {\n return {\n essentials: {\n get passThroughHeaders() {\n return getPassThroughHeaders(getNormalizedEssentials(essentials));\n },\n get language() {\n return getNormalizedEssentials(essentials).language ?? 'en';\n },\n get locale() {\n return getCurrentLocale(getNormalizedEssentials(essentials));\n },\n get timezone() {\n return getNormalizedEssentials(essentials).timezone ?? 'UTC';\n },\n },\n getMonitoringClient: () => {\n let producer = 'unknown';\n let req: Request | undefined;\n\n if (typeof document !== 'undefined') {\n producer = document.location.href;\n req = new Request(document.location.href);\n }\n\n return createVeloMonitoringClient({\n namespace: 'Headless',\n producer,\n getAuthToken: async () => resolveAuthToken(),\n req,\n });\n },\n };\n },\n };\n};\n\n// Normalize essentials by merging with window.essentials, handling property name differences\n// Use a function to maintain reactivity to window.essentials changes\nconst getNormalizedEssentials = (essentials?: Essentials): Essentials => ({\n ...essentials,\n ...(typeof window !== 'undefined' ? window.essentials : {}),\n language:\n essentials?.language ??\n (typeof window !== 'undefined' ? window.essentials?.language : undefined) ??\n 'en',\n locale:\n essentials?.locale ??\n (typeof window !== 'undefined' ? window.essentials?.locale : undefined),\n timezone:\n essentials?.timezone ??\n (typeof window !== 'undefined' ? window.essentials?.timeZone : undefined),\n multilingual:\n essentials?.multilingual ??\n (typeof window !== 'undefined'\n ? window.essentials?.multilingual\n : undefined),\n});\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/types.ts"],"sourcesContent":["export type SDK = {};\n\ndeclare global {\n interface Window {\n essentials: {\n language: string;\n locale?: string;\n timeZone?: string;\n };\n }\n}\n\nexport interface SDKOptions {\n essentials?: Essentials;\n}\n\nexport interface Essentials {\n language?: string;\n locale?: string;\n timezone?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/types.ts"],"sourcesContent":["export type SDK = {};\n\ndeclare global {\n interface Window {\n essentials: {\n language: string;\n locale?: string;\n timeZone?: string;\n multilingual?: Multilingual;\n };\n }\n}\n\nexport interface SDKOptions {\n essentials?: Essentials;\n}\n\nexport interface Essentials {\n language?: string;\n locale?: string;\n timezone?: string;\n multilingual?: Multilingual;\n}\n\nexport interface Multilingual {\n supportedLanguages?: SupportedLanguage[];\n}\n\nexport interface SupportedLanguage {\n languageCode?: string;\n isPrimary?: boolean;\n countryCode?: string;\n isVisitorPrimary?: boolean;\n locale?: Locale;\n}\n\nexport interface Locale {\n languageCode?: string;\n country?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export function getLanguageLocale(language) {
|
|
2
|
+
var _language$locale;
|
|
3
|
+
if (!(language != null && language.languageCode)) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
return [language.languageCode, (_language$locale = language.locale) == null ? void 0 : _language$locale.country].filter(Boolean).join('-');
|
|
7
|
+
}
|
|
8
|
+
export const getCurrentLocale = essentials => {
|
|
9
|
+
var _document;
|
|
10
|
+
let locale = essentials == null ? void 0 : essentials.locale;
|
|
11
|
+
if (typeof document !== 'undefined' && (_document = document) != null && (_document = _document.location) != null && _document.href) {
|
|
12
|
+
try {
|
|
13
|
+
var _document2;
|
|
14
|
+
const url = new URL((_document2 = document) == null || (_document2 = _document2.location) == null ? void 0 : _document2.href);
|
|
15
|
+
const localeSearchParam = url.searchParams.get('lang'); // e.g., mysite.com/?lang=en
|
|
16
|
+
|
|
17
|
+
if (localeSearchParam) {
|
|
18
|
+
var _essentials$multiling;
|
|
19
|
+
const language = essentials == null || (_essentials$multiling = essentials.multilingual) == null || (_essentials$multiling = _essentials$multiling.supportedLanguages) == null ? void 0 : _essentials$multiling.find(lang => lang.languageCode === localeSearchParam);
|
|
20
|
+
|
|
21
|
+
// verify it's a valid locale
|
|
22
|
+
if (language != null && language.languageCode) {
|
|
23
|
+
locale = getLanguageLocale(language);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
} catch {
|
|
27
|
+
// Invalid URL, ignore
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return locale ?? 'en-US';
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=multilingual-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getLanguageLocale","language","_language$locale","languageCode","undefined","locale","country","filter","Boolean","join","getCurrentLocale","essentials","_document","document","location","href","_document2","url","URL","localeSearchParam","searchParams","get","_essentials$multiling","multilingual","supportedLanguages","find","lang"],"sources":["../../../src/utils/multilingual-utils.ts"],"sourcesContent":["import type { SupportedLanguage, Essentials } from '../types';\n\nexport function getLanguageLocale(language: SupportedLanguage) {\n if (!language?.languageCode) {\n return undefined;\n }\n\n return [language.languageCode, language.locale?.country]\n .filter(Boolean)\n .join('-');\n}\n\nexport const getCurrentLocale = (essentials: Essentials | undefined) => {\n let locale = essentials?.locale;\n\n if (typeof document !== 'undefined' && document?.location?.href) {\n try {\n const url = new URL(document?.location?.href);\n\n const localeSearchParam = url.searchParams.get('lang'); // e.g., mysite.com/?lang=en\n\n if (localeSearchParam) {\n const language = essentials?.multilingual?.supportedLanguages?.find(\n (lang: SupportedLanguage) => lang.languageCode === localeSearchParam,\n );\n\n // verify it's a valid locale\n if (language?.languageCode) {\n locale = getLanguageLocale(language);\n }\n }\n } catch {\n // Invalid URL, ignore\n }\n }\n\n return locale ?? 'en-US';\n};\n"],"mappings":"AAEA,OAAO,SAASA,iBAAiBA,CAACC,QAA2B,EAAE;EAAA,IAAAC,gBAAA;EAC7D,IAAI,EAACD,QAAQ,YAARA,QAAQ,CAAEE,YAAY,GAAE;IAC3B,OAAOC,SAAS;EAClB;EAEA,OAAO,CAACH,QAAQ,CAACE,YAAY,GAAAD,gBAAA,GAAED,QAAQ,CAACI,MAAM,qBAAfH,gBAAA,CAAiBI,OAAO,CAAC,CACrDC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;AACd;AAEA,OAAO,MAAMC,gBAAgB,GAAIC,UAAkC,IAAK;EAAA,IAAAC,SAAA;EACtE,IAAIP,MAAM,GAAGM,UAAU,oBAAVA,UAAU,CAAEN,MAAM;EAE/B,IAAI,OAAOQ,QAAQ,KAAK,WAAW,KAAAD,SAAA,GAAIC,QAAQ,cAAAD,SAAA,GAARA,SAAA,CAAUE,QAAQ,aAAlBF,SAAA,CAAoBG,IAAI,EAAE;IAC/D,IAAI;MAAA,IAAAC,UAAA;MACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAAAF,UAAA,GAACH,QAAQ,cAAAG,UAAA,GAARA,UAAA,CAAUF,QAAQ,qBAAlBE,UAAA,CAAoBD,IAAI,CAAC;MAE7C,MAAMI,iBAAiB,GAAGF,GAAG,CAACG,YAAY,CAACC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;;MAExD,IAAIF,iBAAiB,EAAE;QAAA,IAAAG,qBAAA;QACrB,MAAMrB,QAAQ,GAAGU,UAAU,aAAAW,qBAAA,GAAVX,UAAU,CAAEY,YAAY,cAAAD,qBAAA,GAAxBA,qBAAA,CAA0BE,kBAAkB,qBAA5CF,qBAAA,CAA8CG,IAAI,CAChEC,IAAuB,IAAKA,IAAI,CAACvB,YAAY,KAAKgB,iBACrD,CAAC;;QAED;QACA,IAAIlB,QAAQ,YAARA,QAAQ,CAAEE,YAAY,EAAE;UAC1BE,MAAM,GAAGL,iBAAiB,CAACC,QAAQ,CAAC;QACtC;MACF;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,OAAOI,MAAM,IAAI,OAAO;AAC1B,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Based on https://github.com/wix-private/metro/blob/master/packages/wix-headers/src/index.ts
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
import { Essentials } from '../types';
|
|
5
|
+
export declare const getPassThroughHeaders: (essentials?: Essentials) => Record<string, string>;
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/headers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/headers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,qBAAqB,gBAAiB,UAAU,2BAa5D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Essentials } from '../types';
|
|
2
|
+
export declare const MULTILINGUAL_HEADER_KEY = "x-wix-linguist";
|
|
3
|
+
export declare const DUMMY_INSTANCE_ID = "00000000-0000-0000-0000-000000000000";
|
|
4
|
+
export declare const getMultilingualHeader: (essentials?: Essentials) => {
|
|
5
|
+
"x-wix-linguist": string;
|
|
6
|
+
} | {
|
|
7
|
+
"x-wix-linguist"?: undefined;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=multilingual-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multilingual-header.d.ts","sourceRoot":"","sources":["../../../src/headers/multilingual-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,UAAU,CAAC;AAM9D,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAGxD,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE,eAAO,MAAM,qBAAqB,gBAAiB,UAAU;;;;CAiB5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-module.d.ts","sourceRoot":"","sources":["../../src/host-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAIvD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"host-module.d.ts","sourceRoot":"","sources":["../../src/host-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAIvD,OAAO,KAAK,EAAc,GAAG,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG3D,eAAO,MAAM,gBAAgB;oBACX,UAAU,KAAK,IAAI;CA0CpC,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ declare global {
|
|
|
5
5
|
language: string;
|
|
6
6
|
locale?: string;
|
|
7
7
|
timeZone?: string;
|
|
8
|
+
multilingual?: Multilingual;
|
|
8
9
|
};
|
|
9
10
|
}
|
|
10
11
|
}
|
|
@@ -15,5 +16,20 @@ export interface Essentials {
|
|
|
15
16
|
language?: string;
|
|
16
17
|
locale?: string;
|
|
17
18
|
timezone?: string;
|
|
19
|
+
multilingual?: Multilingual;
|
|
20
|
+
}
|
|
21
|
+
export interface Multilingual {
|
|
22
|
+
supportedLanguages?: SupportedLanguage[];
|
|
23
|
+
}
|
|
24
|
+
export interface SupportedLanguage {
|
|
25
|
+
languageCode?: string;
|
|
26
|
+
isPrimary?: boolean;
|
|
27
|
+
countryCode?: string;
|
|
28
|
+
isVisitorPrimary?: boolean;
|
|
29
|
+
locale?: Locale;
|
|
30
|
+
}
|
|
31
|
+
export interface Locale {
|
|
32
|
+
languageCode?: string;
|
|
33
|
+
country?: string;
|
|
18
34
|
}
|
|
19
35
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,GAAG,GAAG,EAAE,CAAC;AAErB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,GAAG,GAAG,EAAE,CAAC;AAErB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,YAAY,CAAC,EAAE,YAAY,CAAC;SAC7B,CAAC;KACH;CACF;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SupportedLanguage, Essentials } from '../types';
|
|
2
|
+
export declare function getLanguageLocale(language: SupportedLanguage): string | undefined;
|
|
3
|
+
export declare const getCurrentLocale: (essentials: Essentials | undefined) => string;
|
|
4
|
+
//# sourceMappingURL=multilingual-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multilingual-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/multilingual-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,sBAQ5D;AAED,eAAO,MAAM,gBAAgB,eAAgB,UAAU,GAAG,SAAS,WAyBlE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/headless-site",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0",
|
|
4
4
|
"unpkg": true,
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": {
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"wallaby": {
|
|
88
88
|
"autoDetect": true
|
|
89
89
|
},
|
|
90
|
-
"falconPackageHash": "
|
|
90
|
+
"falconPackageHash": "ff023096062746a93526ff21901e3f3d02cca7e4bf3f4a3bbfaafe2a"
|
|
91
91
|
}
|