netstack.js 1.1.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -6
- package/images/flags/AD - Andorra.svg +43 -0
- package/images/flags/AE - United Arab Emirates.svg +21 -0
- package/images/flags/AF - Afghanistan.svg +30 -0
- package/images/flags/AG - Antigua and Barbuda.svg +24 -0
- package/images/flags/AI - Anguilla.svg +60 -0
- package/images/flags/AL - Albania.svg +21 -0
- package/images/flags/AM - Armenia.svg +24 -0
- package/images/flags/AMS.svg +30 -0
- package/images/flags/AO - Angola.svg +49 -0
- package/images/flags/AQ - Antarctica.svg +27 -0
- package/images/flags/AR - Argentina.svg +37 -0
- package/images/flags/AS - American Samoa.svg +28 -0
- package/images/flags/AT - Austria.svg +24 -0
- package/images/flags/AU - Australia.svg +56 -0
- package/images/flags/AW - Aruba.svg +28 -0
- package/images/flags/AX - Aland Islands.svg +25 -0
- package/images/flags/AZ - Azerbaijan.svg +29 -0
- package/images/flags/African Union.svg +78 -0
- package/images/flags/BA - Bosnia and Herzegovina.svg +29 -0
- package/images/flags/BB - Barbados.svg +21 -0
- package/images/flags/BD - Bangladesh.svg +19 -0
- package/images/flags/BE - Belgium.svg +20 -0
- package/images/flags/BF - Burkina Faso.svg +24 -0
- package/images/flags/BG - Bulgaria.svg +24 -0
- package/images/flags/BH - Bahrain.svg +19 -0
- package/images/flags/BI - Burundi.svg +23 -0
- package/images/flags/BJ - Benin.svg +20 -0
- package/images/flags/BL - Saint Barth/303/251lemy.svg" +20 -0
- package/images/flags/BM - Bermuda.svg +73 -0
- package/images/flags/BN - Brunei Darussalam.svg +34 -0
- package/images/flags/BO - Bolivia.svg +93 -0
- package/images/flags/BQ-BO - Bonaire.svg +22 -0
- package/images/flags/BQ-SA - Saba.svg +23 -0
- package/images/flags/BQ-SE - Sint Eustatius.svg +28 -0
- package/images/flags/BR - Brazil.svg +53 -0
- package/images/flags/BS - Bahamas.svg +21 -0
- package/images/flags/BT - Bhutan.svg +32 -0
- package/images/flags/BV - Bouvet Island.svg +25 -0
- package/images/flags/BW - Botswana.svg +24 -0
- package/images/flags/BY - Belarus.svg +53 -0
- package/images/flags/BZ - Belize.svg +87 -0
- package/images/flags/CA - Canada.svg +21 -0
- package/images/flags/CC - Cocos (Keeling) Islands.svg +34 -0
- package/images/flags/CD - Democratic Republic of the Congo.svg +26 -0
- package/images/flags/CF - Central African Republic.svg +27 -0
- package/images/flags/CG - Republic of the Congo.svg +26 -0
- package/images/flags/CH - Switzerland.svg +23 -0
- package/images/flags/CI - C/303/264te d'Ivoire (Ivory Coast).svg" +20 -0
- package/images/flags/CK - Cook Islands.svg +51 -0
- package/images/flags/CL - Chile.svg +25 -0
- package/images/flags/CM - Cameroon.svg +21 -0
- package/images/flags/CN - China.svg +25 -0
- package/images/flags/CO - Colombia.svg +24 -0
- package/images/flags/CR - Costa Rica.svg +23 -0
- package/images/flags/CU - Cuba.svg +33 -0
- package/images/flags/CV - Cabo Verde.svg +33 -0
- package/images/flags/CW - Cura/303/247ao.svg" +25 -0
- package/images/flags/CX - Christmas Island.svg +32 -0
- package/images/flags/CY - Cyprus.svg +28 -0
- package/images/flags/CZ - Czech Republic.svg +28 -0
- package/images/flags/DE - Germany.svg +20 -0
- package/images/flags/DJ - Djibouti.svg +29 -0
- package/images/flags/DK - Denmark.svg +25 -0
- package/images/flags/DM - Dominica.svg +36 -0
- package/images/flags/DO - Dominican Republic.svg +61 -0
- package/images/flags/DZ - Algeria.svg +22 -0
- package/images/flags/EC - Ecuador.svg +74 -0
- package/images/flags/EE - Estonia.svg +24 -0
- package/images/flags/EG - Egypt.svg +51 -0
- package/images/flags/EH - Western Sahara.svg +24 -0
- package/images/flags/ER - Eritrea.svg +21 -0
- package/images/flags/ES - Spain.svg +99 -0
- package/images/flags/ET - Ethiopia.svg +34 -0
- package/images/flags/EUROPE.svg +24 -0
- package/images/flags/FI - Finland.svg +27 -0
- package/images/flags/FJ - Fiji.svg +110 -0
- package/images/flags/FK - Falkland Islands.svg +71 -0
- package/images/flags/FM - Federated States of Micronesia.svg +30 -0
- package/images/flags/FO - Faroe Islands.svg +25 -0
- package/images/flags/FR - France.svg +20 -0
- package/images/flags/GA - Gabon.svg +20 -0
- package/images/flags/GB - England.svg +19 -0
- package/images/flags/GB-NIR_ - Northern Ireland.svg +44 -0
- package/images/flags/GB-SCT - Scotland.svg +27 -0
- package/images/flags/GB-UKM - United Kingdom.svg +44 -0
- package/images/flags/GB-WLS - Wales.svg +25 -0
- package/images/flags/GD - Grenada.svg +46 -0
- package/images/flags/GE - Georgia.svg +33 -0
- package/images/flags/GF - French Guiana.svg +20 -0
- package/images/flags/GG - Guernsey.svg +26 -0
- package/images/flags/GH - Ghana.svg +21 -0
- package/images/flags/GI - Gibraltar.svg +42 -0
- package/images/flags/GL - Greenland.svg +33 -0
- package/images/flags/GM - Gambia.svg +20 -0
- package/images/flags/GN - Guinea.svg +20 -0
- package/images/flags/GP - Guadeloupe-1.svg +61 -0
- package/images/flags/GP - Guadeloupe.svg +20 -0
- package/images/flags/GQ - Equatorial Guinea.svg +43 -0
- package/images/flags/GR - Greece.svg +23 -0
- package/images/flags/GS - S. Georgia and S. Sandwich Islands.svg +93 -0
- package/images/flags/GT - Guatemala.svg +34 -0
- package/images/flags/GU - Guam.svg +41 -0
- package/images/flags/GW - Guinea-Bissau.svg +21 -0
- package/images/flags/GY - Guyana.svg +22 -0
- package/images/flags/HK - Hong Kong.svg +33 -0
- package/images/flags/HM - Heard and McDonald Islands.svg +56 -0
- package/images/flags/HN - Honduras.svg +33 -0
- package/images/flags/HR - Croatia (Hrvatska).svg +80 -0
- package/images/flags/HT - Haiti.svg +72 -0
- package/images/flags/HU - Hungary.svg +24 -0
- package/images/flags/ID - Indonesia.svg +23 -0
- package/images/flags/IE - Ireland.svg +20 -0
- package/images/flags/IL - Isreal.svg +26 -0
- package/images/flags/IM - Isle of Man.svg +43 -0
- package/images/flags/IN - India.svg +30 -0
- package/images/flags/IO - British Indian Ocean Territory.svg +68 -0
- package/images/flags/IQ - Iraq.svg +29 -0
- package/images/flags/IR - Iran.svg +35 -0
- package/images/flags/IS - Iceland.svg +25 -0
- package/images/flags/IT - Italy.svg +20 -0
- package/images/flags/JE - Jersey.svg +37 -0
- package/images/flags/JM - Jamaica.svg +22 -0
- package/images/flags/JO - Jordan.svg +30 -0
- package/images/flags/JP - Japan.svg +23 -0
- package/images/flags/KG - Kyrgyzstan.svg +27 -0
- package/images/flags/KH - Cambodia.svg +88 -0
- package/images/flags/KI - Kiribati.svg +38 -0
- package/images/flags/KM - Comoros.svg +27 -0
- package/images/flags/KN - Kenia.svg +36 -0
- package/images/flags/KN-SK - Saint Kitts and Nevis.svg +28 -0
- package/images/flags/KP - Korea (North).svg +29 -0
- package/images/flags/KR - Korea (South).svg +38 -0
- package/images/flags/KW - Kuwait.svg +29 -0
- package/images/flags/KY - Cayman Islands.svg +82 -0
- package/images/flags/KZ - Kazakhstan.svg +82 -0
- package/images/flags/LA - Laos.svg +21 -0
- package/images/flags/LB - Lebanon.svg +22 -0
- package/images/flags/LC - Saint Lucia.svg +21 -0
- package/images/flags/LI - Liechtenstein.svg +32 -0
- package/images/flags/LK - Sri Lanka.svg +26 -0
- package/images/flags/LR - Liberia.svg +29 -0
- package/images/flags/LS - Lesotho.svg +23 -0
- package/images/flags/LT - Lithuania.svg +24 -0
- package/images/flags/LU - Luxembourg.svg +24 -0
- package/images/flags/LV - Latvia.svg +20 -0
- package/images/flags/LY - Libya.svg +23 -0
- package/images/flags/MA - Morocco.svg +23 -0
- package/images/flags/MC - Monaco.svg +23 -0
- package/images/flags/MD - Moldova.svg +47 -0
- package/images/flags/ME - Montenegro.svg +45 -0
- package/images/flags/MF - Saint Martin.svg +20 -0
- package/images/flags/MG - Madagascar.svg +20 -0
- package/images/flags/MH - Marshall Islands.svg +25 -0
- package/images/flags/MK - Former Yugoslav Republic of Macedonia.svg +24 -0
- package/images/flags/ML - Mali.svg +20 -0
- package/images/flags/MM - Myanmar.svg +23 -0
- package/images/flags/MN - Mongolia.svg +24 -0
- package/images/flags/MO - Macao.svg +46 -0
- package/images/flags/MP - Northern Mariana Islands.svg +33 -0
- package/images/flags/MQ - Martinique.svg +20 -0
- package/images/flags/MQ-UNF - Martinique.svg +10 -0
- package/images/flags/MR - Mauritania.svg +30 -0
- package/images/flags/MS - Montserrat.svg +71 -0
- package/images/flags/MT - Malta.svg +26 -0
- package/images/flags/MU - Mauritius.svg +25 -0
- package/images/flags/MV - Maldives.svg +25 -0
- package/images/flags/MW - Malawi.svg +29 -0
- package/images/flags/MX - Mexico.svg +31 -0
- package/images/flags/MY - Malaysia.svg +28 -0
- package/images/flags/MZ - Mozambique.svg +40 -0
- package/images/flags/NA - Namibia.svg +29 -0
- package/images/flags/NC - New Caledonia.svg +20 -0
- package/images/flags/NE - Niger.svg +25 -0
- package/images/flags/NF - Norfolk Island.svg +23 -0
- package/images/flags/NG - Nigeria.svg +20 -0
- package/images/flags/NI - Nicaragua.svg +45 -0
- package/images/flags/NL - Netherlands.svg +24 -0
- package/images/flags/NO - Norway.svg +25 -0
- package/images/flags/NP - Nepal.svg +21 -0
- package/images/flags/NR - Nauru.svg +28 -0
- package/images/flags/NU - Niue.svg +58 -0
- package/images/flags/NZ - New Zealand (Aotearoa).svg +51 -0
- package/images/flags/OM - Oman.svg +28 -0
- package/images/flags/PA - Panama.svg +26 -0
- package/images/flags/PE - Peru.svg +51 -0
- package/images/flags/PF - French Polynesia.svg +61 -0
- package/images/flags/PG - Papua New Guinea.svg +27 -0
- package/images/flags/PH - Philippines.svg +33 -0
- package/images/flags/PK - Pakistan.svg +22 -0
- package/images/flags/PL - Poland.svg +23 -0
- package/images/flags/PM - Saint Pierre and Miquelon.svg +20 -0
- package/images/flags/PM-UNF - St. Pierre & Miquelon.svg +29 -0
- package/images/flags/PN - Pitcairn Islands.svg +88 -0
- package/images/flags/PR - Puerto Rico.svg +33 -0
- package/images/flags/PS - Palestinian Territory.svg +21 -0
- package/images/flags/PT - Portugal.svg +150 -0
- package/images/flags/PW - Palau.svg +23 -0
- package/images/flags/PY - Paraguay.svg +34 -0
- package/images/flags/QA - Qatar.svg +19 -0
- package/images/flags/RAINBOW.svg +28 -0
- package/images/flags/RE - Reunion.svg +20 -0
- package/images/flags/RO - Romania.svg +20 -0
- package/images/flags/RS - Serbia.svg +57 -0
- package/images/flags/RU - Russian Federation.svg +24 -0
- package/images/flags/RW - Rwanda.svg +29 -0
- package/images/flags/SA - Saudi Arabia.svg +22 -0
- package/images/flags/SB - Solomon Islands.svg +30 -0
- package/images/flags/SC - Seychelles.svg +26 -0
- package/images/flags/SD - Sudan.svg +21 -0
- package/images/flags/SE - Sweden.svg +25 -0
- package/images/flags/SG - Singapore.svg +24 -0
- package/images/flags/SH - Saint Helena.svg +127 -0
- package/images/flags/SI - Slovenia.svg +34 -0
- package/images/flags/SJ - Svalbard and Jan Mayen.svg +25 -0
- package/images/flags/SK - Slovakia.svg +35 -0
- package/images/flags/SL - Slovenia.svg +24 -0
- package/images/flags/SM - San Marino.svg +57 -0
- package/images/flags/SN - Senegal.svg +21 -0
- package/images/flags/SO - Somalia.svg +21 -0
- package/images/flags/SR - Suriname.svg +21 -0
- package/images/flags/SS - South Sudan.svg +23 -0
- package/images/flags/ST - Sao Tome and Principe.svg +23 -0
- package/images/flags/SV - El Salvador.svg +34 -0
- package/images/flags/SX - Sint Maarten.svg +45 -0
- package/images/flags/SY - Syria.svg +22 -0
- package/images/flags/SZ - Swaziland.svg +47 -0
- package/images/flags/TC - Turks and Caicos Islands.svg +57 -0
- package/images/flags/TD - Chad.svg +20 -0
- package/images/flags/TF - French Southern and Antarctic Lands.svg +37 -0
- package/images/flags/TG - Togo.svg +22 -0
- package/images/flags/TH - Thailand.svg +20 -0
- package/images/flags/TJ - Tajikistan.svg +24 -0
- package/images/flags/TK - Tokelau.svg +27 -0
- package/images/flags/TL - Timor-Leste.svg +21 -0
- package/images/flags/TM - Turkmenistan.svg +121 -0
- package/images/flags/TN - Tunisia.svg +24 -0
- package/images/flags/TO - Tonga.svg +24 -0
- package/images/flags/TR - Turkey.svg +23 -0
- package/images/flags/TT - Trinidad and Tobago.svg +23 -0
- package/images/flags/TV - Tuvalu.svg +51 -0
- package/images/flags/TW - Taiwan.svg +26 -0
- package/images/flags/TZ - Tanzania.svg +24 -0
- package/images/flags/UA - Ukraine.svg +23 -0
- package/images/flags/UG - Uganda.svg +38 -0
- package/images/flags/UM - United States Minor Outlying Islands.svg +27 -0
- package/images/flags/US - United States.svg +27 -0
- package/images/flags/UY - Uruguay.svg +41 -0
- package/images/flags/UZ - Uzbekistan.svg +25 -0
- package/images/flags/Union of South American nations.svg +21 -0
- package/images/flags/VA - Vatican City State.svg +37 -0
- package/images/flags/VC - Saint Vincent and the Grenadines.svg +23 -0
- package/images/flags/VE - Venezuela.svg +31 -0
- package/images/flags/VG - Virgin Islands (British).svg +63 -0
- package/images/flags/VI - Virgin Islands (U.S.).svg +38 -0
- package/images/flags/VN - Vietnam.svg +28 -0
- package/images/flags/VU - Vanuatu.svg +29 -0
- package/images/flags/WF - Wallis and Futuna.svg +20 -0
- package/images/flags/WS - Samoa.svg +30 -0
- package/images/flags/XK - Kosovo.svg +20 -0
- package/images/flags/YE - Yemen.svg +24 -0
- package/images/flags/ZA - South Africa.svg +24 -0
- package/images/flags/ZM - Zambia.svg +31 -0
- package/images/flags/ZW - Zimbabwe.svg +37 -0
- package/netstack.js +195 -156
- package/package.json +8 -6
- package/images/flags/Denmark-flag.png +0 -0
- package/images/flags/Germany-flag.png +0 -0
- package/images/flags/Russia-flag.png +0 -0
- package/images/flags/USA-flag.png +0 -0
package/netstack.js
CHANGED
|
@@ -1,57 +1,38 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* netStack
|
|
3
|
-
* A simple and easy
|
|
4
|
-
* License
|
|
5
|
-
* Author
|
|
2
|
+
* netStack v2.0.0
|
|
3
|
+
* A simple and easy JavaScript library for highlighting .NET stack traces
|
|
4
|
+
* License: Apache 2
|
|
5
|
+
* Author: https://elmah.io
|
|
6
6
|
*/
|
|
7
|
-
(function($) {
|
|
8
|
-
'use strict';
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
(function(root, factory) {
|
|
9
|
+
if (typeof define === 'function' && define.amd) {
|
|
10
|
+
// AMD
|
|
11
|
+
define([], factory);
|
|
12
|
+
} else if (typeof module === 'object' && module.exports) {
|
|
13
|
+
// Node, CommonJS-like
|
|
14
|
+
module.exports = factory();
|
|
15
|
+
} else {
|
|
16
|
+
// Browser globals (root is window)
|
|
17
|
+
root.netStack = factory();
|
|
18
|
+
}
|
|
19
|
+
}(typeof self !== 'undefined' ? self : this, function() {
|
|
20
|
+
|
|
21
|
+
function netStack(element, options) {
|
|
22
|
+
if (typeof document !== 'undefined') {
|
|
23
|
+
if (typeof element === 'string') {
|
|
24
|
+
this.element = document.querySelector(element);
|
|
25
|
+
} else if (element instanceof HTMLElement) {
|
|
26
|
+
this.element = element;
|
|
25
27
|
} else {
|
|
26
|
-
|
|
28
|
+
throw new Error('The element parameter must be a selector string or an HTMLElement.');
|
|
27
29
|
}
|
|
30
|
+
} else {
|
|
31
|
+
throw new Error('netStack requires a DOM environment');
|
|
28
32
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var searchReplaces = [
|
|
33
|
-
{
|
|
34
|
-
find: /(-{3}\s)(.*?)(-{3})/gm,
|
|
35
|
-
repl: null
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
find: new RegExp('(\\s)'+at_language+' ([^-:]*?)\\((.*?)\\)', 'g'),
|
|
39
|
-
repl: null
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
searchReplaces.forEach(function(item){
|
|
43
|
-
if(item.repl == null) {
|
|
44
|
-
result = result.replace(item.find, function(){ return replacer(arguments, at_language); });
|
|
45
|
-
} else {
|
|
46
|
-
result = result.replace(item.find, item.repl);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
return result;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
var settings = $.extend({
|
|
53
|
-
|
|
54
|
-
// Default values for classes
|
|
33
|
+
|
|
34
|
+
// Default values for classes
|
|
35
|
+
this.settings = extend({
|
|
55
36
|
prettyprint: false,
|
|
56
37
|
frame: 'st-frame',
|
|
57
38
|
type: 'st-type',
|
|
@@ -61,158 +42,216 @@
|
|
|
61
42
|
paramName: 'st-param-name',
|
|
62
43
|
file: 'st-file',
|
|
63
44
|
line: 'st-line'
|
|
64
|
-
|
|
65
45
|
}, options);
|
|
66
46
|
|
|
67
|
-
|
|
47
|
+
this.languages = [
|
|
68
48
|
{ name: 'english', at: 'at', in: 'in', line: 'line' },
|
|
69
49
|
{ name: 'danish', at: 'ved', in: 'i', line: 'linje' },
|
|
70
50
|
{ name: 'german', at: 'bei', in: 'in', line: 'Zeile' },
|
|
71
|
-
{ name: 'russian', at: 'в', in: 'в', line: 'строка' }
|
|
51
|
+
{ name: 'russian', at: 'в', in: 'в', line: 'строка' },
|
|
52
|
+
{ name: 'chinese', at: '在', in: '位置', line: '行号' }
|
|
72
53
|
];
|
|
73
54
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
clone = '';
|
|
83
|
-
|
|
84
|
-
// search for language
|
|
85
|
-
for (var i = 0, j = lines.length; i < j; ++i) {
|
|
86
|
-
if(lang === '') {
|
|
87
|
-
var line = lines[i];
|
|
88
|
-
var english = new RegExp('(\\s+)at .*\\)'),
|
|
89
|
-
danish = new RegExp('(\\s+)ved .*\\)'),
|
|
90
|
-
german = new RegExp('(\\s+)bei .*\\)'),
|
|
91
|
-
russian = new RegExp('(\\s+)в .*\\)');
|
|
92
|
-
|
|
93
|
-
if(english.test(lines[i])) {
|
|
94
|
-
lang = 'english';
|
|
95
|
-
} else if (danish.test(lines[i])) {
|
|
96
|
-
lang = 'danish';
|
|
97
|
-
} else if (german.test(lines[i])) {
|
|
98
|
-
lang = 'german';
|
|
99
|
-
} else if (russian.test(lines[i])) {
|
|
100
|
-
lang = 'russian';
|
|
101
|
-
}
|
|
55
|
+
this.init();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function extend() {
|
|
59
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
60
|
+
for (var key in arguments[i]) {
|
|
61
|
+
if (arguments[i].hasOwnProperty(key)) {
|
|
62
|
+
arguments[0][key] = arguments[i][key];
|
|
102
63
|
}
|
|
103
64
|
}
|
|
65
|
+
}
|
|
66
|
+
return arguments[0];
|
|
67
|
+
}
|
|
104
68
|
|
|
105
|
-
|
|
69
|
+
netStack.prototype.search = function(nameKey, myArray) {
|
|
70
|
+
for (var i = 0; i < myArray.length; i++) {
|
|
71
|
+
if (myArray[i].name === nameKey) {
|
|
72
|
+
return myArray[i];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
};
|
|
106
77
|
|
|
107
|
-
|
|
78
|
+
netStack.prototype.replacer = function(args, at_language) {
|
|
79
|
+
if (args[0].substring(0).match(/(-{3}>)/)) {
|
|
80
|
+
return '\r\n ' + args[0];
|
|
81
|
+
} else if (args[0].substring(0).match(/(-{3})/)) {
|
|
82
|
+
return '\r\n ' + args[0];
|
|
83
|
+
} else {
|
|
84
|
+
return '\r\n ' + at_language + ' ' + args[2] + '(' + args[3] + ')';
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
netStack.prototype.formatException = function(exceptionMessage, at_language) {
|
|
89
|
+
var result = exceptionMessage || '';
|
|
90
|
+
var searchReplaces = [
|
|
91
|
+
{
|
|
92
|
+
find: new RegExp('(-{3}>\\s)(.*?)(?=\\s-{3}|(\\s)+' + at_language + ')', 'g'),
|
|
93
|
+
repl: null
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
find: /(-{3}\s)(.*?)(-{3})/gm,
|
|
97
|
+
repl: null
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
find: new RegExp('(\\s)' + at_language + ' ([^-:]*?)\\((.*?)\\)', 'g'),
|
|
101
|
+
repl: null
|
|
102
|
+
}
|
|
103
|
+
];
|
|
104
|
+
|
|
105
|
+
var self = this;
|
|
106
|
+
searchReplaces.forEach(function(item) {
|
|
107
|
+
if (item.repl == null) {
|
|
108
|
+
result = result.replace(item.find, function() {
|
|
109
|
+
return self.replacer(arguments, at_language);
|
|
110
|
+
});
|
|
111
|
+
} else {
|
|
112
|
+
result = result.replace(item.find, item.repl);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return result;
|
|
116
|
+
};
|
|
108
117
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
118
|
+
netStack.prototype.init = function() {
|
|
119
|
+
// Get the stacktrace, sanitize it, and split it into lines
|
|
120
|
+
var stacktrace = this.element.textContent,
|
|
121
|
+
sanitizedStack = stacktrace.replace(/</g, '<').replace(/>/g, '>'),
|
|
122
|
+
lines = sanitizedStack.split('\n'),
|
|
123
|
+
lang = '',
|
|
124
|
+
clone = '';
|
|
125
|
+
|
|
126
|
+
// look for the language
|
|
127
|
+
for (var i = 0; i < lines.length; ++i) {
|
|
128
|
+
if (lang === '') {
|
|
129
|
+
var regexes = {
|
|
130
|
+
english: /\s+at .*\)/,
|
|
131
|
+
danish: /\s+ved .*\)/,
|
|
132
|
+
german: /\s+bei .*\)/,
|
|
133
|
+
russian: /\s+в .*\)/,
|
|
134
|
+
chinese: /\s+在 .*\)/
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
for (var key in regexes) {
|
|
138
|
+
if (regexes[key].test(lines[i])) {
|
|
139
|
+
lang = key;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
113
143
|
}
|
|
144
|
+
}
|
|
114
145
|
|
|
115
|
-
|
|
146
|
+
if (lang === '') return;
|
|
116
147
|
|
|
117
|
-
|
|
118
|
-
|
|
148
|
+
var selectedLanguage = this.search(lang, this.languages);
|
|
149
|
+
this.language = selectedLanguage.name;
|
|
119
150
|
|
|
151
|
+
// Pritty print result if is set to true
|
|
152
|
+
if (this.settings.prettyprint) {
|
|
153
|
+
sanitizedStack = this.formatException(sanitizedStack, selectedLanguage.at);
|
|
154
|
+
lines = sanitizedStack.split('\n');
|
|
155
|
+
}
|
|
120
156
|
|
|
121
|
-
|
|
157
|
+
for (var i = 0; i < lines.length; ++i) {
|
|
158
|
+
var li = lines[i],
|
|
159
|
+
hli = new RegExp('(\\S*)' + selectedLanguage.at + ' .*\\)');
|
|
122
160
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
161
|
+
if (hli.test(lines[i])) {
|
|
162
|
+
|
|
163
|
+
// Frame
|
|
164
|
+
var regFrame = new RegExp('(\\S*)' + selectedLanguage.at + ' .*?\\)'),
|
|
165
|
+
partsFrame = String(regFrame.exec(lines[i]));
|
|
126
166
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
167
|
+
if (partsFrame.substring(partsFrame.length - 1) == ',') {
|
|
168
|
+
partsFrame = partsFrame.slice(0, -1);
|
|
169
|
+
}
|
|
130
170
|
|
|
131
|
-
|
|
171
|
+
partsFrame = partsFrame.replace(selectedLanguage.at + ' ', '');
|
|
132
172
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
173
|
+
// Frame -> ParameterList
|
|
174
|
+
var regParamList = /\(.*\)/,
|
|
175
|
+
partsParamList = String(regParamList.exec(lines[i]));
|
|
136
176
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
177
|
+
// Frame -> Params
|
|
178
|
+
var partsParams = partsParamList.replace('(', '').replace(')', ''),
|
|
179
|
+
arrParams = partsParams.split(', '),
|
|
180
|
+
stringParam = '';
|
|
141
181
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
paramName = param[1];
|
|
182
|
+
for (var x = 0; x < arrParams.length; ++x) {
|
|
183
|
+
var param = arrParams[x].split(' '),
|
|
184
|
+
paramType = param[0],
|
|
185
|
+
paramName = param[1];
|
|
147
186
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
187
|
+
if (param[0] !== "null" && param[0] !== '') {
|
|
188
|
+
var theParam = '<span class="' + this.settings.paramType + '">' + paramType + '</span>' + ' ' + '<span class="' + this.settings.paramName + '">' + paramName + '</span>';
|
|
189
|
+
stringParam += String(theParam) + ', ';
|
|
152
190
|
}
|
|
191
|
+
}
|
|
153
192
|
|
|
154
|
-
|
|
155
|
-
|
|
193
|
+
stringParam = stringParam.replace(/,\s*$/, "");
|
|
194
|
+
stringParam = '<span class="' + this.settings.paramsList + '">' + '(' + stringParam + ')' + '</span>';
|
|
156
195
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
196
|
+
// Frame -> Type & Method
|
|
197
|
+
var partsTypeMethod = partsFrame.replace(partsParamList, ''),
|
|
198
|
+
arrTypeMethod = partsTypeMethod.split('.'),
|
|
199
|
+
method = arrTypeMethod.pop(),
|
|
200
|
+
type = partsTypeMethod.replace('.' + method, ''),
|
|
201
|
+
stringTypeMethod = '<span class="' + this.settings.type + '">' + type + '</span>.' + '<span class="' + this.settings.method + '">' + method + '</span>';
|
|
163
202
|
|
|
164
|
-
|
|
165
|
-
|
|
203
|
+
// Construct Frame
|
|
204
|
+
var newPartsFrame = partsFrame.replace(partsParamList, stringParam).replace(partsTypeMethod, stringTypeMethod);
|
|
166
205
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
partsLine = partsLine.replace(':', '').trim();
|
|
206
|
+
// Line
|
|
207
|
+
var regLine = new RegExp('\\b:' + selectedLanguage.line + ' \\d+'),
|
|
208
|
+
partsLine = String(regLine.exec(lines[i]));
|
|
171
209
|
|
|
172
|
-
|
|
210
|
+
partsLine = partsLine.replace(':', '').trim();
|
|
173
211
|
|
|
174
|
-
|
|
175
|
-
var regFile = new RegExp(selectedLanguage['in']+'\\s.*$', 'm'),
|
|
176
|
-
partsFile = String(regFile.exec(fileLi));
|
|
212
|
+
var fileLi = li.replace(selectedLanguage.at + " " + partsFrame, '').trim();
|
|
177
213
|
|
|
178
|
-
|
|
214
|
+
// File => (!) text requires multiline to exec regex, otherwise it will return null.
|
|
215
|
+
var regFile = new RegExp(selectedLanguage.in + '\\s.*$', 'm'),
|
|
216
|
+
partsFile = String(regFile.exec(fileLi));
|
|
179
217
|
|
|
180
|
-
|
|
181
|
-
.replace(partsFile, '<span class="' + settings.file + '">' + partsFile + '</span>')
|
|
182
|
-
.replace(partsLine, '<span class="' + settings.line + '">' + partsLine + '</span>');
|
|
218
|
+
partsFile = partsFile.replace(selectedLanguage.in + ' ', '').replace(':' + partsLine, '').replace('<---', '');
|
|
183
219
|
|
|
184
|
-
|
|
220
|
+
li = li.replace(partsFrame, '<span class="' + this.settings.frame + '">' + newPartsFrame + '</span>')
|
|
221
|
+
.replace(partsFile, '<span class="' + this.settings.file + '">' + partsFile + '</span>')
|
|
222
|
+
.replace(partsLine, '<span class="' + this.settings.line + '">' + partsLine + '</span>');
|
|
223
|
+
|
|
224
|
+
li = li.replace(/</g, '<span><</span>').replace(/>/g, '<span>></span>');
|
|
225
|
+
|
|
226
|
+
if (lines.length - 1 == i) {
|
|
227
|
+
clone += li;
|
|
228
|
+
} else {
|
|
229
|
+
clone += li + '\n';
|
|
230
|
+
}
|
|
231
|
+
} else {
|
|
232
|
+
if ((lines[i].trim()).length) {
|
|
233
|
+
li = lines[i];
|
|
185
234
|
|
|
186
235
|
if (lines.length - 1 == i) {
|
|
187
236
|
clone += li;
|
|
188
237
|
} else {
|
|
189
238
|
clone += li + '\n';
|
|
190
239
|
}
|
|
191
|
-
} else {
|
|
192
|
-
if((lines[i].trim()).length) {
|
|
193
|
-
li = lines[i];
|
|
194
|
-
|
|
195
|
-
if (lines.length - 1 == i) {
|
|
196
|
-
clone += li;
|
|
197
|
-
} else {
|
|
198
|
-
clone += li + '\n';
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
240
|
}
|
|
202
241
|
}
|
|
242
|
+
}
|
|
203
243
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
self.getLanguage = function () {
|
|
209
|
-
return selectedLanguage ? selectedLanguage.name : null;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return $(this).html(clone);
|
|
244
|
+
this.element.innerHTML = clone;
|
|
245
|
+
};
|
|
213
246
|
|
|
214
|
-
|
|
247
|
+
netStack.prototype.getJSON = function() {
|
|
248
|
+
return JSON.stringify(this.element.innerHTML);
|
|
249
|
+
};
|
|
215
250
|
|
|
251
|
+
netStack.prototype.getLanguage = function() {
|
|
252
|
+
return this.language;
|
|
216
253
|
};
|
|
217
254
|
|
|
218
|
-
|
|
255
|
+
return netStack;
|
|
256
|
+
|
|
257
|
+
}));
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netstack.js",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "A simple and easy
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "A simple and easy JavaScript library for highlighting .NET stack traces",
|
|
5
5
|
"main": "netstack.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "mocha"
|
|
@@ -20,15 +20,17 @@
|
|
|
20
20
|
".NET",
|
|
21
21
|
"stacktrace",
|
|
22
22
|
"formatter",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"JavaScript",
|
|
24
|
+
"library",
|
|
25
25
|
"elmah.io"
|
|
26
26
|
],
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"assert": "^2.0.0",
|
|
29
29
|
"chai": "^4.3.4",
|
|
30
|
-
"jquery": "^3.6.0",
|
|
31
30
|
"jsdom": "^17.0.0",
|
|
32
31
|
"mocha": "^9.1.2"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"gulp": "^5.0.0"
|
|
33
35
|
}
|
|
34
|
-
}
|
|
36
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|