@builder.io/sdk 3.0.7 → 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/dist/index.umd.js CHANGED
@@ -1052,7 +1052,7 @@
1052
1052
 
1053
1053
  var DEFAULT_API_VERSION = 'v3';
1054
1054
 
1055
- var SDK_VERSION = '3.0.7';
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
- return (this.trustedHosts.findIndex(function (trustedHost) {
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
@@ -1931,184 +1936,179 @@
1931
1936
  };
1932
1937
  Builder.prototype.bindMessageListeners = function () {
1933
1938
  var _this = this;
1934
- if (isBrowser) {
1935
- addEventListener('message', function (event) {
1936
- var _a, _b, _c, _d, _e;
1937
- var url = parse(event.origin);
1938
- var isRestricted = ['builder.register', 'builder.registerComponent'].indexOf((_a = event.data) === null || _a === void 0 ? void 0 : _a.type) === -1;
1939
- var isTrusted = url.hostname && Builder.isTrustedHost(url.hostname);
1940
- if (isRestricted && !isTrusted) {
1941
- return;
1942
- }
1943
- var data = event.data;
1944
- if (data) {
1945
- switch (data.type) {
1946
- case 'builder.ping': {
1947
- (_b = window.parent) === null || _b === void 0 ? void 0 : _b.postMessage({
1948
- type: 'builder.pong',
1949
- data: {},
1950
- }, '*');
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) {
1951
1957
  break;
1952
1958
  }
1953
- case 'builder.register': {
1954
- // TODO: possibly do this for all...
1955
- if (event.source === window) {
1956
- break;
1957
- }
1958
- var options = data.data;
1959
- if (!options) {
1960
- break;
1961
- }
1962
- var type = options.type, info = options.info;
1963
- // TODO: all must have name and can't conflict?
1964
- var typeList = Builder.registry[type];
1965
- if (!typeList) {
1966
- typeList = Builder.registry[type] = [];
1967
- }
1968
- typeList.push(info);
1969
- Builder.registryChange.next(Builder.registry);
1959
+ var options = data.data;
1960
+ if (!options) {
1970
1961
  break;
1971
1962
  }
1972
- case 'builder.settingsChange': {
1973
- // TODO: possibly do this for all...
1974
- if (event.source === window) {
1975
- break;
1976
- }
1977
- var settings = data.data;
1978
- if (!settings) {
1979
- break;
1980
- }
1981
- Object.assign(Builder.settings, settings);
1982
- Builder.settingsChange.next(Builder.settings);
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) {
1983
1976
  break;
1984
1977
  }
1985
- case 'builder.registerEditor': {
1986
- // TODO: possibly do this for all...
1987
- if (event.source === window) {
1988
- break;
1989
- }
1990
- var info_1 = data.data;
1991
- if (!info_1) {
1992
- break;
1993
- }
1994
- var hasComponent_1 = !!info_1.component;
1995
- Builder.editors.every(function (thisInfo, index) {
1996
- if (info_1.name === thisInfo.name) {
1997
- if (thisInfo.component && !hasComponent_1) {
1998
- return false;
1999
- }
2000
- else {
2001
- Builder.editors[index] = thisInfo;
2002
- }
2003
- return false;
2004
- }
2005
- return true;
2006
- });
1978
+ var settings = data.data;
1979
+ if (!settings) {
2007
1980
  break;
2008
1981
  }
2009
- case 'builder.triggerAnimation': {
2010
- Builder.animator.triggerAnimation(data.data);
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) {
2011
1989
  break;
2012
1990
  }
2013
- case 'builder.contentUpdate':
2014
- var key = data.data.key || data.data.alias || data.data.entry || data.data.modelName;
2015
- var contentData = data.data.data; // hmmm...
2016
- var observer = _this.observersByKey[key];
2017
- if (observer && !_this.noEditorUpdates[key]) {
2018
- observer.next([contentData]);
2019
- }
1991
+ var info_1 = data.data;
1992
+ if (!info_1) {
2020
1993
  break;
2021
- case 'builder.getComponents':
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) {
2022
2083
  (_c = window.parent) === null || _c === void 0 ? void 0 : _c.postMessage({
2023
- type: 'builder.components',
2024
- data: Builder.components.map(function (item) { return Builder.prepareComponentSpecToSend(item); }),
2084
+ type: 'builder.evaluateError',
2085
+ data: { id: id_1, error: error.message },
2025
2086
  }, '*');
2026
- break;
2027
- case 'builder.editingModel':
2028
- _this.editingModel = data.data.model;
2029
- break;
2030
- case 'builder.registerComponent':
2031
- var componentData = data.data;
2032
- Builder.addComponent(componentData);
2033
- break;
2034
- case 'builder.blockContentLoading':
2035
- if (typeof data.data.model === 'string') {
2036
- _this.blockContentLoading = data.data.model;
2037
- }
2038
- break;
2039
- case 'builder.editingMode':
2040
- var editingMode = data.data;
2041
- if (editingMode) {
2042
- _this.editingMode = true;
2043
- 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);
2044
2099
  }
2045
2100
  else {
2046
- _this.editingMode = false;
2047
- document.body.classList.remove('builder-editing');
2048
- }
2049
- break;
2050
- case 'builder.editingPageMode':
2051
- var editingPageMode = data.data;
2052
- Builder.editingPage = editingPageMode;
2053
- break;
2054
- case 'builder.overrideUserAttributes':
2055
- var userAttributes = data.data;
2056
- assign(Builder.overrideUserAttributes, userAttributes);
2057
- _this.flushGetContentQueue(true);
2058
- // TODO: refetch too
2059
- break;
2060
- case 'builder.overrideTestGroup':
2061
- var _f = data.data, variationId = _f.variationId, contentId = _f.contentId;
2062
- if (variationId && contentId) {
2063
- _this.setTestCookie(contentId, variationId);
2064
- _this.flushGetContentQueue(true);
2065
- }
2066
- break;
2067
- case 'builder.evaluate': {
2068
- var text = data.data.text;
2069
- var args = data.data.arguments || [];
2070
- var id_1 = data.data.id;
2071
- // tslint:disable-next-line:no-function-constructor-with-string-args
2072
- var fn = new Function(text);
2073
- var result = void 0;
2074
- var error = null;
2075
- try {
2076
- result = fn.apply(_this, args);
2077
- }
2078
- catch (err) {
2079
- error = toError(err);
2080
- }
2081
- if (error) {
2082
2101
  (_d = window.parent) === null || _d === void 0 ? void 0 : _d.postMessage({
2083
- type: 'builder.evaluateError',
2084
- data: { id: id_1, error: error.message },
2102
+ type: 'builder.evaluateResult',
2103
+ data: { result: result, id: id_1 },
2085
2104
  }, '*');
2086
2105
  }
2087
- else {
2088
- if (result && typeof result.then === 'function') {
2089
- result
2090
- .then(function (finalResult) {
2091
- var _a;
2092
- (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
2093
- type: 'builder.evaluateResult',
2094
- data: { id: id_1, result: finalResult },
2095
- }, '*');
2096
- })
2097
- .catch(console.error);
2098
- }
2099
- else {
2100
- (_e = window.parent) === null || _e === void 0 ? void 0 : _e.postMessage({
2101
- type: 'builder.evaluateResult',
2102
- data: { result: result, id: id_1 },
2103
- }, '*');
2104
- }
2105
- }
2106
- break;
2107
2106
  }
2107
+ break;
2108
2108
  }
2109
2109
  }
2110
- });
2111
- }
2110
+ }
2111
+ });
2112
2112
  };
2113
2113
  Object.defineProperty(Builder.prototype, "defaultCanTrack", {
2114
2114
  get: function () {