@minimaltech/node-infra 0.2.32 → 0.2.33

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.
Files changed (40) hide show
  1. package/dist/components/crash-report/common/constants.d.ts +4 -0
  2. package/dist/components/crash-report/common/constants.js +8 -0
  3. package/dist/components/crash-report/common/constants.js.map +1 -0
  4. package/dist/components/crash-report/common/index.d.ts +3 -0
  5. package/dist/components/crash-report/common/index.js +20 -0
  6. package/dist/components/crash-report/common/index.js.map +1 -0
  7. package/dist/components/crash-report/common/keys.d.ts +13 -0
  8. package/dist/components/crash-report/common/keys.js +20 -0
  9. package/dist/components/crash-report/common/keys.js.map +1 -0
  10. package/dist/components/crash-report/common/types.d.ts +29 -0
  11. package/dist/components/crash-report/common/types.js +3 -0
  12. package/dist/components/crash-report/common/types.js.map +1 -0
  13. package/dist/components/crash-report/component.d.ts +13 -0
  14. package/dist/components/crash-report/component.js +103 -0
  15. package/dist/components/crash-report/component.js.map +1 -0
  16. package/dist/components/crash-report/index.d.ts +4 -0
  17. package/dist/components/crash-report/index.js +21 -0
  18. package/dist/components/crash-report/index.js.map +1 -0
  19. package/dist/components/crash-report/providers/index.d.ts +2 -0
  20. package/dist/components/crash-report/providers/index.js +19 -0
  21. package/dist/components/crash-report/providers/index.js.map +1 -0
  22. package/dist/components/crash-report/providers/provider.d.ts +11 -0
  23. package/dist/components/crash-report/providers/provider.js +48 -0
  24. package/dist/components/crash-report/providers/provider.js.map +1 -0
  25. package/dist/components/crash-report/providers/third-parties/base.d.ts +13 -0
  26. package/dist/components/crash-report/providers/third-parties/base.js +16 -0
  27. package/dist/components/crash-report/providers/third-parties/base.js.map +1 -0
  28. package/dist/components/crash-report/providers/third-parties/index.d.ts +1 -0
  29. package/dist/components/crash-report/providers/third-parties/index.js +18 -0
  30. package/dist/components/crash-report/providers/third-parties/index.js.map +1 -0
  31. package/dist/components/crash-report/services/index.d.ts +1 -0
  32. package/dist/components/crash-report/services/index.js +18 -0
  33. package/dist/components/crash-report/services/index.js.map +1 -0
  34. package/dist/components/crash-report/services/mt-crash-report.service.d.ts +8 -0
  35. package/dist/components/crash-report/services/mt-crash-report.service.js +65 -0
  36. package/dist/components/crash-report/services/mt-crash-report.service.js.map +1 -0
  37. package/dist/components/index.d.ts +1 -0
  38. package/dist/components/index.js +1 -0
  39. package/dist/components/index.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ export declare const MTEndpoints: {
2
+ BASE_URL: string;
3
+ EVENTS: string;
4
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MTEndpoints = void 0;
4
+ exports.MTEndpoints = {
5
+ BASE_URL: 'https://mt-crash-report-be.minimaltek.com/v1/api',
6
+ EVENTS: '/events',
7
+ };
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/crash-report/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE,kDAAkD;IAC5D,MAAM,EAAE,SAAS;CAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './keys';
3
+ export * from './types';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants"), exports);
18
+ __exportStar(require("./keys"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/crash-report/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,yCAAuB;AACvB,0CAAwB"}
@@ -0,0 +1,13 @@
1
+ import { TCrashReportProviders } from './types';
2
+ export declare class CrashReportKeys {
3
+ static readonly REPORT_PROVIDERS = "@app/crash-report/report-providers";
4
+ static readonly THIRD_PARTY_PROVIDER = "@app/crash-report/third-party-provider";
5
+ }
6
+ export declare class CrashReportProviderKeys {
7
+ static readonly MT_PROVIDER: TCrashReportProviders;
8
+ static readonly SENTRY_PROVIDER: TCrashReportProviders;
9
+ static readonly TYPE_SET: Set<TCrashReportProviders>;
10
+ static isValid(opts: {
11
+ identifier: string;
12
+ }): boolean;
13
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CrashReportProviderKeys = exports.CrashReportKeys = void 0;
5
+ class CrashReportKeys {
6
+ }
7
+ exports.CrashReportKeys = CrashReportKeys;
8
+ CrashReportKeys.REPORT_PROVIDERS = '@app/crash-report/report-providers';
9
+ CrashReportKeys.THIRD_PARTY_PROVIDER = '@app/crash-report/third-party-provider';
10
+ class CrashReportProviderKeys {
11
+ static isValid(opts) {
12
+ return this.TYPE_SET.has(opts.identifier);
13
+ }
14
+ }
15
+ exports.CrashReportProviderKeys = CrashReportProviderKeys;
16
+ _a = CrashReportProviderKeys;
17
+ CrashReportProviderKeys.MT_PROVIDER = '@app/crash-report/mt-provider';
18
+ CrashReportProviderKeys.SENTRY_PROVIDER = '@app/crash-report/sentry-provider';
19
+ CrashReportProviderKeys.TYPE_SET = new Set([_a.MT_PROVIDER, _a.SENTRY_PROVIDER]);
20
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/components/crash-report/common/keys.ts"],"names":[],"mappings":";;;;AAEA,MAAa,eAAe;;AAA5B,0CAIC;AAHiB,gCAAgB,GAAG,oCAAoC,CAAC;AAExD,oCAAoB,GAAG,wCAAwC,CAAC;AAGlF,MAAa,uBAAuB;IAMlC,MAAM,CAAC,OAAO,CAAC,IAA4B;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAmC,CAAC,CAAC;IACrE,CAAC;;AARH,0DASC;;AARiB,mCAAW,GAA0B,+BAA+B,AAAzD,CAA0D;AACrE,uCAAe,GAA0B,mCAAmC,AAA7D,CAA8D;AAE7E,gCAAQ,GAAG,IAAI,GAAG,CAAwB,CAAC,EAAI,CAAC,WAAW,EAAE,EAAI,CAAC,eAAe,CAAC,CAAC,AAA3E,CAA4E"}
@@ -0,0 +1,29 @@
1
+ import { AnyObject, IdType, ValueOrPromise } from '../../../common';
2
+ export interface ICreateEventRequest {
3
+ appVersion?: string;
4
+ appType?: string;
5
+ eventType?: string;
6
+ device?: Record<string | symbol, string | number>;
7
+ sdk?: {
8
+ platform?: string;
9
+ version?: string;
10
+ };
11
+ actions?: Array<AnyObject>;
12
+ trace?: Record<string | symbol, string | number>;
13
+ [extra: string | symbol]: any;
14
+ }
15
+ export type TCrashReportProviders = '@app/crash-report/mt-provider' | '@app/crash-report/sentry-provider';
16
+ export interface ICrashReportOptions {
17
+ projectId?: IdType;
18
+ eventName: string;
19
+ publicKey?: string;
20
+ environment?: string;
21
+ generateBodyFn?: () => AnyObject;
22
+ }
23
+ export interface ISendReport {
24
+ options: ICrashReportOptions;
25
+ error: Error;
26
+ }
27
+ export interface ICrashReportProvider {
28
+ sendReport: (opts: ISendReport) => ValueOrPromise<void>;
29
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/crash-report/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { Getter, LifeCycleObserver } from '@loopback/core';
2
+ import { BaseApplication } from '../../base';
3
+ import { BaseComponent } from '../../base/base.component';
4
+ import { TGetCrashReportProviderFn } from './providers';
5
+ export declare class CrashReportComponent extends BaseComponent implements LifeCycleObserver {
6
+ protected application: BaseApplication;
7
+ protected crashReportProviderGetter: Getter<TGetCrashReportProviderFn>;
8
+ constructor(application: BaseApplication, crashReportProviderGetter: Getter<TGetCrashReportProviderFn>);
9
+ defineProviders(): void;
10
+ defineServices(): void;
11
+ binding(): Promise<void>;
12
+ start(): void;
13
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var CrashReportComponent_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.CrashReportComponent = void 0;
26
+ const core_1 = require("@loopback/core");
27
+ const base_1 = require("../../base");
28
+ const base_component_1 = require("../../base/base.component");
29
+ const utilities_1 = require("../../utilities");
30
+ const common_1 = require("./common");
31
+ const providers_1 = require("./providers");
32
+ const services_1 = require("./services");
33
+ let CrashReportComponent = CrashReportComponent_1 = class CrashReportComponent extends base_component_1.BaseComponent {
34
+ constructor(application, crashReportProviderGetter) {
35
+ super({ scope: CrashReportComponent_1.name });
36
+ this.application = application;
37
+ this.crashReportProviderGetter = crashReportProviderGetter;
38
+ }
39
+ defineProviders() {
40
+ this.application.bind(common_1.CrashReportKeys.THIRD_PARTY_PROVIDER).toProvider(providers_1.CrashReportProvider);
41
+ }
42
+ defineServices() {
43
+ this.application.service(services_1.MTCrashReportService);
44
+ }
45
+ binding() {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ var _a;
48
+ if (!this.application.isBound(common_1.CrashReportKeys.REPORT_PROVIDERS)) {
49
+ throw (0, utilities_1.getError)({
50
+ message: '[binding] Invalid crash report provider | REPORT_PROVIDER is not bounded to application context',
51
+ });
52
+ }
53
+ const reportProviders = (_a = this.application.getSync(common_1.CrashReportKeys.REPORT_PROVIDERS)) !== null && _a !== void 0 ? _a : [];
54
+ const providerServices = [];
55
+ for (const reportProvider of reportProviders) {
56
+ const { identifier, options } = reportProvider;
57
+ if (!common_1.CrashReportProviderKeys.isValid({ identifier })) {
58
+ this.logger.error('[binding] Invalid provider identifier: %s | Valid: %j', identifier, [
59
+ ...common_1.CrashReportProviderKeys.TYPE_SET,
60
+ ]);
61
+ continue;
62
+ }
63
+ const service = (yield this.crashReportProviderGetter())({ identifier });
64
+ if (!service) {
65
+ this.logger.error('[binding] Identifier: %s | Failed to create report service', identifier);
66
+ continue;
67
+ }
68
+ providerServices.push({ service, options });
69
+ }
70
+ if (!providerServices.length) {
71
+ this.logger.error('[binding] No providerServices to init report!');
72
+ return;
73
+ }
74
+ process.on('uncaughtException', error => {
75
+ Promise.all(providerServices.map(({ service, options }) => {
76
+ return service.sendReport({ options, error });
77
+ }));
78
+ });
79
+ });
80
+ }
81
+ start() {
82
+ if (!this.application) {
83
+ throw (0, utilities_1.getError)({
84
+ statusCode: 500,
85
+ message: '[start] Invalid application to bind CrashReportComponent',
86
+ });
87
+ }
88
+ this.logger.info('[start] Binding crash report component for application...');
89
+ // Binding providers
90
+ this.defineProviders();
91
+ // Binding services
92
+ this.defineServices();
93
+ // Binding options
94
+ this.binding();
95
+ }
96
+ };
97
+ exports.CrashReportComponent = CrashReportComponent;
98
+ exports.CrashReportComponent = CrashReportComponent = CrashReportComponent_1 = __decorate([
99
+ __param(0, (0, core_1.inject)(core_1.CoreBindings.APPLICATION_INSTANCE)),
100
+ __param(1, core_1.inject.getter(common_1.CrashReportKeys.THIRD_PARTY_PROVIDER)),
101
+ __metadata("design:paramtypes", [base_1.BaseApplication, Function])
102
+ ], CrashReportComponent);
103
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/crash-report/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './common';
2
+ export * from './component';
3
+ export * from './providers';
4
+ export * from './services';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./common"), exports);
18
+ __exportStar(require("./component"), exports);
19
+ __exportStar(require("./providers"), exports);
20
+ __exportStar(require("./services"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/crash-report/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,8CAA4B;AAC5B,6CAA2B"}
@@ -0,0 +1,2 @@
1
+ export * from './third-parties';
2
+ export * from './provider';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./third-parties"), exports);
18
+ __exportStar(require("./provider"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/crash-report/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,6CAA2B"}
@@ -0,0 +1,11 @@
1
+ import { Provider, ValueOrPromise } from '@loopback/core';
2
+ import { ICrashReportProvider, TCrashReportProviders } from '../common';
3
+ import { BaseApplication } from '../../../base';
4
+ export type TGetCrashReportProviderFn = (opts: {
5
+ identifier: TCrashReportProviders;
6
+ }) => ICrashReportProvider | null;
7
+ export declare class CrashReportProvider implements Provider<TGetCrashReportProviderFn> {
8
+ private application;
9
+ constructor(application: BaseApplication);
10
+ value(): ValueOrPromise<TGetCrashReportProviderFn>;
11
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CrashReportProvider = void 0;
16
+ const core_1 = require("@loopback/core");
17
+ const common_1 = require("../common");
18
+ const base_1 = require("../../../base");
19
+ const utilities_1 = require("../../../utilities");
20
+ let CrashReportProvider = class CrashReportProvider {
21
+ constructor(application) {
22
+ this.application = application;
23
+ }
24
+ value() {
25
+ return (opts) => {
26
+ switch (opts.identifier) {
27
+ case common_1.CrashReportProviderKeys.MT_PROVIDER: {
28
+ const service = this.application.getSync('services.MTCrashReportService');
29
+ return service;
30
+ }
31
+ case common_1.CrashReportProviderKeys.SENTRY_PROVIDER: {
32
+ throw (0, utilities_1.getError)({ message: '[CrashReportProvider] SENTRY Provider is not supported' });
33
+ }
34
+ default: {
35
+ throw (0, utilities_1.getError)({
36
+ message: `[CrashReportProvider] Invaid third party identifier | identifier: ${opts.identifier}`,
37
+ });
38
+ }
39
+ }
40
+ };
41
+ }
42
+ };
43
+ exports.CrashReportProvider = CrashReportProvider;
44
+ exports.CrashReportProvider = CrashReportProvider = __decorate([
45
+ __param(0, (0, core_1.inject)(core_1.CoreBindings.APPLICATION_INSTANCE)),
46
+ __metadata("design:paramtypes", [base_1.BaseApplication])
47
+ ], CrashReportProvider);
48
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/components/crash-report/providers/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAgF;AAChF,sCAAiG;AACjG,iCAAyC;AAEzC,2CAAuC;AAIvC,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAA+D,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAE/F,KAAK;QACH,OAAO,CAAC,IAA2C,EAAE,EAAE;YACrD,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,KAAK,gCAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;oBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAuB,+BAA+B,CAAC,CAAC;oBAChG,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,KAAK,gCAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC7C,MAAM,IAAA,oBAAQ,EAAC,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,IAAA,oBAAQ,EAAC;wBACb,OAAO,EAAE,qEAAqE,IAAI,CAAC,UAAU,EAAE;qBAChG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,kDAAmB;8BAAnB,mBAAmB;IACjB,WAAA,IAAA,aAAM,EAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;qCAAsB,sBAAe;GADhF,mBAAmB,CAqB/B"}
@@ -0,0 +1,13 @@
1
+ import { ApplicationLogger } from '../../../../helpers';
2
+ import { ICrashReportProvider, ISendReport } from '../../common';
3
+ import { ValueOrPromise } from '../../../../common';
4
+ export declare abstract class AbstractCrashReportProvider implements ICrashReportProvider {
5
+ abstract sendReport(opts: ISendReport): ValueOrPromise<void>;
6
+ }
7
+ export declare abstract class BaseCrashReportProvider extends AbstractCrashReportProvider {
8
+ protected logger: ApplicationLogger;
9
+ constructor(opts?: {
10
+ scope?: string;
11
+ });
12
+ abstract sendReport(opts: ISendReport): ValueOrPromise<void>;
13
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCrashReportProvider = exports.AbstractCrashReportProvider = void 0;
4
+ const helpers_1 = require("../../../../helpers");
5
+ class AbstractCrashReportProvider {
6
+ }
7
+ exports.AbstractCrashReportProvider = AbstractCrashReportProvider;
8
+ class BaseCrashReportProvider extends AbstractCrashReportProvider {
9
+ constructor(opts) {
10
+ var _a;
11
+ super();
12
+ this.logger = helpers_1.LoggerFactory.getLogger([(_a = opts === null || opts === void 0 ? void 0 : opts.scope) !== null && _a !== void 0 ? _a : BaseCrashReportProvider.name]);
13
+ }
14
+ }
15
+ exports.BaseCrashReportProvider = BaseCrashReportProvider;
16
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/components/crash-report/providers/third-parties/base.ts"],"names":[],"mappings":";;;AAAA,uCAA6D;AAI7D,MAAsB,2BAA2B;CAEhD;AAFD,kEAEC;AAED,MAAsB,uBAAwB,SAAQ,2BAA2B;IAG/E,YAAY,IAAyB;;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,SAAS,CAAC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;CAGF;AATD,0DASC"}
@@ -0,0 +1 @@
1
+ export * from './base';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./base"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/crash-report/providers/third-parties/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
@@ -0,0 +1 @@
1
+ export * from './mt-crash-report.service';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./mt-crash-report.service"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/crash-report/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
@@ -0,0 +1,8 @@
1
+ import { BaseCrashReportProvider } from '../providers';
2
+ import { ISendReport } from '../common';
3
+ export declare class MTCrashReportService extends BaseCrashReportProvider {
4
+ private crashReportNetworkRequest;
5
+ private rsa;
6
+ constructor();
7
+ sendReport(opts: ISendReport): void;
8
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MTCrashReportService = void 0;
7
+ const helpers_1 = require("../../../helpers");
8
+ const providers_1 = require("../providers");
9
+ const common_1 = require("../common");
10
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
11
+ class CrashReportNetworkRequest extends helpers_1.BaseNetworkRequest {
12
+ }
13
+ class MTCrashReportService extends providers_1.BaseCrashReportProvider {
14
+ constructor() {
15
+ super({ scope: MTCrashReportService.name });
16
+ this.rsa = helpers_1.RSA.withAlgorithm();
17
+ this.crashReportNetworkRequest = new CrashReportNetworkRequest({
18
+ name: CrashReportNetworkRequest.name,
19
+ scope: MTCrashReportService.name,
20
+ networkOptions: {
21
+ baseURL: common_1.MTEndpoints.BASE_URL,
22
+ },
23
+ });
24
+ }
25
+ sendReport(opts) {
26
+ var _a;
27
+ const { options: { projectId, eventName, publicKey, environment = process.env.NODE_ENV, generateBodyFn }, error, } = opts;
28
+ if (!publicKey || (0, isEmpty_1.default)(publicKey)) {
29
+ this.logger.error('[sendReport] Invalid public key to send crash report!');
30
+ return;
31
+ }
32
+ const body = (_a = generateBodyFn === null || generateBodyFn === void 0 ? void 0 : generateBodyFn()) !== null && _a !== void 0 ? _a : {
33
+ appVersion: process.env.npm_package_version,
34
+ appType: eventName,
35
+ eventType: error.name,
36
+ trace: error,
37
+ projectId,
38
+ environment,
39
+ };
40
+ const stringified = JSON.stringify({ projectId, environment });
41
+ Promise.resolve(this.rsa.encrypt(stringified, publicKey))
42
+ .then(signature => {
43
+ this.crashReportNetworkRequest
44
+ .getNetworkService()
45
+ .send({
46
+ url: this.crashReportNetworkRequest.getRequestUrl({
47
+ paths: [common_1.MTEndpoints.EVENTS],
48
+ }),
49
+ method: 'post',
50
+ body: Object.assign(Object.assign({}, body), { signature }),
51
+ })
52
+ .then(() => {
53
+ this.logger.info('[sendReport] Provider: %s | Successfully sent crash report to endpoint', 'MT_CRASH_REPORT');
54
+ })
55
+ .catch(err => {
56
+ this.logger.error('[sendReport] Provider: %s | Failed to send crash report to endpoint | Error: %s', 'MT_CRASH_REPORT', err);
57
+ });
58
+ })
59
+ .catch(err => {
60
+ this.logger.error('[sendReport] Provider: %s | Failed to encrypt crash report | Error: %s', 'MT_CRASH_REPORT', err);
61
+ });
62
+ }
63
+ }
64
+ exports.MTCrashReportService = MTCrashReportService;
65
+ //# sourceMappingURL=mt-crash-report.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mt-crash-report.service.js","sourceRoot":"","sources":["../../../../src/components/crash-report/services/mt-crash-report.service.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAoD;AACpD,4CAAuD;AACvD,sCAAqD;AACrD,6DAAqC;AAErC,MAAM,yBAA0B,SAAQ,4BAAkB;CAAG;AAE7D,MAAa,oBAAqB,SAAQ,mCAAuB;IAI/D;QACE,KAAK,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;QAHtC,QAAG,GAAG,aAAG,CAAC,aAAa,EAAE,CAAC;QAIhC,IAAI,CAAC,yBAAyB,GAAG,IAAI,yBAAyB,CAAC;YAC7D,IAAI,EAAE,yBAAyB,CAAC,IAAI;YACpC,KAAK,EAAE,oBAAoB,CAAC,IAAI;YAChC,cAAc,EAAE;gBACd,OAAO,EAAE,oBAAW,CAAC,QAAQ;aAC9B;SACF,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAiB;;QAC1B,MAAM,EACJ,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,EAChG,KAAK,GACN,GAAG,IAAI,CAAC;QAET,IAAI,CAAC,SAAS,IAAI,IAAA,iBAAO,EAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,EAAI,mCAAI;YACjC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC3C,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,KAAK,EAAE,KAAK;YACZ,SAAS;YACT,WAAW;SACZ,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAE/D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;aACtD,IAAI,CAAC,SAAS,CAAC,EAAE;YAChB,IAAI,CAAC,yBAAyB;iBAC3B,iBAAiB,EAAE;iBACnB,IAAI,CAAC;gBACJ,GAAG,EAAE,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC;oBAChD,KAAK,EAAE,CAAC,oBAAW,CAAC,MAAM,CAAC;iBAC5B,CAAC;gBACF,MAAM,EAAE,MAAM;gBACd,IAAI,kCAAO,IAAI,KAAE,SAAS,GAAE;aAC7B,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wEAAwE,EACxE,iBAAiB,CAClB,CAAC;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iFAAiF,EACjF,iBAAiB,EACjB,GAAG,CACJ,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wEAAwE,EACxE,iBAAiB,EACjB,GAAG,CACJ,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAtED,oDAsEC"}
@@ -1,5 +1,6 @@
1
1
  export * from './authenticate';
2
2
  export * from './authorize';
3
+ export * from './crash-report';
3
4
  export * from './migration';
4
5
  export * from './socket-io';
5
6
  export * from './static-asset';
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./authenticate"), exports);
18
18
  __exportStar(require("./authorize"), exports);
19
+ __exportStar(require("./crash-report"), exports);
19
20
  __exportStar(require("./migration"), exports);
20
21
  __exportStar(require("./socket-io"), exports);
21
22
  __exportStar(require("./static-asset"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,iDAA+B;AAC/B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,8CAA4B;AAC5B,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,iDAA+B;AAC/B,yCAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minimaltech/node-infra",
3
- "version": "0.2.32",
3
+ "version": "0.2.33",
4
4
  "description": "NodeJS Infrastructure - Loopback 4 Framework",
5
5
  "keywords": [
6
6
  "web",