1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16function parseDumpSrc(str: string): string { 17 let _str: string = str; 18 _str = cleanCopyRight(_str); 19 _str = removeSpaceAndReturn(_str); 20 _str = replaceWithRandomNumber(_str); 21 22 return _str; 23} 24 25function filterSource(text: string): string { 26 const filtered: string = text.replaceAll(/%/g, '_').replaceAll(/#/g, '_').replaceAll('<cctor>', '_cctor_'); 27 28 return filtered; 29} 30 31function cleanCopyRight(str: string): string { 32 const copyrightBlockRegex = /(?:\/\*.*Copyright \([c|C]\) [- \d]+ [\w ]+\., Ltd\..*\*\/)/gs; 33 34 return str.replace(copyrightBlockRegex, ''); 35} 36 37function removeSpaceAndReturn(str: string): string { 38 const spaceAndReturnRegex = /^[\s\r]+/gm; 39 40 return str.replace(spaceAndReturnRegex, '').trim(); 41} 42 43function replaceWithRandomNumber(text: string): string { 44 return text 45 .replace(/(?<=__memo_id[\)+]?\s?\+\s?[\(+]?)\d+/g, () => '<some_random_number>') 46 .replace(/(?<=gensym[_%]+)\d+/g, () => '<some_random_number>'); 47} 48 49export { parseDumpSrc, filterSource, cleanCopyRight, removeSpaceAndReturn, replaceWithRandomNumber }; 50