@sailfish-ai/recorder 1.10.13 → 1.11.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.
Files changed (100) hide show
  1. package/README.md +309 -7
  2. package/dist/babel-plugin-sailfish-source.cjs.br +0 -0
  3. package/dist/babel-plugin-sailfish-source.cjs.gz +0 -0
  4. package/dist/babel-plugin-sailfish-source.js.br +0 -0
  5. package/dist/babel-plugin-sailfish-source.js.gz +0 -0
  6. package/dist/chunkSerializer.js.br +0 -0
  7. package/dist/chunkSerializer.js.gz +0 -0
  8. package/dist/chunks/{chunkSerializer-Dk1eF3S8.js → chunkSerializer-BiemuRlf.js} +1 -1
  9. package/dist/chunks/chunkSerializer-BiemuRlf.js.br +0 -0
  10. package/dist/chunks/chunkSerializer-BiemuRlf.js.gz +0 -0
  11. package/dist/chunks/{chunkSerializer-CodMnuS3.js → chunkSerializer-CJQCxiLD.js} +1 -1
  12. package/dist/chunks/chunkSerializer-CJQCxiLD.js.br +0 -0
  13. package/dist/chunks/chunkSerializer-CJQCxiLD.js.gz +0 -0
  14. package/dist/chunks/{index-DW416eVj.js → index-Cfj4Epfd.js} +126 -96
  15. package/dist/chunks/index-Cfj4Epfd.js.br +0 -0
  16. package/dist/chunks/index-Cfj4Epfd.js.gz +0 -0
  17. package/dist/chunks/{index-DvLh2k6O.js → index-CuXHImrI.js} +126 -94
  18. package/dist/chunks/index-CuXHImrI.js.br +0 -0
  19. package/dist/chunks/index-CuXHImrI.js.gz +0 -0
  20. package/dist/constants.js.br +0 -0
  21. package/dist/constants.js.gz +0 -0
  22. package/dist/deviceInfo.js.br +0 -0
  23. package/dist/deviceInfo.js.gz +0 -0
  24. package/dist/env.js.br +0 -0
  25. package/dist/env.js.gz +0 -0
  26. package/dist/errorInterceptor.js.br +0 -0
  27. package/dist/errorInterceptor.js.gz +0 -0
  28. package/dist/eventStore.js.br +0 -0
  29. package/dist/eventStore.js.gz +0 -0
  30. package/dist/exponentialBackoff.js.br +0 -0
  31. package/dist/exponentialBackoff.js.gz +0 -0
  32. package/dist/fiberHook.js.br +0 -0
  33. package/dist/fiberHook.js.gz +0 -0
  34. package/dist/frameworkDetection.js.br +0 -0
  35. package/dist/frameworkDetection.js.gz +0 -0
  36. package/dist/graphql.js.br +0 -0
  37. package/dist/graphql.js.gz +0 -0
  38. package/dist/headlessDetection.js.br +0 -0
  39. package/dist/headlessDetection.js.gz +0 -0
  40. package/dist/inAppReportIssueModal/index.js +15 -14
  41. package/dist/inAppReportIssueModal/index.js.br +0 -0
  42. package/dist/inAppReportIssueModal/index.js.gz +0 -0
  43. package/dist/inAppReportIssueModal/integrations.js +56 -4
  44. package/dist/inAppReportIssueModal/integrations.js.br +0 -0
  45. package/dist/inAppReportIssueModal/integrations.js.gz +0 -0
  46. package/dist/inAppReportIssueModal/state.js.br +0 -0
  47. package/dist/inAppReportIssueModal/state.js.gz +0 -0
  48. package/dist/inAppReportIssueModal/ui.js.br +0 -0
  49. package/dist/inAppReportIssueModal/ui.js.gz +0 -0
  50. package/dist/index.js +98 -73
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/notifyEventStore.js.br +0 -0
  54. package/dist/notifyEventStore.js.gz +0 -0
  55. package/dist/recorder.cjs +2 -2
  56. package/dist/recorder.cjs.br +0 -0
  57. package/dist/recorder.cjs.gz +0 -0
  58. package/dist/recorder.js +26 -25
  59. package/dist/recorder.js.br +0 -0
  60. package/dist/recorder.js.gz +0 -0
  61. package/dist/recorder.umd.cjs +8909 -0
  62. package/dist/recorder.umd.cjs.br +0 -0
  63. package/dist/recorder.umd.cjs.gz +0 -0
  64. package/dist/recording.js +2 -2
  65. package/dist/recording.js.br +0 -0
  66. package/dist/recording.js.gz +0 -0
  67. package/dist/segmentHelpers.js.br +0 -0
  68. package/dist/segmentHelpers.js.gz +0 -0
  69. package/dist/sendSailfishMessages.js +4 -0
  70. package/dist/sendSailfishMessages.js.br +0 -0
  71. package/dist/sendSailfishMessages.js.gz +0 -0
  72. package/dist/session.js.br +0 -0
  73. package/dist/session.js.gz +0 -0
  74. package/dist/snippet-auto-init.js +173 -0
  75. package/dist/snippet-auto-init.js.br +0 -0
  76. package/dist/snippet-auto-init.js.gz +0 -0
  77. package/dist/sourceLocation.js.br +0 -0
  78. package/dist/sourceLocation.js.gz +0 -0
  79. package/dist/types/inAppReportIssueModal/integrations.d.ts +7 -0
  80. package/dist/types/index.d.ts +5 -1
  81. package/dist/types/sendSailfishMessages.d.ts +4 -0
  82. package/dist/types/snippet-auto-init.d.ts +31 -0
  83. package/dist/types/types.d.ts +1 -0
  84. package/dist/types/umd-entry.d.ts +9 -0
  85. package/dist/umd-entry.js +11 -0
  86. package/dist/utils.js.br +0 -0
  87. package/dist/utils.js.gz +0 -0
  88. package/dist/uuid.js.br +0 -0
  89. package/dist/uuid.js.gz +0 -0
  90. package/dist/websocket.js.br +0 -0
  91. package/dist/websocket.js.gz +0 -0
  92. package/package.json +9 -5
  93. package/dist/chunks/chunkSerializer-CodMnuS3.js.br +0 -0
  94. package/dist/chunks/chunkSerializer-CodMnuS3.js.gz +0 -0
  95. package/dist/chunks/chunkSerializer-Dk1eF3S8.js.br +0 -0
  96. package/dist/chunks/chunkSerializer-Dk1eF3S8.js.gz +0 -0
  97. package/dist/chunks/index-DW416eVj.js.br +0 -0
  98. package/dist/chunks/index-DW416eVj.js.gz +0 -0
  99. package/dist/chunks/index-DvLh2k6O.js.br +0 -0
  100. package/dist/chunks/index-DvLh2k6O.js.gz +0 -0
