@builder.io/sdk 4.0.0 → 4.0.2

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