You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/01/05 12:24:50 UTC
[skywalking-client-js] 17/23: feat: add params
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-client-js.git
commit 452ab2424e81255fcb856341f6bd13b4cb109f6d
Author: Qiuxia Fan <fi...@outlook.com>
AuthorDate: Sun Jan 5 14:01:07 2020 +0800
feat: add params
---
.gitignore | 3 -
.travis.yml | 15 -
dist/index.html | 9 +
dist/index.js | 1239 +++++++++++++++++++++++++++++++++++++++++++++
dist/monitor.js | 1241 ++++++++++++++++++++++++++++++++++++++++++++++
src/index.ts => index.js | 6 +-
package.json | 4 +-
server.js | 53 +-
src/errors/jsErrors.ts | 2 +-
src/index.ts | 4 +-
src/monitor.ts | 15 +-
src/services/trace.ts | 14 +-
src/services/types.d.ts | 22 +-
test/index.html | 26 -
webpack.config.js | 2 +-
15 files changed, 2550 insertions(+), 105 deletions(-)
diff --git a/.gitignore b/.gitignore
index b81cc3b..4bfea38 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,6 @@
# dependencies
/node_modules
-# production
-/dist
-
# misc
.DS_Store
.vscode/*
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 557edf3..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: node_js
-
-node_js:
- - "8"
-
-env:
- matrix:
- - TEST_TYPE=build
-
-
-install:
- - npm install
-
-script:
- - npm run build
diff --git a/dist/index.html b/dist/index.html
new file mode 100644
index 0000000..929a90d
--- /dev/null
+++ b/dist/index.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8">
+ <title>Client Monitor</title>
+ </head>
+ <body>
+ <script type="text/javascript" src="/index.js"></script></body>
+</html>
\ No newline at end of file
diff --git a/dist/index.js b/dist/index.js
new file mode 100644
index 0000000..af1e4a8
--- /dev/null
+++ b/dist/index.js
@@ -0,0 +1,1239 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ function hotDisposeChunk(chunkId) {
+/******/ delete installedChunks[chunkId];
+/******/ }
+/******/ var parentHotUpdateCallback = window["webpackHotUpdate"];
+/******/ window["webpackHotUpdate"] = // eslint-disable-next-line no-unused-vars
+/******/ function webpackHotUpdateCallback(chunkId, moreModules) {
+/******/ hotAddUpdateChunk(chunkId, moreModules);
+/******/ if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
+/******/ } ;
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotDownloadUpdateChunk(chunkId) {
+/******/ var script = document.createElement("script");
+/******/ script.charset = "utf-8";
+/******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js";
+/******/ if (null) script.crossOrigin = null;
+/******/ document.head.appendChild(script);
+/******/ }
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotDownloadManifest(requestTimeout) {
+/******/ requestTimeout = requestTimeout || 10000;
+/******/ return new Promise(function(resolve, reject) {
+/******/ if (typeof XMLHttpRequest === "undefined") {
+/******/ return reject(new Error("No browser support"));
+/******/ }
+/******/ try {
+/******/ var request = new XMLHttpRequest();
+/******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json";
+/******/ request.open("GET", requestPath, true);
+/******/ request.timeout = requestTimeout;
+/******/ request.send(null);
+/******/ } catch (err) {
+/******/ return reject(err);
+/******/ }
+/******/ request.onreadystatechange = function() {
+/******/ if (request.readyState !== 4) return;
+/******/ if (request.status === 0) {
+/******/ // timeout
+/******/ reject(
+/******/ new Error("Manifest request to " + requestPath + " timed out.")
+/******/ );
+/******/ } else if (request.status === 404) {
+/******/ // no update available
+/******/ resolve();
+/******/ } else if (request.status !== 200 && request.status !== 304) {
+/******/ // other failure
+/******/ reject(new Error("Manifest request to " + requestPath + " failed."));
+/******/ } else {
+/******/ // success
+/******/ try {
+/******/ var update = JSON.parse(request.responseText);
+/******/ } catch (e) {
+/******/ reject(e);
+/******/ return;
+/******/ }
+/******/ resolve(update);
+/******/ }
+/******/ };
+/******/ });
+/******/ }
+/******/
+/******/ var hotApplyOnUpdate = true;
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ var hotCurrentHash = "ab8e687b28fcc57b2874";
+/******/ var hotRequestTimeout = 10000;
+/******/ var hotCurrentModuleData = {};
+/******/ var hotCurrentChildModule;
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ var hotCurrentParents = [];
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ var hotCurrentParentsTemp = [];
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotCreateRequire(moduleId) {
+/******/ var me = installedModules[moduleId];
+/******/ if (!me) return __webpack_require__;
+/******/ var fn = function(request) {
+/******/ if (me.hot.active) {
+/******/ if (installedModules[request]) {
+/******/ if (installedModules[request].parents.indexOf(moduleId) === -1) {
+/******/ installedModules[request].parents.push(moduleId);
+/******/ }
+/******/ } else {
+/******/ hotCurrentParents = [moduleId];
+/******/ hotCurrentChildModule = request;
+/******/ }
+/******/ if (me.children.indexOf(request) === -1) {
+/******/ me.children.push(request);
+/******/ }
+/******/ } else {
+/******/ console.warn(
+/******/ "[HMR] unexpected require(" +
+/******/ request +
+/******/ ") from disposed module " +
+/******/ moduleId
+/******/ );
+/******/ hotCurrentParents = [];
+/******/ }
+/******/ return __webpack_require__(request);
+/******/ };
+/******/ var ObjectFactory = function ObjectFactory(name) {
+/******/ return {
+/******/ configurable: true,
+/******/ enumerable: true,
+/******/ get: function() {
+/******/ return __webpack_require__[name];
+/******/ },
+/******/ set: function(value) {
+/******/ __webpack_require__[name] = value;
+/******/ }
+/******/ };
+/******/ };
+/******/ for (var name in __webpack_require__) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(__webpack_require__, name) &&
+/******/ name !== "e" &&
+/******/ name !== "t"
+/******/ ) {
+/******/ Object.defineProperty(fn, name, ObjectFactory(name));
+/******/ }
+/******/ }
+/******/ fn.e = function(chunkId) {
+/******/ if (hotStatus === "ready") hotSetStatus("prepare");
+/******/ hotChunksLoading++;
+/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
+/******/ finishChunkLoading();
+/******/ throw err;
+/******/ });
+/******/
+/******/ function finishChunkLoading() {
+/******/ hotChunksLoading--;
+/******/ if (hotStatus === "prepare") {
+/******/ if (!hotWaitingFilesMap[chunkId]) {
+/******/ hotEnsureUpdateChunk(chunkId);
+/******/ }
+/******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) {
+/******/ hotUpdateDownloaded();
+/******/ }
+/******/ }
+/******/ }
+/******/ };
+/******/ fn.t = function(value, mode) {
+/******/ if (mode & 1) value = fn(value);
+/******/ return __webpack_require__.t(value, mode & ~1);
+/******/ };
+/******/ return fn;
+/******/ }
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotCreateModule(moduleId) {
+/******/ var hot = {
+/******/ // private stuff
+/******/ _acceptedDependencies: {},
+/******/ _declinedDependencies: {},
+/******/ _selfAccepted: false,
+/******/ _selfDeclined: false,
+/******/ _disposeHandlers: [],
+/******/ _main: hotCurrentChildModule !== moduleId,
+/******/
+/******/ // Module API
+/******/ active: true,
+/******/ accept: function(dep, callback) {
+/******/ if (dep === undefined) hot._selfAccepted = true;
+/******/ else if (typeof dep === "function") hot._selfAccepted = dep;
+/******/ else if (typeof dep === "object")
+/******/ for (var i = 0; i < dep.length; i++)
+/******/ hot._acceptedDependencies[dep[i]] = callback || function() {};
+/******/ else hot._acceptedDependencies[dep] = callback || function() {};
+/******/ },
+/******/ decline: function(dep) {
+/******/ if (dep === undefined) hot._selfDeclined = true;
+/******/ else if (typeof dep === "object")
+/******/ for (var i = 0; i < dep.length; i++)
+/******/ hot._declinedDependencies[dep[i]] = true;
+/******/ else hot._declinedDependencies[dep] = true;
+/******/ },
+/******/ dispose: function(callback) {
+/******/ hot._disposeHandlers.push(callback);
+/******/ },
+/******/ addDisposeHandler: function(callback) {
+/******/ hot._disposeHandlers.push(callback);
+/******/ },
+/******/ removeDisposeHandler: function(callback) {
+/******/ var idx = hot._disposeHandlers.indexOf(callback);
+/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1);
+/******/ },
+/******/
+/******/ // Management API
+/******/ check: hotCheck,
+/******/ apply: hotApply,
+/******/ status: function(l) {
+/******/ if (!l) return hotStatus;
+/******/ hotStatusHandlers.push(l);
+/******/ },
+/******/ addStatusHandler: function(l) {
+/******/ hotStatusHandlers.push(l);
+/******/ },
+/******/ removeStatusHandler: function(l) {
+/******/ var idx = hotStatusHandlers.indexOf(l);
+/******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1);
+/******/ },
+/******/
+/******/ //inherit from previous dispose call
+/******/ data: hotCurrentModuleData[moduleId]
+/******/ };
+/******/ hotCurrentChildModule = undefined;
+/******/ return hot;
+/******/ }
+/******/
+/******/ var hotStatusHandlers = [];
+/******/ var hotStatus = "idle";
+/******/
+/******/ function hotSetStatus(newStatus) {
+/******/ hotStatus = newStatus;
+/******/ for (var i = 0; i < hotStatusHandlers.length; i++)
+/******/ hotStatusHandlers[i].call(null, newStatus);
+/******/ }
+/******/
+/******/ // while downloading
+/******/ var hotWaitingFiles = 0;
+/******/ var hotChunksLoading = 0;
+/******/ var hotWaitingFilesMap = {};
+/******/ var hotRequestedFilesMap = {};
+/******/ var hotAvailableFilesMap = {};
+/******/ var hotDeferred;
+/******/
+/******/ // The update info
+/******/ var hotUpdate, hotUpdateNewHash;
+/******/
+/******/ function toModuleId(id) {
+/******/ var isNumber = +id + "" === id;
+/******/ return isNumber ? +id : id;
+/******/ }
+/******/
+/******/ function hotCheck(apply) {
+/******/ if (hotStatus !== "idle") {
+/******/ throw new Error("check() is only allowed in idle status");
+/******/ }
+/******/ hotApplyOnUpdate = apply;
+/******/ hotSetStatus("check");
+/******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) {
+/******/ if (!update) {
+/******/ hotSetStatus("idle");
+/******/ return null;
+/******/ }
+/******/ hotRequestedFilesMap = {};
+/******/ hotWaitingFilesMap = {};
+/******/ hotAvailableFilesMap = update.c;
+/******/ hotUpdateNewHash = update.h;
+/******/
+/******/ hotSetStatus("prepare");
+/******/ var promise = new Promise(function(resolve, reject) {
+/******/ hotDeferred = {
+/******/ resolve: resolve,
+/******/ reject: reject
+/******/ };
+/******/ });
+/******/ hotUpdate = {};
+/******/ var chunkId = "main";
+/******/ // eslint-disable-next-line no-lone-blocks
+/******/ {
+/******/ /*globals chunkId */
+/******/ hotEnsureUpdateChunk(chunkId);
+/******/ }
+/******/ if (
+/******/ hotStatus === "prepare" &&
+/******/ hotChunksLoading === 0 &&
+/******/ hotWaitingFiles === 0
+/******/ ) {
+/******/ hotUpdateDownloaded();
+/******/ }
+/******/ return promise;
+/******/ });
+/******/ }
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotAddUpdateChunk(chunkId, moreModules) {
+/******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
+/******/ return;
+/******/ hotRequestedFilesMap[chunkId] = false;
+/******/ for (var moduleId in moreModules) {
+/******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ hotUpdate[moduleId] = moreModules[moduleId];
+/******/ }
+/******/ }
+/******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) {
+/******/ hotUpdateDownloaded();
+/******/ }
+/******/ }
+/******/
+/******/ function hotEnsureUpdateChunk(chunkId) {
+/******/ if (!hotAvailableFilesMap[chunkId]) {
+/******/ hotWaitingFilesMap[chunkId] = true;
+/******/ } else {
+/******/ hotRequestedFilesMap[chunkId] = true;
+/******/ hotWaitingFiles++;
+/******/ hotDownloadUpdateChunk(chunkId);
+/******/ }
+/******/ }
+/******/
+/******/ function hotUpdateDownloaded() {
+/******/ hotSetStatus("ready");
+/******/ var deferred = hotDeferred;
+/******/ hotDeferred = null;
+/******/ if (!deferred) return;
+/******/ if (hotApplyOnUpdate) {
+/******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to
+/******/ // avoid triggering uncaught exception warning in Chrome.
+/******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
+/******/ Promise.resolve()
+/******/ .then(function() {
+/******/ return hotApply(hotApplyOnUpdate);
+/******/ })
+/******/ .then(
+/******/ function(result) {
+/******/ deferred.resolve(result);
+/******/ },
+/******/ function(err) {
+/******/ deferred.reject(err);
+/******/ }
+/******/ );
+/******/ } else {
+/******/ var outdatedModules = [];
+/******/ for (var id in hotUpdate) {
+/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
+/******/ outdatedModules.push(toModuleId(id));
+/******/ }
+/******/ }
+/******/ deferred.resolve(outdatedModules);
+/******/ }
+/******/ }
+/******/
+/******/ function hotApply(options) {
+/******/ if (hotStatus !== "ready")
+/******/ throw new Error("apply() is only allowed in ready status");
+/******/ options = options || {};
+/******/
+/******/ var cb;
+/******/ var i;
+/******/ var j;
+/******/ var module;
+/******/ var moduleId;
+/******/
+/******/ function getAffectedStuff(updateModuleId) {
+/******/ var outdatedModules = [updateModuleId];
+/******/ var outdatedDependencies = {};
+/******/
+/******/ var queue = outdatedModules.map(function(id) {
+/******/ return {
+/******/ chain: [id],
+/******/ id: id
+/******/ };
+/******/ });
+/******/ while (queue.length > 0) {
+/******/ var queueItem = queue.pop();
+/******/ var moduleId = queueItem.id;
+/******/ var chain = queueItem.chain;
+/******/ module = installedModules[moduleId];
+/******/ if (!module || module.hot._selfAccepted) continue;
+/******/ if (module.hot._selfDeclined) {
+/******/ return {
+/******/ type: "self-declined",
+/******/ chain: chain,
+/******/ moduleId: moduleId
+/******/ };
+/******/ }
+/******/ if (module.hot._main) {
+/******/ return {
+/******/ type: "unaccepted",
+/******/ chain: chain,
+/******/ moduleId: moduleId
+/******/ };
+/******/ }
+/******/ for (var i = 0; i < module.parents.length; i++) {
+/******/ var parentId = module.parents[i];
+/******/ var parent = installedModules[parentId];
+/******/ if (!parent) continue;
+/******/ if (parent.hot._declinedDependencies[moduleId]) {
+/******/ return {
+/******/ type: "declined",
+/******/ chain: chain.concat([parentId]),
+/******/ moduleId: moduleId,
+/******/ parentId: parentId
+/******/ };
+/******/ }
+/******/ if (outdatedModules.indexOf(parentId) !== -1) continue;
+/******/ if (parent.hot._acceptedDependencies[moduleId]) {
+/******/ if (!outdatedDependencies[parentId])
+/******/ outdatedDependencies[parentId] = [];
+/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
+/******/ continue;
+/******/ }
+/******/ delete outdatedDependencies[parentId];
+/******/ outdatedModules.push(parentId);
+/******/ queue.push({
+/******/ chain: chain.concat([parentId]),
+/******/ id: parentId
+/******/ });
+/******/ }
+/******/ }
+/******/
+/******/ return {
+/******/ type: "accepted",
+/******/ moduleId: updateModuleId,
+/******/ outdatedModules: outdatedModules,
+/******/ outdatedDependencies: outdatedDependencies
+/******/ };
+/******/ }
+/******/
+/******/ function addAllToSet(a, b) {
+/******/ for (var i = 0; i < b.length; i++) {
+/******/ var item = b[i];
+/******/ if (a.indexOf(item) === -1) a.push(item);
+/******/ }
+/******/ }
+/******/
+/******/ // at begin all updates modules are outdated
+/******/ // the "outdated" status can propagate to parents if they don't accept the children
+/******/ var outdatedDependencies = {};
+/******/ var outdatedModules = [];
+/******/ var appliedUpdate = {};
+/******/
+/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
+/******/ console.warn(
+/******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module"
+/******/ );
+/******/ };
+/******/
+/******/ for (var id in hotUpdate) {
+/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
+/******/ moduleId = toModuleId(id);
+/******/ /** @type {TODO} */
+/******/ var result;
+/******/ if (hotUpdate[id]) {
+/******/ result = getAffectedStuff(moduleId);
+/******/ } else {
+/******/ result = {
+/******/ type: "disposed",
+/******/ moduleId: id
+/******/ };
+/******/ }
+/******/ /** @type {Error|false} */
+/******/ var abortError = false;
+/******/ var doApply = false;
+/******/ var doDispose = false;
+/******/ var chainInfo = "";
+/******/ if (result.chain) {
+/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
+/******/ }
+/******/ switch (result.type) {
+/******/ case "self-declined":
+/******/ if (options.onDeclined) options.onDeclined(result);
+/******/ if (!options.ignoreDeclined)
+/******/ abortError = new Error(
+/******/ "Aborted because of self decline: " +
+/******/ result.moduleId +
+/******/ chainInfo
+/******/ );
+/******/ break;
+/******/ case "declined":
+/******/ if (options.onDeclined) options.onDeclined(result);
+/******/ if (!options.ignoreDeclined)
+/******/ abortError = new Error(
+/******/ "Aborted because of declined dependency: " +
+/******/ result.moduleId +
+/******/ " in " +
+/******/ result.parentId +
+/******/ chainInfo
+/******/ );
+/******/ break;
+/******/ case "unaccepted":
+/******/ if (options.onUnaccepted) options.onUnaccepted(result);
+/******/ if (!options.ignoreUnaccepted)
+/******/ abortError = new Error(
+/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo
+/******/ );
+/******/ break;
+/******/ case "accepted":
+/******/ if (options.onAccepted) options.onAccepted(result);
+/******/ doApply = true;
+/******/ break;
+/******/ case "disposed":
+/******/ if (options.onDisposed) options.onDisposed(result);
+/******/ doDispose = true;
+/******/ break;
+/******/ default:
+/******/ throw new Error("Unexception type " + result.type);
+/******/ }
+/******/ if (abortError) {
+/******/ hotSetStatus("abort");
+/******/ return Promise.reject(abortError);
+/******/ }
+/******/ if (doApply) {
+/******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
+/******/ addAllToSet(outdatedModules, result.outdatedModules);
+/******/ for (moduleId in result.outdatedDependencies) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(
+/******/ result.outdatedDependencies,
+/******/ moduleId
+/******/ )
+/******/ ) {
+/******/ if (!outdatedDependencies[moduleId])
+/******/ outdatedDependencies[moduleId] = [];
+/******/ addAllToSet(
+/******/ outdatedDependencies[moduleId],
+/******/ result.outdatedDependencies[moduleId]
+/******/ );
+/******/ }
+/******/ }
+/******/ }
+/******/ if (doDispose) {
+/******/ addAllToSet(outdatedModules, [result.moduleId]);
+/******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // Store self accepted outdated modules to require them later by the module system
+/******/ var outdatedSelfAcceptedModules = [];
+/******/ for (i = 0; i < outdatedModules.length; i++) {
+/******/ moduleId = outdatedModules[i];
+/******/ if (
+/******/ installedModules[moduleId] &&
+/******/ installedModules[moduleId].hot._selfAccepted &&
+/******/ // removed self-accepted modules should not be required
+/******/ appliedUpdate[moduleId] !== warnUnexpectedRequire
+/******/ ) {
+/******/ outdatedSelfAcceptedModules.push({
+/******/ module: moduleId,
+/******/ errorHandler: installedModules[moduleId].hot._selfAccepted
+/******/ });
+/******/ }
+/******/ }
+/******/
+/******/ // Now in "dispose" phase
+/******/ hotSetStatus("dispose");
+/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
+/******/ if (hotAvailableFilesMap[chunkId] === false) {
+/******/ hotDisposeChunk(chunkId);
+/******/ }
+/******/ });
+/******/
+/******/ var idx;
+/******/ var queue = outdatedModules.slice();
+/******/ while (queue.length > 0) {
+/******/ moduleId = queue.pop();
+/******/ module = installedModules[moduleId];
+/******/ if (!module) continue;
+/******/
+/******/ var data = {};
+/******/
+/******/ // Call dispose handlers
+/******/ var disposeHandlers = module.hot._disposeHandlers;
+/******/ for (j = 0; j < disposeHandlers.length; j++) {
+/******/ cb = disposeHandlers[j];
+/******/ cb(data);
+/******/ }
+/******/ hotCurrentModuleData[moduleId] = data;
+/******/
+/******/ // disable module (this disables requires from this module)
+/******/ module.hot.active = false;
+/******/
+/******/ // remove module from cache
+/******/ delete installedModules[moduleId];
+/******/
+/******/ // when disposing there is no need to call dispose handler
+/******/ delete outdatedDependencies[moduleId];
+/******/
+/******/ // remove "parents" references from all children
+/******/ for (j = 0; j < module.children.length; j++) {
+/******/ var child = installedModules[module.children[j]];
+/******/ if (!child) continue;
+/******/ idx = child.parents.indexOf(moduleId);
+/******/ if (idx >= 0) {
+/******/ child.parents.splice(idx, 1);
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // remove outdated dependency from module children
+/******/ var dependency;
+/******/ var moduleOutdatedDependencies;
+/******/ for (moduleId in outdatedDependencies) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
+/******/ ) {
+/******/ module = installedModules[moduleId];
+/******/ if (module) {
+/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
+/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) {
+/******/ dependency = moduleOutdatedDependencies[j];
+/******/ idx = module.children.indexOf(dependency);
+/******/ if (idx >= 0) module.children.splice(idx, 1);
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // Now in "apply" phase
+/******/ hotSetStatus("apply");
+/******/
+/******/ hotCurrentHash = hotUpdateNewHash;
+/******/
+/******/ // insert new code
+/******/ for (moduleId in appliedUpdate) {
+/******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
+/******/ modules[moduleId] = appliedUpdate[moduleId];
+/******/ }
+/******/ }
+/******/
+/******/ // call accept handlers
+/******/ var error = null;
+/******/ for (moduleId in outdatedDependencies) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
+/******/ ) {
+/******/ module = installedModules[moduleId];
+/******/ if (module) {
+/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
+/******/ var callbacks = [];
+/******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) {
+/******/ dependency = moduleOutdatedDependencies[i];
+/******/ cb = module.hot._acceptedDependencies[dependency];
+/******/ if (cb) {
+/******/ if (callbacks.indexOf(cb) !== -1) continue;
+/******/ callbacks.push(cb);
+/******/ }
+/******/ }
+/******/ for (i = 0; i < callbacks.length; i++) {
+/******/ cb = callbacks[i];
+/******/ try {
+/******/ cb(moduleOutdatedDependencies);
+/******/ } catch (err) {
+/******/ if (options.onErrored) {
+/******/ options.onErrored({
+/******/ type: "accept-errored",
+/******/ moduleId: moduleId,
+/******/ dependencyId: moduleOutdatedDependencies[i],
+/******/ error: err
+/******/ });
+/******/ }
+/******/ if (!options.ignoreErrored) {
+/******/ if (!error) error = err;
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // Load self accepted modules
+/******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) {
+/******/ var item = outdatedSelfAcceptedModules[i];
+/******/ moduleId = item.module;
+/******/ hotCurrentParents = [moduleId];
+/******/ try {
+/******/ __webpack_require__(moduleId);
+/******/ } catch (err) {
+/******/ if (typeof item.errorHandler === "function") {
+/******/ try {
+/******/ item.errorHandler(err);
+/******/ } catch (err2) {
+/******/ if (options.onErrored) {
+/******/ options.onErrored({
+/******/ type: "self-accept-error-handler-errored",
+/******/ moduleId: moduleId,
+/******/ error: err2,
+/******/ originalError: err
+/******/ });
+/******/ }
+/******/ if (!options.ignoreErrored) {
+/******/ if (!error) error = err2;
+/******/ }
+/******/ if (!error) error = err;
+/******/ }
+/******/ } else {
+/******/ if (options.onErrored) {
+/******/ options.onErrored({
+/******/ type: "self-accept-errored",
+/******/ moduleId: moduleId,
+/******/ error: err
+/******/ });
+/******/ }
+/******/ if (!options.ignoreErrored) {
+/******/ if (!error) error = err;
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // handle errors in accept handlers and self accepted module load
+/******/ if (error) {
+/******/ hotSetStatus("fail");
+/******/ return Promise.reject(error);
+/******/ }
+/******/
+/******/ hotSetStatus("idle");
+/******/ return new Promise(function(resolve) {
+/******/ resolve(outdatedModules);
+/******/ });
+/******/ }
+/******/
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {},
+/******/ hot: hotCreateModule(moduleId),
+/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
+/******/ children: []
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "/";
+/******/
+/******/ // __webpack_hash__
+/******/ __webpack_require__.h = function() { return hotCurrentHash; };
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return hotCreateRequire("./src/index.ts")(__webpack_require__.s = "./src/index.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./src/errors/jsErrors.ts":
+/*!********************************!*\
+ !*** ./src/errors/jsErrors.ts ***!
+ \********************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _services_trace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../services/trace */ "./src/services/trace.ts");
+/* harmony import */ var _services_constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/constant */ "./src/services/constant.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __extends = (undefined && undefined.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+
+
+
+var JSErrors = /** @class */ (function (_super) {
+ __extends(JSErrors, _super);
+ function JSErrors() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ JSErrors.prototype.handleErrors = function (options) {
+ var _this = this;
+ window.onerror = function (message, url, line, col, error) {
+ _this.logInfo = {
+ reportUrl: options.reportUrl,
+ category: _services_constant__WEBPACK_IMPORTED_MODULE_1__["ErrorsCategory"].JS_ERROR,
+ grade: _services_constant__WEBPACK_IMPORTED_MODULE_1__["GradeTypeEnum"].WARNING,
+ errorUrl: url,
+ line: line,
+ col: col,
+ errorInfo: error,
+ message: message,
+ };
+ _this.traceInfo();
+ };
+ };
+ return JSErrors;
+}(_services_trace__WEBPACK_IMPORTED_MODULE_0__["default"]));
+/* harmony default export */ __webpack_exports__["default"] = (new JSErrors());
+
+
+/***/ }),
+
+/***/ "./src/index.ts":
+/*!**********************!*\
+ !*** ./src/index.ts ***!
+ \**********************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _monitor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monitor */ "./src/monitor.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+window.ClientMonitor = _monitor__WEBPACK_IMPORTED_MODULE_0__["default"];
+/* harmony default export */ __webpack_exports__["default"] = (_monitor__WEBPACK_IMPORTED_MODULE_0__["default"]);
+
+
+/***/ }),
+
+/***/ "./src/monitor.ts":
+/*!************************!*\
+ !*** ./src/monitor.ts ***!
+ \************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _errors_jsErrors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./errors/jsErrors */ "./src/errors/jsErrors.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var ClientMonitor = {
+ errorTypes: {
+ jsErrors: true,
+ promiseErrors: true,
+ consoleErrors: false,
+ vueErrors: false,
+ reactErrors: false,
+ ajaxErrors: true,
+ resourceErrors: true,
+ },
+ register: function (options) {
+ this.errorTypes = options;
+ if (this.errorTypes.jsErrors) {
+ this.errorTypes.jsErrors = options.jsErrors;
+ _errors_jsErrors__WEBPACK_IMPORTED_MODULE_0__["default"].handleErrors({ reportUrl: options.reportUrl });
+ }
+ if (this.errorTypes.promiseErrors) {
+ this.errorTypes.promiseErrors = options.promiseErrors || this.errorTypes.promiseErrors;
+ }
+ if (this.errorTypes.resourceErrors) {
+ this.errorTypes.resourceErrors = options.resourceErrors;
+ }
+ if (this.errorTypes.ajaxErrors) {
+ this.errorTypes.ajaxErrors = options.ajaxErrors || this.errorTypes.ajaxErrors;
+ }
+ },
+};
+/* harmony default export */ __webpack_exports__["default"] = (ClientMonitor);
+
+
+/***/ }),
+
+/***/ "./src/services/constant.ts":
+/*!**********************************!*\
+ !*** ./src/services/constant.ts ***!
+ \**********************************/
+/*! exports provided: ErrorsCategory, GradeTypeEnum */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorsCategory", function() { return ErrorsCategory; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GradeTypeEnum", function() { return GradeTypeEnum; });
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var ErrorsCategory;
+(function (ErrorsCategory) {
+ ErrorsCategory["AJAX_ERROR"] = "ajaxError";
+ ErrorsCategory["RESOURCE_ERROR"] = "resourceError";
+ ErrorsCategory["VUE_ERROR"] = "vueError";
+ ErrorsCategory["PROMISE_ERROR"] = "promiseError";
+ ErrorsCategory["JS_ERROR"] = "jsError";
+ ErrorsCategory["CONSOLE_INFO"] = "consoleInfo";
+ ErrorsCategory["CONSOLE_WARN"] = "consoleWarn";
+ ErrorsCategory["CONSOLE_ERROR"] = "consoleError";
+ ErrorsCategory["CROSS_SCRIPT_ERROR"] = "crossSrciptError";
+ ErrorsCategory["UNKNOW_ERROR"] = "unknowError";
+})(ErrorsCategory || (ErrorsCategory = {}));
+var GradeTypeEnum;
+(function (GradeTypeEnum) {
+ GradeTypeEnum["INFO"] = "Info";
+ GradeTypeEnum["WARNING"] = "Warning";
+ GradeTypeEnum["ERROR"] = "Error";
+})(GradeTypeEnum || (GradeTypeEnum = {}));
+
+
+/***/ }),
+
+/***/ "./src/services/report.ts":
+/*!********************************!*\
+ !*** ./src/services/report.ts ***!
+ \********************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var Report = /** @class */ (function () {
+ function Report(url) {
+ this.url = '';
+ this.url = url;
+ }
+ Report.prototype.sendByXhr = function (data) {
+ if (!this.checkUrl(this.url)) {
+ return;
+ }
+ try {
+ var xhr = new XMLHttpRequest();
+ xhr.open('POST', this.url, true);
+ xhr.setRequestHeader('Content-Type', 'application/json');
+ console.log(data);
+ xhr.send(JSON.stringify(data));
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ };
+ Report.prototype.reportByImg = function (data) {
+ if (!this.checkUrl(this.url)) {
+ return;
+ }
+ try {
+ var imgObj = new Image();
+ imgObj.src = this.url + "?v=" + new Date().getTime() + "&" + this.formatParams(data);
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ };
+ Report.prototype.formatParams = function (data) {
+ return Object.keys(data).map(function (name) {
+ return encodeURIComponent(name) + "=" + encodeURIComponent(data[name]);
+ }).join('&');
+ };
+ Report.prototype.checkUrl = function (url) {
+ if (!url) {
+ return;
+ }
+ var urlRule = /^[hH][tT][tT][pP]([sS]?):\/\//;
+ return urlRule.test(url);
+ };
+ return Report;
+}());
+/* harmony default export */ __webpack_exports__["default"] = (Report);
+
+
+/***/ }),
+
+/***/ "./src/services/task.ts":
+/*!******************************!*\
+ !*** ./src/services/task.ts ***!
+ \******************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _report__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report */ "./src/services/report.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var TaskQueue = /** @class */ (function () {
+ function TaskQueue() {
+ this.queues = [];
+ }
+ TaskQueue.prototype.addTask = function (reportUrl, data) {
+ this.queues.push({ reportUrl: reportUrl, data: data });
+ };
+ TaskQueue.prototype.fireTasks = function () {
+ if (!this.queues || !this.queues.length) {
+ return;
+ }
+ var item = this.queues[0];
+ if (item.reportUrl) {
+ new _report__WEBPACK_IMPORTED_MODULE_0__["default"](item.reportUrl).sendByXhr(item.data);
+ }
+ this.queues.splice(0, 1);
+ this.fireTasks();
+ };
+ return TaskQueue;
+}());
+/* harmony default export */ __webpack_exports__["default"] = (new TaskQueue());
+
+
+/***/ }),
+
+/***/ "./src/services/trace.ts":
+/*!*******************************!*\
+ !*** ./src/services/trace.ts ***!
+ \*******************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _task__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./task */ "./src/services/task.ts");
+/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./src/services/constant.ts");
+var __assign = (undefined && undefined.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+var Trace = /** @class */ (function () {
+ function Trace() {
+ this.logInfo = {
+ category: _constant__WEBPACK_IMPORTED_MODULE_1__["ErrorsCategory"].UNKNOW_ERROR,
+ grade: _constant__WEBPACK_IMPORTED_MODULE_1__["GradeTypeEnum"].INFO,
+ errorUrl: '',
+ line: 0,
+ col: 0,
+ errorInfo: '',
+ message: '',
+ reportUrl: '',
+ };
+ }
+ Trace.prototype.traceInfo = function () {
+ this.handleRecordError();
+ setTimeout(function () {
+ _task__WEBPACK_IMPORTED_MODULE_0__["default"].fireTasks();
+ }, 100);
+ };
+ Trace.prototype.handleRecordError = function () {
+ try {
+ if (!this.logInfo.message) {
+ return;
+ }
+ if (this.logInfo.reportUrl && this.logInfo.errorUrl &&
+ this.logInfo.errorUrl.toLowerCase().includes(this.logInfo.reportUrl.toLowerCase())) {
+ return;
+ }
+ var errorInfo = this.handleErrorInfo();
+ _task__WEBPACK_IMPORTED_MODULE_0__["default"].addTask(this.logInfo.reportUrl, errorInfo);
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ };
+ Trace.prototype.handleErrorInfo = function () {
+ var message = "error category:" + this.logInfo.category + "\r\n log info:" + this.logInfo.message + "\r\n\n error url: " + this.logInfo.errorUrl + "\r\n ";
+ switch (this.logInfo.category) {
+ case _constant__WEBPACK_IMPORTED_MODULE_1__["ErrorsCategory"].JS_ERROR:
+ message += "error line number: " + this.logInfo.line + "\r\n error col number:" + this.logInfo.col + "\r\n";
+ if (this.logInfo.errorInfo && this.logInfo.errorInfo.stack) {
+ message += "error stack: " + this.logInfo.errorInfo.stack + "\r\n";
+ }
+ break;
+ default:
+ message += "other error: " + this.logInfo.errorInfo + "\r\n";
+ break;
+ }
+ var recordInfo = __assign(__assign({}, this.logInfo), { message: message });
+ return recordInfo;
+ };
+ return Trace;
+}());
+/* harmony default export */ __webpack_exports__["default"] = (Trace);
+
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2Vycm9ycy9qc0Vycm9ycy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL21vbml0b3IudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL2NvbnN0YW50LnRzIiwid2VicGFjazovLy8uL3NyYy9zZXJ2aWNlcy9yZXBvcnQudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL3Rhc2sudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGlu [...]
\ No newline at end of file
diff --git a/dist/monitor.js b/dist/monitor.js
new file mode 100644
index 0000000..732215a
--- /dev/null
+++ b/dist/monitor.js
@@ -0,0 +1,1241 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ function hotDisposeChunk(chunkId) {
+/******/ delete installedChunks[chunkId];
+/******/ }
+/******/ var parentHotUpdateCallback = window["webpackHotUpdate"];
+/******/ window["webpackHotUpdate"] = // eslint-disable-next-line no-unused-vars
+/******/ function webpackHotUpdateCallback(chunkId, moreModules) {
+/******/ hotAddUpdateChunk(chunkId, moreModules);
+/******/ if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
+/******/ } ;
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotDownloadUpdateChunk(chunkId) {
+/******/ var script = document.createElement("script");
+/******/ script.charset = "utf-8";
+/******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js";
+/******/ if (null) script.crossOrigin = null;
+/******/ document.head.appendChild(script);
+/******/ }
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotDownloadManifest(requestTimeout) {
+/******/ requestTimeout = requestTimeout || 10000;
+/******/ return new Promise(function(resolve, reject) {
+/******/ if (typeof XMLHttpRequest === "undefined") {
+/******/ return reject(new Error("No browser support"));
+/******/ }
+/******/ try {
+/******/ var request = new XMLHttpRequest();
+/******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json";
+/******/ request.open("GET", requestPath, true);
+/******/ request.timeout = requestTimeout;
+/******/ request.send(null);
+/******/ } catch (err) {
+/******/ return reject(err);
+/******/ }
+/******/ request.onreadystatechange = function() {
+/******/ if (request.readyState !== 4) return;
+/******/ if (request.status === 0) {
+/******/ // timeout
+/******/ reject(
+/******/ new Error("Manifest request to " + requestPath + " timed out.")
+/******/ );
+/******/ } else if (request.status === 404) {
+/******/ // no update available
+/******/ resolve();
+/******/ } else if (request.status !== 200 && request.status !== 304) {
+/******/ // other failure
+/******/ reject(new Error("Manifest request to " + requestPath + " failed."));
+/******/ } else {
+/******/ // success
+/******/ try {
+/******/ var update = JSON.parse(request.responseText);
+/******/ } catch (e) {
+/******/ reject(e);
+/******/ return;
+/******/ }
+/******/ resolve(update);
+/******/ }
+/******/ };
+/******/ });
+/******/ }
+/******/
+/******/ var hotApplyOnUpdate = true;
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ var hotCurrentHash = "53390ba4e755db226212";
+/******/ var hotRequestTimeout = 10000;
+/******/ var hotCurrentModuleData = {};
+/******/ var hotCurrentChildModule;
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ var hotCurrentParents = [];
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ var hotCurrentParentsTemp = [];
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotCreateRequire(moduleId) {
+/******/ var me = installedModules[moduleId];
+/******/ if (!me) return __webpack_require__;
+/******/ var fn = function(request) {
+/******/ if (me.hot.active) {
+/******/ if (installedModules[request]) {
+/******/ if (installedModules[request].parents.indexOf(moduleId) === -1) {
+/******/ installedModules[request].parents.push(moduleId);
+/******/ }
+/******/ } else {
+/******/ hotCurrentParents = [moduleId];
+/******/ hotCurrentChildModule = request;
+/******/ }
+/******/ if (me.children.indexOf(request) === -1) {
+/******/ me.children.push(request);
+/******/ }
+/******/ } else {
+/******/ console.warn(
+/******/ "[HMR] unexpected require(" +
+/******/ request +
+/******/ ") from disposed module " +
+/******/ moduleId
+/******/ );
+/******/ hotCurrentParents = [];
+/******/ }
+/******/ return __webpack_require__(request);
+/******/ };
+/******/ var ObjectFactory = function ObjectFactory(name) {
+/******/ return {
+/******/ configurable: true,
+/******/ enumerable: true,
+/******/ get: function() {
+/******/ return __webpack_require__[name];
+/******/ },
+/******/ set: function(value) {
+/******/ __webpack_require__[name] = value;
+/******/ }
+/******/ };
+/******/ };
+/******/ for (var name in __webpack_require__) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(__webpack_require__, name) &&
+/******/ name !== "e" &&
+/******/ name !== "t"
+/******/ ) {
+/******/ Object.defineProperty(fn, name, ObjectFactory(name));
+/******/ }
+/******/ }
+/******/ fn.e = function(chunkId) {
+/******/ if (hotStatus === "ready") hotSetStatus("prepare");
+/******/ hotChunksLoading++;
+/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
+/******/ finishChunkLoading();
+/******/ throw err;
+/******/ });
+/******/
+/******/ function finishChunkLoading() {
+/******/ hotChunksLoading--;
+/******/ if (hotStatus === "prepare") {
+/******/ if (!hotWaitingFilesMap[chunkId]) {
+/******/ hotEnsureUpdateChunk(chunkId);
+/******/ }
+/******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) {
+/******/ hotUpdateDownloaded();
+/******/ }
+/******/ }
+/******/ }
+/******/ };
+/******/ fn.t = function(value, mode) {
+/******/ if (mode & 1) value = fn(value);
+/******/ return __webpack_require__.t(value, mode & ~1);
+/******/ };
+/******/ return fn;
+/******/ }
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotCreateModule(moduleId) {
+/******/ var hot = {
+/******/ // private stuff
+/******/ _acceptedDependencies: {},
+/******/ _declinedDependencies: {},
+/******/ _selfAccepted: false,
+/******/ _selfDeclined: false,
+/******/ _disposeHandlers: [],
+/******/ _main: hotCurrentChildModule !== moduleId,
+/******/
+/******/ // Module API
+/******/ active: true,
+/******/ accept: function(dep, callback) {
+/******/ if (dep === undefined) hot._selfAccepted = true;
+/******/ else if (typeof dep === "function") hot._selfAccepted = dep;
+/******/ else if (typeof dep === "object")
+/******/ for (var i = 0; i < dep.length; i++)
+/******/ hot._acceptedDependencies[dep[i]] = callback || function() {};
+/******/ else hot._acceptedDependencies[dep] = callback || function() {};
+/******/ },
+/******/ decline: function(dep) {
+/******/ if (dep === undefined) hot._selfDeclined = true;
+/******/ else if (typeof dep === "object")
+/******/ for (var i = 0; i < dep.length; i++)
+/******/ hot._declinedDependencies[dep[i]] = true;
+/******/ else hot._declinedDependencies[dep] = true;
+/******/ },
+/******/ dispose: function(callback) {
+/******/ hot._disposeHandlers.push(callback);
+/******/ },
+/******/ addDisposeHandler: function(callback) {
+/******/ hot._disposeHandlers.push(callback);
+/******/ },
+/******/ removeDisposeHandler: function(callback) {
+/******/ var idx = hot._disposeHandlers.indexOf(callback);
+/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1);
+/******/ },
+/******/
+/******/ // Management API
+/******/ check: hotCheck,
+/******/ apply: hotApply,
+/******/ status: function(l) {
+/******/ if (!l) return hotStatus;
+/******/ hotStatusHandlers.push(l);
+/******/ },
+/******/ addStatusHandler: function(l) {
+/******/ hotStatusHandlers.push(l);
+/******/ },
+/******/ removeStatusHandler: function(l) {
+/******/ var idx = hotStatusHandlers.indexOf(l);
+/******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1);
+/******/ },
+/******/
+/******/ //inherit from previous dispose call
+/******/ data: hotCurrentModuleData[moduleId]
+/******/ };
+/******/ hotCurrentChildModule = undefined;
+/******/ return hot;
+/******/ }
+/******/
+/******/ var hotStatusHandlers = [];
+/******/ var hotStatus = "idle";
+/******/
+/******/ function hotSetStatus(newStatus) {
+/******/ hotStatus = newStatus;
+/******/ for (var i = 0; i < hotStatusHandlers.length; i++)
+/******/ hotStatusHandlers[i].call(null, newStatus);
+/******/ }
+/******/
+/******/ // while downloading
+/******/ var hotWaitingFiles = 0;
+/******/ var hotChunksLoading = 0;
+/******/ var hotWaitingFilesMap = {};
+/******/ var hotRequestedFilesMap = {};
+/******/ var hotAvailableFilesMap = {};
+/******/ var hotDeferred;
+/******/
+/******/ // The update info
+/******/ var hotUpdate, hotUpdateNewHash;
+/******/
+/******/ function toModuleId(id) {
+/******/ var isNumber = +id + "" === id;
+/******/ return isNumber ? +id : id;
+/******/ }
+/******/
+/******/ function hotCheck(apply) {
+/******/ if (hotStatus !== "idle") {
+/******/ throw new Error("check() is only allowed in idle status");
+/******/ }
+/******/ hotApplyOnUpdate = apply;
+/******/ hotSetStatus("check");
+/******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) {
+/******/ if (!update) {
+/******/ hotSetStatus("idle");
+/******/ return null;
+/******/ }
+/******/ hotRequestedFilesMap = {};
+/******/ hotWaitingFilesMap = {};
+/******/ hotAvailableFilesMap = update.c;
+/******/ hotUpdateNewHash = update.h;
+/******/
+/******/ hotSetStatus("prepare");
+/******/ var promise = new Promise(function(resolve, reject) {
+/******/ hotDeferred = {
+/******/ resolve: resolve,
+/******/ reject: reject
+/******/ };
+/******/ });
+/******/ hotUpdate = {};
+/******/ var chunkId = "main";
+/******/ // eslint-disable-next-line no-lone-blocks
+/******/ {
+/******/ /*globals chunkId */
+/******/ hotEnsureUpdateChunk(chunkId);
+/******/ }
+/******/ if (
+/******/ hotStatus === "prepare" &&
+/******/ hotChunksLoading === 0 &&
+/******/ hotWaitingFiles === 0
+/******/ ) {
+/******/ hotUpdateDownloaded();
+/******/ }
+/******/ return promise;
+/******/ });
+/******/ }
+/******/
+/******/ // eslint-disable-next-line no-unused-vars
+/******/ function hotAddUpdateChunk(chunkId, moreModules) {
+/******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
+/******/ return;
+/******/ hotRequestedFilesMap[chunkId] = false;
+/******/ for (var moduleId in moreModules) {
+/******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ hotUpdate[moduleId] = moreModules[moduleId];
+/******/ }
+/******/ }
+/******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) {
+/******/ hotUpdateDownloaded();
+/******/ }
+/******/ }
+/******/
+/******/ function hotEnsureUpdateChunk(chunkId) {
+/******/ if (!hotAvailableFilesMap[chunkId]) {
+/******/ hotWaitingFilesMap[chunkId] = true;
+/******/ } else {
+/******/ hotRequestedFilesMap[chunkId] = true;
+/******/ hotWaitingFiles++;
+/******/ hotDownloadUpdateChunk(chunkId);
+/******/ }
+/******/ }
+/******/
+/******/ function hotUpdateDownloaded() {
+/******/ hotSetStatus("ready");
+/******/ var deferred = hotDeferred;
+/******/ hotDeferred = null;
+/******/ if (!deferred) return;
+/******/ if (hotApplyOnUpdate) {
+/******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to
+/******/ // avoid triggering uncaught exception warning in Chrome.
+/******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
+/******/ Promise.resolve()
+/******/ .then(function() {
+/******/ return hotApply(hotApplyOnUpdate);
+/******/ })
+/******/ .then(
+/******/ function(result) {
+/******/ deferred.resolve(result);
+/******/ },
+/******/ function(err) {
+/******/ deferred.reject(err);
+/******/ }
+/******/ );
+/******/ } else {
+/******/ var outdatedModules = [];
+/******/ for (var id in hotUpdate) {
+/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
+/******/ outdatedModules.push(toModuleId(id));
+/******/ }
+/******/ }
+/******/ deferred.resolve(outdatedModules);
+/******/ }
+/******/ }
+/******/
+/******/ function hotApply(options) {
+/******/ if (hotStatus !== "ready")
+/******/ throw new Error("apply() is only allowed in ready status");
+/******/ options = options || {};
+/******/
+/******/ var cb;
+/******/ var i;
+/******/ var j;
+/******/ var module;
+/******/ var moduleId;
+/******/
+/******/ function getAffectedStuff(updateModuleId) {
+/******/ var outdatedModules = [updateModuleId];
+/******/ var outdatedDependencies = {};
+/******/
+/******/ var queue = outdatedModules.map(function(id) {
+/******/ return {
+/******/ chain: [id],
+/******/ id: id
+/******/ };
+/******/ });
+/******/ while (queue.length > 0) {
+/******/ var queueItem = queue.pop();
+/******/ var moduleId = queueItem.id;
+/******/ var chain = queueItem.chain;
+/******/ module = installedModules[moduleId];
+/******/ if (!module || module.hot._selfAccepted) continue;
+/******/ if (module.hot._selfDeclined) {
+/******/ return {
+/******/ type: "self-declined",
+/******/ chain: chain,
+/******/ moduleId: moduleId
+/******/ };
+/******/ }
+/******/ if (module.hot._main) {
+/******/ return {
+/******/ type: "unaccepted",
+/******/ chain: chain,
+/******/ moduleId: moduleId
+/******/ };
+/******/ }
+/******/ for (var i = 0; i < module.parents.length; i++) {
+/******/ var parentId = module.parents[i];
+/******/ var parent = installedModules[parentId];
+/******/ if (!parent) continue;
+/******/ if (parent.hot._declinedDependencies[moduleId]) {
+/******/ return {
+/******/ type: "declined",
+/******/ chain: chain.concat([parentId]),
+/******/ moduleId: moduleId,
+/******/ parentId: parentId
+/******/ };
+/******/ }
+/******/ if (outdatedModules.indexOf(parentId) !== -1) continue;
+/******/ if (parent.hot._acceptedDependencies[moduleId]) {
+/******/ if (!outdatedDependencies[parentId])
+/******/ outdatedDependencies[parentId] = [];
+/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
+/******/ continue;
+/******/ }
+/******/ delete outdatedDependencies[parentId];
+/******/ outdatedModules.push(parentId);
+/******/ queue.push({
+/******/ chain: chain.concat([parentId]),
+/******/ id: parentId
+/******/ });
+/******/ }
+/******/ }
+/******/
+/******/ return {
+/******/ type: "accepted",
+/******/ moduleId: updateModuleId,
+/******/ outdatedModules: outdatedModules,
+/******/ outdatedDependencies: outdatedDependencies
+/******/ };
+/******/ }
+/******/
+/******/ function addAllToSet(a, b) {
+/******/ for (var i = 0; i < b.length; i++) {
+/******/ var item = b[i];
+/******/ if (a.indexOf(item) === -1) a.push(item);
+/******/ }
+/******/ }
+/******/
+/******/ // at begin all updates modules are outdated
+/******/ // the "outdated" status can propagate to parents if they don't accept the children
+/******/ var outdatedDependencies = {};
+/******/ var outdatedModules = [];
+/******/ var appliedUpdate = {};
+/******/
+/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
+/******/ console.warn(
+/******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module"
+/******/ );
+/******/ };
+/******/
+/******/ for (var id in hotUpdate) {
+/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
+/******/ moduleId = toModuleId(id);
+/******/ /** @type {TODO} */
+/******/ var result;
+/******/ if (hotUpdate[id]) {
+/******/ result = getAffectedStuff(moduleId);
+/******/ } else {
+/******/ result = {
+/******/ type: "disposed",
+/******/ moduleId: id
+/******/ };
+/******/ }
+/******/ /** @type {Error|false} */
+/******/ var abortError = false;
+/******/ var doApply = false;
+/******/ var doDispose = false;
+/******/ var chainInfo = "";
+/******/ if (result.chain) {
+/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
+/******/ }
+/******/ switch (result.type) {
+/******/ case "self-declined":
+/******/ if (options.onDeclined) options.onDeclined(result);
+/******/ if (!options.ignoreDeclined)
+/******/ abortError = new Error(
+/******/ "Aborted because of self decline: " +
+/******/ result.moduleId +
+/******/ chainInfo
+/******/ );
+/******/ break;
+/******/ case "declined":
+/******/ if (options.onDeclined) options.onDeclined(result);
+/******/ if (!options.ignoreDeclined)
+/******/ abortError = new Error(
+/******/ "Aborted because of declined dependency: " +
+/******/ result.moduleId +
+/******/ " in " +
+/******/ result.parentId +
+/******/ chainInfo
+/******/ );
+/******/ break;
+/******/ case "unaccepted":
+/******/ if (options.onUnaccepted) options.onUnaccepted(result);
+/******/ if (!options.ignoreUnaccepted)
+/******/ abortError = new Error(
+/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo
+/******/ );
+/******/ break;
+/******/ case "accepted":
+/******/ if (options.onAccepted) options.onAccepted(result);
+/******/ doApply = true;
+/******/ break;
+/******/ case "disposed":
+/******/ if (options.onDisposed) options.onDisposed(result);
+/******/ doDispose = true;
+/******/ break;
+/******/ default:
+/******/ throw new Error("Unexception type " + result.type);
+/******/ }
+/******/ if (abortError) {
+/******/ hotSetStatus("abort");
+/******/ return Promise.reject(abortError);
+/******/ }
+/******/ if (doApply) {
+/******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
+/******/ addAllToSet(outdatedModules, result.outdatedModules);
+/******/ for (moduleId in result.outdatedDependencies) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(
+/******/ result.outdatedDependencies,
+/******/ moduleId
+/******/ )
+/******/ ) {
+/******/ if (!outdatedDependencies[moduleId])
+/******/ outdatedDependencies[moduleId] = [];
+/******/ addAllToSet(
+/******/ outdatedDependencies[moduleId],
+/******/ result.outdatedDependencies[moduleId]
+/******/ );
+/******/ }
+/******/ }
+/******/ }
+/******/ if (doDispose) {
+/******/ addAllToSet(outdatedModules, [result.moduleId]);
+/******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // Store self accepted outdated modules to require them later by the module system
+/******/ var outdatedSelfAcceptedModules = [];
+/******/ for (i = 0; i < outdatedModules.length; i++) {
+/******/ moduleId = outdatedModules[i];
+/******/ if (
+/******/ installedModules[moduleId] &&
+/******/ installedModules[moduleId].hot._selfAccepted &&
+/******/ // removed self-accepted modules should not be required
+/******/ appliedUpdate[moduleId] !== warnUnexpectedRequire
+/******/ ) {
+/******/ outdatedSelfAcceptedModules.push({
+/******/ module: moduleId,
+/******/ errorHandler: installedModules[moduleId].hot._selfAccepted
+/******/ });
+/******/ }
+/******/ }
+/******/
+/******/ // Now in "dispose" phase
+/******/ hotSetStatus("dispose");
+/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
+/******/ if (hotAvailableFilesMap[chunkId] === false) {
+/******/ hotDisposeChunk(chunkId);
+/******/ }
+/******/ });
+/******/
+/******/ var idx;
+/******/ var queue = outdatedModules.slice();
+/******/ while (queue.length > 0) {
+/******/ moduleId = queue.pop();
+/******/ module = installedModules[moduleId];
+/******/ if (!module) continue;
+/******/
+/******/ var data = {};
+/******/
+/******/ // Call dispose handlers
+/******/ var disposeHandlers = module.hot._disposeHandlers;
+/******/ for (j = 0; j < disposeHandlers.length; j++) {
+/******/ cb = disposeHandlers[j];
+/******/ cb(data);
+/******/ }
+/******/ hotCurrentModuleData[moduleId] = data;
+/******/
+/******/ // disable module (this disables requires from this module)
+/******/ module.hot.active = false;
+/******/
+/******/ // remove module from cache
+/******/ delete installedModules[moduleId];
+/******/
+/******/ // when disposing there is no need to call dispose handler
+/******/ delete outdatedDependencies[moduleId];
+/******/
+/******/ // remove "parents" references from all children
+/******/ for (j = 0; j < module.children.length; j++) {
+/******/ var child = installedModules[module.children[j]];
+/******/ if (!child) continue;
+/******/ idx = child.parents.indexOf(moduleId);
+/******/ if (idx >= 0) {
+/******/ child.parents.splice(idx, 1);
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // remove outdated dependency from module children
+/******/ var dependency;
+/******/ var moduleOutdatedDependencies;
+/******/ for (moduleId in outdatedDependencies) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
+/******/ ) {
+/******/ module = installedModules[moduleId];
+/******/ if (module) {
+/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
+/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) {
+/******/ dependency = moduleOutdatedDependencies[j];
+/******/ idx = module.children.indexOf(dependency);
+/******/ if (idx >= 0) module.children.splice(idx, 1);
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // Now in "apply" phase
+/******/ hotSetStatus("apply");
+/******/
+/******/ hotCurrentHash = hotUpdateNewHash;
+/******/
+/******/ // insert new code
+/******/ for (moduleId in appliedUpdate) {
+/******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
+/******/ modules[moduleId] = appliedUpdate[moduleId];
+/******/ }
+/******/ }
+/******/
+/******/ // call accept handlers
+/******/ var error = null;
+/******/ for (moduleId in outdatedDependencies) {
+/******/ if (
+/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
+/******/ ) {
+/******/ module = installedModules[moduleId];
+/******/ if (module) {
+/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
+/******/ var callbacks = [];
+/******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) {
+/******/ dependency = moduleOutdatedDependencies[i];
+/******/ cb = module.hot._acceptedDependencies[dependency];
+/******/ if (cb) {
+/******/ if (callbacks.indexOf(cb) !== -1) continue;
+/******/ callbacks.push(cb);
+/******/ }
+/******/ }
+/******/ for (i = 0; i < callbacks.length; i++) {
+/******/ cb = callbacks[i];
+/******/ try {
+/******/ cb(moduleOutdatedDependencies);
+/******/ } catch (err) {
+/******/ if (options.onErrored) {
+/******/ options.onErrored({
+/******/ type: "accept-errored",
+/******/ moduleId: moduleId,
+/******/ dependencyId: moduleOutdatedDependencies[i],
+/******/ error: err
+/******/ });
+/******/ }
+/******/ if (!options.ignoreErrored) {
+/******/ if (!error) error = err;
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // Load self accepted modules
+/******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) {
+/******/ var item = outdatedSelfAcceptedModules[i];
+/******/ moduleId = item.module;
+/******/ hotCurrentParents = [moduleId];
+/******/ try {
+/******/ __webpack_require__(moduleId);
+/******/ } catch (err) {
+/******/ if (typeof item.errorHandler === "function") {
+/******/ try {
+/******/ item.errorHandler(err);
+/******/ } catch (err2) {
+/******/ if (options.onErrored) {
+/******/ options.onErrored({
+/******/ type: "self-accept-error-handler-errored",
+/******/ moduleId: moduleId,
+/******/ error: err2,
+/******/ originalError: err
+/******/ });
+/******/ }
+/******/ if (!options.ignoreErrored) {
+/******/ if (!error) error = err2;
+/******/ }
+/******/ if (!error) error = err;
+/******/ }
+/******/ } else {
+/******/ if (options.onErrored) {
+/******/ options.onErrored({
+/******/ type: "self-accept-errored",
+/******/ moduleId: moduleId,
+/******/ error: err
+/******/ });
+/******/ }
+/******/ if (!options.ignoreErrored) {
+/******/ if (!error) error = err;
+/******/ }
+/******/ }
+/******/ }
+/******/ }
+/******/
+/******/ // handle errors in accept handlers and self accepted module load
+/******/ if (error) {
+/******/ hotSetStatus("fail");
+/******/ return Promise.reject(error);
+/******/ }
+/******/
+/******/ hotSetStatus("idle");
+/******/ return new Promise(function(resolve) {
+/******/ resolve(outdatedModules);
+/******/ });
+/******/ }
+/******/
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {},
+/******/ hot: hotCreateModule(moduleId),
+/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
+/******/ children: []
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "/";
+/******/
+/******/ // __webpack_hash__
+/******/ __webpack_require__.h = function() { return hotCurrentHash; };
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return hotCreateRequire("./src/index.ts")(__webpack_require__.s = "./src/index.ts");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "./src/errors/jsErrors.ts":
+/*!********************************!*\
+ !*** ./src/errors/jsErrors.ts ***!
+ \********************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _services_trace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../services/trace */ "./src/services/trace.ts");
+/* harmony import */ var _services_constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/constant */ "./src/services/constant.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var __extends = (undefined && undefined.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+
+
+
+var JSErrors = /** @class */ (function (_super) {
+ __extends(JSErrors, _super);
+ function JSErrors() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ JSErrors.prototype.handleErrors = function (options) {
+ var _this = this;
+ window.onerror = function (message, url, line, col, error) {
+ _this.logInfo = {
+ reportUrl: options.reportUrl,
+ category: _services_constant__WEBPACK_IMPORTED_MODULE_1__["ErrorsCategory"].JS_ERROR,
+ grade: _services_constant__WEBPACK_IMPORTED_MODULE_1__["GradeTypeEnum"].WARNING,
+ errorUrl: url,
+ line: line,
+ col: col,
+ errorInfo: error,
+ message: message,
+ };
+ _this.traceInfo();
+ };
+ };
+ return JSErrors;
+}(_services_trace__WEBPACK_IMPORTED_MODULE_0__["default"]));
+/* harmony default export */ __webpack_exports__["default"] = (new JSErrors());
+
+
+/***/ }),
+
+/***/ "./src/index.ts":
+/*!**********************!*\
+ !*** ./src/index.ts ***!
+ \**********************/
+/*! exports provided: ClientMonitor */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _monitor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monitor */ "./src/monitor.ts");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientMonitor", function() { return _monitor__WEBPACK_IMPORTED_MODULE_0__["default"]; });
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+window.ClientMonitor = _monitor__WEBPACK_IMPORTED_MODULE_0__["default"];
+
+
+
+/***/ }),
+
+/***/ "./src/monitor.ts":
+/*!************************!*\
+ !*** ./src/monitor.ts ***!
+ \************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _errors_jsErrors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./errors/jsErrors */ "./src/errors/jsErrors.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var ClientMonitor = {
+ errorTypes: {
+ jsErrors: true,
+ promiseErrors: true,
+ consoleErrors: false,
+ vueErrors: false,
+ reactErrors: false,
+ ajaxErrors: true,
+ resourceErrors: true,
+ },
+ init: function (options) {
+ this.errorTypes = options;
+ if (this.errorTypes.jsErrors) {
+ this.errorTypes.jsErrors = options.jsErrors;
+ _errors_jsErrors__WEBPACK_IMPORTED_MODULE_0__["default"].handleErrors({ reportUrl: options.reportUrl });
+ }
+ if (this.errorTypes.promiseErrors) {
+ this.errorTypes.promiseErrors = options.promiseErrors || this.errorTypes.promiseErrors;
+ }
+ if (this.errorTypes.resourceErrors) {
+ this.errorTypes.resourceErrors = options.resourceErrors;
+ }
+ if (this.errorTypes.ajaxErrors) {
+ this.errorTypes.ajaxErrors = options.ajaxErrors || this.errorTypes.ajaxErrors;
+ }
+ },
+};
+/* harmony default export */ __webpack_exports__["default"] = (ClientMonitor);
+
+
+/***/ }),
+
+/***/ "./src/services/constant.ts":
+/*!**********************************!*\
+ !*** ./src/services/constant.ts ***!
+ \**********************************/
+/*! exports provided: ErrorsCategory, GradeTypeEnum */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorsCategory", function() { return ErrorsCategory; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GradeTypeEnum", function() { return GradeTypeEnum; });
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var ErrorsCategory;
+(function (ErrorsCategory) {
+ ErrorsCategory["AJAX_ERROR"] = "ajaxError";
+ ErrorsCategory["RESOURCE_ERROR"] = "resourceError";
+ ErrorsCategory["VUE_ERROR"] = "vueError";
+ ErrorsCategory["PROMISE_ERROR"] = "promiseError";
+ ErrorsCategory["JS_ERROR"] = "jsError";
+ ErrorsCategory["CONSOLE_INFO"] = "consoleInfo";
+ ErrorsCategory["CONSOLE_WARN"] = "consoleWarn";
+ ErrorsCategory["CONSOLE_ERROR"] = "consoleError";
+ ErrorsCategory["CROSS_SCRIPT_ERROR"] = "crossSrciptError";
+ ErrorsCategory["UNKNOW_ERROR"] = "unknowError";
+})(ErrorsCategory || (ErrorsCategory = {}));
+var GradeTypeEnum;
+(function (GradeTypeEnum) {
+ GradeTypeEnum["INFO"] = "Info";
+ GradeTypeEnum["WARNING"] = "Warning";
+ GradeTypeEnum["ERROR"] = "Error";
+})(GradeTypeEnum || (GradeTypeEnum = {}));
+
+
+/***/ }),
+
+/***/ "./src/services/report.ts":
+/*!********************************!*\
+ !*** ./src/services/report.ts ***!
+ \********************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var Report = /** @class */ (function () {
+ function Report(url) {
+ this.url = '';
+ this.url = url;
+ }
+ Report.prototype.sendByXhr = function (data) {
+ if (!this.checkUrl(this.url)) {
+ return;
+ }
+ try {
+ var xhr = new XMLHttpRequest();
+ xhr.open('POST', this.url, true);
+ xhr.setRequestHeader('Content-Type', 'application/json');
+ console.log(data);
+ xhr.send(JSON.stringify(data));
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ };
+ Report.prototype.reportByImg = function (data) {
+ if (!this.checkUrl(this.url)) {
+ return;
+ }
+ try {
+ var imgObj = new Image();
+ imgObj.src = this.url + "?v=" + new Date().getTime() + "&" + this.formatParams(data);
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ };
+ Report.prototype.formatParams = function (data) {
+ return Object.keys(data).map(function (name) {
+ return encodeURIComponent(name) + "=" + encodeURIComponent(data[name]);
+ }).join('&');
+ };
+ Report.prototype.checkUrl = function (url) {
+ if (!url) {
+ return;
+ }
+ var urlRule = /^[hH][tT][tT][pP]([sS]?):\/\//;
+ return urlRule.test(url);
+ };
+ return Report;
+}());
+/* harmony default export */ __webpack_exports__["default"] = (Report);
+
+
+/***/ }),
+
+/***/ "./src/services/task.ts":
+/*!******************************!*\
+ !*** ./src/services/task.ts ***!
+ \******************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _report__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report */ "./src/services/report.ts");
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var TaskQueue = /** @class */ (function () {
+ function TaskQueue() {
+ this.queues = [];
+ }
+ TaskQueue.prototype.addTask = function (reportUrl, data) {
+ this.queues.push({ reportUrl: reportUrl, data: data });
+ };
+ TaskQueue.prototype.fireTasks = function () {
+ if (!this.queues || !this.queues.length) {
+ return;
+ }
+ var item = this.queues[0];
+ if (item.reportUrl) {
+ new _report__WEBPACK_IMPORTED_MODULE_0__["default"](item.reportUrl).sendByXhr(item.data);
+ }
+ this.queues.splice(0, 1);
+ this.fireTasks();
+ };
+ return TaskQueue;
+}());
+/* harmony default export */ __webpack_exports__["default"] = (new TaskQueue());
+
+
+/***/ }),
+
+/***/ "./src/services/trace.ts":
+/*!*******************************!*\
+ !*** ./src/services/trace.ts ***!
+ \*******************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _task__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./task */ "./src/services/task.ts");
+/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant */ "./src/services/constant.ts");
+var __assign = (undefined && undefined.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+var Trace = /** @class */ (function () {
+ function Trace() {
+ this.logInfo = {
+ category: _constant__WEBPACK_IMPORTED_MODULE_1__["ErrorsCategory"].UNKNOW_ERROR,
+ grade: _constant__WEBPACK_IMPORTED_MODULE_1__["GradeTypeEnum"].INFO,
+ errorUrl: '',
+ line: 0,
+ col: 0,
+ errorInfo: '',
+ message: '',
+ reportUrl: '',
+ };
+ }
+ Trace.prototype.traceInfo = function () {
+ this.handleRecordError();
+ setTimeout(function () {
+ _task__WEBPACK_IMPORTED_MODULE_0__["default"].fireTasks();
+ }, 100);
+ };
+ Trace.prototype.handleRecordError = function () {
+ try {
+ if (!this.logInfo.message) {
+ return;
+ }
+ if (this.logInfo.reportUrl && this.logInfo.errorUrl &&
+ this.logInfo.errorUrl.toLowerCase().includes(this.logInfo.reportUrl.toLowerCase())) {
+ return;
+ }
+ var errorInfo = this.handleErrorInfo();
+ _task__WEBPACK_IMPORTED_MODULE_0__["default"].addTask(this.logInfo.reportUrl, errorInfo);
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ };
+ Trace.prototype.handleErrorInfo = function () {
+ var message = "error category:" + this.logInfo.category + "\r\n log info:" + this.logInfo.message + "\r\n\n error url: " + this.logInfo.errorUrl + "\r\n ";
+ switch (this.logInfo.category) {
+ case _constant__WEBPACK_IMPORTED_MODULE_1__["ErrorsCategory"].JS_ERROR:
+ message += "error line number: " + this.logInfo.line + "\r\n error col number:" + this.logInfo.col + "\r\n";
+ if (this.logInfo.errorInfo && this.logInfo.errorInfo.stack) {
+ message += "error stack: " + this.logInfo.errorInfo.stack + "\r\n";
+ }
+ break;
+ default:
+ message += "other error: " + this.logInfo.errorInfo + "\r\n";
+ break;
+ }
+ var recordInfo = __assign(__assign({}, this.logInfo), { message: message });
+ return recordInfo;
+ };
+ return Trace;
+}());
+/* harmony default export */ __webpack_exports__["default"] = (Trace);
+
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2Vycm9ycy9qc0Vycm9ycy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL21vbml0b3IudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL2NvbnN0YW50LnRzIiwid2VicGFjazovLy8uL3NyYy9zZXJ2aWNlcy9yZXBvcnQudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL3Rhc2sudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGlu [...]
\ No newline at end of file
diff --git a/src/index.ts b/index.js
similarity index 86%
copy from src/index.ts
copy to index.js
index 319921d..564fb76 100644
--- a/src/index.ts
+++ b/index.js
@@ -15,8 +15,6 @@
* limitations under the License.
*/
-import ClientMonitor from './monitor';
+import './src/index';
-(window as any).ClientMonitor = new ClientMonitor();
-
-export default new ClientMonitor();
+export default ClientMonitor;
diff --git a/package.json b/package.json
index 3e7f1c5..e003d86 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,8 @@
{
"name": "skywalking-client-js",
- "version": "1.0.0",
+ "version": "0.0.1",
"description": "js monitor",
"main": "index.js",
- "author": "Qiuxia Fan",
- "license": "MIT",
"dependencies": {
"clean-webpack-plugin": "3.0.0",
"express": "^4.17.1",
diff --git a/server.js b/server.js
index c2f6683..345cf7e 100644
--- a/server.js
+++ b/server.js
@@ -1,34 +1,35 @@
/**
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-const express = require('express');
-const webpack = require('webpack');
-const webpackDevMiddleware = require('webpack-dev-middleware');
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const express = require("express");
+const webpack = require("webpack");
+const webpackDevMiddleware = require("webpack-dev-middleware");
const app = express();
-const config = require('./webpack.config.js');
+const config = require("./webpack.config.js");
const compiler = webpack(config);
// Tell express to use the webpack-dev-middleware and use the webpack.config.js
// configuration file as a base.
-app.use(webpackDevMiddleware(compiler, {
- publicPath: config.output.publicPath
-}));
-
+app.use(
+ webpackDevMiddleware(compiler, {
+ publicPath: config.output.publicPath
+ })
+);
// Serve the files on port 3000.
-app.listen(3000, function () {
- console.log('Example app listening on port 3000!\n');
-});
\ No newline at end of file
+app.listen(3000, function() {
+ console.log("Example app listening on port 3000!\n");
+});
diff --git a/src/errors/jsErrors.ts b/src/errors/jsErrors.ts
index 29e9b79..2d1a391 100644
--- a/src/errors/jsErrors.ts
+++ b/src/errors/jsErrors.ts
@@ -26,7 +26,7 @@ class JSErrors extends Trace {
reportUrl: options.reportUrl,
category: ErrorsCategory.JS_ERROR,
grade: GradeTypeEnum.WARNING,
- url,
+ errorUrl: url,
line,
col,
errorInfo: error,
diff --git a/src/index.ts b/src/index.ts
index 319921d..f14b4c3 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -17,6 +17,6 @@
import ClientMonitor from './monitor';
-(window as any).ClientMonitor = new ClientMonitor();
+(window as any).ClientMonitor = ClientMonitor;
-export default new ClientMonitor();
+export default ClientMonitor;
diff --git a/src/monitor.ts b/src/monitor.ts
index 8a1cb61..b24faf0 100644
--- a/src/monitor.ts
+++ b/src/monitor.ts
@@ -17,9 +17,8 @@
import JSErrors from './errors/jsErrors';
import { TClientMonitor, TErrorsType } from './types';
-export default class ClientMonitor {
-
- private errorTypes: TErrorsType = {
+const ClientMonitor = {
+ errorTypes: {
jsErrors: true,
promiseErrors: true,
consoleErrors: false,
@@ -27,9 +26,9 @@ export default class ClientMonitor {
reactErrors: false,
ajaxErrors: true,
resourceErrors: true,
- };
+ } as TErrorsType,
- public init(options: TClientMonitor & TErrorsType) {
+ register(options: TClientMonitor & TErrorsType) {
this.errorTypes = options;
if (this.errorTypes.jsErrors) {
this.errorTypes.jsErrors = options.jsErrors;
@@ -44,5 +43,7 @@ export default class ClientMonitor {
if (this.errorTypes.ajaxErrors) {
this.errorTypes.ajaxErrors = options.ajaxErrors || this.errorTypes.ajaxErrors;
}
- }
-}
+ },
+};
+
+export default ClientMonitor;
diff --git a/src/services/trace.ts b/src/services/trace.ts
index 7bc6f4a..1478fc4 100644
--- a/src/services/trace.ts
+++ b/src/services/trace.ts
@@ -16,18 +16,18 @@
*/
import Task from './task';
import { ErrorsCategory, GradeTypeEnum } from './constant';
-import { TraceFields } from './types';
+import { errorInfoFeilds } from './types';
export default class Trace {
- public logInfo: TraceFields = {
+ public logInfo: errorInfoFeilds & {reportUrl: string} = {
category: ErrorsCategory.UNKNOW_ERROR,
grade: GradeTypeEnum.INFO,
- url: '',
+ errorUrl: '',
line: 0,
col: 0,
errorInfo: '',
- reportUrl: '',
message: '',
+ reportUrl: '',
};
public traceInfo() {
@@ -42,8 +42,8 @@ export default class Trace {
if (!this.logInfo.message) {
return;
}
- if (this.logInfo.reportUrl && this.logInfo.url &&
- this.logInfo.url.toLowerCase().includes(this.logInfo.reportUrl.toLowerCase())) {
+ if (this.logInfo.reportUrl && this.logInfo.errorUrl &&
+ this.logInfo.errorUrl.toLowerCase().includes(this.logInfo.reportUrl.toLowerCase())) {
return;
}
const errorInfo = this.handleErrorInfo();
@@ -57,7 +57,7 @@ export default class Trace {
private handleErrorInfo() {
let message = `error category:${this.logInfo.category}\r\n log info:${this.logInfo.message}\r\n
- error url: ${this.logInfo.url}\r\n `;
+ error url: ${this.logInfo.errorUrl}\r\n `;
switch (this.logInfo.category) {
case ErrorsCategory.JS_ERROR:
message += `error line number: ${this.logInfo.line}\r\n error col number:${this.logInfo.col}\r\n`;
diff --git a/src/services/types.d.ts b/src/services/types.d.ts
index 6662d8c..d296077 100644
--- a/src/services/types.d.ts
+++ b/src/services/types.d.ts
@@ -16,18 +16,10 @@
*/
export interface TraceFields {
reportUrl: string;
- category: string;
- grade: string;
- message: any;
- url: string;
- line: number;
- col: number;
- errorInfo: any;
+ serviceName?: string;
+ errorInfo: errorInfoFeilds;
performanceInfo?: performanceInfoFields;
resources?: any;
- time?: string;
- userId?: string;
- pageUv?: string;
pageId?: string;
deviceInfo?: any;
}
@@ -40,3 +32,13 @@ export interface performanceInfoFields {
domReadyTime: string;
loadPage: string;
}
+
+export interface errorInfoFeilds {
+ category: string;
+ grade: string;
+ message: any;
+ errorUrl: string;
+ line: number;
+ col: number;
+ errorInfo: any;
+}
diff --git a/test/index.html b/test/index.html
deleted file mode 100644
index 181f999..0000000
--- a/test/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>Document</title>
-</head>
-<body>
- <div>console test</div>
- <script src="../dist/monitor.js"></script>
- <script>
- ClientMonitor.init({
- reportUrl: "http://baidu.com",
- consoleErrors:true,
- jsErrors: true,
- promiseErrors: false,
- vueErrors: false,
- reactErrors: false,
- ajaxErrors: false,
- resourceErrors: false
- });
- ss();
- </script>
-</body>
-</html>
diff --git a/webpack.config.js b/webpack.config.js
index b37677e..812f1d0 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -35,7 +35,7 @@ module.exports = {
extensions: [ '.tsx', '.ts', '.js' ]
},
output: {
- filename: 'monitor.js',
+ filename: 'index.js',
path: path.resolve(__dirname, 'dist'),
publicPath: '/'
},