@newtalaria/browser 0.1.12 → 0.1.13
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/README.md +2 -1
- package/dist/client.d.ts +6 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/index.js +46 -2
- package/dist/index.js.map +2 -2
- package/dist/replay/hooks.d.ts +6 -0
- package/dist/replay/hooks.d.ts.map +1 -1
- package/dist/replay/recorder.d.ts +5 -0
- package/dist/replay/recorder.d.ts.map +1 -1
- package/dist/replay/segment_buffer.d.ts +5 -0
- package/dist/replay/segment_buffer.d.ts.map +1 -1
- package/dist/sdk_meta.d.ts +1 -1
- package/dist/talaria.browser.iife.js +46 -2
- package/dist/talaria.browser.iife.js.map +2 -2
- package/package.json +1 -1
package/dist/replay/hooks.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { FailedRequestStatusCode } from '../types.js';
|
|
2
2
|
export type Teardown = () => void;
|
|
3
|
+
/**
|
|
4
|
+
* Fire when the document becomes visible again (tab focus) or is restored
|
|
5
|
+
* from the back/forward cache. Used to refresh the rrweb paint base after
|
|
6
|
+
* background throttling would have skipped periodic checkouts.
|
|
7
|
+
*/
|
|
8
|
+
export declare function installVisibilityResumeHook(onResume: () => void): Teardown;
|
|
3
9
|
export interface NetworkMeta {
|
|
4
10
|
method: string;
|
|
5
11
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/replay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACrD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiBD,2EAA2E;AAC3E,wBAAgB,kBAAkB,IAAI,QAAQ,CA2B7C;AAcD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,uBAAuB,EAAE,GAC/B,OAAO,CAUT;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE;IACJ,qBAAqB,EAAE,OAAO,CAAC;IAC/B,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IACpD,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,IAAI,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAoB1C;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,kBAAuB,GAAG,QAAQ,CA+F7E"}
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/replay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,QAAQ,CA4B1E;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACrD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiBD,2EAA2E;AAC3E,wBAAgB,kBAAkB,IAAI,QAAQ,CA2B7C;AAcD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,uBAAuB,EAAE,GAC/B,OAAO,CAUT;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE;IACJ,qBAAqB,EAAE,OAAO,CAAC;IAC/B,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IACpD,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,IAAI,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAoB1C;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,kBAAuB,GAAG,QAAQ,CA+F7E"}
|
|
@@ -4,6 +4,11 @@ export interface RecorderOptions {
|
|
|
4
4
|
/** Embed accessible stylesheet rules into the snapshot. Default false at resolve time. */
|
|
5
5
|
inlineStylesheet: boolean;
|
|
6
6
|
blockSelector?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Periodic Meta+FullSnapshot while recording (rrweb `checkoutEveryNms`).
|
|
9
|
+
* Set in buffer/error-sample mode so the ring never ages out its paint base.
|
|
10
|
+
*/
|
|
11
|
+
checkoutEveryNms?: number;
|
|
7
12
|
onEvent: (event: RrwebEvent) => void;
|
|
8
13
|
}
|
|
9
14
|
export interface RecorderHandle {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/replay/recorder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,0FAA0F;IAC1F,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/replay/recorder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,0FAA0F;IAC1F,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA6CtE"}
|
|
@@ -34,6 +34,11 @@ export declare const ERROR_CLIP_FLUSH_SLACK_MS = 5000;
|
|
|
34
34
|
export declare const SEGMENT_FLUSH_MS = 5000;
|
|
35
35
|
/** Keep ~60s of events while buffering (error-only sample path). */
|
|
36
36
|
export declare const RING_BUFFER_MS = 60000;
|
|
37
|
+
/**
|
|
38
|
+
* rrweb checkout interval in buffer mode — must be ≤ {@link RING_BUFFER_MS}
|
|
39
|
+
* so a FullSnapshot always remains inside the ring after idle/away trim.
|
|
40
|
+
*/
|
|
41
|
+
export declare const RING_BUFFER_CHECKOUT_MS = 60000;
|
|
37
42
|
/** Cap ring buffer size so one error flush stays bounded. */
|
|
38
43
|
export declare const RING_BUFFER_MAX_BYTES = 1500000;
|
|
39
44
|
/** Default post-error upload window (cheap error clip). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment_buffer.d.ts","sourceRoot":"","sources":["../../src/replay/segment_buffer.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAc,CAAC;AACxD,iFAAiF;AACjF,eAAO,MAAM,+BAA+B,QACF,CAAC;AAC3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C;;GAEG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,QAAkB,CAAC;AAC/D,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAC/C,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AACtC,oEAAoE;AACpE,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,UAAY,CAAC;AAC/C,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AAEpD,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,2BAA2B;AAC3B,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAK;IAEzB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK7B,eAAe,IAAI,OAAO;IAI1B,4DAA4D;IAC5D,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAI1C;;;OAGG;IACH,kBAAkB,IAAI,OAAO;IAc7B;;;OAGG;IACH,QAAQ,CAAC,GAAG,SAAa,EAAE,QAAQ,SAAwB,GAAG,IAAI;IAiBlE,iBAAiB,IAAI,OAAO;IAI5B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAczB;;;;;;;;OAQG;IACH,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,GACzC,UAAU,EAAE;IAqCf,OAAO,IAAI,UAAU,EAAE;IAOvB,6EAA6E;IAC7E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAMnC,KAAK,IAAI,IAAI;IAKb,SAAS,IAAI;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI;IAUtD,OAAO,CAAC,cAAc;CAGvB"}
|
|
1
|
+
{"version":3,"file":"segment_buffer.d.ts","sourceRoot":"","sources":["../../src/replay/segment_buffer.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAc,CAAC;AACxD,iFAAiF;AACjF,eAAO,MAAM,+BAA+B,QACF,CAAC;AAC3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C;;GAEG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,QAAkB,CAAC;AAC/D,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAC/C,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AACtC,oEAAoE;AACpE,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,UAAY,CAAC;AAC/C,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AAEpD,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,2BAA2B;AAC3B,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAK;IAEzB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK7B,eAAe,IAAI,OAAO;IAI1B,4DAA4D;IAC5D,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAI1C;;;OAGG;IACH,kBAAkB,IAAI,OAAO;IAc7B;;;OAGG;IACH,QAAQ,CAAC,GAAG,SAAa,EAAE,QAAQ,SAAwB,GAAG,IAAI;IAiBlE,iBAAiB,IAAI,OAAO;IAI5B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAczB;;;;;;;;OAQG;IACH,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,GACzC,UAAU,EAAE;IAqCf,OAAO,IAAI,UAAU,EAAE;IAOvB,6EAA6E;IAC7E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAMnC,KAAK,IAAI,IAAI;IAKb,SAAS,IAAI;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI;IAUtD,OAAO,CAAC,cAAc;CAGvB"}
|
package/dist/sdk_meta.d.ts
CHANGED
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
|
|
170
170
|
// src/sdk_meta.ts
|
|
171
171
|
var SDK_NAME = "@newtalaria/browser";
|
|
172
|
-
var SDK_VERSION = "0.1.
|
|
172
|
+
var SDK_VERSION = "0.1.13";
|
|
173
173
|
|
|
174
174
|
// src/transport/serverpod.ts
|
|
175
175
|
var ServerpodTransport = class {
|
|
@@ -286,6 +286,7 @@
|
|
|
286
286
|
var ERROR_CLIP_FLUSH_SLACK_MS = 5e3;
|
|
287
287
|
var SEGMENT_FLUSH_MS = 5e3;
|
|
288
288
|
var RING_BUFFER_MS = 6e4;
|
|
289
|
+
var RING_BUFFER_CHECKOUT_MS = RING_BUFFER_MS;
|
|
289
290
|
var RING_BUFFER_MAX_BYTES = 15e5;
|
|
290
291
|
var ERROR_REPLAY_AFTER_MS = 15e3;
|
|
291
292
|
var MAX_REPLAY_DURATION_MS = 5 * 60 * 1e3;
|
|
@@ -13428,6 +13429,7 @@
|
|
|
13428
13429
|
inlineStylesheet: options.inlineStylesheet,
|
|
13429
13430
|
// Shrink DOM snapshots on heavy sites (docs / marketing).
|
|
13430
13431
|
slimDOMOptions: "all",
|
|
13432
|
+
...options.checkoutEveryNms != null && options.checkoutEveryNms > 0 ? { checkoutEveryNms: options.checkoutEveryNms } : {},
|
|
13431
13433
|
sampling: {
|
|
13432
13434
|
mousemove: 150,
|
|
13433
13435
|
scroll: 200,
|
|
@@ -13448,6 +13450,32 @@
|
|
|
13448
13450
|
}
|
|
13449
13451
|
|
|
13450
13452
|
// src/replay/hooks.ts
|
|
13453
|
+
function installVisibilityResumeHook(onResume) {
|
|
13454
|
+
if (typeof document === "undefined") {
|
|
13455
|
+
return () => {
|
|
13456
|
+
};
|
|
13457
|
+
}
|
|
13458
|
+
const onVisibility = () => {
|
|
13459
|
+
if (document.visibilityState === "visible") {
|
|
13460
|
+
onResume();
|
|
13461
|
+
}
|
|
13462
|
+
};
|
|
13463
|
+
const onPageShow = (event) => {
|
|
13464
|
+
if (event.persisted) {
|
|
13465
|
+
onResume();
|
|
13466
|
+
}
|
|
13467
|
+
};
|
|
13468
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
13469
|
+
if (typeof window !== "undefined") {
|
|
13470
|
+
window.addEventListener("pageshow", onPageShow);
|
|
13471
|
+
}
|
|
13472
|
+
return () => {
|
|
13473
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
13474
|
+
if (typeof window !== "undefined") {
|
|
13475
|
+
window.removeEventListener("pageshow", onPageShow);
|
|
13476
|
+
}
|
|
13477
|
+
};
|
|
13478
|
+
}
|
|
13451
13479
|
function safeSerialize(args) {
|
|
13452
13480
|
try {
|
|
13453
13481
|
return JSON.stringify(
|
|
@@ -13720,6 +13748,9 @@
|
|
|
13720
13748
|
maskAllInputs: this.options.maskAllInputs,
|
|
13721
13749
|
inlineStylesheet: this.options.inlineStylesheet,
|
|
13722
13750
|
blockSelector: this.options.blockSelector,
|
|
13751
|
+
// Buffer/error path: keep a FullSnapshot inside the ~60s ring. Session
|
|
13752
|
+
// sample uploads continuously so periodic checkouts are skipped (size).
|
|
13753
|
+
checkoutEveryNms: this.sessionSampled ? void 0 : RING_BUFFER_CHECKOUT_MS,
|
|
13723
13754
|
onEvent: (event) => this.onRrwebEvent(event)
|
|
13724
13755
|
});
|
|
13725
13756
|
this.teardowns.push(
|
|
@@ -13749,7 +13780,8 @@
|
|
|
13749
13780
|
}
|
|
13750
13781
|
);
|
|
13751
13782
|
}
|
|
13752
|
-
})
|
|
13783
|
+
}),
|
|
13784
|
+
installVisibilityResumeHook(() => this.onForegroundResume())
|
|
13753
13785
|
);
|
|
13754
13786
|
if (!this.options.disableDefaultIntegrations) {
|
|
13755
13787
|
this.installGlobalHandlers();
|
|
@@ -14143,6 +14175,18 @@
|
|
|
14143
14175
|
checkoutFullSnapshot() {
|
|
14144
14176
|
this.recorder?.takeFullSnapshot();
|
|
14145
14177
|
}
|
|
14178
|
+
/**
|
|
14179
|
+
* Tab focus / bfcache restore: background timers are throttled, so the
|
|
14180
|
+
* buffer-mode checkout interval may not have fired. Refresh the paint base
|
|
14181
|
+
* so an error clip still has ~60s of usable lead-up after the user returns.
|
|
14182
|
+
*/
|
|
14183
|
+
onForegroundResume() {
|
|
14184
|
+
if (this.closed || !this.options || !this.recorder) return;
|
|
14185
|
+
if (!this.uploadEnabled) {
|
|
14186
|
+
this.buffer.trimRing();
|
|
14187
|
+
}
|
|
14188
|
+
this.checkoutFullSnapshot();
|
|
14189
|
+
}
|
|
14146
14190
|
/**
|
|
14147
14191
|
* Ensure segment 0 begins at Meta+FullSnapshot. Orphan increments alone
|
|
14148
14192
|
* produce a blank rrweb player.
|