@sailfish-ai/recorder 1.11.4 → 1.11.5
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/chunks/{chunkSerializer-DOaGGlCg.js → chunkSerializer-C8qtomKe.js} +1 -1
- package/dist/chunks/chunkSerializer-C8qtomKe.js.br +0 -0
- package/dist/chunks/chunkSerializer-C8qtomKe.js.gz +0 -0
- package/dist/chunks/{chunkSerializer-CFHDS9Vi.js → chunkSerializer-RWnu-UfC.js} +1 -1
- package/dist/chunks/chunkSerializer-RWnu-UfC.js.br +0 -0
- package/dist/chunks/chunkSerializer-RWnu-UfC.js.gz +0 -0
- package/dist/chunks/{index-B8IAZfT7.js → index-CIK1iDN9.js} +9 -6
- package/dist/chunks/index-CIK1iDN9.js.br +0 -0
- package/dist/chunks/index-CIK1iDN9.js.gz +0 -0
- package/dist/chunks/{index-DbcegHRc.js → index-DiGs9it7.js} +9 -6
- package/dist/chunks/index-DiGs9it7.js.br +0 -0
- package/dist/chunks/index-DiGs9it7.js.gz +0 -0
- package/dist/eventStore.js +25 -1
- package/dist/eventStore.js.br +0 -0
- package/dist/eventStore.js.gz +0 -0
- package/dist/recorder.cjs +1 -1
- package/dist/recorder.cjs.br +0 -0
- package/dist/recorder.cjs.gz +0 -0
- package/dist/recorder.js +1 -1
- package/dist/recorder.js.br +0 -0
- package/dist/recorder.js.gz +0 -0
- package/dist/recorder.umd.cjs +8 -5
- package/dist/recorder.umd.cjs.br +0 -0
- package/dist/recorder.umd.cjs.gz +0 -0
- package/package.json +1 -1
- package/dist/chunks/chunkSerializer-CFHDS9Vi.js.br +0 -0
- package/dist/chunks/chunkSerializer-CFHDS9Vi.js.gz +0 -0
- package/dist/chunks/chunkSerializer-DOaGGlCg.js.br +0 -0
- package/dist/chunks/chunkSerializer-DOaGGlCg.js.gz +0 -0
- package/dist/chunks/index-B8IAZfT7.js.br +0 -0
- package/dist/chunks/index-B8IAZfT7.js.gz +0 -0
- package/dist/chunks/index-DbcegHRc.js.br +0 -0
- package/dist/chunks/index-DbcegHRc.js.gz +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { y as e } from "./index-
|
|
1
|
+
import { y as e } from "./index-CIK1iDN9.js";
|
|
2
2
|
async function chunkedSnapshot(t, n, o = {}) {
|
|
3
3
|
const s = o.chunkSize ?? 500, r = o.maxChunkMs ?? 16, { blockClass: c, blockSelector: a, maskTextClass: i, maskTextSelector: d } = o;
|
|
4
4
|
let u = 100001, l = 0, N = performance.now();
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const e = require("./index-
|
|
3
|
+
const e = require("./index-DiGs9it7.js");
|
|
4
4
|
exports.chunkedSnapshot = async function chunkedSnapshot(t, n, o = {}) {
|
|
5
5
|
const s = o.chunkSize ?? 500, r = o.maxChunkMs ?? 16, { blockClass: c, blockSelector: a, maskTextClass: i, maskTextSelector: d } = o;
|
|
6
6
|
let u = 100001, l = 0, N = performance.now();
|
|
Binary file
|
|
Binary file
|
|
@@ -292,10 +292,13 @@ async function flushBufferedEvents() {
|
|
|
292
292
|
T = (async () => {
|
|
293
293
|
var _a, _b;
|
|
294
294
|
const e2 = await (async function getAllIndexedEvents() {
|
|
295
|
-
|
|
296
|
-
const
|
|
297
|
-
|
|
298
|
-
})) ?? [];
|
|
295
|
+
const e3 = await withStore$1("readonly", (e4) => new Promise((t4) => {
|
|
296
|
+
const n3 = e4.getAll();
|
|
297
|
+
n3.onsuccess = () => t4(n3.result), n3.onerror = () => t4([]);
|
|
298
|
+
})) ?? [], t3 = Date.now(), n2 = [], i2 = [];
|
|
299
|
+
for (const o2 of e3) "number" == typeof (o2 == null ? void 0 : o2.timestamp) && t3 - o2.timestamp >= 864e5 ? "number" == typeof o2.id && i2.push(o2.id) : n2.push(o2);
|
|
300
|
+
return i2.length > 0 && deleteEventsByIds(i2).catch(() => {
|
|
301
|
+
}), n2;
|
|
299
302
|
})(), t2 = {};
|
|
300
303
|
for (const n2 of e2) {
|
|
301
304
|
const e3 = ((_b = (_a = n2 == null ? void 0 : n2.data) == null ? void 0 : _a.data) == null ? void 0 : _b.sessionId) ?? "unknown-session";
|
|
@@ -370,7 +373,7 @@ function initializeWebSocket(t2, n2, i2, o2, a2 = false) {
|
|
|
370
373
|
const t3 = new URL(e2);
|
|
371
374
|
return `${t3.hostname}${t3.port ? `:${t3.port}` : ""}`;
|
|
372
375
|
})(t2);
|
|
373
|
-
let r2 = `${"https:" === new URL(t2).protocol ? "wss" : "ws"}://${s2}/ws/notify/?apiKey=${n2}&sessionId=${i2}&sender=JS%2FTS&version=1.11.
|
|
376
|
+
let r2 = `${"https:" === new URL(t2).protocol ? "wss" : "ws"}://${s2}/ws/notify/?apiKey=${n2}&sessionId=${i2}&sender=JS%2FTS&version=1.11.5`;
|
|
374
377
|
if (o2 && (r2 += `&envValue=${encodeURIComponent(o2)}`), k = a2 ? (function tryCreateWsWorker() {
|
|
375
378
|
if ("undefined" == typeof Worker) return null;
|
|
376
379
|
try {
|
|
@@ -718,7 +721,7 @@ async function initializeRecording(e2, n2, i2, o2, a2, s2 = true, r2 = false, l2
|
|
|
718
721
|
}
|
|
719
722
|
const { record: n4 } = await import("@sailfish-rrweb/rrweb-record-only");
|
|
720
723
|
if (J = n4, await yieldToMain(), l2) {
|
|
721
|
-
const { chunkedSnapshot: i3 } = await import("./chunkSerializer-
|
|
724
|
+
const { chunkedSnapshot: i3 } = await import("./chunkSerializer-C8qtomKe.js"), o3 = n4.mirror;
|
|
722
725
|
let a3 = true;
|
|
723
726
|
const s3 = [];
|
|
724
727
|
n4({ emit(e3) {
|
|
Binary file
|
|
Binary file
|
|
@@ -313,10 +313,13 @@ async function flushBufferedEvents() {
|
|
|
313
313
|
I = (async () => {
|
|
314
314
|
var _a, _b;
|
|
315
315
|
const e2 = await (async function getAllIndexedEvents() {
|
|
316
|
-
|
|
317
|
-
const
|
|
318
|
-
|
|
319
|
-
})) ?? [];
|
|
316
|
+
const e3 = await withStore$1("readonly", (e4) => new Promise((t4) => {
|
|
317
|
+
const n3 = e4.getAll();
|
|
318
|
+
n3.onsuccess = () => t4(n3.result), n3.onerror = () => t4([]);
|
|
319
|
+
})) ?? [], t3 = Date.now(), n2 = [], i2 = [];
|
|
320
|
+
for (const o2 of e3) "number" == typeof (o2 == null ? void 0 : o2.timestamp) && t3 - o2.timestamp >= 864e5 ? "number" == typeof o2.id && i2.push(o2.id) : n2.push(o2);
|
|
321
|
+
return i2.length > 0 && deleteEventsByIds(i2).catch(() => {
|
|
322
|
+
}), n2;
|
|
320
323
|
})(), t2 = {};
|
|
321
324
|
for (const n2 of e2) {
|
|
322
325
|
const e3 = ((_b = (_a = n2 == null ? void 0 : n2.data) == null ? void 0 : _a.data) == null ? void 0 : _b.sessionId) ?? "unknown-session";
|
|
@@ -391,7 +394,7 @@ function initializeWebSocket(t2, n2, i2, o2, r2 = false) {
|
|
|
391
394
|
const t3 = new URL(e2);
|
|
392
395
|
return `${t3.hostname}${t3.port ? `:${t3.port}` : ""}`;
|
|
393
396
|
})(t2);
|
|
394
|
-
let a2 = `${"https:" === new URL(t2).protocol ? "wss" : "ws"}://${s2}/ws/notify/?apiKey=${n2}&sessionId=${i2}&sender=JS%2FTS&version=1.11.
|
|
397
|
+
let a2 = `${"https:" === new URL(t2).protocol ? "wss" : "ws"}://${s2}/ws/notify/?apiKey=${n2}&sessionId=${i2}&sender=JS%2FTS&version=1.11.5`;
|
|
395
398
|
if (o2 && (a2 += `&envValue=${encodeURIComponent(o2)}`), w = r2 ? (function tryCreateWsWorker() {
|
|
396
399
|
if ("undefined" == typeof Worker) return null;
|
|
397
400
|
try {
|
|
@@ -728,7 +731,7 @@ async function initializeRecording(e2, n2, i2, o2, r2, s2 = true, a2 = false, l2
|
|
|
728
731
|
}
|
|
729
732
|
const { record: n4 } = await import("@sailfish-rrweb/rrweb-record-only");
|
|
730
733
|
if (Q = n4, await yieldToMain(), l2) {
|
|
731
|
-
const { chunkedSnapshot: i3 } = await Promise.resolve().then(() => require("./chunkSerializer-
|
|
734
|
+
const { chunkedSnapshot: i3 } = await Promise.resolve().then(() => require("./chunkSerializer-RWnu-UfC.js")), o3 = n4.mirror;
|
|
732
735
|
let r3 = true;
|
|
733
736
|
const s3 = [];
|
|
734
737
|
n4({ emit(e3) {
|
|
Binary file
|
|
Binary file
|
package/dist/eventStore.js
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
const DB_NAME = "leapsEventDB";
|
|
5
5
|
const STORE_NAME = "recordingEvents";
|
|
6
6
|
const DB_VERSION = 1;
|
|
7
|
+
// HIPAA MVP: bound at-rest exposure of buffered session events. 24h chosen
|
|
8
|
+
// to allow long offline windows but not indefinite retention; expired
|
|
9
|
+
// records are filtered out at read time and deleted asynchronously.
|
|
10
|
+
const EVENT_TTL_MS = 24 * 60 * 60 * 1000;
|
|
7
11
|
// Cached open promise; never created on SSR
|
|
8
12
|
let _dbPromise = null;
|
|
9
13
|
// Narrow, safe feature check (no throws in weird runtimes)
|
|
@@ -85,7 +89,27 @@ export async function getAllIndexedEvents() {
|
|
|
85
89
|
req.onerror = () => resolve([]);
|
|
86
90
|
});
|
|
87
91
|
});
|
|
88
|
-
|
|
92
|
+
const all = result ?? []; // SSR/Edge → []
|
|
93
|
+
// HIPAA MVP TTL filter: drop records older than EVENT_TTL_MS at read time
|
|
94
|
+
// and schedule background deletion of the stale IDs. Done after we
|
|
95
|
+
// have the full list so we don't block the read on the cleanup write.
|
|
96
|
+
const now = Date.now();
|
|
97
|
+
const fresh = [];
|
|
98
|
+
const staleIds = [];
|
|
99
|
+
for (const ev of all) {
|
|
100
|
+
if (typeof ev?.timestamp === "number" && now - ev.timestamp >= EVENT_TTL_MS) {
|
|
101
|
+
if (typeof ev.id === "number")
|
|
102
|
+
staleIds.push(ev.id);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
fresh.push(ev);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (staleIds.length > 0) {
|
|
109
|
+
// Fire-and-forget: don't await; don't surface errors.
|
|
110
|
+
void deleteEventsByIds(staleIds).catch(() => { });
|
|
111
|
+
}
|
|
112
|
+
return fresh;
|
|
89
113
|
}
|
|
90
114
|
export async function deleteEventById(id) {
|
|
91
115
|
await withStore("readwrite", (store) => {
|
package/dist/eventStore.js.br
CHANGED
|
Binary file
|
package/dist/eventStore.js.gz
CHANGED
|
Binary file
|
package/dist/recorder.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const e = require("./chunks/index-
|
|
3
|
+
const e = require("./chunks/index-DiGs9it7.js");
|
|
4
4
|
exports.DEFAULT_CAPTURE_SETTINGS = e.DEFAULT_CAPTURE_SETTINGS, exports.DEFAULT_CONSOLE_RECORDING_SETTINGS = e.DEFAULT_CONSOLE_RECORDING_SETTINGS, exports.STORAGE_VERSION = e.STORAGE_VERSION, exports.addOrUpdateMetadata = e.addOrUpdateMetadata, exports.buildBatches = e.buildBatches, exports.clearStaleFuncSpanState = e.clearStaleFuncSpanState, exports.createSkipHeadersPropagationChecker = e.createSkipHeadersPropagationChecker, exports.createTriageAndIssueFromRecorder = e.createTriageAndIssueFromRecorder, exports.createTriageFromRecorder = e.createTriageFromRecorder, exports.disableFunctionSpanTracking = e.disableFunctionSpanTracking, exports.enableFunctionSpanTracking = e.enableFunctionSpanTracking, exports.ensureHrefCache = e.ensureHrefCache, exports.eventSize = e.eventSize, exports.fetchAndSendIp = e.fetchAndSendIp, exports.fetchCaptureSettings = e.fetchCaptureSettings, exports.fetchEngineeringTicketPlatformIntegrations = e.fetchEngineeringTicketPlatformIntegrations, exports.fetchFunctionSpanTrackingEnabled = e.fetchFunctionSpanTrackingEnabled, exports.flushBufferedEvents = e.flushBufferedEvents, exports.getCachedHref = e.getCachedHref, exports.getCachedHrefNoQuery = e.getCachedHrefNoQuery, exports.getFuncSpanHeader = e.getFuncSpanHeader, exports.getIdentifiedUser = e.getIdentifiedUser, exports.getOrSetSessionId = e.getOrSetSessionId, exports.getUrlAndStoredUuids = e.getUrlAndStoredUuids, exports.identify = e.identify, exports.initRecorder = e.initRecorder, exports.initializeConsolePlugin = e.initializeConsolePlugin, exports.initializeDomContentEvents = e.initializeDomContentEvents, exports.initializeFunctionSpanTrackingFromApi = e.initializeFunctionSpanTrackingFromApi, exports.initializePerformancePlugin = e.initializePerformancePlugin, exports.initializeRecording = e.initializeRecording, exports.initializeWebSocket = e.initializeWebSocket, exports.invalidateUrlCache = e.invalidateUrlCache, exports.isFunctionSpanTrackingEnabled = e.isFunctionSpanTrackingEnabled, exports.matchUrlWithWildcard = e.matchUrlWithWildcard, Object.defineProperty(exports, "nowTimestamp", { enumerable: true, get: () => e.nowTimestamp }), exports.onNavigationChange = e.onNavigationChange, exports.openReportIssueModal = e.openReportIssueModal, exports.restoreFuncSpanState = e.restoreFuncSpanState, exports.sendDomainsToNotPropagateHeaderTo = e.sendDomainsToNotPropagateHeaderTo, exports.sendEvent = e.sendEvent, exports.sendGraphQLRequest = e.sendGraphQLRequest, exports.sendMessage = e.sendMessage, exports.startRecording = e.startRecording, exports.startRecordingSession = e.startRecordingSession, exports.trackingEvent = e.trackingEvent, exports.withAppUrlMetadata = e.withAppUrlMetadata;
|
package/dist/recorder.cjs.br
CHANGED
|
Binary file
|
package/dist/recorder.cjs.gz
CHANGED
|
Binary file
|
package/dist/recorder.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D, a, S, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, z, A, B, C, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V } from "./chunks/index-
|
|
1
|
+
import { D, a, S, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, z, A, B, C, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V } from "./chunks/index-CIK1iDN9.js";
|
|
2
2
|
export {
|
|
3
3
|
D as DEFAULT_CAPTURE_SETTINGS,
|
|
4
4
|
a as DEFAULT_CONSOLE_RECORDING_SETTINGS,
|
package/dist/recorder.js.br
CHANGED
|
Binary file
|
package/dist/recorder.js.gz
CHANGED
|
Binary file
|
package/dist/recorder.umd.cjs
CHANGED
|
@@ -515,10 +515,13 @@
|
|
|
515
515
|
pe = (async () => {
|
|
516
516
|
var _a2, _b;
|
|
517
517
|
const e2 = await (async function getAllIndexedEvents() {
|
|
518
|
-
|
|
519
|
-
const
|
|
520
|
-
|
|
521
|
-
})) ?? [];
|
|
518
|
+
const e3 = await withStore$1("readonly", (e4) => new Promise((w4) => {
|
|
519
|
+
const C3 = e4.getAll();
|
|
520
|
+
C3.onsuccess = () => w4(C3.result), C3.onerror = () => w4([]);
|
|
521
|
+
})) ?? [], w3 = Date.now(), C2 = [], x2 = [];
|
|
522
|
+
for (const I2 of e3) "number" == typeof (I2 == null ? void 0 : I2.timestamp) && w3 - I2.timestamp >= 864e5 ? "number" == typeof I2.id && x2.push(I2.id) : C2.push(I2);
|
|
523
|
+
return x2.length > 0 && deleteEventsByIds(x2).catch(() => {
|
|
524
|
+
}), C2;
|
|
522
525
|
})(), w2 = {};
|
|
523
526
|
for (const C2 of e2) {
|
|
524
527
|
const e3 = ((_b = (_a2 = C2 == null ? void 0 : C2.data) == null ? void 0 : _a2.data) == null ? void 0 : _b.sessionId) ?? "unknown-session";
|
|
@@ -593,7 +596,7 @@
|
|
|
593
596
|
const w3 = new URL(e3);
|
|
594
597
|
return `${w3.hostname}${w3.port ? `:${w3.port}` : ""}`;
|
|
595
598
|
})(e2);
|
|
596
|
-
let _2 = `${"https:" === new URL(e2).protocol ? "wss" : "ws"}://${M2}/ws/notify/?apiKey=${w2}&sessionId=${C2}&sender=JS%2FTS&version=1.11.
|
|
599
|
+
let _2 = `${"https:" === new URL(e2).protocol ? "wss" : "ws"}://${M2}/ws/notify/?apiKey=${w2}&sessionId=${C2}&sender=JS%2FTS&version=1.11.5`;
|
|
597
600
|
if (x2 && (_2 += `&envValue=${encodeURIComponent(x2)}`), le = I2 ? (function tryCreateWsWorker() {
|
|
598
601
|
if ("undefined" == typeof Worker) return null;
|
|
599
602
|
try {
|
package/dist/recorder.umd.cjs.br
CHANGED
|
Binary file
|
package/dist/recorder.umd.cjs.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|