package/dist/index.js CHANGED
@@ -293,40 +293,11 @@ function storeCredentialsAndConnection({ apiKey, backendApi, }) {
293
293
  sessionStorage.setItem("sailfishApiKey", apiKey);
294
294
  sessionStorage.setItem("sailfishBackendApi", backendApi);
295
295
  }
296
- // Utility function to match domains or paths with wildcard support
297
- export function matchUrlWithWildcard(input, patterns) {
298
- // Tolerate non-string inputs (Request, URL, etc.); coerce to string when possible.
299
- let urlStr;
300
- if (typeof input === "string") {
301
- urlStr = input;
302
- }
303
- else if (typeof URL !== "undefined" && input instanceof URL) {
304
- urlStr = input.href;
305
- }
306
- else if (typeof Request !== "undefined" && input instanceof Request) {
307
- urlStr = input.url;
308
- }
309
- else if (input != null && typeof input.toString === "function") {
310
- // As per web APIs, fetch/open may accept any object with a stringifier.
311
- urlStr = input.toString();
312
- }
313
- if (!urlStr)
314
- return false;
315
- // Use WHATWG URL parsing with a base for relative URLs.
316
- let parsed;
317
- try {
318
- const base = typeof window !== "undefined"
319
- ? window.location.href
320
- : "http://localhost/";
321
- parsed = new URL(urlStr, base);
322
- }
323
- catch {
324
- return false; // If we can't parse, just say "no match" instead of throwing.
325
- }
326
- const { hostname, pathname, port, protocol } = parsed;
327
- // Only match http(s) hosts/paths; ignore others like data:, blob:, about:.
328
- if (!/^https?:$/.test(protocol))
329
- return false;
296
+ // Internal: match a *pre-parsed* URL against patterns. Hot path on the
297
+ // header-propagation gate, called twice per request (deny + allow). Splitting
298
+ // this from matchUrlWithWildcard() lets callers parse the URL once and reuse.
299
+ function matchParsedUrlAgainstPatterns(parsed, patterns) {
300
+ const { hostname, pathname, port } = parsed;
330
301
  // Handle stripping 'www.' and port
331
302
  const domain = hostname.startsWith("www.")
332
303
  ? hostname.slice(4).toLowerCase()
@@ -383,6 +354,38 @@ export function matchUrlWithWildcard(input, patterns) {
383
354
  return true;
384
355
  });
385
356
  }
