@sailfish-ai/sf-veritas 0.1.19 → 0.1.20-alpha0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sf-veritas.cjs +7 -7
- package/dist/sf-veritas.mjs +37 -37
- package/package.json +2 -1
package/dist/sf-veritas.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var E=Object.defineProperty;var L=(o,e,i)=>e in o?E(o,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):o[e]=i;var c=(o,e,i)=>L(o,typeof e!="symbol"?e+"":e,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("async_hooks")
|
|
1
|
+
"use strict";var E=Object.defineProperty;var L=(o,e,i)=>e in o?E(o,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):o[e]=i;var c=(o,e,i)=>L(o,typeof e!="symbol"?e+"":e,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("async_hooks"),$=require("worker_threads"),A=[];for(let o=0;o<256;++o)A.push((o+256).toString(16).slice(1));let H;const F=new Uint8Array(16),X={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function G(o,e,i){if(X.randomUUID&&!o)return X.randomUUID();const t=(o=o||{}).random??o.rng?.()??function(){if(!H){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");H=crypto.getRandomValues.bind(crypto)}return H(F)}();if(t.length<16)throw new Error("Random bytes length must be >= 16");return t[6]=15&t[6]|64,t[8]=63&t[8]|128,function(n,s=0){return(A[n[s+0]]+A[n[s+1]]+A[n[s+2]]+A[n[s+3]]+"-"+A[n[s+4]]+A[n[s+5]]+"-"+A[n[s+6]]+A[n[s+7]]+"-"+A[n[s+8]]+A[n[s+9]]+"-"+A[n[s+10]]+A[n[s+11]]+A[n[s+12]]+A[n[s+13]]+A[n[s+14]]+A[n[s+15]]).toLowerCase()}(t)}class T{constructor(e){c(this,"apiKey");c(this,"apiGraphqlEndpoint");c(this,"sfDebug");c(this,"serviceIdentifier");c(this,"serviceVersion");c(this,"serviceUUID");c(this,"serviceAdditionalMetadata");c(this,"profilingModeEnabled");c(this,"profilingMaxDepth");c(this,"profilingMaxVariableSizeKb");c(this,"domainsToNotPropagateHeadersTo");c(this,"nodeModulesToCollectLocalVariablesOn");c(this,"printConfigurationStatuses");c(this,"logLevel");c(this,"stackDepthLocals");c(this,"stackDepthCodeTraceDepth");c(this,"packageLibraryType");c(this,"version");c(this,"_serviceIdentificationReceived",!1);this.apiKey=e.apiKey,this.apiGraphqlEndpoint=e?.apiGraphqlEndpoint||process.env.SAILFISH_GRAPHQL_ENDPOINT||"https://api-service.sailfishqa.com/graphql/",this.sfDebug=e?.debug===!0||process.env.SF_DEBUG==="true",this.serviceIdentifier=e?.serviceIdentifier||process.env.SERVICE_IDENTIFIER,this.serviceUUID=G(),this.serviceVersion=e?.serviceVersion||process.env.SERVICE_VERSION,this.serviceAdditionalMetadata=e?.serviceAdditionalMetadata||{},this.profilingModeEnabled=e?.profilingModeEnabled??!1,this.profilingMaxDepth=e?.profilingMaxDepth??5,this.profilingMaxVariableSizeKb=e?.profilingMaxVariableSizeKb??25,this.domainsToNotPropagateHeadersTo=e?.domainsToNotPropagateHeadersTo||[],this.nodeModulesToCollectLocalVariablesOn=e?.nodeModulesToCollectLocalVariablesOn||[],this.printConfigurationStatuses=process.env.PRINT_CONFIGURATION_STATUSES||"true",this.logLevel=process.env.LOG_LEVEL||"INFO",this.stackDepthLocals=process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS!==void 0?parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS,10):5,isNaN(this.stackDepthLocals)&&(this.stackDepthLocals=-1),this.stackDepthCodeTraceDepth=process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH!==void 0?parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH,10):-1,isNaN(this.stackDepthCodeTraceDepth)&&(this.stackDepthCodeTraceDepth=-1),this.packageLibraryType="NEXT JS/TS",this.version=this.getPackageVersion()}getPackageVersion(){return"0.1.14"}get serviceIdentificationReceived(){return this._serviceIdentificationReceived}setServiceIdentificationReceived(e){this._serviceIdentificationReceived=e}}let W;function r(){if(!W)throw new Error("Configuration has not been initialized.");return W}new U.AsyncLocalStorage;const J=new U.AsyncLocalStorage,R={handledExceptions:new Set,reentrancyGuardLoggingActive:!1,reentrancyGuardLoggingPreActive:!1,reentrancyGuardPrintActive:!1,reentrancyGuardPrintPreActive:!1,reentrancyGuardExceptionActive:!1,reentrancyGuardExceptionPreActive:!1},y=class y{constructor(){}static getInstance(){return y.instance||(y.instance=new y),y.instance}getCurrentContext(){return J.getStore()||R}setCurrentContext(e){const i=J.getStore()||R;J.enterWith({...i,...e})}getTraceId(){return this.getCurrentContext().traceId}setTraceId(e){this.setCurrentContext({traceId:e})}getOrSetSfTraceId(e,i=!1){let t=this.getTraceId();return t||(t=e||(i?G():`nonsession-applogs-v3/${r().apiKey}/${G()}`),this.setTraceId(t),r().sfDebug&&console.log(" Created new trace ID:",t),t)}getHandledExceptions(){return this.getCurrentContext().handledExceptions}markExceptionHandled(e){const i=this.getHandledExceptions();i.add(e),this.setCurrentContext({handledExceptions:i})}hasHandledException(e){return this.getHandledExceptions().has(e)}resetHandledExceptions(){this.setCurrentContext({handledExceptions:new Set})}};c(y,"instance");let S=y;class V{constructor(){c(this,"apiKey");c(this,"endpoint");c(this,"queryType","mutation");c(this,"operationName","");c(this,"serviceUUID",r().serviceUUID);c(this,"contextManager");this.apiKey=r().apiKey,this.endpoint=r().apiGraphqlEndpoint,this.contextManager=S.getInstance()}get queryName(){return this.operationName?this.operationName.charAt(0).toLowerCase()+this.operationName.slice(1):""}getDefaultVariables(){const e=Date.now().toString(),i=this.contextManager.getOrSetSfTraceId();return{apiKey:this.apiKey,serviceUuid:this.serviceUUID,sessionId:i,timestampMs:e}}getVariables(e={}){return{...this.getDefaultVariables(),...e}}setOperationName(e){this.operationName=e}setEndpoint(e){this.endpoint=e}setServiceUUID(e){this.serviceUUID=e}}const z=fetch;async function Z(o,e,i,t){try{const n=r();let s;try{s=JSON.stringify({query:i,variables:t,operationName:e})}catch{s=JSON.stringify({query:i,operationName:e})}z(o,{method:"POST",headers:{"Content-Type":"application/json"},body:s}).then(async a=>{if(!a.ok)return void(n.sfDebug&&console.error(`GraphQL request failed with status ${a.status} for ${e}`));const d=await a.json();d.errors?.length?function(I,C,l){const g=I&&typeof I=="object"&&!Array.isArray(I)?Object.keys(I)[0]:void 0;console.error(g==="identifyServiceDetails"?`IdentifyServiceDetails NOT sent successfully for service: UUID=${l.serviceUUID}`:`GraphQL request failed with errors: ${JSON.stringify(C)} for operation key ${g}`)}(d.data,d.errors,n):n.sfDebug&&function(I,C,l){const g=I&&typeof I=="object"&&!Array.isArray(I)?Object.keys(I)[0]:void 0,p=I[g]||!1;g==="identifyServiceDetails"&&(l.setServiceIdentificationReceived(p),r().sfDebug&&console.log(`IdentifyServiceDetails sent successfully for service: UUID=${l.serviceUUID}; serviceIdentificationReceived=${g==="identifyServiceDetails"?p:"N/A"}`))}(d.data,0,n)}).catch(a=>{n.sfDebug&&console.error("Fetch error:",a)})}catch(n){r().sfDebug&&console.error("Error sending data to GraphQL server:",n)}}class w extends V{constructor(){super(),this.setOperationName("IdentifyServiceDetails")}async doSend(e){if(!r().serviceIdentificationReceived)try{this.send()}catch(i){r().sfDebug&&console.error(" Error during service identification:",i)}}async send(){const e=`
|
|
2
2
|
${this.queryType} ${this.operationName}(
|
|
3
3
|
$apiKey: String!,
|
|
4
4
|
$timestampMs: String!,
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
version: $version,
|
|
21
21
|
)
|
|
22
22
|
}
|
|
23
|
-
`,i=this.getVariables({serviceIdentifier:r().serviceIdentifier,serviceVersion:r().serviceVersion,library:r().packageLibraryType,version:r().version,serviceAdditionalMetadata:r().serviceAdditionalMetadata});Z(this.endpoint,this.operationName,e,i)}}function k(o){try{return JSON.stringify(o),!0}catch{return!1}}class O extends
|
|
23
|
+
`,i=this.getVariables({serviceIdentifier:r().serviceIdentifier,serviceVersion:r().serviceVersion,library:r().packageLibraryType,version:r().version,serviceAdditionalMetadata:r().serviceAdditionalMetadata});Z(this.endpoint,this.operationName,e,i)}}function k(o){try{return JSON.stringify(o),!0}catch{return!1}}class O extends V{constructor(){super();c(this,"serviceIdentifier",new w);this.setOperationName("CollectMetadata")}async sendAppIdentifier(){this.serviceIdentifier.doSend({})}async doSend(i,t,n,s){this.sendAppIdentifier(),this.send(i,t,n,s)}async send(i,t,n,s){if(!t&&!s)throw new Error('Must pass in either traits or traits_json to "add_or_update_traits"');let a=[];if(!s){const I=function(C){const l={},g=[];if(C)for(const[p,h]of Object.entries(C))k(h)?l[p]=h:g.push(p);return{traitsJson:JSON.stringify(l),excludedFields:g}}(t);s=I.traitsJson,a=I.excludedFields}const d=this.getVariables({userId:i,traitsJson:s,excludedFields:a,override:n,library:r().packageLibraryType,version:r().version});Z(this.endpoint,this.operationName,this.getQuery(),d)}getQuery(){return`
|
|
24
24
|
mutation ${this.operationName}($apiKey: String!, $serviceUuid: String!, $sessionId: String!, $userId: String!, $traitsJson: String!, $excludedFields: [String!]!, $library: String!, $timestampMs: String!, $version: String!, $override: Boolean!) {
|
|
25
25
|
${this.queryName}(apiKey: $apiKey, serviceUuid: $serviceUuid, sessionId: $sessionId, userId: $userId, traitsJson: $traitsJson, excludedFields: $excludedFields, library: $library, timestampMs: $timestampMs, version: $version, override: $override)
|
|
26
26
|
}
|
|
27
|
-
`}}class D{constructor(e){c(this,"metadataTransmitter");this.apiKey=e,this.metadataTransmitter=new O}identify(e,i,t,n=!1){i||t?this.addOrUpdateMetadata(e,i,t,n):this.addOrUpdateMetadata(e,{},void 0,n)}addOrUpdateMetadata(e,i={},t,n=!1){if(!i&&!t)throw new Error('Must pass in either traits or traitsJson to "addOrUpdateMetadata"');r().sfDebug&&console.log(" [[DEBUG - addOrUpdateMetadata]] Starting operation"),r().sfDebug&&console.log(" addOrUpdateMetadata...SENDING DATA...",e,i,t),this.metadataTransmitter.doSend(e,i,n,t)}}class K extends
|
|
27
|
+
`}}class D{constructor(e){c(this,"metadataTransmitter");this.apiKey=e,this.metadataTransmitter=new O}identify(e,i,t,n=!1){i||t?this.addOrUpdateMetadata(e,i,t,n):this.addOrUpdateMetadata(e,{},void 0,n)}addOrUpdateMetadata(e,i={},t,n=!1){if(!i&&!t)throw new Error('Must pass in either traits or traitsJson to "addOrUpdateMetadata"');r().sfDebug&&console.log(" [[DEBUG - addOrUpdateMetadata]] Starting operation"),r().sfDebug&&console.log(" addOrUpdateMetadata...SENDING DATA...",e,i,t),this.metadataTransmitter.doSend(e,i,n,t)}}class K extends V{constructor(){super();c(this,"serviceIdentifier",new w)}async sendAppIdentifier(){this.serviceIdentifier.doSend({})}async doSend(i){this.sendAppIdentifier(),this.send(i)}async send(i){try{const t=Array.isArray(i)?i:[i,"default"],n=this.getVariables({contents:t[0],level:t[1]});Z(this.endpoint,this.operationName,this.getQuery(),n)}catch(t){r().sfDebug&&console.error("🚨 Error in send():",t)}}getQuery(){return`
|
|
28
28
|
${this.queryType} ${this.operationName}($apiKey: String!, $serviceUuid: String!, $sessionId: String!, $timestampMs: String!, $level: String!, $contents: String!) {
|
|
29
29
|
${this.queryName}(apiKey: $apiKey, serviceUuid: $serviceUuid, sessionId: $sessionId, timestampMs: $timestampMs, level: $level, contents: $contents)
|
|
30
30
|
}
|
|
31
|
-
`}}class f{constructor({file:e,line:i,function:t,code:n,locals:s={},offender:a=!1}){c(this,"file");c(this,"line");c(this,"function");c(this,"code");c(this,"locals");c(this,"offender");this.file=e,this.line=i,this.function=t,this.code=n,this.locals=s,this.offender=a}toDict(){const e={file:this.file,line:this.line,function:this.function,code:this.code,locals:Object.fromEntries(Object.entries(this.locals).map(([i,t])=>[i,String(t)]))};return this.offender&&(e.offender=this.offender),e}toJson(){return JSON.stringify(this.toDict())}}class B{static encode(e){return e instanceof f?e.toDict():Array.isArray(e)?e.map(i=>B.encode(i)):typeof e=="object"&&e!==null?JSON.stringify(e):e}static stringify(e){return JSON.stringify(B.encode(e),(i,t)=>t instanceof f?t.toDict():t)}}let v=0;function M(o){r().sfDebug&&console.log("Initializing Exception Interceptor...");const e=new F.Worker(new URL("data:application/javascript;base64,aW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gImluc3BlY3Rvci9wcm9taXNlcyI7CmltcG9ydCB7IHBhcmVudFBvcnQsIHdvcmtlckRhdGEgfSBmcm9tICJ3b3JrZXJfdGhyZWFkcyI7CgpnbG9iYWwuc2ZEZWJ1ZyA9IHVuZGVmaW5lZDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB1bmRlZmluZWQ7Cmdsb2JhbC5lcnJvcklkID0gdW5kZWZpbmVkOwpnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uID0gdW5kZWZpbmVkOwoKLyoqCiAqIEhhbmRsZXMgdGhlICJwYXVzZWQiIHN0YXRlIG9mIHRoZSBkZWJ1Z2dlciBhbmQgcHJvY2Vzc2VzIGV4Y2VwdGlvbnMgb3IgcHJvbWlzZSByZWplY3Rpb25zLgogKiBAcGFyYW0ge1Nlc3Npb259IHNlc3Npb24gLSBUaGUgZGVidWdnaW5nIHNlc3Npb24gaW5zdGFuY2UuCiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZyb20gdGhlICJwYXVzZWQiIGV2ZW50LgogKi8KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKHNlc3Npb24sIHBhcmFtcykgewogIGNvbnN0IHsgcmVhc29uLCBkYXRhLCBjYWxsRnJhbWVzIH0gPSBwYXJhbXM7CgogIGlmIChyZWFzb24gIT09ICJleGNlcHRpb24iICYmIHJlYXNvbiAhPT0gInByb21pc2VSZWplY3Rpb24iKSB7CiAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgZXJyb3JJZCA9IGdsb2JhbD8uZXJyb3JJZDsKCiAgY29uc3QgbGltaXRlZENhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOwoKICBjb25zdCBmcmFtZXMgPSBhd2FpdCBQcm9taXNlLmFsbCgKICAgIGxpbWl0ZWRDYWxsRnJhbWVzLm1hcChhc3luYyAoZnJhbWUpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCB7IGZ1bmN0aW9uTmFtZSwgbG9jYXRpb24sIHVybCwgc2NvcGVDaGFpbiB9ID0gZnJhbWU7CiAgICAgICAgY29uc3QgbG9jYWxTY29wZSA9IHNjb3BlQ2hhaW4uZmluZCgoc2NvcGUpID0+IHNjb3BlLnR5cGUgPT09ICJsb2NhbCIpOwoKICAgICAgICBsZXQgY29kZSA9ICI8bm90IGNhcHR1cmVkPiI7CiAgICAgICAgbGV0IGZpbGUgPSB1cmwgfHwgIjx1bmtub3duPiI7CiAgICAgICAgaWYgKGxvY2F0aW9uICYmIGxvY2F0aW9uLnNjcmlwdElkKSB7CiAgICAgICAgICBjb25zdCBzY3JpcHRJZCA9IGxvY2F0aW9uLnNjcmlwdElkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgeyBzY3JpcHRTb3VyY2UgfSA9IGF3YWl0IHNlc3Npb24ucG9zdCgKICAgICAgICAgICAgICAiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICB7IHNjcmlwdElkIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc2NyaXB0U291cmNlLnNwbGl0KCJcbiIpOwogICAgICAgICAgICBjb2RlID0gc291cmNlTGluZXNbbG9jYXRpb24ubGluZU51bWJlcl0gfHwgIjxub3QgY2FwdHVyZWQ+IjsKICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IHNvdXJjZToiLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb25zdCBsb2NhbHMgPSBsb2NhbFNjb3BlPy5vYmplY3Q/Lm9iamVjdElkCiAgICAgICAgICA/IGF3YWl0IGZldGNoTG9jYWxWYXJpYWJsZXMoc2Vzc2lvbiwgbG9jYWxTY29wZS5vYmplY3Qub2JqZWN0SWQpCiAgICAgICAgICA6IHt9OwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iLAogICAgICAgICAgbG9jYWxzLAogICAgICAgICAgZmlsZSwKICAgICAgICAgIGxpbmU6IGxvY2F0aW9uPy5saW5lTnVtYmVyIHx8IDAsCiAgICAgICAgICBjb2RlLAogICAgICAgIH07CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBFcnJvciBwcm9jZXNzaW5nIGNhbGwgZnJhbWU6IiwgZXJyb3IpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgZnVuY3Rpb246ICI8ZXJyb3I+IiwKICAgICAgICAgIGxvY2Fsczoge30sCiAgICAgICAgICBmaWxlOiAiPHVua25vd24+IiwKICAgICAgICAgIGxpbmU6IDAsCiAgICAgICAgICBjb2RlOiAiPG5vdCBjYXB0dXJlZD4iLAogICAgICAgIH07CiAgICAgIH0KICAgIH0pLAogICk7CgogIC8vIFBvc3QgZXhjZXB0aW9uIGRhdGEgYWxvbmcgd2l0aCB0aGUgZXJyb3JJZAogIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogImV4Y2VwdGlvbiIsIGVycm9ySWQsIGZyYW1lcyB9KTsKfQoKLyoqCiAqIEluaXRpYWxpemVzIHRoZSBkZWJ1Z2dlciBhbmQgc2V0cyB1cCBldmVudCBsaXN0ZW5lcnMgZm9yIGV4Y2VwdGlvbnMgYW5kIHByb21pc2UgcmVqZWN0aW9ucy4KICovCmFzeW5jIGZ1bmN0aW9uIHN0YXJ0RGVidWdnZXIoKSB7CiAgcGFyZW50UG9ydD8ucG9zdE1lc3NhZ2UoeyB0eXBlOiAibWVzc2FnZSIsIHJlYWR5VG9HZXRQYXJhbWV0ZXJzOiB0cnVlIH0pOwoKICBsZXQgcmVzb2x2ZU1lc3NhZ2VQcm9taXNlOwogIGNvbnN0IG1lc3NhZ2VQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgIHJlc29sdmVNZXNzYWdlUHJvbWlzZSA9IHJlc29sdmU7CiAgfSk7CiAgbGV0IGlzUGF1c2VkID0gZmFsc2U7CgogIHBhcmVudFBvcnQ/Lm9uKCJtZXNzYWdlIiwgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGlmIChtZXNzYWdlPy50eXBlID09PSAicHJvY2Vzc0V4Y2VwdGlvbiIpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICgKICAgICAgICBtZXNzYWdlPy5zZkRlYnVnICE9PSB1bmRlZmluZWQgJiYKICAgICAgICBtZXNzYWdlPy5zdGFja0RlcHRoTG9jYWxzICE9PSB1bmRlZmluZWQKICAgICAgKSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiVXBkYXRpbmcgZ2xvYmFsIGRlYnVnIHZhcmlhYmxlcy4uLiIpOwogICAgICAgIH0KCiAgICAgICAgZ2xvYmFsLnNmRGVidWcgPSBtZXNzYWdlLnNmRGVidWc7CiAgICAgICAgZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSBtZXNzYWdlLnN0YWNrRGVwdGhMb2NhbHM7CiAgICAgICAgZ2xvYmFsLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbiA9CiAgICAgICAgICBtZXNzYWdlLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbjsKCiAgICAgICAgcmVzb2x2ZU1lc3NhZ2VQcm9taXNlKCk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgIGNvbnNvbGUuZXJyb3IoIuKdjCBFcnJvciBpbiBtZXNzYWdlIGhhbmRsaW5nOiIsIGVycm9yKTsKICAgICAgfQogICAgfQogIH0pOwoKICBhd2FpdCBtZXNzYWdlUHJvbWlzZTsKCiAgdHJ5IHsKICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbigpOwogICAgc2Vzc2lvbi5jb25uZWN0VG9NYWluVGhyZWFkKCk7CgogICAgc2Vzc2lvbi5vbigiRGVidWdnZXIucmVzdW1lZCIsICgpID0+IHsKICAgICAgaXNQYXVzZWQgPSBmYWxzZTsKICAgIH0pOwoKICAgIHNlc3Npb24ub24oIkRlYnVnZ2VyLnBhdXNlZCIsIGFzeW5jIChldmVudCkgPT4gewogICAgICBpc1BhdXNlZCA9IHRydWU7CiAgICAgIGhhbmRsZVBhdXNlZChzZXNzaW9uLCBldmVudC5wYXJhbXMpLnRoZW4oCiAgICAgICAgYXN5bmMgKCkgPT4gewogICAgICAgICAgLy8gQWZ0ZXIgdGhlIHBhdXNlIHdvcmsgaXMgY29tcGxldGUsIHJlc3VtZSBleGVjdXRpb24hCiAgICAgICAgICBpZiAoaXNQYXVzZWQpIHsKICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGFzeW5jIChfKSA9PiB7CiAgICAgICAgICBpZiAoaXNQYXVzZWQpIHsKICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICApOwogICAgfSk7CgogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTsKCiAgICBjb25zdCBjYXB0dXJlQWxsID0gd29ya2VyRGF0YS5jYXB0dXJlQWxsRXhjZXB0aW9ucyAhPT0gZmFsc2U7CiAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwgewogICAgICBzdGF0ZTogY2FwdHVyZUFsbCA/ICJhbGwiIDogInVuY2F1Z2h0IiwKICAgIH0pOwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gZXJyb3IgIiwgZXJyb3IpOwogICAgfQogIH0KCiAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICBjb25zb2xlLmxvZygiW1dvcmtlcl0gRGVidWdnZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkuIik7CiAgfQp9Cgphc3luYyBmdW5jdGlvbiB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgfSk7CgogIHZhcnNbbmFtZV0gPSBwcm9wZXJ0aWVzLnJlc3VsdAogICAgLm1hcCgodikgPT4gW3YubmFtZSwgdi52YWx1ZT8udmFsdWVdKQogICAgLnJlZHVjZSgob2JqLCBba2V5LCB2YWxdKSA9PiB7CiAgICAgIG9ialtrZXldID0gdmFsOwogICAgICByZXR1cm4gb2JqOwogICAgfSwge30pOwp9Cgphc3luYyBmdW5jdGlvbiB1bnJvbGxBcnJheShzZXNzaW9uLCBvYmplY3RJZCwgbmFtZSwgdmFycykgewogIGNvbnN0IHByb3BlcnRpZXMgPSBhd2FpdCBzZXNzaW9uLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIsIHsKICAgIG9iamVjdElkOiBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgfSk7CiAgdmFyc1tuYW1lXSA9IHByb3BlcnRpZXMucmVzdWx0CiAgICAuZmlsdGVyKCh2KSA9PiB2Lm5hbWUgIT09ICJsZW5ndGgiICYmICFpc05hTihwYXJzZUludCh2Lm5hbWUsIDEwKSkpCiAgICAuc29ydCgoYSwgYikgPT4gcGFyc2VJbnQoYS5uYW1lLCAxMCkgLSBwYXJzZUludChiLm5hbWUsIDEwKSkKICAgIC5tYXAoKHYpID0+IHYudmFsdWU/LnZhbHVlKTsKfQoKZnVuY3Rpb24gdW5yb2xsT3RoZXIocHJvcCwgdmFycykgewogIGlmICghcHJvcC52YWx1ZSkgewogICAgcmV0dXJuOwogIH0KCiAgaWYgKCJ2YWx1ZSIgaW4gcHJvcC52YWx1ZSkgewogICAgaWYgKHByb3AudmFsdWUudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBwcm9wLnZhbHVlLnZhbHVlID09PSBudWxsKSB7CiAgICAgIHZhcnNbcHJvcC5uYW1lXSA9IGA8JHtwcm9wLnZhbHVlLnZhbHVlfT5gOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyc1twcm9wLm5hbWVdID0gcHJvcC52YWx1ZS52YWx1ZTsKICAgIHJldHVybjsKICB9CgogIGlmICgiZGVzY3JpcHRpb24iIGluIHByb3AudmFsdWUgJiYgcHJvcC52YWx1ZS50eXBlICE9PSAiZnVuY3Rpb24iKSB7CiAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS5kZXNjcmlwdGlvbn0+YDsKICAgIHJldHVybjsKICB9CgogIGlmIChwcm9wLnZhbHVlLnR5cGUgPT09ICJ1bmRlZmluZWQiKSB7CiAgICB2YXJzW3Byb3AubmFtZV0gPSAiPHVuZGVmaW5lZD4iOwogICAgcmV0dXJuOwogIH0KfQoKLyoqCiAqIEZldGNoZXMgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIGdpdmVuIG9iamVjdCBJRC4KICogQHBhcmFtIHtTZXNzaW9ufSBzZXNzaW9uIC0gVGhlIGRlYnVnZ2luZyBzZXNzaW9uIGluc3RhbmNlLgogKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0SWQgLSBUaGUgb2JqZWN0IElEIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgc2NvcGUuCiAqIEByZXR1cm5zIHtvYmplY3R9IEEga2V5LXZhbHVlIG1hcCBvZiBsb2NhbCB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlaXIgdmFsdWVzLgogKi8KYXN5bmMgZnVuY3Rpb24gZmV0Y2hMb2NhbFZhcmlhYmxlcyhzZXNzaW9uLCBvYmplY3RJZCkgewogIGlmICghb2JqZWN0SWQpIHJldHVybiB7fTsKCiAgdHJ5IHsKICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCBzZXNzaW9uLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIsIHsKICAgICAgb2JqZWN0SWQsCiAgICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgICB9KTsKCiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVzdWx0OwogICAgaWYgKHByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgdmFyaWFibGVzID0ge307CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJiBwcm9wPy52YWx1ZS5jbGFzc05hbWUgPT09ICJBcnJheSIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbEFycmF5KHNlc3Npb24sIGlkLCBwcm9wLm5hbWUsIHZhcmlhYmxlcyk7CiAgICAgICAgfSBlbHNlIGlmICgKICAgICAgICAgIHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJgogICAgICAgICAgcHJvcD8udmFsdWU/LmNsYXNzTmFtZSA9PT0gIk9iamVjdCIKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbE9iamVjdChzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAocHJvcD8udmFsdWUpIHsKICAgICAgICAgIHVucm9sbE90aGVyKHByb3AsIHZhcmlhYmxlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YXJpYWJsZXM7CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIGZldGNoIGxvY2FsIHZhcmlhYmxlczoiLCBlcnIpOwogICAgfQogICAgcmV0dXJuIHt9OwogIH0KfQoKc3RhcnREZWJ1Z2dlcigpLmNhdGNoKChlcnJvcikgPT4gewogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIHN0YXJ0IGRlYnVnZ2VyOiIsIGVycm9yKTsKICB9Cn0pOwoKLy8gS2VlcCB0aGUgd29ya2VyIGFsaXZlCnNldEludGVydmFsKCgpID0+IHt9LCAxMDAwMCk7Cg=="),{workerData:{captureAllExceptions:!0}});let i=null;e.on("message",a=>{if(typeof a=="string"&&r().sfDebug&&console.log(`[Worker] ${a}`),a.readyToGetParameters&&e.postMessage({sfDebug:r().sfDebug,stackDepthLocals:r().stackDepthLocals,nodeModulesToCollectLocalVariablesOn:r().nodeModulesToCollectLocalVariablesOn}),a.type==="exception"){const{frames:d}=a,I=i;if(!I)return;const C=function(l,g){const p=[];let h=-1,N=-1;for(let u=0;u<l.length;u++){const m=P(l[u].file);if(N=u,m!=="<unknown>"){for(let b=0;b<g.length;b++){const V=g[b];if(x(V,m)||typeof V.file=="string"&&V.file.includes(m)){h=b,v=0,r().sfDebug&&console.log(`✅ Matched Frame Found: ${m} @ Debugger Frame ${b}`);break}}if(h!==-1)break}}if(h===-1)return v===10?(v=0,l):(++v,r().sfDebug&&console.log(`"❌ No matching frame found. Checking once again, Attempt N ${v}"`),[]);r().sfDebug&&console.log(`🔄 Merging from matched index ${h} onward...`);for(let u=0;u<g.length;u++){const m=l[N+u],b=g[h+u];p.push(new f({function:b?.function||m?.function||"<anonymous>",locals:b?.locals||m?.locals||{},file:m?.file||b?.file||"<unknown>",line:b?.line||m?.line||0,code:m?.code||b?.code||"<not captured>"}))}return p}(function(l){return l?l.split(`
|
|
31
|
+
`}}class f{constructor({file:e,line:i,function:t,code:n,locals:s={},offender:a=!1}){c(this,"file");c(this,"line");c(this,"function");c(this,"code");c(this,"locals");c(this,"offender");this.file=e,this.line=i,this.function=t,this.code=n,this.locals=s,this.offender=a}toDict(){const e={file:this.file,line:this.line,function:this.function,code:this.code,locals:Object.fromEntries(Object.entries(this.locals).map(([i,t])=>[i,String(t)]))};return this.offender&&(e.offender=this.offender),e}toJson(){return JSON.stringify(this.toDict())}}class B{static encode(e){return e instanceof f?e.toDict():Array.isArray(e)?e.map(i=>B.encode(i)):typeof e=="object"&&e!==null?JSON.stringify(e):e}static stringify(e){return JSON.stringify(B.encode(e),(i,t)=>t instanceof f?t.toDict():t)}}let v=0;function M(o){r().sfDebug&&console.log("Initializing Exception Interceptor...");const e=new $.Worker(new URL("data:application/javascript;base64,aW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gImluc3BlY3Rvci9wcm9taXNlcyI7CmltcG9ydCB7IHBhcmVudFBvcnQsIHdvcmtlckRhdGEgfSBmcm9tICJ3b3JrZXJfdGhyZWFkcyI7CgpnbG9iYWwuc2ZEZWJ1ZyA9IHVuZGVmaW5lZDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB1bmRlZmluZWQ7Cmdsb2JhbC5lcnJvcklkID0gdW5kZWZpbmVkOwpnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uID0gdW5kZWZpbmVkOwoKLyoqCiAqIEhhbmRsZXMgdGhlICJwYXVzZWQiIHN0YXRlIG9mIHRoZSBkZWJ1Z2dlciBhbmQgcHJvY2Vzc2VzIGV4Y2VwdGlvbnMgb3IgcHJvbWlzZSByZWplY3Rpb25zLgogKiBAcGFyYW0ge1Nlc3Npb259IHNlc3Npb24gLSBUaGUgZGVidWdnaW5nIHNlc3Npb24gaW5zdGFuY2UuCiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZyb20gdGhlICJwYXVzZWQiIGV2ZW50LgogKi8KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKHNlc3Npb24sIHBhcmFtcykgewogIGNvbnN0IHsgcmVhc29uLCBkYXRhLCBjYWxsRnJhbWVzIH0gPSBwYXJhbXM7CgogIGlmIChyZWFzb24gIT09ICJleGNlcHRpb24iICYmIHJlYXNvbiAhPT0gInByb21pc2VSZWplY3Rpb24iKSB7CiAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgZXJyb3JJZCA9IGdsb2JhbD8uZXJyb3JJZDsKCiAgY29uc3QgbGltaXRlZENhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOwoKICBjb25zdCBmcmFtZXMgPSBhd2FpdCBQcm9taXNlLmFsbCgKICAgIGxpbWl0ZWRDYWxsRnJhbWVzLm1hcChhc3luYyAoZnJhbWUpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCB7IGZ1bmN0aW9uTmFtZSwgbG9jYXRpb24sIHVybCwgc2NvcGVDaGFpbiB9ID0gZnJhbWU7CiAgICAgICAgY29uc3QgbG9jYWxTY29wZSA9IHNjb3BlQ2hhaW4uZmluZCgoc2NvcGUpID0+IHNjb3BlLnR5cGUgPT09ICJsb2NhbCIpOwoKICAgICAgICBsZXQgY29kZSA9ICI8bm90IGNhcHR1cmVkPiI7CiAgICAgICAgbGV0IGZpbGUgPSB1cmwgfHwgIjx1bmtub3duPiI7CiAgICAgICAgaWYgKGxvY2F0aW9uICYmIGxvY2F0aW9uLnNjcmlwdElkKSB7CiAgICAgICAgICBjb25zdCBzY3JpcHRJZCA9IGxvY2F0aW9uLnNjcmlwdElkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgeyBzY3JpcHRTb3VyY2UgfSA9IGF3YWl0IHNlc3Npb24ucG9zdCgKICAgICAgICAgICAgICAiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICB7IHNjcmlwdElkIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc2NyaXB0U291cmNlLnNwbGl0KCJcbiIpOwogICAgICAgICAgICBjb2RlID0gc291cmNlTGluZXNbbG9jYXRpb24ubGluZU51bWJlcl0gfHwgIjxub3QgY2FwdHVyZWQ+IjsKICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IHNvdXJjZToiLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb25zdCBsb2NhbHMgPSBsb2NhbFNjb3BlPy5vYmplY3Q/Lm9iamVjdElkCiAgICAgICAgICA/IGF3YWl0IGZldGNoTG9jYWxWYXJpYWJsZXMoc2Vzc2lvbiwgbG9jYWxTY29wZS5vYmplY3Qub2JqZWN0SWQpCiAgICAgICAgICA6IHt9OwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iLAogICAgICAgICAgbG9jYWxzLAogICAgICAgICAgZmlsZSwKICAgICAgICAgIGxpbmU6IGxvY2F0aW9uPy5saW5lTnVtYmVyIHx8IDAsCiAgICAgICAgICBjb2RlLAogICAgICAgIH07CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBFcnJvciBwcm9jZXNzaW5nIGNhbGwgZnJhbWU6IiwgZXJyb3IpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgZnVuY3Rpb246ICI8ZXJyb3I+IiwKICAgICAgICAgIGxvY2Fsczoge30sCiAgICAgICAgICBmaWxlOiAiPHVua25vd24+IiwKICAgICAgICAgIGxpbmU6IDAsCiAgICAgICAgICBjb2RlOiAiPG5vdCBjYXB0dXJlZD4iLAogICAgICAgIH07CiAgICAgIH0KICAgIH0pLAogICk7CgogIC8vIFBvc3QgZXhjZXB0aW9uIGRhdGEgYWxvbmcgd2l0aCB0aGUgZXJyb3JJZAogIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogImV4Y2VwdGlvbiIsIGVycm9ySWQsIGZyYW1lcyB9KTsKfQoKLyoqCiAqIEluaXRpYWxpemVzIHRoZSBkZWJ1Z2dlciBhbmQgc2V0cyB1cCBldmVudCBsaXN0ZW5lcnMgZm9yIGV4Y2VwdGlvbnMgYW5kIHByb21pc2UgcmVqZWN0aW9ucy4KICovCmFzeW5jIGZ1bmN0aW9uIHN0YXJ0RGVidWdnZXIoKSB7CiAgcGFyZW50UG9ydD8ucG9zdE1lc3NhZ2UoeyB0eXBlOiAibWVzc2FnZSIsIHJlYWR5VG9HZXRQYXJhbWV0ZXJzOiB0cnVlIH0pOwoKICBsZXQgcmVzb2x2ZU1lc3NhZ2VQcm9taXNlOwogIGNvbnN0IG1lc3NhZ2VQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgIHJlc29sdmVNZXNzYWdlUHJvbWlzZSA9IHJlc29sdmU7CiAgfSk7CiAgbGV0IGlzUGF1c2VkID0gZmFsc2U7CgogIHBhcmVudFBvcnQ/Lm9uKCJtZXNzYWdlIiwgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGlmIChtZXNzYWdlPy50eXBlID09PSAicHJvY2Vzc0V4Y2VwdGlvbiIpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICgKICAgICAgICBtZXNzYWdlPy5zZkRlYnVnICE9PSB1bmRlZmluZWQgJiYKICAgICAgICBtZXNzYWdlPy5zdGFja0RlcHRoTG9jYWxzICE9PSB1bmRlZmluZWQKICAgICAgKSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiVXBkYXRpbmcgZ2xvYmFsIGRlYnVnIHZhcmlhYmxlcy4uLiIpOwogICAgICAgIH0KCiAgICAgICAgZ2xvYmFsLnNmRGVidWcgPSBtZXNzYWdlLnNmRGVidWc7CiAgICAgICAgZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSBtZXNzYWdlLnN0YWNrRGVwdGhMb2NhbHM7CiAgICAgICAgZ2xvYmFsLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbiA9CiAgICAgICAgICBtZXNzYWdlLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbjsKCiAgICAgICAgcmVzb2x2ZU1lc3NhZ2VQcm9taXNlKCk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgIGNvbnNvbGUuZXJyb3IoIuKdjCBFcnJvciBpbiBtZXNzYWdlIGhhbmRsaW5nOiIsIGVycm9yKTsKICAgICAgfQogICAgfQogIH0pOwoKICBhd2FpdCBtZXNzYWdlUHJvbWlzZTsKCiAgdHJ5IHsKICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbigpOwogICAgc2Vzc2lvbi5jb25uZWN0VG9NYWluVGhyZWFkKCk7CgogICAgc2Vzc2lvbi5vbigiRGVidWdnZXIucmVzdW1lZCIsICgpID0+IHsKICAgICAgaXNQYXVzZWQgPSBmYWxzZTsKICAgIH0pOwoKICAgIHNlc3Npb24ub24oIkRlYnVnZ2VyLnBhdXNlZCIsIGFzeW5jIChldmVudCkgPT4gewogICAgICBpc1BhdXNlZCA9IHRydWU7CiAgICAgIGhhbmRsZVBhdXNlZChzZXNzaW9uLCBldmVudC5wYXJhbXMpLnRoZW4oCiAgICAgICAgYXN5bmMgKCkgPT4gewogICAgICAgICAgLy8gQWZ0ZXIgdGhlIHBhdXNlIHdvcmsgaXMgY29tcGxldGUsIHJlc3VtZSBleGVjdXRpb24hCiAgICAgICAgICBpZiAoaXNQYXVzZWQpIHsKICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGFzeW5jIChfKSA9PiB7CiAgICAgICAgICBpZiAoaXNQYXVzZWQpIHsKICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICApOwogICAgfSk7CgogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTsKCiAgICBjb25zdCBjYXB0dXJlQWxsID0gd29ya2VyRGF0YS5jYXB0dXJlQWxsRXhjZXB0aW9ucyAhPT0gZmFsc2U7CiAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwgewogICAgICBzdGF0ZTogY2FwdHVyZUFsbCA/ICJhbGwiIDogInVuY2F1Z2h0IiwKICAgIH0pOwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gZXJyb3IgIiwgZXJyb3IpOwogICAgfQogIH0KCiAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICBjb25zb2xlLmxvZygiW1dvcmtlcl0gRGVidWdnZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkuIik7CiAgfQp9Cgphc3luYyBmdW5jdGlvbiB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgfSk7CgogIHZhcnNbbmFtZV0gPSBwcm9wZXJ0aWVzLnJlc3VsdAogICAgLm1hcCgodikgPT4gW3YubmFtZSwgdi52YWx1ZT8udmFsdWVdKQogICAgLnJlZHVjZSgob2JqLCBba2V5LCB2YWxdKSA9PiB7CiAgICAgIG9ialtrZXldID0gdmFsOwogICAgICByZXR1cm4gb2JqOwogICAgfSwge30pOwp9Cgphc3luYyBmdW5jdGlvbiB1bnJvbGxBcnJheShzZXNzaW9uLCBvYmplY3RJZCwgbmFtZSwgdmFycykgewogIGNvbnN0IHByb3BlcnRpZXMgPSBhd2FpdCBzZXNzaW9uLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIsIHsKICAgIG9iamVjdElkOiBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgfSk7CiAgdmFyc1tuYW1lXSA9IHByb3BlcnRpZXMucmVzdWx0CiAgICAuZmlsdGVyKCh2KSA9PiB2Lm5hbWUgIT09ICJsZW5ndGgiICYmICFpc05hTihwYXJzZUludCh2Lm5hbWUsIDEwKSkpCiAgICAuc29ydCgoYSwgYikgPT4gcGFyc2VJbnQoYS5uYW1lLCAxMCkgLSBwYXJzZUludChiLm5hbWUsIDEwKSkKICAgIC5tYXAoKHYpID0+IHYudmFsdWU/LnZhbHVlKTsKfQoKZnVuY3Rpb24gdW5yb2xsT3RoZXIocHJvcCwgdmFycykgewogIGlmICghcHJvcC52YWx1ZSkgewogICAgcmV0dXJuOwogIH0KCiAgaWYgKCJ2YWx1ZSIgaW4gcHJvcC52YWx1ZSkgewogICAgaWYgKHByb3AudmFsdWUudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBwcm9wLnZhbHVlLnZhbHVlID09PSBudWxsKSB7CiAgICAgIHZhcnNbcHJvcC5uYW1lXSA9IGA8JHtwcm9wLnZhbHVlLnZhbHVlfT5gOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyc1twcm9wLm5hbWVdID0gcHJvcC52YWx1ZS52YWx1ZTsKICAgIHJldHVybjsKICB9CgogIGlmICgiZGVzY3JpcHRpb24iIGluIHByb3AudmFsdWUgJiYgcHJvcC52YWx1ZS50eXBlICE9PSAiZnVuY3Rpb24iKSB7CiAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS5kZXNjcmlwdGlvbn0+YDsKICAgIHJldHVybjsKICB9CgogIGlmIChwcm9wLnZhbHVlLnR5cGUgPT09ICJ1bmRlZmluZWQiKSB7CiAgICB2YXJzW3Byb3AubmFtZV0gPSAiPHVuZGVmaW5lZD4iOwogICAgcmV0dXJuOwogIH0KfQoKLyoqCiAqIEZldGNoZXMgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIGdpdmVuIG9iamVjdCBJRC4KICogQHBhcmFtIHtTZXNzaW9ufSBzZXNzaW9uIC0gVGhlIGRlYnVnZ2luZyBzZXNzaW9uIGluc3RhbmNlLgogKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0SWQgLSBUaGUgb2JqZWN0IElEIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgc2NvcGUuCiAqIEByZXR1cm5zIHtvYmplY3R9IEEga2V5LXZhbHVlIG1hcCBvZiBsb2NhbCB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlaXIgdmFsdWVzLgogKi8KYXN5bmMgZnVuY3Rpb24gZmV0Y2hMb2NhbFZhcmlhYmxlcyhzZXNzaW9uLCBvYmplY3RJZCkgewogIGlmICghb2JqZWN0SWQpIHJldHVybiB7fTsKCiAgdHJ5IHsKICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCBzZXNzaW9uLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIsIHsKICAgICAgb2JqZWN0SWQsCiAgICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgICB9KTsKCiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVzdWx0OwogICAgaWYgKHByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgdmFyaWFibGVzID0ge307CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJiBwcm9wPy52YWx1ZS5jbGFzc05hbWUgPT09ICJBcnJheSIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbEFycmF5KHNlc3Npb24sIGlkLCBwcm9wLm5hbWUsIHZhcmlhYmxlcyk7CiAgICAgICAgfSBlbHNlIGlmICgKICAgICAgICAgIHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJgogICAgICAgICAgcHJvcD8udmFsdWU/LmNsYXNzTmFtZSA9PT0gIk9iamVjdCIKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbE9iamVjdChzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAocHJvcD8udmFsdWUpIHsKICAgICAgICAgIHVucm9sbE90aGVyKHByb3AsIHZhcmlhYmxlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YXJpYWJsZXM7CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIGZldGNoIGxvY2FsIHZhcmlhYmxlczoiLCBlcnIpOwogICAgfQogICAgcmV0dXJuIHt9OwogIH0KfQoKc3RhcnREZWJ1Z2dlcigpLmNhdGNoKChlcnJvcikgPT4gewogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIHN0YXJ0IGRlYnVnZ2VyOiIsIGVycm9yKTsKICB9Cn0pOwoKLy8gS2VlcCB0aGUgd29ya2VyIGFsaXZlCnNldEludGVydmFsKCgpID0+IHt9LCAxMDAwMCk7Cg=="),{workerData:{captureAllExceptions:!0}});let i=null;e.on("message",a=>{if(typeof a=="string"&&r().sfDebug&&console.log(`[Worker] ${a}`),a.readyToGetParameters&&e.postMessage({sfDebug:r().sfDebug,stackDepthLocals:r().stackDepthLocals,nodeModulesToCollectLocalVariablesOn:r().nodeModulesToCollectLocalVariablesOn}),a.type==="exception"){const{frames:d}=a,I=i;if(!I)return;const C=function(l,g){const p=[];let h=-1,N=-1;for(let u=0;u<l.length;u++){const m=P(l[u].file);if(N=u,m!=="<unknown>"){for(let b=0;b<g.length;b++){const Y=g[b];if(x(Y,m)||typeof Y.file=="string"&&Y.file.includes(m)){h=b,v=0,r().sfDebug&&console.log(`✅ Matched Frame Found: ${m} @ Debugger Frame ${b}`);break}}if(h!==-1)break}}if(h===-1)return v===10?(v=0,l):(++v,r().sfDebug&&console.log(`"❌ No matching frame found. Checking once again, Attempt N ${v}"`),[]);r().sfDebug&&console.log(`🔄 Merging from matched index ${h} onward...`);for(let u=0;u<g.length;u++){const m=l[N+u],b=g[h+u];p.push(new f({function:b?.function||m?.function||"<anonymous>",locals:b?.locals||m?.locals||{},file:m?.file||b?.file||"<unknown>",line:b?.line||m?.line||0,code:m?.code||b?.code||"<not captured>"}))}return p}(function(l){return l?l.split(`
|
|
32
32
|
`).slice(1).map(g=>{const p=/at (.+?) \((.+):(\d+):(\d+)\)/.exec(g)||/at (.+):(\d+):(\d+)/.exec(g);if(p){const[,h,N,u]=p;return new f({function:h||"<anonymous>",locals:{},file:N||"<unknown>",line:parseInt(u,10)||0,code:"<not captured>"})}return new f({function:"<unknown>",locals:{},file:"<unknown>",line:0,code:"<not captured>"})}):[]}(I.stack),d||[]);if(C.length!==0){i=null;const l=r().stackDepthCodeTraceDepth,g=l===-1?C:C.slice(0,l+1);o.setOperationName("CollectExceptions");const p=I.message?`${I.name}: ${I.message}`:I.name;r().sfDebug&&console.log("error message is : ",p),o.doSend(p,g)}}}),e.on("error",a=>{console.error("[Worker Error]",a)}),e.on("exit",a=>{console.error(`[Worker] Exited with code ${a}`)}),e.unref();const t=Error,n=new Set;function s(...a){const d=Reflect.construct(t,a);Reflect.setPrototypeOf(d,s.prototype),t.captureStackTrace&&t.captureStackTrace(d,s);const I=`${d.message}:${d.stack?.split(`
|
|
33
|
-
`)[1]?.trim()}`;return n.has(I)||(n.add(I),i=d,e.postMessage({type:"processException",error:d.message})),d}s.prototype=Object.create(t.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf(s,t),globalThis.Error=s}function P(o){return o?.split("/").pop()||"<unknown>"}function x(o,e){if(!o||typeof o!="object")return!1;for(const i of Object.values(o))if(typeof i=="string"&&i.includes(e)||typeof i=="object"&&x(i,e))return!0;return!1}class j extends
|
|
33
|
+
`)[1]?.trim()}`;return n.has(I)||(n.add(I),i=d,e.postMessage({type:"processException",error:d.message})),d}s.prototype=Object.create(t.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf(s,t),globalThis.Error=s}function P(o){return o?.split("/").pop()||"<unknown>"}function x(o,e){if(!o||typeof o!="object")return!1;for(const i of Object.values(o))if(typeof i=="string"&&i.includes(e)||typeof i=="object"&&x(i,e))return!0;return!1}class j extends V{constructor(){super();c(this,"serviceIdentifier",new w);this.setOperationName("CollectExceptions")}async sendAppIdentifier(){this.serviceIdentifier.doSend({})}async doSend(i,t){this.sendAppIdentifier(),this.send(i,t)}async send(i,t){r().sfDebug&&console.log(" SENDING EXCEPTION...");const n=JSON.stringify(B.encode(t)),s=this.getVariables({exceptionMessage:i,traceJson:n,reentrancyGuardPreactive:!1,library:r().packageLibraryType,version:r().version});Z(this.endpoint,this.operationName,this.getQuery(),s)}getQuery(){return`
|
|
34
34
|
mutation ${this.operationName}($apiKey: String!, $serviceUuid: String!, $sessionId: String!, $exceptionMessage: String!, $traceJson: String!, $reentrancyGuardPreactive: Boolean!, $library: String!, $timestampMs: String!, $version: String!) {
|
|
35
35
|
${this.queryName}(apiKey: $apiKey, serviceUuid: $serviceUuid, sessionId: $sessionId, exceptionMessage: $exceptionMessage, traceJson: $traceJson, reentrancyGuardPreactive: $reentrancyGuardPreactive, library: $library, timestampMs: $timestampMs, version: $version)
|
|
36
36
|
}
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
domains: $domains
|
|
47
47
|
)
|
|
48
48
|
}
|
|
49
|
-
`,t={apiKey:this.apiKey,serviceUuid:this.serviceUUID,domains:e};Z(this.endpoint,this.operationName,i,t)}}const q=["identitytoolkit.googleapis.com","t.co","*.twitter.com","*.gravatar.com","*.googleapis.com","*.amazonaws.com","*.smooch.io","*.zendesk.com"];class _{constructor(e=[]){c(this,"HEADER_TRACING","X-Sf3-Rid");c(this,"HEADER_LOG_GUARD","reentrancy_guard_logging_preactive");c(this,"HEADER_PRINT_GUARD","reentrancy_guard_print_preactive");c(this,"HEADER_EXCEPTION_GUARD","reentrancy_guard_exception_preactive");c(this,"contextManager");c(this,"excludedDomains");this.contextManager=
|
|
49
|
+
`,t={apiKey:this.apiKey,serviceUuid:this.serviceUUID,domains:e};Z(this.endpoint,this.operationName,i,t)}}const q=["identitytoolkit.googleapis.com","t.co","*.twitter.com","*.gravatar.com","*.googleapis.com","*.amazonaws.com","*.smooch.io","*.zendesk.com"];class _{constructor(e=[]){c(this,"HEADER_TRACING","X-Sf3-Rid");c(this,"HEADER_LOG_GUARD","reentrancy_guard_logging_preactive");c(this,"HEADER_PRINT_GUARD","reentrancy_guard_print_preactive");c(this,"HEADER_EXCEPTION_GUARD","reentrancy_guard_exception_preactive");c(this,"contextManager");c(this,"excludedDomains");this.contextManager=S.getInstance(),this.excludedDomains=[...q,...e].map(i=>i.toLowerCase()),r().sfDebug&&console.log("[RequestInterceptor] Initialized.")}addReentrancyGuardHeaders(e){e.set(this.HEADER_LOG_GUARD,"true"),e.set(this.HEADER_PRINT_GUARD,"true"),e.set(this.HEADER_EXCEPTION_GUARD,"true")}shouldPropagateHeaders(e){return!this.excludedDomains.some(i=>new RegExp(`^${i.replace(/\*/g,".*")}$`).test(e))}addTracingHeaders(e,i){const t=new URL(i).hostname;if(this.shouldPropagateHeaders(t)){const n=this.contextManager.getOrSetSfTraceId(),s=sessionStorage.getItem("pageVisitUUID"),a=G();e.set(this.HEADER_TRACING,`${n}/${s}/${a}`),r().sfDebug&&console.log(`[RequestInterceptor] Added tracing header for ${i}`)}else r().sfDebug&&console.error(`[RequestInterceptor] Excluded domain: ${t}`);this.addReentrancyGuardHeaders(e)}patchFetch(){const e=globalThis.fetch;typeof e=="function"?globalThis.fetch=async(i,t)=>{const n=Date.now(),s=new Headers(t?.headers);let a;typeof i=="string"||i instanceof URL?a=i.toString():i instanceof Request?(a=i.url,i.headers.forEach((I,C)=>{s.set(C,I)})):r().sfDebug&&console.error("[Sailfish RequestInterceptor] Invalid fetch input."),r().sfDebug&&console.log("[RequestInterceptor] Fetching request to:",a),this.addTracingHeaders(s,a);const d={...t,headers:s};try{const I=await e(a,d),C=Date.now();return r().sfDebug&&console.log(`[RequestInterceptor] Fetch completed: ${a}, Status: ${I.status}, Duration: ${C-n}ms`),I}catch(I){const C=Date.now();r().sfDebug&&console.error(`[RequestInterceptor] Fetch failed: ${a}, Error: ${I}, Duration: ${C-n}ms`)}}:r().sfDebug&&console.error("[RequestInterceptor] Fetch not available.")}}class ee extends K{constructor(){super(),this.setOperationName("UpdateServiceDetails")}async doSend(){this.sendAppIdentifier(),this.send()}async send(){const e=`
|
|
50
50
|
${this.queryType} ${this.operationName}(
|
|
51
51
|
$apiKey: String!,
|
|
52
52
|
$serviceUuid: String!,
|
|
@@ -66,4 +66,4 @@
|
|
|
66
66
|
|
|
67
67
|
)
|
|
68
68
|
}
|
|
69
|
-
`,i=this.getVariables({serviceIdentifier:r().serviceIdentifier,serviceVersion:r().serviceVersion,serviceAdditionalMetadata:r().serviceAdditionalMetadata});Z(this.endpoint,this.operationName,e,i)}}exports.addOrUpdateMetadata=function(o,e={},i,t=!1){const n=r();new D(n.apiKey).addOrUpdateMetadata(o,e,i,t)},exports.identify=function(o,e,i,t=!1){const n=r();new D(n.apiKey).identify(o,e,i,t)},exports.setupInterceptors=function(o){if(!o||!o.apiKey){const n=`The required API Key is not provided: ${JSON.stringify(o)}`;console.error(n)}const{config:e}=function(n){return
|
|
69
|
+
`,i=this.getVariables({serviceIdentifier:r().serviceIdentifier,serviceVersion:r().serviceVersion,serviceAdditionalMetadata:r().serviceAdditionalMetadata});Z(this.endpoint,this.operationName,e,i)}}exports.addOrUpdateMetadata=function(o,e={},i,t=!1){const n=r();new D(n.apiKey).addOrUpdateMetadata(o,e,i,t)},exports.identify=function(o,e,i,t=!1){const n=r();new D(n.apiKey).identify(o,e,i,t)},exports.setupInterceptors=function(o){if(!o||!o.apiKey){const n=`The required API Key is not provided: ${JSON.stringify(o)}`;console.error(n)}const{config:e}=function(n){return W=new T(n),{config:W}}(o);if(e.sfDebug&&console.log("Updated configuration after applying options:",e),!e.apiKey||!e.apiGraphqlEndpoint){const n=`The required config is not provided: ${JSON.stringify(e)}`;throw console.error(n),new Error(n)}const i=new K;i.setServiceUUID(e.serviceUUID),function(n){function s(g,p){n.setOperationName("CollectLogs"),n.doSend([p,g])}const a=console.log.bind(console),d=console.error.bind(console),I=console.warn.bind(console),C=console.info.bind(console),l=console.debug.bind(console);console.log=(...g)=>{s("INFO",g.join(" ")),a(...g)},console.error=(...g)=>{s("ERROR",g.join(" ")),d(...g)},console.warn=(...g)=>{s("WARN",g.join(" ")),I(...g)},console.info=(...g)=>{s("INFO",g.join(" ")),C(...g)},r().logLevel==="DEBUG"&&(console.debug=(...g)=>{s("DEBUG",g.join(" ")),l(...g)})}(i),function(n=[]){const s=new _(n);new Q().doSend(s.excludedDomains),s.patchFetch()}(e.domainsToNotPropagateHeadersTo);const t=new j;t.setServiceUUID(e.serviceUUID),M(t),new ee().send()};
|
package/dist/sf-veritas.mjs
CHANGED
|
@@ -2,26 +2,26 @@ var E = Object.defineProperty;
|
|
|
2
2
|
var L = (o, e, t) => e in o ? E(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
|
|
3
3
|
var c = (o, e, t) => L(o, typeof e != "symbol" ? e + "" : e, t);
|
|
4
4
|
import { AsyncLocalStorage as D } from "async_hooks";
|
|
5
|
-
import { Worker as
|
|
5
|
+
import { Worker as $ } from "worker_threads";
|
|
6
6
|
const A = [];
|
|
7
7
|
for (let o = 0; o < 256; ++o) A.push((o + 256).toString(16).slice(1));
|
|
8
|
-
let
|
|
9
|
-
const
|
|
10
|
-
function
|
|
8
|
+
let H;
|
|
9
|
+
const F = new Uint8Array(16), X = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
|
|
10
|
+
function G(o, e, t) {
|
|
11
11
|
if (X.randomUUID && !o) return X.randomUUID();
|
|
12
12
|
const i = (o = o || {}).random ?? o.rng?.() ?? function() {
|
|
13
|
-
if (!
|
|
13
|
+
if (!H) {
|
|
14
14
|
if (typeof crypto > "u" || !crypto.getRandomValues) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
15
|
-
|
|
15
|
+
H = crypto.getRandomValues.bind(crypto);
|
|
16
16
|
}
|
|
17
|
-
return
|
|
17
|
+
return H(F);
|
|
18
18
|
}();
|
|
19
19
|
if (i.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
20
20
|
return i[6] = 15 & i[6] | 64, i[8] = 63 & i[8] | 128, function(n, s = 0) {
|
|
21
21
|
return (A[n[s + 0]] + A[n[s + 1]] + A[n[s + 2]] + A[n[s + 3]] + "-" + A[n[s + 4]] + A[n[s + 5]] + "-" + A[n[s + 6]] + A[n[s + 7]] + "-" + A[n[s + 8]] + A[n[s + 9]] + "-" + A[n[s + 10]] + A[n[s + 11]] + A[n[s + 12]] + A[n[s + 13]] + A[n[s + 14]] + A[n[s + 15]]).toLowerCase();
|
|
22
22
|
}(i);
|
|
23
23
|
}
|
|
24
|
-
class
|
|
24
|
+
class T {
|
|
25
25
|
constructor(e) {
|
|
26
26
|
c(this, "apiKey");
|
|
27
27
|
c(this, "apiGraphqlEndpoint");
|
|
@@ -42,7 +42,7 @@ class z {
|
|
|
42
42
|
c(this, "packageLibraryType");
|
|
43
43
|
c(this, "version");
|
|
44
44
|
c(this, "_serviceIdentificationReceived", !1);
|
|
45
|
-
this.apiKey = e.apiKey, this.apiGraphqlEndpoint = e?.apiGraphqlEndpoint || process.env.SAILFISH_GRAPHQL_ENDPOINT || "https://api-service.sailfishqa.com/graphql/", this.sfDebug = e?.debug === !0 || process.env.SF_DEBUG === "true", this.serviceIdentifier = e?.serviceIdentifier || process.env.SERVICE_IDENTIFIER, this.serviceUUID =
|
|
45
|
+
this.apiKey = e.apiKey, this.apiGraphqlEndpoint = e?.apiGraphqlEndpoint || process.env.SAILFISH_GRAPHQL_ENDPOINT || "https://api-service.sailfishqa.com/graphql/", this.sfDebug = e?.debug === !0 || process.env.SF_DEBUG === "true", this.serviceIdentifier = e?.serviceIdentifier || process.env.SERVICE_IDENTIFIER, this.serviceUUID = G(), this.serviceVersion = e?.serviceVersion || process.env.SERVICE_VERSION, this.serviceAdditionalMetadata = e?.serviceAdditionalMetadata || {}, this.profilingModeEnabled = e?.profilingModeEnabled ?? !1, this.profilingMaxDepth = e?.profilingMaxDepth ?? 5, this.profilingMaxVariableSizeKb = e?.profilingMaxVariableSizeKb ?? 25, this.domainsToNotPropagateHeadersTo = e?.domainsToNotPropagateHeadersTo || [], this.nodeModulesToCollectLocalVariablesOn = e?.nodeModulesToCollectLocalVariablesOn || [], this.printConfigurationStatuses = process.env.PRINT_CONFIGURATION_STATUSES || "true", this.logLevel = process.env.LOG_LEVEL || "INFO", this.stackDepthLocals = process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS !== void 0 ? parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS, 10) : 5, isNaN(this.stackDepthLocals) && (this.stackDepthLocals = -1), this.stackDepthCodeTraceDepth = process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH !== void 0 ? parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH, 10) : -1, isNaN(this.stackDepthCodeTraceDepth) && (this.stackDepthCodeTraceDepth = -1), this.packageLibraryType = "NEXT JS/TS", this.version = this.getPackageVersion();
|
|
46
46
|
}
|
|
47
47
|
getPackageVersion() {
|
|
48
48
|
return "0.1.14";
|
|
@@ -54,24 +54,24 @@ class z {
|
|
|
54
54
|
this._serviceIdentificationReceived = e;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
let
|
|
57
|
+
let W;
|
|
58
58
|
function r() {
|
|
59
|
-
if (!
|
|
60
|
-
return
|
|
59
|
+
if (!W) throw new Error("Configuration has not been initialized.");
|
|
60
|
+
return W;
|
|
61
61
|
}
|
|
62
62
|
new D();
|
|
63
|
-
const
|
|
63
|
+
const J = new D(), R = { handledExceptions: /* @__PURE__ */ new Set(), reentrancyGuardLoggingActive: !1, reentrancyGuardLoggingPreActive: !1, reentrancyGuardPrintActive: !1, reentrancyGuardPrintPreActive: !1, reentrancyGuardExceptionActive: !1, reentrancyGuardExceptionPreActive: !1 }, y = class y {
|
|
64
64
|
constructor() {
|
|
65
65
|
}
|
|
66
66
|
static getInstance() {
|
|
67
67
|
return y.instance || (y.instance = new y()), y.instance;
|
|
68
68
|
}
|
|
69
69
|
getCurrentContext() {
|
|
70
|
-
return
|
|
70
|
+
return J.getStore() || R;
|
|
71
71
|
}
|
|
72
72
|
setCurrentContext(e) {
|
|
73
|
-
const t =
|
|
74
|
-
|
|
73
|
+
const t = J.getStore() || R;
|
|
74
|
+
J.enterWith({ ...t, ...e });
|
|
75
75
|
}
|
|
76
76
|
getTraceId() {
|
|
77
77
|
return this.getCurrentContext().traceId;
|
|
@@ -81,7 +81,7 @@ const H = new D(), R = { handledExceptions: /* @__PURE__ */ new Set(), reentranc
|
|
|
81
81
|
}
|
|
82
82
|
getOrSetSfTraceId(e, t = !1) {
|
|
83
83
|
let i = this.getTraceId();
|
|
84
|
-
return i || (i = e || (t ?
|
|
84
|
+
return i || (i = e || (t ? G() : `nonsession-applogs-v3/${r().apiKey}/${G()}`), this.setTraceId(i), r().sfDebug && console.log(" Created new trace ID:", i), i);
|
|
85
85
|
}
|
|
86
86
|
getHandledExceptions() {
|
|
87
87
|
return this.getCurrentContext().handledExceptions;
|
|
@@ -98,8 +98,8 @@ const H = new D(), R = { handledExceptions: /* @__PURE__ */ new Set(), reentranc
|
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
c(y, "instance");
|
|
101
|
-
let
|
|
102
|
-
class
|
|
101
|
+
let B = y;
|
|
102
|
+
class S {
|
|
103
103
|
constructor() {
|
|
104
104
|
c(this, "apiKey");
|
|
105
105
|
c(this, "endpoint");
|
|
@@ -107,7 +107,7 @@ class V {
|
|
|
107
107
|
c(this, "operationName", "");
|
|
108
108
|
c(this, "serviceUUID", r().serviceUUID);
|
|
109
109
|
c(this, "contextManager");
|
|
110
|
-
this.apiKey = r().apiKey, this.endpoint = r().apiGraphqlEndpoint, this.contextManager =
|
|
110
|
+
this.apiKey = r().apiKey, this.endpoint = r().apiGraphqlEndpoint, this.contextManager = B.getInstance();
|
|
111
111
|
}
|
|
112
112
|
get queryName() {
|
|
113
113
|
return this.operationName ? this.operationName.charAt(0).toLowerCase() + this.operationName.slice(1) : "";
|
|
@@ -129,7 +129,7 @@ class V {
|
|
|
129
129
|
this.serviceUUID = e;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
const
|
|
132
|
+
const z = fetch;
|
|
133
133
|
async function Z(o, e, t, i) {
|
|
134
134
|
try {
|
|
135
135
|
const n = r();
|
|
@@ -139,7 +139,7 @@ async function Z(o, e, t, i) {
|
|
|
139
139
|
} catch {
|
|
140
140
|
s = JSON.stringify({ query: t, operationName: e });
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
z(o, { method: "POST", headers: { "Content-Type": "application/json" }, body: s }).then(async (a) => {
|
|
143
143
|
if (!a.ok) return void (n.sfDebug && console.error(`GraphQL request failed with status ${a.status} for ${e}`));
|
|
144
144
|
const d = await a.json();
|
|
145
145
|
d.errors?.length ? function(I, C, l) {
|
|
@@ -156,7 +156,7 @@ async function Z(o, e, t, i) {
|
|
|
156
156
|
r().sfDebug && console.error("Error sending data to GraphQL server:", n);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
class w extends
|
|
159
|
+
class w extends S {
|
|
160
160
|
constructor() {
|
|
161
161
|
super(), this.setOperationName("IdentifyServiceDetails");
|
|
162
162
|
}
|
|
@@ -201,7 +201,7 @@ function k(o) {
|
|
|
201
201
|
return !1;
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
class O extends
|
|
204
|
+
class O extends S {
|
|
205
205
|
constructor() {
|
|
206
206
|
super();
|
|
207
207
|
c(this, "serviceIdentifier", new w());
|
|
@@ -248,7 +248,7 @@ class U {
|
|
|
248
248
|
r().sfDebug && console.log(" [[DEBUG - addOrUpdateMetadata]] Starting operation"), r().sfDebug && console.log(" addOrUpdateMetadata...SENDING DATA...", e, t, i), this.metadataTransmitter.doSend(e, t, n, i);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
class K extends
|
|
251
|
+
class K extends S {
|
|
252
252
|
constructor() {
|
|
253
253
|
super();
|
|
254
254
|
c(this, "serviceIdentifier", new w());
|
|
@@ -293,18 +293,18 @@ class f {
|
|
|
293
293
|
return JSON.stringify(this.toDict());
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
|
-
class
|
|
296
|
+
class V {
|
|
297
297
|
static encode(e) {
|
|
298
|
-
return e instanceof f ? e.toDict() : Array.isArray(e) ? e.map((t) =>
|
|
298
|
+
return e instanceof f ? e.toDict() : Array.isArray(e) ? e.map((t) => V.encode(t)) : typeof e == "object" && e !== null ? JSON.stringify(e) : e;
|
|
299
299
|
}
|
|
300
300
|
static stringify(e) {
|
|
301
|
-
return JSON.stringify(
|
|
301
|
+
return JSON.stringify(V.encode(e), (t, i) => i instanceof f ? i.toDict() : i);
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
let v = 0;
|
|
305
305
|
function M(o) {
|
|
306
306
|
r().sfDebug && console.log("Initializing Exception Interceptor...");
|
|
307
|
-
const e = new
|
|
307
|
+
const e = new $(new URL("data:application/javascript;base64,aW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gImluc3BlY3Rvci9wcm9taXNlcyI7CmltcG9ydCB7IHBhcmVudFBvcnQsIHdvcmtlckRhdGEgfSBmcm9tICJ3b3JrZXJfdGhyZWFkcyI7CgpnbG9iYWwuc2ZEZWJ1ZyA9IHVuZGVmaW5lZDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB1bmRlZmluZWQ7Cmdsb2JhbC5lcnJvcklkID0gdW5kZWZpbmVkOwpnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uID0gdW5kZWZpbmVkOwoKLyoqCiAqIEhhbmRsZXMgdGhlICJwYXVzZWQiIHN0YXRlIG9mIHRoZSBkZWJ1Z2dlciBhbmQgcHJvY2Vzc2VzIGV4Y2VwdGlvbnMgb3IgcHJvbWlzZSByZWplY3Rpb25zLgogKiBAcGFyYW0ge1Nlc3Npb259IHNlc3Npb24gLSBUaGUgZGVidWdnaW5nIHNlc3Npb24gaW5zdGFuY2UuCiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZyb20gdGhlICJwYXVzZWQiIGV2ZW50LgogKi8KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKHNlc3Npb24sIHBhcmFtcykgewogIGNvbnN0IHsgcmVhc29uLCBkYXRhLCBjYWxsRnJhbWVzIH0gPSBwYXJhbXM7CgogIGlmIChyZWFzb24gIT09ICJleGNlcHRpb24iICYmIHJlYXNvbiAhPT0gInByb21pc2VSZWplY3Rpb24iKSB7CiAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgZXJyb3JJZCA9IGdsb2JhbD8uZXJyb3JJZDsKCiAgY29uc3QgbGltaXRlZENhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOwoKICBjb25zdCBmcmFtZXMgPSBhd2FpdCBQcm9taXNlLmFsbCgKICAgIGxpbWl0ZWRDYWxsRnJhbWVzLm1hcChhc3luYyAoZnJhbWUpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCB7IGZ1bmN0aW9uTmFtZSwgbG9jYXRpb24sIHVybCwgc2NvcGVDaGFpbiB9ID0gZnJhbWU7CiAgICAgICAgY29uc3QgbG9jYWxTY29wZSA9IHNjb3BlQ2hhaW4uZmluZCgoc2NvcGUpID0+IHNjb3BlLnR5cGUgPT09ICJsb2NhbCIpOwoKICAgICAgICBsZXQgY29kZSA9ICI8bm90IGNhcHR1cmVkPiI7CiAgICAgICAgbGV0IGZpbGUgPSB1cmwgfHwgIjx1bmtub3duPiI7CiAgICAgICAgaWYgKGxvY2F0aW9uICYmIGxvY2F0aW9uLnNjcmlwdElkKSB7CiAgICAgICAgICBjb25zdCBzY3JpcHRJZCA9IGxvY2F0aW9uLnNjcmlwdElkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgeyBzY3JpcHRTb3VyY2UgfSA9IGF3YWl0IHNlc3Npb24ucG9zdCgKICAgICAgICAgICAgICAiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICB7IHNjcmlwdElkIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc2NyaXB0U291cmNlLnNwbGl0KCJcbiIpOwogICAgICAgICAgICBjb2RlID0gc291cmNlTGluZXNbbG9jYXRpb24ubGluZU51bWJlcl0gfHwgIjxub3QgY2FwdHVyZWQ+IjsKICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IHNvdXJjZToiLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb25zdCBsb2NhbHMgPSBsb2NhbFNjb3BlPy5vYmplY3Q/Lm9iamVjdElkCiAgICAgICAgICA/IGF3YWl0IGZldGNoTG9jYWxWYXJpYWJsZXMoc2Vzc2lvbiwgbG9jYWxTY29wZS5vYmplY3Qub2JqZWN0SWQpCiAgICAgICAgICA6IHt9OwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iLAogICAgICAgICAgbG9jYWxzLAogICAgICAgICAgZmlsZSwKICAgICAgICAgIGxpbmU6IGxvY2F0aW9uPy5saW5lTnVtYmVyIHx8IDAsCiAgICAgICAgICBjb2RlLAogICAgICAgIH07CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBFcnJvciBwcm9jZXNzaW5nIGNhbGwgZnJhbWU6IiwgZXJyb3IpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgZnVuY3Rpb246ICI8ZXJyb3I+IiwKICAgICAgICAgIGxvY2Fsczoge30sCiAgICAgICAgICBmaWxlOiAiPHVua25vd24+IiwKICAgICAgICAgIGxpbmU6IDAsCiAgICAgICAgICBjb2RlOiAiPG5vdCBjYXB0dXJlZD4iLAogICAgICAgIH07CiAgICAgIH0KICAgIH0pLAogICk7CgogIC8vIFBvc3QgZXhjZXB0aW9uIGRhdGEgYWxvbmcgd2l0aCB0aGUgZXJyb3JJZAogIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogImV4Y2VwdGlvbiIsIGVycm9ySWQsIGZyYW1lcyB9KTsKfQoKLyoqCiAqIEluaXRpYWxpemVzIHRoZSBkZWJ1Z2dlciBhbmQgc2V0cyB1cCBldmVudCBsaXN0ZW5lcnMgZm9yIGV4Y2VwdGlvbnMgYW5kIHByb21pc2UgcmVqZWN0aW9ucy4KICovCmFzeW5jIGZ1bmN0aW9uIHN0YXJ0RGVidWdnZXIoKSB7CiAgcGFyZW50UG9ydD8ucG9zdE1lc3NhZ2UoeyB0eXBlOiAibWVzc2FnZSIsIHJlYWR5VG9HZXRQYXJhbWV0ZXJzOiB0cnVlIH0pOwoKICBsZXQgcmVzb2x2ZU1lc3NhZ2VQcm9taXNlOwogIGNvbnN0IG1lc3NhZ2VQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgIHJlc29sdmVNZXNzYWdlUHJvbWlzZSA9IHJlc29sdmU7CiAgfSk7CiAgbGV0IGlzUGF1c2VkID0gZmFsc2U7CgogIHBhcmVudFBvcnQ/Lm9uKCJtZXNzYWdlIiwgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGlmIChtZXNzYWdlPy50eXBlID09PSAicHJvY2Vzc0V4Y2VwdGlvbiIpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICgKICAgICAgICBtZXNzYWdlPy5zZkRlYnVnICE9PSB1bmRlZmluZWQgJiYKICAgICAgICBtZXNzYWdlPy5zdGFja0RlcHRoTG9jYWxzICE9PSB1bmRlZmluZWQKICAgICAgKSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiVXBkYXRpbmcgZ2xvYmFsIGRlYnVnIHZhcmlhYmxlcy4uLiIpOwogICAgICAgIH0KCiAgICAgICAgZ2xvYmFsLnNmRGVidWcgPSBtZXNzYWdlLnNmRGVidWc7CiAgICAgICAgZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSBtZXNzYWdlLnN0YWNrRGVwdGhMb2NhbHM7CiAgICAgICAgZ2xvYmFsLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbiA9CiAgICAgICAgICBtZXNzYWdlLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbjsKCiAgICAgICAgcmVzb2x2ZU1lc3NhZ2VQcm9taXNlKCk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgIGNvbnNvbGUuZXJyb3IoIuKdjCBFcnJvciBpbiBtZXNzYWdlIGhhbmRsaW5nOiIsIGVycm9yKTsKICAgICAgfQogICAgfQogIH0pOwoKICBhd2FpdCBtZXNzYWdlUHJvbWlzZTsKCiAgdHJ5IHsKICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbigpOwogICAgc2Vzc2lvbi5jb25uZWN0VG9NYWluVGhyZWFkKCk7CgogICAgc2Vzc2lvbi5vbigiRGVidWdnZXIucmVzdW1lZCIsICgpID0+IHsKICAgICAgaXNQYXVzZWQgPSBmYWxzZTsKICAgIH0pOwoKICAgIHNlc3Npb24ub24oIkRlYnVnZ2VyLnBhdXNlZCIsIGFzeW5jIChldmVudCkgPT4gewogICAgICBpc1BhdXNlZCA9IHRydWU7CiAgICAgIGhhbmRsZVBhdXNlZChzZXNzaW9uLCBldmVudC5wYXJhbXMpLnRoZW4oCiAgICAgICAgYXN5bmMgKCkgPT4gewogICAgICAgICAgLy8gQWZ0ZXIgdGhlIHBhdXNlIHdvcmsgaXMgY29tcGxldGUsIHJlc3VtZSBleGVjdXRpb24hCiAgICAgICAgICBpZiAoaXNQYXVzZWQpIHsKICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGFzeW5jIChfKSA9PiB7CiAgICAgICAgICBpZiAoaXNQYXVzZWQpIHsKICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICApOwogICAgfSk7CgogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTsKCiAgICBjb25zdCBjYXB0dXJlQWxsID0gd29ya2VyRGF0YS5jYXB0dXJlQWxsRXhjZXB0aW9ucyAhPT0gZmFsc2U7CiAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwgewogICAgICBzdGF0ZTogY2FwdHVyZUFsbCA/ICJhbGwiIDogInVuY2F1Z2h0IiwKICAgIH0pOwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gZXJyb3IgIiwgZXJyb3IpOwogICAgfQogIH0KCiAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICBjb25zb2xlLmxvZygiW1dvcmtlcl0gRGVidWdnZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkuIik7CiAgfQp9Cgphc3luYyBmdW5jdGlvbiB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgfSk7CgogIHZhcnNbbmFtZV0gPSBwcm9wZXJ0aWVzLnJlc3VsdAogICAgLm1hcCgodikgPT4gW3YubmFtZSwgdi52YWx1ZT8udmFsdWVdKQogICAgLnJlZHVjZSgob2JqLCBba2V5LCB2YWxdKSA9PiB7CiAgICAgIG9ialtrZXldID0gdmFsOwogICAgICByZXR1cm4gb2JqOwogICAgfSwge30pOwp9Cgphc3luYyBmdW5jdGlvbiB1bnJvbGxBcnJheShzZXNzaW9uLCBvYmplY3RJZCwgbmFtZSwgdmFycykgewogIGNvbnN0IHByb3BlcnRpZXMgPSBhd2FpdCBzZXNzaW9uLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIsIHsKICAgIG9iamVjdElkOiBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgfSk7CiAgdmFyc1tuYW1lXSA9IHByb3BlcnRpZXMucmVzdWx0CiAgICAuZmlsdGVyKCh2KSA9PiB2Lm5hbWUgIT09ICJsZW5ndGgiICYmICFpc05hTihwYXJzZUludCh2Lm5hbWUsIDEwKSkpCiAgICAuc29ydCgoYSwgYikgPT4gcGFyc2VJbnQoYS5uYW1lLCAxMCkgLSBwYXJzZUludChiLm5hbWUsIDEwKSkKICAgIC5tYXAoKHYpID0+IHYudmFsdWU/LnZhbHVlKTsKfQoKZnVuY3Rpb24gdW5yb2xsT3RoZXIocHJvcCwgdmFycykgewogIGlmICghcHJvcC52YWx1ZSkgewogICAgcmV0dXJuOwogIH0KCiAgaWYgKCJ2YWx1ZSIgaW4gcHJvcC52YWx1ZSkgewogICAgaWYgKHByb3AudmFsdWUudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBwcm9wLnZhbHVlLnZhbHVlID09PSBudWxsKSB7CiAgICAgIHZhcnNbcHJvcC5uYW1lXSA9IGA8JHtwcm9wLnZhbHVlLnZhbHVlfT5gOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyc1twcm9wLm5hbWVdID0gcHJvcC52YWx1ZS52YWx1ZTsKICAgIHJldHVybjsKICB9CgogIGlmICgiZGVzY3JpcHRpb24iIGluIHByb3AudmFsdWUgJiYgcHJvcC52YWx1ZS50eXBlICE9PSAiZnVuY3Rpb24iKSB7CiAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS5kZXNjcmlwdGlvbn0+YDsKICAgIHJldHVybjsKICB9CgogIGlmIChwcm9wLnZhbHVlLnR5cGUgPT09ICJ1bmRlZmluZWQiKSB7CiAgICB2YXJzW3Byb3AubmFtZV0gPSAiPHVuZGVmaW5lZD4iOwogICAgcmV0dXJuOwogIH0KfQoKLyoqCiAqIEZldGNoZXMgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIGdpdmVuIG9iamVjdCBJRC4KICogQHBhcmFtIHtTZXNzaW9ufSBzZXNzaW9uIC0gVGhlIGRlYnVnZ2luZyBzZXNzaW9uIGluc3RhbmNlLgogKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0SWQgLSBUaGUgb2JqZWN0IElEIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgc2NvcGUuCiAqIEByZXR1cm5zIHtvYmplY3R9IEEga2V5LXZhbHVlIG1hcCBvZiBsb2NhbCB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlaXIgdmFsdWVzLgogKi8KYXN5bmMgZnVuY3Rpb24gZmV0Y2hMb2NhbFZhcmlhYmxlcyhzZXNzaW9uLCBvYmplY3RJZCkgewogIGlmICghb2JqZWN0SWQpIHJldHVybiB7fTsKCiAgdHJ5IHsKICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCBzZXNzaW9uLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIsIHsKICAgICAgb2JqZWN0SWQsCiAgICAgIG93blByb3BlcnRpZXM6IHRydWUsCiAgICB9KTsKCiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVzdWx0OwogICAgaWYgKHByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgdmFyaWFibGVzID0ge307CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJiBwcm9wPy52YWx1ZS5jbGFzc05hbWUgPT09ICJBcnJheSIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbEFycmF5KHNlc3Npb24sIGlkLCBwcm9wLm5hbWUsIHZhcmlhYmxlcyk7CiAgICAgICAgfSBlbHNlIGlmICgKICAgICAgICAgIHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJgogICAgICAgICAgcHJvcD8udmFsdWU/LmNsYXNzTmFtZSA9PT0gIk9iamVjdCIKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbE9iamVjdChzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAocHJvcD8udmFsdWUpIHsKICAgICAgICAgIHVucm9sbE90aGVyKHByb3AsIHZhcmlhYmxlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YXJpYWJsZXM7CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIGZldGNoIGxvY2FsIHZhcmlhYmxlczoiLCBlcnIpOwogICAgfQogICAgcmV0dXJuIHt9OwogIH0KfQoKc3RhcnREZWJ1Z2dlcigpLmNhdGNoKChlcnJvcikgPT4gewogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIHN0YXJ0IGRlYnVnZ2VyOiIsIGVycm9yKTsKICB9Cn0pOwoKLy8gS2VlcCB0aGUgd29ya2VyIGFsaXZlCnNldEludGVydmFsKCgpID0+IHt9LCAxMDAwMCk7Cg=="), { workerData: { captureAllExceptions: !0 } });
|
|
308
308
|
let t = null;
|
|
309
309
|
e.on("message", (a) => {
|
|
310
310
|
if (typeof a == "string" && r().sfDebug && console.log(`[Worker] ${a}`), a.readyToGetParameters && e.postMessage({ sfDebug: r().sfDebug, stackDepthLocals: r().stackDepthLocals, nodeModulesToCollectLocalVariablesOn: r().nodeModulesToCollectLocalVariablesOn }), a.type === "exception") {
|
|
@@ -317,8 +317,8 @@ function M(o) {
|
|
|
317
317
|
const m = P(l[u].file);
|
|
318
318
|
if (N = u, m !== "<unknown>") {
|
|
319
319
|
for (let b = 0; b < g.length; b++) {
|
|
320
|
-
const
|
|
321
|
-
if (x(
|
|
320
|
+
const Y = g[b];
|
|
321
|
+
if (x(Y, m) || typeof Y.file == "string" && Y.file.includes(m)) {
|
|
322
322
|
h = b, v = 0, r().sfDebug && console.log(`✅ Matched Frame Found: ${m} @ Debugger Frame ${b}`);
|
|
323
323
|
break;
|
|
324
324
|
}
|
|
@@ -376,7 +376,7 @@ function x(o, e) {
|
|
|
376
376
|
if (typeof t == "string" && t.includes(e) || typeof t == "object" && x(t, e)) return !0;
|
|
377
377
|
return !1;
|
|
378
378
|
}
|
|
379
|
-
class j extends
|
|
379
|
+
class j extends S {
|
|
380
380
|
constructor() {
|
|
381
381
|
super();
|
|
382
382
|
c(this, "serviceIdentifier", new w());
|
|
@@ -390,7 +390,7 @@ class j extends V {
|
|
|
390
390
|
}
|
|
391
391
|
async send(t, i) {
|
|
392
392
|
r().sfDebug && console.log(" SENDING EXCEPTION...");
|
|
393
|
-
const n = JSON.stringify(
|
|
393
|
+
const n = JSON.stringify(V.encode(i)), s = this.getVariables({ exceptionMessage: t, traceJson: n, reentrancyGuardPreactive: !1, library: r().packageLibraryType, version: r().version });
|
|
394
394
|
Z(this.endpoint, this.operationName, this.getQuery(), s);
|
|
395
395
|
}
|
|
396
396
|
getQuery() {
|
|
@@ -434,7 +434,7 @@ class _ {
|
|
|
434
434
|
c(this, "HEADER_EXCEPTION_GUARD", "reentrancy_guard_exception_preactive");
|
|
435
435
|
c(this, "contextManager");
|
|
436
436
|
c(this, "excludedDomains");
|
|
437
|
-
this.contextManager =
|
|
437
|
+
this.contextManager = B.getInstance(), this.excludedDomains = [...q, ...e].map((t) => t.toLowerCase()), r().sfDebug && console.log("[RequestInterceptor] Initialized.");
|
|
438
438
|
}
|
|
439
439
|
addReentrancyGuardHeaders(e) {
|
|
440
440
|
e.set(this.HEADER_LOG_GUARD, "true"), e.set(this.HEADER_PRINT_GUARD, "true"), e.set(this.HEADER_EXCEPTION_GUARD, "true");
|
|
@@ -445,8 +445,8 @@ class _ {
|
|
|
445
445
|
addTracingHeaders(e, t) {
|
|
446
446
|
const i = new URL(t).hostname;
|
|
447
447
|
if (this.shouldPropagateHeaders(i)) {
|
|
448
|
-
const n = this.contextManager.getOrSetSfTraceId();
|
|
449
|
-
e.set(this.HEADER_TRACING, n), r().sfDebug && console.log(`[RequestInterceptor] Added tracing header for ${t}`);
|
|
448
|
+
const n = this.contextManager.getOrSetSfTraceId(), s = sessionStorage.getItem("pageVisitUUID"), a = G();
|
|
449
|
+
e.set(this.HEADER_TRACING, `${n}/${s}/${a}`), r().sfDebug && console.log(`[RequestInterceptor] Added tracing header for ${t}`);
|
|
450
450
|
} else r().sfDebug && console.error(`[RequestInterceptor] Excluded domain: ${i}`);
|
|
451
451
|
this.addReentrancyGuardHeaders(e);
|
|
452
452
|
}
|
|
@@ -507,7 +507,7 @@ function se(o) {
|
|
|
507
507
|
console.error(n);
|
|
508
508
|
}
|
|
509
509
|
const { config: e } = function(n) {
|
|
510
|
-
return
|
|
510
|
+
return W = new T(n), { config: W };
|
|
511
511
|
}(o);
|
|
512
512
|
if (e.sfDebug && console.log("Updated configuration after applying options:", e), !e.apiKey || !e.apiGraphqlEndpoint) {
|
|
513
513
|
const n = `The required config is not provided: ${JSON.stringify(e)}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sailfish-ai/sf-veritas",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20-alpha0",
|
|
4
4
|
"publishPublicly": true,
|
|
5
5
|
"description": "A versatile Edge Runtime-compatible package for Next.js.",
|
|
6
6
|
"main": "./dist/sf-veritas.cjs",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@rollup/plugin-terser": "^0.4.4",
|
|
35
35
|
"@types/node": "^22.13.5",
|
|
36
|
+
"@types/uuid": "^10.0.0",
|
|
36
37
|
"rollup": "^3.29.5",
|
|
37
38
|
"rollup-plugin-dts": "^5.3.1",
|
|
38
39
|
"ts-node": "^10.9.2",
|