@builder.io/sdk 3.0.6 → 3.0.8
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/CHANGELOG.md +13 -0
- package/dist/index.browser.js +178 -166
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs.js +178 -166
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +178 -166
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +178 -166
- package/dist/index.umd.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/builder.class.d.ts +7 -0
- package/dist/src/builder.class.js +177 -165
- package/dist/src/builder.class.js.map +1 -1
- package/dist/src/sdk-version.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -1052,7 +1052,7 @@
|
|
|
1052
1052
|
|
|
1053
1053
|
var DEFAULT_API_VERSION = 'v3';
|
|
1054
1054
|
|
|
1055
|
-
var SDK_VERSION = '
|
|
1055
|
+
var SDK_VERSION = 'UNKNOWN_VERSION_TO_REPLACE';
|
|
1056
1056
|
|
|
1057
1057
|
function datePlusMinutes(minutes) {
|
|
1058
1058
|
if (minutes === void 0) { minutes = 30; }
|
|
@@ -1247,8 +1247,8 @@
|
|
|
1247
1247
|
this.authToken = authToken;
|
|
1248
1248
|
}
|
|
1249
1249
|
if (isBrowser) {
|
|
1250
|
-
this.bindMessageListeners();
|
|
1251
1250
|
if (Builder.isEditing) {
|
|
1251
|
+
this.bindMessageListeners();
|
|
1252
1252
|
parent.postMessage({
|
|
1253
1253
|
type: 'builder.animatorOptions',
|
|
1254
1254
|
data: {
|
|
@@ -1379,11 +1379,16 @@
|
|
|
1379
1379
|
this.serverContext = context;
|
|
1380
1380
|
};
|
|
1381
1381
|
Builder.isTrustedHost = function (hostname) {
|
|
1382
|
-
|
|
1382
|
+
var isTrusted = this.trustedHosts.findIndex(function (trustedHost) {
|
|
1383
1383
|
return trustedHost.startsWith('*.')
|
|
1384
1384
|
? hostname.endsWith(trustedHost.slice(1))
|
|
1385
1385
|
: trustedHost === hostname;
|
|
1386
|
-
}) > -1
|
|
1386
|
+
}) > -1;
|
|
1387
|
+
return isTrusted;
|
|
1388
|
+
};
|
|
1389
|
+
Builder.isTrustedHostForEvent = function (event) {
|
|
1390
|
+
var url = parse(event.origin);
|
|
1391
|
+
return url.hostname && Builder.isTrustedHost(url.hostname);
|
|
1387
1392
|
};
|
|
1388
1393
|
Builder.runAction = function (action) {
|
|
1389
1394
|
// TODO
|
|
@@ -1542,9 +1547,7 @@
|
|
|
1542
1547
|
getFetch()("".concat(host, "/api/v1/track"), {
|
|
1543
1548
|
method: 'POST',
|
|
1544
1549
|
body: JSON.stringify({ events: events }),
|
|
1545
|
-
headers: {
|
|
1546
|
-
'content-type': 'application/json',
|
|
1547
|
-
},
|
|
1550
|
+
headers: __assign({ 'content-type': 'application/json' }, this.getSdkHeaders()),
|
|
1548
1551
|
mode: 'cors',
|
|
1549
1552
|
}).catch(function () {
|
|
1550
1553
|
// Not the end of the world
|
|
@@ -1933,184 +1936,179 @@
|
|
|
1933
1936
|
};
|
|
1934
1937
|
Builder.prototype.bindMessageListeners = function () {
|
|
1935
1938
|
var _this = this;
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1939
|
+
addEventListener('message', function (event) {
|
|
1940
|
+
var _a, _b, _c, _d;
|
|
1941
|
+
var isTrusted = Builder.isTrustedHostForEvent(event);
|
|
1942
|
+
if (!isTrusted)
|
|
1943
|
+
return;
|
|
1944
|
+
var data = event.data;
|
|
1945
|
+
if (data) {
|
|
1946
|
+
switch (data.type) {
|
|
1947
|
+
case 'builder.ping': {
|
|
1948
|
+
(_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
|
|
1949
|
+
type: 'builder.pong',
|
|
1950
|
+
data: {},
|
|
1951
|
+
}, '*');
|
|
1952
|
+
break;
|
|
1953
|
+
}
|
|
1954
|
+
case 'builder.register': {
|
|
1955
|
+
// TODO: possibly do this for all...
|
|
1956
|
+
if (event.source === window) {
|
|
1953
1957
|
break;
|
|
1954
1958
|
}
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
if (event.source === window) {
|
|
1958
|
-
break;
|
|
1959
|
-
}
|
|
1960
|
-
var options = data.data;
|
|
1961
|
-
if (!options) {
|
|
1962
|
-
break;
|
|
1963
|
-
}
|
|
1964
|
-
var type = options.type, info = options.info;
|
|
1965
|
-
// TODO: all must have name and can't conflict?
|
|
1966
|
-
var typeList = Builder.registry[type];
|
|
1967
|
-
if (!typeList) {
|
|
1968
|
-
typeList = Builder.registry[type] = [];
|
|
1969
|
-
}
|
|
1970
|
-
typeList.push(info);
|
|
1971
|
-
Builder.registryChange.next(Builder.registry);
|
|
1959
|
+
var options = data.data;
|
|
1960
|
+
if (!options) {
|
|
1972
1961
|
break;
|
|
1973
1962
|
}
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1963
|
+
var type = options.type, info = options.info;
|
|
1964
|
+
// TODO: all must have name and can't conflict?
|
|
1965
|
+
var typeList = Builder.registry[type];
|
|
1966
|
+
if (!typeList) {
|
|
1967
|
+
typeList = Builder.registry[type] = [];
|
|
1968
|
+
}
|
|
1969
|
+
typeList.push(info);
|
|
1970
|
+
Builder.registryChange.next(Builder.registry);
|
|
1971
|
+
break;
|
|
1972
|
+
}
|
|
1973
|
+
case 'builder.settingsChange': {
|
|
1974
|
+
// TODO: possibly do this for all...
|
|
1975
|
+
if (event.source === window) {
|
|
1985
1976
|
break;
|
|
1986
1977
|
}
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
if (event.source === window) {
|
|
1990
|
-
break;
|
|
1991
|
-
}
|
|
1992
|
-
var info_1 = data.data;
|
|
1993
|
-
if (!info_1) {
|
|
1994
|
-
break;
|
|
1995
|
-
}
|
|
1996
|
-
var hasComponent_1 = !!info_1.component;
|
|
1997
|
-
Builder.editors.every(function (thisInfo, index) {
|
|
1998
|
-
if (info_1.name === thisInfo.name) {
|
|
1999
|
-
if (thisInfo.component && !hasComponent_1) {
|
|
2000
|
-
return false;
|
|
2001
|
-
}
|
|
2002
|
-
else {
|
|
2003
|
-
Builder.editors[index] = thisInfo;
|
|
2004
|
-
}
|
|
2005
|
-
return false;
|
|
2006
|
-
}
|
|
2007
|
-
return true;
|
|
2008
|
-
});
|
|
1978
|
+
var settings = data.data;
|
|
1979
|
+
if (!settings) {
|
|
2009
1980
|
break;
|
|
2010
1981
|
}
|
|
2011
|
-
|
|
2012
|
-
|
|
1982
|
+
Object.assign(Builder.settings, settings);
|
|
1983
|
+
Builder.settingsChange.next(Builder.settings);
|
|
1984
|
+
break;
|
|
1985
|
+
}
|
|
1986
|
+
case 'builder.registerEditor': {
|
|
1987
|
+
// TODO: possibly do this for all...
|
|
1988
|
+
if (event.source === window) {
|
|
2013
1989
|
break;
|
|
2014
1990
|
}
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
var contentData = data.data.data; // hmmm...
|
|
2018
|
-
var observer = _this.observersByKey[key];
|
|
2019
|
-
if (observer && !_this.noEditorUpdates[key]) {
|
|
2020
|
-
observer.next([contentData]);
|
|
2021
|
-
}
|
|
1991
|
+
var info_1 = data.data;
|
|
1992
|
+
if (!info_1) {
|
|
2022
1993
|
break;
|
|
2023
|
-
|
|
1994
|
+
}
|
|
1995
|
+
var hasComponent_1 = !!info_1.component;
|
|
1996
|
+
Builder.editors.every(function (thisInfo, index) {
|
|
1997
|
+
if (info_1.name === thisInfo.name) {
|
|
1998
|
+
if (thisInfo.component && !hasComponent_1) {
|
|
1999
|
+
return false;
|
|
2000
|
+
}
|
|
2001
|
+
else {
|
|
2002
|
+
Builder.editors[index] = thisInfo;
|
|
2003
|
+
}
|
|
2004
|
+
return false;
|
|
2005
|
+
}
|
|
2006
|
+
return true;
|
|
2007
|
+
});
|
|
2008
|
+
break;
|
|
2009
|
+
}
|
|
2010
|
+
case 'builder.triggerAnimation': {
|
|
2011
|
+
Builder.animator.triggerAnimation(data.data);
|
|
2012
|
+
break;
|
|
2013
|
+
}
|
|
2014
|
+
case 'builder.contentUpdate':
|
|
2015
|
+
var key = data.data.key || data.data.alias || data.data.entry || data.data.modelName;
|
|
2016
|
+
var contentData = data.data.data; // hmmm...
|
|
2017
|
+
var observer = _this.observersByKey[key];
|
|
2018
|
+
if (observer && !_this.noEditorUpdates[key]) {
|
|
2019
|
+
observer.next([contentData]);
|
|
2020
|
+
}
|
|
2021
|
+
break;
|
|
2022
|
+
case 'builder.getComponents':
|
|
2023
|
+
(_b = window.parent) === null || _b === void 0 ? void 0 : _b.postMessage({
|
|
2024
|
+
type: 'builder.components',
|
|
2025
|
+
data: Builder.components.map(function (item) { return Builder.prepareComponentSpecToSend(item); }),
|
|
2026
|
+
}, '*');
|
|
2027
|
+
break;
|
|
2028
|
+
case 'builder.editingModel':
|
|
2029
|
+
_this.editingModel = data.data.model;
|
|
2030
|
+
break;
|
|
2031
|
+
case 'builder.registerComponent':
|
|
2032
|
+
var componentData = data.data;
|
|
2033
|
+
Builder.addComponent(componentData);
|
|
2034
|
+
break;
|
|
2035
|
+
case 'builder.blockContentLoading':
|
|
2036
|
+
if (typeof data.data.model === 'string') {
|
|
2037
|
+
_this.blockContentLoading = data.data.model;
|
|
2038
|
+
}
|
|
2039
|
+
break;
|
|
2040
|
+
case 'builder.editingMode':
|
|
2041
|
+
var editingMode = data.data;
|
|
2042
|
+
if (editingMode) {
|
|
2043
|
+
_this.editingMode = true;
|
|
2044
|
+
document.body.classList.add('builder-editing');
|
|
2045
|
+
}
|
|
2046
|
+
else {
|
|
2047
|
+
_this.editingMode = false;
|
|
2048
|
+
document.body.classList.remove('builder-editing');
|
|
2049
|
+
}
|
|
2050
|
+
break;
|
|
2051
|
+
case 'builder.editingPageMode':
|
|
2052
|
+
var editingPageMode = data.data;
|
|
2053
|
+
Builder.editingPage = editingPageMode;
|
|
2054
|
+
break;
|
|
2055
|
+
case 'builder.overrideUserAttributes':
|
|
2056
|
+
var userAttributes = data.data;
|
|
2057
|
+
assign(Builder.overrideUserAttributes, userAttributes);
|
|
2058
|
+
_this.flushGetContentQueue(true);
|
|
2059
|
+
// TODO: refetch too
|
|
2060
|
+
break;
|
|
2061
|
+
case 'builder.overrideTestGroup':
|
|
2062
|
+
var _e = data.data, variationId = _e.variationId, contentId = _e.contentId;
|
|
2063
|
+
if (variationId && contentId) {
|
|
2064
|
+
_this.setTestCookie(contentId, variationId);
|
|
2065
|
+
_this.flushGetContentQueue(true);
|
|
2066
|
+
}
|
|
2067
|
+
break;
|
|
2068
|
+
case 'builder.evaluate': {
|
|
2069
|
+
var text = data.data.text;
|
|
2070
|
+
var args = data.data.arguments || [];
|
|
2071
|
+
var id_1 = data.data.id;
|
|
2072
|
+
// tslint:disable-next-line:no-function-constructor-with-string-args
|
|
2073
|
+
var fn = new Function(text);
|
|
2074
|
+
var result = void 0;
|
|
2075
|
+
var error = null;
|
|
2076
|
+
try {
|
|
2077
|
+
result = fn.apply(_this, args);
|
|
2078
|
+
}
|
|
2079
|
+
catch (err) {
|
|
2080
|
+
error = toError(err);
|
|
2081
|
+
}
|
|
2082
|
+
if (error) {
|
|
2024
2083
|
(_c = window.parent) === null || _c === void 0 ? void 0 : _c.postMessage({
|
|
2025
|
-
type: 'builder.
|
|
2026
|
-
data:
|
|
2084
|
+
type: 'builder.evaluateError',
|
|
2085
|
+
data: { id: id_1, error: error.message },
|
|
2027
2086
|
}, '*');
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
break;
|
|
2041
|
-
case 'builder.editingMode':
|
|
2042
|
-
var editingMode = data.data;
|
|
2043
|
-
if (editingMode) {
|
|
2044
|
-
_this.editingMode = true;
|
|
2045
|
-
document.body.classList.add('builder-editing');
|
|
2087
|
+
}
|
|
2088
|
+
else {
|
|
2089
|
+
if (result && typeof result.then === 'function') {
|
|
2090
|
+
result
|
|
2091
|
+
.then(function (finalResult) {
|
|
2092
|
+
var _a;
|
|
2093
|
+
(_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
|
|
2094
|
+
type: 'builder.evaluateResult',
|
|
2095
|
+
data: { id: id_1, result: finalResult },
|
|
2096
|
+
}, '*');
|
|
2097
|
+
})
|
|
2098
|
+
.catch(console.error);
|
|
2046
2099
|
}
|
|
2047
2100
|
else {
|
|
2048
|
-
_this.editingMode = false;
|
|
2049
|
-
document.body.classList.remove('builder-editing');
|
|
2050
|
-
}
|
|
2051
|
-
break;
|
|
2052
|
-
case 'builder.editingPageMode':
|
|
2053
|
-
var editingPageMode = data.data;
|
|
2054
|
-
Builder.editingPage = editingPageMode;
|
|
2055
|
-
break;
|
|
2056
|
-
case 'builder.overrideUserAttributes':
|
|
2057
|
-
var userAttributes = data.data;
|
|
2058
|
-
assign(Builder.overrideUserAttributes, userAttributes);
|
|
2059
|
-
_this.flushGetContentQueue(true);
|
|
2060
|
-
// TODO: refetch too
|
|
2061
|
-
break;
|
|
2062
|
-
case 'builder.overrideTestGroup':
|
|
2063
|
-
var _f = data.data, variationId = _f.variationId, contentId = _f.contentId;
|
|
2064
|
-
if (variationId && contentId) {
|
|
2065
|
-
_this.setTestCookie(contentId, variationId);
|
|
2066
|
-
_this.flushGetContentQueue(true);
|
|
2067
|
-
}
|
|
2068
|
-
break;
|
|
2069
|
-
case 'builder.evaluate': {
|
|
2070
|
-
var text = data.data.text;
|
|
2071
|
-
var args = data.data.arguments || [];
|
|
2072
|
-
var id_1 = data.data.id;
|
|
2073
|
-
// tslint:disable-next-line:no-function-constructor-with-string-args
|
|
2074
|
-
var fn = new Function(text);
|
|
2075
|
-
var result = void 0;
|
|
2076
|
-
var error = null;
|
|
2077
|
-
try {
|
|
2078
|
-
result = fn.apply(_this, args);
|
|
2079
|
-
}
|
|
2080
|
-
catch (err) {
|
|
2081
|
-
error = toError(err);
|
|
2082
|
-
}
|
|
2083
|
-
if (error) {
|
|
2084
2101
|
(_d = window.parent) === null || _d === void 0 ? void 0 : _d.postMessage({
|
|
2085
|
-
type: 'builder.
|
|
2086
|
-
data: {
|
|
2102
|
+
type: 'builder.evaluateResult',
|
|
2103
|
+
data: { result: result, id: id_1 },
|
|
2087
2104
|
}, '*');
|
|
2088
2105
|
}
|
|
2089
|
-
else {
|
|
2090
|
-
if (result && typeof result.then === 'function') {
|
|
2091
|
-
result
|
|
2092
|
-
.then(function (finalResult) {
|
|
2093
|
-
var _a;
|
|
2094
|
-
(_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
|
|
2095
|
-
type: 'builder.evaluateResult',
|
|
2096
|
-
data: { id: id_1, result: finalResult },
|
|
2097
|
-
}, '*');
|
|
2098
|
-
})
|
|
2099
|
-
.catch(console.error);
|
|
2100
|
-
}
|
|
2101
|
-
else {
|
|
2102
|
-
(_e = window.parent) === null || _e === void 0 ? void 0 : _e.postMessage({
|
|
2103
|
-
type: 'builder.evaluateResult',
|
|
2104
|
-
data: { result: result, id: id_1 },
|
|
2105
|
-
}, '*');
|
|
2106
|
-
}
|
|
2107
|
-
}
|
|
2108
|
-
break;
|
|
2109
2106
|
}
|
|
2107
|
+
break;
|
|
2110
2108
|
}
|
|
2111
2109
|
}
|
|
2112
|
-
}
|
|
2113
|
-
}
|
|
2110
|
+
}
|
|
2111
|
+
});
|
|
2114
2112
|
};
|
|
2115
2113
|
Object.defineProperty(Builder.prototype, "defaultCanTrack", {
|
|
2116
2114
|
get: function () {
|
|
@@ -2343,7 +2341,7 @@
|
|
|
2343
2341
|
// even though we only use `fetch()` now, we prefer to keep the old behavior and use the `fetch` that comes from
|
|
2344
2342
|
// the core SDK for consistency
|
|
2345
2343
|
Builder.prototype.requestUrl = function (url, options) {
|
|
2346
|
-
return getFetch()(url, options).then(function (res) { return res.json(); });
|
|
2344
|
+
return getFetch()(url, this.addSdkHeaders(options)).then(function (res) { return res.json(); });
|
|
2347
2345
|
};
|
|
2348
2346
|
Object.defineProperty(Builder.prototype, "host", {
|
|
2349
2347
|
get: function () {
|
|
@@ -2372,8 +2370,21 @@
|
|
|
2372
2370
|
enumerable: false,
|
|
2373
2371
|
configurable: true
|
|
2374
2372
|
});
|
|
2373
|
+
Builder.prototype.getSdkHeaders = function () {
|
|
2374
|
+
if (!Builder.sdkInfo) {
|
|
2375
|
+
return {};
|
|
2376
|
+
}
|
|
2377
|
+
return {
|
|
2378
|
+
'X-Builder-SDK': Builder.sdkInfo.name,
|
|
2379
|
+
'X-Builder-SDK-GEN': '1',
|
|
2380
|
+
'X-Builder-SDK-Version': Builder.sdkInfo.version,
|
|
2381
|
+
};
|
|
2382
|
+
};
|
|
2383
|
+
Builder.prototype.addSdkHeaders = function (fetchOptions) {
|
|
2384
|
+
return __assign(__assign({}, fetchOptions), { headers: __assign(__assign({}, fetchOptions.headers), this.getSdkHeaders()) });
|
|
2385
|
+
};
|
|
2375
2386
|
Builder.prototype.makeFetchApiCall = function (url, requestOptions) {
|
|
2376
|
-
return getFetch()(url, requestOptions);
|
|
2387
|
+
return getFetch()(url, this.addSdkHeaders(requestOptions));
|
|
2377
2388
|
};
|
|
2378
2389
|
Builder.prototype.flattenMongoQuery = function (obj, _current, _res) {
|
|
2379
2390
|
if (_res === void 0) { _res = {}; }
|
|
@@ -2772,6 +2783,7 @@
|
|
|
2772
2783
|
(location.search.indexOf('builder.preview=') !== -1 ||
|
|
2773
2784
|
location.search.indexOf('builder.frameEditing=') !== -1));
|
|
2774
2785
|
Builder.isReact = false;
|
|
2786
|
+
Builder.sdkInfo = undefined;
|
|
2775
2787
|
Builder.overrideUserAttributes = {};
|
|
2776
2788
|
return Builder;
|
|
2777
2789
|
}());
|