@mushi-mushi/core 1.25.0 → 1.27.0

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/index.d.cts CHANGED
@@ -46,7 +46,52 @@ interface MushiConfig {
46
46
  * when omitted (legacy Vercel Analytics wiring).
47
47
  */
48
48
  appVersion?: string;
49
- /** Hook called before a report is sent. Return null to cancel, or return the (possibly modified) report. */
49
+ /**
50
+ * Probabilistic sampling rate for session-replay recording (rrweb/lite).
51
+ * Range 0–1, default 1 (record all sessions). The sampling decision is made
52
+ * once at session init — a sampled-out session never loads the rrweb chunk,
53
+ * reducing bundle cost and CPU for excluded users.
54
+ *
55
+ * Independent of `sampleRate` (error reporting). A session can have replay
56
+ * on but errors sampled, or vice versa.
57
+ *
58
+ * @example
59
+ * replaySampleRate: 0.2 // record replay for ~20% of sessions
60
+ */
61
+ replaySampleRate?: number;
62
+ /**
63
+ * Probabilistic sampling rate for automatic (non-user-initiated) error
64
+ * reports. Range 0–1, default 1 (send all). User-initiated feedback reports
65
+ * are always sent regardless of this value.
66
+ *
67
+ * Examples:
68
+ * sampleRate: 0.1 → send ~10% of auto-captured errors
69
+ * sampleRate: 1 → send all (default)
70
+ * sampleRate: 0 → send none (disables automatic capture; feedback unaffected)
71
+ *
72
+ * When rate limiting or circuit breaker is also active, the stricter of the
73
+ * two gates applies. Use sampleRate for sustained high-volume apps; use
74
+ * rate limiting for burst protection.
75
+ */
76
+ sampleRate?: number;
77
+ /**
78
+ * Hook called before ANY report (error, exception, or user feedback) is
79
+ * sent. Return null to cancel the report; return the (possibly modified)
80
+ * report to proceed. Async version supported — resolution is awaited before
81
+ * submission. Runs AFTER built-in PII scrubbing.
82
+ *
83
+ * @example
84
+ * beforeSend: (report) => {
85
+ * if (report.category === 'bug' && report.description.includes('internal')) return null
86
+ * return { ...report, description: sanitize(report.description) }
87
+ * }
88
+ */
89
+ beforeSend?: (report: MushiReport) => MushiReport | null | Promise<MushiReport | null>;
90
+ /**
91
+ * @deprecated Use `beforeSend` instead. `beforeSendFeedback` is kept for
92
+ * backwards compatibility and applies only to user-submitted feedback reports.
93
+ * `beforeSend` covers all report types and takes precedence when both are set.
94
+ */
50
95
  beforeSendFeedback?: (report: MushiReport) => MushiReport | null | Promise<MushiReport | null>;
51
96
  /** Called once if the app crashed during the previous session. */
52
97
  onCrashedLastRun?: (crashed: boolean) => void;
@@ -774,6 +819,13 @@ interface MushiBreadcrumb {
774
819
  message: string;
775
820
  /** Optional structured payload — kept small to keep ingest cheap. */
776
821
  data?: Record<string, unknown>;
822
+ /**
823
+ * Correlation ID linking this breadcrumb to the `MushiNetworkEntry` and
824
+ * `MushiConsoleEntry` entries emitted during the same network request's
825
+ * lifetime (Phase 3b). Set for `fetch` / `xhr` category crumbs and for
826
+ * console entries captured while a request was in-flight.
827
+ */
828
+ correlationId?: string;
777
829
  }
778
830
  /**
779
831
  * Snapshot of Sentry's current scope at report submission. Captured by
@@ -985,6 +1037,13 @@ interface MushiConsoleEntry {
985
1037
  message: string;
986
1038
  timestamp: number;
987
1039
  stack?: string;
1040
+ /**
1041
+ * Correlation ID linking this console entry to the network request that was
1042
+ * active when this log was emitted (e.g. the fetch whose catch block called
1043
+ * console.error). Matches `MushiNetworkEntry.correlationId`. Set by the SDK's
1044
+ * active-request tracker (Phase 3b).
1045
+ */
1046
+ correlationId?: string;
988
1047
  }
