@searchspring/snap-tracker 0.34.7 → 0.36.0

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.
@@ -9,6 +9,7 @@ export declare class Tracker {
9
9
  private config;
10
10
  private targeters;
11
11
  constructor(globals: TrackerGlobals, config?: TrackerConfig);
12
+ getGlobals(): TrackerGlobals;
12
13
  getContext(): BeaconContext;
13
14
  retarget(): void;
14
15
  track: TrackMethods;
@@ -1 +1 @@
1
- {"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAQb,aAAa,EAEb,MAAM,SAAS,CAAC;AAqBjB,qBAAa,OAAO;IACnB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAqB;IAEtC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa;IA+IpD,UAAU,IAAI,aAAa;IAI3B,QAAQ,IAAI,IAAI;IAMvB,KAAK,EAAE,YAAY,CA6SjB;IAEF,aAAa,QAAS,MAAM,aAAa,SAAS,GAAG,UAInD;IAEF,SAAS,QAAO,MAAM,GAAG,SAAS,GAAG,IAAI,CAiBvC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAoBnC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAOnC;IAEF,aAAa,QAAO,IAAI,CAuCtB;IAEF,OAAO;;uBAEI,MAAM,EAAE;yBAOJ,MAAM,EAAE,KAAG,IAAI;yBAYf,MAAM,EAAE,KAAG,IAAI;4BAaZ,MAAM,EAAE,KAAG,IAAI;;;;uBAqBtB,MAAM,EAAE;;MAQjB;IAEF,UAAU,gDAAmC,IAAI,CAuB/C;CACF"}
1
+ {"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAQb,aAAa,EAEb,MAAM,SAAS,CAAC;AAsBjB,qBAAa,OAAO;IACnB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAqB;IAEtC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa;IA+IpD,UAAU,IAAI,cAAc;IAI5B,UAAU,IAAI,aAAa;IAI3B,QAAQ,IAAI,IAAI;IAMvB,KAAK,EAAE,YAAY,CA6SjB;IAEF,aAAa,QAAS,MAAM,aAAa,SAAS,GAAG,UAInD;IAEF,SAAS,QAAO,MAAM,GAAG,SAAS,GAAG,IAAI,CAmBvC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAoBnC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAOnC;IAEF,aAAa,QAAO,IAAI,CAuCtB;IAEF,OAAO;;uBAEI,MAAM,EAAE;yBAOJ,MAAM,EAAE,KAAG,IAAI;yBAYf,MAAM,EAAE,KAAG,IAAI;4BAaZ,MAAM,EAAE,KAAG,IAAI;;;;uBAqBtB,MAAM,EAAE;;MAQjB;IAEF,UAAU,gDAAmC,IAAI,CAuB/C;CACF"}
@@ -34,6 +34,7 @@ var PixelEvent_1 = require("./PixelEvent");
34
34
  var BeaconEvent_1 = require("./BeaconEvent");
35
35
  var types_1 = require("./types");
36
36
  var BATCH_TIMEOUT = 150;
37
+ var LEGACY_USERID_COOKIE_NAME = '_isuid';
37
38
  var USERID_COOKIE_NAME = 'ssUserId';
38
39
  var SHOPPERID_COOKIE_NAME = 'ssShopperId';
39
40
  var COOKIE_EXPIRATION = 31536000000; // 1 year
@@ -331,17 +332,19 @@ var Tracker = /** @class */ (function () {
331
332
  this.getUserId = function () {
332
333
  var userId;
333
334
  try {
334
- if ((0, snap_toolbox_1.getFlags)().storage())
335
- userId = window.localStorage.getItem(USERID_COOKIE_NAME);
335
+ // use cookies if available, fallback to localstorage
336
336
  if ((0, snap_toolbox_1.getFlags)().cookies()) {
337
- userId = userId || snap_toolbox_1.cookies.get(USERID_COOKIE_NAME) || (0, uuid_1.v4)();
337
+ userId = snap_toolbox_1.cookies.get(LEGACY_USERID_COOKIE_NAME) || snap_toolbox_1.cookies.get(USERID_COOKIE_NAME) || (0, uuid_1.v4)();
338
338
  snap_toolbox_1.cookies.set(USERID_COOKIE_NAME, userId, COOKIE_SAMESITE, COOKIE_EXPIRATION);
339
+ snap_toolbox_1.cookies.set(LEGACY_USERID_COOKIE_NAME, userId, COOKIE_SAMESITE, COOKIE_EXPIRATION);
339
340
  }
340
- else if (!userId && (0, snap_toolbox_1.getFlags)().storage()) {
341
- // if cookies are disabled, use localStorage instead
342
- userId = (0, uuid_1.v4)();
341
+ else if ((0, snap_toolbox_1.getFlags)().storage()) {
342
+ userId = window.localStorage.getItem(USERID_COOKIE_NAME) || (0, uuid_1.v4)();
343
343
  window.localStorage.setItem(USERID_COOKIE_NAME, userId);
344
344
  }
345
+ else {
346
+ throw 'unsupported features';
347
+ }
345
348
  }
346
349
  catch (e) {
347
350
  console.error('Failed to persist user id to cookie or local storage:', e);
@@ -620,6 +623,9 @@ var Tracker = /** @class */ (function () {
620
623
  });
621
624
  this.sendEvents();
622
625
  }
626
+ Tracker.prototype.getGlobals = function () {
627
+ return JSON.parse(JSON.stringify(this.globals));
628
+ };
623
629
  Tracker.prototype.getContext = function () {
624
630
  return JSON.parse(JSON.stringify(this.context));
625
631
  };
@@ -9,6 +9,7 @@ export declare class Tracker {
9
9
  private config;
10
10
  private targeters;
11
11
  constructor(globals: TrackerGlobals, config?: TrackerConfig);
12
+ getGlobals(): TrackerGlobals;
12
13
  getContext(): BeaconContext;
13
14
  retarget(): void;
14
15
  track: TrackMethods;
@@ -1 +1 @@
1
- {"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAQb,aAAa,EAEb,MAAM,SAAS,CAAC;AAqBjB,qBAAa,OAAO;IACnB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAqB;IAEtC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa;IA+IpD,UAAU,IAAI,aAAa;IAI3B,QAAQ,IAAI,IAAI;IAMvB,KAAK,EAAE,YAAY,CA6SjB;IAEF,aAAa,QAAS,MAAM,aAAa,SAAS,GAAG,UAInD;IAEF,SAAS,QAAO,MAAM,GAAG,SAAS,GAAG,IAAI,CAiBvC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAoBnC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAOnC;IAEF,aAAa,QAAO,IAAI,CAuCtB;IAEF,OAAO;;uBAEI,MAAM,EAAE;yBAOJ,MAAM,EAAE,KAAG,IAAI;yBAYf,MAAM,EAAE,KAAG,IAAI;4BAaZ,MAAM,EAAE,KAAG,IAAI;;;;uBAqBtB,MAAM,EAAE;;MAQjB;IAEF,UAAU,gDAAmC,IAAI,CAuB/C;CACF"}
1
+ {"version":3,"file":"Tracker.d.ts","sourceRoot":"","sources":["../../src/Tracker.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,cAAc,EACd,YAAY,EAIZ,aAAa,EAQb,aAAa,EAEb,MAAM,SAAS,CAAC;AAsBjB,qBAAa,OAAO;IACnB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAqB;IAEtC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa;IA+IpD,UAAU,IAAI,cAAc;IAI5B,UAAU,IAAI,aAAa;IAI3B,QAAQ,IAAI,IAAI;IAMvB,KAAK,EAAE,YAAY,CA6SjB;IAEF,aAAa,QAAS,MAAM,aAAa,SAAS,GAAG,UAInD;IAEF,SAAS,QAAO,MAAM,GAAG,SAAS,GAAG,IAAI,CAmBvC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAoBnC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAOnC;IAEF,aAAa,QAAO,IAAI,CAuCtB;IAEF,OAAO;;uBAEI,MAAM,EAAE;yBAOJ,MAAM,EAAE,KAAG,IAAI;yBAYf,MAAM,EAAE,KAAG,IAAI;4BAaZ,MAAM,EAAE,KAAG,IAAI;;;;uBAqBtB,MAAM,EAAE;;MAQjB;IAEF,UAAU,gDAAmC,IAAI,CAuB/C;CACF"}
@@ -8,6 +8,7 @@ import { PixelEvent } from './PixelEvent';
8
8
  import { BeaconEvent } from './BeaconEvent';
9
9
  import { BeaconType, BeaconCategory, } from './types';
10
10
  const BATCH_TIMEOUT = 150;
11
+ const LEGACY_USERID_COOKIE_NAME = '_isuid';
11
12
  const USERID_COOKIE_NAME = 'ssUserId';
12
13
  const SHOPPERID_COOKIE_NAME = 'ssShopperId';
13
14
  const COOKIE_EXPIRATION = 31536000000; // 1 year
@@ -305,17 +306,19 @@ export class Tracker {
305
306
  this.getUserId = () => {
306
307
  let userId;
307
308
  try {
308
- if (getFlags().storage())
309
- userId = window.localStorage.getItem(USERID_COOKIE_NAME);
309
+ // use cookies if available, fallback to localstorage
310
310
  if (getFlags().cookies()) {
311
- userId = userId || cookies.get(USERID_COOKIE_NAME) || uuidv4();
311
+ userId = cookies.get(LEGACY_USERID_COOKIE_NAME) || cookies.get(USERID_COOKIE_NAME) || uuidv4();
312
312
  cookies.set(USERID_COOKIE_NAME, userId, COOKIE_SAMESITE, COOKIE_EXPIRATION);
313
+ cookies.set(LEGACY_USERID_COOKIE_NAME, userId, COOKIE_SAMESITE, COOKIE_EXPIRATION);
313
314
  }
314
- else if (!userId && getFlags().storage()) {
315
- // if cookies are disabled, use localStorage instead
316
- userId = uuidv4();
315
+ else if (getFlags().storage()) {
316
+ userId = window.localStorage.getItem(USERID_COOKIE_NAME) || uuidv4();
317
317
  window.localStorage.setItem(USERID_COOKIE_NAME, userId);
318
318
  }
319
+ else {
320
+ throw 'unsupported features';
321
+ }
319
322
  }
320
323
  catch (e) {
321
324
  console.error('Failed to persist user id to cookie or local storage:', e);
@@ -593,6 +596,9 @@ export class Tracker {
593
596
  });
594
597
  this.sendEvents();
595
598
  }
599
+ getGlobals() {
600
+ return JSON.parse(JSON.stringify(this.globals));
601
+ }
596
602
  getContext() {
597
603
  return JSON.parse(JSON.stringify(this.context));
598
604
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-tracker",
3
- "version": "0.34.7",
3
+ "version": "0.36.0",
4
4
  "description": "Snap Tracker",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,8 +20,8 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-store-mobx": "^0.34.7",
24
- "@searchspring/snap-toolbox": "^0.34.7",
23
+ "@searchspring/snap-store-mobx": "^0.36.0",
24
+ "@searchspring/snap-toolbox": "^0.36.0",
25
25
  "@types/uuid": "8.3.4",
26
26
  "deepmerge": "4.2.2",
27
27
  "uuid": "8.3.2"
@@ -30,5 +30,5 @@
30
30
  "files": [
31
31
  "dist/**/*"
32
32
  ],
33
- "gitHead": "943f6a43f44b64e6ca91cdd095575a0cae21d94e"
33
+ "gitHead": "4405a6004acc3a7311198abb834d78caae7df8de"
34
34
  }