@aj-2000-test/goodlogs-sdk 0.3.1 → 0.3.2
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.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/replay.cjs +1 -2
- package/dist/replay.d.cts +3 -5
- package/dist/replay.d.ts +3 -5
- package/dist/replay.js +1 -2
- package/package.json +10 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var S=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var I={us:"https://goodlogs-api-us.happyhill-a7c56143.centralindia.azurecontainerapps.io",eu:"https://goodlogs-api-eu.yellowmeadow-422296f6.japaneast.azurecontainerapps.io",ap:"https://goodlogs-api-ap.delightfulsand-90b72c09.southeastasia.azurecontainerapps.io"};function B(o){let t=o.split("_");return t.length>=4&&t[0]==="gl"?t[2]:"eu"}function y(o,t){if(t)return t;let e=B(o);return I[e]||I.eu}var G=5e3,F=50,v="0.3.
|
|
1
|
+
'use strict';var S=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var I={us:"https://goodlogs-api-us.happyhill-a7c56143.centralindia.azurecontainerapps.io",eu:"https://goodlogs-api-eu.yellowmeadow-422296f6.japaneast.azurecontainerapps.io",ap:"https://goodlogs-api-ap.delightfulsand-90b72c09.southeastasia.azurecontainerapps.io"};function B(o){let t=o.split("_");return t.length>=4&&t[0]==="gl"?t[2]:"eu"}function y(o,t){if(t)return t;let e=B(o);return I[e]||I.eu}var G=5e3,F=50,v="0.3.2",w="gl_anon_id",_="gl_session_id";function b(){return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,o=>{let t=Math.random()*16|0;return (o==="x"?t:t&3|8).toString(16)})}function M(){let o={$goodlogs_sdk:"js",$goodlogs_sdk_version:v};return typeof navigator>"u"||(typeof screen<"u"&&(o.$screen=`${screen.width}x${screen.height}`),typeof navigator<"u"&&(o.$language=navigator.language??""),typeof location<"u"&&(o.$url=location.href,o.$path=location.pathname,o.$page=location.pathname.split("/").filter(Boolean).pop()||"/"),typeof document<"u"&&(document.referrer&&(o.$referrer=document.referrer),document.title&&(o.$title=document.title))),o}function U(o,t){let e={$session_id:o,$distinct_id:t,$goodlogs_sdk:"js",$goodlogs_sdk_version:v};return typeof navigator>"u"||typeof location<"u"&&(e.$url=location.href,e.$path=location.pathname),e}function D(){if(!(typeof document<"u"))try{let t=new Error().stack?.split(`
|
|
2
2
|
`);if(!t)return;for(let e=3;e<Math.min(t.length,8);e++){let n=t[e]?.trim();if(!n||n.includes("goodlogs")&&(n.includes("client.")||n.includes("index.")))continue;let r=n.match(/at\s+(?:(.+?)\s+\()?(.+?):(\d+):\d+\)?/);if(r){let s=r[1]||"<anonymous>",i=r[2]?.replace(/^.*[/\\]/,"")??"",d=r[3];return `${s}@${i}:${d}`}}}catch{}}function K(){if(typeof localStorage<"u"){let o=localStorage.getItem(w);if(o)return o;let t=b();return localStorage.setItem(w,t),t}return b()}function X(){if(typeof sessionStorage<"u"){let o=sessionStorage.getItem(_);if(o)return o;let t=b();return sessionStorage.setItem(_,t),t}return b()}function z(){let o="";for(let t=0;t<32;t++)o+=(Math.random()*16|0).toString(16);return o}function V(){let o="";for(let t=0;t<16;t++)o+=(Math.random()*16|0).toString(16);return o}function W(o,t){switch(o){case "lcp":return t<=2500?"good":t<=4e3?"needs-improvement":"poor";case "inp":return t<=200?"good":t<=500?"needs-improvement":"poor";case "cls":return t<=.1?"good":t<=.25?"needs-improvement":"poor";case "fcp":return t<=1800?"good":t<=3e3?"needs-improvement":"poor";case "ttfb":return t<=800?"good":t<=1800?"needs-improvement":"poor";default:return}}function J(o){if(!o)return [];let t=[];for(let e of o.split(`
|
|
3
3
|
`)){let n=e.trim();if(!n||n.startsWith("Error")||n.startsWith("at Error"))continue;let r=/^at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/.exec(n);if(r){let s=r[1]?.trim(),i=r[2];t.push({function:s&&s!=="<anonymous>"?s:void 0,filename:i,lineno:Number(r[3]),colno:Number(r[4]),abs_path:i,in_app:!i.includes("node_modules/")&&!i.includes("/dist/")&&!i.startsWith("internal/")});continue}if(r=/^([^@]*)@(.+?):(\d+):(\d+)$/.exec(n),r){let s=r[1]?.trim(),i=r[2];t.push({function:s||void 0,filename:i,lineno:Number(r[3]),colno:Number(r[4]),abs_path:i,in_app:!i.includes("node_modules/")&&!i.includes("/dist/")});}}return t}var R=class R{constructor(t){this.originalFetch=null;this.xhrPatched=false;this.logBuffer=[];this.eventBuffer=[];this.errorBuffer=[];this.vitalBuffer=[];this.spanBuffer=[];this.breadcrumbBuffer=[];this.timer=null;this.visibilityHandler=null;this.clickHandler=null;this.lastPath="";this.navTransaction=null;this.errorHandler=null;this.rejectionHandler=null;this.apiKey=t.apiKey,this.endpoint=y(t.apiKey,t.endpoint).replace(/\/+$/,""),this.flushInterval=t.flushInterval??G,this.batchSize=t.batchSize??F,this.defaultContext=t.defaultContext??{},this.onError=t.onError??(()=>{}),this.disabled=t.disabled??false,this.telemetry=t.telemetry??true,this.useEnvelope=t.useEnvelope??false,this.autoFetch=t.autoFetch??(this.useEnvelope&&t.autocapture!==false),this.anonymousId=K(),this.sessionId=X(),this.disabled&&typeof console<"u"&&console.warn("[GoodLogs] SDK is disabled. No events or logs will be sent."),this.disabled||(this.startTimer(),this.attachPageLifecycle(),t.autocapture!==false&&(this.attachClickCapture(),this.captureWebVitals(),this.attachPageviewCapture(),this.attachGlobalErrorHandlers()),this.autoFetch&&(this.attachFetchInstrumentation(),this.attachXhrInstrumentation()),this.sendTelemetry("init","info"));}log(t,e,n){if(this.disabled)return;let r=65536,s=e;e.length>r&&(s=e.slice(0,r-100)+`
|
|
4
4
|
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var S=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var I={us:"https://goodlogs-api-us.happyhill-a7c56143.centralindia.azurecontainerapps.io",eu:"https://goodlogs-api-eu.yellowmeadow-422296f6.japaneast.azurecontainerapps.io",ap:"https://goodlogs-api-ap.delightfulsand-90b72c09.southeastasia.azurecontainerapps.io"};function B(o){let t=o.split("_");return t.length>=4&&t[0]==="gl"?t[2]:"eu"}function y(o,t){if(t)return t;let e=B(o);return I[e]||I.eu}var G=5e3,F=50,v="0.3.
|
|
1
|
+
var S=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var I={us:"https://goodlogs-api-us.happyhill-a7c56143.centralindia.azurecontainerapps.io",eu:"https://goodlogs-api-eu.yellowmeadow-422296f6.japaneast.azurecontainerapps.io",ap:"https://goodlogs-api-ap.delightfulsand-90b72c09.southeastasia.azurecontainerapps.io"};function B(o){let t=o.split("_");return t.length>=4&&t[0]==="gl"?t[2]:"eu"}function y(o,t){if(t)return t;let e=B(o);return I[e]||I.eu}var G=5e3,F=50,v="0.3.2",w="gl_anon_id",_="gl_session_id";function b(){return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,o=>{let t=Math.random()*16|0;return (o==="x"?t:t&3|8).toString(16)})}function M(){let o={$goodlogs_sdk:"js",$goodlogs_sdk_version:v};return typeof navigator>"u"||(typeof screen<"u"&&(o.$screen=`${screen.width}x${screen.height}`),typeof navigator<"u"&&(o.$language=navigator.language??""),typeof location<"u"&&(o.$url=location.href,o.$path=location.pathname,o.$page=location.pathname.split("/").filter(Boolean).pop()||"/"),typeof document<"u"&&(document.referrer&&(o.$referrer=document.referrer),document.title&&(o.$title=document.title))),o}function U(o,t){let e={$session_id:o,$distinct_id:t,$goodlogs_sdk:"js",$goodlogs_sdk_version:v};return typeof navigator>"u"||typeof location<"u"&&(e.$url=location.href,e.$path=location.pathname),e}function D(){if(!(typeof document<"u"))try{let t=new Error().stack?.split(`
|
|
2
2
|
`);if(!t)return;for(let e=3;e<Math.min(t.length,8);e++){let n=t[e]?.trim();if(!n||n.includes("goodlogs")&&(n.includes("client.")||n.includes("index.")))continue;let r=n.match(/at\s+(?:(.+?)\s+\()?(.+?):(\d+):\d+\)?/);if(r){let s=r[1]||"<anonymous>",i=r[2]?.replace(/^.*[/\\]/,"")??"",d=r[3];return `${s}@${i}:${d}`}}}catch{}}function K(){if(typeof localStorage<"u"){let o=localStorage.getItem(w);if(o)return o;let t=b();return localStorage.setItem(w,t),t}return b()}function X(){if(typeof sessionStorage<"u"){let o=sessionStorage.getItem(_);if(o)return o;let t=b();return sessionStorage.setItem(_,t),t}return b()}function z(){let o="";for(let t=0;t<32;t++)o+=(Math.random()*16|0).toString(16);return o}function V(){let o="";for(let t=0;t<16;t++)o+=(Math.random()*16|0).toString(16);return o}function W(o,t){switch(o){case "lcp":return t<=2500?"good":t<=4e3?"needs-improvement":"poor";case "inp":return t<=200?"good":t<=500?"needs-improvement":"poor";case "cls":return t<=.1?"good":t<=.25?"needs-improvement":"poor";case "fcp":return t<=1800?"good":t<=3e3?"needs-improvement":"poor";case "ttfb":return t<=800?"good":t<=1800?"needs-improvement":"poor";default:return}}function J(o){if(!o)return [];let t=[];for(let e of o.split(`
|
|
3
3
|
`)){let n=e.trim();if(!n||n.startsWith("Error")||n.startsWith("at Error"))continue;let r=/^at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?$/.exec(n);if(r){let s=r[1]?.trim(),i=r[2];t.push({function:s&&s!=="<anonymous>"?s:void 0,filename:i,lineno:Number(r[3]),colno:Number(r[4]),abs_path:i,in_app:!i.includes("node_modules/")&&!i.includes("/dist/")&&!i.startsWith("internal/")});continue}if(r=/^([^@]*)@(.+?):(\d+):(\d+)$/.exec(n),r){let s=r[1]?.trim(),i=r[2];t.push({function:s||void 0,filename:i,lineno:Number(r[3]),colno:Number(r[4]),abs_path:i,in_app:!i.includes("node_modules/")&&!i.includes("/dist/")});}}return t}var R=class R{constructor(t){this.originalFetch=null;this.xhrPatched=false;this.logBuffer=[];this.eventBuffer=[];this.errorBuffer=[];this.vitalBuffer=[];this.spanBuffer=[];this.breadcrumbBuffer=[];this.timer=null;this.visibilityHandler=null;this.clickHandler=null;this.lastPath="";this.navTransaction=null;this.errorHandler=null;this.rejectionHandler=null;this.apiKey=t.apiKey,this.endpoint=y(t.apiKey,t.endpoint).replace(/\/+$/,""),this.flushInterval=t.flushInterval??G,this.batchSize=t.batchSize??F,this.defaultContext=t.defaultContext??{},this.onError=t.onError??(()=>{}),this.disabled=t.disabled??false,this.telemetry=t.telemetry??true,this.useEnvelope=t.useEnvelope??false,this.autoFetch=t.autoFetch??(this.useEnvelope&&t.autocapture!==false),this.anonymousId=K(),this.sessionId=X(),this.disabled&&typeof console<"u"&&console.warn("[GoodLogs] SDK is disabled. No events or logs will be sent."),this.disabled||(this.startTimer(),this.attachPageLifecycle(),t.autocapture!==false&&(this.attachClickCapture(),this.captureWebVitals(),this.attachPageviewCapture(),this.attachGlobalErrorHandlers()),this.autoFetch&&(this.attachFetchInstrumentation(),this.attachXhrInstrumentation()),this.sendTelemetry("init","info"));}log(t,e,n){if(this.disabled)return;let r=65536,s=e;e.length>r&&(s=e.slice(0,r-100)+`
|
|
4
4
|
|
package/dist/replay.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
exports.startReplay=$;
|
|
1
|
+
'use strict';async function A(n,e={}){if(typeof document>"u")return null;let o=e.sampleRate??1;if(o<1&&Math.random()>o)return null;let r=e.rrwebRecord??await O();if(!r)return null;let s=n.endpoint,l=n.apiKey,i=n.sessionId,v=n.getDistinctId(),y=e.flushIntervalMs??5e3,h=e.flushBytes??5e5,c=[],d=0,w=0,m=false,u=false;f(s,l,{session_id:i,distinct_id:v,start_url:typeof location<"u"?location.href:null,last_url:typeof location<"u"?location.href:null},e.onError);let a=async()=>{if(c.length===0)return;let t=c,I=t[0].timestamp,g=t[t.length-1].timestamp,S=t.length;c=[],d=0;let B=w++;try{let p=JSON.stringify(t),E=await C(p),T=`${s}/v1/replay/chunks?session_id=${encodeURIComponent(i)}&seq=${B}&start_ts=${encodeURIComponent(new Date(I).toISOString())}&end_ts=${encodeURIComponent(new Date(g).toISOString())}&event_count=${S}`;await fetch(T,{method:"POST",headers:{Authorization:`Bearer ${l}`,"Content-Type":"application/gzip","Content-Encoding":"gzip"},body:E,keepalive:!0});}catch(p){e.onError?.(p);}f(s,l,{session_id:i,last_url:typeof location<"u"?location.href:null,last_activity_at:new Date(g).toISOString(),has_error:m||void 0},e.onError);},k=r({emit:t=>{u||(c.push(t),d+=256,d>=h&&a());},checkoutEveryNms:6e4,maskAllInputs:e.maskAllInputs??true,blockSelector:e.blockSelector??"[data-gl-block]",maskTextSelector:e.maskTextSelector??"[data-gl-mask]"}),R=setInterval(()=>{a();},y),b=()=>{document?.visibilityState==="hidden"&&a();};document.addEventListener("visibilitychange",b);let _=setInterval(()=>{globalThis.__gl_replay_has_error__&&(m=true);},1e3);return {sessionId:i,flush:a,stop:()=>{if(!u){u=true,clearInterval(R),clearInterval(_),document?.removeEventListener("visibilitychange",b);try{k();}catch(t){e.onError?.(t);}a(),f(s,l,{session_id:i,ended_at:new Date().toISOString()},e.onError);}}}}async function f(n,e,o,r){try{await fetch(`${n}/v1/replay/sessions`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o),keepalive:!0});}catch(s){r?.(s);}}async function C(n){if(typeof CompressionStream>"u"||typeof Blob>"u"||typeof Response>"u")return n;let o=new Blob([n]).stream().pipeThrough(new CompressionStream("gzip")),r=await new Response(o).arrayBuffer();return new Blob([r],{type:"application/gzip"})}async function O(){try{let n=await import('rrweb');return n.record??n.default?.record??null}catch{return null}}exports.startReplay=A;
|
package/dist/replay.d.cts
CHANGED
|
@@ -13,8 +13,8 @@ import { G as GoodLogs } from './client-w3t1Yzjd.cjs';
|
|
|
13
13
|
* Capture is *not* a video — it's the rrweb DOM-mutation stream gzipped
|
|
14
14
|
* and shipped to /v1/replay/chunks. See docs/storage-design.md for storage.
|
|
15
15
|
*
|
|
16
|
-
* rrweb is
|
|
17
|
-
*
|
|
16
|
+
* rrweb is a real npm dep, dynamically imported so the core SDK bundle
|
|
17
|
+
* stays small and the rrweb code only loads when replay is started.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
interface RrwebRecord {
|
|
@@ -37,10 +37,8 @@ interface RrwebEvent {
|
|
|
37
37
|
timestamp: number;
|
|
38
38
|
}
|
|
39
39
|
interface ReplayOptions {
|
|
40
|
-
/** Provide rrweb's `record` yourself (bundled). Skips
|
|
40
|
+
/** Provide rrweb's `record` yourself (bundled). Skips dynamic import. */
|
|
41
41
|
rrwebRecord?: RrwebRecord;
|
|
42
|
-
/** CDN URL for rrweb when `rrwebRecord` is not provided. */
|
|
43
|
-
cdnUrl?: string;
|
|
44
42
|
/** Flush queued events every N ms (default 5000). */
|
|
45
43
|
flushIntervalMs?: number;
|
|
46
44
|
/** Force flush when queue reaches this size in bytes (default 500_000). */
|
package/dist/replay.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ import { G as GoodLogs } from './client-w3t1Yzjd.js';
|
|
|
13
13
|
* Capture is *not* a video — it's the rrweb DOM-mutation stream gzipped
|
|
14
14
|
* and shipped to /v1/replay/chunks. See docs/storage-design.md for storage.
|
|
15
15
|
*
|
|
16
|
-
* rrweb is
|
|
17
|
-
*
|
|
16
|
+
* rrweb is a real npm dep, dynamically imported so the core SDK bundle
|
|
17
|
+
* stays small and the rrweb code only loads when replay is started.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
interface RrwebRecord {
|
|
@@ -37,10 +37,8 @@ interface RrwebEvent {
|
|
|
37
37
|
timestamp: number;
|
|
38
38
|
}
|
|
39
39
|
interface ReplayOptions {
|
|
40
|
-
/** Provide rrweb's `record` yourself (bundled). Skips
|
|
40
|
+
/** Provide rrweb's `record` yourself (bundled). Skips dynamic import. */
|
|
41
41
|
rrwebRecord?: RrwebRecord;
|
|
42
|
-
/** CDN URL for rrweb when `rrwebRecord` is not provided. */
|
|
43
|
-
cdnUrl?: string;
|
|
44
42
|
/** Flush queued events every N ms (default 5000). */
|
|
45
43
|
flushIntervalMs?: number;
|
|
46
44
|
/** Force flush when queue reaches this size in bytes (default 500_000). */
|
package/dist/replay.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export{$ as startReplay};
|
|
1
|
+
async function A(n,e={}){if(typeof document>"u")return null;let o=e.sampleRate??1;if(o<1&&Math.random()>o)return null;let r=e.rrwebRecord??await O();if(!r)return null;let s=n.endpoint,l=n.apiKey,i=n.sessionId,v=n.getDistinctId(),y=e.flushIntervalMs??5e3,h=e.flushBytes??5e5,c=[],d=0,w=0,m=false,u=false;f(s,l,{session_id:i,distinct_id:v,start_url:typeof location<"u"?location.href:null,last_url:typeof location<"u"?location.href:null},e.onError);let a=async()=>{if(c.length===0)return;let t=c,I=t[0].timestamp,g=t[t.length-1].timestamp,S=t.length;c=[],d=0;let B=w++;try{let p=JSON.stringify(t),E=await C(p),T=`${s}/v1/replay/chunks?session_id=${encodeURIComponent(i)}&seq=${B}&start_ts=${encodeURIComponent(new Date(I).toISOString())}&end_ts=${encodeURIComponent(new Date(g).toISOString())}&event_count=${S}`;await fetch(T,{method:"POST",headers:{Authorization:`Bearer ${l}`,"Content-Type":"application/gzip","Content-Encoding":"gzip"},body:E,keepalive:!0});}catch(p){e.onError?.(p);}f(s,l,{session_id:i,last_url:typeof location<"u"?location.href:null,last_activity_at:new Date(g).toISOString(),has_error:m||void 0},e.onError);},k=r({emit:t=>{u||(c.push(t),d+=256,d>=h&&a());},checkoutEveryNms:6e4,maskAllInputs:e.maskAllInputs??true,blockSelector:e.blockSelector??"[data-gl-block]",maskTextSelector:e.maskTextSelector??"[data-gl-mask]"}),R=setInterval(()=>{a();},y),b=()=>{document?.visibilityState==="hidden"&&a();};document.addEventListener("visibilitychange",b);let _=setInterval(()=>{globalThis.__gl_replay_has_error__&&(m=true);},1e3);return {sessionId:i,flush:a,stop:()=>{if(!u){u=true,clearInterval(R),clearInterval(_),document?.removeEventListener("visibilitychange",b);try{k();}catch(t){e.onError?.(t);}a(),f(s,l,{session_id:i,ended_at:new Date().toISOString()},e.onError);}}}}async function f(n,e,o,r){try{await fetch(`${n}/v1/replay/sessions`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o),keepalive:!0});}catch(s){r?.(s);}}async function C(n){if(typeof CompressionStream>"u"||typeof Blob>"u"||typeof Response>"u")return n;let o=new Blob([n]).stream().pipeThrough(new CompressionStream("gzip")),r=await new Response(o).arrayBuffer();return new Blob([r],{type:"application/gzip"})}async function O(){try{let n=await import('rrweb');return n.record??n.default?.record??null}catch{return null}}export{A as startReplay};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aj-2000-test/goodlogs-sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "GoodLogs SDK — ingest logs/events + programmatic API client for queries, alerts, AI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -42,8 +42,17 @@
|
|
|
42
42
|
],
|
|
43
43
|
"license": "MIT",
|
|
44
44
|
"devDependencies": {
|
|
45
|
+
"rrweb": "2.0.0-alpha.18",
|
|
45
46
|
"tsup": "^8.0.0",
|
|
46
47
|
"typescript": "^5.5.0",
|
|
47
48
|
"vitest": "^2.0.0"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"rrweb": "^2.0.0-alpha.18"
|
|
52
|
+
},
|
|
53
|
+
"peerDependenciesMeta": {
|
|
54
|
+
"rrweb": {
|
|
55
|
+
"optional": true
|
|
56
|
+
}
|
|
48
57
|
}
|
|
49
58
|
}
|