@pendo/agent 2.335.3 → 2.336.1

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/dom.esm.js CHANGED
@@ -2108,8 +2108,16 @@ var _ = /*@__PURE__*/getDefaultExportFromCjs(underscoreExports);
2108
2108
  /*
2109
2109
  * @license MIT - https://github.com/taylorhakes/promise-polyfill
2110
2110
  */
2111
- // Modified to not affect global environment
2112
- var Promise$1 = window.Promise;
2111
+ // Modified to not affect global environment: the `var` keeps the binding module-local
2112
+ // so the polyfill never assigns to the real global `Promise`.
2113
+ //
2114
+ // Main-thread only. Reading `window` here is safe because rollup's `inject` is skipped
2115
+ // for the nested worker build (see `skipPlugins` on webWorkerLoader in
2116
+ // rollup/web-sdk.config.mjs): a worker realm has a native Promise and no `window`, so
2117
+ // injecting this polyfill there was both unreachable and fatal — it threw
2118
+ // `ReferenceError: window is not defined` at worker startup and stopped session replay
2119
+ // with a WORKER_ERROR. APP-163474.
2120
+ var Promise$1;
2113
2121
 
2114
2122
  Promise$1 = (function (global, factory) {
2115
2123
  var nativePromise = global.Promise;
@@ -7523,7 +7531,7 @@ function applyMatrix2dRect(matrix2d, rect) {
7523
7531
  return transformedRect;
7524
7532
  }
7525
7533
 
7526
- var VERSION = '2.335.3_';
7534
+ var VERSION = '2.336.1_';
7527
7535
 
7528
7536
  var decodeURIComponent = _.isFunction(window.decodeURIComponent) ? window.decodeURIComponent : _.identity;
7529
7537
 
@@ -4029,8 +4029,8 @@ let SERVER = '';
4029
4029
  let ASSET_HOST = '';
4030
4030
  let ASSET_PATH = '';
4031
4031
  let DESIGNER_SERVER = '';
4032
- let VERSION = '2.335.3_';
4033
- let PACKAGE_VERSION = '2.335.3';
4032
+ let VERSION = '2.336.1_';
4033
+ let PACKAGE_VERSION = '2.336.1';
4034
4034
  let LOADER = 'xhr';
4035
4035
  /* eslint-enable web-sdk-eslint-rules/no-gulp-env-references */
4036
4036
  /**
@@ -4922,8 +4922,16 @@ var agentStorage = (function () {
4922
4922
  /*
4923
4923
  * @license MIT - https://github.com/taylorhakes/promise-polyfill
4924
4924
  */
4925
- // Modified to not affect global environment
4926
- var Promise$1 = window.Promise;
4925
+ // Modified to not affect global environment: the `var` keeps the binding module-local
4926
+ // so the polyfill never assigns to the real global `Promise`.
4927
+ //
4928
+ // Main-thread only. Reading `window` here is safe because rollup's `inject` is skipped
4929
+ // for the nested worker build (see `skipPlugins` on webWorkerLoader in
4930
+ // rollup/web-sdk.config.mjs): a worker realm has a native Promise and no `window`, so
4931
+ // injecting this polyfill there was both unreachable and fatal — it threw
4932
+ // `ReferenceError: window is not defined` at worker startup and stopped session replay
4933
+ // with a WORKER_ERROR. APP-163474.
4934
+ var Promise$1;
4927
4935
 
4928
4936
  Promise$1 = (function (global, factory) {
4929
4937
  var nativePromise = global.Promise;
@@ -20275,11 +20283,17 @@ var GuideStateModule = (function () {
20275
20283
  var stepId = stepState.guideStepId;
20276
20284
  if (stepState.visitorId && stepState.visitorId !== context.getters.visitorId())
20277
20285
  return;
20278
- if (!mostRecentLastGuideStepSeen || stepState.time > mostRecentLastGuideStepSeen.time) {
20286
+ var guide = guides[guideId];
20287
+ // Only states updateLastGuideStepSeen will actually apply can win here -- it ignores
20288
+ // unknown guides and embedded ones (which always carry a channel). Letting one win
20289
+ // and then get dropped strands lastGuideStepSeen on the stale payload value, e.g.
20290
+ // when an embedded guideSeen lands a few millis after a guideAdvanced.
20291
+ var canUpdateLastGuideStepSeen = guide && !guide.channel;
20292
+ if (canUpdateLastGuideStepSeen &&
20293
+ (!mostRecentLastGuideStepSeen || stepState.time > mostRecentLastGuideStepSeen.time)) {
20279
20294
  mostRecentLastGuideStepSeen = stepState;
20280
20295
  }
20281
20296
  // checking / updating seenState in step list
20282
- var guide = guides[guideId];
20283
20297
  if (guide) {
20284
20298
  var step = _.findWhere(guide.steps, { id: stepId });
20285
20299
  if (step) {
@@ -21281,7 +21295,7 @@ function resourceCenterProc(resourceCenter) {
21281
21295
  }
21282
21296
  }
21283
21297
  // Place Element Activated Notification Badge
21284
- if (resourceCenter.launchMethod === 'dom') {
21298
+ if (resourceCenter.launchMethod === 'dom' && resourceCenter.canShowOnDevice()) {
21285
21299
  BuildingBlockResourceCenter.updateNotificationBubbles();
21286
21300
  BuildingBlockResourceCenter.adjustNotificationBubbleForResize();
21287
21301
  }
@@ -23060,6 +23074,9 @@ class GuideCache {
23060
23074
  cachedStep.seenState = lastGuideStepSeen.state;
23061
23075
  cachedStep.seenReason = lastGuideStepSeen.seenReason;
23062
23076
  cachedStep.lastSeenAt = lastGuideStepSeen.time;
23077
+ if (lastGuideStepSeen.destinationStepId != null) {
23078
+ cachedStep.destinationStepId = lastGuideStepSeen.destinationStepId;
23079
+ }
23063
23080
  if (lastGuideStepSeen.dismissCount != null) {
23064
23081
  cachedStep.dismissCount = lastGuideStepSeen.dismissCount;
23065
23082
  }
@@ -23860,7 +23877,7 @@ var onGuideAdvanced = function (evt, step, isIntermediateStep) {
23860
23877
  log.info('Guide advance canceled during runtime in step: ' + step.id);
23861
23878
  return;
23862
23879
  }
23863
- var isGoToStep = evt && evt.action && evt.action === 'goToStep' || false;
23880
+ var isGoToStep = evt && (evt.action === 'goToStep' || evt.action === 'submitPollAndGoToStep') || false;
23864
23881
  var currentGuide = findGuideById(step.guideId);
23865
23882
  var language = currentGuide && currentGuide.language;
23866
23883
  var currentIndex = currentGuide && currentGuide.steps && _.findIndex(currentGuide.steps, (s) => step.id == s.id);
@@ -23948,7 +23965,7 @@ var onGuidePrevious = function (evt, step) {
23948
23965
  }
23949
23966
  var guideId = step.guideId;
23950
23967
  var currentGuide = findGuideById(guideId);
23951
- var isGoToStep = evt && evt.action && evt.action === 'goToStep' || false;
23968
+ var isGoToStep = evt && (evt.action === 'goToStep' || evt.action === 'submitPollAndGoToStep') || false;
23952
23969
  var currentIndex = _.indexOf(currentGuide.steps, step);
23953
23970
  if (currentIndex === 0) {
23954
23971
  return;
@@ -42815,8 +42832,16 @@ var setTimeout$1 = setTimeout;
42815
42832
  /*
42816
42833
  * @license MIT - https://github.com/taylorhakes/promise-polyfill
42817
42834
  */
42818
- // Modified to not affect global environment
42819
- var Promise$1 = window.Promise;
42835
+ // Modified to not affect global environment: the `var` keeps the binding module-local
42836
+ // so the polyfill never assigns to the real global `Promise`.
42837
+ //
42838
+ // Main-thread only. Reading `window` here is safe because rollup's `inject` is skipped
42839
+ // for the nested worker build (see `skipPlugins` on webWorkerLoader in
42840
+ // rollup/web-sdk.config.mjs): a worker realm has a native Promise and no `window`, so
42841
+ // injecting this polyfill there was both unreachable and fatal — it threw
42842
+ // `ReferenceError: window is not defined` at worker startup and stopped session replay
42843
+ // with a WORKER_ERROR. APP-163474.
42844
+ var Promise$1;
42820
42845
 
42821
42846
  Promise$1 = (function (global, factory) {
42822
42847
  var nativePromise = global.Promise;
@@ -51293,394 +51318,6 @@ var WorkerFactory = /*#__PURE__*/createInlineWorkerFactory(/* rollup-plugin-web-
51293
51318
  ((function (exports) {
51294
51319
  '__worker_loader_strict__';
51295
51320
 
51296
- // Resolve the global object without relying on a bare `window` identifier.
51297
- // `window` is only a bound global in a normal browser realm; when the agent is
51298
- // loaded via the npm `loadAsModule` path (or inside a Web Worker) the module is
51299
- // evaluated in a realm where `window` is undeclared, so referencing it bare
51300
- // throws a ReferenceError at module-load. `globalThis` resolves in every realm.
51301
- function getGlobalScope() {
51302
- if (typeof globalThis !== 'undefined') {
51303
- return globalThis;
51304
- }
51305
- if (typeof self !== 'undefined') {
51306
- return self;
51307
- }
51308
- if (typeof window !== 'undefined') {
51309
- return window;
51310
- }
51311
- return {};
51312
- }
51313
-
51314
- var globalScope = getGlobalScope();
51315
-
51316
- var setTimeout = safeBind(globalScope.setTimeout, globalScope);
51317
-
51318
- function safeBind(fn, scope) {
51319
- if (typeof fn.bind === 'function') {
51320
- return fn.bind(scope);
51321
- }
51322
- return fn;
51323
- }
51324
-
51325
- setTimeout = (function(global) {
51326
- function getZoneSafeMethod(method) {
51327
- var zoneSymbol = '__symbol__';
51328
- /* global Zone */
51329
- if (typeof Zone !== 'undefined' && Zone[zoneSymbol] instanceof Function) {
51330
- var fn = global[Zone[zoneSymbol](method)];
51331
- if (fn instanceof Function) {
51332
- return fn;
51333
- }
51334
- }
51335
- return safeBind(global[method], global);
51336
- }
51337
-
51338
- return getZoneSafeMethod('setTimeout');
51339
- })(globalScope);
51340
-
51341
- var setTimeout$1 = setTimeout;
51342
-
51343
- /*
51344
- * @license MIT - https://github.com/taylorhakes/promise-polyfill
51345
- */
51346
- // Modified to not affect global environment
51347
- var Promise$1 = window.Promise;
51348
-
51349
- Promise$1 = (function (global, factory) {
51350
- var nativePromise = global.Promise;
51351
- if (typeof nativePromise !== 'function' || !/native/.test(nativePromise)) {
51352
- return factory();
51353
- }
51354
-
51355
- return nativePromise;
51356
- }(window, (function () {
51357
- /**
51358
- * @this {Promise}
51359
- */
51360
- function finallyConstructor(callback) {
51361
- var constructor = this.constructor;
51362
- return this.then(
51363
- function(value) {
51364
- // @ts-ignore
51365
- return constructor.resolve(callback()).then(function() {
51366
- return value;
51367
- });
51368
- },
51369
- function(reason) {
51370
- // @ts-ignore
51371
- return constructor.resolve(callback()).then(function() {
51372
- // @ts-ignore
51373
- return constructor.reject(reason);
51374
- });
51375
- }
51376
- );
51377
- }
51378
-
51379
- function allSettled(arr) {
51380
- var P = this;
51381
- return new P(function(resolve, reject) {
51382
- if (!(arr && typeof arr.length !== 'undefined')) {
51383
- return reject(
51384
- new TypeError(
51385
- typeof arr +
51386
- ' ' +
51387
- arr +
51388
- ' is not iterable(cannot read property Symbol(Symbol.iterator))'
51389
- )
51390
- );
51391
- }
51392
- var args = Array.prototype.slice.call(arr);
51393
- if (args.length === 0) return resolve([]);
51394
- var remaining = args.length;
51395
-
51396
- function res(i, val) {
51397
- if (val && (typeof val === 'object' || typeof val === 'function')) {
51398
- var then = val.then;
51399
- if (typeof then === 'function') {
51400
- then.call(
51401
- val,
51402
- function(val) {
51403
- res(i, val);
51404
- },
51405
- function(e) {
51406
- args[i] = { status: 'rejected', reason: e };
51407
- if (--remaining === 0) {
51408
- resolve(args);
51409
- }
51410
- }
51411
- );
51412
- return;
51413
- }
51414
- }
51415
- args[i] = { status: 'fulfilled', value: val };
51416
- if (--remaining === 0) {
51417
- resolve(args);
51418
- }
51419
- }
51420
-
51421
- for (var i = 0; i < args.length; i++) {
51422
- res(i, args[i]);
51423
- }
51424
- });
51425
- }
51426
-
51427
- // Store setTimeout reference so promise-polyfill will be unaffected by
51428
- // other code modifying setTimeout (like sinon.useFakeTimers())
51429
- var setTimeoutFunc = setTimeout$1;
51430
-
51431
- function isArray(x) {
51432
- return Boolean(x && typeof x.length !== 'undefined');
51433
- }
51434
-
51435
- function noop() {}
51436
-
51437
- // Polyfill for Function.prototype.bind
51438
- function bind(fn, thisArg) {
51439
- return function() {
51440
- fn.apply(thisArg, arguments);
51441
- };
51442
- }
51443
-
51444
- /**
51445
- * @constructor
51446
- * @param {Function} fn
51447
- */
51448
- function Promise(fn) {
51449
- if (!(this instanceof Promise))
51450
- throw new TypeError('Promises must be constructed via new');
51451
- if (typeof fn !== 'function') throw new TypeError('not a function');
51452
- /** @type {!number} */
51453
- this._state = 0;
51454
- /** @type {!boolean} */
51455
- this._handled = false;
51456
- /** @type {Promise|undefined} */
51457
- this._value = undefined;
51458
- /** @type {!Array<!Function>} */
51459
- this._deferreds = [];
51460
-
51461
- doResolve(fn, this);
51462
- }
51463
-
51464
- function handle(self, deferred) {
51465
- while (self._state === 3) {
51466
- self = self._value;
51467
- }
51468
- if (self._state === 0) {
51469
- self._deferreds.push(deferred);
51470
- return;
51471
- }
51472
- self._handled = true;
51473
- Promise._immediateFn(function() {
51474
- var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
51475
- if (cb === null) {
51476
- (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
51477
- return;
51478
- }
51479
- var ret;
51480
- try {
51481
- ret = cb(self._value);
51482
- } catch (e) {
51483
- reject(deferred.promise, e);
51484
- return;
51485
- }
51486
- resolve(deferred.promise, ret);
51487
- });
51488
- }
51489
-
51490
- function resolve(self, newValue) {
51491
- try {
51492
- // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
51493
- if (newValue === self)
51494
- throw new TypeError('A promise cannot be resolved with itself.');
51495
- if (
51496
- newValue &&
51497
- (typeof newValue === 'object' || typeof newValue === 'function')
51498
- ) {
51499
- var then = newValue.then;
51500
- if (newValue instanceof Promise) {
51501
- self._state = 3;
51502
- self._value = newValue;
51503
- finale(self);
51504
- return;
51505
- } else if (typeof then === 'function') {
51506
- doResolve(bind(then, newValue), self);
51507
- return;
51508
- }
51509
- }
51510
- self._state = 1;
51511
- self._value = newValue;
51512
- finale(self);
51513
- } catch (e) {
51514
- reject(self, e);
51515
- }
51516
- }
51517
-
51518
- function reject(self, newValue) {
51519
- self._state = 2;
51520
- self._value = newValue;
51521
- finale(self);
51522
- }
51523
-
51524
- function finale(self) {
51525
- if (self._state === 2 && self._deferreds.length === 0) {
51526
- Promise._immediateFn(function() {
51527
- if (!self._handled) {
51528
- Promise._unhandledRejectionFn(self._value);
51529
- }
51530
- });
51531
- }
51532
-
51533
- for (var i = 0, len = self._deferreds.length; i < len; i++) {
51534
- handle(self, self._deferreds[i]);
51535
- }
51536
- self._deferreds = null;
51537
- }
51538
-
51539
- /**
51540
- * @constructor
51541
- */
51542
- function Handler(onFulfilled, onRejected, promise) {
51543
- this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
51544
- this.onRejected = typeof onRejected === 'function' ? onRejected : null;
51545
- this.promise = promise;
51546
- }
51547
-
51548
- /**
51549
- * Take a potentially misbehaving resolver function and make sure
51550
- * onFulfilled and onRejected are only called once.
51551
- *
51552
- * Makes no guarantees about asynchrony.
51553
- */
51554
- function doResolve(fn, self) {
51555
- var done = false;
51556
- try {
51557
- fn(
51558
- function(value) {
51559
- if (done) return;
51560
- done = true;
51561
- resolve(self, value);
51562
- },
51563
- function(reason) {
51564
- if (done) return;
51565
- done = true;
51566
- reject(self, reason);
51567
- }
51568
- );
51569
- } catch (ex) {
51570
- if (done) return;
51571
- done = true;
51572
- reject(self, ex);
51573
- }
51574
- }
51575
-
51576
- Promise.prototype['catch'] = function(onRejected) {
51577
- return this.then(null, onRejected);
51578
- };
51579
-
51580
- Promise.prototype.then = function(onFulfilled, onRejected) {
51581
- // @ts-ignore
51582
- var prom = new this.constructor(noop);
51583
-
51584
- handle(this, new Handler(onFulfilled, onRejected, prom));
51585
- return prom;
51586
- };
51587
-
51588
- Promise.prototype['finally'] = finallyConstructor;
51589
-
51590
- Promise.all = function(arr) {
51591
- return new Promise(function(resolve, reject) {
51592
- if (!isArray(arr)) {
51593
- return reject(new TypeError('Promise.all accepts an array'));
51594
- }
51595
-
51596
- var args = Array.prototype.slice.call(arr);
51597
- if (args.length === 0) return resolve([]);
51598
- var remaining = args.length;
51599
-
51600
- function res(i, val) {
51601
- try {
51602
- if (val && (typeof val === 'object' || typeof val === 'function')) {
51603
- var then = val.then;
51604
- if (typeof then === 'function') {
51605
- then.call(
51606
- val,
51607
- function(val) {
51608
- res(i, val);
51609
- },
51610
- reject
51611
- );
51612
- return;
51613
- }
51614
- }
51615
- args[i] = val;
51616
- if (--remaining === 0) {
51617
- resolve(args);
51618
- }
51619
- } catch (ex) {
51620
- reject(ex);
51621
- }
51622
- }
51623
-
51624
- for (var i = 0; i < args.length; i++) {
51625
- res(i, args[i]);
51626
- }
51627
- });
51628
- };
51629
-
51630
- Promise.allSettled = allSettled;
51631
-
51632
- Promise.resolve = function(value) {
51633
- if (value && typeof value === 'object' && value.constructor === Promise) {
51634
- return value;
51635
- }
51636
-
51637
- return new Promise(function(resolve) {
51638
- resolve(value);
51639
- });
51640
- };
51641
-
51642
- Promise.reject = function(value) {
51643
- return new Promise(function(resolve, reject) {
51644
- reject(value);
51645
- });
51646
- };
51647
-
51648
- Promise.race = function(arr) {
51649
- return new Promise(function(resolve, reject) {
51650
- if (!isArray(arr)) {
51651
- return reject(new TypeError('Promise.race accepts an array'));
51652
- }
51653
-
51654
- for (var i = 0, len = arr.length; i < len; i++) {
51655
- Promise.resolve(arr[i]).then(resolve, reject);
51656
- }
51657
- });
51658
- };
51659
-
51660
- // Use polyfill for setImmediate for performance gains
51661
- Promise._immediateFn =
51662
- // @ts-ignore
51663
- (typeof setImmediate === 'function' &&
51664
- function(fn) {
51665
- // @ts-ignore
51666
- setImmediate(fn);
51667
- }) ||
51668
- function(fn) {
51669
- setTimeoutFunc(fn, 0);
51670
- };
51671
-
51672
- Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
51673
- if (typeof console !== 'undefined' && console) {
51674
- console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
51675
- }
51676
- };
51677
-
51678
- return Promise;
51679
-
51680
- })));
51681
-
51682
- var Promise$2 = Promise$1;
51683
-
51684
51321
  var b64 = (function() {
51685
51322
 
51686
51323
  var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'.split('');
@@ -51847,7 +51484,7 @@ var WorkerFactory = /*#__PURE__*/createInlineWorkerFactory(/* rollup-plugin-web-
51847
51484
  postMessage({ ready: true });
51848
51485
  // This unresolved promise keeps the lock held with the worker until the worker is
51849
51486
  // terminated at which point the lock is released.
51850
- return new Promise$2(() => { });
51487
+ return new Promise(() => { });
51851
51488
  });
51852
51489
  }
51853
51490
  return;