app-tracker 2.0.0 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { AppLoggerConfig } from './log';
1
+ import { AppTrackerConfig } from './log';
2
2
  export declare class AppTrackerService {
3
3
  private sendLogsOnLocal;
4
4
  private consoleLogsOnLocal;
@@ -15,7 +15,7 @@ export declare class AppTrackerService {
15
15
  private isNode;
16
16
  private os;
17
17
  private isRunningLocal;
18
- init(apiKey: string, config?: AppLoggerConfig): void;
18
+ init(apiKey: string, config?: AppTrackerConfig): void;
19
19
  debug(message?: string, ...optionalParams: any[]): void;
20
20
  info(message?: string, ...optionalParams: any[]): void;
21
21
  log(message?: string, ...optionalParams: any[]): void;
@@ -27,4 +27,5 @@ export declare class AppTrackerService {
27
27
  private sendLogsToServer;
28
28
  private checkLogType;
29
29
  private sendLogsToServerCore;
30
+ private setUserAgentFromOs;
30
31
  }
@@ -1 +1 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,o,s,t){return new(s||(s=Promise))((function(i,n){function r(e){try{g(t.next(e))}catch(e){n(e)}}function l(e){try{g(t.throw(e))}catch(e){n(e)}}function g(e){var o;e.done?i(e.value):(o=e.value,o instanceof s?o:new s((function(e){e(o)}))).then(r,l)}g((t=t.apply(e,o||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const log_1=require("./log"),cross_fetch_1=require("cross-fetch");class AppTrackerService{constructor(){this.sendLogsOnLocal=!1,this.consoleLogsOnLocal=!1,this.endpointUrl="https://api-app-tracker.azurewebsites.net/",this.apiKey="",this.logs=[],this.sendTries=0,this.maxSendTries=5,this.isSending=!1,this.maxLogsCount=10,this.userAgent="",this.logLevel=[log_1.LogType.error],this.sendLogsByTypesImmediately=[log_1.LogType.error],this.isNode=!1,this.isRunningLocal=!0}init(e,o){var s,t,i;this.apiKey=e,o&&(o.endpointUrl&&(this.endpointUrl=o.endpointUrl),o.maxLogsCount&&(this.maxLogsCount=o.maxLogsCount),o.maxSendTries&&(this.maxSendTries=o.maxSendTries),o.sendLogsInDevelopment&&(this.sendLogsOnLocal=o.sendLogsInDevelopment),o.logInConsoleInDevelopment&&(this.consoleLogsOnLocal=o.logInConsoleInDevelopment),o.logLevel&&(this.logLevel=o.logLevel),o.sendLogsByTypesImmediately&&(this.sendLogsByTypesImmediately=o.sendLogsByTypesImmediately)),this.isNode="[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),this.isNode?(this.os=null===(t=o)||void 0===t?void 0:t.userAgentOrOs,this.userAgent=JSON.stringify(this.os)):this.userAgent=null===(s=o)||void 0===s?void 0:s.userAgentOrOs,this.isRunningLocal=this.isNode?(i=process.env.NODE_ENV,null!=i?i:"").indexOf("development")>-1:window.location.href.indexOf("localhost")>-1,""==e||this.isNode||this.isRunningLocal||window.addEventListener("beforeunload",(e=>{if(e.preventDefault(),e.returnValue="",!this.isSending){const e=this.logs;this.isSending=!0,this.logs=[],this.sendLogsToServerCore(e)}}))}debug(e,...o){this.addLog(log_1.LogType.debug,e,o)}info(e,...o){this.addLog(log_1.LogType.info,e,o)}log(e,...o){this.addLog(log_1.LogType.log,e,o)}warn(e,...o){this.addLog(log_1.LogType.warn,e,o)}error(e,...o){this.addLog(log_1.LogType.error,e,o)}critical(e,...o){this.addLog(log_1.LogType.critical,e,o)}addLog(e,o,s){this.checkLogType(e)?this.isRunningLocal&&!this.sendLogsOnLocal?this.logToConsole(e,o,s):this.sendLogsToServer(e,o,s):this.logToConsole(e,o,s)}logToConsole(e,o,s){if(this.consoleLogsOnLocal)switch(e){case log_1.LogType.debug:console.debug(o,s);break;case log_1.LogType.critical:case log_1.LogType.error:console.error(o,s);break;case log_1.LogType.info:console.info(o,s);break;case log_1.LogType.log:console.log(o,s);break;case log_1.LogType.warn:console.warn(o,s);break;default:console.warn("Unkown LogType: ",e)}}sendLogsToServer(e,o,...s){var t;const i={logType:e,message:o,optionalParams:[],createdAt:new Date};if(s.forEach((e=>e.forEach((e=>i.optionalParams.push(e))))),this.logs.push(i),this.logs.length>=this.maxLogsCount&&!this.isSending||null!=((null===(t=this.sendLogsByTypesImmediately)||void 0===t?void 0:t.find((o=>o==e)))||e==log_1.LogType.critical)&&!this.isSending){const e=this.logs;this.logs=[],this.isSending=!0,this.sendLogsToServerCore(e)}}checkLogType(e){return null!=this.logLevel.find((o=>o===e))||e===log_1.LogType.critical}sendLogsToServerCore(e){return __awaiter(this,void 0,void 0,(function*(){if(this.sendTries<this.maxSendTries)try{const o=this.endpointUrl.charAt(this.endpointUrl.length-1);yield cross_fetch_1.default(`${this.endpointUrl}${"/"===o?"logs/createLog":"/logs/createLog"}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","X-Auth-Key":this.apiKey},body:JSON.stringify({logs:e,userAgent:this.userAgent},((e,o)=>{if(o instanceof Error){let e={};return Object.getOwnPropertyNames(o).forEach((function(s){e[s]=o[s]})),e}return o}))});e=[],this.isSending=!1}catch(o){console.error(`AppLogger: Could not send Logs to Server try ${this.sendTries}`,o),this.sendTries++,setTimeout((()=>{this.sendLogsToServerCore(e)}),1e4)}else this.sendTries=0,this.isSending=!1,console.error("AppLogger: Could not send Logs to Server finally")}))}}exports.AppTrackerService=AppTrackerService;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,s,o,t){return new(o||(o=Promise))((function(i,n){function r(e){try{g(t.next(e))}catch(e){n(e)}}function l(e){try{g(t.throw(e))}catch(e){n(e)}}function g(e){var s;e.done?i(e.value):(s=e.value,s instanceof o?s:new o((function(e){e(s)}))).then(r,l)}g((t=t.apply(e,s||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const log_1=require("./log"),cross_fetch_1=require("cross-fetch");class AppTrackerService{constructor(){this.sendLogsOnLocal=!1,this.consoleLogsOnLocal=!1,this.endpointUrl="https://api-app-tracker.azurewebsites.net/",this.apiKey="",this.logs=[],this.sendTries=0,this.maxSendTries=5,this.isSending=!1,this.maxLogsCount=10,this.userAgent="",this.logLevel=[log_1.LogType.error],this.sendLogsByTypesImmediately=[log_1.LogType.error],this.isNode=!1,this.isRunningLocal=!0}init(e,s){var o,t,i;this.apiKey=e,s&&(s.endpointUrl&&(this.endpointUrl=s.endpointUrl),s.maxLogsCount&&(this.maxLogsCount=s.maxLogsCount),s.maxSendTries&&(this.maxSendTries=s.maxSendTries),s.sendLogsInDevelopment&&(this.sendLogsOnLocal=s.sendLogsInDevelopment),s.logInConsoleInDevelopment&&(this.consoleLogsOnLocal=s.logInConsoleInDevelopment),s.logLevel&&(this.logLevel=s.logLevel),s.sendLogsByTypesImmediately&&(this.sendLogsByTypesImmediately=s.sendLogsByTypesImmediately)),this.isNode="[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),this.isNode?(this.os=null===(t=s)||void 0===t?void 0:t.userAgentOrOs,this.userAgent=this.setUserAgentFromOs()):this.userAgent=null===(o=s)||void 0===o?void 0:o.userAgentOrOs,this.isRunningLocal=this.isNode?(i=process.env.NODE_ENV,null!=i?i:"").indexOf("development")>-1:window.location.href.indexOf("localhost")>-1,""==e||this.isNode||this.isRunningLocal||window.addEventListener("beforeunload",(e=>{if(e.preventDefault(),e.returnValue="",!this.isSending){const e=this.logs;this.isSending=!0,this.logs=[],this.sendLogsToServerCore(e)}}))}debug(e,...s){this.addLog(log_1.LogType.debug,e,s)}info(e,...s){this.addLog(log_1.LogType.info,e,s)}log(e,...s){this.addLog(log_1.LogType.log,e,s)}warn(e,...s){this.addLog(log_1.LogType.warn,e,s)}error(e,...s){this.addLog(log_1.LogType.error,e,s)}critical(e,...s){this.addLog(log_1.LogType.critical,e,s)}addLog(e,s,o){this.checkLogType(e)?this.isRunningLocal&&!this.sendLogsOnLocal?this.logToConsole(e,s,o):this.sendLogsToServer(e,s,o):this.logToConsole(e,s,o)}logToConsole(e,s,o){if(this.consoleLogsOnLocal)switch(e){case log_1.LogType.debug:console.debug(s,o);break;case log_1.LogType.critical:case log_1.LogType.error:console.error(s,o);break;case log_1.LogType.info:console.info(s,o);break;case log_1.LogType.log:console.log(s,o);break;case log_1.LogType.warn:console.warn(s,o);break;default:console.warn("Unkown LogType: ",e)}}sendLogsToServer(e,s,...o){var t;const i={logType:e,message:s,optionalParams:[],createdAt:new Date};if(o.forEach((e=>e.forEach((e=>i.optionalParams.push(e))))),this.logs.push(i),this.logs.length>=this.maxLogsCount&&!this.isSending||null!=((null===(t=this.sendLogsByTypesImmediately)||void 0===t?void 0:t.find((s=>s==e)))||e==log_1.LogType.critical)&&!this.isSending){const e=this.logs;this.logs=[],this.isSending=!0,this.sendLogsToServerCore(e)}}checkLogType(e){return null!=this.logLevel.find((s=>s===e))||e===log_1.LogType.critical}sendLogsToServerCore(e){return __awaiter(this,void 0,void 0,(function*(){if(this.sendTries<this.maxSendTries)try{const s=this.endpointUrl.charAt(this.endpointUrl.length-1);yield cross_fetch_1.default(`${this.endpointUrl}${"/"===s?"logs/createLog":"/logs/createLog"}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","X-Auth-Key":this.apiKey},body:JSON.stringify({logs:e,userAgent:this.userAgent},((e,s)=>{if(s instanceof Error){let e={};return Object.getOwnPropertyNames(s).forEach((function(o){e[o]=s[o]})),e}return s}))});e=[],this.isSending=!1}catch(s){console.error(`AppLogger: Could not send Logs to Server try ${this.sendTries}`,s),this.sendTries++,setTimeout((()=>{this.sendLogsToServerCore(e)}),1e4)}else this.sendTries=0,this.isSending=!1,console.error("AppLogger: Could not send Logs to Server finally")}))}setUserAgentFromOs(){const e={arch:this.os.arch(),cpus:this.os.cpus(),endianness:this.os.endianness(),freemem:this.os.freemem(),homedir:this.os.homedir(),hostname:this.os.hostname(),loadavg:this.os.loadavg(),networkInterfaces:this.os.networkInterfaces(),platform:this.os.platform(),release:this.os.release(),tmpdir:this.os.tmpdir(),totalmem:this.os.totalmem(),type:this.os.type(),uptime:this.os.uptime(),userInfo:this.os.userInfo(),version:this.os.version()};return JSON.stringify(e)}}exports.AppTrackerService=AppTrackerService;
package/log.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare class AppLoggerConfig {
1
+ export declare class AppTrackerConfig {
2
2
  /** Should logs in the development environment be sent to the server. For Node enviroment process.env.NODE_ENV must be set to 'development' */
3
3
  sendLogsInDevelopment?: boolean | undefined;
4
4
  logInConsoleInDevelopment?: boolean | undefined;
package/log.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});class AppLoggerConfig{constructor(){this.maxLogsCount=5,this.sendLogsByTypesImmediately=[LogType.error]}}exports.AppLoggerConfig=AppLoggerConfig;class Log{constructor(){this.logType=LogType.log,this.optionalParams=[],this.createdAt=new Date}}var LogType;exports.Log=Log,function(o){o[o.debug=0]="debug",o[o.info=1]="info",o[o.log=2]="log",o[o.warn=3]="warn",o[o.error=4]="error",o[o.critical=5]="critical"}(LogType=exports.LogType||(exports.LogType={}));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});class AppTrackerConfig{constructor(){this.maxLogsCount=5,this.sendLogsByTypesImmediately=[LogType.error]}}exports.AppTrackerConfig=AppTrackerConfig;class Log{constructor(){this.logType=LogType.log,this.optionalParams=[],this.createdAt=new Date}}var LogType;exports.Log=Log,function(o){o[o.debug=0]="debug",o[o.info=1]="info",o[o.log=2]="log",o[o.warn=3]="warn",o[o.error=4]="error",o[o.critical=5]="critical"}(LogType=exports.LogType||(exports.LogType={}));
package/main.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { AppTrackerService } from './app-tracker.service';
2
- import { AppLoggerConfig } from './log';
2
+ import { AppTrackerConfig } from './log';
3
3
  export declare class AppTracker {
4
4
  private static _service;
5
5
  private static get service();
6
- static init(apiKey: string, config?: AppLoggerConfig): AppTrackerService;
6
+ static init(apiKey: string, config?: AppTrackerConfig): AppTrackerService;
7
+ static getService(): AppTrackerService;
7
8
  }
