using System; using System.Text.RegularExpressions; namespace Unity.VisualScripting.Analytics { internal static class AnalyticsUtilities { internal static string AnonymizeException(Exception e) { const string pathSectionOutsidePackage = "in (?<P>.*)Packages\\\\com.unity.visualscripting"; // Placing a '^' character to distinguish these lines from file paths outside our package const string pathSectionOutsidePackageReplacement = "in ^Packages\\com.unity.visualscripting"; var anonymizedString = Regex.Replace(e.ToString(), pathSectionOutsidePackage, pathSectionOutsidePackageReplacement); // Detecting any callstack line that doesn't match our previously anonymized package paths const string filePathsOutsidePackage = ". at.*in (?<P>[^^]*:[0-9]*)"; const string filePathsOutsidePackageReplacement = " at <method> in <file>"; anonymizedString = Regex.Replace(anonymizedString, filePathsOutsidePackage, filePathsOutsidePackageReplacement); return anonymizedString; } } }