rollbar 2.26.2 → 2.26.4
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/.github/workflows/ci.yml +32 -10
- package/.lgtm.yml +7 -7
- package/.prettierignore +18 -0
- package/.vscode/settings.json +39 -0
- package/CHANGELOG.md +121 -35
- package/Gruntfile.js +51 -71
- package/README.md +2 -4
- package/bower.json +1 -3
- package/defaults.js +17 -5
- package/dist/plugins/jquery.min.js +1 -1
- package/dist/rollbar.js +5699 -5052
- package/dist/rollbar.js.map +1 -1
- package/dist/rollbar.min.js +1 -1
- package/dist/rollbar.min.js.map +1 -1
- package/dist/rollbar.named-amd.js +5704 -5062
- package/dist/rollbar.named-amd.js.map +1 -1
- package/dist/rollbar.named-amd.min.js +1 -1
- package/dist/rollbar.named-amd.min.js.map +1 -1
- package/dist/rollbar.noconflict.umd.js +5693 -5052
- package/dist/rollbar.noconflict.umd.js.map +1 -1
- package/dist/rollbar.noconflict.umd.min.js +1 -1
- package/dist/rollbar.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.snippet.js +1 -1
- package/dist/rollbar.umd.js +5704 -5063
- package/dist/rollbar.umd.js.map +1 -1
- package/dist/rollbar.umd.min.js +1 -1
- package/dist/rollbar.umd.min.js.map +1 -1
- package/docs/extension-exceptions.md +35 -30
- package/docs/migration_v0_to_v1.md +41 -38
- package/index.d.ts +270 -231
- package/karma.conf.js +16 -34
- package/package.json +21 -17
- package/prettier.config.js +7 -0
- package/src/api.js +21 -10
- package/src/apiUtility.js +12 -8
- package/src/browser/core.js +103 -65
- package/src/browser/defaults/scrubFields.js +3 -3
- package/src/browser/detection.js +7 -8
- package/src/browser/domUtility.js +18 -8
- package/src/browser/globalSetup.js +12 -6
- package/src/browser/logger.js +1 -1
- package/src/browser/plugins/jquery.js +35 -35
- package/src/browser/predicates.js +1 -1
- package/src/browser/rollbar.js +1 -1
- package/src/browser/rollbarWrapper.js +8 -5
- package/src/browser/shim.js +43 -19
- package/src/browser/snippet_callback.js +6 -4
- package/src/browser/telemetry.js +573 -354
- package/src/browser/transforms.js +46 -27
- package/src/browser/transport/fetch.js +16 -14
- package/src/browser/transport/xhr.js +29 -13
- package/src/browser/transport.js +82 -25
- package/src/browser/url.js +16 -8
- package/src/browser/wrapGlobals.js +27 -8
- package/src/defaults.js +3 -3
- package/src/errorParser.js +14 -11
- package/src/merge.js +32 -23
- package/src/notifier.js +16 -13
- package/src/predicates.js +43 -23
- package/src/queue.js +71 -39
- package/src/rateLimiter.js +59 -18
- package/src/react-native/logger.js +1 -1
- package/src/react-native/rollbar.js +59 -55
- package/src/react-native/transforms.js +13 -9
- package/src/react-native/transport.js +44 -34
- package/src/rollbar.js +22 -13
- package/src/scrub.js +0 -1
- package/src/server/locals.js +69 -39
- package/src/server/logger.js +4 -4
- package/src/server/parser.js +72 -47
- package/src/server/rollbar.js +133 -55
- package/src/server/sourceMap/stackTrace.js +33 -18
- package/src/server/telemetry/urlHelpers.js +9 -11
- package/src/server/telemetry.js +68 -45
- package/src/server/transforms.js +37 -21
- package/src/server/transport.js +62 -32
- package/src/telemetry.js +92 -28
- package/src/transforms.js +33 -21
- package/src/truncation.js +8 -5
- package/src/utility/headers.js +43 -43
- package/src/utility/replace.js +9 -0
- package/src/utility/traverse.js +1 -1
- package/src/utility.js +89 -52
- package/test/api.test.js +31 -29
- package/test/apiUtility.test.js +43 -44
- package/test/browser.core.test.js +141 -131
- package/test/browser.domUtility.test.js +52 -35
- package/test/browser.predicates.test.js +13 -13
- package/test/browser.rollbar.test.js +597 -503
- package/test/browser.telemetry.test.js +76 -0
- package/test/browser.transforms.test.js +146 -128
- package/test/browser.transport.test.js +54 -46
- package/test/browser.url.test.js +12 -11
- package/test/fixtures/locals.fixtures.js +245 -126
- package/test/notifier.test.js +90 -78
- package/test/predicates.test.js +260 -214
- package/test/queue.test.js +230 -214
- package/test/rateLimiter.test.js +50 -42
- package/test/react-native.rollbar.test.js +149 -115
- package/test/react-native.transforms.test.js +21 -23
- package/test/react-native.transport.test.js +23 -11
- package/test/server.lambda.test.js +70 -53
- package/test/server.locals.test.js +437 -210
- package/test/server.parser.test.js +32 -26
- package/test/server.predicates.test.js +45 -43
- package/test/server.rollbar.test.js +311 -259
- package/test/server.telemetry.test.js +208 -83
- package/test/server.transforms.test.js +455 -361
- package/test/server.transport.test.js +144 -76
- package/test/telemetry.test.js +46 -37
- package/test/transforms.test.js +68 -66
- package/test/truncation.test.js +55 -53
- package/test/utility.test.js +266 -222
- package/webpack.config.js +46 -43
- package/.gitmodules +0 -3
- package/browserstack.browsers.js +0 -153
- package/browserstack.browsers.json +0 -4384
package/Gruntfile.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build and test rollbar.js
|
|
3
|
-
*
|
|
4
|
-
* Test with browserstack:
|
|
5
|
-
* $> BROWSER_STACK_USERNAME=username BROWSER_STACK_ACCESS_KEY=12345asdf grunt test --browsers=bs_ie_latest
|
|
6
|
-
*
|
|
7
3
|
*/
|
|
8
4
|
|
|
9
|
-
|
|
10
5
|
'use strict';
|
|
11
6
|
|
|
12
7
|
var glob = require('glob');
|
|
@@ -15,8 +10,6 @@ var pkg = require('./package.json');
|
|
|
15
10
|
var fs = require('fs');
|
|
16
11
|
|
|
17
12
|
var webpackConfig = require('./webpack.config.js');
|
|
18
|
-
var browserStackBrowsers = require('./browserstack.browsers');
|
|
19
|
-
|
|
20
13
|
|
|
21
14
|
function findTests(context) {
|
|
22
15
|
if (context !== 'browser') {
|
|
@@ -25,7 +18,7 @@ function findTests(context) {
|
|
|
25
18
|
var files = glob.sync('test/**/!(server.)*.test.js');
|
|
26
19
|
var mapping = {};
|
|
27
20
|
|
|
28
|
-
files.forEach(function(file) {
|
|
21
|
+
files.forEach(function (file) {
|
|
29
22
|
var testName = path.basename(file, '.test.js');
|
|
30
23
|
mapping[testName] = file;
|
|
31
24
|
});
|
|
@@ -33,7 +26,7 @@ function findTests(context) {
|
|
|
33
26
|
return mapping;
|
|
34
27
|
}
|
|
35
28
|
|
|
36
|
-
function buildGruntKarmaConfig(singleRun,
|
|
29
|
+
function buildGruntKarmaConfig(singleRun, tests, reporters) {
|
|
37
30
|
var config = {
|
|
38
31
|
options: {
|
|
39
32
|
configFile: './karma.conf.js',
|
|
@@ -44,19 +37,19 @@ function buildGruntKarmaConfig(singleRun, browsers, tests, reporters) {
|
|
|
44
37
|
pattern: 'dist/**/*.js',
|
|
45
38
|
included: false,
|
|
46
39
|
served: true,
|
|
47
|
-
watched: false
|
|
40
|
+
watched: false,
|
|
48
41
|
},
|
|
49
42
|
{
|
|
50
43
|
pattern: 'src/**/*.js',
|
|
51
44
|
included: false,
|
|
52
45
|
served: true,
|
|
53
|
-
watched: false
|
|
46
|
+
watched: false,
|
|
54
47
|
},
|
|
55
48
|
{
|
|
56
49
|
pattern: 'examples/**/*.js',
|
|
57
50
|
included: false,
|
|
58
51
|
served: true,
|
|
59
|
-
watched: false
|
|
52
|
+
watched: false,
|
|
60
53
|
},
|
|
61
54
|
|
|
62
55
|
// Examples HTML, set `included: true`, but they won't be executed or added
|
|
@@ -65,36 +58,30 @@ function buildGruntKarmaConfig(singleRun, browsers, tests, reporters) {
|
|
|
65
58
|
pattern: 'examples/**/*.html',
|
|
66
59
|
included: true,
|
|
67
60
|
served: true,
|
|
68
|
-
watched: false
|
|
69
|
-
}
|
|
70
|
-
]
|
|
61
|
+
watched: false,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
71
64
|
},
|
|
72
65
|
};
|
|
73
66
|
|
|
74
|
-
if (browsers && browsers.length) {
|
|
75
|
-
config.options.browsers = browsers;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
67
|
if (reporters && reporters.length) {
|
|
79
68
|
config.options.reporters = reporters;
|
|
80
69
|
}
|
|
81
70
|
|
|
82
71
|
for (var testName in tests) {
|
|
83
72
|
var testFile = tests[testName];
|
|
84
|
-
var testConfig = config[testName] = {};
|
|
73
|
+
var testConfig = (config[testName] = {});
|
|
85
74
|
|
|
86
75
|
// Special case for testing requirejs integration.
|
|
87
76
|
// Include the requirejs module as a framework so
|
|
88
77
|
// Karma will inclue it in the web page.
|
|
89
78
|
if (testName === 'requirejs') {
|
|
90
|
-
testConfig.files = [
|
|
91
|
-
{src: './dist/rollbar.umd.js', included: false}
|
|
92
|
-
];
|
|
79
|
+
testConfig.files = [{ src: './dist/rollbar.umd.js', included: false }];
|
|
93
80
|
// NOTE: requirejs should go first in case the subsequent libraries
|
|
94
81
|
// check for the existence of `define()`
|
|
95
82
|
testConfig.frameworks = ['requirejs', 'expect', 'mocha'];
|
|
96
83
|
} else {
|
|
97
|
-
testConfig.files = [{src: [testFile]}];
|
|
84
|
+
testConfig.files = [{ src: [testFile] }];
|
|
98
85
|
}
|
|
99
86
|
|
|
100
87
|
// Special config for BrowserStack IE tests
|
|
@@ -107,32 +94,10 @@ function buildGruntKarmaConfig(singleRun, browsers, tests, reporters) {
|
|
|
107
94
|
return config;
|
|
108
95
|
}
|
|
109
96
|
|
|
110
|
-
|
|
111
|
-
module.exports = function(grunt) {
|
|
97
|
+
module.exports = function (grunt) {
|
|
112
98
|
require('time-grunt')(grunt);
|
|
113
99
|
|
|
114
100
|
var browserTests = findTests('browser');
|
|
115
|
-
var browsers = grunt.option('browsers');
|
|
116
|
-
if (browsers) {
|
|
117
|
-
browsers = browsers.split(',');
|
|
118
|
-
|
|
119
|
-
var browserStackAliases = [];
|
|
120
|
-
var nonBrowserStackAliases = [];
|
|
121
|
-
browsers.forEach(function(browserName) {
|
|
122
|
-
if (browserName.slice(0, 3) === 'bs_') {
|
|
123
|
-
browserStackAliases.push(browserName);
|
|
124
|
-
} else {
|
|
125
|
-
nonBrowserStackAliases.push(browserName);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
var expandedBrowsers = browserStackBrowsers.filter.apply(null, browserStackAliases);
|
|
130
|
-
var expandedBrowserNames = [];
|
|
131
|
-
expandedBrowsers.forEach(function(browser) {
|
|
132
|
-
expandedBrowserNames.push(browser._alias);
|
|
133
|
-
});
|
|
134
|
-
browsers = nonBrowserStackAliases.concat(expandedBrowserNames);
|
|
135
|
-
}
|
|
136
101
|
|
|
137
102
|
var singleRun = grunt.option('singleRun');
|
|
138
103
|
if (singleRun === undefined) {
|
|
@@ -149,7 +114,6 @@ module.exports = function(grunt) {
|
|
|
149
114
|
grunt.loadNpmTasks('grunt-text-replace');
|
|
150
115
|
grunt.loadNpmTasks('grunt-vows');
|
|
151
116
|
|
|
152
|
-
|
|
153
117
|
var rollbarJsSnippet = fs.readFileSync('dist/rollbar.snippet.js');
|
|
154
118
|
var rollbarjQuerySnippet = fs.readFileSync('dist/plugins/jquery.min.js');
|
|
155
119
|
|
|
@@ -159,46 +123,62 @@ module.exports = function(grunt) {
|
|
|
159
123
|
vows: {
|
|
160
124
|
all: {
|
|
161
125
|
options: {
|
|
162
|
-
reporter: 'spec'
|
|
126
|
+
reporter: 'spec',
|
|
163
127
|
},
|
|
164
|
-
src: ['test/server.*.test.js']
|
|
165
|
-
}
|
|
128
|
+
src: ['test/server.*.test.js'],
|
|
129
|
+
},
|
|
166
130
|
},
|
|
167
131
|
|
|
168
|
-
karma: buildGruntKarmaConfig(singleRun,
|
|
132
|
+
karma: buildGruntKarmaConfig(singleRun, browserTests, reporters),
|
|
169
133
|
|
|
170
134
|
replace: {
|
|
171
135
|
snippets: {
|
|
172
|
-
src: [
|
|
136
|
+
src: [
|
|
137
|
+
'*.md',
|
|
138
|
+
'src/**/*.js',
|
|
139
|
+
'examples/*.+(html|js)',
|
|
140
|
+
'examples/*/*.+(html|js)',
|
|
141
|
+
'docs/**/*.md',
|
|
142
|
+
],
|
|
173
143
|
overwrite: true,
|
|
174
144
|
replacements: [
|
|
175
145
|
// Main rollbar snippet
|
|
176
146
|
{
|
|
177
|
-
from: new RegExp(
|
|
178
|
-
|
|
147
|
+
from: new RegExp(
|
|
148
|
+
/* eslint-disable-next-line no-control-regex */
|
|
149
|
+
'^(.*// Rollbar Snippet)[\n\r]+(.*[\n\r])*(.*// End Rollbar Snippet)',
|
|
150
|
+
'm',
|
|
151
|
+
),
|
|
152
|
+
to: function (match, index, fullText, captures) {
|
|
179
153
|
captures[1] = rollbarJsSnippet;
|
|
180
154
|
return captures.join('\n');
|
|
181
|
-
}
|
|
155
|
+
},
|
|
182
156
|
},
|
|
183
157
|
// jQuery rollbar plugin snippet
|
|
184
158
|
{
|
|
185
|
-
from: new RegExp(
|
|
186
|
-
|
|
159
|
+
from: new RegExp(
|
|
160
|
+
/* eslint-disable-next-line no-control-regex */
|
|
161
|
+
'^(.*// Rollbar jQuery Snippet)[\n\r]+(.*[\n\r])*(.*// End Rollbar jQuery Snippet)',
|
|
162
|
+
'm',
|
|
163
|
+
),
|
|
164
|
+
to: function (match, index, fullText, captures) {
|
|
187
165
|
captures[1] = rollbarjQuerySnippet;
|
|
188
166
|
return captures.join('\n');
|
|
189
|
-
}
|
|
167
|
+
},
|
|
190
168
|
},
|
|
191
|
-
// README
|
|
169
|
+
// README CI link
|
|
192
170
|
{
|
|
193
|
-
from: new RegExp(
|
|
194
|
-
|
|
171
|
+
from: new RegExp(
|
|
172
|
+
'(https://github\\.com/rollbar/rollbar\\.js/workflows/Rollbar\\.js%20CI/badge\\.svg\\?branch=v)([0-9a-zA-Z.-]+)',
|
|
173
|
+
),
|
|
174
|
+
to: function (match, index, fullText, captures) {
|
|
195
175
|
captures[1] = pkg.version;
|
|
196
176
|
return captures.join('');
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
}
|
|
201
|
-
}
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
},
|
|
202
182
|
});
|
|
203
183
|
|
|
204
184
|
grunt.registerTask('build', ['webpack', 'replace:snippets']);
|
|
@@ -206,12 +186,12 @@ module.exports = function(grunt) {
|
|
|
206
186
|
grunt.registerTask('test', ['test-server', 'test-browser']);
|
|
207
187
|
grunt.registerTask('release', ['build', 'copyrelease']);
|
|
208
188
|
|
|
209
|
-
grunt.registerTask('test-server', function(_target) {
|
|
189
|
+
grunt.registerTask('test-server', function (_target) {
|
|
210
190
|
var tasks = ['vows'];
|
|
211
191
|
grunt.task.run.apply(grunt.task, tasks);
|
|
212
192
|
});
|
|
213
193
|
|
|
214
|
-
grunt.registerTask('test-browser', function(target) {
|
|
194
|
+
grunt.registerTask('test-browser', function (target) {
|
|
215
195
|
var karmaTask = 'karma' + (target ? ':' + target : '');
|
|
216
196
|
var tasks = [karmaTask];
|
|
217
197
|
grunt.task.run.apply(grunt.task, tasks);
|
|
@@ -226,11 +206,11 @@ module.exports = function(grunt) {
|
|
|
226
206
|
var minJs = 'dist/rollbar' + buildName + '.min.js';
|
|
227
207
|
|
|
228
208
|
var releaseJs = 'release/rollbar' + buildName + '-' + version + '.js';
|
|
229
|
-
var releaseMinJs =
|
|
209
|
+
var releaseMinJs =
|
|
210
|
+
'release/rollbar' + buildName + '-' + version + '.min.js';
|
|
230
211
|
|
|
231
212
|
grunt.file.copy(js, releaseJs);
|
|
232
213
|
grunt.file.copy(minJs, releaseMinJs);
|
|
233
214
|
});
|
|
234
215
|
});
|
|
235
|
-
|
|
236
216
|
};
|
package/README.md
CHANGED
|
@@ -12,21 +12,20 @@
|
|
|
12
12
|
[](https://lgtm.com/projects/g/rollbar/rollbar.js/context:javascript)
|
|
13
13
|
[](https://lgtm.com/projects/g/rollbar/rollbar.js/alerts)
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
---
|
|
17
16
|
|
|
18
17
|
## Key benefits of using Rollbar.js are:
|
|
18
|
+
|
|
19
19
|
- **Cross platform:** Rollbar.js supports both server-side and client-side Javascript, including frameworks such as <a href="https://docs.rollbar.com/docs/react-ts">React</a>, <a href="https://docs.rollbar.com/docs/angular">Angular</a>, <a href="https://docs.rollbar.com/docs/nodejs#using-express">Express</a>, <a href="https://docs.rollbar.com/docs/nextjs">Next.js</a> and more.
|
|
20
20
|
- **Telemetry:** The telemetry timeline provides a list of “breadcrumbs” events that can help developers understand and fix problems in their client-side javascript. <a href="https://docs.rollbar.com/docs/rollbarjs-telemetry">Learn more about telemetry</a>.
|
|
21
21
|
- **Automatic error grouping:** Rollbar aggregates Occurrences caused by the same error into Items that represent application issues. <a href="https://docs.rollbar.com/docs/grouping-occurrences">Learn more about reducing log noise</a>.
|
|
22
22
|
- **Advanced search:** Filter items by many different properties. <a href="https://docs.rollbar.com/docs/search-items">Learn more about search</a>.
|
|
23
23
|
- **Customizable notifications:** Rollbar supports several messaging and incident management tools where your team can get notified about errors and important events by real-time alerts. <a href="https://docs.rollbar.com/docs/notifications">Learn more about Rollbar notifications</a>.
|
|
24
24
|
|
|
25
|
-
|
|
26
25
|
## Setup Instructions
|
|
27
26
|
|
|
28
27
|
1. [Sign up for a Rollbar account](https://rollbar.com/signup).
|
|
29
|
-
2. For client-side Javascript, follow the [Browser Quick Start](https://docs.rollbar.com/docs/javascript#section-quick-start-browser) instructions.
|
|
28
|
+
2. For client-side Javascript, follow the [Browser Quick Start](https://docs.rollbar.com/docs/javascript#section-quick-start-browser) instructions. For Node.js, follow the [Server Quick Start](https://docs.rollbar.com/docs/javascript#section-quick-start-server).
|
|
30
29
|
|
|
31
30
|
## Usage and Reference
|
|
32
31
|
|
|
@@ -46,7 +45,6 @@ For bug reports, please [open an issue on GitHub](https://github.com/rollbar/rol
|
|
|
46
45
|
|
|
47
46
|
To set up a development environment, you'll need Node.js and npm.
|
|
48
47
|
|
|
49
|
-
1. `git submodule update --init`
|
|
50
48
|
2. `npm install -D`
|
|
51
49
|
3. `make`
|
|
52
50
|
|
package/bower.json
CHANGED
package/defaults.js
CHANGED
|
@@ -5,13 +5,25 @@ var version = pkg.version;
|
|
|
5
5
|
module.exports = {
|
|
6
6
|
__NOTIFIER_VERSION__: JSON.stringify(pkg.version),
|
|
7
7
|
__JQUERY_PLUGIN_VERSION__: JSON.stringify(pkg.plugins.jquery.version),
|
|
8
|
-
__DEFAULT_SERVER_SCRUB_FIELDS__: JSON.stringify(
|
|
9
|
-
|
|
8
|
+
__DEFAULT_SERVER_SCRUB_FIELDS__: JSON.stringify(
|
|
9
|
+
pkg.defaults.server.scrubFields,
|
|
10
|
+
),
|
|
11
|
+
__DEFAULT_SERVER_SCRUB_HEADERS__: JSON.stringify(
|
|
12
|
+
pkg.defaults.server.scrubHeaders,
|
|
13
|
+
),
|
|
10
14
|
__DEFAULT_ENDPOINT__: JSON.stringify(pkg.defaults.endpoint),
|
|
11
15
|
__DEFAULT_LOG_LEVEL__: JSON.stringify(pkg.defaults.logLevel),
|
|
12
16
|
__DEFAULT_REPORT_LEVEL__: JSON.stringify(pkg.defaults.reportLevel),
|
|
13
|
-
__DEFAULT_UNCAUGHT_ERROR_LEVEL: JSON.stringify(
|
|
14
|
-
|
|
17
|
+
__DEFAULT_UNCAUGHT_ERROR_LEVEL: JSON.stringify(
|
|
18
|
+
pkg.defaults.uncaughtErrorLevel,
|
|
19
|
+
),
|
|
20
|
+
__DEFAULT_ROLLBARJS_URL__: JSON.stringify(
|
|
21
|
+
'https://' +
|
|
22
|
+
pkg.cdn.host +
|
|
23
|
+
'/rollbarjs/refs/tags/v' +
|
|
24
|
+
version +
|
|
25
|
+
'/rollbar.min.js',
|
|
26
|
+
),
|
|
15
27
|
__DEFAULT_MAX_ITEMS__: pkg.defaults.maxItems,
|
|
16
|
-
__DEFAULT_ITEMS_PER_MIN__: pkg.defaults.itemsPerMin
|
|
28
|
+
__DEFAULT_ITEMS_PER_MIN__: pkg.defaults.itemsPerMin,
|
|
17
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(()=>{"use strict";!function(r,t,n){var e=t.Rollbar;if(e){e.configure({payload:{notifier:{plugins:{jquery:{version:"0.0.8"}}}}});var a=function(r){if(e.error(r),t.console){var n="[reported to Rollbar]";e.options&&!e.options.enabled&&(n="[Rollbar not enabled]"),t.console.log(r.message+" "+n)}};r(n).ajaxError((function(r,t,n,a){var o=t.status,i=n.url,u=n.type;if(o){var s={status:o,url:i,type:u,isAjax:!0,data:n.data,jqXHR_responseText:t.responseText,jqXHR_statusText:t.statusText},d=a||"jQuery ajax error for "+u;e.warning(d,s)}}));var o=r.fn.ready;r.fn.ready=function(r){return o.call(this,(function(t){try{r(t)}catch(r){a(r)}}))};var i=r.event.add;r.event.add=function(t,n,e,o,u){var s,d=function(r){return function(){try{return r.apply(this,arguments)}catch(r){a(r)}}};return e.handler?(s=e.handler,e.handler=d(e.handler)):(s=e,e=d(e)),s.guid?e.guid=s.guid:e.guid=s.guid=r.guid++,i.call(this,t,n,e,o,u)}}}(jQuery,window,document)})();
|