@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.esm.js CHANGED
@@ -950,7 +950,7 @@ function toError(err) {
950
950
 
951
951
  var DEFAULT_API_VERSION = 'v3';
952
952
 
953
- var SDK_VERSION = '3.0.7';
953
+ var SDK_VERSION = '3.0.8';
954
954
 
955
955
  function datePlusMinutes(minutes) {
956
956
  if (minutes === void 0) { minutes = 30; }
@@ -1145,8 +1145,8 @@ var Builder = /** @class */ (function () {
1145
1145
  this.authToken = authToken;
1146
1146
  }
1147
1147
  if (isBrowser) {
1148
- this.bindMessageListeners();
1149
1148
  if (Builder.isEditing) {
1149
+ this.bindMessageListeners();
1150
1150
  parent.postMessage({
1151
1151
  type: 'builder.animatorOptions',
1152
1152
  data: {
@@ -1277,11 +1277,16 @@ var Builder = /** @class */ (function () {
1277
1277
  this.serverContext = context;
1278
1278
  };
1279
1279
  Builder.isTrustedHost = function (hostname) {
1280
- return (this.trustedHosts.findIndex(function (trustedHost) {
1280
+ var isTrusted = this.trustedHosts.findIndex(function (trustedHost) {
1281
1281
  return trustedHost.startsWith('*.')
1282
1282
  ? hostname.endsWith(trustedHost.slice(1))
1283
1283
  : trustedHost === hostname;
1284
- }) > -1);
1284
+ }) > -1;
1285
+ return isTrusted;
1286
+ };
1287
+ Builder.isTrustedHostForEvent = function (event) {
1288
+ var url = parse(event.origin);
1289
+ return url.hostname && Builder.isTrustedHost(url.hostname);
1285
1290
  };
1286
1291
  Builder.runAction = function (action) {
1287
1292
  // TODO
@@ -1829,184 +1834,179 @@ var Builder = /** @class */ (function () {
1829
1834
  };
1830
1835
  Builder.prototype.bindMessageListeners = function () {
1831
1836
  var _this = this;
1832
- if (isBrowser) {
1833
- addEventListener('message', function (event) {
1834
- var _a, _b, _c, _d, _e;
1835
- var url = parse(event.origin);
1836
- var isRestricted = ['builder.register', 'builder.registerComponent'].indexOf((_a = event.data) === null || _a === void 0 ? void 0 : _a.type) === -1;
1837
- var isTrusted = url.hostname && Builder.isTrustedHost(url.hostname);
1838
- if (isRestricted && !isTrusted) {
1839
- return;
1840
- }
1841
- var data = event.data;
1842
- if (data) {
1843
- switch (data.type) {
1844
- case 'builder.ping': {
1845
- (_b = window.parent) === null || _b === void 0 ? void 0 : _b.postMessage({
1846
- type: 'builder.pong',
1847
- data: {},
1848
- }, '*');
1837
+ addEventListener('message', function (event) {
1838
+ var _a, _b, _c, _d;
1839
+ var isTrusted = Builder.isTrustedHostForEvent(event);
1840
+ if (!isTrusted)
1841
+ return;
1842
+ var data = event.data;
1843
+ if (data) {
1844
+ switch (data.type) {
1845
+ case 'builder.ping': {
1846
+ (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
1847
+ type: 'builder.pong',
1848
+ data: {},
1849
+ }, '*');
1850
+ break;
1851
+ }
1852
+ case 'builder.register': {
1853
+ // TODO: possibly do this for all...
1854
+ if (event.source === window) {
1849
1855
  break;
1850
1856
  }
1851
- case 'builder.register': {
1852
- // TODO: possibly do this for all...
1853
- if (event.source === window) {
1854
- break;
1855
- }
1856
- var options = data.data;
1857
- if (!options) {
1858
- break;
1859
- }
1860
- var type = options.type, info = options.info;
1861
- // TODO: all must have name and can't conflict?
1862
- var typeList = Builder.registry[type];
1863
- if (!typeList) {
1864
- typeList = Builder.registry[type] = [];
1865
- }
1866
- typeList.push(info);
1867
- Builder.registryChange.next(Builder.registry);
1857
+ var options = data.data;
1858
+ if (!options) {
1868
1859
  break;
1869
1860
  }
1870
- case 'builder.settingsChange': {
1871
- // TODO: possibly do this for all...
1872
- if (event.source === window) {
1873
- break;
1874
- }
1875
- var settings = data.data;
1876
- if (!settings) {
1877
- break;
1878
- }
1879
- Object.assign(Builder.settings, settings);
1880
- Builder.settingsChange.next(Builder.settings);
1861
+ var type = options.type, info = options.info;
1862
+ // TODO: all must have name and can't conflict?
1863
+ var typeList = Builder.registry[type];
1864
+ if (!typeList) {
1865
+ typeList = Builder.registry[type] = [];
1866
+ }
1867
+ typeList.push(info);
1868
+ Builder.registryChange.next(Builder.registry);
1869
+ break;
1870
+ }
1871
+ case 'builder.settingsChange': {
1872
+ // TODO: possibly do this for all...
1873
+ if (event.source === window) {
1881
1874
  break;
1882
1875
  }
1883
- case 'builder.registerEditor': {
1884
- // TODO: possibly do this for all...
1885
- if (event.source === window) {
1886
- break;
1887
- }
1888
- var info_1 = data.data;
1889
- if (!info_1) {
1890
- break;
1891
- }
1892
- var hasComponent_1 = !!info_1.component;
1893
- Builder.editors.every(function (thisInfo, index) {
1894
- if (info_1.name === thisInfo.name) {
1895
- if (thisInfo.component && !hasComponent_1) {
1896
- return false;
1897
- }
1898
- else {
1899
- Builder.editors[index] = thisInfo;
1900
- }
1901
- return false;
1902
- }
1903
- return true;
1904
- });
1876
+ var settings = data.data;
1877
+ if (!settings) {
1905
1878
  break;
1906
1879
  }
1907
- case 'builder.triggerAnimation': {
1908
- Builder.animator.triggerAnimation(data.data);
1880
+ Object.assign(Builder.settings, settings);
1881
+ Builder.settingsChange.next(Builder.settings);
1882
+ break;
1883
+ }
1884
+ case 'builder.registerEditor': {
1885
+ // TODO: possibly do this for all...
1886
+ if (event.source === window) {
1909
1887
  break;
1910
1888
  }
1911
- case 'builder.contentUpdate':
1912
- var key = data.data.key || data.data.alias || data.data.entry || data.data.modelName;
1913
- var contentData = data.data.data; // hmmm...
1914
- var observer = _this.observersByKey[key];
1915
- if (observer && !_this.noEditorUpdates[key]) {
1916
- observer.next([contentData]);
1917
- }
1889
+ var info_1 = data.data;
1890
+ if (!info_1) {
1918
1891
  break;
1919
- case 'builder.getComponents':
1892
+ }
1893
+ var hasComponent_1 = !!info_1.component;
1894
+ Builder.editors.every(function (thisInfo, index) {
1895
+ if (info_1.name === thisInfo.name) {
1896
+ if (thisInfo.component && !hasComponent_1) {
1897
+ return false;
1898
+ }
1899
+ else {
1900
+ Builder.editors[index] = thisInfo;
1901
+ }
1902
+ return false;
1903
+ }
1904
+ return true;
1905
+ });
1906
+ break;
1907
+ }
1908
+ case 'builder.triggerAnimation': {
1909
+ Builder.animator.triggerAnimation(data.data);
1910
+ break;
1911
+ }
1912
+ case 'builder.contentUpdate':
1913
+ var key = data.data.key || data.data.alias || data.data.entry || data.data.modelName;
1914
+ var contentData = data.data.data; // hmmm...
1915
+ var observer = _this.observersByKey[key];
1916
+ if (observer && !_this.noEditorUpdates[key]) {
1917
+ observer.next([contentData]);
1918
+ }
1919
+ break;
1920
+ case 'builder.getComponents':
1921
+ (_b = window.parent) === null || _b === void 0 ? void 0 : _b.postMessage({
1922
+ type: 'builder.components',
1923
+ data: Builder.components.map(function (item) { return Builder.prepareComponentSpecToSend(item); }),
1924
+ }, '*');
1925
+ break;
1926
+ case 'builder.editingModel':
1927
+ _this.editingModel = data.data.model;
1928
+ break;
1929
+ case 'builder.registerComponent':
1930
+ var componentData = data.data;
1931
+ Builder.addComponent(componentData);
1932
+ break;
1933
+ case 'builder.blockContentLoading':
1934
+ if (typeof data.data.model === 'string') {
1935
+ _this.blockContentLoading = data.data.model;
1936
+ }
1937
+ break;
1938
+ case 'builder.editingMode':
1939
+ var editingMode = data.data;
1940
+ if (editingMode) {
1941
+ _this.editingMode = true;
1942
+ document.body.classList.add('builder-editing');
1943
+ }
1944
+ else {
1945
+ _this.editingMode = false;
1946
+ document.body.classList.remove('builder-editing');
1947
+ }
1948
+ break;
1949
+ case 'builder.editingPageMode':
1950
+ var editingPageMode = data.data;
1951
+ Builder.editingPage = editingPageMode;
1952
+ break;
1953
+ case 'builder.overrideUserAttributes':
1954
+ var userAttributes = data.data;
1955
+ assign(Builder.overrideUserAttributes, userAttributes);
1956
+ _this.flushGetContentQueue(true);
1957
+ // TODO: refetch too
1958
+ break;
1959
+ case 'builder.overrideTestGroup':
1960
+ var _e = data.data, variationId = _e.variationId, contentId = _e.contentId;
1961
+ if (variationId && contentId) {
1962
+ _this.setTestCookie(contentId, variationId);
1963
+ _this.flushGetContentQueue(true);
1964
+ }
1965
+ break;
1966
+ case 'builder.evaluate': {
1967
+ var text = data.data.text;
1968
+ var args = data.data.arguments || [];
1969
+ var id_1 = data.data.id;
1970
+ // tslint:disable-next-line:no-function-constructor-with-string-args
1971
+ var fn = new Function(text);
1972
+ var result = void 0;
1973
+ var error = null;
1974
+ try {
1975
+ result = fn.apply(_this, args);
1976
+ }
1977
+ catch (err) {
1978
+ error = toError(err);
1979
+ }
1980
+ if (error) {
1920
1981
  (_c = window.parent) === null || _c === void 0 ? void 0 : _c.postMessage({
1921
- type: 'builder.components',
1922
- data: Builder.components.map(function (item) { return Builder.prepareComponentSpecToSend(item); }),
1982
+ type: 'builder.evaluateError',
1983
+ data: { id: id_1, error: error.message },
1923
1984
  }, '*');
1924
- break;
1925
- case 'builder.editingModel':
1926
- _this.editingModel = data.data.model;
1927
- break;
1928
- case 'builder.registerComponent':
1929
- var componentData = data.data;
1930
- Builder.addComponent(componentData);
1931
- break;
1932
- case 'builder.blockContentLoading':
1933
- if (typeof data.data.model === 'string') {
1934
- _this.blockContentLoading = data.data.model;
1935
- }
1936
- break;
1937
- case 'builder.editingMode':
1938
- var editingMode = data.data;
1939
- if (editingMode) {
1940
- _this.editingMode = true;
1941
- document.body.classList.add('builder-editing');
1985
+ }
1986
+ else {
1987
+ if (result && typeof result.then === 'function') {
1988
+ result
1989
+ .then(function (finalResult) {
1990
+ var _a;
1991
+ (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
1992
+ type: 'builder.evaluateResult',
1993
+ data: { id: id_1, result: finalResult },
1994
+ }, '*');
1995
+ })
1996
+ .catch(console.error);
1942
1997
  }
1943
1998
  else {
1944
- _this.editingMode = false;
1945
- document.body.classList.remove('builder-editing');
1946
- }
1947
- break;
1948
- case 'builder.editingPageMode':
1949
- var editingPageMode = data.data;
1950
- Builder.editingPage = editingPageMode;
1951
- break;
1952
- case 'builder.overrideUserAttributes':
1953
- var userAttributes = data.data;
1954
- assign(Builder.overrideUserAttributes, userAttributes);
1955
- _this.flushGetContentQueue(true);
1956
- // TODO: refetch too
1957
- break;
1958
- case 'builder.overrideTestGroup':
1959
- var _f = data.data, variationId = _f.variationId, contentId = _f.contentId;
1960
- if (variationId && contentId) {
1961
- _this.setTestCookie(contentId, variationId);
1962
- _this.flushGetContentQueue(true);
1963
- }
1964
- break;
1965
- case 'builder.evaluate': {
1966
- var text = data.data.text;
1967
- var args = data.data.arguments || [];
1968
- var id_1 = data.data.id;
1969
- // tslint:disable-next-line:no-function-constructor-with-string-args
1970
- var fn = new Function(text);
1971
- var result = void 0;
1972
- var error = null;
1973
- try {
1974
- result = fn.apply(_this, args);
1975
- }
1976
- catch (err) {
1977
- error = toError(err);
1978
- }
1979
- if (error) {
1980
1999
  (_d = window.parent) === null || _d === void 0 ? void 0 : _d.postMessage({
1981
- type: 'builder.evaluateError',
1982
- data: { id: id_1, error: error.message },
2000
+ type: 'builder.evaluateResult',
2001
+ data: { result: result, id: id_1 },
1983
2002
  }, '*');
1984
2003
  }
1985
- else {
1986
- if (result && typeof result.then === 'function') {
1987
- result
1988
- .then(function (finalResult) {
1989
- var _a;
1990
- (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({
1991
- type: 'builder.evaluateResult',
1992
- data: { id: id_1, result: finalResult },
1993
- }, '*');
1994
- })
1995
- .catch(console.error);
1996
- }
1997
- else {
1998
- (_e = window.parent) === null || _e === void 0 ? void 0 : _e.postMessage({
1999
- type: 'builder.evaluateResult',
2000
- data: { result: result, id: id_1 },
2001
- }, '*');
2002
- }
2003
- }
2004
- break;
2005
2004
  }
2005
+ break;
2006
2006
  }
2007
2007
  }
2008
- });
2009
- }
2008
+ }
2009
+ });
2010
2010
  };
2011
2011
  Object.defineProperty(Builder.prototype, "defaultCanTrack", {
2012
2012
  get: function () {