package/main.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const app_tracker_service_1=require("./app-tracker.service");class AppTracker{static get service(){return this._service||(this._service=new app_tracker_service_1.AppTrackerService),this._service}static init(e,r){return AppTracker.service.init(e,r),this.service}}exports.AppTracker=AppTracker,AppTracker._service=null;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const app_tracker_service_1=require("./app-tracker.service");class AppTracker{static get service(){return this._service||(this._service=new app_tracker_service_1.AppTrackerService),this._service}static init(e,r){return AppTracker.service.init(e,r),AppTracker.service}static getService(){return AppTracker.service}}exports.AppTracker=AppTracker,AppTracker._service=null;
package/os-node.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare class NodeOs {
2
+ constructor();
3
+ os: any;
4
+ }
package/os-node.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class NodeOs {
4
+ constructor() {
5
+ this.os = null;
6
+ this.os = require('os');
7
+ }
8
+ }
9
+ exports.NodeOs = NodeOs;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app-tracker",
3
- "version": "2.0.0",
3
+ "version": "2.0.3",
4
4
  "description": "App Tracker for Web-Applications",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  "lint": "tslint -p tsconfig.json"
12
12
  },
13
13
  "keywords": [],
14
- "author": "Egor Kin",
14
+ "author": "Wigtertainment Ltd",
15
15
  "license": "ISC",
16
16
  "devDependencies": {
17
17
  "@types/node": "^17.0.10",