357
+ // Public wrapper: parse + delegate. Preserved for callers outside the gate
358
+ // (interceptor wrappers, tests). Hot paths should call
359
+ // matchParsedUrlAgainstPatterns() directly with a pre-parsed URL.
360
+ export function matchUrlWithWildcard(input, patterns) {
361
+ // Tolerate non-string inputs (Request, URL, etc.); coerce to string when possible.
362
+ let urlStr;
363
+ if (typeof input === "string") {
364
+ urlStr = input;
365
+ }
366
+ else if (typeof URL !== "undefined" && input instanceof URL) {
367
+ urlStr = input.href;
368
+ }
369
+ else if (typeof Request !== "undefined" && input instanceof Request) {
370
+ urlStr = input.url;
371
+ }
372
+ else if (input != null && typeof input.toString === "function") {
373
+ urlStr = input.toString();
374
+ }
375
+ if (!urlStr)
376
+ return false;
377
+ let parsed;
378
+ try {
379
+ const base = typeof window !== "undefined"
380
+ ? window.location.href
381
+ : "http://localhost/";
382
+ parsed = new URL(urlStr, base);
383
+ }
384
+ catch {
385
+ return false;
386
+ }
387
+ return matchParsedUrlAgainstPatterns(parsed, patterns);
388
+ }
386
389
  export function createSkipHeadersPropagationChecker(domainsToNotPropagateHeaderTo = [], domainsToPropagateHeaderTo = []) {
387
390
  // Pre-compute the combined domain exclusion patterns once per interceptor setup
388
391
  const combinedPatterns = [
@@ -392,26 +395,30 @@ export function createSkipHeadersPropagationChecker(domainsToNotPropagateHeaderT
392
395
  // Pre-compute allowlist presence once (avoids per-request .length check overhead)
393
396
  const hasAllowlist = domainsToPropagateHeaderTo.length > 0;
394
397
  return function shouldSkipHeadersPropagation(url) {
395
- let urlObj;
398
+ // Parse the URL ONCE and reuse for every subsequent check. URL parsing is
399
+ // the dominant cost on this hot path (called for every fetch/XHR), so
400
+ // calling matchParsedUrlAgainstPatterns() with the cached parse instead of
401
+ // matchUrlWithWildcard() (which would re-parse) is the key perf win.
402
+ let parsed;
396
403
  try {
397
- urlObj = new URL(typeof url === "string" ? url : String(url?.url ?? url), window.location.href);
404
+ parsed = new URL(typeof url === "string" ? url : String(url?.url ?? url), window.location.href);
398
405
  }
399
406
  catch {
400
407
  // If we cannot parse, play it safe and do NOT inject headers.
401
408
  return true;
402
409
  }
403
410
  // 1️⃣ STATIC ASSET EXCLUSIONS (by comprehensive file extension list) — O(1) Set lookup
404
- const lowerPathname = urlObj.pathname.toLowerCase();
411
+ const lowerPathname = parsed.pathname.toLowerCase();
405
412
  const lastDotIdx = lowerPathname.lastIndexOf(".");
406
413
  if (lastDotIdx !== -1 && STATIC_EXTENSIONS_SET.has(lowerPathname.slice(lastDotIdx))) {
407
414
  return true;
408
415
  }
409
416
  // 2️⃣ ALLOWLIST CHECK — if provided, URL must match at least one allowlist pattern
410
- if (hasAllowlist && !matchUrlWithWildcard(url, domainsToPropagateHeaderTo)) {
417
+ if (hasAllowlist && !matchParsedUrlAgainstPatterns(parsed, domainsToPropagateHeaderTo)) {
411
418
  return true;
412
419
  }
413
420
  // 3️⃣ WILDCARD-BASED EXCLUSION (domain + path) — blocklist still applies even if allowlisted
414
- if (matchUrlWithWildcard(url, combinedPatterns)) {
421
+ if (matchParsedUrlAgainstPatterns(parsed, combinedPatterns)) {
415
422
  return true;
416
423
  }
417
424
  return false;
@@ -1028,7 +1035,12 @@ function getMapUuidFromWindow() {
1028
1035
  // Note - we do NOT send serviceIdentifier because
1029
1036
  // it would be 1 serviceIdentifier per frontend user session,
1030
1037
  // which is very wasteful
1031
- export async function startRecording({ apiKey, backendApi = "https://api-service.sailfishqa.com", domainsToPropagateHeaderTo = [], domainsToNotPropagateHeaderTo = [], serviceVersion, serviceIdentifier, gitSha, serviceAdditionalMetadata, enableIpTracking, captureStreamingResponseBody = true, captureResponseBodyMaxMb = 10, captureStreamPrefixKb = 64, captureStreamTimeoutMs = 10000, enableFiberTracking = false, deferRecording, deferRecordingStart, chunkSnapshot, useWsWorker = true, }) {
1038
+ export async function startRecording({ apiKey, backendApi = "https://api-service.sailfishqa.com",
1039
+ // Default: ["*"] = propagate to every URL (deny list still applies).
1040
+ // Pass [] to fully disable header propagation. Pass exact patterns
1041
+ // (e.g. ["api.myapp.com", "*.internal.com"]) to restrict propagation
1042
+ // to a known set of domains.
1043
+ domainsToPropagateHeaderTo = ["*"], domainsToNotPropagateHeaderTo = [], serviceVersion, serviceIdentifier, gitSha, serviceAdditionalMetadata, enableIpTracking, captureStreamingResponseBody = true, captureResponseBodyMaxMb = 10, captureStreamPrefixKb = 64, captureStreamTimeoutMs = 10000, enableFiberTracking = false, deferRecording, deferRecordingStart, chunkSnapshot, useWsWorker = true, maskTextClass, library, }) {
1032
1044
  // Synthetic-environment no-op: Lighthouse/PSI, HeadlessChrome, WebPageTest
1033
1045
  // (PTST), Puppeteer/Playwright/Selenium (navigator.webdriver). We skip init
1034
1046
  // entirely to avoid WSS retry noise, third-party perf penalties in audits,
@@ -1145,7 +1157,7 @@ export async function startRecording({ apiKey, backendApi = "https://api-service
1145
1157
  const effectiveGitSha = gitSha ?? readGitSha();
1146
1158
  const effectiveServiceIdentifier = serviceIdentifier ?? "";
1147
1159
  const effectiveServiceVersion = serviceVersion ?? "";
1148
- const effectiveLibrary = "JS/TS";
1160
+ const effectiveLibrary = library ?? "JS/TS";
1149
1161
  const effectiveMapUuid = getMapUuidFromWindow();
1150
1162
  const metadataWithAppUrl = withAppUrlMetadata(serviceAdditionalMetadata);
1151
1163
  // Detect the front-end framework. DOM queries are allowed only when the
@@ -1170,6 +1182,9 @@ export async function startRecording({ apiKey, backendApi = "https://api-service
1170
1182
  ...DEFAULT_CAPTURE_SETTINGS,
1171
1183
  ...captureSettingsResponse.data?.captureSettingsFromApiKey,
1172
1184
  enableFiberTracking,
1185
+ // Caller-supplied maskTextClass wins over server-fetched value; only
1186
+ // applied when explicitly set so undefined cannot clobber the server.
1187
+ ...(maskTextClass !== undefined ? { maskTextClass } : {}),
1173
1188
  };
1174
1189
  // If a socket is already open now, stop here.
1175
1190
  if (g.ws && g.ws.readyState === 1) {
@@ -1220,40 +1235,47 @@ export const initRecorder = async (options) => {
1220
1235
  // Coalesce concurrent calls into one promise
1221
1236
  if (!g.initPromise) {
1222
1237
  g.initPromise = (async () => {
1223
- if (!g.hasLoggedInitOnce) {
1224
- // Log only once per window lifecycle to avoid noisy logs when routes remount.
1225
- console.log("Initializing Sailfish Recorder (first run) …");
1226
- g.hasLoggedInitOnce = true;
1227
- }
1228
- await startRecording(options);
1229
- // Set up the issue reporting UI once (lazy-loaded)
1230
- if (!g.issueReportingInit) {
1231
- const backendApiUrl = options.backendApi ?? "https://api-service.sailfishqa.com";
1232
- // Dynamically import issue reporting modules to reduce initial bundle
1233
- const [{ setupIssueReporting }, { fetchIntegrationData, getIntegrationData }] = await Promise.all([
1234
- import("./inAppReportIssueModal"),
1235
- import("./inAppReportIssueModal/integrations"),
1236
- ]);
1237
- // Fetch integration data before setting up issue reporting
1238
- let integrationData = null;
1239
- try {
1240
- await fetchIntegrationData(options.apiKey, backendApiUrl);
1241
- integrationData = getIntegrationData();
1238
+ try {
1239
+ if (!g.hasLoggedInitOnce) {
1240
+ // Log only once per window lifecycle to avoid noisy logs when routes remount.
1241
+ console.log("Initializing Sailfish Recorder (first run) …");
1242
+ g.hasLoggedInitOnce = true;
1242
1243
  }
1243
- catch (error) {
1244
- console.warn("[Sailfish] Failed to fetch integration data for issue reporting:", error);
1245
- // Continue with null integration data - the modal will work without it
1244
+ await startRecording(options);
1245
+ // Set up the issue reporting UI once (lazy-loaded)
1246
+ if (!g.issueReportingInit) {
1247
+ const backendApiUrl = options.backendApi ?? "https://api-service.sailfishqa.com";
1248
+ // Dynamically import issue reporting modules to reduce initial bundle
1249
+ const [{ setupIssueReporting }, { fetchIntegrationData, getIntegrationData }] = await Promise.all([
1250
+ import("./inAppReportIssueModal"),
1251
+ import("./inAppReportIssueModal/integrations"),
1252
+ ]);
1253
+ // Fetch integration data before setting up issue reporting
1254
+ let integrationData = null;
1255
+ try {
1256
+ await fetchIntegrationData(options.apiKey, backendApiUrl);
1257
+ integrationData = getIntegrationData();
1258
+ }
1259
+ catch (error) {
1260
+ console.warn("[Sailfish] Failed to fetch integration data for issue reporting:", error);
1261
+ // Continue with null integration data - the modal will work without it
1262
+ }
1263
+ setupIssueReporting({
1264
+ apiKey: options.apiKey,
1265
+ backendApi: backendApiUrl,
1266
+ getSessionId: () => getOrSetSessionId(),
1267
+ shortcuts: options.reportIssueShortcuts,
1268
+ customBaseUrl: options.customBaseUrl,
1269
+ integrationData,
1270
+ showEngTicketFieldsInReportIssueModalDefault: options.showEngTicketFieldsInReportIssueModalDefault,
1271
+ });
1272
+ g.issueReportingInit = true;
1246
1273
  }
1247
- setupIssueReporting({
1248
- apiKey: options.apiKey,
1249
- backendApi: backendApiUrl,
1250
- getSessionId: () => getOrSetSessionId(),
1251
- shortcuts: options.reportIssueShortcuts,
1252
- customBaseUrl: options.customBaseUrl,
1253
- integrationData,
1254
- showEngTicketFieldsInReportIssueModalDefault: options.showEngTicketFieldsInReportIssueModalDefault,
1255
- });
1256
- g.issueReportingInit = true;
1274
+ }
1275
+ catch (err) {
1276
+ // CRITICAL: Never let Sailfish errors break the customer's application.
1277
+ // Log a warning so developers can debug, but swallow the error.
1278
+ console.warn("[Sailfish] Recorder initialization failed:", err);
1257
1279
  }
1258
1280
  })().finally(() => {
1259
1281
  // Keep all state/flags, but clear the temp promise so a brand-new session can re-init later
@@ -1271,3 +1293,6 @@ export { getOrSetSessionId } from "./session";
1271
1293
  export * from "./types";
1272
1294
  export * from "./utils";
1273
1295
  export * from "./websocket";
1296
+ // Auto-init code for CDN/snippet mode lives in snippet-auto-init.ts
1297
+ // and is only included in the UMD build entry point (not ES/CJS).
1298
+ // This keeps sideEffects: false accurate for tree-shaking.
Binary file
Binary file
Binary file
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-DW416eVj.js");
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.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.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;
3
+ const e = require("./chunks/index-Cfj4Epfd.js");
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.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;
Binary file
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 } from "./chunks/index-DvLh2k6O.js";
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 } from "./chunks/index-CuXHImrI.js";
2
2
  export {
3
3
  D as DEFAULT_CAPTURE_SETTINGS,
4
4
  a as DEFAULT_CONSOLE_RECORDING_SETTINGS,
@@ -21,28 +21,29 @@ export {
21
21
  q as getCachedHref,
22
22
  r as getCachedHrefNoQuery,
23
23
  s as getFuncSpanHeader,
24
- t as getOrSetSessionId,
25
- u as getUrlAndStoredUuids,
26
- v as identify,
27
- w as initRecorder,
28
- x as initializeConsolePlugin,
29
- z as initializeDomContentEvents,
30
- A as initializeFunctionSpanTrackingFromApi,
31
- B as initializeRecording,
32
- C as initializeWebSocket,
33
- E as invalidateUrlCache,
34
- F as isFunctionSpanTrackingEnabled,
35
- G as matchUrlWithWildcard,
36
- H as nowTimestamp,
37
- I as onNavigationChange,
38
- J as openReportIssueModal,
39
- K as restoreFuncSpanState,
40
- L as sendDomainsToNotPropagateHeaderTo,
41
- M as sendEvent,
42
- N as sendGraphQLRequest,
43
- O as sendMessage,
44
- P as startRecording,
45
- Q as startRecordingSession,
46
- R as trackingEvent,
47
- T as withAppUrlMetadata
24
+ t as getIdentifiedUser,
25
+ u as getOrSetSessionId,
26
+ v as getUrlAndStoredUuids,
27
+ w as identify,
28
+ x as initRecorder,
29
+ z as initializeConsolePlugin,
30
+ A as initializeDomContentEvents,
31
+ B as initializeFunctionSpanTrackingFromApi,
32
+ C as initializeRecording,
33
+ E as initializeWebSocket,
34
+ F as invalidateUrlCache,
35
+ G as isFunctionSpanTrackingEnabled,
36
+ H as matchUrlWithWildcard,
37
+ I as nowTimestamp,
38
+ J as onNavigationChange,
39
+ K as openReportIssueModal,
40
+ L as restoreFuncSpanState,
41
+ M as sendDomainsToNotPropagateHeaderTo,
42
+ N as sendEvent,
43
+ O as sendGraphQLRequest,
44
+ P as sendMessage,
45
+ Q as startRecording,
46
+ R as startRecordingSession,
47
+ T as trackingEvent,
48
+ U as withAppUrlMetadata
48
49
  };
Binary file
Binary file