@saasquatch/squatch-js 2.4.3-1 → 2.4.3-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/CHANGELOG.md CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.5.0] - 2022-12-01
11
+
12
+ ### Removed
13
+
14
+ - Removed WidgetApi.cookieUser method and associated usage
15
+
16
+ ### Changed
17
+
18
+ - Widgets.render now calls upsertUser rather than cookieUser api method
19
+
10
20
  ## [2.4.1] - 2022-09-23
11
21
 
12
22
  ### Added
@@ -231,7 +241,8 @@ No release notes.
231
241
 
232
242
  No release notes.
233
243
 
234
- [unreleased]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.4.1...HEAD
244
+ [unreleased]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.5.0...HEAD
245
+ [2.5.0]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.4.1...@saasquatch%2Fsquatch-js@2.5.0
235
246
  [2.4.1]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.4.0...@saasquatch%2Fsquatch-js@2.4.1
236
247
  [2.4.0]: https://github.com/saasquatch/squatch-js/compare/v2.3.1...@saasquatch%2Fsquatch-js@2.4.0
237
248
  [2.3.1]: https://github.com/saasquatch/squatch-js/compare/v2.3.0...v2.3.1
@@ -18,7 +18,7 @@ export default class AnalyticsApi {
18
18
  constructor(config: {
19
19
  domain: string;
20
20
  });
21
- pushAnalyticsLoadEvent(params: SQHDetails): Promise<any>;
21
+ pushAnalyticsLoadEvent(params: SQHDetails): Promise<any> | undefined;
22
22
  pushAnalyticsShareClickedEvent(params: SQHDetails & {
23
23
  shareMedium: string;
24
24
  }): Promise<any>;
@@ -1,4 +1,4 @@
1
- import { ConfigOptions, CookieUser, WidgetConfig, WithRequired } from "../types";
1
+ import { ConfigOptions, WidgetConfig, WithRequired } from "../types";
2
2
  /**
3
3
  *
4
4
  * The WidgetApi class is a wrapper around the Widget Endpoints of the SaaSquatch REST API.
@@ -25,19 +25,6 @@ export default class WidgetApi {
25
25
  * let squatchApi = new WidgetApi({tenantAlias:'test_12b5bo1b25125'});
26
26
  */
27
27
  constructor(config: ConfigOptions);
28
- /**
29
- * Creates/upserts an anonymous user.
30
- *
31
- * @param {Object} params Parameters for request
32
- * @param {WidgetType} params.widgetType The content of the widget.
33
- * @param {EngagementMedium} params.engagementMedium How to display the widget.
34
- * @param {CookieUser} params.user An optional user object
35
- * @param {string} params.jwt the JSON Web Token (JWT) that is used to
36
- * validate the data (can be disabled)
37
- *
38
- * @return {Promise} json object if true, with the widget template, jsOptions and user details.
39
- */
40
- cookieUser(params: CookieUser): Promise<any>;
41
28
  /**
42
29
  * Creates/upserts user.
43
30
  *
@@ -239,39 +239,6 @@ class WidgetApi {
239
239
  this.domain = clean.domain;
240
240
  this.npmCdn = clean.npmCdn;
241
241
  }
242
- /**
243
- * Creates/upserts an anonymous user.
244
- *
245
- * @param {Object} params Parameters for request
246
- * @param {WidgetType} params.widgetType The content of the widget.
247
- * @param {EngagementMedium} params.engagementMedium How to display the widget.
248
- * @param {CookieUser} params.user An optional user object
249
- * @param {string} params.jwt the JSON Web Token (JWT) that is used to
250
- * validate the data (can be disabled)
251
- *
252
- * @return {Promise} json object if true, with the widget template, jsOptions and user details.
253
- */
254
-
255
-
256
- cookieUser(params) {
257
- // validateInput(params, CookieUserSchema);
258
- const {
259
- widgetType,
260
- engagementMedium = "POPUP",
261
- jwt,
262
- user
263
- } = params;
264
- const tenantAlias = encodeURIComponent(this.tenantAlias);
265
-
266
- const optionalParams = _buildParams({
267
- widgetType,
268
- engagementMedium
269
- });
270
-
271
- const path = `/api/v1/${tenantAlias}/widget/user/cookie_user${optionalParams}`;
272
- const url = this.domain + path;
273
- return doPut(url, JSON.stringify(user ? user : {}), jwt);
274
- }
275
242
  /**
276
243
  * Creates/upserts user.
277
244
  *
@@ -338,7 +305,8 @@ class WidgetApi {
338
305
  } = clean;
339
306
  const tenantAlias = encodeURIComponent(this.tenantAlias);
340
307
  const accountId = user ? encodeURIComponent(user.accountId) : null;
341
- const userId = user ? encodeURIComponent(user.id) : null;
308
+ const userId = user ? encodeURIComponent(user.id) : null; // TODO: Add locale as parameter to renderWidget
309
+
342
310
  const query = `
343
311
  query renderWidget ($user: UserIdInput, $engagementMedium: UserEngagementMedium, $widgetType: WidgetType) {
344
312
  renderWidget(user: $user, engagementMedium: $engagementMedium, widgetType: $widgetType) {
@@ -465,6 +433,7 @@ class AnalyticsApi {
465
433
  const userId = encodeURIComponent(params.externalUserId);
466
434
  const engagementMedium = encodeURIComponent(params.engagementMedium);
467
435
  const programId = params.programId ? `&programId=${encodeURIComponent(params.programId)}` : ``;
436
+ if (!userId || !accountId) return;
468
437
  const path = `/a/${tenantAlias}/widgets/analytics/loaded?externalAccountId=${accountId}&externalUserId=${userId}&engagementMedium=${engagementMedium}${programId}`;
469
438
  const url = this.domain + path;
470
439
  return doPost(url, JSON.stringify({}));
@@ -517,6 +486,8 @@ class Widget {
517
486
  }
518
487
 
519
488
  _loadEvent(sqh) {
489
+ var _this$analyticsApi$pu;
490
+
520
491
  if (!sqh) return; // No non-truthy value
521
492
 
522
493
  if (!isObject$1(sqh)) {
@@ -550,7 +521,7 @@ class Widget {
550
521
  };
551
522
  }
552
523
 
553
- this.analyticsApi.pushAnalyticsLoadEvent(params).then(response => {
524
+ (_this$analyticsApi$pu = this.analyticsApi.pushAnalyticsLoadEvent(params)) == null ? void 0 : _this$analyticsApi$pu.then(response => {
554
525
  _log$7(`${params.engagementMedium} loaded event recorded.`);
555
526
  }).catch(ex => {
556
527
  _log$7(new Error(`pushAnalyticsLoadEvent() ${ex}`));
@@ -682,18 +653,6 @@ class Widget {
682
653
  widgetType: this.type,
683
654
  jwt
684
655
  });
685
- } else if (this.context.type === "cookie") {
686
- let userObj = {
687
- email: email || null,
688
- firstName: firstName || null,
689
- lastName: lastName || null
690
- };
691
- response = this.widgetApi.cookieUser({
692
- user: userObj,
693
- engagementMedium,
694
- widgetType: this.type,
695
- jwt
696
- });
697
656
  } else if (this.context.type === "passwordless") {
698
657
  response = this.widgetApi.render({
699
658
  user: undefined,
@@ -1238,41 +1197,6 @@ class Widgets {
1238
1197
 
1239
1198
  EventBus.addEventListener("submit_email", Widgets._cb);
1240
1199
  }
1241
- /**
1242
- * This function calls the {@link WidgetApi.cookieUser} method, and it renders
1243
- * the widget if it is successful. Otherwise it shows the "error" widget.
1244
- *
1245
- * @param {Object} config Config details
1246
- * @param {WidgetType} config.widgetType The content of the widget.
1247
- * @param {EngagementMedium} config.engagementMedium How to display the widget.
1248
- * @param {User} config.user An optional user to include
1249
- * @param {string} config.jwt the JSON Web Token (JWT) that is used to
1250
- * validate the data (can be disabled)
1251
- *
1252
- * @return {Promise<WidgetResult>} json object if true, with a Widget and user details.
1253
- */
1254
-
1255
-
1256
- async createCookieUser(config) {
1257
- try {
1258
- const response = await this.api.cookieUser(config);
1259
- return {
1260
- widget: this._renderWidget(response, config, {
1261
- type: "cookie",
1262
- engagementMedium: config.engagementMedium
1263
- }),
1264
- user: response.user
1265
- };
1266
- } catch (err) {
1267
- _log$3(err);
1268
-
1269
- if (err.apiErrorCode) {
1270
- this._renderErrorWidget(err, config.engagementMedium);
1271
- }
1272
-
1273
- throw err;
1274
- }
1275
- }
1276
1200
  /**
1277
1201
  * This function calls the {@link WidgetApi.upsertUser} method, and it renders
1278
1202
  * the widget if it is successful. Otherwise it shows the "error" widget.
@@ -1342,20 +1266,14 @@ class Widgets {
1342
1266
  // TODO: Flagging default behaviour change
1343
1267
  // cookieUser returns a deprecated error from the API on the latest squatchJs version
1344
1268
  // More suitable for no auth render?
1345
- const queryString = window.location.search;
1346
- const urlParams = new URLSearchParams(queryString);
1347
- const refParam = urlParams.get("_saasquatch") || "";
1348
-
1349
- if (!config.showOnReferral || refParam) {
1350
- const response = await this.api.render(clean);
1351
- return {
1352
- widget: this._renderWidget(response, clean, {
1353
- type: "passwordless",
1354
- engagementMedium: clean.engagementMedium
1355
- }),
1356
- user: response.user
1357
- };
1358
- }
1269
+ const response = await this.api.render(clean);
1270
+ return {
1271
+ widget: this._renderWidget(response, clean, {
1272
+ type: "passwordless",
1273
+ engagementMedium: clean.engagementMedium
1274
+ }),
1275
+ user: response.user
1276
+ };
1359
1277
  } catch (err) {
1360
1278
  if (err.apiErrorCode) {
1361
1279
  this._renderErrorWidget(err, clean.engagementMedium);
@@ -1426,7 +1344,6 @@ class Widgets {
1426
1344
  * @param {Object} config Config details
1427
1345
  * @param {string} config.widgetType The widget type (REFERRER_WIDGET, CONVERSION_WIDGET)
1428
1346
  * @param {string} config.engagementMedium (POPUP, EMBED)
1429
- * @param {string} config.showOnReferral Whether to show
1430
1347
  * @returns {Widget} widget (PopupWidget, EmbedWidget, or CtaWidget)
1431
1348
  */
1432
1349
 
@@ -1436,7 +1353,7 @@ class Widgets {
1436
1353
 
1437
1354
  if (!response) throw new Error("Unable to get a response");
1438
1355
  let widget;
1439
- let displayOnLoad = !!config.showOnReferral;
1356
+ let displayOnLoad = false;
1440
1357
  let displayCTA = false;
1441
1358
  const opts = response.jsOptions || "";
1442
1359
  const params = {
@@ -1677,7 +1594,8 @@ function asyncLoad() {
1677
1594
 
1678
1595
  if (loaded && cached) {
1679
1596
  const ready = cached.ready || [];
1680
- ready.forEach(cb => setTimeout(() => cb(), 0)); // @ts-ignore -- intetionally deletes `_squatch` to cleanup initialization
1597
+ ready.forEach(cb => setTimeout(() => cb(), 0));
1598
+ setTimeout(() => window.squatch.auto(), 0); // @ts-ignore -- intetionally deletes `_squatch` to cleanup initialization
1681
1599
 
1682
1600
  window._squatch = undefined;
1683
1601
 
@@ -2243,6 +2161,7 @@ function help() {
2243
2161
  console.log(`Having trouble using Squatch.js? Go to https://docs.referralsaasquatch.com/developer/ for tutorials, references and error codes.`);
2244
2162
  }
2245
2163
 
2164
+ // @ts-check
2246
2165
  // debug.disable("squatch-js*");
2247
2166
 
2248
2167
  /** @hidden */
@@ -2316,9 +2235,7 @@ function auto(configIn) {
2316
2235
  widgetConfig
2317
2236
  } = configs;
2318
2237
  init(squatchConfig);
2319
- return (_widgets3 = widgets()) == null ? void 0 : _widgets3.render(_extends({
2320
- showOnReferral: true
2321
- }, widgetConfig));
2238
+ return (_widgets3 = widgets()) == null ? void 0 : _widgets3.render(widgetConfig);
2322
2239
  }
2323
2240
  }
2324
2241
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"squatch.esm.js","sources":["../node_modules/@ungap/url-search-params/esm/index.js"],"sourcesContent":["/*! (c) Andrea Giammarchi - ISC */\nvar self = this || /* istanbul ignore next */ {};\ntry {\n (function (URLSearchParams, plus) {\n if (\n new URLSearchParams('q=%2B').get('q') !== plus ||\n new URLSearchParams({q: plus}).get('q') !== plus ||\n new URLSearchParams([['q', plus]]).get('q') !== plus ||\n new URLSearchParams('q=\\n').toString() !== 'q=%0A' ||\n new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||\n new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'\n )\n throw URLSearchParams;\n self.URLSearchParams = URLSearchParams;\n }(URLSearchParams, '+'));\n} catch(URLSearchParams) {\n (function (Object, String, isArray) {'use strict';\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var find = /[!'\\(\\)~]|%20|%00/g;\n var findPercentSign = /%(?![0-9a-fA-F]{2})/g;\n var plus = /\\+/g;\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n var proto = {\n append: function (key, value) {\n appendTo(this._ungap, key, value);\n },\n delete: function (key) {\n delete this._ungap[key];\n },\n get: function (key) {\n return this.has(key) ? this._ungap[key][0] : null;\n },\n getAll: function (key) {\n return this.has(key) ? this._ungap[key].slice(0) : [];\n },\n has: function (key) {\n return key in this._ungap;\n },\n set: function (key, value) {\n this._ungap[key] = [String(value)];\n },\n forEach: function (callback, thisArg) {\n var self = this;\n for (var key in self._ungap)\n self._ungap[key].forEach(invoke, key);\n function invoke(value) {\n callback.call(thisArg, value, String(key), self);\n }\n },\n toJSON: function () {\n return {};\n },\n toString: function () {\n var query = [];\n for (var key in this._ungap) {\n var encoded = encode(key);\n for (var\n i = 0,\n value = this._ungap[key];\n i < value.length; i++\n ) {\n query.push(encoded + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n for (var key in proto)\n defineProperty(URLSearchParams.prototype, key, {\n configurable: true,\n writable: true,\n value: proto[key]\n });\n self.URLSearchParams = URLSearchParams;\n function URLSearchParams(query) {\n var dict = create(null);\n defineProperty(this, '_ungap', {value: dict});\n switch (true) {\n case !query:\n break;\n case typeof query === 'string':\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (var\n pairs = query.split('&'),\n i = 0,\n length = pairs.length; i < length; i++\n ) {\n var value = pairs[i];\n var index = value.indexOf('=');\n if (-1 < index) {\n appendTo(\n dict,\n decode(value.slice(0, index)),\n decode(value.slice(index + 1))\n );\n } else if (value.length){\n appendTo(\n dict,\n decode(value),\n ''\n );\n }\n }\n break;\n case isArray(query):\n for (var\n i = 0,\n length = query.length; i < length; i++\n ) {\n var value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n break;\n case 'forEach' in query:\n query.forEach(addEach, dict);\n break;\n default:\n for (var key in query)\n appendTo(dict, key, query[key]);\n }\n }\n\n function addEach(value, key) {\n appendTo(this, key, value);\n }\n\n function appendTo(dict, key, value) {\n var res = isArray(value) ? value.join(',') : value;\n if (key in dict)\n dict[key].push(res);\n else\n dict[key] = [res];\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));\n }\n\n function encode(str) {\n return encodeURIComponent(str).replace(find, replacer);\n }\n\n function replacer(match) {\n return replace[match];\n }\n\n }(Object, String, Array.isArray));\n}\n\n(function (URLSearchParamsProto) {\n\n var iterable = false;\n try { iterable = !!Symbol.iterator; } catch (o_O) {}\n\n /* istanbul ignore else */\n if (!('forEach' in URLSearchParamsProto)) {\n URLSearchParamsProto.forEach = function forEach(callback, thisArg) {\n var self = this;\n var names = Object.create(null);\n this.toString()\n .replace(/=[\\s\\S]*?(?:&|$)/g, '=')\n .split('=')\n .forEach(function (name) {\n if (!name.length || name in names)\n return;\n (names[name] = self.getAll(name)).forEach(function(value) {\n callback.call(thisArg, value, name, self);\n });\n });\n };\n }\n\n /* istanbul ignore else */\n if (!('keys' in URLSearchParamsProto)) {\n URLSearchParamsProto.keys = function keys() {\n return iterator(this, function(value, key) { this.push(key); });\n };\n }\n\n /* istanbul ignore else */\n if (!('values' in URLSearchParamsProto)) {\n URLSearchParamsProto.values = function values() {\n return iterator(this, function(value, key) { this.push(value); });\n };\n }\n\n /* istanbul ignore else */\n if (!('entries' in URLSearchParamsProto)) {\n URLSearchParamsProto.entries = function entries() {\n return iterator(this, function(value, key) { this.push([key, value]); });\n };\n }\n\n /* istanbul ignore else */\n if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {\n URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;\n }\n\n /* istanbul ignore else */\n if (!('sort' in URLSearchParamsProto)) {\n URLSearchParamsProto.sort = function sort() {\n var\n entries = this.entries(),\n entry = entries.next(),\n done = entry.done,\n keys = [],\n values = Object.create(null),\n i, key, value\n ;\n while (!done) {\n value = entry.value;\n key = value[0];\n keys.push(key);\n if (!(key in values)) {\n values[key] = [];\n }\n values[key].push(value[1]);\n entry = entries.next();\n done = entry.done;\n }\n // not the champion in efficiency\n // but these two bits just do the job\n keys.sort();\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n this.append(key, values[key].shift());\n }\n };\n }\n\n function iterator(self, callback) {\n var items = [];\n self.forEach(callback, items);\n /* istanbul ignore next */\n return iterable ?\n items[Symbol.iterator]() :\n {\n next: function() {\n var value = items.shift();\n return {done: value === void 0, value: value};\n }\n };\n }\n\n /* istanbul ignore next */\n (function (Object) {\n var\n dP = Object.defineProperty,\n gOPD = Object.getOwnPropertyDescriptor,\n createSearchParamsPollute = function (search) {\n function append(name, value) {\n URLSearchParamsProto.append.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function del(name) {\n URLSearchParamsProto.delete.call(this, name);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function set(name, value) {\n URLSearchParamsProto.set.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n return function (sp, value) {\n sp.append = append;\n sp.delete = del;\n sp.set = set;\n return dP(sp, '_usp', {\n configurable: true,\n writable: true,\n value: value\n });\n };\n },\n createSearchParamsCreate = function (polluteSearchParams) {\n return function (obj, sp) {\n dP(\n obj, '_searchParams', {\n configurable: true,\n writable: true,\n value: polluteSearchParams(sp, obj)\n }\n );\n return sp;\n };\n },\n updateSearchParams = function (sp) {\n var append = sp.append;\n sp.append = URLSearchParamsProto.append;\n URLSearchParams.call(sp, sp._usp.search.slice(1));\n sp.append = append;\n },\n verifySearchParams = function (obj, Class) {\n if (!(obj instanceof Class)) throw new TypeError(\n \"'searchParams' accessed on an object that \" +\n \"does not implement interface \" + Class.name\n );\n },\n upgradeClass = function (Class) {\n var\n ClassProto = Class.prototype,\n searchParams = gOPD(ClassProto, 'searchParams'),\n href = gOPD(ClassProto, 'href'),\n search = gOPD(ClassProto, 'search'),\n createSearchParams\n ;\n if (!searchParams && search && search.set) {\n createSearchParams = createSearchParamsCreate(\n createSearchParamsPollute(search)\n );\n Object.defineProperties(\n ClassProto,\n {\n href: {\n get: function () {\n return href.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n href.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n search: {\n get: function () {\n return search.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n search.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n searchParams: {\n get: function () {\n verifySearchParams(this, Class);\n return this._searchParams || createSearchParams(\n this,\n new URLSearchParams(this.search.slice(1))\n );\n },\n set: function (sp) {\n verifySearchParams(this, Class);\n createSearchParams(this, sp);\n }\n }\n }\n );\n }\n }\n ;\n try {\n upgradeClass(HTMLAnchorElement);\n if (/^function|object$/.test(typeof URL) && URL.prototype)\n upgradeClass(URL);\n } catch (meh) {}\n }(Object));\n\n}(self.URLSearchParams.prototype, Object));\nexport default self.URLSearchParams;\n"],"names":["this"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"squatch.esm.js","sources":["../node_modules/@ungap/url-search-params/esm/index.js"],"sourcesContent":["/*! (c) Andrea Giammarchi - ISC */\nvar self = this || /* istanbul ignore next */ {};\ntry {\n (function (URLSearchParams, plus) {\n if (\n new URLSearchParams('q=%2B').get('q') !== plus ||\n new URLSearchParams({q: plus}).get('q') !== plus ||\n new URLSearchParams([['q', plus]]).get('q') !== plus ||\n new URLSearchParams('q=\\n').toString() !== 'q=%0A' ||\n new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||\n new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'\n )\n throw URLSearchParams;\n self.URLSearchParams = URLSearchParams;\n }(URLSearchParams, '+'));\n} catch(URLSearchParams) {\n (function (Object, String, isArray) {'use strict';\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var find = /[!'\\(\\)~]|%20|%00/g;\n var findPercentSign = /%(?![0-9a-fA-F]{2})/g;\n var plus = /\\+/g;\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n var proto = {\n append: function (key, value) {\n appendTo(this._ungap, key, value);\n },\n delete: function (key) {\n delete this._ungap[key];\n },\n get: function (key) {\n return this.has(key) ? this._ungap[key][0] : null;\n },\n getAll: function (key) {\n return this.has(key) ? this._ungap[key].slice(0) : [];\n },\n has: function (key) {\n return key in this._ungap;\n },\n set: function (key, value) {\n this._ungap[key] = [String(value)];\n },\n forEach: function (callback, thisArg) {\n var self = this;\n for (var key in self._ungap)\n self._ungap[key].forEach(invoke, key);\n function invoke(value) {\n callback.call(thisArg, value, String(key), self);\n }\n },\n toJSON: function () {\n return {};\n },\n toString: function () {\n var query = [];\n for (var key in this._ungap) {\n var encoded = encode(key);\n for (var\n i = 0,\n value = this._ungap[key];\n i < value.length; i++\n ) {\n query.push(encoded + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n for (var key in proto)\n defineProperty(URLSearchParams.prototype, key, {\n configurable: true,\n writable: true,\n value: proto[key]\n });\n self.URLSearchParams = URLSearchParams;\n function URLSearchParams(query) {\n var dict = create(null);\n defineProperty(this, '_ungap', {value: dict});\n switch (true) {\n case !query:\n break;\n case typeof query === 'string':\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (var\n pairs = query.split('&'),\n i = 0,\n length = pairs.length; i < length; i++\n ) {\n var value = pairs[i];\n var index = value.indexOf('=');\n if (-1 < index) {\n appendTo(\n dict,\n decode(value.slice(0, index)),\n decode(value.slice(index + 1))\n );\n } else if (value.length){\n appendTo(\n dict,\n decode(value),\n ''\n );\n }\n }\n break;\n case isArray(query):\n for (var\n i = 0,\n length = query.length; i < length; i++\n ) {\n var value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n break;\n case 'forEach' in query:\n query.forEach(addEach, dict);\n break;\n default:\n for (var key in query)\n appendTo(dict, key, query[key]);\n }\n }\n\n function addEach(value, key) {\n appendTo(this, key, value);\n }\n\n function appendTo(dict, key, value) {\n var res = isArray(value) ? value.join(',') : value;\n if (key in dict)\n dict[key].push(res);\n else\n dict[key] = [res];\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));\n }\n\n function encode(str) {\n return encodeURIComponent(str).replace(find, replacer);\n }\n\n function replacer(match) {\n return replace[match];\n }\n\n }(Object, String, Array.isArray));\n}\n\n(function (URLSearchParamsProto) {\n\n var iterable = false;\n try { iterable = !!Symbol.iterator; } catch (o_O) {}\n\n /* istanbul ignore else */\n if (!('forEach' in URLSearchParamsProto)) {\n URLSearchParamsProto.forEach = function forEach(callback, thisArg) {\n var self = this;\n var names = Object.create(null);\n this.toString()\n .replace(/=[\\s\\S]*?(?:&|$)/g, '=')\n .split('=')\n .forEach(function (name) {\n if (!name.length || name in names)\n return;\n (names[name] = self.getAll(name)).forEach(function(value) {\n callback.call(thisArg, value, name, self);\n });\n });\n };\n }\n\n /* istanbul ignore else */\n if (!('keys' in URLSearchParamsProto)) {\n URLSearchParamsProto.keys = function keys() {\n return iterator(this, function(value, key) { this.push(key); });\n };\n }\n\n /* istanbul ignore else */\n if (!('values' in URLSearchParamsProto)) {\n URLSearchParamsProto.values = function values() {\n return iterator(this, function(value, key) { this.push(value); });\n };\n }\n\n /* istanbul ignore else */\n if (!('entries' in URLSearchParamsProto)) {\n URLSearchParamsProto.entries = function entries() {\n return iterator(this, function(value, key) { this.push([key, value]); });\n };\n }\n\n /* istanbul ignore else */\n if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {\n URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;\n }\n\n /* istanbul ignore else */\n if (!('sort' in URLSearchParamsProto)) {\n URLSearchParamsProto.sort = function sort() {\n var\n entries = this.entries(),\n entry = entries.next(),\n done = entry.done,\n keys = [],\n values = Object.create(null),\n i, key, value\n ;\n while (!done) {\n value = entry.value;\n key = value[0];\n keys.push(key);\n if (!(key in values)) {\n values[key] = [];\n }\n values[key].push(value[1]);\n entry = entries.next();\n done = entry.done;\n }\n // not the champion in efficiency\n // but these two bits just do the job\n keys.sort();\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n this.append(key, values[key].shift());\n }\n };\n }\n\n function iterator(self, callback) {\n var items = [];\n self.forEach(callback, items);\n /* istanbul ignore next */\n return iterable ?\n items[Symbol.iterator]() :\n {\n next: function() {\n var value = items.shift();\n return {done: value === void 0, value: value};\n }\n };\n }\n\n /* istanbul ignore next */\n (function (Object) {\n var\n dP = Object.defineProperty,\n gOPD = Object.getOwnPropertyDescriptor,\n createSearchParamsPollute = function (search) {\n function append(name, value) {\n URLSearchParamsProto.append.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function del(name) {\n URLSearchParamsProto.delete.call(this, name);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function set(name, value) {\n URLSearchParamsProto.set.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n return function (sp, value) {\n sp.append = append;\n sp.delete = del;\n sp.set = set;\n return dP(sp, '_usp', {\n configurable: true,\n writable: true,\n value: value\n });\n };\n },\n createSearchParamsCreate = function (polluteSearchParams) {\n return function (obj, sp) {\n dP(\n obj, '_searchParams', {\n configurable: true,\n writable: true,\n value: polluteSearchParams(sp, obj)\n }\n );\n return sp;\n };\n },\n updateSearchParams = function (sp) {\n var append = sp.append;\n sp.append = URLSearchParamsProto.append;\n URLSearchParams.call(sp, sp._usp.search.slice(1));\n sp.append = append;\n },\n verifySearchParams = function (obj, Class) {\n if (!(obj instanceof Class)) throw new TypeError(\n \"'searchParams' accessed on an object that \" +\n \"does not implement interface \" + Class.name\n );\n },\n upgradeClass = function (Class) {\n var\n ClassProto = Class.prototype,\n searchParams = gOPD(ClassProto, 'searchParams'),\n href = gOPD(ClassProto, 'href'),\n search = gOPD(ClassProto, 'search'),\n createSearchParams\n ;\n if (!searchParams && search && search.set) {\n createSearchParams = createSearchParamsCreate(\n createSearchParamsPollute(search)\n );\n Object.defineProperties(\n ClassProto,\n {\n href: {\n get: function () {\n return href.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n href.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n search: {\n get: function () {\n return search.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n search.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n searchParams: {\n get: function () {\n verifySearchParams(this, Class);\n return this._searchParams || createSearchParams(\n this,\n new URLSearchParams(this.search.slice(1))\n );\n },\n set: function (sp) {\n verifySearchParams(this, Class);\n createSearchParams(this, sp);\n }\n }\n }\n );\n }\n }\n ;\n try {\n upgradeClass(HTMLAnchorElement);\n if (/^function|object$/.test(typeof URL) && URL.prototype)\n upgradeClass(URL);\n } catch (meh) {}\n }(Object));\n\n}(self.URLSearchParams.prototype, Object));\nexport default self.URLSearchParams;\n"],"names":["this"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/dist/squatch.js CHANGED
@@ -266,39 +266,6 @@ class WidgetApi {
266
266
  this.domain = clean.domain;
267
267
  this.npmCdn = clean.npmCdn;
268
268
  }
269
- /**
270
- * Creates/upserts an anonymous user.
271
- *
272
- * @param {Object} params Parameters for request
273
- * @param {WidgetType} params.widgetType The content of the widget.
274
- * @param {EngagementMedium} params.engagementMedium How to display the widget.
275
- * @param {CookieUser} params.user An optional user object
276
- * @param {string} params.jwt the JSON Web Token (JWT) that is used to
277
- * validate the data (can be disabled)
278
- *
279
- * @return {Promise} json object if true, with the widget template, jsOptions and user details.
280
- */
281
-
282
-
283
- cookieUser(params) {
284
- // validateInput(params, CookieUserSchema);
285
- const {
286
- widgetType,
287
- engagementMedium = "POPUP",
288
- jwt,
289
- user
290
- } = params;
291
- const tenantAlias = encodeURIComponent(this.tenantAlias);
292
-
293
- const optionalParams = _buildParams({
294
- widgetType,
295
- engagementMedium
296
- });
297
-
298
- const path = `/api/v1/${tenantAlias}/widget/user/cookie_user${optionalParams}`;
299
- const url = this.domain + path;
300
- return doPut(url, JSON.stringify(user ? user : {}), jwt);
301
- }
302
269
  /**
303
270
  * Creates/upserts user.
304
271
  *
@@ -365,7 +332,8 @@ class WidgetApi {
365
332
  } = clean;
366
333
  const tenantAlias = encodeURIComponent(this.tenantAlias);
367
334
  const accountId = user ? encodeURIComponent(user.accountId) : null;
368
- const userId = user ? encodeURIComponent(user.id) : null;
335
+ const userId = user ? encodeURIComponent(user.id) : null; // TODO: Add locale as parameter to renderWidget
336
+
369
337
  const query = `
370
338
  query renderWidget ($user: UserIdInput, $engagementMedium: UserEngagementMedium, $widgetType: WidgetType) {
371
339
  renderWidget(user: $user, engagementMedium: $engagementMedium, widgetType: $widgetType) {
@@ -492,6 +460,7 @@ class AnalyticsApi {
492
460
  const userId = encodeURIComponent(params.externalUserId);
493
461
  const engagementMedium = encodeURIComponent(params.engagementMedium);
494
462
  const programId = params.programId ? `&programId=${encodeURIComponent(params.programId)}` : ``;
463
+ if (!userId || !accountId) return;
495
464
  const path = `/a/${tenantAlias}/widgets/analytics/loaded?externalAccountId=${accountId}&externalUserId=${userId}&engagementMedium=${engagementMedium}${programId}`;
496
465
  const url = this.domain + path;
497
466
  return doPost(url, JSON.stringify({}));
@@ -544,6 +513,8 @@ class Widget {
544
513
  }
545
514
 
546
515
  _loadEvent(sqh) {
516
+ var _this$analyticsApi$pu;
517
+
547
518
  if (!sqh) return; // No non-truthy value
548
519
 
549
520
  if (!isObject$1(sqh)) {
@@ -577,7 +548,7 @@ class Widget {
577
548
  };
578
549
  }
579
550
 
580
- this.analyticsApi.pushAnalyticsLoadEvent(params).then(response => {
551
+ (_this$analyticsApi$pu = this.analyticsApi.pushAnalyticsLoadEvent(params)) == null ? void 0 : _this$analyticsApi$pu.then(response => {
581
552
  _log$7(`${params.engagementMedium} loaded event recorded.`);
582
553
  }).catch(ex => {
583
554
  _log$7(new Error(`pushAnalyticsLoadEvent() ${ex}`));
@@ -709,18 +680,6 @@ class Widget {
709
680
  widgetType: this.type,
710
681
  jwt
711
682
  });
712
- } else if (this.context.type === "cookie") {
713
- let userObj = {
714
- email: email || null,
715
- firstName: firstName || null,
716
- lastName: lastName || null
717
- };
718
- response = this.widgetApi.cookieUser({
719
- user: userObj,
720
- engagementMedium,
721
- widgetType: this.type,
722
- jwt
723
- });
724
683
  } else if (this.context.type === "passwordless") {
725
684
  response = this.widgetApi.render({
726
685
  user: undefined,
@@ -1265,41 +1224,6 @@ class Widgets {
1265
1224
 
1266
1225
  EventBus__namespace.addEventListener("submit_email", Widgets._cb);
1267
1226
  }
1268
- /**
1269
- * This function calls the {@link WidgetApi.cookieUser} method, and it renders
1270
- * the widget if it is successful. Otherwise it shows the "error" widget.
1271
- *
1272
- * @param {Object} config Config details
1273
- * @param {WidgetType} config.widgetType The content of the widget.
1274
- * @param {EngagementMedium} config.engagementMedium How to display the widget.
1275
- * @param {User} config.user An optional user to include
1276
- * @param {string} config.jwt the JSON Web Token (JWT) that is used to
1277
- * validate the data (can be disabled)
1278
- *
1279
- * @return {Promise<WidgetResult>} json object if true, with a Widget and user details.
1280
- */
1281
-
1282
-
1283
- async createCookieUser(config) {
1284
- try {
1285
- const response = await this.api.cookieUser(config);
1286
- return {
1287
- widget: this._renderWidget(response, config, {
1288
- type: "cookie",
1289
- engagementMedium: config.engagementMedium
1290
- }),
1291
- user: response.user
1292
- };
1293
- } catch (err) {
1294
- _log$3(err);
1295
-
1296
- if (err.apiErrorCode) {
1297
- this._renderErrorWidget(err, config.engagementMedium);
1298
- }
1299
-
1300
- throw err;
1301
- }
1302
- }
1303
1227
  /**
1304
1228
  * This function calls the {@link WidgetApi.upsertUser} method, and it renders
1305
1229
  * the widget if it is successful. Otherwise it shows the "error" widget.
@@ -1369,20 +1293,14 @@ class Widgets {
1369
1293
  // TODO: Flagging default behaviour change
1370
1294
  // cookieUser returns a deprecated error from the API on the latest squatchJs version
1371
1295
  // More suitable for no auth render?
1372
- const queryString = window.location.search;
1373
- const urlParams = new URLSearchParams(queryString);
1374
- const refParam = urlParams.get("_saasquatch") || "";
1375
-
1376
- if (!config.showOnReferral || refParam) {
1377
- const response = await this.api.render(clean);
1378
- return {
1379
- widget: this._renderWidget(response, clean, {
1380
- type: "passwordless",
1381
- engagementMedium: clean.engagementMedium
1382
- }),
1383
- user: response.user
1384
- };
1385
- }
1296
+ const response = await this.api.render(clean);
1297
+ return {
1298
+ widget: this._renderWidget(response, clean, {
1299
+ type: "passwordless",
1300
+ engagementMedium: clean.engagementMedium
1301
+ }),
1302
+ user: response.user
1303
+ };
1386
1304
  } catch (err) {
1387
1305
  if (err.apiErrorCode) {
1388
1306
  this._renderErrorWidget(err, clean.engagementMedium);
@@ -1453,7 +1371,6 @@ class Widgets {
1453
1371
  * @param {Object} config Config details
1454
1372
  * @param {string} config.widgetType The widget type (REFERRER_WIDGET, CONVERSION_WIDGET)
1455
1373
  * @param {string} config.engagementMedium (POPUP, EMBED)
1456
- * @param {string} config.showOnReferral Whether to show
1457
1374
  * @returns {Widget} widget (PopupWidget, EmbedWidget, or CtaWidget)
1458
1375
  */
1459
1376
 
@@ -1463,7 +1380,7 @@ class Widgets {
1463
1380
 
1464
1381
  if (!response) throw new Error("Unable to get a response");
1465
1382
  let widget;
1466
- let displayOnLoad = !!config.showOnReferral;
1383
+ let displayOnLoad = false;
1467
1384
  let displayCTA = false;
1468
1385
  const opts = response.jsOptions || "";
1469
1386
  const params = {
@@ -1704,7 +1621,8 @@ function asyncLoad() {
1704
1621
 
1705
1622
  if (loaded && cached) {
1706
1623
  const ready = cached.ready || [];
1707
- ready.forEach(cb => setTimeout(() => cb(), 0)); // @ts-ignore -- intetionally deletes `_squatch` to cleanup initialization
1624
+ ready.forEach(cb => setTimeout(() => cb(), 0));
1625
+ setTimeout(() => window.squatch.auto(), 0); // @ts-ignore -- intetionally deletes `_squatch` to cleanup initialization
1708
1626
 
1709
1627
  window._squatch = undefined;
1710
1628
 
@@ -2270,6 +2188,7 @@ function help() {
2270
2188
  console.log(`Having trouble using Squatch.js? Go to https://docs.referralsaasquatch.com/developer/ for tutorials, references and error codes.`);
2271
2189
  }
2272
2190
 
2191
+ // @ts-check
2273
2192
  // debug.disable("squatch-js*");
2274
2193
 
2275
2194
  /** @hidden */
@@ -2343,9 +2262,7 @@ function auto(configIn) {
2343
2262
  widgetConfig
2344
2263
  } = configs;
2345
2264
  init(squatchConfig);
2346
- return (_widgets3 = widgets()) == null ? void 0 : _widgets3.render(_extends({
2347
- showOnReferral: true
2348
- }, widgetConfig));
2265
+ return (_widgets3 = widgets()) == null ? void 0 : _widgets3.render(widgetConfig);
2349
2266
  }
2350
2267
  }
2351
2268
  /**