@swifty.js/sentry 0.0.5 → 0.0.7
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 +108 -110
- package/dist/constants/index.cjs +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/core/api.cjs +1 -1
- package/dist/core/api.d.ts +28 -9
- package/dist/core/api.js +1 -1
- package/dist/core/breadcrumb.cjs +1 -1
- package/dist/core/breadcrumb.js +1 -1
- package/dist/core/decorate-http.cjs +1 -1
- package/dist/core/decorate-http.js +1 -1
- package/dist/core/decorate-route.cjs +1 -1
- package/dist/core/decorate-route.js +1 -1
- package/dist/core/decorates.cjs +1 -1
- package/dist/core/decorates.js +1 -1
- package/dist/core/error-dedup.cjs +1 -0
- package/dist/core/error-dedup.js +1 -0
- package/dist/core/framework-error.cjs +1 -1
- package/dist/core/framework-error.js +1 -1
- package/dist/core/handle-code-error.cjs +1 -1
- package/dist/core/handle-code-error.js +1 -1
- package/dist/core/handle-error.cjs +1 -1
- package/dist/core/handle-error.js +1 -1
- package/dist/core/handle-events.cjs +1 -1
- package/dist/core/handle-events.js +1 -1
- package/dist/core/handle-route.cjs +1 -1
- package/dist/core/handle-route.js +1 -1
- package/dist/core/options-schema.cjs +1 -1
- package/dist/core/options-schema.d.ts +42 -44
- package/dist/core/options-schema.js +1 -1
- package/dist/core/pv-lifecycle.cjs +1 -1
- package/dist/core/pv-lifecycle.js +1 -1
- package/dist/core/sdk-lifecycle.cjs +1 -1
- package/dist/core/sdk-lifecycle.js +1 -1
- package/dist/core/setup.cjs +1 -1
- package/dist/core/setup.js +1 -1
- package/dist/core/white-screen.cjs +1 -1
- package/dist/core/white-screen.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.js +1 -1
- package/dist/node/dev-endpoint.cjs +1 -0
- package/dist/node/dev-endpoint.js +1 -0
- package/dist/package.json.cjs +1 -1
- package/dist/package.json.js +1 -1
- package/dist/plugins/exposure/index.cjs +1 -1
- package/dist/plugins/exposure/index.d.ts +0 -1
- package/dist/plugins/exposure/index.js +1 -1
- package/dist/plugins/performance/first-screen-paint.cjs +1 -1
- package/dist/plugins/performance/first-screen-paint.js +1 -1
- package/dist/plugins/performance/index.cjs +1 -1
- package/dist/plugins/performance/index.d.ts +0 -1
- package/dist/plugins/performance/index.js +1 -1
- package/dist/plugins/performance/navigation-timing.cjs +1 -1
- package/dist/plugins/performance/navigation-timing.js +1 -1
- package/dist/plugins/performance/perf.cjs +1 -1
- package/dist/plugins/performance/perf.js +1 -1
- package/dist/plugins/performance/resource-element-fallback.cjs +1 -1
- package/dist/plugins/performance/resource-element-fallback.js +1 -1
- package/dist/plugins/performance/resource-timing.cjs +1 -1
- package/dist/plugins/performance/resource-timing.js +1 -1
- package/dist/plugins/screen-record/index.cjs +1 -1
- package/dist/plugins/screen-record/index.js +1 -1
- package/dist/plugins/screen-record/recorder.cjs +1 -1
- package/dist/plugins/screen-record/recorder.d.ts +1 -1
- package/dist/plugins/screen-record/recorder.js +1 -1
- package/dist/react.d.ts +6 -80
- package/dist/reporter/index.cjs +1 -1
- package/dist/reporter/index.js +1 -1
- package/dist/reporter/network-listener.cjs +1 -1
- package/dist/reporter/network-listener.js +1 -1
- package/dist/reporter/offline-cache.cjs +1 -1
- package/dist/reporter/offline-cache.js +1 -1
- package/dist/reporter/report-data-schema.cjs +1 -1
- package/dist/reporter/report-data-schema.js +1 -1
- package/dist/reporter/report-data.cjs +1 -1
- package/dist/reporter/report-data.js +1 -1
- package/dist/reporter/server-recovery.cjs +1 -1
- package/dist/reporter/server-recovery.js +1 -1
- package/dist/reporter/transports.cjs +1 -1
- package/dist/reporter/transports.js +1 -1
- package/dist/source-map/source-map.cjs +1 -1
- package/dist/source-map/source-map.js +1 -1
- package/dist/types/common.d.ts +9 -10
- package/dist/types/enums.cjs +1 -1
- package/dist/types/enums.d.ts +1 -43
- package/dist/types/enums.js +1 -1
- package/dist/types/options.d.ts +9 -13
- package/dist/types/plugin.cjs +1 -1
- package/dist/types/plugin.d.ts +0 -3
- package/dist/types/plugin.js +1 -1
- package/dist/utils/data-structures.cjs +1 -1
- package/dist/utils/data-structures.js +1 -1
- package/dist/utils/get-base-data.cjs +1 -1
- package/dist/utils/get-base-data.js +1 -1
- package/dist/utils/logger.cjs +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/noop.cjs +1 -0
- package/dist/utils/noop.js +1 -0
- package/dist/utils/sentry.cjs +1 -1
- package/dist/utils/sentry.js +1 -1
- package/dist/utils/session.cjs +1 -1
- package/dist/utils/session.js +1 -1
- package/dist/utils/throttle.cjs +1 -1
- package/dist/utils/throttle.js +1 -1
- package/dist/utils/transform-http-data.cjs +1 -1
- package/dist/utils/transform-http-data.js +1 -1
- package/dist/utils/uuid.cjs +1 -0
- package/dist/utils/uuid.js +1 -0
- package/dist/vite.cjs +1 -1
- package/dist/vite.d.ts +2 -2
- package/dist/vite.js +1 -1
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +1 -1
- package/dist/webpack.cjs +1 -1
- package/dist/webpack.js +1 -1
- package/package.json +3 -5
- package/skills/swifty-sentry/SKILL.md +1293 -0
- package/dist/core/ip.cjs +0 -1
- package/dist/core/ip.d.ts +0 -24
- package/dist/core/ip.js +0 -1
- package/dist/reporter/batch.cjs +0 -1
- package/dist/reporter/batch.js +0 -1
- package/dist/utils/base64.cjs +0 -1
- package/dist/utils/base64.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var r=require("../types/enums.cjs"),e=require("../constants/index.cjs"),t=require("../utils/event2breadcrumb.cjs"),s=require("../utils/get-base-data.cjs");require("../utils/sentry.cjs");var o=require("../utils/is-ignored-error.cjs");require("../utils/is-type.cjs"),require("../utils/logger.cjs");var i=require("../reporter/index.cjs"),u=require("./breadcrumb.cjs"),c=require("./error-dedup.cjs");const a=new class{cacheError=[];timeoutID;push(r){this.cacheError.push(r),this.timeoutID&&clearTimeout(this.timeoutID),this.timeoutID=setTimeout(()=>this.flush(),2e3)}destroy(){this.timeoutID&&(clearTimeout(this.timeoutID),this.timeoutID=void 0),this.cacheError=[]}flush(){if(0===this.cacheError.length)return;const r=new Map;for(const e of this.cacheError){const t=`${e.type}-${e.name}-${e.message}`,s=r.get(t);s?s.push(e):r.set(t,[e])}this.cacheError=[];for(const e of r.values())this.reportGroup(e)}reportGroup(r){if(r.length<5)return void r.forEach(r=>i.default.send(r));const e=r[0];if(!e)return;const t={...e,batchError:!0,batchErrorLength:r.length,batchErrorLastHappenTime:r.at(-1)?.timestamp??e.timestamp};i.default.send(t)}};exports.destroyBatchErrorManager=function(){a.destroy()},exports.handleCodeError=function(i){const{filename:n,colno:h,lineno:l,message:p,error:m}=i;if(o.default(p))return;const d={...s.default(),type:r.EventType.Error,name:n,message:p,status:r.Status.Error},f=m instanceof Error&&m.stack?m.stack:void 0,E={...d,column:h,line:l,...f?{extra:f}:{}};u.default.push({...d,userAction:t.default(r.EventType.Error)}),n&&n!==e.UNKNOWN?c.reportOncePerError(`${r.EventType.Error}-${p}-${n}-${l}-${h}`,()=>{a.push(E)}):a.push(E)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as r,EventType as t}from"../types/enums.js";import{
|
|
1
|
+
import{Status as r,EventType as t}from"../types/enums.js";import{UNKNOWN as o}from"../constants/index.js";import e from"../utils/event2breadcrumb.js";import s from"../utils/get-base-data.js";import"../utils/sentry.js";import i from"../utils/is-ignored-error.js";import"../utils/is-type.js";import"../utils/logger.js";import n from"../reporter/index.js";import m from"./breadcrumb.js";import{reportOncePerError as u}from"./error-dedup.js";const c=new class{cacheError=[];timeoutID;push(r){this.cacheError.push(r),this.timeoutID&&clearTimeout(this.timeoutID),this.timeoutID=setTimeout(()=>this.flush(),2e3)}destroy(){this.timeoutID&&(clearTimeout(this.timeoutID),this.timeoutID=void 0),this.cacheError=[]}flush(){if(0===this.cacheError.length)return;const r=new Map;for(const t of this.cacheError){const o=`${t.type}-${t.name}-${t.message}`,e=r.get(o);e?e.push(t):r.set(o,[t])}this.cacheError=[];for(const t of r.values())this.reportGroup(t)}reportGroup(r){if(r.length<5)return void r.forEach(r=>n.send(r));const t=r[0];if(!t)return;const o={...t,batchError:!0,batchErrorLength:r.length,batchErrorLastHappenTime:r.at(-1)?.timestamp??t.timestamp};n.send(o)}};function a(){c.destroy()}function h(n){const{filename:a,colno:h,lineno:p,message:f,error:l}=n;if(i(f))return;const d={...s(),type:t.Error,name:a,message:f,status:r.Error},E=l instanceof Error&&l.stack?l.stack:void 0,g={...d,column:h,line:p,...E?{extra:E}:{}};m.push({...d,userAction:e(t.Error)}),a&&a!==o?u(`${t.Error}-${f}-${a}-${p}-${h}`,()=>{c.push(g)}):c.push(g)}export{a as destroyBatchErrorManager,h as handleCodeError};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../types/enums.cjs")
|
|
1
|
+
"use strict";var e=require("../types/enums.cjs");require("../constants/index.cjs");var r=require("../utils/event2breadcrumb.cjs");require("../utils/sentry.cjs");var t=require("../utils/is-ignored-error.cjs"),s=require("../utils/is-type.cjs"),n=require("../utils/logger.cjs"),u=require("../reporter/index.cjs"),o=require("./breadcrumb.cjs"),a=require("./error-dedup.cjs"),i=require("./handle-code-error.cjs");function c(t){const s={...t,status:e.Status.Error};o.default.push({...s,userAction:r.default(e.EventType.Error)}),a.reportOncePerError(`${e.EventType.Error}-${s.name}-${s.message}`,()=>{u.default.send(s)})}exports.handleError=({extra:d,...E})=>{n.sentryLogger.error("Error captured",d),s.isErrorEvent(d)?t.default(d.message)||i.handleCodeError(d):s.isIExtendedErrorEvent(d)?function(t,s){const{localName:n}=t.target,i=t.target.src??"",c=t.target.href??"",d={...s,type:e.EventType.Resource,status:e.Status.Error,name:n,src:i,href:c,message:`Failed to load ${n}: ${i||c}`};o.default.push({...d,userAction:r.default(e.EventType.Resource)}),a.reportOncePerError(`${e.EventType.Resource}-${n}-${i||c}`,()=>{u.default.send(d)})}(d,E):s.isError(d)?function(r,s){const{name:n,message:u,stack:o}=r;if(t.default(u))return;c({...s,type:e.EventType.Error,name:n,message:u,extra:o||r})}(d,E):function(r,s){const n="string"==typeof r?r:JSON.stringify(r);if(t.default(n))return;c({...s,type:e.EventType.Error,name:"Unknown Error",message:n,extra:r})}(d,E)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as r,EventType as e}from"../types/enums.js";import
|
|
1
|
+
import{Status as r,EventType as e}from"../types/enums.js";import"../constants/index.js";import t from"../utils/event2breadcrumb.js";import"../utils/sentry.js";import s from"../utils/is-ignored-error.js";import{isErrorEvent as o,isIExtendedErrorEvent as n,isError as m}from"../utils/is-type.js";import{sentryLogger as i}from"../utils/logger.js";import a from"../reporter/index.js";import u from"./breadcrumb.js";import{reportOncePerError as c}from"./error-dedup.js";import{handleCodeError as p}from"./handle-code-error.js";const f=({extra:f,...g})=>{i.error("Error captured",f),o(f)?s(f.message)||p(f):n(f)?function(s,o){const{localName:n}=s.target,m=s.target.src??"",i=s.target.href??"",p={...o,type:e.Resource,status:r.Error,name:n,src:m,href:i,message:`Failed to load ${n}: ${m||i}`};u.push({...p,userAction:t(e.Resource)}),c(`${e.Resource}-${n}-${m||i}`,()=>{a.send(p)})}(f,g):m(f)?function(r,t){const{name:o,message:n,stack:m}=r;if(s(n))return;d({...t,type:e.Error,name:o,message:n,extra:m||r})}(f,g):function(r,t){const o="string"==typeof r?r:JSON.stringify(r);if(s(o))return;d({...t,type:e.Error,name:"Unknown Error",message:o,extra:r})}(f,g)};function d(s){const o={...s,status:r.Error};u.push({...o,userAction:t(e.Error)}),c(`${e.Error}-${o.name}-${o.message}`,()=>{a.send(o)})}export{f as handleError};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../types/enums.cjs");require("../constants/index.cjs");var r=require("../utils/click-data.cjs"),t=require("../utils/event2breadcrumb.cjs")
|
|
1
|
+
"use strict";var e=require("../types/enums.cjs");require("../constants/index.cjs");var r=require("../utils/click-data.cjs"),t=require("../utils/event2breadcrumb.cjs");require("../utils/sentry.cjs");var s=require("../utils/is-type.cjs"),n=require("../utils/logger.cjs"),a=require("../reporter/index.cjs"),i=require("./breadcrumb.cjs"),c=require("./handle-code-error.cjs"),u=require("./handle-error.cjs");exports.handleClick=({extra:s,...n})=>{if(!(s instanceof MouseEvent))return;const c=r.getDeclarativeClickData(s);if(!c)return;const u={...n,type:e.EventType.Click,name:c.ev||c.msg,message:c.msg||c.ev,status:e.Status.OK,extra:c};i.default.push({...u,userAction:t.default(e.EventType.Click)}),a.default.send(u)},exports.handleUnhandledRejection=e=>{const r=(t=e.extra)instanceof Event&&"reason"in t?Reflect.get(t,"reason"):t;var t;n.sentryLogger.error("Unhandled rejection captured",r),s.isErrorEvent(r)?c.handleCodeError(r):u.handleError({...e,extra:r})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as r,EventType as e}from"../types/enums.js";import"../constants/index.js";import{getDeclarativeClickData as t}from"../utils/click-data.js";import
|
|
1
|
+
import{Status as r,EventType as e}from"../types/enums.js";import"../constants/index.js";import{getDeclarativeClickData as t}from"../utils/click-data.js";import s from"../utils/event2breadcrumb.js";import"../utils/sentry.js";import{isErrorEvent as o}from"../utils/is-type.js";import{sentryLogger as n}from"../utils/logger.js";import i from"../reporter/index.js";import m from"./breadcrumb.js";import{handleCodeError as a}from"./handle-code-error.js";import{handleError as c}from"./handle-error.js";const p=r=>{const e=(t=r.extra)instanceof Event&&"reason"in t?Reflect.get(t,"reason"):t;var t;n.error("Unhandled rejection captured",e),o(e)?a(e):c({...r,extra:e})},u=({extra:o,...n})=>{if(!(o instanceof MouseEvent))return;const a=t(o);if(!a)return;const c={...n,type:e.Click,name:a.ev||a.msg,message:a.msg||a.ev,status:r.OK,extra:a};m.push({...c,userAction:s(e.Click)}),i.send(c)};export{u as handleClick,p as handleUnhandledRejection};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../types/enums.cjs"),
|
|
1
|
+
"use strict";var e=require("../types/enums.cjs"),r=require("../constants/index.cjs"),s=require("../utils/event2breadcrumb.cjs");require("../utils/sentry.cjs"),require("../utils/is-type.cjs"),require("../utils/logger.cjs");var t=require("./breadcrumb.cjs"),n=require("./pv-lifecycle.cjs");function a(e){return e instanceof HashChangeEvent}exports.handleHashChange=({extra:u,...i})=>{const o=a(u)?u.oldURL:r.UNKNOWN,c=a(u)?u.newURL:r.UNKNOWN,h=`${o} => ${c}`,l={...i,name:h,message:h,type:e.EventType.HashChange,from:o,to:c};t.default.push({...l,userAction:s.default(e.EventType.HashChange)}),n.recordRoutePageView(c,o,"HashChange")},exports.handleHistory=({from:r,to:a,...u})=>{const i=`${r} => ${a}`,o={...u,name:i,message:i,type:e.EventType.History,from:r,to:a};t.default.push({...o,userAction:s.default(e.EventType.History)}),n.recordRoutePageView(a,r,"HistoryChange")};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventType as s}from"../types/enums.js";import{UNKNOWN as t}from"../constants/index.js";import e from"../utils/event2breadcrumb.js";import"../utils/sentry.js";import"../utils/is-type.js";import o from"./breadcrumb.js";import{recordRoutePageView as r}from"./pv-lifecycle.js";function n(s){return s instanceof HashChangeEvent}const m=({from:t,to:n,...m})=>{const i=`${t} => ${n}`,a={...m,name:i,message:i,type:s.History,from:t,to:n};o.push({...a,userAction:e(s.History)}),r(n,t,"HistoryChange")},i=({extra:m,...i})=>{const a=n(m)?m.oldURL:t,p=n(m)?m.newURL:t,
|
|
1
|
+
import{EventType as s}from"../types/enums.js";import{UNKNOWN as t}from"../constants/index.js";import e from"../utils/event2breadcrumb.js";import"../utils/sentry.js";import"../utils/is-type.js";import"../utils/logger.js";import o from"./breadcrumb.js";import{recordRoutePageView as r}from"./pv-lifecycle.js";function n(s){return s instanceof HashChangeEvent}const m=({from:t,to:n,...m})=>{const i=`${t} => ${n}`,a={...m,name:i,message:i,type:s.History,from:t,to:n};o.push({...a,userAction:e(s.History)}),r(n,t,"HistoryChange")},i=({extra:m,...i})=>{const a=n(m)?m.oldURL:t,p=n(m)?m.newURL:t,u=`${a} => ${p}`,c={...i,name:u,message:u,type:s.HashChange,from:a,to:p};o.push({...c,userAction:e(s.HashChange)}),r(p,a,"HashChange")};export{i as handleHashChange,m as handleHistory};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("zod"),n=require("../types/enums.cjs");const o=e.z.custom(e=>"function"==typeof e,"Expected a
|
|
1
|
+
"use strict";var e=require("zod"),n=require("../types/enums.cjs");const o=e.z.custom(e=>"function"==typeof e,"Expected a before-send hook function"),t=e.z.custom(e=>"function"==typeof e,"Expected a breadcrumb hook function"),r=e.z.custom(e=>"function"==typeof e,"Expected a before-send-batch hook function"),a=e.z.custom(e=>"function"==typeof e,"Expected an after-send hook function"),i=e.z.union([e.z.string(),e.z.instanceof(RegExp)]),c=e.z.object({dsn:e.z.string(),projectId:e.z.string(),disabled:e.z.boolean(),userId:e.z.string(),enableXhr:e.z.boolean(),enableFetch:e.z.boolean(),enableClick:e.z.boolean(),enableError:e.z.boolean(),enableUnhandledRejection:e.z.boolean(),enableHashChange:e.z.boolean(),enableHistory:e.z.boolean(),enableWhiteScreen:e.z.boolean(),enableFingerprint:e.z.boolean(),anonymousId:e.z.string(),visitorId:e.z.string(),screenRecordDurationMs:e.z.number().nonnegative(),screenRecordEventTypes:e.z.array(e.z.enum(n.EventType)),hasSkeleton:e.z.boolean(),rootCssSelectors:e.z.array(e.z.string()),clickThrottleDelay:e.z.number().nonnegative(),maxBreadcrumbs:e.z.number().int().positive(),repeatCodeError:e.z.boolean(),enableHttpPerformance:e.z.boolean(),ignoreErrors:e.z.array(i),excludeApis:e.z.array(i),beforeBreadcrumb:t.optional(),cacheMaxLength:e.z.number().int().positive(),cacheWaitingTime:e.z.number().nonnegative(),maxQueueLength:e.z.number().int().positive(),retryIntervalMilliseconds:e.z.number().nonnegative(),beforeSend:o.optional(),beforeSendBatch:r.optional(),afterSend:a.optional(),offlineCacheKey:e.z.string(),tracesSampleRate:e.z.number().min(0).max(1),debug:e.z.boolean()});exports.optionsSchema=c;
|
|
@@ -1,51 +1,49 @@
|
|
|
1
|
-
import { IBreadcrumbItem } from '../types/common.js';
|
|
2
1
|
import { EventType } from '../types/enums.js';
|
|
3
|
-
import {
|
|
2
|
+
import { BeforeBreadcrumbHook, BeforeSendHook, BeforeSendBatchHook, AfterSendHook } from '../types/options.js';
|
|
4
3
|
import { z } from 'zod';
|
|
5
4
|
|
|
6
|
-
declare const
|
|
7
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
8
|
-
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
-
userId: z.ZodOptional<z.ZodString>;
|
|
10
|
-
enableXhr: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
-
enableFetch: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
-
enableClick: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
-
enableError: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
-
enableUnhandledRejection: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
-
enableHashChange: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
-
enableHistory: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
-
enablePerformance: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
-
enableScreenRecord: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
-
enableWhiteScreen: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
-
enableFingerprint: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
-
anonymousId: z.ZodOptional<z.ZodString>;
|
|
22
|
-
visitorId: z.ZodOptional<z.ZodString>;
|
|
23
|
-
useImageReport: z.ZodOptional<z.ZodBoolean>;
|
|
24
|
-
screenRecordDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
25
|
-
screenRecordEventTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof EventType>>>;
|
|
26
|
-
hasSkeleton: z.ZodOptional<z.ZodBoolean>;
|
|
27
|
-
rootCssSelectors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
28
|
-
clickThrottleDelay: z.ZodOptional<z.ZodNumber>;
|
|
29
|
-
requestTimeoutMilliseconds: z.ZodOptional<z.ZodNumber>;
|
|
30
|
-
maxBreadcrumbs: z.ZodOptional<z.ZodNumber>;
|
|
31
|
-
repeatCodeError: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
-
enableHttpPerformance: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
-
ignoreErrors: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>>;
|
|
34
|
-
excludeApis: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>>;
|
|
35
|
-
onBeforePushBreadcrumb: z.ZodOptional<z.ZodOptional<z.ZodCustom<((data: IBreadcrumbItem) => IBreadcrumbItem) | undefined, ((data: IBreadcrumbItem) => IBreadcrumbItem) | undefined>>>;
|
|
36
|
-
cacheMaxLength: z.ZodOptional<z.ZodNumber>;
|
|
37
|
-
cacheWaitingTime: z.ZodOptional<z.ZodNumber>;
|
|
38
|
-
maxQueueLength: z.ZodOptional<z.ZodNumber>;
|
|
39
|
-
retryIntervalMilliseconds: z.ZodOptional<z.ZodNumber>;
|
|
40
|
-
onBeforeReportData: z.ZodOptional<z.ZodOptional<z.ZodCustom<ReportDataHook, ReportDataHook>>>;
|
|
41
|
-
beforePushEventList: z.ZodOptional<z.ZodOptional<z.ZodCustom<ReportBatchHook | undefined, ReportBatchHook | undefined>>>;
|
|
42
|
-
afterSendData: z.ZodOptional<z.ZodOptional<z.ZodCustom<AfterSendDataHook | undefined, AfterSendDataHook | undefined>>>;
|
|
43
|
-
offlineCacheKey: z.ZodOptional<z.ZodString>;
|
|
44
|
-
tracesSampleRate: z.ZodOptional<z.ZodNumber>;
|
|
45
|
-
handleHttpError: z.ZodOptional<z.ZodOptional<z.ZodCustom<(<T>(data: T) => boolean) | undefined, (<T>(data: T) => boolean) | undefined>>>;
|
|
46
|
-
debug: z.ZodOptional<z.ZodBoolean>;
|
|
5
|
+
declare const optionsSchema: z.ZodObject<{
|
|
47
6
|
dsn: z.ZodString;
|
|
7
|
+
projectId: z.ZodString;
|
|
8
|
+
disabled: z.ZodBoolean;
|
|
9
|
+
userId: z.ZodString;
|
|
10
|
+
enableXhr: z.ZodBoolean;
|
|
11
|
+
enableFetch: z.ZodBoolean;
|
|
12
|
+
enableClick: z.ZodBoolean;
|
|
13
|
+
enableError: z.ZodBoolean;
|
|
14
|
+
enableUnhandledRejection: z.ZodBoolean;
|
|
15
|
+
enableHashChange: z.ZodBoolean;
|
|
16
|
+
enableHistory: z.ZodBoolean;
|
|
17
|
+
enableWhiteScreen: z.ZodBoolean;
|
|
18
|
+
enableFingerprint: z.ZodBoolean;
|
|
19
|
+
anonymousId: z.ZodString;
|
|
20
|
+
visitorId: z.ZodString;
|
|
21
|
+
screenRecordDurationMs: z.ZodNumber;
|
|
22
|
+
screenRecordEventTypes: z.ZodArray<z.ZodEnum<typeof EventType>>;
|
|
23
|
+
hasSkeleton: z.ZodBoolean;
|
|
24
|
+
rootCssSelectors: z.ZodArray<z.ZodString>;
|
|
25
|
+
clickThrottleDelay: z.ZodNumber;
|
|
26
|
+
maxBreadcrumbs: z.ZodNumber;
|
|
27
|
+
repeatCodeError: z.ZodBoolean;
|
|
28
|
+
enableHttpPerformance: z.ZodBoolean;
|
|
29
|
+
ignoreErrors: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>;
|
|
30
|
+
excludeApis: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>;
|
|
31
|
+
beforeBreadcrumb: z.ZodOptional<z.ZodCustom<BeforeBreadcrumbHook | undefined, BeforeBreadcrumbHook | undefined>>;
|
|
32
|
+
cacheMaxLength: z.ZodNumber;
|
|
33
|
+
cacheWaitingTime: z.ZodNumber;
|
|
34
|
+
maxQueueLength: z.ZodNumber;
|
|
35
|
+
retryIntervalMilliseconds: z.ZodNumber;
|
|
36
|
+
beforeSend: z.ZodOptional<z.ZodCustom<BeforeSendHook, BeforeSendHook>>;
|
|
37
|
+
beforeSendBatch: z.ZodOptional<z.ZodCustom<BeforeSendBatchHook | undefined, BeforeSendBatchHook | undefined>>;
|
|
38
|
+
afterSend: z.ZodOptional<z.ZodCustom<AfterSendHook | undefined, AfterSendHook | undefined>>;
|
|
39
|
+
offlineCacheKey: z.ZodString;
|
|
40
|
+
tracesSampleRate: z.ZodNumber;
|
|
41
|
+
debug: z.ZodBoolean;
|
|
48
42
|
}, z.core.$strip>;
|
|
49
|
-
type
|
|
43
|
+
type Options = z.input<typeof optionsSchema>;
|
|
44
|
+
type InitOptions = {
|
|
45
|
+
[K in keyof Options]?: Options[K] | undefined;
|
|
46
|
+
} & Pick<Options, "dsn">;
|
|
50
47
|
|
|
48
|
+
export { optionsSchema };
|
|
51
49
|
export type { InitOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as e}from"zod";import{EventType as n}from"../types/enums.js";const o=e.custom(e=>"function"==typeof e,"Expected a
|
|
1
|
+
import{z as e}from"zod";import{EventType as n}from"../types/enums.js";const o=e.custom(e=>"function"==typeof e,"Expected a before-send hook function"),t=e.custom(e=>"function"==typeof e,"Expected a breadcrumb hook function"),r=e.custom(e=>"function"==typeof e,"Expected a before-send-batch hook function"),a=e.custom(e=>"function"==typeof e,"Expected an after-send hook function"),i=e.union([e.string(),e.instanceof(RegExp)]),b=e.object({dsn:e.string(),projectId:e.string(),disabled:e.boolean(),userId:e.string(),enableXhr:e.boolean(),enableFetch:e.boolean(),enableClick:e.boolean(),enableError:e.boolean(),enableUnhandledRejection:e.boolean(),enableHashChange:e.boolean(),enableHistory:e.boolean(),enableWhiteScreen:e.boolean(),enableFingerprint:e.boolean(),anonymousId:e.string(),visitorId:e.string(),screenRecordDurationMs:e.number().nonnegative(),screenRecordEventTypes:e.array(e.enum(n)),hasSkeleton:e.boolean(),rootCssSelectors:e.array(e.string()),clickThrottleDelay:e.number().nonnegative(),maxBreadcrumbs:e.number().int().positive(),repeatCodeError:e.boolean(),enableHttpPerformance:e.boolean(),ignoreErrors:e.array(i),excludeApis:e.array(i),beforeBreadcrumb:t.optional(),cacheMaxLength:e.number().int().positive(),cacheWaitingTime:e.number().nonnegative(),maxQueueLength:e.number().int().positive(),retryIntervalMilliseconds:e.number().nonnegative(),beforeSend:o.optional(),beforeSendBatch:r.optional(),afterSend:a.optional(),offlineCacheKey:e.string(),tracesSampleRate:e.number().min(0).max(1),debug:e.boolean()});export{b as optionsSchema};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../types/enums.cjs");require("../constants/index.cjs");var r=require("../utils/get-base-data.cjs");require("../utils/sentry.cjs"),require("../utils/is-type.cjs");var t=require("../reporter/index.cjs");let
|
|
1
|
+
"use strict";var e=require("../types/enums.cjs");require("../constants/index.cjs");var r=require("../utils/get-base-data.cjs");require("../utils/sentry.cjs"),require("../utils/is-type.cjs"),require("../utils/logger.cjs");var t=require("../reporter/index.cjs");let s=null;function n(s,n){t.default.send({...r.default(),type:e.EventType.PV,name:s.name,message:s.url,status:e.Status.OK,extra:{url:s.url,referrer:s.referrer,entryTime:s.startedAt}},n)}function u(s,n,u){n<=100||t.default.send({...r.default(),type:e.EventType.PV,name:"PageDwell",message:s.url,status:e.Status.OK,extra:{url:s.url,referrer:s.referrer,duration:n}},u)}function a(e,r,t){return{url:e,referrer:r,name:t,startedAt:Date.now()}}exports.flushCurrentPageDwell=function(e){s&&u(s,Date.now()-s.startedAt,e)},exports.initPageView=function(){s=a(globalThis.location?.href??"",globalThis.document?.referrer??"","PageLoad"),n(s,!0)},exports.recordRoutePageView=function(e,r,t){const l=globalThis.location.href,i=new URL(e,l).href,o=new URL(r,l).href;s?.url!==i&&(s&&u(s,Date.now()-s.startedAt,!1),s=a(i,o,t),n(s,!1))},exports.resetPageView=function(){s=null};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as e,EventType as r}from"../types/enums.js";import"../constants/index.js";import t from"../utils/get-base-data.js";import"../utils/sentry.js";import"../utils/is-type.js";import n from"../reporter/index.js";let s=null;function o(s,o){n.send({...t(),type:r.PV,name:s.name,message:s.url,status:e.OK,extra:{url:s.url,referrer:s.referrer,entryTime:s.startedAt}},o)}function a(s,o,a){o<=100||n.send({...t(),type:r.PV,name:"PageDwell",message:s.url,status:e.OK,extra:{url:s.url,referrer:s.referrer,duration:o}},a)}function i(e,r,t){return{url:e,referrer:r,name:t,startedAt:Date.now()}}function l(){s=i(globalThis.location?.href??"",globalThis.document?.referrer??"","PageLoad"),o(s,!0)}function u(e,r,t){const n=globalThis.location.href,l=new URL(e,n).href,u=new URL(r,n).href;s?.url!==l&&(s&&a(s,Date.now()-s.startedAt,!1),s=i(l,u,t),o(s,!1))}function f(e){s&&a(s,Date.now()-s.startedAt,e)}function m(){s=null}export{f as flushCurrentPageDwell,l as initPageView,u as recordRoutePageView,m as resetPageView};
|
|
1
|
+
import{Status as e,EventType as r}from"../types/enums.js";import"../constants/index.js";import t from"../utils/get-base-data.js";import"../utils/sentry.js";import"../utils/is-type.js";import"../utils/logger.js";import n from"../reporter/index.js";let s=null;function o(s,o){n.send({...t(),type:r.PV,name:s.name,message:s.url,status:e.OK,extra:{url:s.url,referrer:s.referrer,entryTime:s.startedAt}},o)}function a(s,o,a){o<=100||n.send({...t(),type:r.PV,name:"PageDwell",message:s.url,status:e.OK,extra:{url:s.url,referrer:s.referrer,duration:o}},a)}function i(e,r,t){return{url:e,referrer:r,name:t,startedAt:Date.now()}}function l(){s=i(globalThis.location?.href??"",globalThis.document?.referrer??"","PageLoad"),o(s,!0)}function u(e,r,t){const n=globalThis.location.href,l=new URL(e,n).href,u=new URL(r,n).href;s?.url!==l&&(s&&a(s,Date.now()-s.startedAt,!1),s=i(l,u,t),o(s,!1))}function f(e){s&&a(s,Date.now()-s.startedAt,e)}function m(){s=null}export{f as flushCurrentPageDwell,l as initPageView,u as recordRoutePageView,m as resetPageView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../constants/index.cjs");require("../types/enums.cjs");var r=require("../utils/sentry.cjs");require("../utils/is-type.cjs");var i=require("../utils/logger.cjs"),t=require("./identity.cjs"),s=require("./breadcrumb.cjs"),n=require("./options-schema.cjs"),o=require("./plugin-registry.cjs"),u=require("./setup.cjs"),a=require("./handle-code-error.cjs"),l=require("../reporter/index.cjs");let c=null;function d(){return null!==c}exports.destroy=function(){o.destroyPlugins(),c?.(),c=null,a.destroyBatchErrorManager(),l.resetReporter()},exports.enablePlugin=function(...e){for(const r of e)r.init(),o.registerPlugin(r)},exports.init=function(o){if(d())return void i.sentryLogger.info("SDK already initialized");const a=n.optionsSchema.parse({...e.DEFAULT_OPTIONS,...
|
|
1
|
+
"use strict";var e=require("../constants/index.cjs");require("../types/enums.cjs");var r=require("../utils/sentry.cjs");require("../utils/is-type.cjs");var i=require("../utils/logger.cjs"),t=require("./identity.cjs"),s=require("./breadcrumb.cjs"),n=require("./options-schema.cjs"),o=require("./plugin-registry.cjs"),u=require("./setup.cjs"),a=require("./handle-code-error.cjs"),l=require("../reporter/index.cjs");let c=null;function d(){return null!==c}exports.destroy=function(){o.destroyPlugins(),c?.(),c=null,a.destroyBatchErrorManager(),l.resetReporter(),s.default.clear(),r.default.codeErrors.clear(),r.default.shouldScreenRecord=!1},exports.enablePlugin=function(...e){for(const r of e)r.init(),o.registerPlugin(r)},exports.init=function(o){if(d())return void i.sentryLogger.info("SDK already initialized");const a=Object.fromEntries(Object.entries(o).filter(([,e])=>void 0!==e)),l=n.optionsSchema.parse({...e.DEFAULT_OPTIONS,...a});r.default.setOptions(l);const{dsn:f}=r.default.options;r.default.options.disabled?i.sentryLogger.info("SDK disabled by options"):""!==f?(i.sentryLogger.info("SDK initialized",{options:r.default.options}),s.default.capacity=r.default.options.maxBreadcrumbs,c=u.default(),t.initIdentity()):i.sentryLogger.error("Initialization failed: DSN is empty")},exports.isInitialized=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DEFAULT_OPTIONS as
|
|
1
|
+
import{DEFAULT_OPTIONS as o}from"../constants/index.js";import"../types/enums.js";import i from"../utils/sentry.js";import"../utils/is-type.js";import{sentryLogger as r}from"../utils/logger.js";import{initIdentity as t}from"./identity.js";import s from"./breadcrumb.js";import{optionsSchema as n}from"./options-schema.js";import{destroyPlugins as e,registerPlugin as m}from"./plugin-registry.js";import p from"./setup.js";import{destroyBatchErrorManager as l}from"./handle-code-error.js";import{resetReporter as f}from"../reporter/index.js";let c=null;function d(){return null!==c}function a(){e(),c?.(),c=null,l(),f(),s.clear(),i.codeErrors.clear(),i.shouldScreenRecord=!1}function u(e){if(d())return void r.info("SDK already initialized");const m=Object.fromEntries(Object.entries(e).filter(([,o])=>void 0!==o)),l=n.parse({...o,...m});i.setOptions(l);const{dsn:f}=i.options;i.options.disabled?r.info("SDK disabled by options"):""!==f?(r.info("SDK initialized",{options:i.options}),s.capacity=i.options.maxBreadcrumbs,c=p(),t()):r.error("Initialization failed: DSN is empty")}function j(...o){for(const i of o)i.init(),m(i)}export{a as destroy,j as enablePlugin,u as init,d as isInitialized};
|
package/dist/core/setup.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../types/enums.cjs");require("../constants/index.cjs");var n=require("../utils/sentry.cjs");require("../utils/is-type.cjs");var t=require("../utils/logger.cjs"),r=require("./bus.cjs"),s=require("./pv-lifecycle.cjs"),a=require("./handle-error.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../types/enums.cjs");require("../constants/index.cjs");var n=require("../utils/sentry.cjs");require("../utils/is-type.cjs");var t=require("../utils/logger.cjs"),r=require("./bus.cjs"),s=require("./pv-lifecycle.cjs"),a=require("./white-screen.cjs"),i=require("../reporter/index.cjs"),l=require("./handle-error.cjs"),u=require("./handle-route.cjs"),c=require("./handle-http.cjs"),o=require("./handle-events.cjs"),p=require("./decorates.cjs");exports.default=function(){t.sentryLogger.info("Initializing SDK event subscriptions...");const d=[{enabled:n.default.options.enableXhr,type:e.EventType.Xhr,subscribe:()=>r.sub(e.EventType.Xhr,c.handleHttp),name:"Xhr"},{enabled:n.default.options.enableFetch,type:e.EventType.Fetch,subscribe:()=>r.sub(e.EventType.Fetch,c.handleHttp),name:"Fetch"},{enabled:n.default.options.enableError,type:e.EventType.Error,subscribe:()=>r.sub(e.EventType.Error,l.handleError),name:"Error"},{enabled:n.default.options.enableHistory,type:e.EventType.History,subscribe:()=>r.sub(e.EventType.History,u.handleHistory),name:"History"},{enabled:n.default.options.enableHashChange,type:e.EventType.HashChange,subscribe:()=>r.sub(e.EventType.HashChange,u.handleHashChange),name:"HashChange"},{enabled:n.default.options.enableUnhandledRejection,type:e.EventType.UnhandledRejection,subscribe:()=>r.sub(e.EventType.UnhandledRejection,o.handleUnhandledRejection),name:"UnhandledRejection"},{enabled:n.default.options.enableClick,type:e.EventType.Click,subscribe:()=>r.sub(e.EventType.Click,o.handleClick),name:"Click"}].filter(({enabled:e})=>e),h=[];d.forEach(({type:e,subscribe:n})=>{h.push(n()),h.push(p.default(e))}),n.default.options.enableWhiteScreen&&(a.startWhiteScreenCheck(e=>{i.default.send(e)}),h.push(a.stopWhiteScreenCheck)),s.initPageView();const b=()=>{s.flushCurrentPageDwell(!0)};return globalThis.addEventListener("pagehide",b),h.push(()=>{globalThis.removeEventListener("pagehide",b)}),t.sentryLogger.success("SDK setup completed",d.map(e=>({event:e.name,type:e.type}))),()=>{h.toReversed().forEach(e=>{e()}),s.resetPageView(),r.clearSubscriptions()}};
|
package/dist/core/setup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventType as e}from"../types/enums.js";import"../constants/index.js";import
|
|
1
|
+
import{EventType as e}from"../types/enums.js";import"../constants/index.js";import s from"../utils/sentry.js";import"../utils/is-type.js";import{sentryLogger as t}from"../utils/logger.js";import{sub as n,clearSubscriptions as r}from"./bus.js";import{initPageView as o,flushCurrentPageDwell as i,resetPageView as a}from"./pv-lifecycle.js";import{startWhiteScreenCheck as p,stopWhiteScreenCheck as l}from"./white-screen.js";import m from"../reporter/index.js";import{handleError as h}from"./handle-error.js";import{handleHistory as b,handleHashChange as c}from"./handle-route.js";import{handleHttp as d}from"./handle-http.js";import{handleUnhandledRejection as u,handleClick as f}from"./handle-events.js";import j from"./decorates.js";function y(){t.info("Initializing SDK event subscriptions...");const y=[{enabled:s.options.enableXhr,type:e.Xhr,subscribe:()=>n(e.Xhr,d),name:"Xhr"},{enabled:s.options.enableFetch,type:e.Fetch,subscribe:()=>n(e.Fetch,d),name:"Fetch"},{enabled:s.options.enableError,type:e.Error,subscribe:()=>n(e.Error,h),name:"Error"},{enabled:s.options.enableHistory,type:e.History,subscribe:()=>n(e.History,b),name:"History"},{enabled:s.options.enableHashChange,type:e.HashChange,subscribe:()=>n(e.HashChange,c),name:"HashChange"},{enabled:s.options.enableUnhandledRejection,type:e.UnhandledRejection,subscribe:()=>n(e.UnhandledRejection,u),name:"UnhandledRejection"},{enabled:s.options.enableClick,type:e.Click,subscribe:()=>n(e.Click,f),name:"Click"}].filter(({enabled:e})=>e),g=[];y.forEach(({type:e,subscribe:s})=>{g.push(s()),g.push(j(e))}),s.options.enableWhiteScreen&&(p(e=>{m.send(e)}),g.push(l)),o();const v=()=>{i(!0)};return globalThis.addEventListener("pagehide",v),g.push(()=>{globalThis.removeEventListener("pagehide",v)}),t.success("SDK setup completed",y.map(e=>({event:e.name,type:e.type}))),()=>{g.toReversed().forEach(e=>{e()}),a(),r()}}export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("../constants/index.cjs"),t=require("../types/enums.cjs"),r=require("../utils/get-css-selectors.cjs"),s=require("../utils/get-base-data.cjs"),n=require("../utils/sentry.cjs");require("../utils/is-type.cjs");var o=require("../utils/logger.cjs");let i=null,l=null;function c(){i&&(clearInterval(i),i=null),l?.(),l=null}exports.startWhiteScreenCheck=function(u){const{hasSkeleton:a,rootCssSelectors:d}=n.default.options;let m=0;const E=new Set,h=new Set,S=e=>{const t=r.default(e),[s,n,o]=t;if(a){const e=1===m?E:h;t.forEach(t=>e.add(t))}return d.includes(s)||d.includes(n)||d.includes(o)},f=()=>{m++,h.clear();const t=(()=>{const{innerWidth:e,innerHeight:t}=globalThis;let r=0;for(let s=1;s<=9;s++){const n=document.elementFromPoint(e*s/10,t/2),o=document.elementFromPoint(e/2,t*s/10);n&&!S(n)||r++,o&&!S(o)||r++}return r})()>=18;if(a){if(1===m)return;if(Array.from(h).sort().join(",")!==Array.from(E).sort().join(","))return void c()}else if(!t)return void c();m>=e.MAX_WHITE_SCREEN_SAMPLE_COUNT&&g()},g=()=>{const e={...s.default(),type:t.EventType.WhiteScreen,status:t.Status.Error,name:"WhiteScreen",message:`sample count ${m}`,extra:{sampleCount:m}};o.sentryLogger.error("White screen detected",e),u(e),c()},T=()=>{i||(i=globalThis.setInterval(()=>{"requestIdleCallback"in globalThis?requestIdleCallback(e=>{(e.timeRemaining()>0||e.didTimeout)&&f()},{timeout:e.WHITE_SCREEN_SAMPLE_INTERVAL}):f()},e.WHITE_SCREEN_SAMPLE_INTERVAL))};"complete"!==document.readyState?(globalThis.addEventListener("load",T,{once:!0}),l=()=>{globalThis.removeEventListener("load",T)}):T()},exports.stopWhiteScreenCheck=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{WHITE_SCREEN_SAMPLE_INTERVAL as e,MAX_WHITE_SCREEN_SAMPLE_COUNT as t}from"../constants/index.js";import{Status as
|
|
1
|
+
import{WHITE_SCREEN_SAMPLE_INTERVAL as e,MAX_WHITE_SCREEN_SAMPLE_COUNT as t}from"../constants/index.js";import{Status as o,EventType as r}from"../types/enums.js";import n from"../utils/get-css-selectors.js";import s from"../utils/get-base-data.js";import i from"../utils/sentry.js";import"../utils/is-type.js";import{sentryLogger as l}from"../utils/logger.js";let a=null,m=null;function c(){a&&(clearInterval(a),a=null),m?.(),m=null}function u(u){const{hasSkeleton:d,rootCssSelectors:f}=i.options;let p=0;const g=new Set,h=new Set,j=e=>{const t=n(e),[o,r,s]=t;if(d){const e=1===p?g:h;t.forEach(t=>e.add(t))}return f.includes(o)||f.includes(r)||f.includes(s)},b=()=>{p++,h.clear();const e=(()=>{const{innerWidth:e,innerHeight:t}=globalThis;let o=0;for(let r=1;r<=9;r++){const n=document.elementFromPoint(e*r/10,t/2),s=document.elementFromPoint(e/2,t*r/10);n&&!j(n)||o++,s&&!j(s)||o++}return o})()>=18;if(d){if(1===p)return;if(Array.from(h).sort().join(",")!==Array.from(g).sort().join(","))return void c()}else if(!e)return void c();p>=t&&v()},v=()=>{const e={...s(),type:r.WhiteScreen,status:o.Error,name:"WhiteScreen",message:`sample count ${p}`,extra:{sampleCount:p}};l.error("White screen detected",e),u(e),c()},y=()=>{a||(a=globalThis.setInterval(()=>{"requestIdleCallback"in globalThis?requestIdleCallback(e=>{(e.timeRemaining()>0||e.didTimeout)&&b()},{timeout:e}):b()},e))};"complete"!==document.readyState?(globalThis.addEventListener("load",y,{once:!0}),m=()=>{globalThis.removeEventListener("load",y)}):y()}export{u as startWhiteScreenCheck,c as stopWhiteScreenCheck};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./core/sdk-lifecycle.cjs"),r=require("./core/identity.cjs"),t=require("./core/api.cjs"),o=require("./core/framework-error.cjs"),s=require("./types/enums.cjs"),n=require("./types/plugin.cjs")
|
|
1
|
+
"use strict";var e=require("./core/sdk-lifecycle.cjs"),r=require("./core/identity.cjs"),t=require("./core/api.cjs"),o=require("./core/framework-error.cjs"),s=require("./types/enums.cjs"),n=require("./types/plugin.cjs");exports.destroy=e.destroy,exports.enablePlugin=e.enablePlugin,exports.init=e.init,exports.isInitialized=e.isInitialized,exports.getIdentity=r.getIdentity,exports.setUserId=r.setUserId,exports.setVisitorId=r.setVisitorId,exports.afterSend=t.afterSend,exports.beforeSend=t.beforeSend,exports.beforeSendBatch=t.beforeSendBatch,exports.flushOfflineCache=t.flushOfflineCache,exports.traceCustomEvent=t.traceCustomEvent,exports.traceError=t.traceError,exports.tracePageView=t.tracePageView,exports.tracePerformance=t.tracePerformance,exports.reportFrameworkError=o.reportFrameworkError,Object.defineProperty(exports,"BreadcrumbType",{enumerable:!0,get:function(){return s.BreadcrumbType}}),Object.defineProperty(exports,"EventType",{enumerable:!0,get:function(){return s.EventType}}),Object.defineProperty(exports,"Status",{enumerable:!0,get:function(){return s.Status}}),exports.SentryPlugin=n.SentryPlugin;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
export { destroy, enablePlugin, init, isInitialized } from './core/sdk-lifecycle.js';
|
|
2
2
|
export { getIdentity, setUserId, setVisitorId } from './core/identity.js';
|
|
3
|
-
export {
|
|
3
|
+
export { afterSend, beforeSend, beforeSendBatch, flushOfflineCache, traceCustomEvent, traceError, tracePageView, tracePerformance } from './core/api.js';
|
|
4
4
|
export { reportFrameworkError } from './core/framework-error.js';
|
|
5
5
|
export { InitOptions } from './core/options-schema.js';
|
|
6
|
-
export { IBaseDataWithEvent, IBatchErrorData, IBreadcrumbItem, ICodeError, IDataReporter, IDeviceInfo, IExposureData, IExtendedErrorEvent, IHttpData, IPerformanceData, IPerformanceResourceTiming, IReportData, IReportPayload, IResourceError, IRouteData, IScreenRecordData, ISentry, TOnReportPerformanceData, TOnReportWhiteScreenData, TReportPayload
|
|
7
|
-
export { BreadcrumbType, EventType,
|
|
6
|
+
export { IBaseDataWithEvent, IBatchErrorData, IBreadcrumbItem, ICodeError, IDataReporter, IDeviceInfo, IExposureData, IExtendedErrorEvent, IHttpData, IPerformanceData, IPerformanceResourceTiming, IReportData, IReportPayload, IResourceError, IRouteData, IScreenRecordData, ISentry, TOnReportPerformanceData, TOnReportWhiteScreenData, TReportPayload } from './types/common.js';
|
|
7
|
+
export { BreadcrumbType, EventType, Status } from './types/enums.js';
|
|
8
8
|
export { IPub, ISub, TEventHandler } from './types/handlers.js';
|
|
9
|
-
export {
|
|
9
|
+
export { AfterSendHook, BeforeBreadcrumbHook, BeforeSendBatchHook, BeforeSendHook, IOptions } from './types/options.js';
|
|
10
10
|
export { SentryPlugin, WithSentry } from './types/plugin.js';
|
|
11
|
-
export { getIPs } from './core/ip.js';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{destroy,enablePlugin,init,isInitialized}from"./core/sdk-lifecycle.js";export{getIdentity,setUserId,setVisitorId}from"./core/identity.js";export{
|
|
1
|
+
export{destroy,enablePlugin,init,isInitialized}from"./core/sdk-lifecycle.js";export{getIdentity,setUserId,setVisitorId}from"./core/identity.js";export{afterSend,beforeSend,beforeSendBatch,flushOfflineCache,traceCustomEvent,traceError,tracePageView,tracePerformance}from"./core/api.js";export{reportFrameworkError}from"./core/framework-error.js";export{BreadcrumbType,EventType,Status}from"./types/enums.js";export{SentryPlugin}from"./types/plugin.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("node:buffer"),t=require("node:path"),r=require("node:fs");exports.DEFAULT_MOCK_DSN="/sentry",exports.closeLogStream=function(e){e.destroyed||e.close()},exports.createLogStream=function(){const e=t.join(process.cwd(),"logs");r.existsSync(e)||r.mkdirSync(e,{recursive:!0});const n=(new Date).toISOString().replace(/[-:.]/g,"").slice(0,14),o=t.join(e,`sentry_${n}.jsonl`);return{fileStream:r.createWriteStream(o,{flags:"a"}),logFile:o}},exports.createMockMiddleware=function(t,r,n){return(o,s,i)=>{if(o.url!==t||"POST"!==o.method)return void i();let c="";o.on("data",t=>{c=function(t,r){return"string"==typeof r?t+r:e.Buffer.isBuffer(r)?t+r.toString("utf8"):r instanceof Uint8Array?t+e.Buffer.from(r).toString("utf8"):t}(c,t)}),o.on("end",async()=>{if(c)try{const e=JSON.parse(c),t=n?await n(e):e;r.write(JSON.stringify(t)+"\n")}catch{r.write(c+"\n")}s.setHeader("Content-Type","application/json"),s.statusCode=200,s.end(JSON.stringify({code:0,message:"success"}))})}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Buffer as t}from"node:buffer";import{join as e}from"node:path";import{existsSync as n,mkdirSync as r,createWriteStream as o}from"node:fs";const s="/sentry";function i(){const t=e(process.cwd(),"logs");n(t)||r(t,{recursive:!0});const s=(new Date).toISOString().replace(/[-:.]/g,"").slice(0,14),i=e(t,`sentry_${s}.jsonl`);return{fileStream:o(i,{flags:"a"}),logFile:i}}function f(t){t.destroyed||t.close()}function c(e,n,r){return(o,s,i)=>{if(o.url!==e||"POST"!==o.method)return void i();let f="";o.on("data",e=>{f=function(e,n){return"string"==typeof n?e+n:t.isBuffer(n)?e+n.toString("utf8"):n instanceof Uint8Array?e+t.from(n).toString("utf8"):e}(f,e)}),o.on("end",async()=>{if(f)try{const t=JSON.parse(f),e=r?await r(t):t;n.write(JSON.stringify(e)+"\n")}catch{n.write(f+"\n")}s.setHeader("Content-Type","application/json"),s.statusCode=200,s.end(JSON.stringify({code:0,message:"success"}))})}}export{s as DEFAULT_MOCK_DSN,f as closeLogStream,i as createLogStream,c as createMockMiddleware};
|
package/dist/package.json.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="0.0.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="0.0.7",r={version:e};exports.default=r,exports.version=e;
|
package/dist/package.json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var a="0.0.
|
|
1
|
+
var a="0.0.7",e={version:a};export{e as default,a as version};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../types/enums.cjs"),t=require("../../types/plugin.cjs"),s=require("../../reporter/index.cjs");require("../../constants/index.cjs");var r=require("../../utils/get-base-data.cjs");require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var i=require("../../utils/logger.cjs"),a=require("zod");const o=a.z.object({target:a.z.custom(e=>"Element"in globalThis&&e instanceof globalThis.Element),threshold:a.z.number().min(0).max(1).optional(),params:a.z.record(a.z.string(),a.z.unknown()).optional()});class n extends t.SentryPlugin{ioMap=new Map;targetMap=new Map;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../types/enums.cjs"),t=require("../../types/plugin.cjs"),s=require("../../reporter/index.cjs");require("../../constants/index.cjs");var r=require("../../utils/get-base-data.cjs");require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var i=require("../../utils/logger.cjs"),a=require("zod");const o=a.z.object({target:a.z.custom(e=>"Element"in globalThis&&e instanceof globalThis.Element),threshold:a.z.number().min(0).max(1).optional(),params:a.z.record(a.z.string(),a.z.unknown()).optional()});class n extends t.SentryPlugin{ioMap=new Map;targetMap=new Map;init(){i.sentryLogger.info("Exposure plugin initialized")}initObserver(e){return new IntersectionObserver(e=>{e.forEach(e=>{const t=this.targetMap.get(e.target);if(t)if(e.isIntersecting)t.showTime=Date.now();else{if(!t.showTime)return;const e=Date.now();this.sendEvent(t,e),delete t.showTime}})},{threshold:e})}sendEvent(t,i){t.showTime&&s.default.send({...r.default(),type:e.EventType.Exposure,name:"Exposure",message:"Element Exposure",status:e.Status.OK,extra:{threshold:t.threshold,observeTime:t.observeTime,showTime:t.showTime,showEndTime:i,duration:i-t.showTime,params:t.params}})}observe(e){(Array.isArray(e)?e:[e]).map(e=>o.parse(e)).forEach(e=>{const t=e.threshold??.5,s=this.ioMap.get(t)??this.initObserver(t);this.ioMap.set(t,s),this.targetMap.has(e.target)||(s.observe(e.target),this.targetMap.set(e.target,{threshold:t,observeTime:Date.now(),params:e.params??{}}))})}unobserve(e){(Array.isArray(e)?e:[e]).forEach(e=>this.unobserveOne(e))}unobserveOne(e){const t=this.targetMap.get(e);if(!t)return;const s=this.ioMap.get(t.threshold);s&&s.unobserve(e),this.targetMap.delete(e)}destroy(){this.ioMap.forEach(e=>{e.disconnect()}),this.ioMap.clear(),this.targetMap.clear()}}exports.default=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Status as e,EventType as t}from"../../types/enums.js";import{SentryPlugin as s}from"../../types/plugin.js";import r from"../../reporter/index.js";import"../../constants/index.js";import o from"../../utils/get-base-data.js";import"../../utils/sentry.js";import"../../utils/is-type.js";import{sentryLogger as i}from"../../utils/logger.js";import{z as a}from"zod";const n=a.object({target:a.custom(e=>"Element"in globalThis&&e instanceof globalThis.Element),threshold:a.number().min(0).max(1).optional(),params:a.record(a.string(),a.unknown()).optional()});class p extends s{ioMap=new Map;targetMap=new Map;init(){i.info("Exposure plugin initialized")}initObserver(e){return new IntersectionObserver(e=>{e.forEach(e=>{const t=this.targetMap.get(e.target);if(t)if(e.isIntersecting)t.showTime=Date.now();else{if(!t.showTime)return;const e=Date.now();this.sendEvent(t,e),delete t.showTime}})},{threshold:e})}sendEvent(s,i){s.showTime&&r.send({...o(),type:t.Exposure,name:"Exposure",message:"Element Exposure",status:e.OK,extra:{threshold:s.threshold,observeTime:s.observeTime,showTime:s.showTime,showEndTime:i,duration:i-s.showTime,params:s.params}})}observe(e){(Array.isArray(e)?e:[e]).map(e=>n.parse(e)).forEach(e=>{const t=e.threshold??.5,s=this.ioMap.get(t)??this.initObserver(t);this.ioMap.set(t,s),this.targetMap.has(e.target)||(s.observe(e.target),this.targetMap.set(e.target,{threshold:t,observeTime:Date.now(),params:e.params??{}}))})}unobserve(e){(Array.isArray(e)?e:[e]).forEach(e=>this.unobserveOne(e))}unobserveOne(e){const t=this.targetMap.get(e);if(!t)return;const s=this.ioMap.get(t.threshold);s&&s.unobserve(e),this.targetMap.delete(e)}destroy(){this.ioMap.forEach(e=>{e.disconnect()}),this.ioMap.clear(),this.targetMap.clear()}}export{p as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";require("../../constants/index.cjs"),require("../../types/enums.cjs"),require("../../utils/sentry.cjs");var e=require("../../utils/is-type.cjs");
|
|
1
|
+
"use strict";require("../../constants/index.cjs"),require("../../types/enums.cjs"),require("../../utils/sentry.cjs");var e=require("../../utils/is-type.cjs"),t=require("../../utils/noop.cjs");require("../../utils/logger.cjs");const n=new Set(["link","script","style"]);function r(e){const t=e.getBoundingClientRect();return t.right>0&&t.bottom>0&&t.left<globalThis.innerWidth&&t.top<globalThis.innerHeight}exports.getFirstScreenPaint=function(i){if(!("MutationObserver"in globalThis)||"function"!=typeof globalThis.MutationObserver)return i(0),t.noop;let o=0,s=0,c=!1;const a=new globalThis.MutationObserver(t=>{(function(t){for(const i of t)if(e.isHTMLElement(i.target)&&i.addedNodes.length&&r(i.target))for(const t of Array.from(i.addedNodes))if(e.isHTMLElement(t)&&!n.has(t.tagName.toLowerCase())&&r(t))return!0;return!1})(t)&&(o=globalThis.performance.now())}),l=()=>{"complete"!==document.readyState?s=requestAnimationFrame(l):c||(c=!0,a.disconnect(),cancelAnimationFrame(s),i(o))};return a.observe(document,{childList:!0,subtree:!0}),l(),()=>{c||(c=!0,a.disconnect(),cancelAnimationFrame(s))}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../../constants/index.js";import"../../types/enums.js";import"../../utils/sentry.js";import{isHTMLElement as t}from"../../utils/is-type.js";
|
|
1
|
+
import"../../constants/index.js";import"../../types/enums.js";import"../../utils/sentry.js";import{isHTMLElement as t}from"../../utils/is-type.js";import{noop as e}from"../../utils/noop.js";import"../../utils/logger.js";const o=new Set(["link","script","style"]);function n(t){const e=t.getBoundingClientRect();return e.right>0&&e.bottom>0&&e.left<globalThis.innerWidth&&e.top<globalThis.innerHeight}function i(i){if(!("MutationObserver"in globalThis)||"function"!=typeof globalThis.MutationObserver)return i(0),e;let r=0,s=0,a=!1;const l=new globalThis.MutationObserver(e=>{(function(e){for(const i of e)if(t(i.target)&&i.addedNodes.length&&n(i.target))for(const e of Array.from(i.addedNodes))if(t(e)&&!o.has(e.tagName.toLowerCase())&&n(e))return!0;return!1})(e)&&(r=globalThis.performance.now())}),c=()=>{"complete"!==document.readyState?s=requestAnimationFrame(c):a||(a=!0,l.disconnect(),cancelAnimationFrame(s),i(r))};return l.observe(document,{childList:!0,subtree:!0}),c(),()=>{a||(a=!0,l.disconnect(),cancelAnimationFrame(s))}}export{i as getFirstScreenPaint};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../types/enums.cjs"),r=require("../../types/plugin.cjs"),s=require("../../reporter/index.cjs");require("../../constants/index.cjs");var t=require("../../utils/get-base-data.cjs");require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var i=require("./navigation-timing.cjs"),n=require("./perf.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../types/enums.cjs"),r=require("../../types/plugin.cjs"),s=require("../../reporter/index.cjs");require("../../constants/index.cjs");var t=require("../../utils/get-base-data.cjs");require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var i=require("../../utils/noop.cjs");require("../../utils/logger.cjs");var o=require("./navigation-timing.cjs"),n=require("./perf.cjs"),a=require("./performance-observer-support.cjs"),c=require("./resource-element-fallback.cjs"),u=require("./resource-timing.cjs");class p extends r.SentryPlugin{cleanups=[];init(){this.cleanups.push(this.startWebVitals()),this.cleanups.push(this.observeLongTasks()),this.cleanups.push(u.observeResourceTimings(e=>this.report(e))),this.cleanups.push(c.observeResourceElementFallback(e=>this.report(e))),this.cleanups.push(this.onPageReady(()=>{this.reportPageLoadTimings()})),this.reportMemory()}destroy(){this.cleanups.toReversed().forEach(e=>{e()}),this.cleanups=[]}report(e){s.default.send(e)}startWebVitals(){try{return n.getWebVitals(e=>{this.report(e)})}catch{return i.noop}}observeLongTasks(){if(!a.supportsPerformanceEntryType("longtask"))return i.noop;const r=new globalThis.PerformanceObserver(r=>{const s={...t.default(),name:"LongTask",type:e.EventType.Performance,longTasks:r.getEntries()};this.report(s)});return r.observe({entryTypes:["longtask"]}),()=>{r.disconnect()}}onPageReady(e){if("complete"===document.readyState)return queueMicrotask(e),i.noop;const r=()=>{e()};return globalThis.addEventListener("load",r,{once:!0}),()=>{globalThis.removeEventListener("load",r)}}reportPageLoadTimings(){const e=o.getNavigationTimingData();e&&this.report(e),this.report(u.getInitialResourceListData())}async reportMemory(){if("performance"in globalThis&&"measureUserAgentSpecificMemory"in globalThis.performance&&"function"==typeof globalThis.performance.measureUserAgentSpecificMemory){const r={...t.default(),name:"Memory",type:e.EventType.Performance,message:"performance.measureUserAgentSpecificMemory",memory:await globalThis.performance.measureUserAgentSpecificMemory()};this.report(r)}}}exports.default=p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventType as e}from"../../types/enums.js";import{SentryPlugin as r}from"../../types/plugin.js";import s from"../../reporter/index.js";import"../../constants/index.js";import t from"../../utils/get-base-data.js";import"../../utils/sentry.js";import"../../utils/is-type.js";import{
|
|
1
|
+
import{EventType as e}from"../../types/enums.js";import{SentryPlugin as r}from"../../types/plugin.js";import s from"../../reporter/index.js";import"../../constants/index.js";import t from"../../utils/get-base-data.js";import"../../utils/sentry.js";import"../../utils/is-type.js";import{noop as o}from"../../utils/noop.js";import"../../utils/logger.js";import{getNavigationTimingData as i}from"./navigation-timing.js";import{getWebVitals as n}from"./perf.js";import{supportsPerformanceEntryType as a}from"./performance-observer-support.js";import{observeResourceElementFallback as p}from"./resource-element-fallback.js";import{observeResourceTimings as m,getInitialResourceListData as c}from"./resource-timing.js";class l extends r{cleanups=[];init(){this.cleanups.push(this.startWebVitals()),this.cleanups.push(this.observeLongTasks()),this.cleanups.push(m(e=>this.report(e))),this.cleanups.push(p(e=>this.report(e))),this.cleanups.push(this.onPageReady(()=>{this.reportPageLoadTimings()})),this.reportMemory()}destroy(){this.cleanups.toReversed().forEach(e=>{e()}),this.cleanups=[]}report(e){s.send(e)}startWebVitals(){try{return n(e=>{this.report(e)})}catch{return o}}observeLongTasks(){if(!a("longtask"))return o;const r=new globalThis.PerformanceObserver(r=>{const s={...t(),name:"LongTask",type:e.Performance,longTasks:r.getEntries()};this.report(s)});return r.observe({entryTypes:["longtask"]}),()=>{r.disconnect()}}onPageReady(e){if("complete"===document.readyState)return queueMicrotask(e),o;const r=()=>{e()};return globalThis.addEventListener("load",r,{once:!0}),()=>{globalThis.removeEventListener("load",r)}}reportPageLoadTimings(){const e=i();e&&this.report(e),this.report(c())}async reportMemory(){if("performance"in globalThis&&"measureUserAgentSpecificMemory"in globalThis.performance&&"function"==typeof globalThis.performance.measureUserAgentSpecificMemory){const r={...t(),name:"Memory",type:e.Performance,message:"performance.measureUserAgentSpecificMemory",memory:await globalThis.performance.measureUserAgentSpecificMemory()};this.report(r)}}}export{l as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var t=require("../../types/enums.cjs");require("../../constants/index.cjs");var e=require("../../utils/get-base-data.cjs");function n(t,e){return Math.max(0,Math.round(t-e))}function r(t,e){const r=t.fetchStart;return{paintTime:e>0?n(e,r):0,domInteractive:n(t.domInteractive,r),domContentLoaded:n(t.domContentLoadedEventEnd,r),loadEvent:n(t.loadEventStart,r),firstByte:n(t.responseStart,r),dnsLookup:n(t.domainLookupEnd,t.domainLookupStart),tcpConnection:n(t.connectEnd,t.connectStart),tlsHandshake:n(t.connectEnd,t.secureConnectionStart),timeToFirstByte:n(t.responseStart,t.requestStart),contentTransfer:n(t.responseEnd,t.responseStart),domProcessing:n(t.domInteractive,t.responseEnd),resourceLoad:n(t.loadEventStart,t.domContentLoadedEventEnd),redirect:n(t.redirectEnd,t.redirectStart),unloadTime:n(t.unloadEventEnd,t.unloadEventStart),triggerPageUrl:location.href}}require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs"),exports.getNavigationTimingData=function(){if(!("performance"in globalThis)||"function"!=typeof globalThis.performance.getEntriesByType)return null;const n=function(){const t=globalThis.performance.getEntriesByType("navigation")[0];return t&&function(t){return"navigation"===t.entryType&&"fetchStart"in t}(t)?t:null}();return n?{...e.default(),type:t.EventType.Performance,name:"NavigationTiming",message:"Page navigation timing",status:t.Status.OK,extra:r(n,globalThis.performance.getEntriesByType("paint").at(-1)?.startTime??0)}:null};
|
|
1
|
+
"use strict";var t=require("../../types/enums.cjs");require("../../constants/index.cjs");var e=require("../../utils/get-base-data.cjs");function n(t,e){return Math.max(0,Math.round(t-e))}function r(t,e){const r=t.fetchStart;return{paintTime:e>0?n(e,r):0,domInteractive:n(t.domInteractive,r),domContentLoaded:n(t.domContentLoadedEventEnd,r),loadEvent:n(t.loadEventStart,r),firstByte:n(t.responseStart,r),dnsLookup:n(t.domainLookupEnd,t.domainLookupStart),tcpConnection:n(t.connectEnd,t.connectStart),tlsHandshake:n(t.connectEnd,t.secureConnectionStart),timeToFirstByte:n(t.responseStart,t.requestStart),contentTransfer:n(t.responseEnd,t.responseStart),domProcessing:n(t.domInteractive,t.responseEnd),resourceLoad:n(t.loadEventStart,t.domContentLoadedEventEnd),redirect:n(t.redirectEnd,t.redirectStart),unloadTime:n(t.unloadEventEnd,t.unloadEventStart),triggerPageUrl:location.href}}require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs"),require("../../utils/logger.cjs"),exports.getNavigationTimingData=function(){if(!("performance"in globalThis)||"function"!=typeof globalThis.performance.getEntriesByType)return null;const n=function(){const t=globalThis.performance.getEntriesByType("navigation")[0];return t&&function(t){return"navigation"===t.entryType&&"fetchStart"in t}(t)?t:null}();return n?{...e.default(),type:t.EventType.Performance,name:"NavigationTiming",message:"Page navigation timing",status:t.Status.OK,extra:r(n,globalThis.performance.getEntriesByType("paint").at(-1)?.startTime??0)}:null};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as t,EventType as n}from"../../types/enums.js";import"../../constants/index.js";import e from"../../utils/get-base-data.js";import"../../utils/sentry.js";import"../../utils/is-type.js";function o(t,n){return Math.max(0,Math.round(t-n))}function r(t,n){const e=t.fetchStart;return{paintTime:n>0?o(n,e):0,domInteractive:o(t.domInteractive,e),domContentLoaded:o(t.domContentLoadedEventEnd,e),loadEvent:o(t.loadEventStart,e),firstByte:o(t.responseStart,e),dnsLookup:o(t.domainLookupEnd,t.domainLookupStart),tcpConnection:o(t.connectEnd,t.connectStart),tlsHandshake:o(t.connectEnd,t.secureConnectionStart),timeToFirstByte:o(t.responseStart,t.requestStart),contentTransfer:o(t.responseEnd,t.responseStart),domProcessing:o(t.domInteractive,t.responseEnd),resourceLoad:o(t.loadEventStart,t.domContentLoadedEventEnd),redirect:o(t.redirectEnd,t.redirectStart),unloadTime:o(t.unloadEventEnd,t.unloadEventStart),triggerPageUrl:location.href}}function a(){if(!("performance"in globalThis)||"function"!=typeof globalThis.performance.getEntriesByType)return null;const o=function(){const t=globalThis.performance.getEntriesByType("navigation")[0];return t&&function(t){return"navigation"===t.entryType&&"fetchStart"in t}(t)?t:null}();return o?{...e(),type:n.Performance,name:"NavigationTiming",message:"Page navigation timing",status:t.OK,extra:r(o,globalThis.performance.getEntriesByType("paint").at(-1)?.startTime??0)}:null}export{a as getNavigationTimingData};
|
|
1
|
+
import{Status as t,EventType as n}from"../../types/enums.js";import"../../constants/index.js";import e from"../../utils/get-base-data.js";import"../../utils/sentry.js";import"../../utils/is-type.js";import"../../utils/logger.js";function o(t,n){return Math.max(0,Math.round(t-n))}function r(t,n){const e=t.fetchStart;return{paintTime:n>0?o(n,e):0,domInteractive:o(t.domInteractive,e),domContentLoaded:o(t.domContentLoadedEventEnd,e),loadEvent:o(t.loadEventStart,e),firstByte:o(t.responseStart,e),dnsLookup:o(t.domainLookupEnd,t.domainLookupStart),tcpConnection:o(t.connectEnd,t.connectStart),tlsHandshake:o(t.connectEnd,t.secureConnectionStart),timeToFirstByte:o(t.responseStart,t.requestStart),contentTransfer:o(t.responseEnd,t.responseStart),domProcessing:o(t.domInteractive,t.responseEnd),resourceLoad:o(t.loadEventStart,t.domContentLoadedEventEnd),redirect:o(t.redirectEnd,t.redirectStart),unloadTime:o(t.unloadEventEnd,t.unloadEventStart),triggerPageUrl:location.href}}function a(){if(!("performance"in globalThis)||"function"!=typeof globalThis.performance.getEntriesByType)return null;const o=function(){const t=globalThis.performance.getEntriesByType("navigation")[0];return t&&function(t){return"navigation"===t.entryType&&"fetchStart"in t}(t)?t:null}();return o?{...e(),type:n.Performance,name:"NavigationTiming",message:"Page navigation timing",status:t.OK,extra:r(o,globalThis.performance.getEntriesByType("paint").at(-1)?.startTime??0)}:null}export{a as getNavigationTimingData};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../../types/enums.cjs"),t=require("web-vitals");require("../../constants/index.cjs");var r=require("../../utils/get-base-data.cjs");require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var s=require("../../utils/metric2perf-data.cjs"),
|
|
1
|
+
"use strict";var e=require("../../types/enums.cjs"),t=require("web-vitals");require("../../constants/index.cjs");var r=require("../../utils/get-base-data.cjs");require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var s=require("../../utils/metric2perf-data.cjs"),n=require("../../utils/logger.cjs"),i=require("./first-screen-paint.cjs");exports.getWebVitals=function(u){n.sentryLogger.info("Starting web vitals monitoring...");const a=e=>{n.sentryLogger.success(`Metric: ${e.name}`,e,function(e){if("value"in e&&"number"==typeof e.value)return Math.round(e.value)}(e)),u(e)};return t.onLCP(e=>{a(s.default(e))}),t.onFCP(e=>{a(s.default(e))}),t.onCLS(e=>{a(s.default(e))}),t.onINP(e=>{a(s.default(e))}),t.onTTFB(e=>{a(s.default(e))}),i.getFirstScreenPaint(t=>{const s={...r.default(),name:"FSP",value:t,type:e.EventType.Performance,message:"First screen paint"};a(s)})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventType as t}from"../../types/enums.js";import{onLCP as
|
|
1
|
+
import{EventType as t}from"../../types/enums.js";import{onLCP as r,onFCP as e,onCLS as s,onINP as i,onTTFB as o}from"web-vitals";import"../../constants/index.js";import n from"../../utils/get-base-data.js";import"../../utils/sentry.js";import"../../utils/is-type.js";import m from"../../utils/metric2perf-data.js";import{sentryLogger as a}from"../../utils/logger.js";import{getFirstScreenPaint as p}from"./first-screen-paint.js";function u(u){a.info("Starting web vitals monitoring...");const f=t=>{a.success(`Metric: ${t.name}`,t,function(t){if("value"in t&&"number"==typeof t.value)return Math.round(t.value)}(t)),u(t)};return r(t=>{f(m(t))}),e(t=>{f(m(t))}),s(t=>{f(m(t))}),i(t=>{f(m(t))}),o(t=>{f(m(t))}),p(r=>{const e={...n(),name:"FSP",value:r,type:t.Performance,message:"First screen paint"};f(e)})}export{u as getWebVitals};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";require("../../constants/index.cjs"),require("../../types/enums.cjs");var e=require("../../utils/
|
|
1
|
+
"use strict";require("../../constants/index.cjs"),require("../../types/enums.cjs"),require("../../utils/sentry.cjs"),require("../../utils/is-type.cjs");var e=require("../../utils/noop.cjs");require("../../utils/logger.cjs");var r=require("./resource-timing.cjs"),n=require("./performance-observer-support.cjs");const t=new Set(["IMG","SCRIPT","LINK"]);exports.observeResourceElementFallback=function(o){if(n.supportsPerformanceEntryType("resource")||!("MutationObserver"in globalThis)||"function"!=typeof globalThis.MutationObserver)return e.noop;const s=[],i=new Set,c=e=>{const n=function(e){return e instanceof HTMLImageElement?e.currentSrc||e.src:e instanceof HTMLScriptElement?e.src:e.href}(e);if(!n||i.has(n)||r.isSdkReportUrl(n))return;i.add(n);const t=function(e){return r.getResourceList().filter(r=>r.name===e).at(-1)??null}(n)??function(e,r){const n="performance"in globalThis?Math.round(globalThis.performance.now()):Date.now();return{name:e,initiatorType:r,startTime:n,responseEnd:n,duration:0,transferSize:0,encodedBodySize:0,decodedBodySize:0,fromCache:!1}}(n,e.tagName.toLowerCase());o(r.createResourceTimingData(t))},a=new globalThis.MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{(function(e){return e instanceof HTMLElement&&t.has(e.tagName)})(e)&&(e=>{const r=()=>{c(e)};e.addEventListener("load",r,{once:!0}),e.addEventListener("error",r,{once:!0}),s.push({element:e,eventName:"load",listener:r}),s.push({element:e,eventName:"error",listener:r})})(e)})})});return a.observe(document.documentElement,{childList:!0,subtree:!0}),()=>{a.disconnect(),s.forEach(({element:e,eventName:r,listener:n})=>{e.removeEventListener(r,n)})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../../constants/index.js";import"../../types/enums.js";import
|
|
1
|
+
import"../../constants/index.js";import"../../types/enums.js";import"../../utils/sentry.js";import"../../utils/is-type.js";import{noop as e}from"../../utils/noop.js";import"../../utils/logger.js";import{isSdkReportUrl as t,createResourceTimingData as n,getResourceList as r}from"./resource-timing.js";import{supportsPerformanceEntryType as o}from"./performance-observer-support.js";const s=new Set(["IMG","SCRIPT","LINK"]);function i(i){if(o("resource")||!("MutationObserver"in globalThis)||"function"!=typeof globalThis.MutationObserver)return e;const a=[],c=new Set,m=e=>{const o=function(e){return e instanceof HTMLImageElement?e.currentSrc||e.src:e instanceof HTMLScriptElement?e.src:e.href}(e);if(!o||c.has(o)||t(o))return;c.add(o);const s=function(e){return r().filter(t=>t.name===e).at(-1)??null}(o)??function(e,t){const n="performance"in globalThis?Math.round(globalThis.performance.now()):Date.now();return{name:e,initiatorType:t,startTime:n,responseEnd:n,duration:0,transferSize:0,encodedBodySize:0,decodedBodySize:0,fromCache:!1}}(o,e.tagName.toLowerCase());i(n(s))},u=new globalThis.MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{(function(e){return e instanceof HTMLElement&&s.has(e.tagName)})(e)&&(e=>{const t=()=>{m(e)};e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0}),a.push({element:e,eventName:"load",listener:t}),a.push({element:e,eventName:"error",listener:t})})(e)})})});return u.observe(document.documentElement,{childList:!0,subtree:!0}),()=>{u.disconnect(),a.forEach(({element:e,eventName:t,listener:n})=>{e.removeEventListener(t,n)})}}export{i as observeResourceElementFallback};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../../types/enums.cjs");require("../../constants/index.cjs");var r=require("../../utils/get-base-data.cjs"),t=require("../../utils/sentry.cjs");require("../../utils/is-type.cjs");var n=require("./performance-observer-support.cjs");const
|
|
1
|
+
"use strict";var e=require("../../types/enums.cjs");require("../../constants/index.cjs");var r=require("../../utils/get-base-data.cjs"),t=require("../../utils/sentry.cjs");require("../../utils/is-type.cjs");var n=require("../../utils/noop.cjs");require("../../utils/logger.cjs");var s=require("./performance-observer-support.cjs");const o=new Set(["fetch","xmlhttprequest","beacon"]);function i(e){return"resource"===e.entryType&&"initiatorType"in e}function u(e){return""!==t.default.options.dsn&&e.includes(t.default.options.dsn)}function a(e){return!o.has(e.initiatorType)&&!u(e.name)}function c(e){return{name:e.name,initiatorType:e.initiatorType,startTime:Math.round(e.startTime),responseEnd:Math.round(e.responseEnd),duration:Math.round(e.duration),transferSize:e.transferSize,encodedBodySize:e.encodedBodySize,decodedBodySize:e.decodedBodySize,fromCache:d(e)}}function p(t){return{...r.default(),type:e.EventType.Performance,name:"ResourceTiming",message:t.name,status:e.Status.OK,value:t.duration,extra:{resource:t}}}function d(e){return 0===e.transferSize||0===e.encodedBodySize}function f(){return"performance"in globalThis&&"function"==typeof globalThis.performance.getEntriesByType?globalThis.performance.getEntriesByType("resource").filter(i).filter(a).map(c):[]}exports.createResourceTimingData=p,exports.getInitialResourceListData=function(){return{...r.default(),name:"ResourceList",type:e.EventType.Performance,status:e.Status.OK,resourceList:f()}},exports.getResourceList=f,exports.isSdkReportUrl=u,exports.observeResourceTimings=function(e){if(!s.supportsPerformanceEntryType("resource"))return n.noop;const r=new globalThis.PerformanceObserver(r=>{r.getEntries().filter(i).filter(a).map(c).forEach(r=>{e(p(r))})});return r.observe({entryTypes:["resource"]}),()=>{r.disconnect()}};
|