harperdb 4.7.21 → 4.7.22

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.
Files changed (26) hide show
  1. package/README.md +1 -1
  2. package/bin/harperdb.js +1 -1
  3. package/bin/lite.js +1 -1
  4. package/launchServiceScripts/launchNatsIngestService.js +1 -1
  5. package/launchServiceScripts/launchNatsReplyService.js +1 -1
  6. package/launchServiceScripts/launchUpdateNodes4-0-0.js +1 -1
  7. package/npm-shrinkwrap.json +41 -82
  8. package/package.json +1 -1
  9. package/server/jobs/jobProcess.js +1 -1
  10. package/server/threads/threadServer.js +1 -1
  11. package/studio/web/assets/{index-cZbhNKPv.js → index-BlG-cpH9.js} +2 -2
  12. package/studio/web/assets/{index-cZbhNKPv.js.map → index-BlG-cpH9.js.map} +1 -1
  13. package/studio/web/assets/{index-BMKHXWrK.js → index-BpmqvC1O.js} +5 -5
  14. package/studio/web/assets/{index-BMKHXWrK.js.map → index-BpmqvC1O.js.map} +1 -1
  15. package/studio/web/assets/{index-DP5O80Ld.js → index-DFovvBYL.js} +2 -2
  16. package/studio/web/assets/{index-DP5O80Ld.js.map → index-DFovvBYL.js.map} +1 -1
  17. package/studio/web/assets/{index.lazy-_WqXCxX6.js → index.lazy-BhReIK4y.js} +2 -2
  18. package/studio/web/assets/{index.lazy-_WqXCxX6.js.map → index.lazy-BhReIK4y.js.map} +1 -1
  19. package/studio/web/assets/{profiler-CiZIC7ZI.js → profiler-BhXa8xgR.js} +2 -2
  20. package/studio/web/assets/{profiler-CiZIC7ZI.js.map → profiler-BhXa8xgR.js.map} +1 -1
  21. package/studio/web/assets/{react-redux-D8H6oZRQ.js → react-redux-DkN7OdDj.js} +2 -2
  22. package/studio/web/assets/{react-redux-D8H6oZRQ.js.map → react-redux-DkN7OdDj.js.map} +1 -1
  23. package/studio/web/assets/{startRecording-oz3NQO5N.js → startRecording-Da15t52a.js} +2 -2
  24. package/studio/web/assets/{startRecording-oz3NQO5N.js.map → startRecording-Da15t52a.js.map} +1 -1
  25. package/studio/web/index.html +1 -1
  26. package/utility/scripts/restartHdb.js +1 -1