989
1048
  interface MushiNetworkEntry {
990
1049
  method: string;
@@ -1002,6 +1061,17 @@ interface MushiNetworkEntry {
1002
1061
  * Used to correlate this network entry with a backend span in the admin console.
1003
1062
  */
1004
1063
  traceId?: string;
1064
+ /**
1065
+ * Whether this entry was captured by the fetch interceptor or the XHR interceptor
1066
+ * (Phase 3a). Used for row-level provenance badges in the console UI.
1067
+ */
1068
+ captureMethod?: 'fetch' | 'xhr';
1069
+ /**
1070
+ * Correlation ID shared with `MushiConsoleEntry.correlationId` and
1071
+ * `MushiBreadcrumb.correlationId` for entries emitted during this request's
1072
+ * lifetime (Phase 3b). Enables "highlight all logs/crumbs from this request."
1073
+ */
1074
+ correlationId?: string;
1005
1075
  }
1006
1076
  interface MushiPerformanceMetrics {
1007
1077
  fcp?: number;
@@ -2037,6 +2107,14 @@ declare function createPiiScrubber(config?: PiiScrubberConfig): {
2037
2107
  scrubObject: <T extends Record<string, unknown>>(obj: T, keys: string[]) => T;
2038
2108
  };
2039
2109
  declare function scrubPii(text: string, config?: PiiScrubberConfig): string;
2110
+ /**
2111
+ * Scrub the query-string portion(s) of a URL — both the standard `?…` part
2112
+ * and any `?…` inside the hash fragment (hash routers like RealWorld's
2113
+ * `#/path?query` carry their query inside the fragment). Path segments and
2114
+ * param keys are left untouched; only values are redacted. Accepts absolute
2115
+ * or relative URLs and never throws.
2116
+ */
2117
+ declare function scrubUrl(url: string, config?: PiiScrubberConfig): string;
2040
2118
 
2041
2119
  /**
2042
2120
  * Ring-buffer breadcrumb store. Capped at `max` entries (default 50);
@@ -2270,6 +2348,13 @@ declare const MUSHI_BANNER_NEON: {
2270
2348
  declare const MUSHI_ON_ACCENT = "#FAF7F0";
2271
2349
  /** Pure white for assistant bubbles on accent backgrounds. */
2272
2350
  declare const MUSHI_INVERSE = "#ffffff";
2351
+ /** Disabled control fill (inactive category chips, muted buttons). */
2352
+ declare const MUSHI_CONTROL_DISABLED: {
2353
+ readonly light: "#d1d1d6";
2354
+ readonly dark: "#3a3a3c";
2355
+ };
2356
+ /** Drop-shadow ink for RN shadowColor (sumi black). */
2357
+ declare const MUSHI_SHADOW_INK = "#000000";
2273
2358
  /** Submit-button depth shadow (accent ink, mode-specific). */
2274
2359
  declare const MUSHI_ACCENT_SHADOW: {
2275
2360
  readonly light: "#9A2A1E";
@@ -2340,6 +2425,48 @@ declare const MUSHI_MOTION: {
2340
2425
  readonly durationFast: 200;
2341
2426
  readonly durationPanel: 300;
2342
2427
  };
2428
+ /**
2429
+ * Full duration vocabulary (ms). MUSHI_MOTION retains its two values for
2430
+ * back-compat; this set adds the missing steps for micro-interactions and
2431
+ * expressive animations without changing the RN / Capacitor snapshot.
2432
+ */
2433
+ declare const MUSHI_DURATION: {
2434
+ /** Fastest — tooltip show, chip hover tint */
2435
+ readonly instant: 120;
2436
+ /** Default micro-interaction — most hover / focus transitions */
2437
+ readonly fast: 200;
2438
+ /** Button bloom, option-row wipe */
2439
+ readonly base: 220;
2440
+ /** Panel enter / exit */
2441
+ readonly panel: 300;
2442
+ /** Deliberate — success stamp press, page-level transitions */
2443
+ readonly slow: 420;
2444
+ /** Stamp ring draw, long ambient animations */
2445
+ readonly ring: 700;
2446
+ };
2447
+ /** Border widths (px) — editorial weight scale. */
2448
+ declare const MUSHI_BORDER: {
2449
+ readonly hairline: 1;
2450
+ readonly regular: 1.5;
2451
+ readonly strong: 2;
2452
+ /** Hanko stamp border (FAB inset accent stripe, stamp ring) */
2453
+ readonly stamp: 3;
2454
+ };
2455
+ /** Opacity scale — disabled, muted, scrim, overlay states. */
2456
+ declare const MUSHI_OPACITY: {
2457
+ readonly disabled: 0.4;
2458
+ readonly muted: 0.6;
2459
+ readonly scrim: 0.72;
2460
+ readonly overlay: 0.88;
2461
+ };
2462
+ /** Letter-spacing scale — mono captions to wide stamp labels. */
2463
+ declare const MUSHI_LETTER_SPACING: {
2464
+ readonly tight: "-0.01em";
2465
+ readonly normal: "0";
2466
+ readonly label: "0.02em";
2467
+ readonly stamp: "0.08em";
2468
+ readonly wide: "0.16em";
2469
+ };
2343
2470
  /**
2344
2471
  * Launcher geometry — the numbers that previously diverged between platforms
2345
2472
  * (banner height, FAB size, default gutter, panel width). Centralising them
@@ -2393,6 +2520,8 @@ interface MushiTokenSnapshot {
2393
2520
  type: typeof MUSHI_TYPE;
2394
2521
  z: typeof MUSHI_Z;
2395
2522
  motion: typeof MUSHI_MOTION;
2523
+ /** Full duration vocabulary — complements `motion` for micro / stamp steps. */
2524
+ duration: typeof MUSHI_DURATION;
2396
2525
  geometry: typeof MUSHI_GEOMETRY;
2397
2526
  copy: typeof MUSHI_COPY;
2398
2527
  }
@@ -2503,4 +2632,4 @@ declare function projectInitialsThemeIndex(projectId: string): number;
2503
2632
  */
2504
2633
  declare function readPageFaviconHref(): string | null;
2505
2634
 
2506
- export { type ApiClientOptions, type BreadcrumbBuffer, type BreadcrumbBufferOptions, DEFAULT_API_ENDPOINT, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, type EnvConfigDiagnostics, type EnvNearMiss, type LogEntry, type LogFormat, type LogLevel, type Logger, type LoggerOptions, MAX_REPORT_PAYLOAD_BYTES, MAX_SCREENSHOT_DATA_URL_BYTES, MUSHI_ACCENT_SHADOW, MUSHI_BANNER_BRAND_BORDER, MUSHI_BANNER_NEON, MUSHI_COLORS_DARK, MUSHI_COLORS_LIGHT, MUSHI_COPY, MUSHI_GEOMETRY, MUSHI_IDENTITY_TOKEN_PREFIX, MUSHI_INTERNAL_HEADER, MUSHI_INTERNAL_INIT_MARKER, MUSHI_INVERSE, MUSHI_MOTION, MUSHI_ON_ACCENT, MUSHI_PROJECT_HEADER, MUSHI_RADIUS, MUSHI_REPORTER_STATUS, MUSHI_SDK_PACKAGE_HEADER, MUSHI_SDK_VERSION_HEADER, MUSHI_SPACING, MUSHI_TIER_COLORS, MUSHI_TYPE, MUSHI_USER_TOKEN_HEADER, MUSHI_Z, type MushiActivityEvent, type MushiApiCascadeConfig, type MushiApiClient, type MushiApiResponse, type MushiAssistantConfig, type MushiAssistantReply, type MushiAssistantStep, type MushiBannerConfig, type MushiBannerLink, type MushiBetaChangelogEntry, type MushiBetaModeConfig, type MushiBreadcrumb, type MushiCaptureConfig, type MushiCaptureEventInput, type MushiCaptureExceptionOptions, type MushiColorPalette, type MushiConfig, type MushiConsoleEntry, type MushiCooldownConfig, type MushiCrossAppReport, type MushiCustomCategory, type MushiDiagnosticsResult, type MushiDiscoverInventoryConfig, type MushiDiscoveryEventPayload, type MushiEnvironment, type MushiEventHandler, type MushiEventType, type MushiHallOfFameEntry, type MushiIdentityClaims, type MushiIntegrationsConfig, type MushiInternalRequestKind, type MushiLeaderboardEntry, type MushiNetworkEntry, type MushiOfflineConfig, type MushiOnDeviceClassifier, type MushiOnDeviceClassifierInput, type MushiOnDeviceClassifierResult, type MushiPageContext, type MushiPerformanceMetrics, type MushiPreFilterConfig, type MushiPreset, type MushiPrivacyConfig, type MushiProactiveConfig, type MushiRegion, type MushiReport, type MushiReportBuilder, type MushiReportCategory, type MushiReportStatus, type MushiReporterComment, type MushiReporterReport, type MushiReputationResult, type MushiRewardsConfig, type MushiRuntimeSdkConfig, type MushiSDKInstance, type MushiSdkVersionInfo, type MushiSelectedElement, type MushiSentryConfig, type MushiSentryContext, type MushiSessionEventPayload, type MushiTesterReputation, type MushiThemeMode, type MushiTierResult, type MushiTimelineEntry, type MushiTimelineKind, type MushiTokenSnapshot, type MushiTracePropagationConfig, type MushiUrlMatcher, type MushiWidgetAnchor, type MushiWidgetConfig, type NormalisedException, type OfflineQueue, type PayloadGuardResult, type PiiScrubberConfig, type PreFilterResult, type ProjectFaviconSource, REGION_ENDPOINTS, type RateLimiter, type RateLimiterConfig, type ResolvedEnvConfig, type SessionTrackerOptions, buildIdentityClaims, buildSdkIngestHeaders, captureEnvironment, checkReportPayloadSize, createApiClient, createBreadcrumbBuffer, createLogger, createOfflineQueue, createPiiScrubber, createPreFilter, createRateLimiter, destroySessionTracker, diagnoseEnvConfig, estimateJsonBytes, expandPreset, faviconUrlCandidates, formatBytes, getDeviceFingerprintHash, getReporterToken, getSessionId, githubRepoDomainHint, hmacSha256Hex, initSessionTracker, isLikelyGenericFavicon, isUntrustedFaviconUrl, mushiPalette, mushiTokens, newUuid, noopLogger, normaliseThrown, originToDomain, parseIdentityToken, projectFaviconUrlCandidates, projectInitials, projectInitialsThemeIndex, readPageFaviconHref, resolveEnvConfig, resolveProjectDomain, resolveProjectFaviconDomains, resolveRegionEndpoint, resolveWidgetAccent, safeWidgetHex, scrubPii, sha256Hex, trackPageView, updateSessionIdentity, validateConfig };
2635
+ export { type ApiClientOptions, type BreadcrumbBuffer, type BreadcrumbBufferOptions, DEFAULT_API_ENDPOINT, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, type EnvConfigDiagnostics, type EnvNearMiss, type LogEntry, type LogFormat, type LogLevel, type Logger, type LoggerOptions, MAX_REPORT_PAYLOAD_BYTES, MAX_SCREENSHOT_DATA_URL_BYTES, MUSHI_ACCENT_SHADOW, MUSHI_BANNER_BRAND_BORDER, MUSHI_BANNER_NEON, MUSHI_BORDER, MUSHI_COLORS_DARK, MUSHI_COLORS_LIGHT, MUSHI_CONTROL_DISABLED, MUSHI_COPY, MUSHI_DURATION, MUSHI_GEOMETRY, MUSHI_IDENTITY_TOKEN_PREFIX, MUSHI_INTERNAL_HEADER, MUSHI_INTERNAL_INIT_MARKER, MUSHI_INVERSE, MUSHI_LETTER_SPACING, MUSHI_MOTION, MUSHI_ON_ACCENT, MUSHI_OPACITY, MUSHI_PROJECT_HEADER, MUSHI_RADIUS, MUSHI_REPORTER_STATUS, MUSHI_SDK_PACKAGE_HEADER, MUSHI_SDK_VERSION_HEADER, MUSHI_SHADOW_INK, MUSHI_SPACING, MUSHI_TIER_COLORS, MUSHI_TYPE, MUSHI_USER_TOKEN_HEADER, MUSHI_Z, type MushiActivityEvent, type MushiApiCascadeConfig, type MushiApiClient, type MushiApiResponse, type MushiAssistantConfig, type MushiAssistantReply, type MushiAssistantStep, type MushiBannerConfig, type MushiBannerLink, type MushiBetaChangelogEntry, type MushiBetaModeConfig, type MushiBreadcrumb, type MushiCaptureConfig, type MushiCaptureEventInput, type MushiCaptureExceptionOptions, type MushiColorPalette, type MushiConfig, type MushiConsoleEntry, type MushiCooldownConfig, type MushiCrossAppReport, type MushiCustomCategory, type MushiDiagnosticsResult, type MushiDiscoverInventoryConfig, type MushiDiscoveryEventPayload, type MushiEnvironment, type MushiEventHandler, type MushiEventType, type MushiHallOfFameEntry, type MushiIdentityClaims, type MushiIntegrationsConfig, type MushiInternalRequestKind, type MushiLeaderboardEntry, type MushiNetworkEntry, type MushiOfflineConfig, type MushiOnDeviceClassifier, type MushiOnDeviceClassifierInput, type MushiOnDeviceClassifierResult, type MushiPageContext, type MushiPerformanceMetrics, type MushiPreFilterConfig, type MushiPreset, type MushiPrivacyConfig, type MushiProactiveConfig, type MushiRegion, type MushiReport, type MushiReportBuilder, type MushiReportCategory, type MushiReportStatus, type MushiReporterComment, type MushiReporterReport, type MushiReputationResult, type MushiRewardsConfig, type MushiRuntimeSdkConfig, type MushiSDKInstance, type MushiSdkVersionInfo, type MushiSelectedElement, type MushiSentryConfig, type MushiSentryContext, type MushiSessionEventPayload, type MushiTesterReputation, type MushiThemeMode, type MushiTierResult, type MushiTimelineEntry, type MushiTimelineKind, type MushiTokenSnapshot, type MushiTracePropagationConfig, type MushiUrlMatcher, type MushiWidgetAnchor, type MushiWidgetConfig, type NormalisedException, type OfflineQueue, type PayloadGuardResult, type PiiScrubberConfig, type PreFilterResult, type ProjectFaviconSource, REGION_ENDPOINTS, type RateLimiter, type RateLimiterConfig, type ResolvedEnvConfig, type SessionTrackerOptions, buildIdentityClaims, buildSdkIngestHeaders, captureEnvironment, checkReportPayloadSize, createApiClient, createBreadcrumbBuffer, createLogger, createOfflineQueue, createPiiScrubber, createPreFilter, createRateLimiter, destroySessionTracker, diagnoseEnvConfig, estimateJsonBytes, expandPreset, faviconUrlCandidates, formatBytes, getDeviceFingerprintHash, getReporterToken, getSessionId, githubRepoDomainHint, hmacSha256Hex, initSessionTracker, isLikelyGenericFavicon, isUntrustedFaviconUrl, mushiPalette, mushiTokens, newUuid, noopLogger, normaliseThrown, originToDomain, parseIdentityToken, projectFaviconUrlCandidates, projectInitials, projectInitialsThemeIndex, readPageFaviconHref, resolveEnvConfig, resolveProjectDomain, resolveProjectFaviconDomains, resolveRegionEndpoint, resolveWidgetAccent, safeWidgetHex, scrubPii, scrubUrl, sha256Hex, trackPageView, updateSessionIdentity, validateConfig };
package/dist/index.d.ts CHANGED
@@ -46,7 +46,52 @@ interface MushiConfig {
46
46
  * when omitted (legacy Vercel Analytics wiring).
47
47
  */
48
48
  appVersion?: string;
49
- /** Hook called before a report is sent. Return null to cancel, or return the (possibly modified) report. */
49
+ /**
50
+ * Probabilistic sampling rate for session-replay recording (rrweb/lite).
51
+ * Range 0–1, default 1 (record all sessions). The sampling decision is made
52
+ * once at session init — a sampled-out session never loads the rrweb chunk,
53
+ * reducing bundle cost and CPU for excluded users.
54
+ *
55
+ * Independent of `sampleRate` (error reporting). A session can have replay
56
+ * on but errors sampled, or vice versa.
57
+ *
58
+ * @example
59
+ * replaySampleRate: 0.2 // record replay for ~20% of sessions
60
+ */
61
+ replaySampleRate?: number;
62
+ /**
63
+ * Probabilistic sampling rate for automatic (non-user-initiated) error
64
+ * reports. Range 0–1, default 1 (send all). User-initiated feedback reports
65
+ * are always sent regardless of this value.
66
+ *
67
+ * Examples:
68
+ * sampleRate: 0.1 → send ~10% of auto-captured errors
69
+ * sampleRate: 1 → send all (default)
70
+ * sampleRate: 0 → send none (disables automatic capture; feedback unaffected)
71
+ *
72
+ * When rate limiting or circuit breaker is also active, the stricter of the
73
+ * two gates applies. Use sampleRate for sustained high-volume apps; use
74
+ * rate limiting for burst protection.
75
+ */
76
+ sampleRate?: number;
77
+ /**
78
+ * Hook called before ANY report (error, exception, or user feedback) is
79
+ * sent. Return null to cancel the report; return the (possibly modified)
80
+ * report to proceed. Async version supported — resolution is awaited before
81
+ * submission. Runs AFTER built-in PII scrubbing.
82
+ *
83
+ * @example
84
+ * beforeSend: (report) => {
85
+ * if (report.category === 'bug' && report.description.includes('internal')) return null
86
+ * return { ...report, description: sanitize(report.description) }
87
+ * }
88
+ */
89
+ beforeSend?: (report: MushiReport) => MushiReport | null | Promise<MushiReport | null>;
90
+ /**
91
+ * @deprecated Use `beforeSend` instead. `beforeSendFeedback` is kept for
92
+ * backwards compatibility and applies only to user-submitted feedback reports.
93
+ * `beforeSend` covers all report types and takes precedence when both are set.
94
+ */
50
95
  beforeSendFeedback?: (report: MushiReport) => MushiReport | null | Promise<MushiReport | null>;
51
96
  /** Called once if the app crashed during the previous session. */
52
97
  onCrashedLastRun?: (crashed: boolean) => void;
@@ -774,6 +819,13 @@ interface MushiBreadcrumb {
774
819
  message: string;
775
820
  /** Optional structured payload — kept small to keep ingest cheap. */
776
821
  data?: Record<string, unknown>;
822
+ /**
823
+ * Correlation ID linking this breadcrumb to the `MushiNetworkEntry` and
824
+ * `MushiConsoleEntry` entries emitted during the same network request's
825
+ * lifetime (Phase 3b). Set for `fetch` / `xhr` category crumbs and for
826
+ * console entries captured while a request was in-flight.
827
+ */
828
+ correlationId?: string;
777
829
  }
778
830
  /**
779
831
  * Snapshot of Sentry's current scope at report submission. Captured by
@@ -985,6 +1037,13 @@ interface MushiConsoleEntry {
985
1037
  message: string;
986
1038
  timestamp: number;
987
1039
  stack?: string;
1040
+ /**
1041
+ * Correlation ID linking this console entry to the network request that was
1042
+ * active when this log was emitted (e.g. the fetch whose catch block called
1043
+ * console.error). Matches `MushiNetworkEntry.correlationId`. Set by the SDK's
1044
+ * active-request tracker (Phase 3b).
1045
+ */
1046
+ correlationId?: string;
988
1047
  }
989
1048
  interface MushiNetworkEntry {
990
1049
  method: string;
@@ -1002,6 +1061,17 @@ interface MushiNetworkEntry {
1002
1061
  * Used to correlate this network entry with a backend span in the admin console.
1003
1062
  */
1004
1063
  traceId?: string;
1064
+ /**
1065
+ * Whether this entry was captured by the fetch interceptor or the XHR interceptor
1066
+ * (Phase 3a). Used for row-level provenance badges in the console UI.
1067
+ */
1068
+ captureMethod?: 'fetch' | 'xhr';
1069
+ /**
1070
+ * Correlation ID shared with `MushiConsoleEntry.correlationId` and
1071
+ * `MushiBreadcrumb.correlationId` for entries emitted during this request's
1072
+ * lifetime (Phase 3b). Enables "highlight all logs/crumbs from this request."
1073
+ */
1074
+ correlationId?: string;
1005
1075
  }
1006
1076
  interface MushiPerformanceMetrics {
1007
1077
  fcp?: number;
@@ -2037,6 +2107,14 @@ declare function createPiiScrubber(config?: PiiScrubberConfig): {
2037
2107
  scrubObject: <T extends Record<string, unknown>>(obj: T, keys: string[]) => T;
2038
2108
  };
2039
2109
  declare function scrubPii(text: string, config?: PiiScrubberConfig): string;
2110
+ /**
2111
+ * Scrub the query-string portion(s) of a URL — both the standard `?…` part
2112
+ * and any `?…` inside the hash fragment (hash routers like RealWorld's
2113
+ * `#/path?query` carry their query inside the fragment). Path segments and
2114
+ * param keys are left untouched; only values are redacted. Accepts absolute
2115
+ * or relative URLs and never throws.
2116
+ */
2117
+ declare function scrubUrl(url: string, config?: PiiScrubberConfig): string;
2040
2118
 
2041
2119
  /**
2042
2120
  * Ring-buffer breadcrumb store. Capped at `max` entries (default 50);
@@ -2270,6 +2348,13 @@ declare const MUSHI_BANNER_NEON: {
2270
2348
  declare const MUSHI_ON_ACCENT = "#FAF7F0";
2271
2349
  /** Pure white for assistant bubbles on accent backgrounds. */
2272
2350
  declare const MUSHI_INVERSE = "#ffffff";
2351
+ /** Disabled control fill (inactive category chips, muted buttons). */
2352
+ declare const MUSHI_CONTROL_DISABLED: {
2353
+ readonly light: "#d1d1d6";
2354
+ readonly dark: "#3a3a3c";
2355
+ };
2356
+ /** Drop-shadow ink for RN shadowColor (sumi black). */
2357
+ declare const MUSHI_SHADOW_INK = "#000000";
2273
2358
  /** Submit-button depth shadow (accent ink, mode-specific). */
2274
2359
  declare const MUSHI_ACCENT_SHADOW: {
2275
2360
  readonly light: "#9A2A1E";
@@ -2340,6 +2425,48 @@ declare const MUSHI_MOTION: {
2340
2425
  readonly durationFast: 200;
2341
2426
  readonly durationPanel: 300;
2342
2427
  };
2428
+ /**
2429
+ * Full duration vocabulary (ms). MUSHI_MOTION retains its two values for
2430
+ * back-compat; this set adds the missing steps for micro-interactions and
2431
+ * expressive animations without changing the RN / Capacitor snapshot.
2432
+ */
2433
+ declare const MUSHI_DURATION: {
2434
+ /** Fastest — tooltip show, chip hover tint */
2435
+ readonly instant: 120;
2436
+ /** Default micro-interaction — most hover / focus transitions */
2437
+ readonly fast: 200;
2438
+ /** Button bloom, option-row wipe */
2439
+ readonly base: 220;
2440
+ /** Panel enter / exit */
2441
+ readonly panel: 300;
2442
+ /** Deliberate — success stamp press, page-level transitions */
2443
+ readonly slow: 420;
2444
+ /** Stamp ring draw, long ambient animations */
2445
+ readonly ring: 700;
2446
+ };
2447
+ /** Border widths (px) — editorial weight scale. */
2448
+ declare const MUSHI_BORDER: {
2449
+ readonly hairline: 1;
2450
+ readonly regular: 1.5;
2451
+ readonly strong: 2;
2452
+ /** Hanko stamp border (FAB inset accent stripe, stamp ring) */
2453
+ readonly stamp: 3;
2454
+ };
2455
+ /** Opacity scale — disabled, muted, scrim, overlay states. */
2456
+ declare const MUSHI_OPACITY: {
2457
+ readonly disabled: 0.4;
2458
+ readonly muted: 0.6;
2459
+ readonly scrim: 0.72;
2460
+ readonly overlay: 0.88;
2461
+ };
2462
+ /** Letter-spacing scale — mono captions to wide stamp labels. */
2463
+ declare const MUSHI_LETTER_SPACING: {
2464
+ readonly tight: "-0.01em";
2465
+ readonly normal: "0";
2466
+ readonly label: "0.02em";
2467
+ readonly stamp: "0.08em";
2468
+ readonly wide: "0.16em";
2469
+ };
2343
2470
  /**
2344
2471
  * Launcher geometry — the numbers that previously diverged between platforms
2345
2472
  * (banner height, FAB size, default gutter, panel width). Centralising them
@@ -2393,6 +2520,8 @@ interface MushiTokenSnapshot {
2393
2520
  type: typeof MUSHI_TYPE;
2394
2521
  z: typeof MUSHI_Z;
2395
2522
  motion: typeof MUSHI_MOTION;
2523
+ /** Full duration vocabulary — complements `motion` for micro / stamp steps. */
2524
+ duration: typeof MUSHI_DURATION;
2396
2525
  geometry: typeof MUSHI_GEOMETRY;
2397
2526
  copy: typeof MUSHI_COPY;
2398
2527
  }
@@ -2503,4 +2632,4 @@ declare function projectInitialsThemeIndex(projectId: string): number;
2503
2632
  */
2504
2633
  declare function readPageFaviconHref(): string | null;
2505
2634
 
2506
- export { type ApiClientOptions, type BreadcrumbBuffer, type BreadcrumbBufferOptions, DEFAULT_API_ENDPOINT, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, type EnvConfigDiagnostics, type EnvNearMiss, type LogEntry, type LogFormat, type LogLevel, type Logger, type LoggerOptions, MAX_REPORT_PAYLOAD_BYTES, MAX_SCREENSHOT_DATA_URL_BYTES, MUSHI_ACCENT_SHADOW, MUSHI_BANNER_BRAND_BORDER, MUSHI_BANNER_NEON, MUSHI_COLORS_DARK, MUSHI_COLORS_LIGHT, MUSHI_COPY, MUSHI_GEOMETRY, MUSHI_IDENTITY_TOKEN_PREFIX, MUSHI_INTERNAL_HEADER, MUSHI_INTERNAL_INIT_MARKER, MUSHI_INVERSE, MUSHI_MOTION, MUSHI_ON_ACCENT, MUSHI_PROJECT_HEADER, MUSHI_RADIUS, MUSHI_REPORTER_STATUS, MUSHI_SDK_PACKAGE_HEADER, MUSHI_SDK_VERSION_HEADER, MUSHI_SPACING, MUSHI_TIER_COLORS, MUSHI_TYPE, MUSHI_USER_TOKEN_HEADER, MUSHI_Z, type MushiActivityEvent, type MushiApiCascadeConfig, type MushiApiClient, type MushiApiResponse, type MushiAssistantConfig, type MushiAssistantReply, type MushiAssistantStep, type MushiBannerConfig, type MushiBannerLink, type MushiBetaChangelogEntry, type MushiBetaModeConfig, type MushiBreadcrumb, type MushiCaptureConfig, type MushiCaptureEventInput, type MushiCaptureExceptionOptions, type MushiColorPalette, type MushiConfig, type MushiConsoleEntry, type MushiCooldownConfig, type MushiCrossAppReport, type MushiCustomCategory, type MushiDiagnosticsResult, type MushiDiscoverInventoryConfig, type MushiDiscoveryEventPayload, type MushiEnvironment, type MushiEventHandler, type MushiEventType, type MushiHallOfFameEntry, type MushiIdentityClaims, type MushiIntegrationsConfig, type MushiInternalRequestKind, type MushiLeaderboardEntry, type MushiNetworkEntry, type MushiOfflineConfig, type MushiOnDeviceClassifier, type MushiOnDeviceClassifierInput, type MushiOnDeviceClassifierResult, type MushiPageContext, type MushiPerformanceMetrics, type MushiPreFilterConfig, type MushiPreset, type MushiPrivacyConfig, type MushiProactiveConfig, type MushiRegion, type MushiReport, type MushiReportBuilder, type MushiReportCategory, type MushiReportStatus, type MushiReporterComment, type MushiReporterReport, type MushiReputationResult, type MushiRewardsConfig, type MushiRuntimeSdkConfig, type MushiSDKInstance, type MushiSdkVersionInfo, type MushiSelectedElement, type MushiSentryConfig, type MushiSentryContext, type MushiSessionEventPayload, type MushiTesterReputation, type MushiThemeMode, type MushiTierResult, type MushiTimelineEntry, type MushiTimelineKind, type MushiTokenSnapshot, type MushiTracePropagationConfig, type MushiUrlMatcher, type MushiWidgetAnchor, type MushiWidgetConfig, type NormalisedException, type OfflineQueue, type PayloadGuardResult, type PiiScrubberConfig, type PreFilterResult, type ProjectFaviconSource, REGION_ENDPOINTS, type RateLimiter, type RateLimiterConfig, type ResolvedEnvConfig, type SessionTrackerOptions, buildIdentityClaims, buildSdkIngestHeaders, captureEnvironment, checkReportPayloadSize, createApiClient, createBreadcrumbBuffer, createLogger, createOfflineQueue, createPiiScrubber, createPreFilter, createRateLimiter, destroySessionTracker, diagnoseEnvConfig, estimateJsonBytes, expandPreset, faviconUrlCandidates, formatBytes, getDeviceFingerprintHash, getReporterToken, getSessionId, githubRepoDomainHint, hmacSha256Hex, initSessionTracker, isLikelyGenericFavicon, isUntrustedFaviconUrl, mushiPalette, mushiTokens, newUuid, noopLogger, normaliseThrown, originToDomain, parseIdentityToken, projectFaviconUrlCandidates, projectInitials, projectInitialsThemeIndex, readPageFaviconHref, resolveEnvConfig, resolveProjectDomain, resolveProjectFaviconDomains, resolveRegionEndpoint, resolveWidgetAccent, safeWidgetHex, scrubPii, sha256Hex, trackPageView, updateSessionIdentity, validateConfig };
2635
+ export { type ApiClientOptions, type BreadcrumbBuffer, type BreadcrumbBufferOptions, DEFAULT_API_ENDPOINT, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, type EnvConfigDiagnostics, type EnvNearMiss, type LogEntry, type LogFormat, type LogLevel, type Logger, type LoggerOptions, MAX_REPORT_PAYLOAD_BYTES, MAX_SCREENSHOT_DATA_URL_BYTES, MUSHI_ACCENT_SHADOW, MUSHI_BANNER_BRAND_BORDER, MUSHI_BANNER_NEON, MUSHI_BORDER, MUSHI_COLORS_DARK, MUSHI_COLORS_LIGHT, MUSHI_CONTROL_DISABLED, MUSHI_COPY, MUSHI_DURATION, MUSHI_GEOMETRY, MUSHI_IDENTITY_TOKEN_PREFIX, MUSHI_INTERNAL_HEADER, MUSHI_INTERNAL_INIT_MARKER, MUSHI_INVERSE, MUSHI_LETTER_SPACING, MUSHI_MOTION, MUSHI_ON_ACCENT, MUSHI_OPACITY, MUSHI_PROJECT_HEADER, MUSHI_RADIUS, MUSHI_REPORTER_STATUS, MUSHI_SDK_PACKAGE_HEADER, MUSHI_SDK_VERSION_HEADER, MUSHI_SHADOW_INK, MUSHI_SPACING, MUSHI_TIER_COLORS, MUSHI_TYPE, MUSHI_USER_TOKEN_HEADER, MUSHI_Z, type MushiActivityEvent, type MushiApiCascadeConfig, type MushiApiClient, type MushiApiResponse, type MushiAssistantConfig, type MushiAssistantReply, type MushiAssistantStep, type MushiBannerConfig, type MushiBannerLink, type MushiBetaChangelogEntry, type MushiBetaModeConfig, type MushiBreadcrumb, type MushiCaptureConfig, type MushiCaptureEventInput, type MushiCaptureExceptionOptions, type MushiColorPalette, type MushiConfig, type MushiConsoleEntry, type MushiCooldownConfig, type MushiCrossAppReport, type MushiCustomCategory, type MushiDiagnosticsResult, type MushiDiscoverInventoryConfig, type MushiDiscoveryEventPayload, type MushiEnvironment, type MushiEventHandler, type MushiEventType, type MushiHallOfFameEntry, type MushiIdentityClaims, type MushiIntegrationsConfig, type MushiInternalRequestKind, type MushiLeaderboardEntry, type MushiNetworkEntry, type MushiOfflineConfig, type MushiOnDeviceClassifier, type MushiOnDeviceClassifierInput, type MushiOnDeviceClassifierResult, type MushiPageContext, type MushiPerformanceMetrics, type MushiPreFilterConfig, type MushiPreset, type MushiPrivacyConfig, type MushiProactiveConfig, type MushiRegion, type MushiReport, type MushiReportBuilder, type MushiReportCategory, type MushiReportStatus, type MushiReporterComment, type MushiReporterReport, type MushiReputationResult, type MushiRewardsConfig, type MushiRuntimeSdkConfig, type MushiSDKInstance, type MushiSdkVersionInfo, type MushiSelectedElement, type MushiSentryConfig, type MushiSentryContext, type MushiSessionEventPayload, type MushiTesterReputation, type MushiThemeMode, type MushiTierResult, type MushiTimelineEntry, type MushiTimelineKind, type MushiTokenSnapshot, type MushiTracePropagationConfig, type MushiUrlMatcher, type MushiWidgetAnchor, type MushiWidgetConfig, type NormalisedException, type OfflineQueue, type PayloadGuardResult, type PiiScrubberConfig, type PreFilterResult, type ProjectFaviconSource, REGION_ENDPOINTS, type RateLimiter, type RateLimiterConfig, type ResolvedEnvConfig, type SessionTrackerOptions, buildIdentityClaims, buildSdkIngestHeaders, captureEnvironment, checkReportPayloadSize, createApiClient, createBreadcrumbBuffer, createLogger, createOfflineQueue, createPiiScrubber, createPreFilter, createRateLimiter, destroySessionTracker, diagnoseEnvConfig, estimateJsonBytes, expandPreset, faviconUrlCandidates, formatBytes, getDeviceFingerprintHash, getReporterToken, getSessionId, githubRepoDomainHint, hmacSha256Hex, initSessionTracker, isLikelyGenericFavicon, isUntrustedFaviconUrl, mushiPalette, mushiTokens, newUuid, noopLogger, normaliseThrown, originToDomain, parseIdentityToken, projectFaviconUrlCandidates, projectInitials, projectInitialsThemeIndex, readPageFaviconHref, resolveEnvConfig, resolveProjectDomain, resolveProjectFaviconDomains, resolveRegionEndpoint, resolveWidgetAccent, safeWidgetHex, scrubPii, scrubUrl, sha256Hex, trackPageView, updateSessionIdentity, validateConfig };
package/dist/index.js CHANGED
@@ -503,9 +503,9 @@ function isRetryable(error) {
503
503
 
504
504
  // src/region.ts
505
505
  var REGION_ENDPOINTS = {
506
- us: "https://dxptnwrhwsqckaftyymj.supabase.co/functions/v1/api",
507
- eu: "https://dxptnwrhwsqckaftyymj.supabase.co/functions/v1/api",
508
- jp: "https://dxptnwrhwsqckaftyymj.supabase.co/functions/v1/api"
506
+ us: DEFAULT_API_ENDPOINT,
507
+ eu: DEFAULT_API_ENDPOINT,
508
+ jp: DEFAULT_API_ENDPOINT
509
509
  };
510
510
  var ROUTING_CACHE_KEY = "mushi_region_v1";
511
511
  var ROUTING_CACHE_TTL_MS = 24 * 60 * 60 * 1e3;
@@ -697,6 +697,8 @@ var KNOWN_CONFIG_KEYS = [
697
697
  "debug",
698
698
  "enabled",
699
699
  "appVersion",
700
+ "sampleRate",
701
+ "beforeSend",
700
702
  "beforeSendFeedback",
701
703
  "onCrashedLastRun"
702
704
  ];
@@ -2034,6 +2036,46 @@ function createPiiScrubber(config = {}) {
2034
2036
  function scrubPii(text, config) {
2035
2037
  return createPiiScrubber(config).scrub(text);
2036
2038
  }
2039
+ var SENSITIVE_QUERY_KEY_SUBSTRING_RE = /token|jwt|passw|pwd|secret|api[-_]?key|apikey|auth|session|signature|email|phone|ssn/i;
2040
+ var SENSITIVE_QUERY_KEY_EXACT_RE = /^(?:key|code|sig)$/i;
2041
+ function isSensitiveQueryKey(key) {
2042
+ let decoded = key;
2043
+ try {
2044
+ decoded = decodeURIComponent(key);
2045
+ } catch {
2046
+ }
2047
+ return SENSITIVE_QUERY_KEY_SUBSTRING_RE.test(decoded) || SENSITIVE_QUERY_KEY_EXACT_RE.test(decoded);
2048
+ }
2049
+ function scrubQueryPairs(query, scrub) {
2050
+ return query.split("&").map((pair) => {
2051
+ const eq = pair.indexOf("=");
2052
+ if (eq === -1) return pair;
2053
+ const key = pair.slice(0, eq);
2054
+ const value = pair.slice(eq + 1);
2055
+ if (value.length === 0) return pair;
2056
+ if (isSensitiveQueryKey(key)) return `${key}=[Scrubbed]`;
2057
+ let decoded = value;
2058
+ try {
2059
+ decoded = decodeURIComponent(value);
2060
+ } catch {
2061
+ }
2062
+ const scrubbed = scrub(decoded);
2063
+ if (scrubbed !== decoded) return `${key}=${encodeURIComponent(scrubbed)}`;
2064
+ return pair;
2065
+ }).join("&");
2066
+ }
2067
+ function scrubUrl(url, config) {
2068
+ if (!url || !url.includes("?") && !url.includes("#")) return url;
2069
+ const { scrub } = createPiiScrubber(config);
2070
+ const scrubPart = (part) => {
2071
+ const qIdx = part.indexOf("?");
2072
+ if (qIdx === -1) return part;
2073
+ return part.slice(0, qIdx + 1) + scrubQueryPairs(part.slice(qIdx + 1), scrub);
2074
+ };
2075
+ const hashIdx = url.indexOf("#");
2076
+ if (hashIdx === -1) return scrubPart(url);
2077
+ return scrubPart(url.slice(0, hashIdx)) + scrubPart(url.slice(hashIdx));
2078
+ }
2037
2079
 
2038
2080
  // src/breadcrumbs.ts
2039
2081
  var DEFAULT_MAX = 50;
@@ -2117,8 +2159,10 @@ var MUSHI_COLORS_LIGHT = {
2117
2159
  accent: "#E03C2C",
2118
2160
  accentWash: "rgba(224,60,44,0.08)",
2119
2161
  accentInk: "#7A1F15",
2120
- ok: "#16A34A",
2121
- danger: "#DC2626"
2162
+ /** Aligned with brand.tokens.json `jade` (was Tailwind green-600 — drifted). */
2163
+ ok: "#2D7A55",
2164
+ /** Aligned with brand.tokens.json `viz-danger` (was Tailwind red-600 — drifted). */
2165
+ danger: "#B83232"
2122
2166
  };
2123
2167
  var MUSHI_COLORS_DARK = {
2124
2168
  paper: "#0F0E0C",
@@ -2132,8 +2176,10 @@ var MUSHI_COLORS_DARK = {
2132
2176
  accent: "#FF5A47",
2133
2177
  accentWash: "rgba(255,90,71,0.12)",
2134
2178
  accentInk: "#FFE5E0",
2135
- ok: "#4ADE80",
2136
- danger: "#F87171"
2179
+ /** Aligned with brand.tokens.json `dark-jade`. */
2180
+ ok: "#3A9E6E",
2181
+ /** Aligned with brand.tokens.json `dark-viz-danger`. */
2182
+ danger: "#E05555"
2137
2183
  };
2138
2184
  var MUSHI_TIER_COLORS = {
2139
2185
  free: MUSHI_COLORS_LIGHT.inkMuted,
@@ -2149,6 +2195,11 @@ var MUSHI_BANNER_NEON = {
2149
2195
  };
2150
2196
  var MUSHI_ON_ACCENT = "#FAF7F0";
2151
2197
  var MUSHI_INVERSE = "#ffffff";
2198
+ var MUSHI_CONTROL_DISABLED = {
2199
+ light: "#d1d1d6",
2200
+ dark: "#3a3a3c"
2201
+ };
2202
+ var MUSHI_SHADOW_INK = "#000000";
2152
2203
  var MUSHI_ACCENT_SHADOW = {
2153
2204
  light: "#9A2A1E",
2154
2205
  dark: "#7A1F15"
@@ -2214,6 +2265,40 @@ var MUSHI_MOTION = {
2214
2265
  durationFast: 200,
2215
2266
  durationPanel: 300
2216
2267
  };
2268
+ var MUSHI_DURATION = {
2269
+ /** Fastest — tooltip show, chip hover tint */
2270
+ instant: 120,
2271
+ /** Default micro-interaction — most hover / focus transitions */
2272
+ fast: 200,
2273
+ /** Button bloom, option-row wipe */
2274
+ base: 220,
2275
+ /** Panel enter / exit */
2276
+ panel: 300,
2277
+ /** Deliberate — success stamp press, page-level transitions */
2278
+ slow: 420,
2279
+ /** Stamp ring draw, long ambient animations */
2280
+ ring: 700
2281
+ };
2282
+ var MUSHI_BORDER = {
2283
+ hairline: 1,
2284
+ regular: 1.5,
2285
+ strong: 2,
2286
+ /** Hanko stamp border (FAB inset accent stripe, stamp ring) */
2287
+ stamp: 3
2288
+ };
2289
+ var MUSHI_OPACITY = {
2290
+ disabled: 0.4,
2291
+ muted: 0.6,
2292
+ scrim: 0.72,
2293
+ overlay: 0.88
2294
+ };
2295
+ var MUSHI_LETTER_SPACING = {
2296
+ tight: "-0.01em",
2297
+ normal: "0",
2298
+ label: "0.02em",
2299
+ stamp: "0.08em",
2300
+ wide: "0.16em"
2301
+ };
2217
2302
  var MUSHI_GEOMETRY = {
2218
2303
  bannerHeight: 36,
2219
2304
  fabSize: 52,
@@ -2259,6 +2344,7 @@ function mushiTokens(mode) {
2259
2344
  type: MUSHI_TYPE,
2260
2345
  z: MUSHI_Z,
2261
2346
  motion: MUSHI_MOTION,
2347
+ duration: MUSHI_DURATION,
2262
2348
  geometry: MUSHI_GEOMETRY,
2263
2349
  copy: MUSHI_COPY
2264
2350
  };
@@ -2493,6 +2579,6 @@ function isSafeFaviconHref(href) {
2493
2579
  }
2494
2580
  }
2495
2581
 
2496
- export { DEFAULT_API_ENDPOINT, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, MAX_REPORT_PAYLOAD_BYTES, MAX_SCREENSHOT_DATA_URL_BYTES, MUSHI_ACCENT_SHADOW, MUSHI_BANNER_BRAND_BORDER, MUSHI_BANNER_NEON, MUSHI_COLORS_DARK, MUSHI_COLORS_LIGHT, MUSHI_COPY, MUSHI_GEOMETRY, MUSHI_IDENTITY_TOKEN_PREFIX, MUSHI_INTERNAL_HEADER, MUSHI_INTERNAL_INIT_MARKER, MUSHI_INVERSE, MUSHI_MOTION, MUSHI_ON_ACCENT, MUSHI_PROJECT_HEADER, MUSHI_RADIUS, MUSHI_REPORTER_STATUS, MUSHI_SDK_PACKAGE_HEADER, MUSHI_SDK_VERSION_HEADER, MUSHI_SPACING, MUSHI_TIER_COLORS, MUSHI_TYPE, MUSHI_USER_TOKEN_HEADER, MUSHI_Z, REGION_ENDPOINTS, buildIdentityClaims, buildSdkIngestHeaders, captureEnvironment, checkReportPayloadSize, createApiClient, createBreadcrumbBuffer, createLogger, createOfflineQueue, createPiiScrubber, createPreFilter, createRateLimiter, destroySessionTracker, diagnoseEnvConfig, estimateJsonBytes, expandPreset, faviconUrlCandidates, formatBytes, getDeviceFingerprintHash, getReporterToken, getSessionId, githubRepoDomainHint, hmacSha256Hex, initSessionTracker, isLikelyGenericFavicon, isUntrustedFaviconUrl, mushiPalette, mushiTokens, newUuid, noopLogger, normaliseThrown, originToDomain, parseIdentityToken, projectFaviconUrlCandidates, projectInitials, projectInitialsThemeIndex, readPageFaviconHref, resolveEnvConfig, resolveProjectDomain, resolveProjectFaviconDomains, resolveRegionEndpoint, resolveWidgetAccent, safeWidgetHex, scrubPii, sha256Hex, trackPageView, updateSessionIdentity, validateConfig };
2582
+ export { DEFAULT_API_ENDPOINT, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, MAX_REPORT_PAYLOAD_BYTES, MAX_SCREENSHOT_DATA_URL_BYTES, MUSHI_ACCENT_SHADOW, MUSHI_BANNER_BRAND_BORDER, MUSHI_BANNER_NEON, MUSHI_BORDER, MUSHI_COLORS_DARK, MUSHI_COLORS_LIGHT, MUSHI_CONTROL_DISABLED, MUSHI_COPY, MUSHI_DURATION, MUSHI_GEOMETRY, MUSHI_IDENTITY_TOKEN_PREFIX, MUSHI_INTERNAL_HEADER, MUSHI_INTERNAL_INIT_MARKER, MUSHI_INVERSE, MUSHI_LETTER_SPACING, MUSHI_MOTION, MUSHI_ON_ACCENT, MUSHI_OPACITY, MUSHI_PROJECT_HEADER, MUSHI_RADIUS, MUSHI_REPORTER_STATUS, MUSHI_SDK_PACKAGE_HEADER, MUSHI_SDK_VERSION_HEADER, MUSHI_SHADOW_INK, MUSHI_SPACING, MUSHI_TIER_COLORS, MUSHI_TYPE, MUSHI_USER_TOKEN_HEADER, MUSHI_Z, REGION_ENDPOINTS, buildIdentityClaims, buildSdkIngestHeaders, captureEnvironment, checkReportPayloadSize, createApiClient, createBreadcrumbBuffer, createLogger, createOfflineQueue, createPiiScrubber, createPreFilter, createRateLimiter, destroySessionTracker, diagnoseEnvConfig, estimateJsonBytes, expandPreset, faviconUrlCandidates, formatBytes, getDeviceFingerprintHash, getReporterToken, getSessionId, githubRepoDomainHint, hmacSha256Hex, initSessionTracker, isLikelyGenericFavicon, isUntrustedFaviconUrl, mushiPalette, mushiTokens, newUuid, noopLogger, normaliseThrown, originToDomain, parseIdentityToken, projectFaviconUrlCandidates, projectInitials, projectInitialsThemeIndex, readPageFaviconHref, resolveEnvConfig, resolveProjectDomain, resolveProjectFaviconDomains, resolveRegionEndpoint, resolveWidgetAccent, safeWidgetHex, scrubPii, scrubUrl, sha256Hex, trackPageView, updateSessionIdentity, validateConfig };
2497
2583
  //# sourceMappingURL=index.js.map
2498
2584
  //# sourceMappingURL=index.js.map