@capture.dev/core 0.0.4
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/CHANGELOG.md +25 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.mjs +1 -0
- package/dist/internal.cjs +1 -0
- package/dist/internal.d.cts +229 -0
- package/dist/internal.d.mts +229 -0
- package/dist/internal.mjs +1 -0
- package/dist/serialize-value-CkZlkyra.mjs +1 -0
- package/dist/serialize-value-D0ISRLuh.cjs +1 -0
- package/dist/state-logger-BC-toJMz.d.mts +174 -0
- package/dist/state-logger-BnJgC19d.d.cts +174 -0
- package/package.json +69 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# @capture.dev/core
|
|
2
|
+
|
|
3
|
+
## 0.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- cdb0bc9: Encode events before storage. Log attachment type changed from nd-json to cbor.
|
|
8
|
+
|
|
9
|
+
## 0.0.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Add CHANGELOG to published files
|
|
14
|
+
|
|
15
|
+
## 0.0.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Added `stateLabel` option for state loggers
|
|
20
|
+
|
|
21
|
+
## 0.0.1
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Initial release
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./serialize-value-D0ISRLuh.cjs`);var t=class{type=`events`;sinks=[];queue=[];errorQueue=[];meta={identifier:`events`,version:1};initialize(t){this.meta=t,e.m().forEach(e=>{this.registerSink(e)})}registerSink(t){if(this.sinks.push(t),e.h().isLoggingPaused===!0){this.queue=[],this.errorQueue=[];return}this.queue.forEach(e=>{t.log({loggerType:this.type,loggerMeta:this.meta,timestamp:e.time,event:e.event})}),this.errorQueue.forEach(e=>{t.logInternalError({loggerType:this.type,loggerMeta:this.meta,error:e})})}logEvent=t=>{if(e.h().isLoggingPaused!==!0)try{let n=e.b(t);this.sinks.forEach(e=>{e.log({loggerType:this.type,loggerMeta:this.meta,timestamp:t.time,event:n})}),this.queue.push({event:n,time:t.time}),this.queue=this.queue.slice(-250)}catch(e){this.logInternalError(e)}};logInternalError=e=>{this.sinks.forEach(t=>{t.logInternalError({loggerType:this.type,loggerMeta:this.meta,error:e})}),this.errorQueue.push(e),this.errorQueue=this.errorQueue.slice(-50)}},n=class extends t{type=`state`;liid;patchesSinceLastSnapshot=0;previousState;meta={identifier:`state`,name:`State`};constructor({initialState:t}={}){super(),this.liid=e.y(),this.previousState=t}logState(t,{label:n,extra:r}={}){if(e.h().isLoggingPaused===!0){this.previousState=t;return}try{(this.patchesSinceLastSnapshot>=50||this.previousState===void 0)&&this.logSnapshot(t);let i=e.u(this.previousState,t);this.logEvent({liid:this.liid,time:Date.now(),type:`patch`,ops:i,label:n,extra:r}),this.patchesSinceLastSnapshot++,this.previousState=t}catch(e){this.logInternalError(e)}}takeSnapshot(){this.previousState!==void 0&&this.logSnapshot(this.previousState)}logSnapshot(t){e.h().isLoggingPaused!==!0&&(this.logEvent({time:Date.now(),liid:this.liid,type:`snapshot`,value:e.t(t,{onError:this.logInternalError})}),this.patchesSinceLastSnapshot=0,this.previousState=t)}};function r(t,n){let r=e.p(),i=r.get(t.identifier);return i||(i=new n,r.set(t.identifier,i),i.initialize(t),i)}function i(e){return r(e,t)}function a(e){return r(e,n)}exports.EventLogger=t,exports.StateLogger=n,exports.registerEventLogger=i,exports.registerStateLogger=a;
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { C as CaptureResponseBodyFn, E as Identity, S as CaptureRequestHeaderFn, T as CustomContextObject, _ as CaptureClientOptions, b as CaptureRequestBodyFn, d as BaseEvent, f as EventLogger, n as StateLogger, p as EventLoggerMeta, r as StateLoggerMeta, v as CaptureEventFn, w as CaptureResponseHeaderFn, x as CaptureRequestFn, y as CaptureEventPreset } from "./state-logger-BnJgC19d.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/logger/register-logger.d.ts
|
|
4
|
+
declare function registerEventLogger<TEvent extends BaseEvent>(meta: EventLoggerMeta): EventLogger<TEvent>;
|
|
5
|
+
declare function registerStateLogger(meta: StateLoggerMeta): StateLogger;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { type BaseEvent, CaptureClientOptions, CaptureEventFn, CaptureEventPreset, CaptureRequestBodyFn, CaptureRequestFn, CaptureRequestHeaderFn, CaptureResponseBodyFn, CaptureResponseHeaderFn, CustomContextObject, EventLogger, type EventLoggerMeta, Identity, StateLogger, registerEventLogger, registerStateLogger };
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { C as CaptureResponseBodyFn, E as Identity, S as CaptureRequestHeaderFn, T as CustomContextObject, _ as CaptureClientOptions, b as CaptureRequestBodyFn, d as BaseEvent, f as EventLogger, n as StateLogger, p as EventLoggerMeta, r as StateLoggerMeta, v as CaptureEventFn, w as CaptureResponseHeaderFn, x as CaptureRequestFn, y as CaptureEventPreset } from "./state-logger-BC-toJMz.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/logger/register-logger.d.ts
|
|
4
|
+
declare function registerEventLogger<TEvent extends BaseEvent>(meta: EventLoggerMeta): EventLogger<TEvent>;
|
|
5
|
+
declare function registerStateLogger(meta: StateLoggerMeta): StateLogger;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { type BaseEvent, CaptureClientOptions, CaptureEventFn, CaptureEventPreset, CaptureRequestBodyFn, CaptureRequestFn, CaptureRequestHeaderFn, CaptureResponseBodyFn, CaptureResponseHeaderFn, CustomContextObject, EventLogger, type EventLoggerMeta, Identity, StateLogger, registerEventLogger, registerStateLogger };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as e,h as t,m as n,p as r,t as i,u as a,y as o}from"./serialize-value-CkZlkyra.mjs";var s=class{type=`events`;sinks=[];queue=[];errorQueue=[];meta={identifier:`events`,version:1};initialize(e){this.meta=e,n().forEach(e=>{this.registerSink(e)})}registerSink(e){if(this.sinks.push(e),t().isLoggingPaused===!0){this.queue=[],this.errorQueue=[];return}this.queue.forEach(t=>{e.log({loggerType:this.type,loggerMeta:this.meta,timestamp:t.time,event:t.event})}),this.errorQueue.forEach(t=>{e.logInternalError({loggerType:this.type,loggerMeta:this.meta,error:t})})}logEvent=n=>{if(t().isLoggingPaused!==!0)try{let t=e(n);this.sinks.forEach(e=>{e.log({loggerType:this.type,loggerMeta:this.meta,timestamp:n.time,event:t})}),this.queue.push({event:t,time:n.time}),this.queue=this.queue.slice(-250)}catch(e){this.logInternalError(e)}};logInternalError=e=>{this.sinks.forEach(t=>{t.logInternalError({loggerType:this.type,loggerMeta:this.meta,error:e})}),this.errorQueue.push(e),this.errorQueue=this.errorQueue.slice(-50)}},c=class extends s{type=`state`;liid;patchesSinceLastSnapshot=0;previousState;meta={identifier:`state`,name:`State`};constructor({initialState:e}={}){super(),this.liid=o(),this.previousState=e}logState(e,{label:n,extra:r}={}){if(t().isLoggingPaused===!0){this.previousState=e;return}try{(this.patchesSinceLastSnapshot>=50||this.previousState===void 0)&&this.logSnapshot(e);let t=a(this.previousState,e);this.logEvent({liid:this.liid,time:Date.now(),type:`patch`,ops:t,label:n,extra:r}),this.patchesSinceLastSnapshot++,this.previousState=e}catch(e){this.logInternalError(e)}}takeSnapshot(){this.previousState!==void 0&&this.logSnapshot(this.previousState)}logSnapshot(e){t().isLoggingPaused!==!0&&(this.logEvent({time:Date.now(),liid:this.liid,type:`snapshot`,value:i(e,{onError:this.logInternalError})}),this.patchesSinceLastSnapshot=0,this.previousState=e)}};function l(e,t){let n=r(),i=n.get(e.identifier);return i||(i=new t,n.set(e.identifier,i),i.initialize(e),i)}function u(e){return l(e,s)}function d(e){return l(e,c)}export{s as EventLogger,c as StateLogger,u as registerEventLogger,d as registerStateLogger};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./serialize-value-D0ISRLuh.cjs`);var t=class{constructor(){setTimeout(()=>{e.m().add(this),e.p().forEach(e=>{e.registerSink(this)})},0)}log(e,t,n){throw Error(`Method not implemented.`)}logInternalError=({loggerType:t,loggerMeta:n,error:r})=>{if(r instanceof Error)try{let i=Date.now(),a=e.b({time:i,type:`internal-error`,loggerType:t,loggerMeta:n,error:r});this.log({loggerType:`events`,loggerMeta:{identifier:`__internal__`},timestamp:i,event:a})}catch(e){console.error(e)}}};const n=t=>typeof t==`string`&&Object.values(e.j).includes(t),r=e=>typeof e==`string`&&!n(e)||typeof e==`number`||typeof e==`boolean`||e===null,i=(e,t)=>typeof t==`object`&&!!t&&`__CAPTURE_TYPE__`in t&&t.__CAPTURE_TYPE__===e,a=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(`__CAPTURE_TYPE__`in e),o=e=>Array.isArray(e),s=e=>i(`error`,e),c=e=>i(`map`,e),l=e=>i(`set`,e),u=e=>i(`regex`,e),d=e=>i(`function`,e),f=e=>i(`classConstructor`,e),p=e=>i(`object`,e),m=e=>i(`date`,e);function h(e){let t=0,n=e.length,r;for(;t<n;){if(r=e.charCodeAt(t),r>=48&&r<=57){t++;continue}return!1}return n>0}function g(e,t,n){return{...e,[t]:n}}function _(e,t){let{...n}=e;return delete n[t],n}function v(e,t,n){if(h(t)){let r=~~t;return[...e.slice(0,r),n,...e.slice(r)]}else return Object.assign([],e,{[t]:n})}function y(e,t){if(h(t)){let n=~~t;return[...e.slice(0,n),...e.slice(n+1)]}let n=Object.assign([],e);return delete n[t],n}function b(e,t,n){let r=h(t)?~~t:t;return Object.assign([],e,{[r]:n})}const x={add:function(e,t,n,r){return e?_(t,n):g(t,n,r.value)},remove:function(e,t,n,r){return e?g(t,n,r.value):_(t,n)},replace:function(e,t,n,r){return e?g(t,n,r.from):g(t,n,r.to)}},S={add:function(e,t,n,r){return e?y(t,n):v(t,n,r.value)},remove:function(e,t,n,r){return e?v(t,n,r.value):y(t,n)},replace:function(e,t,n,r){return e?b(t,n,r.from):b(t,n,r.to)}};function C(e,t,n,r,i){let[a,...o]=n;if(a===void 0)return t.op===`add`?i?void 0:t.value:t.op===`replace`?i?t.from:t.to:i?t.value:void 0;if(typeof e!=`object`||!e)return e;if(a===`__proto__`||a===`constructor`&&o[0]===`prototype`)throw TypeError("Modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function.");let s=Array.isArray(e);if(o.length===0)return s?S[t.op](i,e,a,t):x[t.op](i,e,a,t);let c=e[a];if(typeof c!=`object`||!c)throw Error(`Cannot perform ${t.op} operation at ${r.join(`.`)}`);if(c=C(c,t,o,r,i),s){let t=[...e];return t[a]=c,t}return{...e,[a]:c}}function w(e,t,n=!1){return C(e,t,t.path,t.path,n)}function T(e,t,n=!1){let r=e;for(let e of t)r=w(r,e,n);return r}var E=class extends Error{constructor(e,t){super(`Incomplete CBOR data: need ${e} more bytes`),this.bytesNeeded=e,this.bytesRead=t,this.name=`IncompleteError`}};const D={CIRCULAR:Symbol(),MAX_DEPTH:Symbol(),TRUNCATED:Symbol(),REDACTED:Symbol(),PROMISE:Symbol(),UNKNOWN:Symbol(),SERIALIZATION_ERROR:Symbol()};var O=class{constructor(e){this.name=e}},k=class{constructor(e){this.name=e}},A=class{constructor(e,t){this.name=e,this.properties=t}},j=class{constructor(e,t){this.tag=e,this.value=t}},M=class{constructor(e,t,n,r){this.name=e,this.message=t,this.stack=n,this.cause=r}};const N=new TextDecoder;function P(e,t=0){return I(e,new DataView(e.buffer,e.byteOffset,e.byteLength),t).value}function F(e,t=0){let n=[],r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=t;for(;i<e.length;)try{let{value:t,bytesRead:a}=I(e,r,i);n.push(t),i+=a}catch(e){if(e instanceof E)break;throw e}return{values:n,bytesRead:i-t}}function I(t,n,r){if(r>=t.length)throw new E(1,0);let i=t[r],a=i&224,o=i&31;switch(a){case e.G:return R(t,n,r,o);case e.V:return z(t,n,r,o);case e.W:return B(t,n,r,o);case e.z:return V(t,n,r,o);case e.B:return H(t,n,r,o);case e.U:return W(t,n,r,o);case e.H:return K(t,n,r,o);default:throw Error(`Unknown major type: ${a>>5}`)}}function L(e,t,n,r){if(r<24)return{value:r,bytesRead:1};switch(r){case 24:if(n+2>e.length)throw new E(n+2-e.length,1);return{value:e[n+1],bytesRead:2};case 25:if(n+3>e.length)throw new E(n+3-e.length,1);return{value:t.getUint16(n+1),bytesRead:3};case 26:if(n+5>e.length)throw new E(n+5-e.length,1);return{value:t.getUint32(n+1),bytesRead:5};case 27:if(n+9>e.length)throw new E(n+9-e.length,1);return{value:t.getBigUint64(n+1),bytesRead:9};case 31:return{value:-1,bytesRead:1};default:throw Error(`Invalid additional info: ${r}`)}}function R(e,t,n,r){let{value:i,bytesRead:a}=L(e,t,n,r);return typeof i==`bigint`&&i<=BigInt(2**53-1)?{value:Number(i),bytesRead:a}:{value:i,bytesRead:a}}function z(e,t,n,r){let{value:i,bytesRead:a}=L(e,t,n,r);if(typeof i==`bigint`){let e=-1n-i;return e>=BigInt(-(2**53-1))?{value:Number(e),bytesRead:a}:{value:e,bytesRead:a}}return{value:-1-i,bytesRead:a}}function B(e,t,n,r){let{value:i,bytesRead:a}=L(e,t,n,r);if(typeof i==`bigint`||i<0)throw Error(`Indefinite text strings not supported`);let o=n+a+i;if(o>e.length)throw new E(o-e.length,a);return{value:N.decode(e.subarray(n+a,o)),bytesRead:a+i}}function V(t,n,r,i){let{value:a,bytesRead:o}=L(t,n,r,i),s=[],c=r+o;if(a===-1){for(;c<t.length;){if(t[c]===e.F)return{value:s,bytesRead:c-r+1};let{value:i,bytesRead:a}=I(t,n,c);s.push(i),c+=a}throw new E(1,c-r)}let l=typeof a==`bigint`?Number(a):a;for(let e=0;e<l;e++){let{value:e,bytesRead:r}=I(t,n,c);s.push(e),c+=r}return{value:s,bytesRead:c-r}}function H(t,n,r,i){let{value:a,bytesRead:o}=L(t,n,r,i),s={},c=r+o;if(a===-1){for(;c<t.length;){if(t[c]===e.F)return{value:s,bytesRead:c-r+1};let{value:i,bytesRead:a}=I(t,n,c);c+=a;let{value:o,bytesRead:l}=I(t,n,c);c+=l,s[String(i)]=o}throw new E(1,c-r)}let l=typeof a==`bigint`?Number(a):a;for(let e=0;e<l;e++){let{value:e,bytesRead:r}=I(t,n,c);c+=r;let{value:i,bytesRead:a}=I(t,n,c);c+=a,s[String(e)]=i}return{value:s,bytesRead:c-r}}function U(t,n,r,i){let{value:a,bytesRead:o}=L(t,n,r,i),s=new Map,c=r+o;if(a===-1){for(;c<t.length;){if(t[c]===e.F)return{value:s,bytesRead:c-r+1};let{value:i,bytesRead:a}=I(t,n,c);c+=a;let{value:o,bytesRead:l}=I(t,n,c);c+=l,s.set(i,o)}throw new E(1,c-r)}let l=typeof a==`bigint`?Number(a):a;for(let e=0;e<l;e++){let{value:e,bytesRead:r}=I(t,n,c);c+=r;let{value:i,bytesRead:a}=I(t,n,c);c+=a,s.set(e,i)}return{value:s,bytesRead:c-r}}function W(t,n,r,i){let{value:a,bytesRead:o}=L(t,n,r,i),s=typeof a==`bigint`?Number(a):a;if(s===e.nt){let i=r+o;if(i>=t.length)throw new E(1,o);let a=t[i],s=a&224,c=a&31;if(s!==e.B)throw Error(`TAG_MAP must wrap a map, got major type ${s>>5}`);let{value:l,bytesRead:u}=U(t,n,i,c);return{value:l,bytesRead:o+u}}let{value:c,bytesRead:l}=I(t,n,r+o);return{value:G(s,c),bytesRead:o+l}}function G(t,n){switch(t){case e.$:{let e=n;return Number.isNaN(e)?new Date(NaN):new Date(e*1e3)}case e.ot:{let e=n,t=0n;for(let n of e)t=t<<8n|BigInt(n);return t}case e.at:{let e=n,t=0n;for(let n of e)t=t<<8n|BigInt(n);return-1n-t}case e.dt:return new Set(n);case e.lt:{let[e,t]=n;if(typeof e!=`string`||typeof t!=`string`||!/^[gimsuy]*$/.test(t))return D.SERIALIZATION_ERROR;try{return new RegExp(e,t)}catch{return D.SERIALIZATION_ERROR}}case e.Z:return D.CIRCULAR;case e.rt:return D.MAX_DEPTH;case e.ft:return D.TRUNCATED;case e.st:return D.PROMISE;case e.pt:return D.UNKNOWN;case e.ut:return D.SERIALIZATION_ERROR;case e.ct:return D.REDACTED;case e.X:return BigInt(n);case e.et:{let e=n;return new M(e.name,e.message,e.stack,e.cause)}case e.tt:return new O(n);case e.Q:return new k(n);case e.it:{let e=n;return new A(e.name,e.properties)}default:return new j(t,n)}}function K(t,n,r,i){switch(i){case e.K:return{value:!1,bytesRead:1};case e.J:return{value:!0,bytesRead:1};case e.q:return{value:null,bytesRead:1};case e.Y:return{value:void 0,bytesRead:1};case e.I:if(r+3>t.length)throw new E(r+3-t.length,1);return{value:q(n.getUint16(r+1)),bytesRead:3};case e.L:if(r+5>t.length)throw new E(r+5-t.length,1);return{value:n.getFloat32(r+1),bytesRead:5};case e.R:if(r+9>t.length)throw new E(r+9-t.length,1);return{value:n.getFloat64(r+1),bytesRead:9};case 31:throw Error(`Unexpected break code`);default:if(i<24)return{value:i,bytesRead:1};if(i===24){if(r+2>t.length)throw new E(1,1);return{value:t[r+1],bytesRead:2}}throw Error(`Invalid simple value: ${i}`)}}function q(e){let t=e>>15&1,n=e>>10&31,r=e&1023;return n===0?(t?-1:1)*2**-14*(r/1024):n===31?r===0?t?-1/0:1/0:NaN:(t?-1:1)*2**(n-15)*(1+r/1024)}async function*J(e){let t=e.getReader(),n;try{for(;;){let{done:e,value:r}=await t.read();if(e){if(n&&n.length>0){let{values:e}=F(n);for(let t of e)yield t}return}if(n&&n.length>0){let e=new Uint8Array(n.length+r.length);e.set(n),e.set(r,n.length),n=e}else n=r;let{values:i,bytesRead:a}=F(n);for(let e of i)yield e;n=a<n.length?n.slice(a):void 0}}finally{t.releaseLock()}}exports.BIG_INT=e.x,exports.CIRCULAR_REFERENCE=e.S,exports.CapturedClass=k,exports.CapturedError=M,exports.CapturedFunction=O,exports.CapturedMarker=D,exports.CapturedNamedObject=A,exports.CapturedUnknown=j,exports.EventSink=t,exports.FUNCTION=e.C,exports.MAX_DEPTH_REACHED=e.w,exports.NEGATIVE_INFINITY=e.T,exports.NOT_A_NUMBER=e.E,exports.POSITIVE_INFINITY=e.D,exports.PROMISE=e.O,exports.REDACTED=e.k,exports.SERIALIZATION_ERROR=e.A,exports.SerializedMarker=e.j,exports.TOO_LARGE=e.M,exports.UNDEFINED=e.N,exports.UNKNOWN=e.P,exports.applyDiff=w,exports.applyDiffs=T,exports.decode=P,exports.decodeStream=J,exports.encode=e.b,exports.getDiffs=e.u,exports.getGlobalClient=e.d,exports.getGlobalClientOptions=e.f,exports.getGlobalLoggers=e.p,exports.getGlobalSinks=e.m,exports.getGlobalState=e.h,exports.getPageId=e.g,exports.isSerializedArray=o,exports.isSerializedClassConstructor=f,exports.isSerializedDate=m,exports.isSerializedError=s,exports.isSerializedFunction=d,exports.isSerializedMap=c,exports.isSerializedMarker=n,exports.isSerializedNamedObject=p,exports.isSerializedPlainObject=a,exports.isSerializedPrimitive=r,exports.isSerializedRegex=u,exports.isSerializedSet=l,exports.randomId=e.y,exports.serializeClass=e.l,exports.serializeDate=e.c,exports.serializeError=e.s,exports.serializeFunction=e.o,exports.serializeMap=e.a,exports.serializeNamedObject=e.i,exports.serializeRegex=e.r,exports.serializeSet=e.n,exports.serializeValue=e.t,exports.setGlobalClient=e._,exports.setGlobalClientOptions=e.v;
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { D as LegacyPrivacyPresetOptions, E as Identity, T as CustomContextObject, _ as CaptureClientOptions, a as StateSnapshotEvent, c as DiffType, f as EventLogger, g as EventSinkLogOpts, h as EventSink, i as StatePatchEvent, l as RemoveOperation, m as EventLoggerType, o as AddOperation, r as StateLoggerMeta, s as DiffOperation, t as StateEvent, u as ReplaceOperation } from "./state-logger-BnJgC19d.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client-types-internal.d.ts
|
|
4
|
+
interface CaptureClientInterface {
|
|
5
|
+
identify: (identity: Identity | null) => void;
|
|
6
|
+
setCustomContext: (context: CustomContextObject, replace?: boolean) => void;
|
|
7
|
+
unsetCustomContext: (key: string) => void;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/global-state.d.ts
|
|
11
|
+
type LoggerMap = Map<string, EventLogger>;
|
|
12
|
+
type SinkSet = Set<EventSink>;
|
|
13
|
+
interface CaptureGlobalState {
|
|
14
|
+
loggers?: LoggerMap;
|
|
15
|
+
sinks?: SinkSet;
|
|
16
|
+
identity?: Identity | null;
|
|
17
|
+
customContext?: CustomContextObject;
|
|
18
|
+
npmPackageVersion?: string;
|
|
19
|
+
isLoggingPaused?: boolean;
|
|
20
|
+
console?: Partial<Console>;
|
|
21
|
+
pageId?: string;
|
|
22
|
+
}
|
|
23
|
+
declare const getGlobalClient: <Client extends CaptureClientInterface = CaptureClientInterface>() => Client | undefined;
|
|
24
|
+
declare const setGlobalClient: (client: CaptureClientInterface) => void;
|
|
25
|
+
declare const getGlobalClientOptions: () => CaptureClientOptions | undefined;
|
|
26
|
+
declare const setGlobalClientOptions: (options: CaptureClientOptions) => void;
|
|
27
|
+
declare const getGlobalState: () => CaptureGlobalState;
|
|
28
|
+
declare const getGlobalLoggers: () => LoggerMap;
|
|
29
|
+
declare const getGlobalSinks: () => SinkSet;
|
|
30
|
+
declare const getPageId: () => string;
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/serialize/serialized-markers.d.ts
|
|
33
|
+
declare const REDACTED = "$REDACTED$";
|
|
34
|
+
declare const UNDEFINED = "$UNDEFINED$";
|
|
35
|
+
declare const BIG_INT = "$BIGINT$";
|
|
36
|
+
declare const FUNCTION = "$FUNCTION$";
|
|
37
|
+
declare const PROMISE = "$PROMISE$";
|
|
38
|
+
declare const CIRCULAR_REFERENCE = "$CIRCULAR_REFERENCE$";
|
|
39
|
+
declare const UNKNOWN = "$UNKNOWN$";
|
|
40
|
+
declare const TOO_LARGE = "$TOO_LARGE$";
|
|
41
|
+
declare const MAX_DEPTH_REACHED = "$MAX_DEPTH_REACHED$";
|
|
42
|
+
declare const SERIALIZATION_ERROR = "$SERIALIZATION_ERROR$";
|
|
43
|
+
declare const NOT_A_NUMBER = "$NaN$";
|
|
44
|
+
declare const POSITIVE_INFINITY = "$Infinity$";
|
|
45
|
+
declare const NEGATIVE_INFINITY = "$-Infinity$";
|
|
46
|
+
declare const SerializedMarker: {
|
|
47
|
+
readonly REDACTED: "$REDACTED$";
|
|
48
|
+
readonly UNDEFINED: "$UNDEFINED$";
|
|
49
|
+
readonly BIG_INT: "$BIGINT$";
|
|
50
|
+
readonly FUNCTION: "$FUNCTION$";
|
|
51
|
+
readonly PROMISE: "$PROMISE$";
|
|
52
|
+
readonly CIRCULAR_REFERENCE: "$CIRCULAR_REFERENCE$";
|
|
53
|
+
readonly UNKNOWN: "$UNKNOWN$";
|
|
54
|
+
readonly TOO_LARGE: "$TOO_LARGE$";
|
|
55
|
+
readonly MAX_DEPTH_REACHED: "$MAX_DEPTH_REACHED$";
|
|
56
|
+
readonly SERIALIZATION_ERROR: "$SERIALIZATION_ERROR$";
|
|
57
|
+
readonly NOT_A_NUMBER: "$NaN$";
|
|
58
|
+
readonly POSITIVE_INFINITY: "$Infinity$";
|
|
59
|
+
readonly NEGATIVE_INFINITY: "$-Infinity$";
|
|
60
|
+
};
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/serialize/serialized-types.d.ts
|
|
63
|
+
type SerializedValue = SerializedPrimitive | SerializedMarkerValue | SerializedValue[] | {
|
|
64
|
+
[key: string]: SerializedValue;
|
|
65
|
+
} | SerializedError | SerializedMap | SerializedSet | SerializedRegex | SerializedFunction | SerializedClassConstructor | SerializedNamedObject;
|
|
66
|
+
type SerializedMarkerValue = (typeof SerializedMarker)[keyof typeof SerializedMarker];
|
|
67
|
+
declare const isSerializedMarker: (value: SerializedValue) => value is SerializedMarkerValue;
|
|
68
|
+
type SerializedPlainObject = Record<string, SerializedValue>;
|
|
69
|
+
type SerializedArray = SerializedValue[];
|
|
70
|
+
type SerializedPrimitive = string | number | boolean | null;
|
|
71
|
+
declare const isSerializedPrimitive: (value: SerializedValue) => value is SerializedPrimitive;
|
|
72
|
+
declare const isSerializedPlainObject: (value: SerializedValue) => value is SerializedPlainObject;
|
|
73
|
+
declare const isSerializedArray: (value: SerializedValue) => value is SerializedArray;
|
|
74
|
+
type SerializedErrorObject = {
|
|
75
|
+
name: string;
|
|
76
|
+
message: string;
|
|
77
|
+
stack?: string;
|
|
78
|
+
cause?: SerializedErrorObject | null;
|
|
79
|
+
};
|
|
80
|
+
type SerializedError = {
|
|
81
|
+
__CAPTURE_TYPE__: "error";
|
|
82
|
+
error: SerializedErrorObject;
|
|
83
|
+
};
|
|
84
|
+
declare const isSerializedError: (value: SerializedValue) => value is SerializedError;
|
|
85
|
+
type SerializedMap = {
|
|
86
|
+
__CAPTURE_TYPE__: "map";
|
|
87
|
+
entries: [SerializedValue, SerializedValue][];
|
|
88
|
+
};
|
|
89
|
+
declare const isSerializedMap: (value: SerializedValue) => value is SerializedMap;
|
|
90
|
+
type SerializedSet = {
|
|
91
|
+
__CAPTURE_TYPE__: "set";
|
|
92
|
+
values: SerializedValue[];
|
|
93
|
+
};
|
|
94
|
+
declare const isSerializedSet: (value: SerializedValue) => value is SerializedSet;
|
|
95
|
+
type SerializedRegex = {
|
|
96
|
+
__CAPTURE_TYPE__: "regex";
|
|
97
|
+
pattern: string;
|
|
98
|
+
};
|
|
99
|
+
declare const isSerializedRegex: (value: SerializedValue) => value is SerializedRegex;
|
|
100
|
+
type SerializedFunction = {
|
|
101
|
+
__CAPTURE_TYPE__: "function";
|
|
102
|
+
name: string;
|
|
103
|
+
};
|
|
104
|
+
declare const isSerializedFunction: (value: SerializedValue) => value is SerializedFunction;
|
|
105
|
+
type SerializedClassConstructor = {
|
|
106
|
+
__CAPTURE_TYPE__: "classConstructor";
|
|
107
|
+
name: string;
|
|
108
|
+
};
|
|
109
|
+
declare const isSerializedClassConstructor: (value: SerializedValue) => value is SerializedClassConstructor;
|
|
110
|
+
type SerializedNamedObject = {
|
|
111
|
+
__CAPTURE_TYPE__: "object";
|
|
112
|
+
name: string;
|
|
113
|
+
properties: Record<string, SerializedValue>;
|
|
114
|
+
};
|
|
115
|
+
declare const isSerializedNamedObject: (value: SerializedValue) => value is SerializedNamedObject;
|
|
116
|
+
type SerializedDate = {
|
|
117
|
+
__CAPTURE_TYPE__: "date";
|
|
118
|
+
value: number | null;
|
|
119
|
+
};
|
|
120
|
+
declare const isSerializedDate: (value: SerializedValue) => value is SerializedDate;
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/serialize/serialize-class.d.ts
|
|
123
|
+
declare function serializeClass(fn: Function): SerializedClassConstructor;
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region src/serialize/serialize-date.d.ts
|
|
126
|
+
declare function serializeDate(date: Date): SerializedDate;
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/serialize/serialize-error.d.ts
|
|
129
|
+
declare function serializeError(error: Error): SerializedError;
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/serialize/serialize-function.d.ts
|
|
132
|
+
declare function serializeFunction(fn: Function): SerializedFunction;
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/serialize/serialize-value.d.ts
|
|
135
|
+
type VisitorFn = (value: unknown) => SerializedValue;
|
|
136
|
+
interface SerializeValueOpts {
|
|
137
|
+
maxDepth?: number;
|
|
138
|
+
maxStringLength?: number;
|
|
139
|
+
maxSize?: number;
|
|
140
|
+
onError?: (error: unknown) => void;
|
|
141
|
+
}
|
|
142
|
+
declare function serializeValue<T>(obj: T, opts?: SerializeValueOpts): SerializedValue;
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/serialize/serialize-map.d.ts
|
|
145
|
+
declare function serializeMap(map: Map<unknown, unknown>, visit: VisitorFn): SerializedMap;
|
|
146
|
+
//#endregion
|
|
147
|
+
//#region src/serialize/serialize-named-object.d.ts
|
|
148
|
+
declare function serializeNamedObject(obj: object, visit: VisitorFn): SerializedNamedObject;
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/serialize/serialize-regex.d.ts
|
|
151
|
+
declare function serializeRegex(regex: RegExp): SerializedRegex;
|
|
152
|
+
//#endregion
|
|
153
|
+
//#region src/serialize/serialize-set.d.ts
|
|
154
|
+
declare function serializeSet(set: Set<unknown>, visit: VisitorFn): SerializedSet;
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/diff/get-diffs.d.ts
|
|
157
|
+
/**
|
|
158
|
+
* Generates a list of operations for transforming tree 1 into tree 2.
|
|
159
|
+
*/
|
|
160
|
+
declare function getDiffs(tree1: unknown, tree2: unknown): DiffOperation[];
|
|
161
|
+
//#endregion
|
|
162
|
+
//#region src/diff/apply-diff.d.ts
|
|
163
|
+
declare function applyDiff<T = unknown>(document: T, operation: DiffOperation, reverse?: boolean): T;
|
|
164
|
+
declare function applyDiffs<T = unknown>(document: T, operations: DiffOperation[], reverse?: boolean): T;
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/utils/random-id.d.ts
|
|
167
|
+
declare function randomId(length?: number): string;
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/decode/decode.d.ts
|
|
170
|
+
declare const CapturedMarker: {
|
|
171
|
+
CIRCULAR: symbol;
|
|
172
|
+
MAX_DEPTH: symbol;
|
|
173
|
+
TRUNCATED: symbol;
|
|
174
|
+
REDACTED: symbol;
|
|
175
|
+
PROMISE: symbol;
|
|
176
|
+
UNKNOWN: symbol;
|
|
177
|
+
SERIALIZATION_ERROR: symbol;
|
|
178
|
+
};
|
|
179
|
+
declare class CapturedFunction {
|
|
180
|
+
readonly name: string;
|
|
181
|
+
constructor(name: string);
|
|
182
|
+
}
|
|
183
|
+
declare class CapturedClass {
|
|
184
|
+
readonly name: string;
|
|
185
|
+
constructor(name: string);
|
|
186
|
+
}
|
|
187
|
+
declare class CapturedNamedObject {
|
|
188
|
+
readonly name: string;
|
|
189
|
+
readonly properties: Record<string, DecodedValue>;
|
|
190
|
+
constructor(name: string, properties: Record<string, DecodedValue>);
|
|
191
|
+
}
|
|
192
|
+
declare class CapturedUnknown {
|
|
193
|
+
readonly tag: number;
|
|
194
|
+
readonly value: unknown;
|
|
195
|
+
constructor(tag: number, value: unknown);
|
|
196
|
+
}
|
|
197
|
+
declare class CapturedError {
|
|
198
|
+
readonly name: string;
|
|
199
|
+
readonly message: string;
|
|
200
|
+
readonly stack?: string | undefined;
|
|
201
|
+
readonly cause?: DecodedValue;
|
|
202
|
+
constructor(name: string, message: string, stack?: string | undefined, cause?: DecodedValue);
|
|
203
|
+
}
|
|
204
|
+
type DecodedValue = string | number | bigint | boolean | null | undefined | Date | symbol | RegExp | CapturedFunction | CapturedClass | CapturedNamedObject | CapturedError | CapturedUnknown | Map<DecodedValue, DecodedValue> | Set<DecodedValue> | Array<DecodedValue> | {
|
|
205
|
+
[key: string]: DecodedValue;
|
|
206
|
+
};
|
|
207
|
+
declare function decode(buffer: Uint8Array, offset?: number): DecodedValue;
|
|
208
|
+
//#endregion
|
|
209
|
+
//#region src/decode/decode-stream.d.ts
|
|
210
|
+
/**
|
|
211
|
+
* Decode CBOR values from a ReadableStream as an async generator.
|
|
212
|
+
* Yields each complete value as it's decoded.
|
|
213
|
+
*/
|
|
214
|
+
declare function decodeStream(stream: ReadableStream<Uint8Array>): AsyncGenerator<DecodedValue, void, undefined>;
|
|
215
|
+
//#endregion
|
|
216
|
+
//#region src/encode/cbor-types.d.ts
|
|
217
|
+
interface EncodeOptions {
|
|
218
|
+
maxDepth?: number;
|
|
219
|
+
maxTotalSize?: number;
|
|
220
|
+
maxArraySize?: number;
|
|
221
|
+
maxMapSize?: number;
|
|
222
|
+
maxStringLength?: number;
|
|
223
|
+
onError?: (error: unknown) => void;
|
|
224
|
+
}
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/encode/encode.d.ts
|
|
227
|
+
declare function encode(value: unknown, opts?: EncodeOptions): Uint8Array;
|
|
228
|
+
//#endregion
|
|
229
|
+
export { AddOperation, BIG_INT, CIRCULAR_REFERENCE, CaptureClientInterface, CaptureGlobalState, CapturedClass, CapturedError, CapturedFunction, CapturedMarker, CapturedNamedObject, CapturedUnknown, type DecodedValue, DiffOperation, DiffType, type EventLoggerType, EventSink, EventSinkLogOpts, FUNCTION, LegacyPrivacyPresetOptions, MAX_DEPTH_REACHED, NEGATIVE_INFINITY, NOT_A_NUMBER, POSITIVE_INFINITY, PROMISE, REDACTED, RemoveOperation, ReplaceOperation, SERIALIZATION_ERROR, SerializedArray, SerializedClassConstructor, SerializedDate, SerializedError, SerializedErrorObject, SerializedFunction, SerializedMap, SerializedMarker, SerializedMarkerValue, SerializedNamedObject, SerializedPlainObject, SerializedPrimitive, SerializedRegex, SerializedSet, SerializedValue, type StateEvent, type StateLoggerMeta, type StatePatchEvent, type StateSnapshotEvent, TOO_LARGE, UNDEFINED, UNKNOWN, applyDiff, applyDiffs, decode, decodeStream, encode, getDiffs, getGlobalClient, getGlobalClientOptions, getGlobalLoggers, getGlobalSinks, getGlobalState, getPageId, isSerializedArray, isSerializedClassConstructor, isSerializedDate, isSerializedError, isSerializedFunction, isSerializedMap, isSerializedMarker, isSerializedNamedObject, isSerializedPlainObject, isSerializedPrimitive, isSerializedRegex, isSerializedSet, randomId, serializeClass, serializeDate, serializeError, serializeFunction, serializeMap, serializeNamedObject, serializeRegex, serializeSet, serializeValue, setGlobalClient, setGlobalClientOptions };
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { D as LegacyPrivacyPresetOptions, E as Identity, T as CustomContextObject, _ as CaptureClientOptions, a as StateSnapshotEvent, c as DiffType, f as EventLogger, g as EventSinkLogOpts, h as EventSink, i as StatePatchEvent, l as RemoveOperation, m as EventLoggerType, o as AddOperation, r as StateLoggerMeta, s as DiffOperation, t as StateEvent, u as ReplaceOperation } from "./state-logger-BC-toJMz.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client-types-internal.d.ts
|
|
4
|
+
interface CaptureClientInterface {
|
|
5
|
+
identify: (identity: Identity | null) => void;
|
|
6
|
+
setCustomContext: (context: CustomContextObject, replace?: boolean) => void;
|
|
7
|
+
unsetCustomContext: (key: string) => void;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/global-state.d.ts
|
|
11
|
+
type LoggerMap = Map<string, EventLogger>;
|
|
12
|
+
type SinkSet = Set<EventSink>;
|
|
13
|
+
interface CaptureGlobalState {
|
|
14
|
+
loggers?: LoggerMap;
|
|
15
|
+
sinks?: SinkSet;
|
|
16
|
+
identity?: Identity | null;
|
|
17
|
+
customContext?: CustomContextObject;
|
|
18
|
+
npmPackageVersion?: string;
|
|
19
|
+
isLoggingPaused?: boolean;
|
|
20
|
+
console?: Partial<Console>;
|
|
21
|
+
pageId?: string;
|
|
22
|
+
}
|
|
23
|
+
declare const getGlobalClient: <Client extends CaptureClientInterface = CaptureClientInterface>() => Client | undefined;
|
|
24
|
+
declare const setGlobalClient: (client: CaptureClientInterface) => void;
|
|
25
|
+
declare const getGlobalClientOptions: () => CaptureClientOptions | undefined;
|
|
26
|
+
declare const setGlobalClientOptions: (options: CaptureClientOptions) => void;
|
|
27
|
+
declare const getGlobalState: () => CaptureGlobalState;
|
|
28
|
+
declare const getGlobalLoggers: () => LoggerMap;
|
|
29
|
+
declare const getGlobalSinks: () => SinkSet;
|
|
30
|
+
declare const getPageId: () => string;
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/serialize/serialized-markers.d.ts
|
|
33
|
+
declare const REDACTED = "$REDACTED$";
|
|
34
|
+
declare const UNDEFINED = "$UNDEFINED$";
|
|
35
|
+
declare const BIG_INT = "$BIGINT$";
|
|
36
|
+
declare const FUNCTION = "$FUNCTION$";
|
|
37
|
+
declare const PROMISE = "$PROMISE$";
|
|
38
|
+
declare const CIRCULAR_REFERENCE = "$CIRCULAR_REFERENCE$";
|
|
39
|
+
declare const UNKNOWN = "$UNKNOWN$";
|
|
40
|
+
declare const TOO_LARGE = "$TOO_LARGE$";
|
|
41
|
+
declare const MAX_DEPTH_REACHED = "$MAX_DEPTH_REACHED$";
|
|
42
|
+
declare const SERIALIZATION_ERROR = "$SERIALIZATION_ERROR$";
|
|
43
|
+
declare const NOT_A_NUMBER = "$NaN$";
|
|
44
|
+
declare const POSITIVE_INFINITY = "$Infinity$";
|
|
45
|
+
declare const NEGATIVE_INFINITY = "$-Infinity$";
|
|
46
|
+
declare const SerializedMarker: {
|
|
47
|
+
readonly REDACTED: "$REDACTED$";
|
|
48
|
+
readonly UNDEFINED: "$UNDEFINED$";
|
|
49
|
+
readonly BIG_INT: "$BIGINT$";
|
|
50
|
+
readonly FUNCTION: "$FUNCTION$";
|
|
51
|
+
readonly PROMISE: "$PROMISE$";
|
|
52
|
+
readonly CIRCULAR_REFERENCE: "$CIRCULAR_REFERENCE$";
|
|
53
|
+
readonly UNKNOWN: "$UNKNOWN$";
|
|
54
|
+
readonly TOO_LARGE: "$TOO_LARGE$";
|
|
55
|
+
readonly MAX_DEPTH_REACHED: "$MAX_DEPTH_REACHED$";
|
|
56
|
+
readonly SERIALIZATION_ERROR: "$SERIALIZATION_ERROR$";
|
|
57
|
+
readonly NOT_A_NUMBER: "$NaN$";
|
|
58
|
+
readonly POSITIVE_INFINITY: "$Infinity$";
|
|
59
|
+
readonly NEGATIVE_INFINITY: "$-Infinity$";
|
|
60
|
+
};
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/serialize/serialized-types.d.ts
|
|
63
|
+
type SerializedValue = SerializedPrimitive | SerializedMarkerValue | SerializedValue[] | {
|
|
64
|
+
[key: string]: SerializedValue;
|
|
65
|
+
} | SerializedError | SerializedMap | SerializedSet | SerializedRegex | SerializedFunction | SerializedClassConstructor | SerializedNamedObject;
|
|
66
|
+
type SerializedMarkerValue = (typeof SerializedMarker)[keyof typeof SerializedMarker];
|
|
67
|
+
declare const isSerializedMarker: (value: SerializedValue) => value is SerializedMarkerValue;
|
|
68
|
+
type SerializedPlainObject = Record<string, SerializedValue>;
|
|
69
|
+
type SerializedArray = SerializedValue[];
|
|
70
|
+
type SerializedPrimitive = string | number | boolean | null;
|
|
71
|
+
declare const isSerializedPrimitive: (value: SerializedValue) => value is SerializedPrimitive;
|
|
72
|
+
declare const isSerializedPlainObject: (value: SerializedValue) => value is SerializedPlainObject;
|
|
73
|
+
declare const isSerializedArray: (value: SerializedValue) => value is SerializedArray;
|
|
74
|
+
type SerializedErrorObject = {
|
|
75
|
+
name: string;
|
|
76
|
+
message: string;
|
|
77
|
+
stack?: string;
|
|
78
|
+
cause?: SerializedErrorObject | null;
|
|
79
|
+
};
|
|
80
|
+
type SerializedError = {
|
|
81
|
+
__CAPTURE_TYPE__: "error";
|
|
82
|
+
error: SerializedErrorObject;
|
|
83
|
+
};
|
|
84
|
+
declare const isSerializedError: (value: SerializedValue) => value is SerializedError;
|
|
85
|
+
type SerializedMap = {
|
|
86
|
+
__CAPTURE_TYPE__: "map";
|
|
87
|
+
entries: [SerializedValue, SerializedValue][];
|
|
88
|
+
};
|
|
89
|
+
declare const isSerializedMap: (value: SerializedValue) => value is SerializedMap;
|
|
90
|
+
type SerializedSet = {
|
|
91
|
+
__CAPTURE_TYPE__: "set";
|
|
92
|
+
values: SerializedValue[];
|
|
93
|
+
};
|
|
94
|
+
declare const isSerializedSet: (value: SerializedValue) => value is SerializedSet;
|
|
95
|
+
type SerializedRegex = {
|
|
96
|
+
__CAPTURE_TYPE__: "regex";
|
|
97
|
+
pattern: string;
|
|
98
|
+
};
|
|
99
|
+
declare const isSerializedRegex: (value: SerializedValue) => value is SerializedRegex;
|
|
100
|
+
type SerializedFunction = {
|
|
101
|
+
__CAPTURE_TYPE__: "function";
|
|
102
|
+
name: string;
|
|
103
|
+
};
|
|
104
|
+
declare const isSerializedFunction: (value: SerializedValue) => value is SerializedFunction;
|
|
105
|
+
type SerializedClassConstructor = {
|
|
106
|
+
__CAPTURE_TYPE__: "classConstructor";
|
|
107
|
+
name: string;
|
|
108
|
+
};
|
|
109
|
+
declare const isSerializedClassConstructor: (value: SerializedValue) => value is SerializedClassConstructor;
|
|
110
|
+
type SerializedNamedObject = {
|
|
111
|
+
__CAPTURE_TYPE__: "object";
|
|
112
|
+
name: string;
|
|
113
|
+
properties: Record<string, SerializedValue>;
|
|
114
|
+
};
|
|
115
|
+
declare const isSerializedNamedObject: (value: SerializedValue) => value is SerializedNamedObject;
|
|
116
|
+
type SerializedDate = {
|
|
117
|
+
__CAPTURE_TYPE__: "date";
|
|
118
|
+
value: number | null;
|
|
119
|
+
};
|
|
120
|
+
declare const isSerializedDate: (value: SerializedValue) => value is SerializedDate;
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/serialize/serialize-class.d.ts
|
|
123
|
+
declare function serializeClass(fn: Function): SerializedClassConstructor;
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region src/serialize/serialize-date.d.ts
|
|
126
|
+
declare function serializeDate(date: Date): SerializedDate;
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/serialize/serialize-error.d.ts
|
|
129
|
+
declare function serializeError(error: Error): SerializedError;
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/serialize/serialize-function.d.ts
|
|
132
|
+
declare function serializeFunction(fn: Function): SerializedFunction;
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/serialize/serialize-value.d.ts
|
|
135
|
+
type VisitorFn = (value: unknown) => SerializedValue;
|
|
136
|
+
interface SerializeValueOpts {
|
|
137
|
+
maxDepth?: number;
|
|
138
|
+
maxStringLength?: number;
|
|
139
|
+
maxSize?: number;
|
|
140
|
+
onError?: (error: unknown) => void;
|
|
141
|
+
}
|
|
142
|
+
declare function serializeValue<T>(obj: T, opts?: SerializeValueOpts): SerializedValue;
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/serialize/serialize-map.d.ts
|
|
145
|
+
declare function serializeMap(map: Map<unknown, unknown>, visit: VisitorFn): SerializedMap;
|
|
146
|
+
//#endregion
|
|
147
|
+
//#region src/serialize/serialize-named-object.d.ts
|
|
148
|
+
declare function serializeNamedObject(obj: object, visit: VisitorFn): SerializedNamedObject;
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/serialize/serialize-regex.d.ts
|
|
151
|
+
declare function serializeRegex(regex: RegExp): SerializedRegex;
|
|
152
|
+
//#endregion
|
|
153
|
+
//#region src/serialize/serialize-set.d.ts
|
|
154
|
+
declare function serializeSet(set: Set<unknown>, visit: VisitorFn): SerializedSet;
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/diff/get-diffs.d.ts
|
|
157
|
+
/**
|
|
158
|
+
* Generates a list of operations for transforming tree 1 into tree 2.
|
|
159
|
+
*/
|
|
160
|
+
declare function getDiffs(tree1: unknown, tree2: unknown): DiffOperation[];
|
|
161
|
+
//#endregion
|
|
162
|
+
//#region src/diff/apply-diff.d.ts
|
|
163
|
+
declare function applyDiff<T = unknown>(document: T, operation: DiffOperation, reverse?: boolean): T;
|
|
164
|
+
declare function applyDiffs<T = unknown>(document: T, operations: DiffOperation[], reverse?: boolean): T;
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/utils/random-id.d.ts
|
|
167
|
+
declare function randomId(length?: number): string;
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/decode/decode.d.ts
|
|
170
|
+
declare const CapturedMarker: {
|
|
171
|
+
CIRCULAR: symbol;
|
|
172
|
+
MAX_DEPTH: symbol;
|
|
173
|
+
TRUNCATED: symbol;
|
|
174
|
+
REDACTED: symbol;
|
|
175
|
+
PROMISE: symbol;
|
|
176
|
+
UNKNOWN: symbol;
|
|
177
|
+
SERIALIZATION_ERROR: symbol;
|
|
178
|
+
};
|
|
179
|
+
declare class CapturedFunction {
|
|
180
|
+
readonly name: string;
|
|
181
|
+
constructor(name: string);
|
|
182
|
+
}
|
|
183
|
+
declare class CapturedClass {
|
|
184
|
+
readonly name: string;
|
|
185
|
+
constructor(name: string);
|
|
186
|
+
}
|
|
187
|
+
declare class CapturedNamedObject {
|
|
188
|
+
readonly name: string;
|
|
189
|
+
readonly properties: Record<string, DecodedValue>;
|
|
190
|
+
constructor(name: string, properties: Record<string, DecodedValue>);
|
|
191
|
+
}
|
|
192
|
+
declare class CapturedUnknown {
|
|
193
|
+
readonly tag: number;
|
|
194
|
+
readonly value: unknown;
|
|
195
|
+
constructor(tag: number, value: unknown);
|
|
196
|
+
}
|
|
197
|
+
declare class CapturedError {
|
|
198
|
+
readonly name: string;
|
|
199
|
+
readonly message: string;
|
|
200
|
+
readonly stack?: string | undefined;
|
|
201
|
+
readonly cause?: DecodedValue;
|
|
202
|
+
constructor(name: string, message: string, stack?: string | undefined, cause?: DecodedValue);
|
|
203
|
+
}
|
|
204
|
+
type DecodedValue = string | number | bigint | boolean | null | undefined | Date | symbol | RegExp | CapturedFunction | CapturedClass | CapturedNamedObject | CapturedError | CapturedUnknown | Map<DecodedValue, DecodedValue> | Set<DecodedValue> | Array<DecodedValue> | {
|
|
205
|
+
[key: string]: DecodedValue;
|
|
206
|
+
};
|
|
207
|
+
declare function decode(buffer: Uint8Array, offset?: number): DecodedValue;
|
|
208
|
+
//#endregion
|
|
209
|
+
//#region src/decode/decode-stream.d.ts
|
|
210
|
+
/**
|
|
211
|
+
* Decode CBOR values from a ReadableStream as an async generator.
|
|
212
|
+
* Yields each complete value as it's decoded.
|
|
213
|
+
*/
|
|
214
|
+
declare function decodeStream(stream: ReadableStream<Uint8Array>): AsyncGenerator<DecodedValue, void, undefined>;
|
|
215
|
+
//#endregion
|
|
216
|
+
//#region src/encode/cbor-types.d.ts
|
|
217
|
+
interface EncodeOptions {
|
|
218
|
+
maxDepth?: number;
|
|
219
|
+
maxTotalSize?: number;
|
|
220
|
+
maxArraySize?: number;
|
|
221
|
+
maxMapSize?: number;
|
|
222
|
+
maxStringLength?: number;
|
|
223
|
+
onError?: (error: unknown) => void;
|
|
224
|
+
}
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/encode/encode.d.ts
|
|
227
|
+
declare function encode(value: unknown, opts?: EncodeOptions): Uint8Array;
|
|
228
|
+
//#endregion
|
|
229
|
+
export { AddOperation, BIG_INT, CIRCULAR_REFERENCE, CaptureClientInterface, CaptureGlobalState, CapturedClass, CapturedError, CapturedFunction, CapturedMarker, CapturedNamedObject, CapturedUnknown, type DecodedValue, DiffOperation, DiffType, type EventLoggerType, EventSink, EventSinkLogOpts, FUNCTION, LegacyPrivacyPresetOptions, MAX_DEPTH_REACHED, NEGATIVE_INFINITY, NOT_A_NUMBER, POSITIVE_INFINITY, PROMISE, REDACTED, RemoveOperation, ReplaceOperation, SERIALIZATION_ERROR, SerializedArray, SerializedClassConstructor, SerializedDate, SerializedError, SerializedErrorObject, SerializedFunction, SerializedMap, SerializedMarker, SerializedMarkerValue, SerializedNamedObject, SerializedPlainObject, SerializedPrimitive, SerializedRegex, SerializedSet, SerializedValue, type StateEvent, type StateLoggerMeta, type StatePatchEvent, type StateSnapshotEvent, TOO_LARGE, UNDEFINED, UNKNOWN, applyDiff, applyDiffs, decode, decodeStream, encode, getDiffs, getGlobalClient, getGlobalClientOptions, getGlobalLoggers, getGlobalSinks, getGlobalState, getPageId, isSerializedArray, isSerializedClassConstructor, isSerializedDate, isSerializedError, isSerializedFunction, isSerializedMap, isSerializedMarker, isSerializedNamedObject, isSerializedPlainObject, isSerializedPrimitive, isSerializedRegex, isSerializedSet, randomId, serializeClass, serializeDate, serializeError, serializeFunction, serializeMap, serializeNamedObject, serializeRegex, serializeSet, serializeValue, setGlobalClient, setGlobalClientOptions };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as ee,L as te,M as ne,N as re,O as ie,P as ae,Q as oe,R as se,S as ce,T as le,U as d,V as f,W as p,X as ue,Y as de,Z as fe,_ as pe,a as me,at as he,b as m,c as ge,ct as _e,d as ve,dt as ye,et as be,f as xe,ft as h,g,h as _,i as v,it as y,j as b,k as x,l as S,lt as C,m as w,n as T,nt as E,o as D,ot as O,p as k,pt as A,q as j,r as M,rt as Se,s as Ce,st as we,t as Te,tt as Ee,u as De,ut as Oe,v as ke,w as Ae,x as je,y as Me,z as Ne}from"./serialize-value-CkZlkyra.mjs";var Pe=class{constructor(){setTimeout(()=>{w().add(this),k().forEach(e=>{e.registerSink(this)})},0)}log(e,t,n){throw Error(`Method not implemented.`)}logInternalError=({loggerType:e,loggerMeta:t,error:n})=>{if(n instanceof Error)try{let r=Date.now(),i=m({time:r,type:`internal-error`,loggerType:e,loggerMeta:t,error:n});this.log({loggerType:`events`,loggerMeta:{identifier:`__internal__`},timestamp:r,event:i})}catch(e){console.error(e)}}};const N=e=>typeof e==`string`&&Object.values(b).includes(e),Fe=e=>typeof e==`string`&&!N(e)||typeof e==`number`||typeof e==`boolean`||e===null,P=(e,t)=>typeof t==`object`&&!!t&&`__CAPTURE_TYPE__`in t&&t.__CAPTURE_TYPE__===e,Ie=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(`__CAPTURE_TYPE__`in e),Le=e=>Array.isArray(e),F=e=>P(`error`,e),Re=e=>P(`map`,e),ze=e=>P(`set`,e),Be=e=>P(`regex`,e),Ve=e=>P(`function`,e),He=e=>P(`classConstructor`,e),Ue=e=>P(`object`,e),We=e=>P(`date`,e);function I(e){let t=0,n=e.length,r;for(;t<n;){if(r=e.charCodeAt(t),r>=48&&r<=57){t++;continue}return!1}return n>0}function L(e,t,n){return{...e,[t]:n}}function R(e,t){let{...n}=e;return delete n[t],n}function z(e,t,n){if(I(t)){let r=~~t;return[...e.slice(0,r),n,...e.slice(r)]}else return Object.assign([],e,{[t]:n})}function B(e,t){if(I(t)){let n=~~t;return[...e.slice(0,n),...e.slice(n+1)]}let n=Object.assign([],e);return delete n[t],n}function V(e,t,n){let r=I(t)?~~t:t;return Object.assign([],e,{[r]:n})}const Ge={add:function(e,t,n,r){return e?R(t,n):L(t,n,r.value)},remove:function(e,t,n,r){return e?L(t,n,r.value):R(t,n)},replace:function(e,t,n,r){return e?L(t,n,r.from):L(t,n,r.to)}},Ke={add:function(e,t,n,r){return e?B(t,n):z(t,n,r.value)},remove:function(e,t,n,r){return e?z(t,n,r.value):B(t,n)},replace:function(e,t,n,r){return e?V(t,n,r.from):V(t,n,r.to)}};function H(e,t,n,r,i){let[a,...o]=n;if(a===void 0)return t.op===`add`?i?void 0:t.value:t.op===`replace`?i?t.from:t.to:i?t.value:void 0;if(typeof e!=`object`||!e)return e;if(a===`__proto__`||a===`constructor`&&o[0]===`prototype`)throw TypeError("Modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function.");let s=Array.isArray(e);if(o.length===0)return s?Ke[t.op](i,e,a,t):Ge[t.op](i,e,a,t);let c=e[a];if(typeof c!=`object`||!c)throw Error(`Cannot perform ${t.op} operation at ${r.join(`.`)}`);if(c=H(c,t,o,r,i),s){let t=[...e];return t[a]=c,t}return{...e,[a]:c}}function U(e,t,n=!1){return H(e,t,t.path,t.path,n)}function qe(e,t,n=!1){let r=e;for(let e of t)r=U(r,e,n);return r}var W=class extends Error{constructor(e,t){super(`Incomplete CBOR data: need ${e} more bytes`),this.bytesNeeded=e,this.bytesRead=t,this.name=`IncompleteError`}};const G={CIRCULAR:Symbol(),MAX_DEPTH:Symbol(),TRUNCATED:Symbol(),REDACTED:Symbol(),PROMISE:Symbol(),UNKNOWN:Symbol(),SERIALIZATION_ERROR:Symbol()};var K=class{constructor(e){this.name=e}},q=class{constructor(e){this.name=e}},J=class{constructor(e,t){this.name=e,this.properties=t}},Y=class{constructor(e,t){this.tag=e,this.value=t}},X=class{constructor(e,t,n,r){this.name=e,this.message=t,this.stack=n,this.cause=r}};const Je=new TextDecoder;function Ye(e,t=0){return Q(e,new DataView(e.buffer,e.byteOffset,e.byteLength),t).value}function Z(e,t=0){let n=[],r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=t;for(;i<e.length;)try{let{value:t,bytesRead:a}=Q(e,r,i);n.push(t),i+=a}catch(e){if(e instanceof W)break;throw e}return{values:n,bytesRead:i-t}}function Q(e,t,r){if(r>=e.length)throw new W(1,0);let i=e[r],a=i&224,o=i&31;switch(a){case s:return Xe(e,t,r,o);case f:return Ze(e,t,r,o);case p:return Qe(e,t,r,o);case Ne:return $e(e,t,r,o);case n:return et(e,t,r,o);case d:return nt(e,t,r,o);case c:return it(e,t,r,o);default:throw Error(`Unknown major type: ${a>>5}`)}}function $(e,t,n,r){if(r<24)return{value:r,bytesRead:1};switch(r){case 24:if(n+2>e.length)throw new W(n+2-e.length,1);return{value:e[n+1],bytesRead:2};case 25:if(n+3>e.length)throw new W(n+3-e.length,1);return{value:t.getUint16(n+1),bytesRead:3};case 26:if(n+5>e.length)throw new W(n+5-e.length,1);return{value:t.getUint32(n+1),bytesRead:5};case 27:if(n+9>e.length)throw new W(n+9-e.length,1);return{value:t.getBigUint64(n+1),bytesRead:9};case 31:return{value:-1,bytesRead:1};default:throw Error(`Invalid additional info: ${r}`)}}function Xe(e,t,n,r){let{value:i,bytesRead:a}=$(e,t,n,r);return typeof i==`bigint`&&i<=BigInt(2**53-1)?{value:Number(i),bytesRead:a}:{value:i,bytesRead:a}}function Ze(e,t,n,r){let{value:i,bytesRead:a}=$(e,t,n,r);if(typeof i==`bigint`){let e=-1n-i;return e>=BigInt(-(2**53-1))?{value:Number(e),bytesRead:a}:{value:e,bytesRead:a}}return{value:-1-i,bytesRead:a}}function Qe(e,t,n,r){let{value:i,bytesRead:a}=$(e,t,n,r);if(typeof i==`bigint`||i<0)throw Error(`Indefinite text strings not supported`);let o=n+a+i;if(o>e.length)throw new W(o-e.length,a);return{value:Je.decode(e.subarray(n+a,o)),bytesRead:a+i}}function $e(e,t,n,r){let{value:i,bytesRead:a}=$(e,t,n,r),s=[],c=n+a;if(i===-1){for(;c<e.length;){if(e[c]===o)return{value:s,bytesRead:c-n+1};let{value:r,bytesRead:i}=Q(e,t,c);s.push(r),c+=i}throw new W(1,c-n)}let l=typeof i==`bigint`?Number(i):i;for(let n=0;n<l;n++){let{value:n,bytesRead:r}=Q(e,t,c);s.push(n),c+=r}return{value:s,bytesRead:c-n}}function et(e,t,n,r){let{value:i,bytesRead:a}=$(e,t,n,r),s={},c=n+a;if(i===-1){for(;c<e.length;){if(e[c]===o)return{value:s,bytesRead:c-n+1};let{value:r,bytesRead:i}=Q(e,t,c);c+=i;let{value:a,bytesRead:l}=Q(e,t,c);c+=l,s[String(r)]=a}throw new W(1,c-n)}let l=typeof i==`bigint`?Number(i):i;for(let n=0;n<l;n++){let{value:n,bytesRead:r}=Q(e,t,c);c+=r;let{value:i,bytesRead:a}=Q(e,t,c);c+=a,s[String(n)]=i}return{value:s,bytesRead:c-n}}function tt(e,t,n,r){let{value:i,bytesRead:a}=$(e,t,n,r),s=new Map,c=n+a;if(i===-1){for(;c<e.length;){if(e[c]===o)return{value:s,bytesRead:c-n+1};let{value:r,bytesRead:i}=Q(e,t,c);c+=i;let{value:a,bytesRead:l}=Q(e,t,c);c+=l,s.set(r,a)}throw new W(1,c-n)}let l=typeof i==`bigint`?Number(i):i;for(let n=0;n<l;n++){let{value:n,bytesRead:r}=Q(e,t,c);c+=r;let{value:i,bytesRead:a}=Q(e,t,c);c+=a,s.set(n,i)}return{value:s,bytesRead:c-n}}function nt(e,t,r,i){let{value:a,bytesRead:o}=$(e,t,r,i),s=typeof a==`bigint`?Number(a):a;if(s===E){let i=r+o;if(i>=e.length)throw new W(1,o);let a=e[i],s=a&224,c=a&31;if(s!==n)throw Error(`TAG_MAP must wrap a map, got major type ${s>>5}`);let{value:l,bytesRead:u}=tt(e,t,i,c);return{value:l,bytesRead:o+u}}let{value:c,bytesRead:l}=Q(e,t,r+o);return{value:rt(s,c),bytesRead:o+l}}function rt(t,n){switch(t){case e:{let e=n;return Number.isNaN(e)?new Date(NaN):new Date(e*1e3)}case O:{let e=n,t=0n;for(let n of e)t=t<<8n|BigInt(n);return t}case he:{let e=n,t=0n;for(let n of e)t=t<<8n|BigInt(n);return-1n-t}case ye:return new Set(n);case C:{let[e,t]=n;if(typeof e!=`string`||typeof t!=`string`||!/^[gimsuy]*$/.test(t))return G.SERIALIZATION_ERROR;try{return new RegExp(e,t)}catch{return G.SERIALIZATION_ERROR}}case fe:return G.CIRCULAR;case Se:return G.MAX_DEPTH;case h:return G.TRUNCATED;case we:return G.PROMISE;case A:return G.UNKNOWN;case Oe:return G.SERIALIZATION_ERROR;case _e:return G.REDACTED;case ue:return BigInt(n);case be:{let e=n;return new X(e.name,e.message,e.stack,e.cause)}case Ee:return new K(n);case oe:return new q(n);case y:{let e=n;return new J(e.name,e.properties)}default:return new Y(t,n)}}function it(e,t,n,r){switch(r){case ee:return{value:!1,bytesRead:1};case u:return{value:!0,bytesRead:1};case j:return{value:null,bytesRead:1};case de:return{value:void 0,bytesRead:1};case l:if(n+3>e.length)throw new W(n+3-e.length,1);return{value:at(t.getUint16(n+1)),bytesRead:3};case te:if(n+5>e.length)throw new W(n+5-e.length,1);return{value:t.getFloat32(n+1),bytesRead:5};case se:if(n+9>e.length)throw new W(n+9-e.length,1);return{value:t.getFloat64(n+1),bytesRead:9};case 31:throw Error(`Unexpected break code`);default:if(r<24)return{value:r,bytesRead:1};if(r===24){if(n+2>e.length)throw new W(1,1);return{value:e[n+1],bytesRead:2}}throw Error(`Invalid simple value: ${r}`)}}function at(e){let t=e>>15&1,n=e>>10&31,r=e&1023;return n===0?(t?-1:1)*2**-14*(r/1024):n===31?r===0?t?-1/0:1/0:NaN:(t?-1:1)*2**(n-15)*(1+r/1024)}async function*ot(e){let t=e.getReader(),n;try{for(;;){let{done:e,value:r}=await t.read();if(e){if(n&&n.length>0){let{values:e}=Z(n);for(let t of e)yield t}return}if(n&&n.length>0){let e=new Uint8Array(n.length+r.length);e.set(n),e.set(r,n.length),n=e}else n=r;let{values:i,bytesRead:a}=Z(n);for(let e of i)yield e;n=a<n.length?n.slice(a):void 0}}finally{t.releaseLock()}}export{je as BIG_INT,ce as CIRCULAR_REFERENCE,q as CapturedClass,X as CapturedError,K as CapturedFunction,G as CapturedMarker,J as CapturedNamedObject,Y as CapturedUnknown,Pe as EventSink,r as FUNCTION,Ae as MAX_DEPTH_REACHED,le as NEGATIVE_INFINITY,a as NOT_A_NUMBER,i as POSITIVE_INFINITY,ie as PROMISE,x as REDACTED,t as SERIALIZATION_ERROR,b as SerializedMarker,ne as TOO_LARGE,re as UNDEFINED,ae as UNKNOWN,U as applyDiff,qe as applyDiffs,Ye as decode,ot as decodeStream,m as encode,De as getDiffs,ve as getGlobalClient,xe as getGlobalClientOptions,k as getGlobalLoggers,w as getGlobalSinks,_ as getGlobalState,g as getPageId,Le as isSerializedArray,He as isSerializedClassConstructor,We as isSerializedDate,F as isSerializedError,Ve as isSerializedFunction,Re as isSerializedMap,N as isSerializedMarker,Ue as isSerializedNamedObject,Ie as isSerializedPlainObject,Fe as isSerializedPrimitive,Be as isSerializedRegex,ze as isSerializedSet,Me as randomId,S as serializeClass,ge as serializeDate,Ce as serializeError,D as serializeFunction,me as serializeMap,v as serializeNamedObject,M as serializeRegex,T as serializeSet,Te as serializeValue,pe as setGlobalClient,ke as setGlobalClientOptions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=0,t=32,n=96,r=128,i=160,a=192,o=224,s=20,c=21,ee=22,te=23,ne=25,re=26,ie=27,ae=255,oe=1,se=2,ce=3,le=258,l=21066,u=27001,d=27002,f=27003,ue=27004,p=27005,m=27006,h=27007,g=27008,_=27010,v=27011,y=27012,b=27013,x=27014;var de=class{chunks=[];current;offset=0;totalSize=0;constructor(){this.current=new Uint8Array(4096)}ensureCapacity(e){if(this.offset+e<=this.current.length)return;this.offset>0&&this.chunks.push(this.current.subarray(0,this.offset));let t=Math.min(Math.max(this.current.length*2,e),65536);this.current=new Uint8Array(Math.max(t,e)),this.offset=0}writeByte(e){this.ensureCapacity(1),this.current[this.offset++]=e,this.totalSize++}writeBytes(e){this.ensureCapacity(e.length),this.current.set(e,this.offset),this.offset+=e.length,this.totalSize+=e.length}writeHeader(e,t){if(t<24)this.writeByte(e|t);else if(t<256)this.ensureCapacity(2),this.current[this.offset++]=e|24,this.current[this.offset++]=t,this.totalSize+=2;else if(t<65536)this.ensureCapacity(3),this.current[this.offset++]=e|25,this.current[this.offset++]=t>>8,this.current[this.offset++]=t&255,this.totalSize+=3;else if(t<4294967296)this.ensureCapacity(5),this.current[this.offset++]=e|26,this.current[this.offset++]=t>>24&255,this.current[this.offset++]=t>>16&255,this.current[this.offset++]=t>>8&255,this.current[this.offset++]=t&255,this.totalSize+=5;else{this.ensureCapacity(9),this.current[this.offset++]=e|27;let n=Math.floor(t/4294967296),r=t>>>0;this.current[this.offset++]=n>>24&255,this.current[this.offset++]=n>>16&255,this.current[this.offset++]=n>>8&255,this.current[this.offset++]=n&255,this.current[this.offset++]=r>>24&255,this.current[this.offset++]=r>>16&255,this.current[this.offset++]=r>>8&255,this.current[this.offset++]=r&255,this.totalSize+=9}}writeTag(e){this.writeHeader(192,e)}writeFloat64(e){this.ensureCapacity(9),this.current[this.offset++]=251;let t=new DataView(new ArrayBuffer(8));t.setFloat64(0,e,!1);for(let e=0;e<8;e++)this.current[this.offset++]=t.getUint8(e);this.totalSize+=9}writeBreak(){this.writeByte(255)}getSize(){return this.totalSize}toUint8Array(){if(this.offset>0&&this.chunks.push(this.current.subarray(0,this.offset)),this.chunks.length===1)return this.chunks[0];let e=new Uint8Array(this.totalSize),t=0;for(let n of this.chunks)e.set(n,t),t+=n.length;return e}};const S=new TextEncoder;function fe(e){e.writeByte(246)}function pe(e){e.writeByte(247)}function me(e,t){e.writeByte(224|(t?21:20))}function C(e,t){if(Number.isNaN(t)||!Number.isFinite(t)){e.writeFloat64(t);return}if(Number.isInteger(t)){if(t>=0&&t<=2**53-1){e.writeHeader(0,t);return}if(t<0&&t>=-(2**53-1)){e.writeHeader(32,-1-t);return}}e.writeFloat64(t)}function w(e,t,n){let r=t;r.length>n&&(r=r.substring(0,n)+` [truncated]`);let i=S.encode(r);e.writeHeader(96,i.length),e.writeBytes(i)}function he(e,t){e.writeTag(h);let n=t.toString(),r=S.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function ge(e,t){let n=t.toString(),r=S.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function T(e,t){e.writeTag(t),e.writeByte(246)}function _e(e){T(e,u)}function ve(e){T(e,d)}function E(e){T(e,f)}function ye(e){T(e,ue)}function be(e){T(e,p)}function xe(e){T(e,m)}function Se(e){T(e,g)}function Ce(e,t){let n=t.getTime();if(e.writeTag(1),Number.isNaN(n))e.writeFloat64(NaN);else{let t=n/1e3;Number.isInteger(t)?C(e,t):e.writeFloat64(t)}}function we(e,t){e.writeTag(l),e.writeHeader(128,2);let n=S.encode(t.source);e.writeHeader(96,n.length),e.writeBytes(n);let r=S.encode(t.flags);e.writeHeader(96,r.length),e.writeBytes(r)}function D(e,t,n,r){e.writeTag(_);let i=2;t.stack&&i++,t.cause!==void 0&&i++,e.writeHeader(160,i),O(e,`name`),w(e,t.name,n),O(e,`message`),w(e,t.message,n),t.stack&&(O(e,`stack`),w(e,t.stack,n)),t.cause!==void 0&&(O(e,`cause`),t.cause instanceof Error?D(e,t.cause,n,r):r(t.cause))}function Te(e,t){e.writeTag(v);let n=typeof t.name==`string`&&t.name?t.name:`(anonymous)`,r=S.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function Ee(e,t){e.writeTag(y);let n=typeof t.name==`string`&&t.name?t.name:`(anonymous)`,r=S.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function O(e,t){let n=S.encode(t);e.writeHeader(96,n.length),e.writeBytes(n)}function De(e){try{return/^class\s/.test(e.toString())}catch{return!1}}function Oe(e,t,n,r){let i=t.length;if(i<=n){e.writeHeader(128,i);for(let e of t)r(e)}else{e.writeByte(159);for(let e=0;e<n;e++)r(t[e]);E(e),e.writeBreak()}}function ke(e,t,n,r){let i=Object.keys(t),a=i.length;if(a<=n){e.writeHeader(160,a);for(let n of i)k(e,n),r(t[n])}else{e.writeByte(191);for(let a=0;a<n;a++){let n=i[a];k(e,n),r(t[n])}k(e,`__truncated__`),E(e),e.writeBreak()}}function Ae(e,t,n,r){e.writeTag(x);let i=t.size;if(i<=n){e.writeHeader(160,i);for(let[e,n]of t)r(e),r(n)}else{e.writeByte(191);let i=0;for(let[e,a]of t){if(i>=n)break;r(e),r(a),i++}k(e,`__truncated__`),E(e),e.writeBreak()}}function je(e,t,n,r){e.writeTag(258);let i=t.size;if(i<=n){e.writeHeader(128,i);for(let e of t)r(e)}else{e.writeByte(159);let i=0;for(let e of t){if(i>=n)break;r(e),i++}E(e),e.writeBreak()}}function Me(e,t,n,r,i){e.writeTag(b),e.writeHeader(160,2),k(e,`name`);let a=t.constructor?.name;typeof a!=`string`&&(a=`Object`);let o=S.encode(a);e.writeHeader(96,o.length),e.writeBytes(o),k(e,`properties`);let s=Object.keys(t),c=s.length;if(c<=n){e.writeHeader(160,c);for(let n of s){k(e,n);try{i(t[n])}catch{let t=S.encode(`[Throws]`);e.writeHeader(96,t.length),e.writeBytes(t)}}}else{e.writeByte(191);for(let r=0;r<n;r++){let n=s[r];k(e,n);try{i(t[n])}catch{let t=S.encode(`[Throws]`);e.writeHeader(96,t.length),e.writeBytes(t)}}k(e,`__truncated__`),E(e),e.writeBreak()}}function k(e,t){let n=S.encode(t);e.writeHeader(96,n.length),e.writeBytes(n)}const A=`$REDACTED$`,j=`$UNDEFINED$`,M=`$BIGINT$`,N=`$FUNCTION$`,P=`$PROMISE$`,F=`$CIRCULAR_REFERENCE$`,I=`$UNKNOWN$`,L=`$TOO_LARGE$`,R=`$MAX_DEPTH_REACHED$`,z=`$SERIALIZATION_ERROR$`,B=`$NaN$`,V=`$Infinity$`,H=`$-Infinity$`,U={REDACTED:A,UNDEFINED:j,BIG_INT:M,FUNCTION:N,PROMISE:P,CIRCULAR_REFERENCE:F,UNKNOWN:I,TOO_LARGE:L,MAX_DEPTH_REACHED:R,SERIALIZATION_ERROR:z,NOT_A_NUMBER:B,POSITIVE_INFINITY:V,NEGATIVE_INFINITY:H},Ne=Object.prototype.hasOwnProperty;function Pe(e,t){if(Ne.call(e,t))try{return e[t]}catch(e){return`[Throws: `+(e instanceof Error?e.message:`?`)+`]`}return e[t]}function W(e,t){try{if(t.depth>t.maxDepth){ve(t.buffer);return}if(t.buffer.getSize()>t.maxTotalSize){E(t.buffer);return}if(e===null){fe(t.buffer);return}if(e===void 0){pe(t.buffer);return}if(typeof e==`boolean`){me(t.buffer,e);return}if(typeof e==`number`){C(t.buffer,e);return}if(typeof e==`string`){if(e===U.REDACTED){Se(t.buffer);return}w(t.buffer,e,t.maxStringLength);return}if(typeof e==`bigint`){he(t.buffer,e);return}if(typeof e==`symbol`){ge(t.buffer,e);return}if(typeof e==`function`){De(e)?Ee(t.buffer,e):Te(t.buffer,e);return}if(typeof e==`object`){if(e instanceof Date){Ce(t.buffer,e);return}if(e instanceof RegExp){we(t.buffer,e);return}if(e instanceof Error){D(t.buffer,e,t.maxStringLength,e=>W(e,{...t,depth:t.depth+1}));return}if(e instanceof Promise){ye(t.buffer);return}if(t.seen.has(e)){_e(t.buffer);return}t.seen.add(e);let n={...t,depth:t.depth+1},r=e=>W(e,n);if(e instanceof Map){Ae(t.buffer,e,t.maxMapSize,r),t.seen.delete(e);return}if(e instanceof Set){je(t.buffer,e,t.maxArraySize,r),t.seen.delete(e);return}if(Array.isArray(e)){Oe(t.buffer,e,t.maxArraySize,r),t.seen.delete(e);return}if(`toJSON`in e&&typeof e.toJSON==`function`)try{W(e.toJSON(),n),t.seen.delete(e);return}catch(n){let r=`[Throws: `+(n instanceof Error?n.message:`?`)+`]`;w(t.buffer,r,t.maxStringLength),t.seen.delete(e);return}if(Object.getPrototypeOf(e)===Object.prototype){let n={};for(let t of Object.keys(e))n[t]=Pe(e,t);ke(t.buffer,n,t.maxMapSize,r)}else Me(t.buffer,e,t.maxMapSize,t.maxStringLength,r);t.seen.delete(e);return}be(t.buffer)}catch(e){try{t.onError?.(e)}catch{}xe(t.buffer)}}function Fe(e,t={}){let n=new de;return W(e,{buffer:n,seen:new WeakSet,depth:0,maxDepth:t.maxDepth??30,maxTotalSize:t.maxTotalSize??5e6,maxArraySize:t.maxArraySize??1e3,maxMapSize:t.maxMapSize??1e3,maxStringLength:t.maxStringLength??1e5,onError:t.onError}),n.toUint8Array()}function G(e=6){try{let t=crypto.getRandomValues(new Uint8Array(e));return Array.from(t,e=>`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`[e%62]).join(``)}catch{return Math.random().toString(36).substring(2,2+e)}}const Ie=()=>window.Capture,Le=e=>{window.Capture=e},Re=()=>window.captureOptions,ze=e=>{window.captureOptions=e},K=()=>{let e=window.__capture;return e||(e={},window.__capture=e),e},Be=()=>{let e=K(),t=e.loggers;return t||(t=new Map,e.loggers=t),t},Ve=()=>{let e=K(),t=e.sinks;return t||(t=new Set,e.sinks=t),t},He=()=>{let e=K(),t=e.pageId;return t||(t=G(),e.pageId=t),t},Ue=Object.prototype.hasOwnProperty;function q(e,t){return Ue.call(e,t)}function J(e){if(Array.isArray(e)){let t=Array(e.length);for(let e=0;e<t.length;e++)t[e]=``+e;return t}return Object.keys(e)}function Y(e){return typeof e==`object`&&!!e&&!(e instanceof Date)&&typeof e.toJSON==`function`}function X(e,t,n,r,i=-1){if(t===e)return;if(Y(t)&&(t=t.toJSON()),Y(e)&&(e=e.toJSON()),typeof t!=`object`||!t||t instanceof Date||typeof e!=`object`||!e||e instanceof Date){e!==t&&n.push({op:`replace`,path:r,keyIndex:i,from:e,to:t});return}else if(Array.isArray(t)!==Array.isArray(e)){n.push({op:`replace`,path:r,keyIndex:i,from:e,to:t});return}let a=J(t),o=J(e),s=!1;for(let i=o.length-1;i>=0;i--){let a=o[i],c=e[a];if(q(t,a)&&!(t[a]===void 0&&c!==void 0&&Array.isArray(t)===!1)){let e=t[a];X(c,e,n,[...r,a],i)}else Array.isArray(e)===Array.isArray(t)&&(n.push({op:`remove`,path:[...r,a],keyIndex:i,value:c}),s=!0)}if(!(!s&&a.length==o.length))for(let i=0;i<a.length;i++){let o=a[i];!q(e,o)&&t[o]!==void 0&&n.push({op:`add`,path:[...r,o],keyIndex:i,value:t[o]})}}function We(e,t){let n=[];return X(e,t,n,[]),n}function Ge(e){try{return/^class\s/.test(e.toString())}catch{return!1}}function Z(e){return{__CAPTURE_TYPE__:`classConstructor`,name:e.name||`(anonymous)`}}function Q(e){let t=e.getTime();return{__CAPTURE_TYPE__:`date`,value:Number.isNaN(t)?null:t}}function $(e){let t={name:e.name,message:e.message};return e.stack&&(t.stack=e.stack),e.cause instanceof Error?t.cause=$(e.cause):e.cause!==void 0&&(t.cause=null),t}function Ke(e){return{__CAPTURE_TYPE__:`error`,error:$(e)}}function qe(e){return{__CAPTURE_TYPE__:`function`,name:e.name||`(anonymous)`}}function Je(e,t){let n=[];for(let[r,i]of e)n.push([t(r),t(i)]);return{__CAPTURE_TYPE__:`map`,entries:n}}function Ye(e,t){let n=e.constructor?.name;typeof n!=`string`&&(n=`Object`);let r={};for(let n of Object.keys(e))try{r[n]=t(e[n])}catch{r[n]=`[Throws]`}return{__CAPTURE_TYPE__:`object`,name:n,properties:r}}function Xe(e){return{__CAPTURE_TYPE__:`regex`,pattern:e.toString()}}function Ze(e,t){let n=[];for(let r of e)n.push(t(r));return{__CAPTURE_TYPE__:`set`,values:n}}const Qe=Object.prototype.hasOwnProperty;function $e(e){return`[Throws: `+(e instanceof Error?e.message:`?`)+`]`}function et(e,t){if(Qe.call(e,t))try{return e[t]}catch(e){return $e(e)}return e[t]}function tt(e,t={}){let n=[],r=t.maxStringLength??1e5,i=t.maxSize??5e5,a=t.maxDepth??20,o=0;function s(e,c){try{if(c>a)return R;if(o>i)return L;if(typeof e==`number`){if(isNaN(e))return B;if(e===1/0)return V;if(e===-1/0)return H}if(e===null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`){let t=JSON.stringify(e).length;return o+=t,o>i?L:typeof e==`string`&&t>r?e.substring(0,r)+` [Output truncated due to length]`:e}else if(e===void 0)return j;else if(typeof e==`bigint`)return e<=2**53-1&&e>=-(2**53-1)?Number(e):M;if(typeof e==`symbol`)return e.toString();if(typeof e==`function`)return Ge(e)?Z(e):qe(e);if(e instanceof Date)return Q(e);if(e instanceof Error)return Ke(e);if(e instanceof RegExp)return Xe(e);if(e instanceof Promise)return P;if(n.indexOf(e)!==-1)return F;if(n.push(e),e instanceof Map){let t=Je(e,e=>s(e,c+1));return n.pop(),t}if(e instanceof Set){let t=Ze(e,e=>s(e,c+1));return n.pop(),t}if(Array.isArray(e)){let t=e.map(e=>s(e,c+1));return n.pop(),t}if(typeof e==`object`){if(`toJSON`in e&&typeof e.toJSON==`function`)try{let t=s(e.toJSON(),c+1);return n.pop(),t}catch(e){return $e(e)}if(Object.getPrototypeOf(e)!==Object.prototype){let t=Ye(e,e=>s(e,c+1));return n.pop(),t}let t={};for(let n of Object.keys(e))t[n]=s(et(e,n),c+1);return n.pop(),t}return I}catch(e){try{t.onError?.(e)}catch{}return z}}return s(e,0)}export{oe as $,z as A,i as B,N as C,V as D,B as E,ae as F,e as G,o as H,ne as I,c as J,s as K,re as L,L as M,j as N,P as O,I as P,y as Q,ie as R,F as S,H as T,a as U,t as V,n as W,h as X,te as Y,u as Z,Le as _,Je as a,ce as at,Fe as b,Q as c,g as ct,Ie as d,le as dt,_ as et,Re as f,f as ft,He as g,K as h,Ye as i,b as it,U as j,A as k,Z as l,l as lt,Ve as m,Ze as n,x as nt,qe as o,se as ot,Be as p,p as pt,ee as q,Xe as r,d as rt,Ke as s,ue as st,tt as t,v as tt,We as u,m as ut,ze as v,R as w,M as x,G as y,r as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=21066,t=27001,n=27002,r=27003,i=27004,a=27005,o=27006,s=27007,c=27008,l=27010,u=27011,d=27012,f=27013,p=27014;var ee=class{chunks=[];current;offset=0;totalSize=0;constructor(){this.current=new Uint8Array(4096)}ensureCapacity(e){if(this.offset+e<=this.current.length)return;this.offset>0&&this.chunks.push(this.current.subarray(0,this.offset));let t=Math.min(Math.max(this.current.length*2,e),65536);this.current=new Uint8Array(Math.max(t,e)),this.offset=0}writeByte(e){this.ensureCapacity(1),this.current[this.offset++]=e,this.totalSize++}writeBytes(e){this.ensureCapacity(e.length),this.current.set(e,this.offset),this.offset+=e.length,this.totalSize+=e.length}writeHeader(e,t){if(t<24)this.writeByte(e|t);else if(t<256)this.ensureCapacity(2),this.current[this.offset++]=e|24,this.current[this.offset++]=t,this.totalSize+=2;else if(t<65536)this.ensureCapacity(3),this.current[this.offset++]=e|25,this.current[this.offset++]=t>>8,this.current[this.offset++]=t&255,this.totalSize+=3;else if(t<4294967296)this.ensureCapacity(5),this.current[this.offset++]=e|26,this.current[this.offset++]=t>>24&255,this.current[this.offset++]=t>>16&255,this.current[this.offset++]=t>>8&255,this.current[this.offset++]=t&255,this.totalSize+=5;else{this.ensureCapacity(9),this.current[this.offset++]=e|27;let n=Math.floor(t/4294967296),r=t>>>0;this.current[this.offset++]=n>>24&255,this.current[this.offset++]=n>>16&255,this.current[this.offset++]=n>>8&255,this.current[this.offset++]=n&255,this.current[this.offset++]=r>>24&255,this.current[this.offset++]=r>>16&255,this.current[this.offset++]=r>>8&255,this.current[this.offset++]=r&255,this.totalSize+=9}}writeTag(e){this.writeHeader(192,e)}writeFloat64(e){this.ensureCapacity(9),this.current[this.offset++]=251;let t=new DataView(new ArrayBuffer(8));t.setFloat64(0,e,!1);for(let e=0;e<8;e++)this.current[this.offset++]=t.getUint8(e);this.totalSize+=9}writeBreak(){this.writeByte(255)}getSize(){return this.totalSize}toUint8Array(){if(this.offset>0&&this.chunks.push(this.current.subarray(0,this.offset)),this.chunks.length===1)return this.chunks[0];let e=new Uint8Array(this.totalSize),t=0;for(let n of this.chunks)e.set(n,t),t+=n.length;return e}};const m=new TextEncoder;function te(e){e.writeByte(246)}function ne(e){e.writeByte(247)}function re(e,t){e.writeByte(224|(t?21:20))}function h(e,t){if(Number.isNaN(t)||!Number.isFinite(t)){e.writeFloat64(t);return}if(Number.isInteger(t)){if(t>=0&&t<=2**53-1){e.writeHeader(0,t);return}if(t<0&&t>=-(2**53-1)){e.writeHeader(32,-1-t);return}}e.writeFloat64(t)}function g(e,t,n){let r=t;r.length>n&&(r=r.substring(0,n)+` [truncated]`);let i=m.encode(r);e.writeHeader(96,i.length),e.writeBytes(i)}function ie(e,t){e.writeTag(s);let n=t.toString(),r=m.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function ae(e,t){let n=t.toString(),r=m.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function _(e,t){e.writeTag(t),e.writeByte(246)}function oe(e){_(e,t)}function se(e){_(e,n)}function v(e){_(e,r)}function ce(e){_(e,i)}function le(e){_(e,a)}function ue(e){_(e,o)}function de(e){_(e,c)}function fe(e,t){let n=t.getTime();if(e.writeTag(1),Number.isNaN(n))e.writeFloat64(NaN);else{let t=n/1e3;Number.isInteger(t)?h(e,t):e.writeFloat64(t)}}function pe(t,n){t.writeTag(e),t.writeHeader(128,2);let r=m.encode(n.source);t.writeHeader(96,r.length),t.writeBytes(r);let i=m.encode(n.flags);t.writeHeader(96,i.length),t.writeBytes(i)}function y(e,t,n,r){e.writeTag(l);let i=2;t.stack&&i++,t.cause!==void 0&&i++,e.writeHeader(160,i),b(e,`name`),g(e,t.name,n),b(e,`message`),g(e,t.message,n),t.stack&&(b(e,`stack`),g(e,t.stack,n)),t.cause!==void 0&&(b(e,`cause`),t.cause instanceof Error?y(e,t.cause,n,r):r(t.cause))}function me(e,t){e.writeTag(u);let n=typeof t.name==`string`&&t.name?t.name:`(anonymous)`,r=m.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function he(e,t){e.writeTag(d);let n=typeof t.name==`string`&&t.name?t.name:`(anonymous)`,r=m.encode(n);e.writeHeader(96,r.length),e.writeBytes(r)}function b(e,t){let n=m.encode(t);e.writeHeader(96,n.length),e.writeBytes(n)}function ge(e){try{return/^class\s/.test(e.toString())}catch{return!1}}function _e(e,t,n,r){let i=t.length;if(i<=n){e.writeHeader(128,i);for(let e of t)r(e)}else{e.writeByte(159);for(let e=0;e<n;e++)r(t[e]);v(e),e.writeBreak()}}function ve(e,t,n,r){let i=Object.keys(t),a=i.length;if(a<=n){e.writeHeader(160,a);for(let n of i)x(e,n),r(t[n])}else{e.writeByte(191);for(let a=0;a<n;a++){let n=i[a];x(e,n),r(t[n])}x(e,`__truncated__`),v(e),e.writeBreak()}}function ye(e,t,n,r){e.writeTag(p);let i=t.size;if(i<=n){e.writeHeader(160,i);for(let[e,n]of t)r(e),r(n)}else{e.writeByte(191);let i=0;for(let[e,a]of t){if(i>=n)break;r(e),r(a),i++}x(e,`__truncated__`),v(e),e.writeBreak()}}function be(e,t,n,r){e.writeTag(258);let i=t.size;if(i<=n){e.writeHeader(128,i);for(let e of t)r(e)}else{e.writeByte(159);let i=0;for(let e of t){if(i>=n)break;r(e),i++}v(e),e.writeBreak()}}function xe(e,t,n,r,i){e.writeTag(f),e.writeHeader(160,2),x(e,`name`);let a=t.constructor?.name;typeof a!=`string`&&(a=`Object`);let o=m.encode(a);e.writeHeader(96,o.length),e.writeBytes(o),x(e,`properties`);let s=Object.keys(t),c=s.length;if(c<=n){e.writeHeader(160,c);for(let n of s){x(e,n);try{i(t[n])}catch{let t=m.encode(`[Throws]`);e.writeHeader(96,t.length),e.writeBytes(t)}}}else{e.writeByte(191);for(let r=0;r<n;r++){let n=s[r];x(e,n);try{i(t[n])}catch{let t=m.encode(`[Throws]`);e.writeHeader(96,t.length),e.writeBytes(t)}}x(e,`__truncated__`),v(e),e.writeBreak()}}function x(e,t){let n=m.encode(t);e.writeHeader(96,n.length),e.writeBytes(n)}const S=`$REDACTED$`,C=`$UNDEFINED$`,w=`$BIGINT$`,T=`$FUNCTION$`,E=`$PROMISE$`,D=`$CIRCULAR_REFERENCE$`,O=`$UNKNOWN$`,k=`$TOO_LARGE$`,A=`$MAX_DEPTH_REACHED$`,j=`$SERIALIZATION_ERROR$`,M=`$NaN$`,N=`$Infinity$`,P=`$-Infinity$`,F={REDACTED:S,UNDEFINED:C,BIG_INT:w,FUNCTION:T,PROMISE:E,CIRCULAR_REFERENCE:D,UNKNOWN:O,TOO_LARGE:k,MAX_DEPTH_REACHED:A,SERIALIZATION_ERROR:j,NOT_A_NUMBER:M,POSITIVE_INFINITY:N,NEGATIVE_INFINITY:P},Se=Object.prototype.hasOwnProperty;function Ce(e,t){if(Se.call(e,t))try{return e[t]}catch(e){return`[Throws: `+(e instanceof Error?e.message:`?`)+`]`}return e[t]}function I(e,t){try{if(t.depth>t.maxDepth){se(t.buffer);return}if(t.buffer.getSize()>t.maxTotalSize){v(t.buffer);return}if(e===null){te(t.buffer);return}if(e===void 0){ne(t.buffer);return}if(typeof e==`boolean`){re(t.buffer,e);return}if(typeof e==`number`){h(t.buffer,e);return}if(typeof e==`string`){if(e===F.REDACTED){de(t.buffer);return}g(t.buffer,e,t.maxStringLength);return}if(typeof e==`bigint`){ie(t.buffer,e);return}if(typeof e==`symbol`){ae(t.buffer,e);return}if(typeof e==`function`){ge(e)?he(t.buffer,e):me(t.buffer,e);return}if(typeof e==`object`){if(e instanceof Date){fe(t.buffer,e);return}if(e instanceof RegExp){pe(t.buffer,e);return}if(e instanceof Error){y(t.buffer,e,t.maxStringLength,e=>I(e,{...t,depth:t.depth+1}));return}if(e instanceof Promise){ce(t.buffer);return}if(t.seen.has(e)){oe(t.buffer);return}t.seen.add(e);let n={...t,depth:t.depth+1},r=e=>I(e,n);if(e instanceof Map){ye(t.buffer,e,t.maxMapSize,r),t.seen.delete(e);return}if(e instanceof Set){be(t.buffer,e,t.maxArraySize,r),t.seen.delete(e);return}if(Array.isArray(e)){_e(t.buffer,e,t.maxArraySize,r),t.seen.delete(e);return}if(`toJSON`in e&&typeof e.toJSON==`function`)try{I(e.toJSON(),n),t.seen.delete(e);return}catch(n){let r=`[Throws: `+(n instanceof Error?n.message:`?`)+`]`;g(t.buffer,r,t.maxStringLength),t.seen.delete(e);return}if(Object.getPrototypeOf(e)===Object.prototype){let n={};for(let t of Object.keys(e))n[t]=Ce(e,t);ve(t.buffer,n,t.maxMapSize,r)}else xe(t.buffer,e,t.maxMapSize,t.maxStringLength,r);t.seen.delete(e);return}le(t.buffer)}catch(e){try{t.onError?.(e)}catch{}ue(t.buffer)}}function we(e,t={}){let n=new ee;return I(e,{buffer:n,seen:new WeakSet,depth:0,maxDepth:t.maxDepth??30,maxTotalSize:t.maxTotalSize??5e6,maxArraySize:t.maxArraySize??1e3,maxMapSize:t.maxMapSize??1e3,maxStringLength:t.maxStringLength??1e5,onError:t.onError}),n.toUint8Array()}function L(e=6){try{let t=crypto.getRandomValues(new Uint8Array(e));return Array.from(t,e=>`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`[e%62]).join(``)}catch{return Math.random().toString(36).substring(2,2+e)}}const Te=()=>window.Capture,Ee=e=>{window.Capture=e},De=()=>window.captureOptions,Oe=e=>{window.captureOptions=e},R=()=>{let e=window.__capture;return e||(e={},window.__capture=e),e},ke=()=>{let e=R(),t=e.loggers;return t||(t=new Map,e.loggers=t),t},z=()=>{let e=R(),t=e.sinks;return t||(t=new Set,e.sinks=t),t},Ae=()=>{let e=R(),t=e.pageId;return t||(t=L(),e.pageId=t),t},je=Object.prototype.hasOwnProperty;function B(e,t){return je.call(e,t)}function V(e){if(Array.isArray(e)){let t=Array(e.length);for(let e=0;e<t.length;e++)t[e]=``+e;return t}return Object.keys(e)}function H(e){return typeof e==`object`&&!!e&&!(e instanceof Date)&&typeof e.toJSON==`function`}function U(e,t,n,r,i=-1){if(t===e)return;if(H(t)&&(t=t.toJSON()),H(e)&&(e=e.toJSON()),typeof t!=`object`||!t||t instanceof Date||typeof e!=`object`||!e||e instanceof Date){e!==t&&n.push({op:`replace`,path:r,keyIndex:i,from:e,to:t});return}else if(Array.isArray(t)!==Array.isArray(e)){n.push({op:`replace`,path:r,keyIndex:i,from:e,to:t});return}let a=V(t),o=V(e),s=!1;for(let i=o.length-1;i>=0;i--){let a=o[i],c=e[a];if(B(t,a)&&!(t[a]===void 0&&c!==void 0&&Array.isArray(t)===!1)){let e=t[a];U(c,e,n,[...r,a],i)}else Array.isArray(e)===Array.isArray(t)&&(n.push({op:`remove`,path:[...r,a],keyIndex:i,value:c}),s=!0)}if(!(!s&&a.length==o.length))for(let i=0;i<a.length;i++){let o=a[i];!B(e,o)&&t[o]!==void 0&&n.push({op:`add`,path:[...r,o],keyIndex:i,value:t[o]})}}function Me(e,t){let n=[];return U(e,t,n,[]),n}function Ne(e){try{return/^class\s/.test(e.toString())}catch{return!1}}function W(e){return{__CAPTURE_TYPE__:`classConstructor`,name:e.name||`(anonymous)`}}function G(e){let t=e.getTime();return{__CAPTURE_TYPE__:`date`,value:Number.isNaN(t)?null:t}}function K(e){let t={name:e.name,message:e.message};return e.stack&&(t.stack=e.stack),e.cause instanceof Error?t.cause=K(e.cause):e.cause!==void 0&&(t.cause=null),t}function q(e){return{__CAPTURE_TYPE__:`error`,error:K(e)}}function J(e){return{__CAPTURE_TYPE__:`function`,name:e.name||`(anonymous)`}}function Y(e,t){let n=[];for(let[r,i]of e)n.push([t(r),t(i)]);return{__CAPTURE_TYPE__:`map`,entries:n}}function X(e,t){let n=e.constructor?.name;typeof n!=`string`&&(n=`Object`);let r={};for(let n of Object.keys(e))try{r[n]=t(e[n])}catch{r[n]=`[Throws]`}return{__CAPTURE_TYPE__:`object`,name:n,properties:r}}function Z(e){return{__CAPTURE_TYPE__:`regex`,pattern:e.toString()}}function Q(e,t){let n=[];for(let r of e)n.push(t(r));return{__CAPTURE_TYPE__:`set`,values:n}}const Pe=Object.prototype.hasOwnProperty;function $(e){return`[Throws: `+(e instanceof Error?e.message:`?`)+`]`}function Fe(e,t){if(Pe.call(e,t))try{return e[t]}catch(e){return $(e)}return e[t]}function Ie(e,t={}){let n=[],r=t.maxStringLength??1e5,i=t.maxSize??5e5,a=t.maxDepth??20,o=0;function s(e,c){try{if(c>a)return A;if(o>i)return k;if(typeof e==`number`){if(isNaN(e))return M;if(e===1/0)return N;if(e===-1/0)return P}if(e===null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`){let t=JSON.stringify(e).length;return o+=t,o>i?k:typeof e==`string`&&t>r?e.substring(0,r)+` [Output truncated due to length]`:e}else if(e===void 0)return C;else if(typeof e==`bigint`)return e<=2**53-1&&e>=-(2**53-1)?Number(e):w;if(typeof e==`symbol`)return e.toString();if(typeof e==`function`)return Ne(e)?W(e):J(e);if(e instanceof Date)return G(e);if(e instanceof Error)return q(e);if(e instanceof RegExp)return Z(e);if(e instanceof Promise)return E;if(n.indexOf(e)!==-1)return D;if(n.push(e),e instanceof Map){let t=Y(e,e=>s(e,c+1));return n.pop(),t}if(e instanceof Set){let t=Q(e,e=>s(e,c+1));return n.pop(),t}if(Array.isArray(e)){let t=e.map(e=>s(e,c+1));return n.pop(),t}if(typeof e==`object`){if(`toJSON`in e&&typeof e.toJSON==`function`)try{let t=s(e.toJSON(),c+1);return n.pop(),t}catch(e){return $(e)}if(Object.getPrototypeOf(e)!==Object.prototype){let t=X(e,e=>s(e,c+1));return n.pop(),t}let t={};for(let n of Object.keys(e))t[n]=s(Fe(e,n),c+1);return n.pop(),t}return O}catch(e){try{t.onError?.(e)}catch{}return j}}return s(e,0)}Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return 1}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return 160}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return 255}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return 0}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return 224}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return 25}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return 21}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return 20}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return 26}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return 27}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return 192}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return 32}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return 96}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return 23}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return 3}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return 258}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return 2}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return 22}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return 128}});
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
//#region src/legacy-client-types.d.ts
|
|
2
|
+
type LegacyCaptureRequestFn = (url: string) => boolean;
|
|
3
|
+
interface LegacyPrivacyPresetOptions {
|
|
4
|
+
requestBody?: "all" | "none" | "on-error-only" | LegacyCaptureRequestFn;
|
|
5
|
+
responseBody?: "all" | "none" | "on-error-only" | LegacyCaptureRequestFn;
|
|
6
|
+
requestHeader?: "all" | "key-only" | "none" | "error-only";
|
|
7
|
+
responseHeader?: "all" | "key-only" | "none" | "error-only";
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/client-types.d.ts
|
|
11
|
+
type CaptureEventPreset = "all" | "none";
|
|
12
|
+
interface EventPageInfo {
|
|
13
|
+
pageUrl: string;
|
|
14
|
+
}
|
|
15
|
+
interface EventRequestInfo {
|
|
16
|
+
requestUrl: string;
|
|
17
|
+
requestMethod: string;
|
|
18
|
+
hasError: boolean;
|
|
19
|
+
pageUrl: string;
|
|
20
|
+
}
|
|
21
|
+
interface EventResponseInfo {
|
|
22
|
+
responseStatusCode: number;
|
|
23
|
+
}
|
|
24
|
+
interface EventHeaderInfo {
|
|
25
|
+
headerName: string;
|
|
26
|
+
headerValue: string;
|
|
27
|
+
}
|
|
28
|
+
type CaptureEventFn = (info: EventPageInfo) => boolean;
|
|
29
|
+
type CaptureRequestHeaderFn = (info: EventPageInfo & EventRequestInfo & EventHeaderInfo) => boolean;
|
|
30
|
+
type CaptureResponseHeaderFn = (info: EventPageInfo & EventRequestInfo & EventHeaderInfo & EventResponseInfo) => boolean;
|
|
31
|
+
type CaptureRequestBodyFn = (info: EventPageInfo & EventRequestInfo) => boolean;
|
|
32
|
+
type CaptureRequestFn = (info: EventPageInfo & EventRequestInfo & Partial<EventResponseInfo>) => boolean;
|
|
33
|
+
type CaptureResponseBodyFn = (info: EventPageInfo & EventRequestInfo & EventResponseInfo) => boolean;
|
|
34
|
+
interface Identity {
|
|
35
|
+
identifier: string;
|
|
36
|
+
name?: string;
|
|
37
|
+
email?: string;
|
|
38
|
+
url?: string;
|
|
39
|
+
avatarUrl?: string;
|
|
40
|
+
}
|
|
41
|
+
type CustomContextObject = Record<string, string | number | boolean | null | undefined>;
|
|
42
|
+
interface CaptureClientOptions {
|
|
43
|
+
captureKey: string;
|
|
44
|
+
isEnabled?: boolean;
|
|
45
|
+
identity?: Identity | null;
|
|
46
|
+
context?: CustomContextObject;
|
|
47
|
+
onBeforeOpen?: () => boolean;
|
|
48
|
+
onOpen?: () => void;
|
|
49
|
+
onClose?: () => void;
|
|
50
|
+
captureEvent?: CaptureEventPreset | CaptureEventFn;
|
|
51
|
+
captureRequest?: CaptureEventPreset | CaptureRequestFn;
|
|
52
|
+
captureRequestBody?: CaptureEventPreset | CaptureRequestBodyFn;
|
|
53
|
+
captureResponseBody?: CaptureEventPreset | CaptureResponseBodyFn;
|
|
54
|
+
captureRequestHeader?: CaptureEventPreset | CaptureRequestHeaderFn;
|
|
55
|
+
captureResponseHeader?: CaptureEventPreset | CaptureResponseHeaderFn;
|
|
56
|
+
privacyOptions?: LegacyPrivacyPresetOptions;
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/logger/event-sink.d.ts
|
|
60
|
+
interface EventSinkLogOpts {
|
|
61
|
+
loggerType: EventLoggerType;
|
|
62
|
+
loggerMeta: EventLoggerMeta;
|
|
63
|
+
timestamp: number;
|
|
64
|
+
event: Uint8Array;
|
|
65
|
+
}
|
|
66
|
+
interface LogInternalErrorOpts {
|
|
67
|
+
loggerType: EventLoggerType;
|
|
68
|
+
loggerMeta: EventLoggerMeta;
|
|
69
|
+
error: unknown;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Base EventSink class used to register loggers and forward events to storage.
|
|
73
|
+
* The base sink does not implement any storage itself.
|
|
74
|
+
*/
|
|
75
|
+
declare class EventSink {
|
|
76
|
+
constructor();
|
|
77
|
+
log(_opts: EventSinkLogOpts): void;
|
|
78
|
+
log(_loggerType: EventLoggerType, _loggerMeta: EventLoggerMeta, _event: BaseEvent): void;
|
|
79
|
+
logInternalError: ({
|
|
80
|
+
loggerType,
|
|
81
|
+
loggerMeta,
|
|
82
|
+
error
|
|
83
|
+
}: LogInternalErrorOpts) => void;
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/logger/event-logger.d.ts
|
|
87
|
+
type BaseEvent = {
|
|
88
|
+
time: number;
|
|
89
|
+
[key: string]: unknown;
|
|
90
|
+
};
|
|
91
|
+
type EventLoggerType = "state" | "events";
|
|
92
|
+
type EventLoggerMeta = {
|
|
93
|
+
identifier: string;
|
|
94
|
+
name?: string;
|
|
95
|
+
version?: number;
|
|
96
|
+
};
|
|
97
|
+
declare class EventLogger<EventType extends BaseEvent = BaseEvent> {
|
|
98
|
+
type: EventLoggerType;
|
|
99
|
+
private sinks;
|
|
100
|
+
private queue;
|
|
101
|
+
private errorQueue;
|
|
102
|
+
meta: EventLoggerMeta;
|
|
103
|
+
initialize(meta: EventLoggerMeta): void;
|
|
104
|
+
registerSink(sink: EventSink): void;
|
|
105
|
+
logEvent: (event: EventType) => void;
|
|
106
|
+
logInternalError: (error: unknown) => void;
|
|
107
|
+
}
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/diff/diff-operations.types.d.ts
|
|
110
|
+
type AddOperation<T = unknown> = {
|
|
111
|
+
op: "add";
|
|
112
|
+
path: string[];
|
|
113
|
+
keyIndex: number;
|
|
114
|
+
value: T;
|
|
115
|
+
};
|
|
116
|
+
type RemoveOperation<T = unknown> = {
|
|
117
|
+
op: "remove";
|
|
118
|
+
path: string[];
|
|
119
|
+
keyIndex: number;
|
|
120
|
+
value: T;
|
|
121
|
+
};
|
|
122
|
+
type ReplaceOperation<T = unknown> = {
|
|
123
|
+
op: "replace";
|
|
124
|
+
path: string[];
|
|
125
|
+
keyIndex: number;
|
|
126
|
+
from: T;
|
|
127
|
+
to: T;
|
|
128
|
+
};
|
|
129
|
+
type DiffOperation<T = unknown> = AddOperation<T> | RemoveOperation<T> | ReplaceOperation<T>;
|
|
130
|
+
type DiffType = DiffOperation["op"];
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/logger/state-logger.d.ts
|
|
133
|
+
interface StateLoggerMeta extends EventLoggerMeta {
|
|
134
|
+
stateLabel?: string;
|
|
135
|
+
contextLabel?: string;
|
|
136
|
+
}
|
|
137
|
+
interface StatePatchEvent<ValueType = unknown> extends BaseEvent {
|
|
138
|
+
liid: string;
|
|
139
|
+
type: "patch";
|
|
140
|
+
label?: string;
|
|
141
|
+
ops: DiffOperation<ValueType>[];
|
|
142
|
+
extra?: ValueType;
|
|
143
|
+
}
|
|
144
|
+
interface StateSnapshotEvent<ValueType = unknown> extends BaseEvent {
|
|
145
|
+
type: "snapshot";
|
|
146
|
+
liid: string;
|
|
147
|
+
value: ValueType;
|
|
148
|
+
}
|
|
149
|
+
interface LogStateOpts {
|
|
150
|
+
label?: string;
|
|
151
|
+
extra?: unknown;
|
|
152
|
+
}
|
|
153
|
+
type StateEvent<ValueType = unknown> = StatePatchEvent<ValueType> | StateSnapshotEvent<ValueType>;
|
|
154
|
+
interface StateLoggerOpts<State = unknown> {
|
|
155
|
+
initialState?: State;
|
|
156
|
+
}
|
|
157
|
+
declare class StateLogger extends EventLogger<StateEvent> {
|
|
158
|
+
readonly type: EventLoggerType;
|
|
159
|
+
readonly liid: string;
|
|
160
|
+
private patchesSinceLastSnapshot;
|
|
161
|
+
private previousState;
|
|
162
|
+
readonly meta: StateLoggerMeta;
|
|
163
|
+
constructor({
|
|
164
|
+
initialState
|
|
165
|
+
}?: StateLoggerOpts);
|
|
166
|
+
logState(state: unknown, {
|
|
167
|
+
label,
|
|
168
|
+
extra
|
|
169
|
+
}?: LogStateOpts): void;
|
|
170
|
+
takeSnapshot(): void;
|
|
171
|
+
private logSnapshot;
|
|
172
|
+
}
|
|
173
|
+
//#endregion
|
|
174
|
+
export { CaptureResponseBodyFn as C, LegacyPrivacyPresetOptions as D, Identity as E, CaptureRequestHeaderFn as S, CustomContextObject as T, CaptureClientOptions as _, StateSnapshotEvent as a, CaptureRequestBodyFn as b, DiffType as c, BaseEvent as d, EventLogger as f, EventSinkLogOpts as g, EventSink as h, StatePatchEvent as i, RemoveOperation as l, EventLoggerType as m, StateLogger as n, AddOperation as o, EventLoggerMeta as p, StateLoggerMeta as r, DiffOperation as s, StateEvent as t, ReplaceOperation as u, CaptureEventFn as v, CaptureResponseHeaderFn as w, CaptureRequestFn as x, CaptureEventPreset as y };
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
//#region src/legacy-client-types.d.ts
|
|
2
|
+
type LegacyCaptureRequestFn = (url: string) => boolean;
|
|
3
|
+
interface LegacyPrivacyPresetOptions {
|
|
4
|
+
requestBody?: "all" | "none" | "on-error-only" | LegacyCaptureRequestFn;
|
|
5
|
+
responseBody?: "all" | "none" | "on-error-only" | LegacyCaptureRequestFn;
|
|
6
|
+
requestHeader?: "all" | "key-only" | "none" | "error-only";
|
|
7
|
+
responseHeader?: "all" | "key-only" | "none" | "error-only";
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/client-types.d.ts
|
|
11
|
+
type CaptureEventPreset = "all" | "none";
|
|
12
|
+
interface EventPageInfo {
|
|
13
|
+
pageUrl: string;
|
|
14
|
+
}
|
|
15
|
+
interface EventRequestInfo {
|
|
16
|
+
requestUrl: string;
|
|
17
|
+
requestMethod: string;
|
|
18
|
+
hasError: boolean;
|
|
19
|
+
pageUrl: string;
|
|
20
|
+
}
|
|
21
|
+
interface EventResponseInfo {
|
|
22
|
+
responseStatusCode: number;
|
|
23
|
+
}
|
|
24
|
+
interface EventHeaderInfo {
|
|
25
|
+
headerName: string;
|
|
26
|
+
headerValue: string;
|
|
27
|
+
}
|
|
28
|
+
type CaptureEventFn = (info: EventPageInfo) => boolean;
|
|
29
|
+
type CaptureRequestHeaderFn = (info: EventPageInfo & EventRequestInfo & EventHeaderInfo) => boolean;
|
|
30
|
+
type CaptureResponseHeaderFn = (info: EventPageInfo & EventRequestInfo & EventHeaderInfo & EventResponseInfo) => boolean;
|
|
31
|
+
type CaptureRequestBodyFn = (info: EventPageInfo & EventRequestInfo) => boolean;
|
|
32
|
+
type CaptureRequestFn = (info: EventPageInfo & EventRequestInfo & Partial<EventResponseInfo>) => boolean;
|
|
33
|
+
type CaptureResponseBodyFn = (info: EventPageInfo & EventRequestInfo & EventResponseInfo) => boolean;
|
|
34
|
+
interface Identity {
|
|
35
|
+
identifier: string;
|
|
36
|
+
name?: string;
|
|
37
|
+
email?: string;
|
|
38
|
+
url?: string;
|
|
39
|
+
avatarUrl?: string;
|
|
40
|
+
}
|
|
41
|
+
type CustomContextObject = Record<string, string | number | boolean | null | undefined>;
|
|
42
|
+
interface CaptureClientOptions {
|
|
43
|
+
captureKey: string;
|
|
44
|
+
isEnabled?: boolean;
|
|
45
|
+
identity?: Identity | null;
|
|
46
|
+
context?: CustomContextObject;
|
|
47
|
+
onBeforeOpen?: () => boolean;
|
|
48
|
+
onOpen?: () => void;
|
|
49
|
+
onClose?: () => void;
|
|
50
|
+
captureEvent?: CaptureEventPreset | CaptureEventFn;
|
|
51
|
+
captureRequest?: CaptureEventPreset | CaptureRequestFn;
|
|
52
|
+
captureRequestBody?: CaptureEventPreset | CaptureRequestBodyFn;
|
|
53
|
+
captureResponseBody?: CaptureEventPreset | CaptureResponseBodyFn;
|
|
54
|
+
captureRequestHeader?: CaptureEventPreset | CaptureRequestHeaderFn;
|
|
55
|
+
captureResponseHeader?: CaptureEventPreset | CaptureResponseHeaderFn;
|
|
56
|
+
privacyOptions?: LegacyPrivacyPresetOptions;
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/logger/event-sink.d.ts
|
|
60
|
+
interface EventSinkLogOpts {
|
|
61
|
+
loggerType: EventLoggerType;
|
|
62
|
+
loggerMeta: EventLoggerMeta;
|
|
63
|
+
timestamp: number;
|
|
64
|
+
event: Uint8Array;
|
|
65
|
+
}
|
|
66
|
+
interface LogInternalErrorOpts {
|
|
67
|
+
loggerType: EventLoggerType;
|
|
68
|
+
loggerMeta: EventLoggerMeta;
|
|
69
|
+
error: unknown;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Base EventSink class used to register loggers and forward events to storage.
|
|
73
|
+
* The base sink does not implement any storage itself.
|
|
74
|
+
*/
|
|
75
|
+
declare class EventSink {
|
|
76
|
+
constructor();
|
|
77
|
+
log(_opts: EventSinkLogOpts): void;
|
|
78
|
+
log(_loggerType: EventLoggerType, _loggerMeta: EventLoggerMeta, _event: BaseEvent): void;
|
|
79
|
+
logInternalError: ({
|
|
80
|
+
loggerType,
|
|
81
|
+
loggerMeta,
|
|
82
|
+
error
|
|
83
|
+
}: LogInternalErrorOpts) => void;
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/logger/event-logger.d.ts
|
|
87
|
+
type BaseEvent = {
|
|
88
|
+
time: number;
|
|
89
|
+
[key: string]: unknown;
|
|
90
|
+
};
|
|
91
|
+
type EventLoggerType = "state" | "events";
|
|
92
|
+
type EventLoggerMeta = {
|
|
93
|
+
identifier: string;
|
|
94
|
+
name?: string;
|
|
95
|
+
version?: number;
|
|
96
|
+
};
|
|
97
|
+
declare class EventLogger<EventType extends BaseEvent = BaseEvent> {
|
|
98
|
+
type: EventLoggerType;
|
|
99
|
+
private sinks;
|
|
100
|
+
private queue;
|
|
101
|
+
private errorQueue;
|
|
102
|
+
meta: EventLoggerMeta;
|
|
103
|
+
initialize(meta: EventLoggerMeta): void;
|
|
104
|
+
registerSink(sink: EventSink): void;
|
|
105
|
+
logEvent: (event: EventType) => void;
|
|
106
|
+
logInternalError: (error: unknown) => void;
|
|
107
|
+
}
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/diff/diff-operations.types.d.ts
|
|
110
|
+
type AddOperation<T = unknown> = {
|
|
111
|
+
op: "add";
|
|
112
|
+
path: string[];
|
|
113
|
+
keyIndex: number;
|
|
114
|
+
value: T;
|
|
115
|
+
};
|
|
116
|
+
type RemoveOperation<T = unknown> = {
|
|
117
|
+
op: "remove";
|
|
118
|
+
path: string[];
|
|
119
|
+
keyIndex: number;
|
|
120
|
+
value: T;
|
|
121
|
+
};
|
|
122
|
+
type ReplaceOperation<T = unknown> = {
|
|
123
|
+
op: "replace";
|
|
124
|
+
path: string[];
|
|
125
|
+
keyIndex: number;
|
|
126
|
+
from: T;
|
|
127
|
+
to: T;
|
|
128
|
+
};
|
|
129
|
+
type DiffOperation<T = unknown> = AddOperation<T> | RemoveOperation<T> | ReplaceOperation<T>;
|
|
130
|
+
type DiffType = DiffOperation["op"];
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/logger/state-logger.d.ts
|
|
133
|
+
interface StateLoggerMeta extends EventLoggerMeta {
|
|
134
|
+
stateLabel?: string;
|
|
135
|
+
contextLabel?: string;
|
|
136
|
+
}
|
|
137
|
+
interface StatePatchEvent<ValueType = unknown> extends BaseEvent {
|
|
138
|
+
liid: string;
|
|
139
|
+
type: "patch";
|
|
140
|
+
label?: string;
|
|
141
|
+
ops: DiffOperation<ValueType>[];
|
|
142
|
+
extra?: ValueType;
|
|
143
|
+
}
|
|
144
|
+
interface StateSnapshotEvent<ValueType = unknown> extends BaseEvent {
|
|
145
|
+
type: "snapshot";
|
|
146
|
+
liid: string;
|
|
147
|
+
value: ValueType;
|
|
148
|
+
}
|
|
149
|
+
interface LogStateOpts {
|
|
150
|
+
label?: string;
|
|
151
|
+
extra?: unknown;
|
|
152
|
+
}
|
|
153
|
+
type StateEvent<ValueType = unknown> = StatePatchEvent<ValueType> | StateSnapshotEvent<ValueType>;
|
|
154
|
+
interface StateLoggerOpts<State = unknown> {
|
|
155
|
+
initialState?: State;
|
|
156
|
+
}
|
|
157
|
+
declare class StateLogger extends EventLogger<StateEvent> {
|
|
158
|
+
readonly type: EventLoggerType;
|
|
159
|
+
readonly liid: string;
|
|
160
|
+
private patchesSinceLastSnapshot;
|
|
161
|
+
private previousState;
|
|
162
|
+
readonly meta: StateLoggerMeta;
|
|
163
|
+
constructor({
|
|
164
|
+
initialState
|
|
165
|
+
}?: StateLoggerOpts);
|
|
166
|
+
logState(state: unknown, {
|
|
167
|
+
label,
|
|
168
|
+
extra
|
|
169
|
+
}?: LogStateOpts): void;
|
|
170
|
+
takeSnapshot(): void;
|
|
171
|
+
private logSnapshot;
|
|
172
|
+
}
|
|
173
|
+
//#endregion
|
|
174
|
+
export { CaptureResponseBodyFn as C, LegacyPrivacyPresetOptions as D, Identity as E, CaptureRequestHeaderFn as S, CustomContextObject as T, CaptureClientOptions as _, StateSnapshotEvent as a, CaptureRequestBodyFn as b, DiffType as c, BaseEvent as d, EventLogger as f, EventSinkLogOpts as g, EventSink as h, StatePatchEvent as i, RemoveOperation as l, EventLoggerType as m, StateLogger as n, AddOperation as o, EventLoggerMeta as p, StateLoggerMeta as r, DiffOperation as s, StateEvent as t, ReplaceOperation as u, CaptureEventFn as v, CaptureResponseHeaderFn as w, CaptureRequestFn as x, CaptureEventPreset as y };
|
package/package.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@capture.dev/core",
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"homepage": "https://capture.dev",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"development": "./src/index.ts",
|
|
11
|
+
"require": "./dist/index.cjs",
|
|
12
|
+
"import": "./dist/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"./internal": {
|
|
15
|
+
"development": "./src/index-internal.ts",
|
|
16
|
+
"require": "./dist/internal.cjs",
|
|
17
|
+
"import": "./dist/internal.mjs"
|
|
18
|
+
},
|
|
19
|
+
"./package.json": "./package.json"
|
|
20
|
+
},
|
|
21
|
+
"main": "./dist/index.cjs",
|
|
22
|
+
"module": "./dist/index.mjs",
|
|
23
|
+
"types": "./dist/index.d.cts",
|
|
24
|
+
"files": [
|
|
25
|
+
"dist/**",
|
|
26
|
+
"CHANGELOG.md"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsdown",
|
|
30
|
+
"clean": "rimraf dist",
|
|
31
|
+
"lint": "eslint",
|
|
32
|
+
"lint:fix": "npm run lint -- --fix",
|
|
33
|
+
"test": "vitest run"
|
|
34
|
+
},
|
|
35
|
+
"lint-staged": {
|
|
36
|
+
"**/*.{ts,tsx,js,json}": [
|
|
37
|
+
"eslint --fix",
|
|
38
|
+
"prettier --write"
|
|
39
|
+
],
|
|
40
|
+
"**/*.{md,css,html}": "prettier --write"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@capture/eslint-config": "*",
|
|
44
|
+
"@capture/tsdown-config": "*",
|
|
45
|
+
"@capture/vitest-config": "*",
|
|
46
|
+
"cbor-x": "^1.6.0",
|
|
47
|
+
"eslint": "^9.29.0",
|
|
48
|
+
"tsdown": "^0.20.1",
|
|
49
|
+
"typescript": "^5.9.3",
|
|
50
|
+
"vitest": "^4.0.18",
|
|
51
|
+
"vitest-cbor": "^1.1.2"
|
|
52
|
+
},
|
|
53
|
+
"volta": {
|
|
54
|
+
"extends": "../../package.json"
|
|
55
|
+
},
|
|
56
|
+
"publishConfig": {
|
|
57
|
+
"exports": {
|
|
58
|
+
".": {
|
|
59
|
+
"require": "./dist/index.cjs",
|
|
60
|
+
"import": "./dist/index.mjs"
|
|
61
|
+
},
|
|
62
|
+
"./internal": {
|
|
63
|
+
"require": "./dist/internal.cjs",
|
|
64
|
+
"import": "./dist/internal.mjs"
|
|
65
|
+
},
|
|
66
|
+
"./package.json": "./package.json"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|