@@ -1,3 +1,3 @@
1
- var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{s as shouldMaskNode,C as CENSORED_STRING_MARK,b as buildUrl,N as NodePrivacyLevel,a as shouldMaskAttribute,c as CENSORED_IMG_MARK,d as sanitizeIfLongDataUrl,i as isSafari,g as getTextContent,r as reducePrivacyLevel,e as getNodeSelfPrivacyLevel,P as PRIVACY_ATTR_VALUE_HIDDEN,f as PRIVACY_ATTR_NAME,h as hasChildNodes,j as isNodeShadowRoot,k as forEachChildNodes,t as timeStampNow,l as elapsed,m as getScrollY,n as getScrollX,o as isElementNode,p as getNodePrivacyLevel,q as getParentNode,u as isNodeShadowHost,v as isExperimentalFeatureEnabled,E as ExperimentalFeature,w as getViewportDimension,x as throttle,y as addEventListeners,z as addEventListener,A as initViewportObservable,B as noop,D as instrumentMethod,R as RumEventType,F as ActionType,G as instrumentSetter,H as requestIdleCallback,I as getMutationObserverConstructor,J as monitor,K as sendToExtension,L as addRecord,M as getSegmentsCount,O as addSegment,Q as addWroteData,S as isPageExitReason,T as clearTimeout,U as setTimeout,V as ONE_SECOND,W as addTelemetryMetrics,X as getEventBridge,Y as createHttpRequest,Z as canUseEventBridge,_ as addTelemetryDebug}from"./index-BMKHXWrK.js";const RecordType={FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Focus:6,ViewEnd:7,VisualViewport:8,FrustrationRecord:9,Change:12},NodeType={Document:0,DocumentType:1,Element:2,Text:3,CDATA:4,DocumentFragment:11},ChangeType={AddString:0,AddNode:1,RemoveNode:2,Attribute:3,Text:4,Size:5,ScrollPosition:6,AddStyleSheet:7,AttachedStyleSheets:8,MediaPlaybackState:9,VisualViewport:10},IncrementalSource={Mutation:0,MouseMove:1,MouseInteraction:2,Scroll:3,ViewportResize:4,Input:5,TouchMove:6,MediaInteraction:7,StyleSheetRule:8},MouseInteractionType={MouseUp:0,MouseDown:1,Click:2,ContextMenu:3,DblClick:4,Focus:5,Blur:6,TouchStart:7,TouchEnd:9},MediaInteractionType={Play:0,Pause:1};function createRootInsertionCursor(nodeIds){return createInsertionCursor(void 0,void 0,nodeIds)}__name(createRootInsertionCursor,"createRootInsertionCursor");function createInsertionCursor(parentId,nextSiblingId,nodeIds){let cursor={container:void 0,parentId,previousSiblingId:void 0,nextSiblingId};const computeInsertionPoint=__name(nodeId=>cursor.previousSiblingId===nodeId-1?0:cursor.nextSiblingId!==void 0?cursor.nextSiblingId-nodeId:cursor.parentId!==void 0?nodeId-cursor.parentId:null,"computeInsertionPoint");return{advance(node){const nodeId=nodeIds.getOrInsert(node),insertionPoint=computeInsertionPoint(nodeId);return cursor.previousSiblingId=nodeId,{nodeId,insertionPoint}},ascend(){cursor.container&&(cursor=cursor.container)},descend(){cursor.previousSiblingId!==void 0&&(cursor={container:cursor,parentId:cursor.previousSiblingId,previousSiblingId:void 0,nextSiblingId:void 0})}}}__name(createInsertionCursor,"createInsertionCursor");function getElementInputValue(element,nodePrivacyLevel){const tagName=element.tagName,value=element.value;if(shouldMaskNode(element,nodePrivacyLevel)){const type=element.type;return tagName==="INPUT"&&(type==="button"||type==="submit"||type==="reset")?value:!value||tagName==="OPTION"?void 0:CENSORED_STRING_MARK}if(tagName==="OPTION"||tagName==="SELECT")return element.value;if(!(tagName!=="INPUT"&&tagName!=="TEXTAREA"))return value}__name(getElementInputValue,"getElementInputValue");const URL_IN_CSS_REF=/url\((?:(')([^']*)'|(")([^"]*)"|([^)]*))\)/gm,ABSOLUTE_URL=/^[A-Za-z]+:|^\/\//,DATA_URI=/^["']?data:.*,/i;function switchToAbsoluteUrl(cssText,cssHref){return cssText.replace(URL_IN_CSS_REF,(matchingSubstring,singleQuote,urlWrappedInSingleQuotes,doubleQuote,urlWrappedInDoubleQuotes,urlNotWrappedInQuotes)=>{const url=urlWrappedInSingleQuotes||urlWrappedInDoubleQuotes||urlNotWrappedInQuotes;if(!cssHref||!url||ABSOLUTE_URL.test(url)||DATA_URI.test(url))return matchingSubstring;const quote=singleQuote||doubleQuote||"";return`url(${quote}${makeUrlAbsolute(url,cssHref)}${quote})`})}__name(switchToAbsoluteUrl,"switchToAbsoluteUrl");function makeUrlAbsolute(url,baseUrl){try{return buildUrl(url,baseUrl).href}catch{return url}}__name(makeUrlAbsolute,"makeUrlAbsolute");const TAG_NAME_REGEX=/[^a-z1-6-_]/;function getValidTagName(tagName){const processedTagName=tagName.toLowerCase().trim();return TAG_NAME_REGEX.test(processedTagName)?"div":processedTagName}__name(getValidTagName,"getValidTagName");function normalizedTagName(element){return element.tagName.toLowerCase()}__name(normalizedTagName,"normalizedTagName");function censoredImageForSize(width,height){return`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${width}' height='${height}' style='background-color:silver'%3E%3C/svg%3E`}__name(censoredImageForSize,"censoredImageForSize");function serializeStyleSheets(cssStyleSheets,transaction){if(cssStyleSheets===void 0||cssStyleSheets.length===0)return;const serializeStylesheet=__name(cssStyleSheet=>{const rules=cssStyleSheet.cssRules||cssStyleSheet.rules,cssRules=Array.from(rules,cssRule=>cssRule.cssText);return transaction.addMetric("cssText",cssRules.reduce((totalLength,rule)=>totalLength+rule.length,0)),{cssRules,disabled:cssStyleSheet.disabled||void 0,media:cssStyleSheet.media.length>0?Array.from(cssStyleSheet.media):void 0}},"serializeStylesheet"),styleSheets=[];for(let index=0;index<cssStyleSheets.length;index++)styleSheets.push(serializeStylesheet(cssStyleSheets[index]));return styleSheets}__name(serializeStyleSheets,"serializeStyleSheets");const MAX_ATTRIBUTE_VALUE_CHAR_LENGTH=1e6;function serializeAttribute(element,nodePrivacyLevel,attributeName,configuration){if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return null;const attributeValue=element.getAttribute(attributeName),tagName=element.tagName;if(shouldMaskAttribute(tagName,attributeName,attributeValue,nodePrivacyLevel,configuration)){if(tagName==="IMG"){const image=element;if(image.naturalWidth>0)return censoredImageForSize(image.naturalWidth,image.naturalHeight);const{width,height}=element.getBoundingClientRect();return width>0||height>0?censoredImageForSize(width,height):CENSORED_IMG_MARK}return tagName==="SOURCE"?CENSORED_IMG_MARK:CENSORED_STRING_MARK}return attributeValue&&sanitizeIfLongDataUrl(attributeValue,MAX_ATTRIBUTE_VALUE_CHAR_LENGTH)}__name(serializeAttribute,"serializeAttribute");function serializeAttributes(element,nodePrivacyLevel,transaction){return{...serializeDOMAttributes(element,nodePrivacyLevel,transaction),...serializeVirtualAttributes(element,nodePrivacyLevel,transaction)}}__name(serializeAttributes,"serializeAttributes");function serializeDOMAttributes(element,nodePrivacyLevel,transaction){if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return{};const attrs={},tagName=normalizedTagName(element);for(let i=0;i<element.attributes.length;i+=1){const attributeName=element.attributes.item(i).name,attributeValue=serializeAttribute(element,nodePrivacyLevel,attributeName,transaction.scope.configuration);attributeValue!==null&&(attrs[attributeName]=attributeValue)}if(element.value&&(tagName==="textarea"||tagName==="select"||tagName==="option"||tagName==="input")){const formValue=getElementInputValue(element,nodePrivacyLevel);formValue!==void 0&&(attrs.value=formValue)}if(tagName==="option"){const optionElement=element;optionElement.selected&&!shouldMaskNode(optionElement,nodePrivacyLevel)?attrs.selected="":delete attrs.selected}const inputElement=element;return tagName==="input"&&(inputElement.type==="radio"||inputElement.type==="checkbox")&&(inputElement.checked&&!shouldMaskNode(inputElement,nodePrivacyLevel)?attrs.checked="":delete attrs.checked),attrs}__name(serializeDOMAttributes,"serializeDOMAttributes");function serializeVirtualAttributes(element,nodePrivacyLevel,transaction){if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return{};const attrs={},doc=element.ownerDocument,tagName=normalizedTagName(element);if(tagName==="link"){const stylesheet=Array.from(doc.styleSheets).find(s=>s.href===element.href),cssText=getCssRulesString(stylesheet);cssText&&stylesheet&&(transaction.addMetric("cssText",cssText.length),attrs._cssText=cssText)}if(tagName==="style"&&element.sheet){const cssText=getCssRulesString(element.sheet);cssText&&(transaction.addMetric("cssText",cssText.length),attrs._cssText=cssText)}if(tagName==="audio"||tagName==="video"){const mediaElement=element;attrs.rr_mediaState=mediaElement.paused?"paused":"played"}let scrollTop,scrollLeft;switch(transaction.kind){case 0:scrollTop=Math.round(element.scrollTop),scrollLeft=Math.round(element.scrollLeft),(scrollTop||scrollLeft)&&transaction.scope.elementsScrollPositions.set(element,{scrollTop,scrollLeft});break;case 1:transaction.scope.elementsScrollPositions.has(element)&&({scrollTop,scrollLeft}=transaction.scope.elementsScrollPositions.get(element));break}return scrollLeft&&(attrs.rr_scrollLeft=scrollLeft),scrollTop&&(attrs.rr_scrollTop=scrollTop),attrs}__name(serializeVirtualAttributes,"serializeVirtualAttributes");function getCssRulesString(cssStyleSheet){if(!cssStyleSheet)return null;let rules;try{rules=cssStyleSheet.rules||cssStyleSheet.cssRules}catch{}if(!rules)return null;const styleSheetCssText=Array.from(rules,isSafari()?getCssRuleStringForSafari:getCssRuleString).join("");return switchToAbsoluteUrl(styleSheetCssText,cssStyleSheet.href)}__name(getCssRulesString,"getCssRulesString");function getCssRuleStringForSafari(rule){if(isCSSStyleRule(rule)&&rule.selectorText.includes(":")){const escapeColon=/(\[[\w-]+[^\\])(:[^\]]+\])/g;return rule.cssText.replace(escapeColon,"$1\\$2")}return getCssRuleString(rule)}__name(getCssRuleStringForSafari,"getCssRuleStringForSafari");function getCssRuleString(rule){return isCSSImportRule(rule)&&getCssRulesString(rule.styleSheet)||rule.cssText}__name(getCssRuleString,"getCssRuleString");function isCSSImportRule(rule){return"styleSheet"in rule}__name(isCSSImportRule,"isCSSImportRule");function isCSSStyleRule(rule){return"selectorText"in rule}__name(isCSSStyleRule,"isCSSStyleRule");function serializeNode(node,parentNodePrivacyLevel,transaction){switch(node.nodeType){case node.DOCUMENT_NODE:return serializeDocumentNode(node,parentNodePrivacyLevel,transaction);case node.DOCUMENT_FRAGMENT_NODE:return serializeDocumentFragmentNode(node,parentNodePrivacyLevel,transaction);case node.DOCUMENT_TYPE_NODE:return serializeDocumentTypeNode(node,transaction);case node.ELEMENT_NODE:return serializeElementNode(node,parentNodePrivacyLevel,transaction);case node.TEXT_NODE:return serializeTextNode(node,parentNodePrivacyLevel,transaction);case node.CDATA_SECTION_NODE:return serializeCDataNode(node,transaction);default:return null}}__name(serializeNode,"serializeNode");function serializeChildNodes(node,parentNodePrivacyLevel,transaction){const result=[];return forEachChildNodes(node,childNode=>{const serializedChildNode=serializeNode(childNode,parentNodePrivacyLevel,transaction);serializedChildNode&&result.push(serializedChildNode)}),result}__name(serializeChildNodes,"serializeChildNodes");function serializeDocumentNode(document2,parentNodePrivacyLevel,transaction){return{type:NodeType.Document,id:transaction.assignId(document2),childNodes:serializeChildNodes(document2,parentNodePrivacyLevel,transaction),adoptedStyleSheets:serializeStyleSheets(document2.adoptedStyleSheets,transaction)}}__name(serializeDocumentNode,"serializeDocumentNode");function serializeDocumentFragmentNode(element,parentNodePrivacyLevel,transaction){const isShadowRoot=isNodeShadowRoot(element);return isShadowRoot&&transaction.scope.shadowRootsController.addShadowRoot(element,transaction.scope),{type:NodeType.DocumentFragment,id:transaction.assignId(element),childNodes:serializeChildNodes(element,parentNodePrivacyLevel,transaction),isShadowRoot,adoptedStyleSheets:isShadowRoot?serializeStyleSheets(element.adoptedStyleSheets,transaction):void 0}}__name(serializeDocumentFragmentNode,"serializeDocumentFragmentNode");function serializeDocumentTypeNode(documentType,transaction){return{type:NodeType.DocumentType,id:transaction.assignId(documentType),name:documentType.name,publicId:documentType.publicId,systemId:documentType.systemId}}__name(serializeDocumentTypeNode,"serializeDocumentTypeNode");function serializeElementNode(element,parentNodePrivacyLevel,transaction){const tagName=getValidTagName(element.tagName),isSVG=isSVGElement$1(element)||void 0,nodePrivacyLevel=reducePrivacyLevel(getNodeSelfPrivacyLevel(element),parentNodePrivacyLevel);if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN){const{width,height}=element.getBoundingClientRect();return{type:NodeType.Element,id:transaction.assignId(element),tagName,attributes:{rr_width:`${width}px`,rr_height:`${height}px`,[PRIVACY_ATTR_NAME]:PRIVACY_ATTR_VALUE_HIDDEN},childNodes:[],isSVG}}if(nodePrivacyLevel===NodePrivacyLevel.IGNORE)return null;const id=transaction.assignId(element),attributes=serializeAttributes(element,nodePrivacyLevel,transaction);let childNodes=[];return hasChildNodes(element)&&tagName!=="style"&&(childNodes=serializeChildNodes(element,nodePrivacyLevel,transaction)),{type:NodeType.Element,id,tagName,attributes,childNodes,isSVG}}__name(serializeElementNode,"serializeElementNode");function isSVGElement$1(el){return el.tagName==="svg"||el instanceof SVGElement}__name(isSVGElement$1,"isSVGElement$1");function serializeTextNode(textNode,parentNodePrivacyLevel,transaction){const textContent=getTextContent(textNode,parentNodePrivacyLevel);return textContent===void 0?null:{type:NodeType.Text,id:transaction.assignId(textNode),textContent}}__name(serializeTextNode,"serializeTextNode");function serializeCDataNode(node,transaction){return{type:NodeType.CDATA,id:transaction.assignId(node),textContent:""}}__name(serializeCDataNode,"serializeCDataNode");function createSerializationStats(){return{cssText:{count:0,max:0,sum:0},serializationDuration:{count:0,max:0,sum:0}}}__name(createSerializationStats,"createSerializationStats");function updateSerializationStats(stats,metric,value){stats[metric].count+=1,stats[metric].max=Math.max(stats[metric].max,value),stats[metric].sum+=value}__name(updateSerializationStats,"updateSerializationStats");function aggregateSerializationStats(aggregateStats,stats){for(const metric of["cssText","serializationDuration"])aggregateStats[metric].count+=stats[metric].count,aggregateStats[metric].max=Math.max(aggregateStats[metric].max,stats[metric].max),aggregateStats[metric].sum+=stats[metric].sum}__name(aggregateSerializationStats,"aggregateSerializationStats");function createChangeEncoder(stringIds){let pendingChanges={};const convertStringsToStringReferences=__name(array=>{for(let index=0,length=array.length;index<length;index++){const item=array[index];if(typeof item=="string"){const previousSize=stringIds.size;array[index]=stringIds.getOrInsert(item),stringIds.size>previousSize&&add(ChangeType.AddString,item)}else Array.isArray(item)&&convertStringsToStringReferences(item)}},"convertStringsToStringReferences"),add=__name((type,data)=>{type in pendingChanges||(pendingChanges[type]=[type]),type!==ChangeType.AddString&&Array.isArray(data)&&convertStringsToStringReferences(data),pendingChanges[type].push(data)},"add");return{add,flush:__name(()=>{const changes=[];return[ChangeType.AddString,ChangeType.AddNode,ChangeType.RemoveNode,ChangeType.Attribute,ChangeType.Text,ChangeType.Size,ChangeType.ScrollPosition,ChangeType.AddStyleSheet,ChangeType.AttachedStyleSheets,ChangeType.MediaPlaybackState,ChangeType.VisualViewport].forEach(changeType=>{const change=pendingChanges[changeType];change&&changes.push(change)}),pendingChanges={},changes},"flush")}}__name(createChangeEncoder,"createChangeEncoder");function serializeInTransaction(kind,emitRecord,emitStats,scope,serialize){const records=[],stats=createSerializationStats(),transaction={add(record2){records.push(record2)},addMetric(metric,value){updateSerializationStats(stats,metric,value)},assignId(node){const id=scope.nodeIds.getOrInsert(node);return transaction.serializedNodeIds&&transaction.serializedNodeIds.add(id),id},kind,scope},start=timeStampNow();serialize(transaction),updateSerializationStats(stats,"serializationDuration",elapsed(start,timeStampNow()));for(const record2 of records)emitRecord(record2);emitStats(stats)}__name(serializeInTransaction,"serializeInTransaction");function serializeChangesInTransaction(kind,emitRecord,emitStats,scope,timestamp,serialize){const encoder=createChangeEncoder(scope.stringIds),stats=createSerializationStats(),transaction={addMetric(metric,value){updateSerializationStats(stats,metric,value)},addNode(...change){encoder.add(ChangeType.AddNode,change)},addStyleSheet(rules,mediaList,disabled){disabled?encoder.add(ChangeType.AddStyleSheet,[rules,mediaList||[],disabled]):mediaList?encoder.add(ChangeType.AddStyleSheet,[rules,mediaList]):encoder.add(ChangeType.AddStyleSheet,[rules])},attachStyleSheets(nodeId,sheetIds){const change=[nodeId];for(const sheetId of sheetIds)change.push(sheetId);encoder.add(ChangeType.AttachedStyleSheets,change)},setMediaPlaybackState(nodeId,state){encoder.add(ChangeType.MediaPlaybackState,[nodeId,state])},setScrollPosition(nodeId,x,y){encoder.add(ChangeType.ScrollPosition,[nodeId,x,y])},setSize(nodeId,width,height){encoder.add(ChangeType.Size,[nodeId,width,height])},kind,scope},start=timeStampNow();serialize(transaction),updateSerializationStats(stats,"serializationDuration",elapsed(start,timeStampNow()));const changes=encoder.flush();changes.length>0&&emitRecord({data:changes,type:RecordType.Change,timestamp}),emitStats(stats)}__name(serializeChangesInTransaction,"serializeChangesInTransaction");function serializeFullSnapshot(timestamp,kind,document2,emitRecord,emitStats,scope){serializeInTransaction(kind,emitRecord,emitStats,scope,transaction=>{const defaultPrivacyLevel=transaction.scope.configuration.defaultPrivacyLevel,record2={data:{node:serializeNode(document2,defaultPrivacyLevel,transaction),initialOffset:{left:getScrollX(),top:getScrollY()}},type:RecordType.FullSnapshot,timestamp};transaction.add(record2)})}__name(serializeFullSnapshot,"serializeFullSnapshot");function serializeNodeAsChange(cursor,node,parentPrivacyLevel,transaction){let privacyLevel;const selfPrivacyLevel=getNodeSelfPrivacyLevel(node);if(selfPrivacyLevel?privacyLevel=reducePrivacyLevel(selfPrivacyLevel,parentPrivacyLevel):privacyLevel=parentPrivacyLevel,privacyLevel===NodePrivacyLevel.HIDDEN){serializeHiddenNodePlaceholder(cursor,node,transaction);return}if(privacyLevel!==NodePrivacyLevel.IGNORE){switch(node.nodeType){case node.CDATA_SECTION_NODE:serializeCDataNodeAsChange(cursor,node,transaction);break;case node.DOCUMENT_NODE:serializeDocumentNodeAsChange(cursor,node,transaction);break;case node.DOCUMENT_FRAGMENT_NODE:serializeDocumentFragmentNodeAsChange(cursor,node,transaction);break;case node.DOCUMENT_TYPE_NODE:serializeDocumentTypeNodeAsChange(cursor,node,transaction);break;case node.ELEMENT_NODE:serializeElementNodeAsChange(cursor,node,privacyLevel,transaction);break;case node.TEXT_NODE:serializeTextNodeAsChange(cursor,node,privacyLevel,transaction);break;default:return}switch(node.nodeType){case node.CDATA_SECTION_NODE:case node.DOCUMENT_TYPE_NODE:case node.TEXT_NODE:return}node.nodeName!=="STYLE"&&(cursor.descend(),forEachChildNodes(node,childNode=>{serializeNodeAsChange(cursor,childNode,privacyLevel,transaction)}),cursor.ascend())}}__name(serializeNodeAsChange,"serializeNodeAsChange");function serializeDocumentNodeAsChange(cursor,document2,transaction){const{nodeId,insertionPoint}=cursor.advance(document2);transaction.addNode(insertionPoint,"#document"),transaction.setScrollPosition(nodeId,getScrollX(),getScrollY()),serializeStyleSheetsAsChange(document2.adoptedStyleSheets,nodeId,transaction)}__name(serializeDocumentNodeAsChange,"serializeDocumentNodeAsChange");function serializeDocumentFragmentNodeAsChange(cursor,documentFragment,transaction){const{nodeId,insertionPoint}=cursor.advance(documentFragment);if(!isNodeShadowRoot(documentFragment)){transaction.addNode(insertionPoint,"#document-fragment");return}transaction.addNode(insertionPoint,"#shadow-root"),transaction.scope.shadowRootsController.addShadowRoot(documentFragment,transaction.scope),serializeStyleSheetsAsChange(documentFragment.adoptedStyleSheets,nodeId,transaction)}__name(serializeDocumentFragmentNodeAsChange,"serializeDocumentFragmentNodeAsChange");function serializeDocumentTypeNodeAsChange(cursor,documentType,transaction){const{insertionPoint}=cursor.advance(documentType);transaction.addNode(insertionPoint,"#doctype",documentType.name,documentType.publicId,documentType.systemId)}__name(serializeDocumentTypeNodeAsChange,"serializeDocumentTypeNodeAsChange");function serializeElementNodeAsChange(cursor,element,privacyLevel,transaction){const{nodeId,insertionPoint}=cursor.advance(element),domAttributes=Object.entries(serializeDOMAttributes(element,privacyLevel,transaction));transaction.addNode(insertionPoint,encodedElementName(element),...domAttributes);const{_cssText:cssText,rr_mediaState:mediaState,rr_scrollLeft:scrollLeft,rr_scrollTop:scrollTop}=serializeVirtualAttributes(element,privacyLevel,transaction),linkOrStyle=element;if(cssText!==void 0&&linkOrStyle.sheet){const sheetId=transaction.scope.styleSheetIds.getOrInsert(linkOrStyle.sheet);transaction.addStyleSheet(cssText),transaction.attachStyleSheets(nodeId,[sheetId])}mediaState==="played"?transaction.setMediaPlaybackState(nodeId,MediaInteractionType.Play):mediaState==="paused"&&transaction.setMediaPlaybackState(nodeId,MediaInteractionType.Pause),(scrollLeft!==void 0||scrollTop!==void 0)&&transaction.setScrollPosition(nodeId,scrollLeft||0,scrollTop||0)}__name(serializeElementNodeAsChange,"serializeElementNodeAsChange");function serializeTextNodeAsChange(cursor,textNode,privacyLevel,transaction){const textContent=getTextContent(textNode,privacyLevel);if(textContent===void 0)return;const{insertionPoint}=cursor.advance(textNode);transaction.addNode(insertionPoint,"#text",textContent)}__name(serializeTextNodeAsChange,"serializeTextNodeAsChange");function serializeCDataNodeAsChange(cursor,cdataNode,transaction){const{insertionPoint}=cursor.advance(cdataNode);transaction.addNode(insertionPoint,"#cdata-section")}__name(serializeCDataNodeAsChange,"serializeCDataNodeAsChange");function serializeHiddenNodePlaceholder(cursor,node,transaction){if(!isElementNode(node))return;const{nodeId,insertionPoint}=cursor.advance(node);transaction.addNode(insertionPoint,encodedElementName(node),[PRIVACY_ATTR_NAME,PRIVACY_ATTR_VALUE_HIDDEN]);const{width,height}=node.getBoundingClientRect();transaction.setSize(nodeId,width,height)}__name(serializeHiddenNodePlaceholder,"serializeHiddenNodePlaceholder");function serializeStyleSheetsAsChange(sheets,nodeId,transaction){!sheets||sheets.length===0||transaction.attachStyleSheets(nodeId,sheets.map(sheet=>serializeStyleSheetAsChange(sheet,transaction)))}__name(serializeStyleSheetsAsChange,"serializeStyleSheetsAsChange");function serializeStyleSheetAsChange(sheet,transaction){const rules=Array.from(sheet.cssRules||sheet.rules,rule=>rule.cssText),mediaList=sheet.media.length>0?Array.from(sheet.media):void 0;return transaction.addMetric("cssText",rules.reduce((totalLength,rule)=>totalLength+rule.length,0)),transaction.addStyleSheet(rules,mediaList,sheet.disabled),transaction.scope.styleSheetIds.getOrInsert(sheet)}__name(serializeStyleSheetAsChange,"serializeStyleSheetAsChange");function encodedElementName(element){const nodeName=element.nodeName;return isSVGElement(element)?`svg>${nodeName}`:nodeName}__name(encodedElementName,"encodedElementName");function isSVGElement(element){return element.namespaceURI==="http://www.w3.org/2000/svg"}__name(isSVGElement,"isSVGElement");function serializeFullSnapshotAsChange(timestamp,kind,document2,emitRecord,emitStats,scope){scope.resetIds(),serializeChangesInTransaction(kind,emitRecord,emitStats,scope,timestamp,transaction=>{serializeNodeAsChange(createRootInsertionCursor(scope.nodeIds),document2,scope.configuration.defaultPrivacyLevel,transaction)})}__name(serializeFullSnapshotAsChange,"serializeFullSnapshotAsChange");function assembleIncrementalSnapshot(source,data,timestamp=timeStampNow()){return{data:{source,...data},type:RecordType.IncrementalSnapshot,timestamp}}__name(assembleIncrementalSnapshot,"assembleIncrementalSnapshot");function serializeMutations(timestamp,mutations,emitRecord,emitStats,scope){serializeInTransaction(2,emitRecord,emitStats,scope,transaction=>processMutations(timestamp,mutations,transaction))}__name(serializeMutations,"serializeMutations");function processMutations(timestamp,mutations,transaction){const nodePrivacyLevelCache=new Map;mutations.filter(mutation=>mutation.type==="childList").forEach(mutation=>{mutation.removedNodes.forEach(removedNode=>{traverseRemovedShadowDom(removedNode,transaction.scope.shadowRootsController.removeShadowRoot)})});const filteredMutations=mutations.filter(mutation=>mutation.target.isConnected&&idsAreAssignedForNodeAndAncestors(mutation.target,transaction.scope.nodeIds)&&getNodePrivacyLevel(mutation.target,transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache)!==NodePrivacyLevel.HIDDEN),{adds,removes,hasBeenSerialized}=processChildListMutations(filteredMutations.filter(mutation=>mutation.type==="childList"),nodePrivacyLevelCache,transaction),texts=processCharacterDataMutations(filteredMutations.filter(mutation=>mutation.type==="characterData"&&!hasBeenSerialized(mutation.target)),nodePrivacyLevelCache,transaction),attributes=processAttributesMutations(filteredMutations.filter(mutation=>mutation.type==="attributes"&&!hasBeenSerialized(mutation.target)),nodePrivacyLevelCache,transaction);if(!texts.length&&!attributes.length&&!removes.length&&!adds.length)return;const record2=assembleIncrementalSnapshot(IncrementalSource.Mutation,{adds,removes,texts,attributes},timestamp);transaction.add(record2)}__name(processMutations,"processMutations");function processChildListMutations(mutations,nodePrivacyLevelCache,transaction){const addedAndMovedNodes=new Set,removedNodes=new Map;for(const mutation of mutations)mutation.addedNodes.forEach(node=>{addedAndMovedNodes.add(node)}),mutation.removedNodes.forEach(node=>{addedAndMovedNodes.has(node)||removedNodes.set(node,mutation.target),addedAndMovedNodes.delete(node)});const sortedAddedAndMovedNodes=Array.from(addedAndMovedNodes);sortAddedAndMovedNodes(sortedAddedAndMovedNodes),transaction.serializedNodeIds=new Set;const addedNodeMutations=[];for(const node of sortedAddedAndMovedNodes){if(hasBeenSerialized(node))continue;const parentNodePrivacyLevel=getNodePrivacyLevel(node.parentNode,transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache);if(parentNodePrivacyLevel===NodePrivacyLevel.HIDDEN||parentNodePrivacyLevel===NodePrivacyLevel.IGNORE)continue;const serializedNode=serializeNode(node,parentNodePrivacyLevel,transaction);if(!serializedNode)continue;const parentNode=getParentNode(node);addedNodeMutations.push({nextId:getNextSibling(node),parentId:transaction.scope.nodeIds.get(parentNode),node:serializedNode})}const removedNodeMutations=[];return removedNodes.forEach((parent,node)=>{const parentId=transaction.scope.nodeIds.get(parent),id=transaction.scope.nodeIds.get(node);parentId!==void 0&&id!==void 0&&removedNodeMutations.push({parentId,id})}),{adds:addedNodeMutations,removes:removedNodeMutations,hasBeenSerialized};function hasBeenSerialized(node){var _a;const id=transaction.scope.nodeIds.get(node);return id!==void 0&&((_a=transaction.serializedNodeIds)===null||_a===void 0?void 0:_a.has(id))}__name(hasBeenSerialized,"hasBeenSerialized");function getNextSibling(node){let nextSibling=node.nextSibling;for(;nextSibling;){const id=transaction.scope.nodeIds.get(nextSibling);if(id!==void 0)return id;nextSibling=nextSibling.nextSibling}return null}__name(getNextSibling,"getNextSibling")}__name(processChildListMutations,"processChildListMutations");function processCharacterDataMutations(mutations,nodePrivacyLevelCache,transaction){var _a;const textMutations=[],handledNodes=new Set,filteredMutations=mutations.filter(mutation=>handledNodes.has(mutation.target)?!1:(handledNodes.add(mutation.target),!0));for(const mutation of filteredMutations){if(mutation.target.textContent===mutation.oldValue)continue;const id=transaction.scope.nodeIds.get(mutation.target);if(id===void 0)continue;const parentNodePrivacyLevel=getNodePrivacyLevel(getParentNode(mutation.target),transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache);parentNodePrivacyLevel===NodePrivacyLevel.HIDDEN||parentNodePrivacyLevel===NodePrivacyLevel.IGNORE||textMutations.push({id,value:(_a=getTextContent(mutation.target,parentNodePrivacyLevel))!==null&&_a!==void 0?_a:null})}return textMutations}__name(processCharacterDataMutations,"processCharacterDataMutations");function processAttributesMutations(mutations,nodePrivacyLevelCache,transaction){const attributeMutations=[],handledElements=new Map,filteredMutations=mutations.filter(mutation=>{const handledAttributes=handledElements.get(mutation.target);return handledAttributes&&handledAttributes.has(mutation.attributeName)?!1:(handledAttributes?handledAttributes.add(mutation.attributeName):handledElements.set(mutation.target,new Set([mutation.attributeName])),!0)}),emittedMutations=new Map;for(const mutation of filteredMutations){if(mutation.target.getAttribute(mutation.attributeName)===mutation.oldValue)continue;const id=transaction.scope.nodeIds.get(mutation.target);if(id===void 0)continue;const privacyLevel=getNodePrivacyLevel(mutation.target,transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache),attributeValue=serializeAttribute(mutation.target,privacyLevel,mutation.attributeName,transaction.scope.configuration);let transformedValue;if(mutation.attributeName==="value"){const inputValue=getElementInputValue(mutation.target,privacyLevel);if(inputValue===void 0)continue;transformedValue=inputValue}else typeof attributeValue=="string"?transformedValue=attributeValue:transformedValue=null;let emittedMutation=emittedMutations.get(mutation.target);emittedMutation||(emittedMutation={id,attributes:{}},attributeMutations.push(emittedMutation),emittedMutations.set(mutation.target,emittedMutation)),emittedMutation.attributes[mutation.attributeName]=transformedValue}return attributeMutations}__name(processAttributesMutations,"processAttributesMutations");function sortAddedAndMovedNodes(nodes){nodes.sort((a,b)=>{const position=a.compareDocumentPosition(b);return position&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:position&Node.DOCUMENT_POSITION_CONTAINS||position&Node.DOCUMENT_POSITION_FOLLOWING?1:position&Node.DOCUMENT_POSITION_PRECEDING?-1:0})}__name(sortAddedAndMovedNodes,"sortAddedAndMovedNodes");function traverseRemovedShadowDom(removedNode,shadowDomRemovedCallback){isNodeShadowHost(removedNode)&&shadowDomRemovedCallback(removedNode.shadowRoot),forEachChildNodes(removedNode,childNode=>traverseRemovedShadowDom(childNode,shadowDomRemovedCallback))}__name(traverseRemovedShadowDom,"traverseRemovedShadowDom");function idsAreAssignedForNodeAndAncestors(node,nodeIds){let current=node;for(;current;){if(nodeIds.get(current)===void 0&&!isNodeShadowRoot(current))return!1;current=getParentNode(current)}return!0}__name(idsAreAssignedForNodeAndAncestors,"idsAreAssignedForNodeAndAncestors");const TOLERANCE=25;function isVisualViewportFactoredIn(visualViewport){return Math.abs(visualViewport.pageTop-visualViewport.offsetTop-window.scrollY)>TOLERANCE||Math.abs(visualViewport.pageLeft-visualViewport.offsetLeft-window.scrollX)>TOLERANCE}__name(isVisualViewportFactoredIn,"isVisualViewportFactoredIn");const convertMouseEventToLayoutCoordinates=__name((clientX,clientY)=>{const visualViewport=window.visualViewport,normalized={layoutViewportX:clientX,layoutViewportY:clientY,visualViewportX:clientX,visualViewportY:clientY};if(visualViewport)isVisualViewportFactoredIn(visualViewport)?(normalized.layoutViewportX=Math.round(clientX+visualViewport.offsetLeft),normalized.layoutViewportY=Math.round(clientY+visualViewport.offsetTop)):(normalized.visualViewportX=Math.round(clientX-visualViewport.offsetLeft),normalized.visualViewportY=Math.round(clientY-visualViewport.offsetTop));else return normalized;return normalized},"convertMouseEventToLayoutCoordinates"),getVisualViewport=__name(visualViewport=>({scale:visualViewport.scale,offsetLeft:visualViewport.offsetLeft,offsetTop:visualViewport.offsetTop,pageLeft:visualViewport.pageLeft,pageTop:visualViewport.pageTop,height:visualViewport.height,width:visualViewport.width}),"getVisualViewport");function startFullSnapshots(lifeCycle,emitRecord,emitStats,flushMutations,scope,serialize=defaultSerializeFullSnapshotCallback()){takeFullSnapshot(timeStampNow(),0,emitRecord,emitStats,scope,serialize);const{unsubscribe}=lifeCycle.subscribe(2,view=>{flushMutations(),takeFullSnapshot(view.startClocks.timeStamp,1,emitRecord,emitStats,scope,serialize)});return{stop:unsubscribe}}__name(startFullSnapshots,"startFullSnapshots");function takeFullSnapshot(timestamp,kind,emitRecord,emitStats,scope,serialize=defaultSerializeFullSnapshotCallback()){const{width,height}=getViewportDimension();emitRecord({data:{height,href:window.location.href,width},type:RecordType.Meta,timestamp}),emitRecord({data:{has_focus:document.hasFocus()},type:RecordType.Focus,timestamp}),serialize(timestamp,kind,document,emitRecord,emitStats,scope),window.visualViewport&&emitRecord({data:getVisualViewport(window.visualViewport),type:RecordType.VisualViewport,timestamp})}__name(takeFullSnapshot,"takeFullSnapshot");function defaultSerializeFullSnapshotCallback(){return isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS)?serializeFullSnapshotAsChange:serializeFullSnapshot}__name(defaultSerializeFullSnapshotCallback,"defaultSerializeFullSnapshotCallback");function createEventIds(){return createWeakIdMap(1)}__name(createEventIds,"createEventIds");function createNodeIds(){return createWeakIdMap(0)}__name(createNodeIds,"createNodeIds");function createStringIds(){return createIdMap(0)}__name(createStringIds,"createStringIds");function createStyleSheetIds(){return createWeakIdMap(0)}__name(createStyleSheetIds,"createStyleSheetIds");function createIdMap(firstId){return createItemIds(()=>new Map,firstId)}__name(createIdMap,"createIdMap");function createWeakIdMap(firstId){return createItemIds(()=>new WeakMap,firstId)}__name(createWeakIdMap,"createWeakIdMap");function createItemIds(createMap,firstId){let map=createMap(),nextId=firstId;const get=__name(object=>map.get(object),"get");return{clear(){nextId!==firstId&&(map=createMap(),nextId=firstId)},delete(object){map.delete(object)},get,getOrInsert(object){let id=get(object);return id===void 0&&(id=nextId++,map.set(object,id)),id},get nextId(){return nextId},get size(){return nextId-firstId}}}__name(createItemIds,"createItemIds");function createRecordingScope(configuration,elementsScrollPositions,shadowRootsController){const eventIds=createEventIds(),nodeIds=createNodeIds(),stringIds=createStringIds(),styleSheetIds=createStyleSheetIds(),scope={resetIds(){scope.eventIds.clear(),scope.nodeIds.clear(),scope.stringIds.clear(),scope.styleSheetIds.clear()},configuration,elementsScrollPositions,eventIds,nodeIds,shadowRootsController,stringIds,styleSheetIds};return scope}__name(createRecordingScope,"createRecordingScope");function createElementsScrollPositions(){const scrollPositionsByElement=new WeakMap;return{set(element,scrollPositions){element===document&&!document.scrollingElement||scrollPositionsByElement.set(element===document?document.scrollingElement:element,scrollPositions)},get(element){return scrollPositionsByElement.get(element)},has(element){return scrollPositionsByElement.has(element)}}}__name(createElementsScrollPositions,"createElementsScrollPositions");function isTouchEvent(event){return!!event.changedTouches}__name(isTouchEvent,"isTouchEvent");function getEventTarget(event){return event.composed===!0&&isNodeShadowHost(event.target)?event.composedPath()[0]:event.target}__name(getEventTarget,"getEventTarget");const MOUSE_MOVE_OBSERVER_THRESHOLD=50;function trackMove(emitRecord,scope){const{throttled:updatePosition,cancel:cancelThrottle}=throttle(event=>{const target=getEventTarget(event),id=scope.nodeIds.get(target);if(id===void 0)return;const coordinates=tryToComputeCoordinates(event);if(!coordinates)return;const position={id,timeOffset:0,x:coordinates.x,y:coordinates.y};emitRecord(assembleIncrementalSnapshot(isTouchEvent(event)?IncrementalSource.TouchMove:IncrementalSource.MouseMove,{positions:[position]}))},MOUSE_MOVE_OBSERVER_THRESHOLD,{trailing:!1}),{stop:removeListener}=addEventListeners(scope.configuration,document,["mousemove","touchmove"],updatePosition,{capture:!0,passive:!0});return{stop:__name(()=>{removeListener(),cancelThrottle()},"stop")}}__name(trackMove,"trackMove");function tryToComputeCoordinates(event){let{clientX:x,clientY:y}=isTouchEvent(event)?event.changedTouches[0]:event;if(window.visualViewport){const{visualViewportX,visualViewportY}=convertMouseEventToLayoutCoordinates(x,y);x=visualViewportX,y=visualViewportY}if(!(!Number.isFinite(x)||!Number.isFinite(y)))return{x,y}}__name(tryToComputeCoordinates,"tryToComputeCoordinates");const eventTypeToMouseInteraction={pointerup:MouseInteractionType.MouseUp,mousedown:MouseInteractionType.MouseDown,click:MouseInteractionType.Click,contextmenu:MouseInteractionType.ContextMenu,dblclick:MouseInteractionType.DblClick,focus:MouseInteractionType.Focus,blur:MouseInteractionType.Blur,touchstart:MouseInteractionType.TouchStart,touchend:MouseInteractionType.TouchEnd};function trackMouseInteraction(emitRecord,scope){const handler=__name(event=>{const target=getEventTarget(event),id=scope.nodeIds.get(target);if(id===void 0||getNodePrivacyLevel(target,scope.configuration.defaultPrivacyLevel)===NodePrivacyLevel.HIDDEN)return;const type=eventTypeToMouseInteraction[event.type];let interaction;if(type!==MouseInteractionType.Blur&&type!==MouseInteractionType.Focus){const coordinates=tryToComputeCoordinates(event);if(!coordinates)return;interaction={id,type,x:coordinates.x,y:coordinates.y}}else interaction={id,type};emitRecord({id:scope.eventIds.getOrInsert(event),...assembleIncrementalSnapshot(IncrementalSource.MouseInteraction,interaction)})},"handler");return addEventListeners(scope.configuration,document,Object.keys(eventTypeToMouseInteraction),handler,{capture:!0,passive:!0})}__name(trackMouseInteraction,"trackMouseInteraction");const SCROLL_OBSERVER_THRESHOLD=100;function trackScroll(target,emitRecord,scope){const{throttled:updatePosition,cancel:cancelThrottle}=throttle(event=>{const target2=getEventTarget(event);if(!target2)return;const id=scope.nodeIds.get(target2);if(id===void 0||getNodePrivacyLevel(target2,scope.configuration.defaultPrivacyLevel)===NodePrivacyLevel.HIDDEN)return;const scrollPositions=target2===document?{scrollTop:getScrollY(),scrollLeft:getScrollX()}:{scrollTop:Math.round(target2.scrollTop),scrollLeft:Math.round(target2.scrollLeft)};scope.elementsScrollPositions.set(target2,scrollPositions),emitRecord(assembleIncrementalSnapshot(IncrementalSource.Scroll,{id,x:scrollPositions.scrollLeft,y:scrollPositions.scrollTop}))},SCROLL_OBSERVER_THRESHOLD),{stop:removeListener}=addEventListener(scope.configuration,target,"scroll",updatePosition,{capture:!0,passive:!0});return{stop:__name(()=>{removeListener(),cancelThrottle()},"stop")}}__name(trackScroll,"trackScroll");const VISUAL_VIEWPORT_OBSERVER_THRESHOLD=200;function trackViewportResize(emitRecord,scope){const viewportResizeSubscription=initViewportObservable(scope.configuration).subscribe(data=>{emitRecord(assembleIncrementalSnapshot(IncrementalSource.ViewportResize,data))});return{stop:__name(()=>{viewportResizeSubscription.unsubscribe()},"stop")}}__name(trackViewportResize,"trackViewportResize");function trackVisualViewportResize(emitRecord,scope){const visualViewport=window.visualViewport;if(!visualViewport)return{stop:noop};const{throttled:updateDimension,cancel:cancelThrottle}=throttle(()=>{emitRecord({data:getVisualViewport(visualViewport),type:RecordType.VisualViewport,timestamp:timeStampNow()})},VISUAL_VIEWPORT_OBSERVER_THRESHOLD,{trailing:!1}),{stop:removeListener}=addEventListeners(scope.configuration,visualViewport,["resize","scroll"],updateDimension,{capture:!0,passive:!0});return{stop:__name(()=>{removeListener(),cancelThrottle()},"stop")}}__name(trackVisualViewportResize,"trackVisualViewportResize");function trackMediaInteraction(emitRecord,scope){return addEventListeners(scope.configuration,document,["play","pause"],event=>{const target=getEventTarget(event);if(!target)return;const id=scope.nodeIds.get(target);id===void 0||getNodePrivacyLevel(target,scope.configuration.defaultPrivacyLevel)===NodePrivacyLevel.HIDDEN||emitRecord(assembleIncrementalSnapshot(IncrementalSource.MediaInteraction,{id,type:event.type==="play"?MediaInteractionType.Play:MediaInteractionType.Pause}))},{capture:!0,passive:!0})}__name(trackMediaInteraction,"trackMediaInteraction");function trackStyleSheet(emitRecord,scope){function checkStyleSheetAndCallback(styleSheet,callback){if(!styleSheet||!styleSheet.ownerNode)return;const id=scope.nodeIds.get(styleSheet.ownerNode);id!==void 0&&callback(id)}__name(checkStyleSheetAndCallback,"checkStyleSheetAndCallback");const instrumentationStoppers=[instrumentMethod(CSSStyleSheet.prototype,"insertRule",({target:styleSheet,parameters:[rule,index]})=>{checkStyleSheetAndCallback(styleSheet,id=>emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,adds:[{rule,index}]})))}),instrumentMethod(CSSStyleSheet.prototype,"deleteRule",({target:styleSheet,parameters:[index]})=>{checkStyleSheetAndCallback(styleSheet,id=>emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,removes:[{index}]})))})];typeof CSSGroupingRule<"u"?instrumentGroupingCSSRuleClass(CSSGroupingRule):(instrumentGroupingCSSRuleClass(CSSMediaRule),instrumentGroupingCSSRuleClass(CSSSupportsRule));function instrumentGroupingCSSRuleClass(cls){instrumentationStoppers.push(instrumentMethod(cls.prototype,"insertRule",({target:styleSheet,parameters:[rule,index]})=>{checkStyleSheetAndCallback(styleSheet.parentStyleSheet,id=>{const path=getPathToNestedCSSRule(styleSheet);path&&(path.push(index||0),emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,adds:[{rule,index:path}]})))})}),instrumentMethod(cls.prototype,"deleteRule",({target:styleSheet,parameters:[index]})=>{checkStyleSheetAndCallback(styleSheet.parentStyleSheet,id=>{const path=getPathToNestedCSSRule(styleSheet);path&&(path.push(index),emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,removes:[{index:path}]})))})}))}return __name(instrumentGroupingCSSRuleClass,"instrumentGroupingCSSRuleClass"),{stop:__name(()=>{instrumentationStoppers.forEach(stopper=>stopper.stop())},"stop")}}__name(trackStyleSheet,"trackStyleSheet");function getPathToNestedCSSRule(rule){const path=[];let currentRule=rule;for(;currentRule.parentRule;){const index2=Array.from(currentRule.parentRule.cssRules).indexOf(currentRule);path.unshift(index2),currentRule=currentRule.parentRule}if(!currentRule.parentStyleSheet)return;const index=Array.from(currentRule.parentStyleSheet.cssRules).indexOf(currentRule);return path.unshift(index),path}__name(getPathToNestedCSSRule,"getPathToNestedCSSRule");function trackFocus(emitRecord,scope){return addEventListeners(scope.configuration,window,["focus","blur"],()=>{emitRecord({data:{has_focus:document.hasFocus()},type:RecordType.Focus,timestamp:timeStampNow()})})}__name(trackFocus,"trackFocus");function trackFrustration(lifeCycle,emitRecord,scope){const frustrationSubscription=lifeCycle.subscribe(12,data=>{var _a,_b;data.rawRumEvent.type===RumEventType.ACTION&&data.rawRumEvent.action.type===ActionType.CLICK&&(!((_b=(_a=data.rawRumEvent.action.frustration)===null||_a===void 0?void 0:_a.type)===null||_b===void 0)&&_b.length)&&"events"in data.domainContext&&data.domainContext.events&&data.domainContext.events.length&&emitRecord({timestamp:data.rawRumEvent.date,type:RecordType.FrustrationRecord,data:{frustrationTypes:data.rawRumEvent.action.frustration.type,recordIds:data.domainContext.events.map(e=>scope.eventIds.getOrInsert(e))}})});return{stop:__name(()=>{frustrationSubscription.unsubscribe()},"stop")}}__name(trackFrustration,"trackFrustration");function trackViewEnd(lifeCycle,emitRecord,flushMutations){const viewEndSubscription=lifeCycle.subscribe(5,()=>{flushMutations(),emitRecord({timestamp:timeStampNow(),type:RecordType.ViewEnd})});return{stop:__name(()=>{viewEndSubscription.unsubscribe()},"stop")}}__name(trackViewEnd,"trackViewEnd");function trackInput(target,emitRecord,scope){const defaultPrivacyLevel=scope.configuration.defaultPrivacyLevel,lastInputStateMap=new WeakMap,isShadowRoot=target!==document,{stop:stopEventListeners}=addEventListeners(scope.configuration,target,isShadowRoot?["change"]:["input","change"],event=>{const target2=getEventTarget(event);(target2 instanceof HTMLInputElement||target2 instanceof HTMLTextAreaElement||target2 instanceof HTMLSelectElement)&&onElementChange(target2)},{capture:!0,passive:!0});let stopPropertySetterInstrumentation;if(isShadowRoot)stopPropertySetterInstrumentation=noop;else{const instrumentationStoppers=[instrumentSetter(HTMLInputElement.prototype,"value",onElementChange),instrumentSetter(HTMLInputElement.prototype,"checked",onElementChange),instrumentSetter(HTMLSelectElement.prototype,"value",onElementChange),instrumentSetter(HTMLTextAreaElement.prototype,"value",onElementChange),instrumentSetter(HTMLSelectElement.prototype,"selectedIndex",onElementChange)];stopPropertySetterInstrumentation=__name(()=>{instrumentationStoppers.forEach(stopper=>stopper.stop())},"stopPropertySetterInstrumentation")}return{stop:__name(()=>{stopPropertySetterInstrumentation(),stopEventListeners()},"stop")};function onElementChange(target2){const nodePrivacyLevel=getNodePrivacyLevel(target2,defaultPrivacyLevel);if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return;const type=target2.type;let inputState;if(type==="radio"||type==="checkbox"){if(shouldMaskNode(target2,nodePrivacyLevel))return;inputState={isChecked:target2.checked}}else{const value=getElementInputValue(target2,nodePrivacyLevel);if(value===void 0)return;inputState={text:value}}createRecordIfStateChanged(target2,inputState);const name=target2.name;type==="radio"&&name&&target2.checked&&document.querySelectorAll(`input[type="radio"][name="${CSS.escape(name)}"]`).forEach(el=>{el!==target2&&createRecordIfStateChanged(el,{isChecked:!1})})}function createRecordIfStateChanged(target2,inputState){const id=scope.nodeIds.get(target2);if(id===void 0)return;const lastInputState=lastInputStateMap.get(target2);(!lastInputState||lastInputState.text!==inputState.text||lastInputState.isChecked!==inputState.isChecked)&&(lastInputStateMap.set(target2,inputState),emitRecord(assembleIncrementalSnapshot(IncrementalSource.Input,{id,...inputState})))}}__name(trackInput,"trackInput");const MUTATION_PROCESS_MAX_DELAY=100,MUTATION_PROCESS_MIN_DELAY=16;function createMutationBatch(processMutationBatch){let cancelScheduledFlush=noop,pendingMutations=[];function flush(){cancelScheduledFlush(),processMutationBatch(pendingMutations),pendingMutations=[]}__name(flush,"flush");const{throttled:throttledFlush,cancel:cancelThrottle}=throttle(flush,MUTATION_PROCESS_MIN_DELAY,{leading:!1});return{addMutations:__name(mutations=>{pendingMutations.length===0&&(cancelScheduledFlush=requestIdleCallback(throttledFlush,{timeout:MUTATION_PROCESS_MAX_DELAY})),pendingMutations.push(...mutations)},"addMutations"),flush,stop:__name(()=>{cancelScheduledFlush(),cancelThrottle()},"stop")}}__name(createMutationBatch,"createMutationBatch");function trackMutation(target,emitRecord,emitStats,scope,serialize=defaultSerializeMutationsCallback()){const MutationObserver=getMutationObserverConstructor();if(!MutationObserver)return{stop:noop,flush:noop};const mutationBatch=createMutationBatch(mutations=>{serialize(timeStampNow(),mutations.concat(observer.takeRecords()),emitRecord,emitStats,scope)}),observer=new MutationObserver(monitor(mutationBatch.addMutations));return observer.observe(target,{attributeOldValue:!0,attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{stop:__name(()=>{observer.disconnect(),mutationBatch.stop()},"stop"),flush:__name(()=>{mutationBatch.flush()},"flush")}}__name(trackMutation,"trackMutation");function defaultSerializeMutationsCallback(){return serializeMutations}__name(defaultSerializeMutationsCallback,"defaultSerializeMutationsCallback");const initShadowRootsController=__name((emitRecord,emitStats)=>{const controllerByShadowRoot=new Map;return{addShadowRoot:__name((shadowRoot,scope)=>{if(controllerByShadowRoot.has(shadowRoot))return;const mutationTracker=trackMutation(shadowRoot,emitRecord,emitStats,scope),inputTracker=trackInput(shadowRoot,emitRecord,scope),scrollTracker=trackScroll(shadowRoot,emitRecord,scope);controllerByShadowRoot.set(shadowRoot,{flush:__name(()=>mutationTracker.flush(),"flush"),stop:__name(()=>{mutationTracker.stop(),inputTracker.stop(),scrollTracker.stop()},"stop")})},"addShadowRoot"),removeShadowRoot:__name(shadowRoot=>{const entry=controllerByShadowRoot.get(shadowRoot);entry&&(entry.stop(),controllerByShadowRoot.delete(shadowRoot))},"removeShadowRoot"),stop:__name(()=>{controllerByShadowRoot.forEach(({stop})=>stop())},"stop"),flush:__name(()=>{controllerByShadowRoot.forEach(({flush})=>flush())},"flush")}},"initShadowRootsController");function record(options){const{emitRecord,emitStats,configuration,lifeCycle}=options;if(!emitRecord||!emitStats)throw new Error("emit functions are required");const processRecord=__name(record2=>{emitRecord(record2),sendToExtension("record",{record:record2});const view=options.viewHistory.findView();addRecord(view.id)},"processRecord"),shadowRootsController=initShadowRootsController(processRecord,emitStats),scope=createRecordingScope(configuration,createElementsScrollPositions(),shadowRootsController),{stop:stopFullSnapshots}=startFullSnapshots(lifeCycle,processRecord,emitStats,flushMutations,scope);function flushMutations(){shadowRootsController.flush(),mutationTracker.flush()}__name(flushMutations,"flushMutations");const mutationTracker=trackMutation(document,processRecord,emitStats,scope),trackers=[mutationTracker,trackMove(processRecord,scope),trackMouseInteraction(processRecord,scope),trackScroll(document,processRecord,scope),trackViewportResize(processRecord,scope),trackInput(document,processRecord,scope),trackMediaInteraction(processRecord,scope),trackStyleSheet(processRecord,scope),trackFocus(processRecord,scope),trackVisualViewportResize(processRecord,scope),trackFrustration(lifeCycle,processRecord,scope),trackViewEnd(lifeCycle,processRecord,flushMutations)];return{stop:__name(()=>{shadowRootsController.stop(),trackers.forEach(tracker=>tracker.stop()),stopFullSnapshots()},"stop"),flushMutations,shadowRootsController}}__name(record,"record");function buildReplayPayload(data,metadata,stats,rawSegmentBytesCount){const formData=new FormData;formData.append("segment",new Blob([data],{type:"application/octet-stream"}),`${metadata.session.id}-${metadata.start}`);const metadataAndSegmentSizes={raw_segment_size:rawSegmentBytesCount,compressed_segment_size:data.byteLength,...metadata},serializedMetadataAndSegmentSizes=JSON.stringify(metadataAndSegmentSizes);return formData.append("event",new Blob([serializedMetadataAndSegmentSizes],{type:"application/json"})),{data:formData,bytesCount:data.byteLength,cssText:stats.cssText,isFullSnapshot:metadata.index_in_view===0,rawSize:rawSegmentBytesCount,recordCount:metadata.records_count,serializationDuration:stats.serializationDuration}}__name(buildReplayPayload,"buildReplayPayload");function createSegment({context,creationReason,encoder}){let encodedBytesCount=0;const viewId=context.view.id,indexInView=getSegmentsCount(viewId),metadata={start:1/0,end:-1/0,creation_reason:creationReason,records_count:0,has_full_snapshot:!1,index_in_view:indexInView,source:"browser",...context},serializationStats=createSerializationStats();addSegment(viewId);function addRecord2(record2,callback){metadata.start=Math.min(metadata.start,record2.timestamp),metadata.end=Math.max(metadata.end,record2.timestamp),metadata.records_count+=1,metadata.has_full_snapshot||(metadata.has_full_snapshot=record2.type===RecordType.FullSnapshot||record2.type===RecordType.Change&&metadata.index_in_view===0);const prefix=encoder.isEmpty?'{"records":[':",";encoder.write(prefix+JSON.stringify(record2),additionalEncodedBytesCount=>{encodedBytesCount+=additionalEncodedBytesCount,callback(encodedBytesCount)})}__name(addRecord2,"addRecord");function addStats(stats){aggregateSerializationStats(serializationStats,stats)}__name(addStats,"addStats");function flush(callback){if(encoder.isEmpty)throw new Error("Empty segment flushed");encoder.write(`],${JSON.stringify(metadata).slice(1)}
1
+ var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{s as shouldMaskNode,C as CENSORED_STRING_MARK,b as buildUrl,N as NodePrivacyLevel,a as shouldMaskAttribute,c as CENSORED_IMG_MARK,d as sanitizeIfLongDataUrl,i as isSafari,g as getTextContent,r as reducePrivacyLevel,e as getNodeSelfPrivacyLevel,P as PRIVACY_ATTR_VALUE_HIDDEN,f as PRIVACY_ATTR_NAME,h as hasChildNodes,j as isNodeShadowRoot,k as forEachChildNodes,t as timeStampNow,l as elapsed,m as getScrollY,n as getScrollX,o as isElementNode,p as getNodePrivacyLevel,q as getParentNode,u as isNodeShadowHost,v as isExperimentalFeatureEnabled,E as ExperimentalFeature,w as getViewportDimension,x as throttle,y as addEventListeners,z as addEventListener,A as initViewportObservable,B as noop,D as instrumentMethod,R as RumEventType,F as ActionType,G as instrumentSetter,H as requestIdleCallback,I as getMutationObserverConstructor,J as monitor,K as sendToExtension,L as addRecord,M as getSegmentsCount,O as addSegment,Q as addWroteData,S as isPageExitReason,T as clearTimeout,U as setTimeout,V as ONE_SECOND,W as addTelemetryMetrics,X as getEventBridge,Y as createHttpRequest,Z as canUseEventBridge,_ as addTelemetryDebug}from"./index-BpmqvC1O.js";const RecordType={FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Focus:6,ViewEnd:7,VisualViewport:8,FrustrationRecord:9,Change:12},NodeType={Document:0,DocumentType:1,Element:2,Text:3,CDATA:4,DocumentFragment:11},ChangeType={AddString:0,AddNode:1,RemoveNode:2,Attribute:3,Text:4,Size:5,ScrollPosition:6,AddStyleSheet:7,AttachedStyleSheets:8,MediaPlaybackState:9,VisualViewport:10},IncrementalSource={Mutation:0,MouseMove:1,MouseInteraction:2,Scroll:3,ViewportResize:4,Input:5,TouchMove:6,MediaInteraction:7,StyleSheetRule:8},MouseInteractionType={MouseUp:0,MouseDown:1,Click:2,ContextMenu:3,DblClick:4,Focus:5,Blur:6,TouchStart:7,TouchEnd:9},MediaInteractionType={Play:0,Pause:1};function createRootInsertionCursor(nodeIds){return createInsertionCursor(void 0,void 0,nodeIds)}__name(createRootInsertionCursor,"createRootInsertionCursor");function createInsertionCursor(parentId,nextSiblingId,nodeIds){let cursor={container:void 0,parentId,previousSiblingId:void 0,nextSiblingId};const computeInsertionPoint=__name(nodeId=>cursor.previousSiblingId===nodeId-1?0:cursor.nextSiblingId!==void 0?cursor.nextSiblingId-nodeId:cursor.parentId!==void 0?nodeId-cursor.parentId:null,"computeInsertionPoint");return{advance(node){const nodeId=nodeIds.getOrInsert(node),insertionPoint=computeInsertionPoint(nodeId);return cursor.previousSiblingId=nodeId,{nodeId,insertionPoint}},ascend(){cursor.container&&(cursor=cursor.container)},descend(){cursor.previousSiblingId!==void 0&&(cursor={container:cursor,parentId:cursor.previousSiblingId,previousSiblingId:void 0,nextSiblingId:void 0})}}}__name(createInsertionCursor,"createInsertionCursor");function getElementInputValue(element,nodePrivacyLevel){const tagName=element.tagName,value=element.value;if(shouldMaskNode(element,nodePrivacyLevel)){const type=element.type;return tagName==="INPUT"&&(type==="button"||type==="submit"||type==="reset")?value:!value||tagName==="OPTION"?void 0:CENSORED_STRING_MARK}if(tagName==="OPTION"||tagName==="SELECT")return element.value;if(!(tagName!=="INPUT"&&tagName!=="TEXTAREA"))return value}__name(getElementInputValue,"getElementInputValue");const URL_IN_CSS_REF=/url\((?:(')([^']*)'|(")([^"]*)"|([^)]*))\)/gm,ABSOLUTE_URL=/^[A-Za-z]+:|^\/\//,DATA_URI=/^["']?data:.*,/i;function switchToAbsoluteUrl(cssText,cssHref){return cssText.replace(URL_IN_CSS_REF,(matchingSubstring,singleQuote,urlWrappedInSingleQuotes,doubleQuote,urlWrappedInDoubleQuotes,urlNotWrappedInQuotes)=>{const url=urlWrappedInSingleQuotes||urlWrappedInDoubleQuotes||urlNotWrappedInQuotes;if(!cssHref||!url||ABSOLUTE_URL.test(url)||DATA_URI.test(url))return matchingSubstring;const quote=singleQuote||doubleQuote||"";return`url(${quote}${makeUrlAbsolute(url,cssHref)}${quote})`})}__name(switchToAbsoluteUrl,"switchToAbsoluteUrl");function makeUrlAbsolute(url,baseUrl){try{return buildUrl(url,baseUrl).href}catch{return url}}__name(makeUrlAbsolute,"makeUrlAbsolute");const TAG_NAME_REGEX=/[^a-z1-6-_]/;function getValidTagName(tagName){const processedTagName=tagName.toLowerCase().trim();return TAG_NAME_REGEX.test(processedTagName)?"div":processedTagName}__name(getValidTagName,"getValidTagName");function normalizedTagName(element){return element.tagName.toLowerCase()}__name(normalizedTagName,"normalizedTagName");function censoredImageForSize(width,height){return`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${width}' height='${height}' style='background-color:silver'%3E%3C/svg%3E`}__name(censoredImageForSize,"censoredImageForSize");function serializeStyleSheets(cssStyleSheets,transaction){if(cssStyleSheets===void 0||cssStyleSheets.length===0)return;const serializeStylesheet=__name(cssStyleSheet=>{const rules=cssStyleSheet.cssRules||cssStyleSheet.rules,cssRules=Array.from(rules,cssRule=>cssRule.cssText);return transaction.addMetric("cssText",cssRules.reduce((totalLength,rule)=>totalLength+rule.length,0)),{cssRules,disabled:cssStyleSheet.disabled||void 0,media:cssStyleSheet.media.length>0?Array.from(cssStyleSheet.media):void 0}},"serializeStylesheet"),styleSheets=[];for(let index=0;index<cssStyleSheets.length;index++)styleSheets.push(serializeStylesheet(cssStyleSheets[index]));return styleSheets}__name(serializeStyleSheets,"serializeStyleSheets");const MAX_ATTRIBUTE_VALUE_CHAR_LENGTH=1e6;function serializeAttribute(element,nodePrivacyLevel,attributeName,configuration){if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return null;const attributeValue=element.getAttribute(attributeName),tagName=element.tagName;if(shouldMaskAttribute(tagName,attributeName,attributeValue,nodePrivacyLevel,configuration)){if(tagName==="IMG"){const image=element;if(image.naturalWidth>0)return censoredImageForSize(image.naturalWidth,image.naturalHeight);const{width,height}=element.getBoundingClientRect();return width>0||height>0?censoredImageForSize(width,height):CENSORED_IMG_MARK}return tagName==="SOURCE"?CENSORED_IMG_MARK:CENSORED_STRING_MARK}return attributeValue&&sanitizeIfLongDataUrl(attributeValue,MAX_ATTRIBUTE_VALUE_CHAR_LENGTH)}__name(serializeAttribute,"serializeAttribute");function serializeAttributes(element,nodePrivacyLevel,transaction){return{...serializeDOMAttributes(element,nodePrivacyLevel,transaction),...serializeVirtualAttributes(element,nodePrivacyLevel,transaction)}}__name(serializeAttributes,"serializeAttributes");function serializeDOMAttributes(element,nodePrivacyLevel,transaction){if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return{};const attrs={},tagName=normalizedTagName(element);for(let i=0;i<element.attributes.length;i+=1){const attributeName=element.attributes.item(i).name,attributeValue=serializeAttribute(element,nodePrivacyLevel,attributeName,transaction.scope.configuration);attributeValue!==null&&(attrs[attributeName]=attributeValue)}if(element.value&&(tagName==="textarea"||tagName==="select"||tagName==="option"||tagName==="input")){const formValue=getElementInputValue(element,nodePrivacyLevel);formValue!==void 0&&(attrs.value=formValue)}if(tagName==="option"){const optionElement=element;optionElement.selected&&!shouldMaskNode(optionElement,nodePrivacyLevel)?attrs.selected="":delete attrs.selected}const inputElement=element;return tagName==="input"&&(inputElement.type==="radio"||inputElement.type==="checkbox")&&(inputElement.checked&&!shouldMaskNode(inputElement,nodePrivacyLevel)?attrs.checked="":delete attrs.checked),attrs}__name(serializeDOMAttributes,"serializeDOMAttributes");function serializeVirtualAttributes(element,nodePrivacyLevel,transaction){if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return{};const attrs={},doc=element.ownerDocument,tagName=normalizedTagName(element);if(tagName==="link"){const stylesheet=Array.from(doc.styleSheets).find(s=>s.href===element.href),cssText=getCssRulesString(stylesheet);cssText&&stylesheet&&(transaction.addMetric("cssText",cssText.length),attrs._cssText=cssText)}if(tagName==="style"&&element.sheet){const cssText=getCssRulesString(element.sheet);cssText&&(transaction.addMetric("cssText",cssText.length),attrs._cssText=cssText)}if(tagName==="audio"||tagName==="video"){const mediaElement=element;attrs.rr_mediaState=mediaElement.paused?"paused":"played"}let scrollTop,scrollLeft;switch(transaction.kind){case 0:scrollTop=Math.round(element.scrollTop),scrollLeft=Math.round(element.scrollLeft),(scrollTop||scrollLeft)&&transaction.scope.elementsScrollPositions.set(element,{scrollTop,scrollLeft});break;case 1:transaction.scope.elementsScrollPositions.has(element)&&({scrollTop,scrollLeft}=transaction.scope.elementsScrollPositions.get(element));break}return scrollLeft&&(attrs.rr_scrollLeft=scrollLeft),scrollTop&&(attrs.rr_scrollTop=scrollTop),attrs}__name(serializeVirtualAttributes,"serializeVirtualAttributes");function getCssRulesString(cssStyleSheet){if(!cssStyleSheet)return null;let rules;try{rules=cssStyleSheet.rules||cssStyleSheet.cssRules}catch{}if(!rules)return null;const styleSheetCssText=Array.from(rules,isSafari()?getCssRuleStringForSafari:getCssRuleString).join("");return switchToAbsoluteUrl(styleSheetCssText,cssStyleSheet.href)}__name(getCssRulesString,"getCssRulesString");function getCssRuleStringForSafari(rule){if(isCSSStyleRule(rule)&&rule.selectorText.includes(":")){const escapeColon=/(\[[\w-]+[^\\])(:[^\]]+\])/g;return rule.cssText.replace(escapeColon,"$1\\$2")}return getCssRuleString(rule)}__name(getCssRuleStringForSafari,"getCssRuleStringForSafari");function getCssRuleString(rule){return isCSSImportRule(rule)&&getCssRulesString(rule.styleSheet)||rule.cssText}__name(getCssRuleString,"getCssRuleString");function isCSSImportRule(rule){return"styleSheet"in rule}__name(isCSSImportRule,"isCSSImportRule");function isCSSStyleRule(rule){return"selectorText"in rule}__name(isCSSStyleRule,"isCSSStyleRule");function serializeNode(node,parentNodePrivacyLevel,transaction){switch(node.nodeType){case node.DOCUMENT_NODE:return serializeDocumentNode(node,parentNodePrivacyLevel,transaction);case node.DOCUMENT_FRAGMENT_NODE:return serializeDocumentFragmentNode(node,parentNodePrivacyLevel,transaction);case node.DOCUMENT_TYPE_NODE:return serializeDocumentTypeNode(node,transaction);case node.ELEMENT_NODE:return serializeElementNode(node,parentNodePrivacyLevel,transaction);case node.TEXT_NODE:return serializeTextNode(node,parentNodePrivacyLevel,transaction);case node.CDATA_SECTION_NODE:return serializeCDataNode(node,transaction);default:return null}}__name(serializeNode,"serializeNode");function serializeChildNodes(node,parentNodePrivacyLevel,transaction){const result=[];return forEachChildNodes(node,childNode=>{const serializedChildNode=serializeNode(childNode,parentNodePrivacyLevel,transaction);serializedChildNode&&result.push(serializedChildNode)}),result}__name(serializeChildNodes,"serializeChildNodes");function serializeDocumentNode(document2,parentNodePrivacyLevel,transaction){return{type:NodeType.Document,id:transaction.assignId(document2),childNodes:serializeChildNodes(document2,parentNodePrivacyLevel,transaction),adoptedStyleSheets:serializeStyleSheets(document2.adoptedStyleSheets,transaction)}}__name(serializeDocumentNode,"serializeDocumentNode");function serializeDocumentFragmentNode(element,parentNodePrivacyLevel,transaction){const isShadowRoot=isNodeShadowRoot(element);return isShadowRoot&&transaction.scope.shadowRootsController.addShadowRoot(element,transaction.scope),{type:NodeType.DocumentFragment,id:transaction.assignId(element),childNodes:serializeChildNodes(element,parentNodePrivacyLevel,transaction),isShadowRoot,adoptedStyleSheets:isShadowRoot?serializeStyleSheets(element.adoptedStyleSheets,transaction):void 0}}__name(serializeDocumentFragmentNode,"serializeDocumentFragmentNode");function serializeDocumentTypeNode(documentType,transaction){return{type:NodeType.DocumentType,id:transaction.assignId(documentType),name:documentType.name,publicId:documentType.publicId,systemId:documentType.systemId}}__name(serializeDocumentTypeNode,"serializeDocumentTypeNode");function serializeElementNode(element,parentNodePrivacyLevel,transaction){const tagName=getValidTagName(element.tagName),isSVG=isSVGElement$1(element)||void 0,nodePrivacyLevel=reducePrivacyLevel(getNodeSelfPrivacyLevel(element),parentNodePrivacyLevel);if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN){const{width,height}=element.getBoundingClientRect();return{type:NodeType.Element,id:transaction.assignId(element),tagName,attributes:{rr_width:`${width}px`,rr_height:`${height}px`,[PRIVACY_ATTR_NAME]:PRIVACY_ATTR_VALUE_HIDDEN},childNodes:[],isSVG}}if(nodePrivacyLevel===NodePrivacyLevel.IGNORE)return null;const id=transaction.assignId(element),attributes=serializeAttributes(element,nodePrivacyLevel,transaction);let childNodes=[];return hasChildNodes(element)&&tagName!=="style"&&(childNodes=serializeChildNodes(element,nodePrivacyLevel,transaction)),{type:NodeType.Element,id,tagName,attributes,childNodes,isSVG}}__name(serializeElementNode,"serializeElementNode");function isSVGElement$1(el){return el.tagName==="svg"||el instanceof SVGElement}__name(isSVGElement$1,"isSVGElement$1");function serializeTextNode(textNode,parentNodePrivacyLevel,transaction){const textContent=getTextContent(textNode,parentNodePrivacyLevel);return textContent===void 0?null:{type:NodeType.Text,id:transaction.assignId(textNode),textContent}}__name(serializeTextNode,"serializeTextNode");function serializeCDataNode(node,transaction){return{type:NodeType.CDATA,id:transaction.assignId(node),textContent:""}}__name(serializeCDataNode,"serializeCDataNode");function createSerializationStats(){return{cssText:{count:0,max:0,sum:0},serializationDuration:{count:0,max:0,sum:0}}}__name(createSerializationStats,"createSerializationStats");function updateSerializationStats(stats,metric,value){stats[metric].count+=1,stats[metric].max=Math.max(stats[metric].max,value),stats[metric].sum+=value}__name(updateSerializationStats,"updateSerializationStats");function aggregateSerializationStats(aggregateStats,stats){for(const metric of["cssText","serializationDuration"])aggregateStats[metric].count+=stats[metric].count,aggregateStats[metric].max=Math.max(aggregateStats[metric].max,stats[metric].max),aggregateStats[metric].sum+=stats[metric].sum}__name(aggregateSerializationStats,"aggregateSerializationStats");function createChangeEncoder(stringIds){let pendingChanges={};const convertStringsToStringReferences=__name(array=>{for(let index=0,length=array.length;index<length;index++){const item=array[index];if(typeof item=="string"){const previousSize=stringIds.size;array[index]=stringIds.getOrInsert(item),stringIds.size>previousSize&&add(ChangeType.AddString,item)}else Array.isArray(item)&&convertStringsToStringReferences(item)}},"convertStringsToStringReferences"),add=__name((type,data)=>{type in pendingChanges||(pendingChanges[type]=[type]),type!==ChangeType.AddString&&Array.isArray(data)&&convertStringsToStringReferences(data),pendingChanges[type].push(data)},"add");return{add,flush:__name(()=>{const changes=[];return[ChangeType.AddString,ChangeType.AddNode,ChangeType.RemoveNode,ChangeType.Attribute,ChangeType.Text,ChangeType.Size,ChangeType.ScrollPosition,ChangeType.AddStyleSheet,ChangeType.AttachedStyleSheets,ChangeType.MediaPlaybackState,ChangeType.VisualViewport].forEach(changeType=>{const change=pendingChanges[changeType];change&&changes.push(change)}),pendingChanges={},changes},"flush")}}__name(createChangeEncoder,"createChangeEncoder");function serializeInTransaction(kind,emitRecord,emitStats,scope,serialize){const records=[],stats=createSerializationStats(),transaction={add(record2){records.push(record2)},addMetric(metric,value){updateSerializationStats(stats,metric,value)},assignId(node){const id=scope.nodeIds.getOrInsert(node);return transaction.serializedNodeIds&&transaction.serializedNodeIds.add(id),id},kind,scope},start=timeStampNow();serialize(transaction),updateSerializationStats(stats,"serializationDuration",elapsed(start,timeStampNow()));for(const record2 of records)emitRecord(record2);emitStats(stats)}__name(serializeInTransaction,"serializeInTransaction");function serializeChangesInTransaction(kind,emitRecord,emitStats,scope,timestamp,serialize){const encoder=createChangeEncoder(scope.stringIds),stats=createSerializationStats(),transaction={addMetric(metric,value){updateSerializationStats(stats,metric,value)},addNode(...change){encoder.add(ChangeType.AddNode,change)},addStyleSheet(rules,mediaList,disabled){disabled?encoder.add(ChangeType.AddStyleSheet,[rules,mediaList||[],disabled]):mediaList?encoder.add(ChangeType.AddStyleSheet,[rules,mediaList]):encoder.add(ChangeType.AddStyleSheet,[rules])},attachStyleSheets(nodeId,sheetIds){const change=[nodeId];for(const sheetId of sheetIds)change.push(sheetId);encoder.add(ChangeType.AttachedStyleSheets,change)},setMediaPlaybackState(nodeId,state){encoder.add(ChangeType.MediaPlaybackState,[nodeId,state])},setScrollPosition(nodeId,x,y){encoder.add(ChangeType.ScrollPosition,[nodeId,x,y])},setSize(nodeId,width,height){encoder.add(ChangeType.Size,[nodeId,width,height])},kind,scope},start=timeStampNow();serialize(transaction),updateSerializationStats(stats,"serializationDuration",elapsed(start,timeStampNow()));const changes=encoder.flush();changes.length>0&&emitRecord({data:changes,type:RecordType.Change,timestamp}),emitStats(stats)}__name(serializeChangesInTransaction,"serializeChangesInTransaction");function serializeFullSnapshot(timestamp,kind,document2,emitRecord,emitStats,scope){serializeInTransaction(kind,emitRecord,emitStats,scope,transaction=>{const defaultPrivacyLevel=transaction.scope.configuration.defaultPrivacyLevel,record2={data:{node:serializeNode(document2,defaultPrivacyLevel,transaction),initialOffset:{left:getScrollX(),top:getScrollY()}},type:RecordType.FullSnapshot,timestamp};transaction.add(record2)})}__name(serializeFullSnapshot,"serializeFullSnapshot");function serializeNodeAsChange(cursor,node,parentPrivacyLevel,transaction){let privacyLevel;const selfPrivacyLevel=getNodeSelfPrivacyLevel(node);if(selfPrivacyLevel?privacyLevel=reducePrivacyLevel(selfPrivacyLevel,parentPrivacyLevel):privacyLevel=parentPrivacyLevel,privacyLevel===NodePrivacyLevel.HIDDEN){serializeHiddenNodePlaceholder(cursor,node,transaction);return}if(privacyLevel!==NodePrivacyLevel.IGNORE){switch(node.nodeType){case node.CDATA_SECTION_NODE:serializeCDataNodeAsChange(cursor,node,transaction);break;case node.DOCUMENT_NODE:serializeDocumentNodeAsChange(cursor,node,transaction);break;case node.DOCUMENT_FRAGMENT_NODE:serializeDocumentFragmentNodeAsChange(cursor,node,transaction);break;case node.DOCUMENT_TYPE_NODE:serializeDocumentTypeNodeAsChange(cursor,node,transaction);break;case node.ELEMENT_NODE:serializeElementNodeAsChange(cursor,node,privacyLevel,transaction);break;case node.TEXT_NODE:serializeTextNodeAsChange(cursor,node,privacyLevel,transaction);break;default:return}switch(node.nodeType){case node.CDATA_SECTION_NODE:case node.DOCUMENT_TYPE_NODE:case node.TEXT_NODE:return}node.nodeName!=="STYLE"&&(cursor.descend(),forEachChildNodes(node,childNode=>{serializeNodeAsChange(cursor,childNode,privacyLevel,transaction)}),cursor.ascend())}}__name(serializeNodeAsChange,"serializeNodeAsChange");function serializeDocumentNodeAsChange(cursor,document2,transaction){const{nodeId,insertionPoint}=cursor.advance(document2);transaction.addNode(insertionPoint,"#document"),transaction.setScrollPosition(nodeId,getScrollX(),getScrollY()),serializeStyleSheetsAsChange(document2.adoptedStyleSheets,nodeId,transaction)}__name(serializeDocumentNodeAsChange,"serializeDocumentNodeAsChange");function serializeDocumentFragmentNodeAsChange(cursor,documentFragment,transaction){const{nodeId,insertionPoint}=cursor.advance(documentFragment);if(!isNodeShadowRoot(documentFragment)){transaction.addNode(insertionPoint,"#document-fragment");return}transaction.addNode(insertionPoint,"#shadow-root"),transaction.scope.shadowRootsController.addShadowRoot(documentFragment,transaction.scope),serializeStyleSheetsAsChange(documentFragment.adoptedStyleSheets,nodeId,transaction)}__name(serializeDocumentFragmentNodeAsChange,"serializeDocumentFragmentNodeAsChange");function serializeDocumentTypeNodeAsChange(cursor,documentType,transaction){const{insertionPoint}=cursor.advance(documentType);transaction.addNode(insertionPoint,"#doctype",documentType.name,documentType.publicId,documentType.systemId)}__name(serializeDocumentTypeNodeAsChange,"serializeDocumentTypeNodeAsChange");function serializeElementNodeAsChange(cursor,element,privacyLevel,transaction){const{nodeId,insertionPoint}=cursor.advance(element),domAttributes=Object.entries(serializeDOMAttributes(element,privacyLevel,transaction));transaction.addNode(insertionPoint,encodedElementName(element),...domAttributes);const{_cssText:cssText,rr_mediaState:mediaState,rr_scrollLeft:scrollLeft,rr_scrollTop:scrollTop}=serializeVirtualAttributes(element,privacyLevel,transaction),linkOrStyle=element;if(cssText!==void 0&&linkOrStyle.sheet){const sheetId=transaction.scope.styleSheetIds.getOrInsert(linkOrStyle.sheet);transaction.addStyleSheet(cssText),transaction.attachStyleSheets(nodeId,[sheetId])}mediaState==="played"?transaction.setMediaPlaybackState(nodeId,MediaInteractionType.Play):mediaState==="paused"&&transaction.setMediaPlaybackState(nodeId,MediaInteractionType.Pause),(scrollLeft!==void 0||scrollTop!==void 0)&&transaction.setScrollPosition(nodeId,scrollLeft||0,scrollTop||0)}__name(serializeElementNodeAsChange,"serializeElementNodeAsChange");function serializeTextNodeAsChange(cursor,textNode,privacyLevel,transaction){const textContent=getTextContent(textNode,privacyLevel);if(textContent===void 0)return;const{insertionPoint}=cursor.advance(textNode);transaction.addNode(insertionPoint,"#text",textContent)}__name(serializeTextNodeAsChange,"serializeTextNodeAsChange");function serializeCDataNodeAsChange(cursor,cdataNode,transaction){const{insertionPoint}=cursor.advance(cdataNode);transaction.addNode(insertionPoint,"#cdata-section")}__name(serializeCDataNodeAsChange,"serializeCDataNodeAsChange");function serializeHiddenNodePlaceholder(cursor,node,transaction){if(!isElementNode(node))return;const{nodeId,insertionPoint}=cursor.advance(node);transaction.addNode(insertionPoint,encodedElementName(node),[PRIVACY_ATTR_NAME,PRIVACY_ATTR_VALUE_HIDDEN]);const{width,height}=node.getBoundingClientRect();transaction.setSize(nodeId,width,height)}__name(serializeHiddenNodePlaceholder,"serializeHiddenNodePlaceholder");function serializeStyleSheetsAsChange(sheets,nodeId,transaction){!sheets||sheets.length===0||transaction.attachStyleSheets(nodeId,sheets.map(sheet=>serializeStyleSheetAsChange(sheet,transaction)))}__name(serializeStyleSheetsAsChange,"serializeStyleSheetsAsChange");function serializeStyleSheetAsChange(sheet,transaction){const rules=Array.from(sheet.cssRules||sheet.rules,rule=>rule.cssText),mediaList=sheet.media.length>0?Array.from(sheet.media):void 0;return transaction.addMetric("cssText",rules.reduce((totalLength,rule)=>totalLength+rule.length,0)),transaction.addStyleSheet(rules,mediaList,sheet.disabled),transaction.scope.styleSheetIds.getOrInsert(sheet)}__name(serializeStyleSheetAsChange,"serializeStyleSheetAsChange");function encodedElementName(element){const nodeName=element.nodeName;return isSVGElement(element)?`svg>${nodeName}`:nodeName}__name(encodedElementName,"encodedElementName");function isSVGElement(element){return element.namespaceURI==="http://www.w3.org/2000/svg"}__name(isSVGElement,"isSVGElement");function serializeFullSnapshotAsChange(timestamp,kind,document2,emitRecord,emitStats,scope){scope.resetIds(),serializeChangesInTransaction(kind,emitRecord,emitStats,scope,timestamp,transaction=>{serializeNodeAsChange(createRootInsertionCursor(scope.nodeIds),document2,scope.configuration.defaultPrivacyLevel,transaction)})}__name(serializeFullSnapshotAsChange,"serializeFullSnapshotAsChange");function assembleIncrementalSnapshot(source,data,timestamp=timeStampNow()){return{data:{source,...data},type:RecordType.IncrementalSnapshot,timestamp}}__name(assembleIncrementalSnapshot,"assembleIncrementalSnapshot");function serializeMutations(timestamp,mutations,emitRecord,emitStats,scope){serializeInTransaction(2,emitRecord,emitStats,scope,transaction=>processMutations(timestamp,mutations,transaction))}__name(serializeMutations,"serializeMutations");function processMutations(timestamp,mutations,transaction){const nodePrivacyLevelCache=new Map;mutations.filter(mutation=>mutation.type==="childList").forEach(mutation=>{mutation.removedNodes.forEach(removedNode=>{traverseRemovedShadowDom(removedNode,transaction.scope.shadowRootsController.removeShadowRoot)})});const filteredMutations=mutations.filter(mutation=>mutation.target.isConnected&&idsAreAssignedForNodeAndAncestors(mutation.target,transaction.scope.nodeIds)&&getNodePrivacyLevel(mutation.target,transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache)!==NodePrivacyLevel.HIDDEN),{adds,removes,hasBeenSerialized}=processChildListMutations(filteredMutations.filter(mutation=>mutation.type==="childList"),nodePrivacyLevelCache,transaction),texts=processCharacterDataMutations(filteredMutations.filter(mutation=>mutation.type==="characterData"&&!hasBeenSerialized(mutation.target)),nodePrivacyLevelCache,transaction),attributes=processAttributesMutations(filteredMutations.filter(mutation=>mutation.type==="attributes"&&!hasBeenSerialized(mutation.target)),nodePrivacyLevelCache,transaction);if(!texts.length&&!attributes.length&&!removes.length&&!adds.length)return;const record2=assembleIncrementalSnapshot(IncrementalSource.Mutation,{adds,removes,texts,attributes},timestamp);transaction.add(record2)}__name(processMutations,"processMutations");function processChildListMutations(mutations,nodePrivacyLevelCache,transaction){const addedAndMovedNodes=new Set,removedNodes=new Map;for(const mutation of mutations)mutation.addedNodes.forEach(node=>{addedAndMovedNodes.add(node)}),mutation.removedNodes.forEach(node=>{addedAndMovedNodes.has(node)||removedNodes.set(node,mutation.target),addedAndMovedNodes.delete(node)});const sortedAddedAndMovedNodes=Array.from(addedAndMovedNodes);sortAddedAndMovedNodes(sortedAddedAndMovedNodes),transaction.serializedNodeIds=new Set;const addedNodeMutations=[];for(const node of sortedAddedAndMovedNodes){if(hasBeenSerialized(node))continue;const parentNodePrivacyLevel=getNodePrivacyLevel(node.parentNode,transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache);if(parentNodePrivacyLevel===NodePrivacyLevel.HIDDEN||parentNodePrivacyLevel===NodePrivacyLevel.IGNORE)continue;const serializedNode=serializeNode(node,parentNodePrivacyLevel,transaction);if(!serializedNode)continue;const parentNode=getParentNode(node);addedNodeMutations.push({nextId:getNextSibling(node),parentId:transaction.scope.nodeIds.get(parentNode),node:serializedNode})}const removedNodeMutations=[];return removedNodes.forEach((parent,node)=>{const parentId=transaction.scope.nodeIds.get(parent),id=transaction.scope.nodeIds.get(node);parentId!==void 0&&id!==void 0&&removedNodeMutations.push({parentId,id})}),{adds:addedNodeMutations,removes:removedNodeMutations,hasBeenSerialized};function hasBeenSerialized(node){var _a;const id=transaction.scope.nodeIds.get(node);return id!==void 0&&((_a=transaction.serializedNodeIds)===null||_a===void 0?void 0:_a.has(id))}__name(hasBeenSerialized,"hasBeenSerialized");function getNextSibling(node){let nextSibling=node.nextSibling;for(;nextSibling;){const id=transaction.scope.nodeIds.get(nextSibling);if(id!==void 0)return id;nextSibling=nextSibling.nextSibling}return null}__name(getNextSibling,"getNextSibling")}__name(processChildListMutations,"processChildListMutations");function processCharacterDataMutations(mutations,nodePrivacyLevelCache,transaction){var _a;const textMutations=[],handledNodes=new Set,filteredMutations=mutations.filter(mutation=>handledNodes.has(mutation.target)?!1:(handledNodes.add(mutation.target),!0));for(const mutation of filteredMutations){if(mutation.target.textContent===mutation.oldValue)continue;const id=transaction.scope.nodeIds.get(mutation.target);if(id===void 0)continue;const parentNodePrivacyLevel=getNodePrivacyLevel(getParentNode(mutation.target),transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache);parentNodePrivacyLevel===NodePrivacyLevel.HIDDEN||parentNodePrivacyLevel===NodePrivacyLevel.IGNORE||textMutations.push({id,value:(_a=getTextContent(mutation.target,parentNodePrivacyLevel))!==null&&_a!==void 0?_a:null})}return textMutations}__name(processCharacterDataMutations,"processCharacterDataMutations");function processAttributesMutations(mutations,nodePrivacyLevelCache,transaction){const attributeMutations=[],handledElements=new Map,filteredMutations=mutations.filter(mutation=>{const handledAttributes=handledElements.get(mutation.target);return handledAttributes&&handledAttributes.has(mutation.attributeName)?!1:(handledAttributes?handledAttributes.add(mutation.attributeName):handledElements.set(mutation.target,new Set([mutation.attributeName])),!0)}),emittedMutations=new Map;for(const mutation of filteredMutations){if(mutation.target.getAttribute(mutation.attributeName)===mutation.oldValue)continue;const id=transaction.scope.nodeIds.get(mutation.target);if(id===void 0)continue;const privacyLevel=getNodePrivacyLevel(mutation.target,transaction.scope.configuration.defaultPrivacyLevel,nodePrivacyLevelCache),attributeValue=serializeAttribute(mutation.target,privacyLevel,mutation.attributeName,transaction.scope.configuration);let transformedValue;if(mutation.attributeName==="value"){const inputValue=getElementInputValue(mutation.target,privacyLevel);if(inputValue===void 0)continue;transformedValue=inputValue}else typeof attributeValue=="string"?transformedValue=attributeValue:transformedValue=null;let emittedMutation=emittedMutations.get(mutation.target);emittedMutation||(emittedMutation={id,attributes:{}},attributeMutations.push(emittedMutation),emittedMutations.set(mutation.target,emittedMutation)),emittedMutation.attributes[mutation.attributeName]=transformedValue}return attributeMutations}__name(processAttributesMutations,"processAttributesMutations");function sortAddedAndMovedNodes(nodes){nodes.sort((a,b)=>{const position=a.compareDocumentPosition(b);return position&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:position&Node.DOCUMENT_POSITION_CONTAINS||position&Node.DOCUMENT_POSITION_FOLLOWING?1:position&Node.DOCUMENT_POSITION_PRECEDING?-1:0})}__name(sortAddedAndMovedNodes,"sortAddedAndMovedNodes");function traverseRemovedShadowDom(removedNode,shadowDomRemovedCallback){isNodeShadowHost(removedNode)&&shadowDomRemovedCallback(removedNode.shadowRoot),forEachChildNodes(removedNode,childNode=>traverseRemovedShadowDom(childNode,shadowDomRemovedCallback))}__name(traverseRemovedShadowDom,"traverseRemovedShadowDom");function idsAreAssignedForNodeAndAncestors(node,nodeIds){let current=node;for(;current;){if(nodeIds.get(current)===void 0&&!isNodeShadowRoot(current))return!1;current=getParentNode(current)}return!0}__name(idsAreAssignedForNodeAndAncestors,"idsAreAssignedForNodeAndAncestors");const TOLERANCE=25;function isVisualViewportFactoredIn(visualViewport){return Math.abs(visualViewport.pageTop-visualViewport.offsetTop-window.scrollY)>TOLERANCE||Math.abs(visualViewport.pageLeft-visualViewport.offsetLeft-window.scrollX)>TOLERANCE}__name(isVisualViewportFactoredIn,"isVisualViewportFactoredIn");const convertMouseEventToLayoutCoordinates=__name((clientX,clientY)=>{const visualViewport=window.visualViewport,normalized={layoutViewportX:clientX,layoutViewportY:clientY,visualViewportX:clientX,visualViewportY:clientY};if(visualViewport)isVisualViewportFactoredIn(visualViewport)?(normalized.layoutViewportX=Math.round(clientX+visualViewport.offsetLeft),normalized.layoutViewportY=Math.round(clientY+visualViewport.offsetTop)):(normalized.visualViewportX=Math.round(clientX-visualViewport.offsetLeft),normalized.visualViewportY=Math.round(clientY-visualViewport.offsetTop));else return normalized;return normalized},"convertMouseEventToLayoutCoordinates"),getVisualViewport=__name(visualViewport=>({scale:visualViewport.scale,offsetLeft:visualViewport.offsetLeft,offsetTop:visualViewport.offsetTop,pageLeft:visualViewport.pageLeft,pageTop:visualViewport.pageTop,height:visualViewport.height,width:visualViewport.width}),"getVisualViewport");function startFullSnapshots(lifeCycle,emitRecord,emitStats,flushMutations,scope,serialize=defaultSerializeFullSnapshotCallback()){takeFullSnapshot(timeStampNow(),0,emitRecord,emitStats,scope,serialize);const{unsubscribe}=lifeCycle.subscribe(2,view=>{flushMutations(),takeFullSnapshot(view.startClocks.timeStamp,1,emitRecord,emitStats,scope,serialize)});return{stop:unsubscribe}}__name(startFullSnapshots,"startFullSnapshots");function takeFullSnapshot(timestamp,kind,emitRecord,emitStats,scope,serialize=defaultSerializeFullSnapshotCallback()){const{width,height}=getViewportDimension();emitRecord({data:{height,href:window.location.href,width},type:RecordType.Meta,timestamp}),emitRecord({data:{has_focus:document.hasFocus()},type:RecordType.Focus,timestamp}),serialize(timestamp,kind,document,emitRecord,emitStats,scope),window.visualViewport&&emitRecord({data:getVisualViewport(window.visualViewport),type:RecordType.VisualViewport,timestamp})}__name(takeFullSnapshot,"takeFullSnapshot");function defaultSerializeFullSnapshotCallback(){return isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS)?serializeFullSnapshotAsChange:serializeFullSnapshot}__name(defaultSerializeFullSnapshotCallback,"defaultSerializeFullSnapshotCallback");function createEventIds(){return createWeakIdMap(1)}__name(createEventIds,"createEventIds");function createNodeIds(){return createWeakIdMap(0)}__name(createNodeIds,"createNodeIds");function createStringIds(){return createIdMap(0)}__name(createStringIds,"createStringIds");function createStyleSheetIds(){return createWeakIdMap(0)}__name(createStyleSheetIds,"createStyleSheetIds");function createIdMap(firstId){return createItemIds(()=>new Map,firstId)}__name(createIdMap,"createIdMap");function createWeakIdMap(firstId){return createItemIds(()=>new WeakMap,firstId)}__name(createWeakIdMap,"createWeakIdMap");function createItemIds(createMap,firstId){let map=createMap(),nextId=firstId;const get=__name(object=>map.get(object),"get");return{clear(){nextId!==firstId&&(map=createMap(),nextId=firstId)},delete(object){map.delete(object)},get,getOrInsert(object){let id=get(object);return id===void 0&&(id=nextId++,map.set(object,id)),id},get nextId(){return nextId},get size(){return nextId-firstId}}}__name(createItemIds,"createItemIds");function createRecordingScope(configuration,elementsScrollPositions,shadowRootsController){const eventIds=createEventIds(),nodeIds=createNodeIds(),stringIds=createStringIds(),styleSheetIds=createStyleSheetIds(),scope={resetIds(){scope.eventIds.clear(),scope.nodeIds.clear(),scope.stringIds.clear(),scope.styleSheetIds.clear()},configuration,elementsScrollPositions,eventIds,nodeIds,shadowRootsController,stringIds,styleSheetIds};return scope}__name(createRecordingScope,"createRecordingScope");function createElementsScrollPositions(){const scrollPositionsByElement=new WeakMap;return{set(element,scrollPositions){element===document&&!document.scrollingElement||scrollPositionsByElement.set(element===document?document.scrollingElement:element,scrollPositions)},get(element){return scrollPositionsByElement.get(element)},has(element){return scrollPositionsByElement.has(element)}}}__name(createElementsScrollPositions,"createElementsScrollPositions");function isTouchEvent(event){return!!event.changedTouches}__name(isTouchEvent,"isTouchEvent");function getEventTarget(event){return event.composed===!0&&isNodeShadowHost(event.target)?event.composedPath()[0]:event.target}__name(getEventTarget,"getEventTarget");const MOUSE_MOVE_OBSERVER_THRESHOLD=50;function trackMove(emitRecord,scope){const{throttled:updatePosition,cancel:cancelThrottle}=throttle(event=>{const target=getEventTarget(event),id=scope.nodeIds.get(target);if(id===void 0)return;const coordinates=tryToComputeCoordinates(event);if(!coordinates)return;const position={id,timeOffset:0,x:coordinates.x,y:coordinates.y};emitRecord(assembleIncrementalSnapshot(isTouchEvent(event)?IncrementalSource.TouchMove:IncrementalSource.MouseMove,{positions:[position]}))},MOUSE_MOVE_OBSERVER_THRESHOLD,{trailing:!1}),{stop:removeListener}=addEventListeners(scope.configuration,document,["mousemove","touchmove"],updatePosition,{capture:!0,passive:!0});return{stop:__name(()=>{removeListener(),cancelThrottle()},"stop")}}__name(trackMove,"trackMove");function tryToComputeCoordinates(event){let{clientX:x,clientY:y}=isTouchEvent(event)?event.changedTouches[0]:event;if(window.visualViewport){const{visualViewportX,visualViewportY}=convertMouseEventToLayoutCoordinates(x,y);x=visualViewportX,y=visualViewportY}if(!(!Number.isFinite(x)||!Number.isFinite(y)))return{x,y}}__name(tryToComputeCoordinates,"tryToComputeCoordinates");const eventTypeToMouseInteraction={pointerup:MouseInteractionType.MouseUp,mousedown:MouseInteractionType.MouseDown,click:MouseInteractionType.Click,contextmenu:MouseInteractionType.ContextMenu,dblclick:MouseInteractionType.DblClick,focus:MouseInteractionType.Focus,blur:MouseInteractionType.Blur,touchstart:MouseInteractionType.TouchStart,touchend:MouseInteractionType.TouchEnd};function trackMouseInteraction(emitRecord,scope){const handler=__name(event=>{const target=getEventTarget(event),id=scope.nodeIds.get(target);if(id===void 0||getNodePrivacyLevel(target,scope.configuration.defaultPrivacyLevel)===NodePrivacyLevel.HIDDEN)return;const type=eventTypeToMouseInteraction[event.type];let interaction;if(type!==MouseInteractionType.Blur&&type!==MouseInteractionType.Focus){const coordinates=tryToComputeCoordinates(event);if(!coordinates)return;interaction={id,type,x:coordinates.x,y:coordinates.y}}else interaction={id,type};emitRecord({id:scope.eventIds.getOrInsert(event),...assembleIncrementalSnapshot(IncrementalSource.MouseInteraction,interaction)})},"handler");return addEventListeners(scope.configuration,document,Object.keys(eventTypeToMouseInteraction),handler,{capture:!0,passive:!0})}__name(trackMouseInteraction,"trackMouseInteraction");const SCROLL_OBSERVER_THRESHOLD=100;function trackScroll(target,emitRecord,scope){const{throttled:updatePosition,cancel:cancelThrottle}=throttle(event=>{const target2=getEventTarget(event);if(!target2)return;const id=scope.nodeIds.get(target2);if(id===void 0||getNodePrivacyLevel(target2,scope.configuration.defaultPrivacyLevel)===NodePrivacyLevel.HIDDEN)return;const scrollPositions=target2===document?{scrollTop:getScrollY(),scrollLeft:getScrollX()}:{scrollTop:Math.round(target2.scrollTop),scrollLeft:Math.round(target2.scrollLeft)};scope.elementsScrollPositions.set(target2,scrollPositions),emitRecord(assembleIncrementalSnapshot(IncrementalSource.Scroll,{id,x:scrollPositions.scrollLeft,y:scrollPositions.scrollTop}))},SCROLL_OBSERVER_THRESHOLD),{stop:removeListener}=addEventListener(scope.configuration,target,"scroll",updatePosition,{capture:!0,passive:!0});return{stop:__name(()=>{removeListener(),cancelThrottle()},"stop")}}__name(trackScroll,"trackScroll");const VISUAL_VIEWPORT_OBSERVER_THRESHOLD=200;function trackViewportResize(emitRecord,scope){const viewportResizeSubscription=initViewportObservable(scope.configuration).subscribe(data=>{emitRecord(assembleIncrementalSnapshot(IncrementalSource.ViewportResize,data))});return{stop:__name(()=>{viewportResizeSubscription.unsubscribe()},"stop")}}__name(trackViewportResize,"trackViewportResize");function trackVisualViewportResize(emitRecord,scope){const visualViewport=window.visualViewport;if(!visualViewport)return{stop:noop};const{throttled:updateDimension,cancel:cancelThrottle}=throttle(()=>{emitRecord({data:getVisualViewport(visualViewport),type:RecordType.VisualViewport,timestamp:timeStampNow()})},VISUAL_VIEWPORT_OBSERVER_THRESHOLD,{trailing:!1}),{stop:removeListener}=addEventListeners(scope.configuration,visualViewport,["resize","scroll"],updateDimension,{capture:!0,passive:!0});return{stop:__name(()=>{removeListener(),cancelThrottle()},"stop")}}__name(trackVisualViewportResize,"trackVisualViewportResize");function trackMediaInteraction(emitRecord,scope){return addEventListeners(scope.configuration,document,["play","pause"],event=>{const target=getEventTarget(event);if(!target)return;const id=scope.nodeIds.get(target);id===void 0||getNodePrivacyLevel(target,scope.configuration.defaultPrivacyLevel)===NodePrivacyLevel.HIDDEN||emitRecord(assembleIncrementalSnapshot(IncrementalSource.MediaInteraction,{id,type:event.type==="play"?MediaInteractionType.Play:MediaInteractionType.Pause}))},{capture:!0,passive:!0})}__name(trackMediaInteraction,"trackMediaInteraction");function trackStyleSheet(emitRecord,scope){function checkStyleSheetAndCallback(styleSheet,callback){if(!styleSheet||!styleSheet.ownerNode)return;const id=scope.nodeIds.get(styleSheet.ownerNode);id!==void 0&&callback(id)}__name(checkStyleSheetAndCallback,"checkStyleSheetAndCallback");const instrumentationStoppers=[instrumentMethod(CSSStyleSheet.prototype,"insertRule",({target:styleSheet,parameters:[rule,index]})=>{checkStyleSheetAndCallback(styleSheet,id=>emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,adds:[{rule,index}]})))}),instrumentMethod(CSSStyleSheet.prototype,"deleteRule",({target:styleSheet,parameters:[index]})=>{checkStyleSheetAndCallback(styleSheet,id=>emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,removes:[{index}]})))})];typeof CSSGroupingRule<"u"?instrumentGroupingCSSRuleClass(CSSGroupingRule):(instrumentGroupingCSSRuleClass(CSSMediaRule),instrumentGroupingCSSRuleClass(CSSSupportsRule));function instrumentGroupingCSSRuleClass(cls){instrumentationStoppers.push(instrumentMethod(cls.prototype,"insertRule",({target:styleSheet,parameters:[rule,index]})=>{checkStyleSheetAndCallback(styleSheet.parentStyleSheet,id=>{const path=getPathToNestedCSSRule(styleSheet);path&&(path.push(index||0),emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,adds:[{rule,index:path}]})))})}),instrumentMethod(cls.prototype,"deleteRule",({target:styleSheet,parameters:[index]})=>{checkStyleSheetAndCallback(styleSheet.parentStyleSheet,id=>{const path=getPathToNestedCSSRule(styleSheet);path&&(path.push(index),emitRecord(assembleIncrementalSnapshot(IncrementalSource.StyleSheetRule,{id,removes:[{index:path}]})))})}))}return __name(instrumentGroupingCSSRuleClass,"instrumentGroupingCSSRuleClass"),{stop:__name(()=>{instrumentationStoppers.forEach(stopper=>stopper.stop())},"stop")}}__name(trackStyleSheet,"trackStyleSheet");function getPathToNestedCSSRule(rule){const path=[];let currentRule=rule;for(;currentRule.parentRule;){const index2=Array.from(currentRule.parentRule.cssRules).indexOf(currentRule);path.unshift(index2),currentRule=currentRule.parentRule}if(!currentRule.parentStyleSheet)return;const index=Array.from(currentRule.parentStyleSheet.cssRules).indexOf(currentRule);return path.unshift(index),path}__name(getPathToNestedCSSRule,"getPathToNestedCSSRule");function trackFocus(emitRecord,scope){return addEventListeners(scope.configuration,window,["focus","blur"],()=>{emitRecord({data:{has_focus:document.hasFocus()},type:RecordType.Focus,timestamp:timeStampNow()})})}__name(trackFocus,"trackFocus");function trackFrustration(lifeCycle,emitRecord,scope){const frustrationSubscription=lifeCycle.subscribe(12,data=>{var _a,_b;data.rawRumEvent.type===RumEventType.ACTION&&data.rawRumEvent.action.type===ActionType.CLICK&&(!((_b=(_a=data.rawRumEvent.action.frustration)===null||_a===void 0?void 0:_a.type)===null||_b===void 0)&&_b.length)&&"events"in data.domainContext&&data.domainContext.events&&data.domainContext.events.length&&emitRecord({timestamp:data.rawRumEvent.date,type:RecordType.FrustrationRecord,data:{frustrationTypes:data.rawRumEvent.action.frustration.type,recordIds:data.domainContext.events.map(e=>scope.eventIds.getOrInsert(e))}})});return{stop:__name(()=>{frustrationSubscription.unsubscribe()},"stop")}}__name(trackFrustration,"trackFrustration");function trackViewEnd(lifeCycle,emitRecord,flushMutations){const viewEndSubscription=lifeCycle.subscribe(5,()=>{flushMutations(),emitRecord({timestamp:timeStampNow(),type:RecordType.ViewEnd})});return{stop:__name(()=>{viewEndSubscription.unsubscribe()},"stop")}}__name(trackViewEnd,"trackViewEnd");function trackInput(target,emitRecord,scope){const defaultPrivacyLevel=scope.configuration.defaultPrivacyLevel,lastInputStateMap=new WeakMap,isShadowRoot=target!==document,{stop:stopEventListeners}=addEventListeners(scope.configuration,target,isShadowRoot?["change"]:["input","change"],event=>{const target2=getEventTarget(event);(target2 instanceof HTMLInputElement||target2 instanceof HTMLTextAreaElement||target2 instanceof HTMLSelectElement)&&onElementChange(target2)},{capture:!0,passive:!0});let stopPropertySetterInstrumentation;if(isShadowRoot)stopPropertySetterInstrumentation=noop;else{const instrumentationStoppers=[instrumentSetter(HTMLInputElement.prototype,"value",onElementChange),instrumentSetter(HTMLInputElement.prototype,"checked",onElementChange),instrumentSetter(HTMLSelectElement.prototype,"value",onElementChange),instrumentSetter(HTMLTextAreaElement.prototype,"value",onElementChange),instrumentSetter(HTMLSelectElement.prototype,"selectedIndex",onElementChange)];stopPropertySetterInstrumentation=__name(()=>{instrumentationStoppers.forEach(stopper=>stopper.stop())},"stopPropertySetterInstrumentation")}return{stop:__name(()=>{stopPropertySetterInstrumentation(),stopEventListeners()},"stop")};function onElementChange(target2){const nodePrivacyLevel=getNodePrivacyLevel(target2,defaultPrivacyLevel);if(nodePrivacyLevel===NodePrivacyLevel.HIDDEN)return;const type=target2.type;let inputState;if(type==="radio"||type==="checkbox"){if(shouldMaskNode(target2,nodePrivacyLevel))return;inputState={isChecked:target2.checked}}else{const value=getElementInputValue(target2,nodePrivacyLevel);if(value===void 0)return;inputState={text:value}}createRecordIfStateChanged(target2,inputState);const name=target2.name;type==="radio"&&name&&target2.checked&&document.querySelectorAll(`input[type="radio"][name="${CSS.escape(name)}"]`).forEach(el=>{el!==target2&&createRecordIfStateChanged(el,{isChecked:!1})})}function createRecordIfStateChanged(target2,inputState){const id=scope.nodeIds.get(target2);if(id===void 0)return;const lastInputState=lastInputStateMap.get(target2);(!lastInputState||lastInputState.text!==inputState.text||lastInputState.isChecked!==inputState.isChecked)&&(lastInputStateMap.set(target2,inputState),emitRecord(assembleIncrementalSnapshot(IncrementalSource.Input,{id,...inputState})))}}__name(trackInput,"trackInput");const MUTATION_PROCESS_MAX_DELAY=100,MUTATION_PROCESS_MIN_DELAY=16;function createMutationBatch(processMutationBatch){let cancelScheduledFlush=noop,pendingMutations=[];function flush(){cancelScheduledFlush(),processMutationBatch(pendingMutations),pendingMutations=[]}__name(flush,"flush");const{throttled:throttledFlush,cancel:cancelThrottle}=throttle(flush,MUTATION_PROCESS_MIN_DELAY,{leading:!1});return{addMutations:__name(mutations=>{pendingMutations.length===0&&(cancelScheduledFlush=requestIdleCallback(throttledFlush,{timeout:MUTATION_PROCESS_MAX_DELAY})),pendingMutations.push(...mutations)},"addMutations"),flush,stop:__name(()=>{cancelScheduledFlush(),cancelThrottle()},"stop")}}__name(createMutationBatch,"createMutationBatch");function trackMutation(target,emitRecord,emitStats,scope,serialize=defaultSerializeMutationsCallback()){const MutationObserver=getMutationObserverConstructor();if(!MutationObserver)return{stop:noop,flush:noop};const mutationBatch=createMutationBatch(mutations=>{serialize(timeStampNow(),mutations.concat(observer.takeRecords()),emitRecord,emitStats,scope)}),observer=new MutationObserver(monitor(mutationBatch.addMutations));return observer.observe(target,{attributeOldValue:!0,attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{stop:__name(()=>{observer.disconnect(),mutationBatch.stop()},"stop"),flush:__name(()=>{mutationBatch.flush()},"flush")}}__name(trackMutation,"trackMutation");function defaultSerializeMutationsCallback(){return serializeMutations}__name(defaultSerializeMutationsCallback,"defaultSerializeMutationsCallback");const initShadowRootsController=__name((emitRecord,emitStats)=>{const controllerByShadowRoot=new Map;return{addShadowRoot:__name((shadowRoot,scope)=>{if(controllerByShadowRoot.has(shadowRoot))return;const mutationTracker=trackMutation(shadowRoot,emitRecord,emitStats,scope),inputTracker=trackInput(shadowRoot,emitRecord,scope),scrollTracker=trackScroll(shadowRoot,emitRecord,scope);controllerByShadowRoot.set(shadowRoot,{flush:__name(()=>mutationTracker.flush(),"flush"),stop:__name(()=>{mutationTracker.stop(),inputTracker.stop(),scrollTracker.stop()},"stop")})},"addShadowRoot"),removeShadowRoot:__name(shadowRoot=>{const entry=controllerByShadowRoot.get(shadowRoot);entry&&(entry.stop(),controllerByShadowRoot.delete(shadowRoot))},"removeShadowRoot"),stop:__name(()=>{controllerByShadowRoot.forEach(({stop})=>stop())},"stop"),flush:__name(()=>{controllerByShadowRoot.forEach(({flush})=>flush())},"flush")}},"initShadowRootsController");function record(options){const{emitRecord,emitStats,configuration,lifeCycle}=options;if(!emitRecord||!emitStats)throw new Error("emit functions are required");const processRecord=__name(record2=>{emitRecord(record2),sendToExtension("record",{record:record2});const view=options.viewHistory.findView();addRecord(view.id)},"processRecord"),shadowRootsController=initShadowRootsController(processRecord,emitStats),scope=createRecordingScope(configuration,createElementsScrollPositions(),shadowRootsController),{stop:stopFullSnapshots}=startFullSnapshots(lifeCycle,processRecord,emitStats,flushMutations,scope);function flushMutations(){shadowRootsController.flush(),mutationTracker.flush()}__name(flushMutations,"flushMutations");const mutationTracker=trackMutation(document,processRecord,emitStats,scope),trackers=[mutationTracker,trackMove(processRecord,scope),trackMouseInteraction(processRecord,scope),trackScroll(document,processRecord,scope),trackViewportResize(processRecord,scope),trackInput(document,processRecord,scope),trackMediaInteraction(processRecord,scope),trackStyleSheet(processRecord,scope),trackFocus(processRecord,scope),trackVisualViewportResize(processRecord,scope),trackFrustration(lifeCycle,processRecord,scope),trackViewEnd(lifeCycle,processRecord,flushMutations)];return{stop:__name(()=>{shadowRootsController.stop(),trackers.forEach(tracker=>tracker.stop()),stopFullSnapshots()},"stop"),flushMutations,shadowRootsController}}__name(record,"record");function buildReplayPayload(data,metadata,stats,rawSegmentBytesCount){const formData=new FormData;formData.append("segment",new Blob([data],{type:"application/octet-stream"}),`${metadata.session.id}-${metadata.start}`);const metadataAndSegmentSizes={raw_segment_size:rawSegmentBytesCount,compressed_segment_size:data.byteLength,...metadata},serializedMetadataAndSegmentSizes=JSON.stringify(metadataAndSegmentSizes);return formData.append("event",new Blob([serializedMetadataAndSegmentSizes],{type:"application/json"})),{data:formData,bytesCount:data.byteLength,cssText:stats.cssText,isFullSnapshot:metadata.index_in_view===0,rawSize:rawSegmentBytesCount,recordCount:metadata.records_count,serializationDuration:stats.serializationDuration}}__name(buildReplayPayload,"buildReplayPayload");function createSegment({context,creationReason,encoder}){let encodedBytesCount=0;const viewId=context.view.id,indexInView=getSegmentsCount(viewId),metadata={start:1/0,end:-1/0,creation_reason:creationReason,records_count:0,has_full_snapshot:!1,index_in_view:indexInView,source:"browser",...context},serializationStats=createSerializationStats();addSegment(viewId);function addRecord2(record2,callback){metadata.start=Math.min(metadata.start,record2.timestamp),metadata.end=Math.max(metadata.end,record2.timestamp),metadata.records_count+=1,metadata.has_full_snapshot||(metadata.has_full_snapshot=record2.type===RecordType.FullSnapshot||record2.type===RecordType.Change&&metadata.index_in_view===0);const prefix=encoder.isEmpty?'{"records":[':",";encoder.write(prefix+JSON.stringify(record2),additionalEncodedBytesCount=>{encodedBytesCount+=additionalEncodedBytesCount,callback(encodedBytesCount)})}__name(addRecord2,"addRecord");function addStats(stats){aggregateSerializationStats(serializationStats,stats)}__name(addStats,"addStats");function flush(callback){if(encoder.isEmpty)throw new Error("Empty segment flushed");encoder.write(`],${JSON.stringify(metadata).slice(1)}
2
2
  `),encoder.finish(encoderResult=>{addWroteData(metadata.view.id,encoderResult.rawBytesCount),callback(metadata,serializationStats,encoderResult)})}return __name(flush,"flush"),{addRecord:addRecord2,addStats,flush}}__name(createSegment,"createSegment");const SEGMENT_DURATION_LIMIT=5*ONE_SECOND;let SEGMENT_BYTES_LIMIT=6e4;function startSegmentCollection(lifeCycle,configuration,sessionManager,viewHistory,httpRequest,encoder){return doStartSegmentCollection(lifeCycle,()=>computeSegmentContext(configuration.applicationId,sessionManager,viewHistory),httpRequest,encoder)}__name(startSegmentCollection,"startSegmentCollection");function doStartSegmentCollection(lifeCycle,getSegmentContext,httpRequest,encoder){let state={status:0,nextSegmentCreationReason:"init"};const{unsubscribe:unsubscribeViewCreated}=lifeCycle.subscribe(2,()=>{flushSegment("view_change")}),{unsubscribe:unsubscribePageMayExit}=lifeCycle.subscribe(11,pageMayExitEvent=>{flushSegment(pageMayExitEvent.reason)});function flushSegment(flushReason){state.status===1&&(state.segment.flush((metadata,stats,encoderResult)=>{const payload=buildReplayPayload(encoderResult.output,metadata,stats,encoderResult.rawBytesCount);isPageExitReason(flushReason)?httpRequest.sendOnExit(payload):httpRequest.send(payload)}),clearTimeout(state.expirationTimeoutId)),flushReason!=="stop"?state={status:0,nextSegmentCreationReason:flushReason}:state={status:2}}return __name(flushSegment,"flushSegment"),{addRecord:__name(record2=>{if(state.status!==2){if(state.status===0){const context=getSegmentContext();if(!context)return;state={status:1,segment:createSegment({encoder,context,creationReason:state.nextSegmentCreationReason}),expirationTimeoutId:setTimeout(()=>{flushSegment("segment_duration_limit")},SEGMENT_DURATION_LIMIT)}}state.segment.addRecord(record2,encodedBytesCount=>{encodedBytesCount>SEGMENT_BYTES_LIMIT&&flushSegment("segment_bytes_limit")})}},"addRecord"),addStats:__name(stats=>{state.status===1&&state.segment.addStats(stats)},"addStats"),stop:__name(()=>{flushSegment("stop"),unsubscribeViewCreated(),unsubscribePageMayExit()},"stop")}}__name(doStartSegmentCollection,"doStartSegmentCollection");function computeSegmentContext(applicationId,sessionManager,viewHistory){const session=sessionManager.findTrackedSession(),viewContext=viewHistory.findView();if(!(!session||!viewContext))return{application:{id:applicationId},session:{id:session.id},view:{id:viewContext.id}}}__name(computeSegmentContext,"computeSegmentContext");function startSegmentTelemetry(telemetry,requestObservable){if(!telemetry.metricsEnabled)return{stop:noop};const{unsubscribe}=requestObservable.subscribe(requestEvent=>{if(requestEvent.type==="failure"||requestEvent.type==="queue-full"||requestEvent.type==="success"&&requestEvent.payload.isFullSnapshot){const metrics=createSegmentMetrics(requestEvent.type,requestEvent.bandwidth,requestEvent.payload);addTelemetryMetrics("Segment network request metrics",{metrics})}});return{stop:unsubscribe}}__name(startSegmentTelemetry,"startSegmentTelemetry");function createSegmentMetrics(result,bandwidthStats,payload){return{cssText:{count:payload.cssText.count,max:payload.cssText.max,sum:payload.cssText.sum},encoding:{fullSnapshot:isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS)?"change":"v1",incrementalSnapshot:"v1"},isFullSnapshot:payload.isFullSnapshot,ongoingRequests:{count:bandwidthStats.ongoingRequestCount,totalSize:bandwidthStats.ongoingByteCount},recordCount:payload.recordCount,result,serializationDuration:{count:payload.serializationDuration.count,max:payload.serializationDuration.max,sum:payload.serializationDuration.sum},size:{compressed:payload.bytesCount,raw:payload.rawSize}}}__name(createSegmentMetrics,"createSegmentMetrics");function startRecordBridge(viewHistory){const bridge=getEventBridge();return{addRecord:__name(record2=>{const view=viewHistory.findView();bridge.send("record",record2,view.id)},"addRecord")}}__name(startRecordBridge,"startRecordBridge");function startRecording(lifeCycle,configuration,sessionManager,viewHistory,encoder,telemetry,httpRequest){const cleanupTasks=[],reportError=__name(error=>{lifeCycle.notify(14,{error}),addTelemetryDebug("Error reported to customer",{"error.message":error.message})},"reportError"),replayRequest=httpRequest||createHttpRequest([configuration.sessionReplayEndpointBuilder],reportError,SEGMENT_BYTES_LIMIT);let addRecord2,addStats;if(canUseEventBridge())({addRecord:addRecord2}=startRecordBridge(viewHistory)),addStats=noop;else{const segmentCollection=startSegmentCollection(lifeCycle,configuration,sessionManager,viewHistory,replayRequest,encoder);addRecord2=segmentCollection.addRecord,addStats=segmentCollection.addStats,cleanupTasks.push(segmentCollection.stop);const segmentTelemetry=startSegmentTelemetry(telemetry,replayRequest.observable);cleanupTasks.push(segmentTelemetry.stop)}const{stop:stopRecording}=record({emitRecord:addRecord2,emitStats:addStats,configuration,lifeCycle,viewHistory});return cleanupTasks.push(stopRecording),{stop:__name(()=>{cleanupTasks.forEach(task=>task())},"stop")}}__name(startRecording,"startRecording");export{startRecording};
3
- //# sourceMappingURL=startRecording-oz3NQO5N.js.map
3
+ //# sourceMappingURL=startRecording-Da15t52a.js.map