sitepong 0.0.8 → 0.0.12

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 CHANGED
@@ -381,9 +381,11 @@ function App() {
381
381
  return (
382
382
  <SitePongProvider
383
383
  apiKey="your-api-key"
384
- environment="production"
385
- analytics={{ enabled: true, autocapturePageviews: true }}
386
- replay={{ enabled: true }}
384
+ config={{
385
+ environment: 'production',
386
+ analytics: { enabled: true, autocapturePageviews: true },
387
+ replay: { enabled: true },
388
+ }}
387
389
  >
388
390
  <SitePongErrorBoundary fallback={<ErrorPage />}>
389
391
  <YourApp />
@@ -459,8 +461,10 @@ export function Providers({ children }) {
459
461
  return (
460
462
  <SitePongProvider
461
463
  apiKey={process.env.NEXT_PUBLIC_SITEPONG_KEY}
462
- environment={process.env.NODE_ENV}
463
- replay={{ enabled: true }}
464
+ config={{
465
+ environment: process.env.NODE_ENV,
466
+ replay: { enabled: true },
467
+ }}
464
468
  >
465
469
  {children}
466
470
  </SitePongProvider>
package/dist/index.d.mts CHANGED
@@ -443,6 +443,8 @@ declare class SitePongClient {
443
443
  private flushTimer;
444
444
  private context;
445
445
  private initialized;
446
+ private flushFailures;
447
+ private disabled;
446
448
  private flagManager;
447
449
  private analyticsManager;
448
450
  private fingerprintManager;
@@ -454,6 +456,10 @@ declare class SitePongClient {
454
456
  private profiler;
455
457
  constructor();
456
458
  init(config: SitePongInitConfig): void;
459
+ /**
460
+ * Check if the SDK is initialized
461
+ */
462
+ isInitialized(): boolean;
457
463
  /**
458
464
  * Get a feature flag value
459
465
  * Returns the cached evaluated result or default value
@@ -529,6 +535,14 @@ declare class SitePongClient {
529
535
  setContext(context: ErrorContext): void;
530
536
  setUser(user: ErrorContext['user']): void;
531
537
  setTags(tags: Record<string, string>): void;
538
+ clearUser(): void;
539
+ addBreadcrumb(breadcrumb: {
540
+ type?: 'default' | 'http' | 'navigation' | 'ui' | 'console' | 'error';
541
+ category?: string;
542
+ message?: string;
543
+ level?: 'fatal' | 'error' | 'warning' | 'info' | 'debug';
544
+ data?: Record<string, unknown>;
545
+ }): void;
532
546
  captureError(error: Error | string, additionalContext?: ErrorContext): void;
533
547
  captureMessage(message: string, level?: 'info' | 'warning' | 'error', additionalContext?: ErrorContext): void;
534
548
  flush(): Promise<void>;
@@ -549,6 +563,16 @@ declare const setContext: (context: ErrorContext) => void;
549
563
  declare const setUser: (user: ErrorContext["user"]) => void;
550
564
  declare const setTags: (tags: Record<string, string>) => void;
551
565
  declare const flush: () => Promise<void>;
566
+ declare const isInitialized: () => boolean;
567
+ declare const clearUser: () => void;
568
+ declare const addBreadcrumb: (breadcrumb: {
569
+ type?: "default" | "http" | "navigation" | "ui" | "console" | "error";
570
+ category?: string;
571
+ message?: string;
572
+ level?: "fatal" | "error" | "warning" | "info" | "debug";
573
+ data?: Record<string, unknown>;
574
+ }) => void;
575
+
552
576
  declare const getFlag: (key: string, defaultValue?: boolean) => boolean;
553
577
  declare const getAllFlags: () => Record<string, boolean>;
554
578
  declare const getVariant: (key: string, defaultValue?: string | null) => string | null;
@@ -599,4 +623,4 @@ declare const getProfiles: () => ProfileData[];
599
623
  declare const getLatestProfile: () => ProfileData | null;
600
624
  declare const flushProfiles: () => Promise<void>;
601
625
 
602
- export { type CapturedError, type CronCheckinOptions, type CronHandle, type DatabaseQueryEvent, type DatabaseTrackerConfig, type DeviceSignals, type ErrorContext, type FraudCheckResult, GroupTraits, type MetricOptions, type PerformanceConfig, type PerformanceSpan, type PerformanceTransaction, type ProfileData, type ProfileFrame, type ProfilerConfig, type SitePongConfig, type SitePongInitConfig, type TraceContext, TracePropagator, TrackProperties, UserTraits, type VisitorIdResult, type WebVitals, areFlagsReady, captureError, captureMessage, clearAnonymousId, createTraceContext, cronCheckin, cronStart, cronWrap, dbTrack, dbTrackSync, sitepong as default, endSpan, endTransaction, extractTrace, flush, flushMetrics, flushProfiles, generateSpanId, generateTraceId, getAllFlags, getAnonymousId, getDbNPlusOnePatterns, getDbQueryCount, getDeviceSignals, getFlag, getFraudCheck, getLatestProfile, getProfiles, getReplaySessionId, getVariant, getVariantPayload, getVisitorId, getWebVitals, group, identify, init, isReplayRecording, metricDistribution, metricGauge, metricHistogram, metricIncrement, metricStartTimer, metricTime, profile, propagateTrace, refreshFlags, resetAnalytics, resetDbQueryCount, setAnonymousId, setContext, setTags, setUser, startProfileSpan, startReplay, startSpan, startTransaction, stopReplay, track, trackPageView, waitForFlags };
626
+ export { type CapturedError, type CronCheckinOptions, type CronHandle, type DatabaseQueryEvent, type DatabaseTrackerConfig, type DeviceSignals, type ErrorContext, type FraudCheckResult, GroupTraits, type MetricOptions, type PerformanceConfig, type PerformanceSpan, type PerformanceTransaction, type ProfileData, type ProfileFrame, type ProfilerConfig, type SitePongConfig, type SitePongInitConfig, type TraceContext, TracePropagator, TrackProperties, UserTraits, type VisitorIdResult, type WebVitals, addBreadcrumb, areFlagsReady, captureError, captureMessage, clearAnonymousId, clearUser, sitepong as client, createTraceContext, cronCheckin, cronStart, cronWrap, dbTrack, dbTrackSync, sitepong as default, endSpan, endTransaction, extractTrace, flush, flushMetrics, flushProfiles, generateSpanId, generateTraceId, getAllFlags, getAnonymousId, getDbNPlusOnePatterns, getDbQueryCount, getDeviceSignals, getFlag, getFraudCheck, getLatestProfile, getProfiles, getReplaySessionId, getVariant, getVariantPayload, getVisitorId, getWebVitals, group, identify, init, isInitialized, isReplayRecording, metricDistribution, metricGauge, metricHistogram, metricIncrement, metricStartTimer, metricTime, profile, propagateTrace, refreshFlags, resetAnalytics, resetDbQueryCount, setAnonymousId, setContext, setTags, setUser, startProfileSpan, startReplay, startSpan, startTransaction, stopReplay, track, trackPageView, waitForFlags };
package/dist/index.d.ts CHANGED
@@ -443,6 +443,8 @@ declare class SitePongClient {
443
443
  private flushTimer;
444
444
  private context;
445
445
  private initialized;
446
+ private flushFailures;
447
+ private disabled;
446
448
  private flagManager;
447
449
  private analyticsManager;
448
450
  private fingerprintManager;
@@ -454,6 +456,10 @@ declare class SitePongClient {
454
456
  private profiler;
455
457
  constructor();
456
458
  init(config: SitePongInitConfig): void;
459
+ /**
460
+ * Check if the SDK is initialized
461
+ */
462
+ isInitialized(): boolean;
457
463
  /**
458
464
  * Get a feature flag value
459
465
  * Returns the cached evaluated result or default value
@@ -529,6 +535,14 @@ declare class SitePongClient {
529
535
  setContext(context: ErrorContext): void;
530
536
  setUser(user: ErrorContext['user']): void;
531
537
  setTags(tags: Record<string, string>): void;
538
+ clearUser(): void;
539
+ addBreadcrumb(breadcrumb: {
540
+ type?: 'default' | 'http' | 'navigation' | 'ui' | 'console' | 'error';
541
+ category?: string;
542
+ message?: string;
543
+ level?: 'fatal' | 'error' | 'warning' | 'info' | 'debug';
544
+ data?: Record<string, unknown>;
545
+ }): void;
532
546
  captureError(error: Error | string, additionalContext?: ErrorContext): void;
533
547
  captureMessage(message: string, level?: 'info' | 'warning' | 'error', additionalContext?: ErrorContext): void;
534
548
  flush(): Promise<void>;
@@ -549,6 +563,16 @@ declare const setContext: (context: ErrorContext) => void;
549
563
  declare const setUser: (user: ErrorContext["user"]) => void;
550
564
  declare const setTags: (tags: Record<string, string>) => void;
551
565
  declare const flush: () => Promise<void>;
566
+ declare const isInitialized: () => boolean;
567
+ declare const clearUser: () => void;
568
+ declare const addBreadcrumb: (breadcrumb: {
569
+ type?: "default" | "http" | "navigation" | "ui" | "console" | "error";
570
+ category?: string;
571
+ message?: string;
572
+ level?: "fatal" | "error" | "warning" | "info" | "debug";
573
+ data?: Record<string, unknown>;
574
+ }) => void;
575
+
552
576
  declare const getFlag: (key: string, defaultValue?: boolean) => boolean;
553
577
  declare const getAllFlags: () => Record<string, boolean>;
554
578
  declare const getVariant: (key: string, defaultValue?: string | null) => string | null;
@@ -599,4 +623,4 @@ declare const getProfiles: () => ProfileData[];
599
623
  declare const getLatestProfile: () => ProfileData | null;
600
624
  declare const flushProfiles: () => Promise<void>;
601
625
 
602
- export { type CapturedError, type CronCheckinOptions, type CronHandle, type DatabaseQueryEvent, type DatabaseTrackerConfig, type DeviceSignals, type ErrorContext, type FraudCheckResult, GroupTraits, type MetricOptions, type PerformanceConfig, type PerformanceSpan, type PerformanceTransaction, type ProfileData, type ProfileFrame, type ProfilerConfig, type SitePongConfig, type SitePongInitConfig, type TraceContext, TracePropagator, TrackProperties, UserTraits, type VisitorIdResult, type WebVitals, areFlagsReady, captureError, captureMessage, clearAnonymousId, createTraceContext, cronCheckin, cronStart, cronWrap, dbTrack, dbTrackSync, sitepong as default, endSpan, endTransaction, extractTrace, flush, flushMetrics, flushProfiles, generateSpanId, generateTraceId, getAllFlags, getAnonymousId, getDbNPlusOnePatterns, getDbQueryCount, getDeviceSignals, getFlag, getFraudCheck, getLatestProfile, getProfiles, getReplaySessionId, getVariant, getVariantPayload, getVisitorId, getWebVitals, group, identify, init, isReplayRecording, metricDistribution, metricGauge, metricHistogram, metricIncrement, metricStartTimer, metricTime, profile, propagateTrace, refreshFlags, resetAnalytics, resetDbQueryCount, setAnonymousId, setContext, setTags, setUser, startProfileSpan, startReplay, startSpan, startTransaction, stopReplay, track, trackPageView, waitForFlags };
626
+ export { type CapturedError, type CronCheckinOptions, type CronHandle, type DatabaseQueryEvent, type DatabaseTrackerConfig, type DeviceSignals, type ErrorContext, type FraudCheckResult, GroupTraits, type MetricOptions, type PerformanceConfig, type PerformanceSpan, type PerformanceTransaction, type ProfileData, type ProfileFrame, type ProfilerConfig, type SitePongConfig, type SitePongInitConfig, type TraceContext, TracePropagator, TrackProperties, UserTraits, type VisitorIdResult, type WebVitals, addBreadcrumb, areFlagsReady, captureError, captureMessage, clearAnonymousId, clearUser, sitepong as client, createTraceContext, cronCheckin, cronStart, cronWrap, dbTrack, dbTrackSync, sitepong as default, endSpan, endTransaction, extractTrace, flush, flushMetrics, flushProfiles, generateSpanId, generateTraceId, getAllFlags, getAnonymousId, getDbNPlusOnePatterns, getDbQueryCount, getDeviceSignals, getFlag, getFraudCheck, getLatestProfile, getProfiles, getReplaySessionId, getVariant, getVariantPayload, getVisitorId, getWebVitals, group, identify, init, isInitialized, isReplayRecording, metricDistribution, metricGauge, metricHistogram, metricIncrement, metricStartTimer, metricTime, profile, propagateTrace, refreshFlags, resetAnalytics, resetDbQueryCount, setAnonymousId, setContext, setTags, setUser, startProfileSpan, startReplay, startSpan, startTransaction, stopReplay, track, trackPageView, waitForFlags };
package/dist/index.js CHANGED
@@ -693,10 +693,13 @@ var AutocaptureModule = class {
693
693
  var DEFAULT_ENDPOINT2 = "https://ingest.sitepong.com";
694
694
  var DEFAULT_BATCH_SIZE = 20;
695
695
  var DEFAULT_FLUSH_INTERVAL = 1e4;
696
+ var MAX_FLUSH_FAILURES = 3;
696
697
  var AnalyticsManager = class {
697
698
  constructor(config) {
698
699
  this.eventQueue = [];
699
700
  this.flushTimer = null;
701
+ this.flushFailures = 0;
702
+ this.disabled = false;
700
703
  this.userId = null;
701
704
  this.groupId = null;
702
705
  this.userTraits = null;
@@ -814,6 +817,10 @@ var AnalyticsManager = class {
814
817
  }
815
818
  async flush() {
816
819
  if (this.eventQueue.length === 0) return;
820
+ if (this.disabled) {
821
+ this.eventQueue = [];
822
+ return;
823
+ }
817
824
  const events = [...this.eventQueue];
818
825
  this.eventQueue = [];
819
826
  const endpoint = this.config.eventsEndpoint || `${this.config.endpoint}/api/events`;
@@ -829,10 +836,19 @@ var AnalyticsManager = class {
829
836
  if (!response.ok) {
830
837
  throw new Error(`HTTP ${response.status}`);
831
838
  }
839
+ this.flushFailures = 0;
832
840
  this.log(`Flushed ${events.length} events`);
833
841
  } catch (err) {
842
+ this.flushFailures++;
843
+ if (this.flushFailures >= MAX_FLUSH_FAILURES) {
844
+ this.disabled = true;
845
+ console.warn(
846
+ `[SitePong Analytics] Disabled after ${MAX_FLUSH_FAILURES} consecutive failures. Check that ${endpoint} is accessible and has proper CORS headers.`
847
+ );
848
+ return;
849
+ }
834
850
  this.eventQueue.unshift(...events);
835
- this.log("Failed to flush events:", err);
851
+ this.log(`Failed to flush events (attempt ${this.flushFailures}/${MAX_FLUSH_FAILURES}):`, err);
836
852
  }
837
853
  }
838
854
  destroy() {
@@ -2574,12 +2590,15 @@ var DEFAULT_ENDPOINT4 = "https://ingest.sitepong.com";
2574
2590
  var DEFAULT_FLUSH_INTERVAL2 = 5e3;
2575
2591
  var DEFAULT_MAX_BATCH_SIZE = 100;
2576
2592
  var DEFAULT_MAX_SESSION_DURATION = 60 * 60 * 1e3;
2593
+ var MAX_FLUSH_FAILURES2 = 3;
2577
2594
  var ReplayManager = class {
2578
2595
  constructor(config) {
2579
2596
  this.recording = false;
2580
2597
  this.sessionId = null;
2581
2598
  this.events = [];
2582
2599
  this.flushTimer = null;
2600
+ this.flushFailures = 0;
2601
+ this.disabled = false;
2583
2602
  this.sessionStartTime = 0;
2584
2603
  this.observer = null;
2585
2604
  this.mouseMoveBuffer = [];
@@ -2913,6 +2932,10 @@ var ReplayManager = class {
2913
2932
  }
2914
2933
  async flush() {
2915
2934
  if (this.events.length === 0 || !this.sessionId) return;
2935
+ if (this.disabled) {
2936
+ this.events = [];
2937
+ return;
2938
+ }
2916
2939
  const events = [...this.events];
2917
2940
  this.events = [];
2918
2941
  const endpoint = this.config.replayEndpoint || `${this.config.endpoint}/api/replays`;
@@ -2936,10 +2959,19 @@ var ReplayManager = class {
2936
2959
  if (!response.ok) {
2937
2960
  throw new Error(`HTTP ${response.status}`);
2938
2961
  }
2962
+ this.flushFailures = 0;
2939
2963
  this.log(`Flushed ${events.length} replay events`);
2940
2964
  } catch (err) {
2965
+ this.flushFailures++;
2966
+ if (this.flushFailures >= MAX_FLUSH_FAILURES2) {
2967
+ this.disabled = true;
2968
+ console.warn(
2969
+ `[SitePong Replay] Disabled after ${MAX_FLUSH_FAILURES2} consecutive failures. Check that ${endpoint} is accessible and has proper CORS headers.`
2970
+ );
2971
+ return;
2972
+ }
2941
2973
  this.events.unshift(...events);
2942
- this.log("Failed to flush replay events:", err);
2974
+ this.log(`Failed to flush replay events (attempt ${this.flushFailures}/${MAX_FLUSH_FAILURES2}):`, err);
2943
2975
  }
2944
2976
  }
2945
2977
  takeInteractionSnapshot() {
@@ -2993,10 +3025,13 @@ var ReplayManager = class {
2993
3025
  // src/performance/manager.ts
2994
3026
  var DEFAULT_ENDPOINT5 = "https://ingest.sitepong.com";
2995
3027
  var DEFAULT_FLUSH_INTERVAL3 = 1e4;
3028
+ var MAX_FLUSH_FAILURES3 = 3;
2996
3029
  var PerformanceManager = class {
2997
3030
  constructor(config) {
2998
3031
  this.metrics = [];
2999
3032
  this.flushTimer = null;
3033
+ this.flushFailures = 0;
3034
+ this.disabled = false;
3000
3035
  this.vitals = {};
3001
3036
  this.activeTransactions = /* @__PURE__ */ new Map();
3002
3037
  this.config = {
@@ -3251,6 +3286,10 @@ var PerformanceManager = class {
3251
3286
  }
3252
3287
  async flush() {
3253
3288
  if (this.metrics.length === 0) return;
3289
+ if (this.disabled) {
3290
+ this.metrics = [];
3291
+ return;
3292
+ }
3254
3293
  const metrics = [...this.metrics];
3255
3294
  this.metrics = [];
3256
3295
  const endpoint = this.config.performanceEndpoint || `${this.config.endpoint}/api/performance`;
@@ -3264,10 +3303,19 @@ var PerformanceManager = class {
3264
3303
  body: JSON.stringify({ metrics })
3265
3304
  });
3266
3305
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
3306
+ this.flushFailures = 0;
3267
3307
  this.log(`Flushed ${metrics.length} performance metrics`);
3268
3308
  } catch (err) {
3309
+ this.flushFailures++;
3310
+ if (this.flushFailures >= MAX_FLUSH_FAILURES3) {
3311
+ this.disabled = true;
3312
+ console.warn(
3313
+ `[SitePong Performance] Disabled after ${MAX_FLUSH_FAILURES3} consecutive failures. Check that ${endpoint} is accessible and has proper CORS headers.`
3314
+ );
3315
+ return;
3316
+ }
3269
3317
  this.metrics.unshift(...metrics);
3270
- this.log("Failed to flush metrics:", err);
3318
+ this.log(`Failed to flush metrics (attempt ${this.flushFailures}/${MAX_FLUSH_FAILURES3}):`, err);
3271
3319
  }
3272
3320
  }
3273
3321
  log(...args) {
@@ -4019,12 +4067,15 @@ function countFrames(frames) {
4019
4067
  var DEFAULT_ENDPOINT6 = "https://ingest.sitepong.com";
4020
4068
  var DEFAULT_BATCH_SIZE2 = 10;
4021
4069
  var DEFAULT_FLUSH_INTERVAL4 = 5e3;
4070
+ var MAX_FLUSH_FAILURES4 = 3;
4022
4071
  var SitePongClient = class {
4023
4072
  constructor() {
4024
4073
  this.errorQueue = [];
4025
4074
  this.flushTimer = null;
4026
4075
  this.context = {};
4027
4076
  this.initialized = false;
4077
+ this.flushFailures = 0;
4078
+ this.disabled = false;
4028
4079
  this.flagManager = null;
4029
4080
  this.analyticsManager = null;
4030
4081
  this.fingerprintManager = null;
@@ -4176,6 +4227,12 @@ var SitePongClient = class {
4176
4227
  });
4177
4228
  }
4178
4229
  }
4230
+ /**
4231
+ * Check if the SDK is initialized
4232
+ */
4233
+ isInitialized() {
4234
+ return this.initialized;
4235
+ }
4179
4236
  /**
4180
4237
  * Get a feature flag value
4181
4238
  * Returns the cached evaluated result or default value
@@ -4447,6 +4504,15 @@ var SitePongClient = class {
4447
4504
  setTags(tags) {
4448
4505
  this.context.tags = { ...this.context.tags, ...tags };
4449
4506
  }
4507
+ clearUser() {
4508
+ this.context.user = void 0;
4509
+ if (this.replayManager) {
4510
+ this.replayManager.setUser(null);
4511
+ }
4512
+ }
4513
+ addBreadcrumb(breadcrumb) {
4514
+ this.log("Breadcrumb added:", breadcrumb);
4515
+ }
4450
4516
  captureError(error, additionalContext) {
4451
4517
  if (!this.initialized) {
4452
4518
  console.warn("[SitePong] SDK not initialized. Call init() first.");
@@ -4485,6 +4551,10 @@ var SitePongClient = class {
4485
4551
  if (this.errorQueue.length === 0) {
4486
4552
  return;
4487
4553
  }
4554
+ if (this.disabled) {
4555
+ this.errorQueue = [];
4556
+ return;
4557
+ }
4488
4558
  const errors = [...this.errorQueue];
4489
4559
  this.errorQueue = [];
4490
4560
  try {
@@ -4499,10 +4569,19 @@ var SitePongClient = class {
4499
4569
  if (!response.ok) {
4500
4570
  throw new Error(`HTTP ${response.status}`);
4501
4571
  }
4572
+ this.flushFailures = 0;
4502
4573
  this.log(`Flushed ${errors.length} errors`);
4503
4574
  } catch (err) {
4575
+ this.flushFailures++;
4576
+ if (this.flushFailures >= MAX_FLUSH_FAILURES4) {
4577
+ this.disabled = true;
4578
+ console.warn(
4579
+ `[SitePong] SDK disabled after ${MAX_FLUSH_FAILURES4} consecutive failures. Events will no longer be sent. This may be due to CORS issues or network problems. Check that ${this.config.endpoint} is accessible and has proper CORS headers.`
4580
+ );
4581
+ return;
4582
+ }
4504
4583
  this.errorQueue.unshift(...errors);
4505
- this.log("Failed to flush errors:", err);
4584
+ this.log(`Failed to flush errors (attempt ${this.flushFailures}/${MAX_FLUSH_FAILURES4}):`, err);
4506
4585
  }
4507
4586
  }
4508
4587
  formatError(error, additionalContext) {
@@ -4612,6 +4691,9 @@ var setContext = sitepong.setContext.bind(sitepong);
4612
4691
  var setUser = sitepong.setUser.bind(sitepong);
4613
4692
  var setTags = sitepong.setTags.bind(sitepong);
4614
4693
  var flush = sitepong.flush.bind(sitepong);
4694
+ var isInitialized = sitepong.isInitialized.bind(sitepong);
4695
+ var clearUser = sitepong.clearUser.bind(sitepong);
4696
+ var addBreadcrumb = sitepong.addBreadcrumb.bind(sitepong);
4615
4697
  var getFlag = sitepong.getFlag.bind(sitepong);
4616
4698
  var getAllFlags = sitepong.getAllFlags.bind(sitepong);
4617
4699
  var getVariant = sitepong.getVariant.bind(sitepong);
@@ -4659,10 +4741,13 @@ var flushProfiles = sitepong.flushProfiles.bind(sitepong);
4659
4741
  var src_default = sitepong;
4660
4742
 
4661
4743
  exports.TracePropagator = TracePropagator;
4744
+ exports.addBreadcrumb = addBreadcrumb;
4662
4745
  exports.areFlagsReady = areFlagsReady;
4663
4746
  exports.captureError = captureError;
4664
4747
  exports.captureMessage = captureMessage;
4665
4748
  exports.clearAnonymousId = clearAnonymousId;
4749
+ exports.clearUser = clearUser;
4750
+ exports.client = sitepong;
4666
4751
  exports.createTraceContext = createTraceContext;
4667
4752
  exports.cronCheckin = cronCheckin;
4668
4753
  exports.cronStart = cronStart;
@@ -4695,6 +4780,7 @@ exports.getWebVitals = getWebVitals;
4695
4780
  exports.group = group;
4696
4781
  exports.identify = identify;
4697
4782
  exports.init = init;
4783
+ exports.isInitialized = isInitialized;
4698
4784
  exports.isReplayRecording = isReplayRecording;
4699
4785
  exports.metricDistribution = metricDistribution;
4700
4786
  exports.metricGauge = metricGauge;