@leapdev/app-platform 0.0.9 → 0.1.0-beta.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.
- package/package.json +1 -1
- package/src/index.d.ts +10 -1
- package/src/index.js +17 -1
- package/src/index.js.map +1 -1
- package/src/lib/app-platform.d.ts +14 -2
- package/src/lib/app-platform.js +69 -1
- package/src/lib/app-platform.js.map +1 -1
- package/src/lib/models/constants/index.d.ts +2 -10
- package/src/lib/models/constants/index.js +2 -13
- package/src/lib/models/constants/index.js.map +1 -1
- package/src/lib/models/leap.model.d.ts +9 -0
- package/src/lib/models/signalr.model.d.ts +21 -0
- package/src/lib/models/signalr.model.js +3 -0
- package/src/lib/models/signalr.model.js.map +1 -0
- package/src/lib/services/auth/auth.service.d.ts +13 -0
- package/src/lib/services/auth/auth.service.js +185 -0
- package/src/lib/services/auth/auth.service.js.map +1 -0
- package/src/lib/services/signalr/signalr.service.d.ts +9 -0
- package/src/lib/services/signalr/signalr.service.js +93 -0
- package/src/lib/services/signalr/signalr.service.js.map +1 -0
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -2,7 +2,10 @@ export * from './lib/environment';
|
|
|
2
2
|
export * from './lib/models';
|
|
3
3
|
export * from './lib/services';
|
|
4
4
|
import { EvaluatePathsRequest } from './lib/models';
|
|
5
|
-
export declare const initAppPlatform: () => Promise<
|
|
5
|
+
export declare const initAppPlatform: () => Promise<{
|
|
6
|
+
done: boolean;
|
|
7
|
+
openViaLEAP: boolean;
|
|
8
|
+
}>;
|
|
6
9
|
export declare const getDocumentData: () => Promise<import("./lib/models/leap.model").LeapDocumentData | null>;
|
|
7
10
|
export declare const evaluatePaths: (request: EvaluatePathsRequest) => Promise<import("./lib/models").EvaluatePathsResponse[] | null>;
|
|
8
11
|
export declare const createDocument: (params: {
|
|
@@ -14,3 +17,9 @@ export declare const createDocument: (params: {
|
|
|
14
17
|
body: string;
|
|
15
18
|
closeExisting?: boolean | undefined;
|
|
16
19
|
} | null>;
|
|
20
|
+
export declare const getLEAPTokenViaSignalR: (forceRefresh?: boolean) => Promise<string>;
|
|
21
|
+
export declare const getLEAPUserViaSignalR: () => Promise<import("./lib/models/leap.model").LEAPUser | undefined>;
|
|
22
|
+
export declare const getInitDataViaSignalR: () => Promise<Omit<import("./lib/models/signalr.model").SignalRInitData, "code" | "codeChallenge"> | null>;
|
|
23
|
+
export declare const connectSignalR: (params: {
|
|
24
|
+
clientId: string;
|
|
25
|
+
}) => Promise<boolean>;
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDocument = exports.evaluatePaths = exports.getDocumentData = exports.initAppPlatform = void 0;
|
|
3
|
+
exports.connectSignalR = exports.getInitDataViaSignalR = exports.getLEAPUserViaSignalR = exports.getLEAPTokenViaSignalR = exports.createDocument = exports.evaluatePaths = exports.getDocumentData = exports.initAppPlatform = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
tslib_1.__exportStar(require("./lib/environment"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./lib/models"), exports);
|
|
@@ -23,4 +23,20 @@ const createDocument = (params) => {
|
|
|
23
23
|
return appPlatform.createDocument(params);
|
|
24
24
|
};
|
|
25
25
|
exports.createDocument = createDocument;
|
|
26
|
+
const getLEAPTokenViaSignalR = (forceRefresh) => {
|
|
27
|
+
return appPlatform.getLEAPTokenViaSignalR(forceRefresh);
|
|
28
|
+
};
|
|
29
|
+
exports.getLEAPTokenViaSignalR = getLEAPTokenViaSignalR;
|
|
30
|
+
const getLEAPUserViaSignalR = () => {
|
|
31
|
+
return appPlatform.getLEAPUserViaSignalR();
|
|
32
|
+
};
|
|
33
|
+
exports.getLEAPUserViaSignalR = getLEAPUserViaSignalR;
|
|
34
|
+
const getInitDataViaSignalR = () => {
|
|
35
|
+
return appPlatform.getInitDataViaSignalR();
|
|
36
|
+
};
|
|
37
|
+
exports.getInitDataViaSignalR = getInitDataViaSignalR;
|
|
38
|
+
const connectSignalR = (params) => {
|
|
39
|
+
return appPlatform.connectToSignalR(params);
|
|
40
|
+
};
|
|
41
|
+
exports.connectSignalR = connectSignalR;
|
|
26
42
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/app-platform/src/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,yDAA+B;AAE/B,qDAAiD;AAGjD,MAAM,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAC;AAE/B,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,WAAW,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/app-platform/src/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,yDAA+B;AAE/B,qDAAiD;AAGjD,MAAM,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAC;AAE/B,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,WAAW,CAAC,eAAe,EAAE,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,aAAa,GAAG,CAAC,OAA6B,EAAE,EAAE;IAC7D,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,cAAc,GAAG,CAAC,MAI9B,EAAE,EAAE;IACH,OAAO,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,sBAAsB,GAAG,CAAC,YAAsB,EAAE,EAAE;IAC/D,OAAO,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,WAAW,CAAC,qBAAqB,EAAE,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,WAAW,CAAC,qBAAqB,EAAE,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,cAAc,GAAG,CAAC,MAA4B,EAAE,EAAE;IAC7D,OAAO,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB"}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import { EvaluatePathsRequest, EvaluatePathsResponse } from './models';
|
|
2
|
-
import { LeapDocumentData } from './models/leap.model';
|
|
2
|
+
import { LeapDocumentData, LEAPUser } from './models/leap.model';
|
|
3
|
+
import { SignalRInitData } from './models/signalr.model';
|
|
3
4
|
export declare class AppPlatform {
|
|
5
|
+
#private;
|
|
4
6
|
private leapEventsService;
|
|
5
7
|
private loggerService;
|
|
6
8
|
private calcWordService;
|
|
7
9
|
private documentService;
|
|
10
|
+
private signalRService;
|
|
8
11
|
private _openViaLEAP;
|
|
9
12
|
constructor();
|
|
10
|
-
init(): Promise<
|
|
13
|
+
init(): Promise<{
|
|
14
|
+
done: boolean;
|
|
15
|
+
openViaLEAP: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
connectToSignalR(params: {
|
|
18
|
+
clientId: string;
|
|
19
|
+
}): Promise<boolean>;
|
|
20
|
+
getLEAPTokenViaSignalR(forceRefresh?: boolean): Promise<string>;
|
|
21
|
+
getLEAPUserViaSignalR(): Promise<LEAPUser | undefined>;
|
|
22
|
+
getInitDataViaSignalR(): Promise<Omit<SignalRInitData, 'code' | 'codeChallenge'> | null>;
|
|
11
23
|
getDocumentData(): Promise<LeapDocumentData | null>;
|
|
12
24
|
evaluatePaths(request: EvaluatePathsRequest): Promise<Array<EvaluatePathsResponse> | null>;
|
|
13
25
|
createDocument(params: {
|
package/src/lib/app-platform.js
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _AppPlatform_authService, _AppPlatform_signalRInitData;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.AppPlatform = void 0;
|
|
4
5
|
const tslib_1 = require("tslib");
|
|
5
6
|
const constants_1 = require("./models/constants");
|
|
6
7
|
const leap_events_model_1 = require("./models/leap-events.model");
|
|
7
8
|
const services_1 = require("./services");
|
|
9
|
+
const auth_service_1 = require("./services/auth/auth.service");
|
|
8
10
|
const promise_helper_function_1 = require("./services/calc-api/promise-helper.function");
|
|
9
11
|
const custom_xml_part_service_1 = require("./services/custom-xml-part.service");
|
|
10
12
|
const leap_events_service_1 = require("./services/leap-events.service");
|
|
13
|
+
const signalr_service_1 = require("./services/signalr/signalr.service");
|
|
11
14
|
class AppPlatform {
|
|
12
15
|
constructor() {
|
|
13
16
|
this._openViaLEAP = false;
|
|
17
|
+
_AppPlatform_authService.set(this, null);
|
|
18
|
+
_AppPlatform_signalRInitData.set(this, null);
|
|
14
19
|
this.loggerService = new services_1.LoggerService(false);
|
|
15
20
|
this.leapEventsService = new leap_events_service_1.LeapEventsService();
|
|
16
21
|
this.calcWordService = new services_1.CalcWordService(this.leapEventsService, this.loggerService);
|
|
17
22
|
this.documentService = new services_1.DocumentService(this.leapEventsService, this.loggerService);
|
|
23
|
+
this.signalRService = new signalr_service_1.SignalRService();
|
|
18
24
|
}
|
|
19
25
|
init() {
|
|
20
26
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -25,18 +31,79 @@ class AppPlatform {
|
|
|
25
31
|
this.loggerService.log(`[INIT] Setup LEAP Events and set token in custom xml part`);
|
|
26
32
|
yield this.setupLeapEvents();
|
|
27
33
|
yield this.setTokenInCustomXml();
|
|
34
|
+
return { done: true, openViaLEAP: true };
|
|
28
35
|
}
|
|
29
36
|
else {
|
|
30
37
|
this.loggerService.log(`[INIT] Document not open via LEAP`);
|
|
31
38
|
this._openViaLEAP = false;
|
|
39
|
+
return { done: true, openViaLEAP: false };
|
|
32
40
|
}
|
|
33
|
-
return true;
|
|
34
41
|
}
|
|
35
42
|
catch (_) {
|
|
43
|
+
return { done: false, openViaLEAP: false };
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
connectToSignalR(params) {
|
|
48
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const { clientId } = params;
|
|
50
|
+
yield this.signalRService.connectToSignalR();
|
|
51
|
+
tslib_1.__classPrivateFieldSet(this, _AppPlatform_signalRInitData, yield this.signalRService.getInitData({ clientId }), "f");
|
|
52
|
+
if (tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f")) {
|
|
53
|
+
const { code, codeChallenge, environment } = tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f");
|
|
54
|
+
tslib_1.__classPrivateFieldSet(this, _AppPlatform_authService, new auth_service_1.AuthService({
|
|
55
|
+
code,
|
|
56
|
+
codeVerifier: codeChallenge,
|
|
57
|
+
clientId,
|
|
58
|
+
env: environment,
|
|
59
|
+
}), "f");
|
|
60
|
+
const done = yield tslib_1.__classPrivateFieldGet(this, _AppPlatform_authService, "f").init();
|
|
61
|
+
return done;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
36
64
|
return false;
|
|
37
65
|
}
|
|
38
66
|
});
|
|
39
67
|
}
|
|
68
|
+
getLEAPTokenViaSignalR(forceRefresh) {
|
|
69
|
+
if (tslib_1.__classPrivateFieldGet(this, _AppPlatform_authService, "f")) {
|
|
70
|
+
return tslib_1.__classPrivateFieldGet(this, _AppPlatform_authService, "f").getRefreshedAccessToken(forceRefresh);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return new Promise((resolve) => resolve(''));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
getLEAPUserViaSignalR() {
|
|
77
|
+
if (tslib_1.__classPrivateFieldGet(this, _AppPlatform_authService, "f")) {
|
|
78
|
+
const user = tslib_1.__classPrivateFieldGet(this, _AppPlatform_authService, "f").getLEAPUser();
|
|
79
|
+
return new Promise((resolve) => resolve(user));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return new Promise((resolve) => resolve(undefined));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
getInitDataViaSignalR() {
|
|
86
|
+
return new Promise((resolve) => {
|
|
87
|
+
if (tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f")) {
|
|
88
|
+
const data = {
|
|
89
|
+
contentModeEnabled: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").contentModeEnabled,
|
|
90
|
+
country: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").country,
|
|
91
|
+
countryCode: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").countryCode,
|
|
92
|
+
hostType: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").hostType,
|
|
93
|
+
hostVersion: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").hostVersion,
|
|
94
|
+
environment: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").environment,
|
|
95
|
+
firmId: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").firmId,
|
|
96
|
+
staffId: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").staffId,
|
|
97
|
+
userId: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").userId,
|
|
98
|
+
userName: tslib_1.__classPrivateFieldGet(this, _AppPlatform_signalRInitData, "f").userName,
|
|
99
|
+
};
|
|
100
|
+
resolve(data);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
resolve(null);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
40
107
|
getDocumentData() {
|
|
41
108
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
42
109
|
try {
|
|
@@ -160,4 +227,5 @@ class AppPlatform {
|
|
|
160
227
|
}
|
|
161
228
|
}
|
|
162
229
|
exports.AppPlatform = AppPlatform;
|
|
230
|
+
_AppPlatform_authService = new WeakMap(), _AppPlatform_signalRInitData = new WeakMap();
|
|
163
231
|
//# sourceMappingURL=app-platform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-platform.js","sourceRoot":"","sources":["../../../../../packages/app-platform/src/lib/app-platform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-platform.js","sourceRoot":"","sources":["../../../../../packages/app-platform/src/lib/app-platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,14 +23,6 @@ export declare const constants: {
|
|
|
23
23
|
LeapFunctionsRootTagName: string;
|
|
24
24
|
LeapAddInNamespace: string;
|
|
25
25
|
LeapAddInRootTagName: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
maxOpened: number;
|
|
29
|
-
positionClass: string;
|
|
30
|
-
};
|
|
31
|
-
ToastrErrorConfig: {
|
|
32
|
-
maxOpened: number;
|
|
33
|
-
positionClass: string;
|
|
34
|
-
closeButton: boolean;
|
|
35
|
-
};
|
|
26
|
+
fourdRedirectUrl: string;
|
|
27
|
+
tokenSecondsBeforeExpire: number;
|
|
36
28
|
};
|
|
@@ -26,18 +26,7 @@ exports.constants = {
|
|
|
26
26
|
LeapFunctionsRootTagName: 'LEAPFunctions',
|
|
27
27
|
LeapAddInNamespace: 'http://LeapAddIn.com',
|
|
28
28
|
LeapAddInRootTagName: 'LeapAddIn',
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
maxOpened: 3,
|
|
32
|
-
positionClass: 'toast-top-full-width',
|
|
33
|
-
},
|
|
34
|
-
ToastrErrorConfig: {
|
|
35
|
-
maxOpened: 3,
|
|
36
|
-
positionClass: 'toast-top-full-width',
|
|
37
|
-
// timeOut: 0,
|
|
38
|
-
// extendedTimeOut: 0,
|
|
39
|
-
// tapToDismiss: true,
|
|
40
|
-
closeButton: true,
|
|
41
|
-
},
|
|
29
|
+
fourdRedirectUrl: 'fourd://authcallback.com',
|
|
30
|
+
tokenSecondsBeforeExpire: 30,
|
|
42
31
|
};
|
|
43
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/app-platform/src/lib/models/constants/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,2BAA2B,EAAE,+BAA+B;IAC5D,yBAAyB,EAAE,oBAAoB;IAC/C,yBAAyB,EAAE,6BAA6B;IACxD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,0BAA0B;IAClD,wBAAwB,EAAE,eAAe;IACzC,yBAAyB,EAAE,6BAA6B;IACxD,2BAA2B,EAAE,kBAAkB;IAC/C,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,aAAa;IACrC,mBAAmB,EAAE,uBAAuB;IAC5C,qBAAqB,EAAE,YAAY;IACnC,mBAAmB,EAAE,+BAA+B;IACpD,qBAAqB,EAAE,YAAY;IACnC,wBAAwB,EAAE,gCAAgC;IAC1D,0BAA0B,EAAE,qBAAqB;IACjD,iBAAiB,EAAE,qBAAqB;IACxC,mBAAmB,EAAE,UAAU;IAC/B,8BAA8B,EAAE,kCAAkC;IAClE,gCAAgC,EAAE,uBAAuB;IACzD,sBAAsB,EAAE,0BAA0B;IAClD,wBAAwB,EAAE,eAAe;IACzC,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,WAAW;IAEjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/app-platform/src/lib/models/constants/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,2BAA2B,EAAE,+BAA+B;IAC5D,yBAAyB,EAAE,oBAAoB;IAC/C,yBAAyB,EAAE,6BAA6B;IACxD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,0BAA0B;IAClD,wBAAwB,EAAE,eAAe;IACzC,yBAAyB,EAAE,6BAA6B;IACxD,2BAA2B,EAAE,kBAAkB;IAC/C,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,aAAa;IACrC,mBAAmB,EAAE,uBAAuB;IAC5C,qBAAqB,EAAE,YAAY;IACnC,mBAAmB,EAAE,+BAA+B;IACpD,qBAAqB,EAAE,YAAY;IACnC,wBAAwB,EAAE,gCAAgC;IAC1D,0BAA0B,EAAE,qBAAqB;IACjD,iBAAiB,EAAE,qBAAqB;IACxC,mBAAmB,EAAE,UAAU;IAC/B,8BAA8B,EAAE,kCAAkC;IAClE,gCAAgC,EAAE,uBAAuB;IACzD,sBAAsB,EAAE,0BAA0B;IAClD,wBAAwB,EAAE,eAAe;IACzC,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,WAAW;IAEjC,gBAAgB,EAAE,0BAA0B;IAC5C,wBAAwB,EAAE,EAAE;CAC7B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type SignalRMessage<T> = {
|
|
2
|
+
action: string;
|
|
3
|
+
payload: T;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
requestId: string;
|
|
6
|
+
source: string;
|
|
7
|
+
};
|
|
8
|
+
export type SignalRInitData = {
|
|
9
|
+
code: string;
|
|
10
|
+
codeChallenge: string;
|
|
11
|
+
contentModeEnabled: boolean;
|
|
12
|
+
country: string;
|
|
13
|
+
countryCode: number;
|
|
14
|
+
hostType: string;
|
|
15
|
+
hostVersion: string;
|
|
16
|
+
environment: string;
|
|
17
|
+
firmId: string;
|
|
18
|
+
staffId: string;
|
|
19
|
+
userId: string;
|
|
20
|
+
userName: string;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signalr.model.js","sourceRoot":"","sources":["../../../../../../packages/app-platform/src/lib/models/signalr.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LEAPUser } from '../../models/leap.model';
|
|
2
|
+
export declare class AuthService {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(data: {
|
|
5
|
+
code: string;
|
|
6
|
+
codeVerifier: any;
|
|
7
|
+
clientId: string;
|
|
8
|
+
env: string;
|
|
9
|
+
});
|
|
10
|
+
init(): Promise<boolean>;
|
|
11
|
+
getRefreshedAccessToken(force?: boolean): Promise<string>;
|
|
12
|
+
getLEAPUser(): LEAPUser | undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _AuthService_instances, _AuthService_code, _AuthService_codeVerifier, _AuthService_clientId, _AuthService_env, _AuthService_authHost, _AuthService_user, _AuthService_accessToken, _AuthService_refreshToken, _AuthService_exchangeAuthCodeForAccessToken, _AuthService_getUserInfo, _AuthService_exchangeRefreshTokenForAccessToken, _AuthService_xhr, _AuthService_decodeAccessToken;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AuthService = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const constants_1 = require("../../models/constants");
|
|
7
|
+
class AuthService {
|
|
8
|
+
constructor(data) {
|
|
9
|
+
_AuthService_instances.add(this);
|
|
10
|
+
_AuthService_code.set(this, void 0);
|
|
11
|
+
_AuthService_codeVerifier.set(this, void 0);
|
|
12
|
+
_AuthService_clientId.set(this, void 0);
|
|
13
|
+
_AuthService_env.set(this, void 0);
|
|
14
|
+
_AuthService_authHost.set(this, void 0);
|
|
15
|
+
_AuthService_user.set(this, void 0);
|
|
16
|
+
_AuthService_accessToken.set(this, void 0);
|
|
17
|
+
_AuthService_refreshToken.set(this, void 0);
|
|
18
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_code, data.code, "f");
|
|
19
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_codeVerifier, data.codeVerifier, "f");
|
|
20
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_clientId, data.clientId, "f");
|
|
21
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_env, data.env.toLowerCase(), "f");
|
|
22
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_authHost, tslib_1.__classPrivateFieldGet(this, _AuthService_env, "f") === 'live'
|
|
23
|
+
? 'https://auth.leap.services'
|
|
24
|
+
: 'https://auth-test.leap.services', "f");
|
|
25
|
+
}
|
|
26
|
+
init() {
|
|
27
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
try {
|
|
29
|
+
const data = yield tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_exchangeAuthCodeForAccessToken).call(this);
|
|
30
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_accessToken, data.access_token, "f");
|
|
31
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_refreshToken, data.refresh_token, "f");
|
|
32
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_user, yield tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_getUserInfo).call(this), "f");
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
console.log('[AuthService] unable to init');
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
getRefreshedAccessToken(force) {
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
if (tslib_1.__classPrivateFieldGet(this, _AuthService_accessToken, "f") === undefined || !tslib_1.__classPrivateFieldGet(this, _AuthService_accessToken, "f")) {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const decoded = tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_decodeAccessToken).call(this, tslib_1.__classPrivateFieldGet(this, _AuthService_accessToken, "f"));
|
|
48
|
+
if (force ||
|
|
49
|
+
(!!decoded &&
|
|
50
|
+
(decoded.exp - constants_1.constants.tokenSecondsBeforeExpire) * 1000 <
|
|
51
|
+
Date.now())) {
|
|
52
|
+
const data = yield tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_exchangeRefreshTokenForAccessToken).call(this);
|
|
53
|
+
if (data) {
|
|
54
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_accessToken, data.access_token, "f");
|
|
55
|
+
tslib_1.__classPrivateFieldSet(this, _AuthService_refreshToken, data.refresh_token, "f");
|
|
56
|
+
}
|
|
57
|
+
return tslib_1.__classPrivateFieldGet(this, _AuthService_accessToken, "f");
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return tslib_1.__classPrivateFieldGet(this, _AuthService_accessToken, "f");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
getLEAPUser() {
|
|
66
|
+
return tslib_1.__classPrivateFieldGet(this, _AuthService_user, "f");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.AuthService = AuthService;
|
|
70
|
+
_AuthService_code = new WeakMap(), _AuthService_codeVerifier = new WeakMap(), _AuthService_clientId = new WeakMap(), _AuthService_env = new WeakMap(), _AuthService_authHost = new WeakMap(), _AuthService_user = new WeakMap(), _AuthService_accessToken = new WeakMap(), _AuthService_refreshToken = new WeakMap(), _AuthService_instances = new WeakSet(), _AuthService_exchangeAuthCodeForAccessToken = function _AuthService_exchangeAuthCodeForAccessToken() {
|
|
71
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_xhr).call(this, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
endpoint: `${tslib_1.__classPrivateFieldGet(this, _AuthService_authHost, "f")}/oauth/token`,
|
|
76
|
+
options: {
|
|
77
|
+
body: {
|
|
78
|
+
grant_type: 'authorization_code',
|
|
79
|
+
code: tslib_1.__classPrivateFieldGet(this, _AuthService_code, "f"),
|
|
80
|
+
code_verifier: tslib_1.__classPrivateFieldGet(this, _AuthService_codeVerifier, "f"),
|
|
81
|
+
client_id: tslib_1.__classPrivateFieldGet(this, _AuthService_clientId, "f"),
|
|
82
|
+
redirect_uri: constants_1.constants.fourdRedirectUrl,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
accessToken: undefined,
|
|
86
|
+
}, (response, status) => {
|
|
87
|
+
if (status === 200) {
|
|
88
|
+
return resolve(response);
|
|
89
|
+
}
|
|
90
|
+
else
|
|
91
|
+
return reject(response);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}, _AuthService_getUserInfo = function _AuthService_getUserInfo() {
|
|
96
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_xhr).call(this, {
|
|
99
|
+
method: 'GET',
|
|
100
|
+
endpoint: `${tslib_1.__classPrivateFieldGet(this, _AuthService_authHost, "f")}/api/userinfo`,
|
|
101
|
+
options: {},
|
|
102
|
+
accessToken: tslib_1.__classPrivateFieldGet(this, _AuthService_accessToken, "f"),
|
|
103
|
+
}, (response, status) => {
|
|
104
|
+
if (status === 200) {
|
|
105
|
+
return resolve(response);
|
|
106
|
+
}
|
|
107
|
+
else
|
|
108
|
+
return reject(response);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}, _AuthService_exchangeRefreshTokenForAccessToken = function _AuthService_exchangeRefreshTokenForAccessToken() {
|
|
113
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
return new Promise((resolve, reject) => {
|
|
115
|
+
if (!tslib_1.__classPrivateFieldGet(this, _AuthService_refreshToken, "f")) {
|
|
116
|
+
resolve(null);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
tslib_1.__classPrivateFieldGet(this, _AuthService_instances, "m", _AuthService_xhr).call(this, {
|
|
120
|
+
method: 'POST',
|
|
121
|
+
endpoint: `${tslib_1.__classPrivateFieldGet(this, _AuthService_authHost, "f")}/oauth/token`,
|
|
122
|
+
options: {
|
|
123
|
+
body: {
|
|
124
|
+
grant_type: 'refresh_token',
|
|
125
|
+
refresh_token: tslib_1.__classPrivateFieldGet(this, _AuthService_refreshToken, "f"),
|
|
126
|
+
code_verifier: tslib_1.__classPrivateFieldGet(this, _AuthService_codeVerifier, "f"),
|
|
127
|
+
client_id: tslib_1.__classPrivateFieldGet(this, _AuthService_clientId, "f"),
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
accessToken: undefined,
|
|
131
|
+
}, (response, status) => {
|
|
132
|
+
if (status === 200) {
|
|
133
|
+
return resolve(response);
|
|
134
|
+
}
|
|
135
|
+
else
|
|
136
|
+
return reject(response);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}, _AuthService_xhr = function _AuthService_xhr(params, onload) {
|
|
142
|
+
const { method, endpoint, accessToken } = params;
|
|
143
|
+
let { options } = params;
|
|
144
|
+
options = Object.assign({
|
|
145
|
+
contentType: 'application/json',
|
|
146
|
+
accessControlAllowOrigin: '*',
|
|
147
|
+
body: undefined,
|
|
148
|
+
}, options);
|
|
149
|
+
const xhr = new XMLHttpRequest();
|
|
150
|
+
xhr.open(method, endpoint, true);
|
|
151
|
+
xhr.setRequestHeader('Content-type', options.contentType);
|
|
152
|
+
xhr.setRequestHeader('Access-Control-Allow-Origin', options.accessControlAllowOrigin);
|
|
153
|
+
if (accessToken)
|
|
154
|
+
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
|
|
155
|
+
xhr.onload = () => {
|
|
156
|
+
try {
|
|
157
|
+
let resp;
|
|
158
|
+
if (xhr.response)
|
|
159
|
+
resp = JSON.parse(xhr.response);
|
|
160
|
+
onload(resp, xhr.status);
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
onload(xhr.response, xhr.status);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
if (options.body)
|
|
167
|
+
options.body = JSON.stringify(options.body);
|
|
168
|
+
xhr.send(options.body);
|
|
169
|
+
}, _AuthService_decodeAccessToken = function _AuthService_decodeAccessToken(accessToken) {
|
|
170
|
+
if (!accessToken) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
const payload = accessToken.split('.')[1];
|
|
174
|
+
if (payload) {
|
|
175
|
+
try {
|
|
176
|
+
const result = window.atob(payload);
|
|
177
|
+
return JSON.parse(result);
|
|
178
|
+
}
|
|
179
|
+
catch (e) {
|
|
180
|
+
throw Error('Fail to decode access token.');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return undefined;
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=auth.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../../../../../packages/app-platform/src/lib/services/auth/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _SignalRService_instances, _SignalRService_sessionId, _SignalRService_automationHubUrl, _SignalRService_connection, _SignalRService_createConnection;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SignalRService = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
const signalR = tslib_1.__importStar(require("@microsoft/signalr"));
|
|
8
|
+
class SignalRService {
|
|
9
|
+
constructor() {
|
|
10
|
+
_SignalRService_instances.add(this);
|
|
11
|
+
_SignalRService_sessionId.set(this, void 0);
|
|
12
|
+
_SignalRService_automationHubUrl.set(this, void 0);
|
|
13
|
+
_SignalRService_connection.set(this, void 0);
|
|
14
|
+
tslib_1.__classPrivateFieldSet(this, _SignalRService_automationHubUrl, 'http://localhost:7214/automationHub', "f");
|
|
15
|
+
tslib_1.__classPrivateFieldSet(this, _SignalRService_sessionId, (0, uuid_1.v4)(), "f");
|
|
16
|
+
}
|
|
17
|
+
connectToSignalR() {
|
|
18
|
+
if (!tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")) {
|
|
19
|
+
tslib_1.__classPrivateFieldGet(this, _SignalRService_instances, "m", _SignalRService_createConnection).call(this, tslib_1.__classPrivateFieldGet(this, _SignalRService_sessionId, "f"));
|
|
20
|
+
return new Promise((resolve) => {
|
|
21
|
+
if (tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")) {
|
|
22
|
+
tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")
|
|
23
|
+
.start()
|
|
24
|
+
.then(() => {
|
|
25
|
+
resolve(tslib_1.__classPrivateFieldGet(this, _SignalRService_sessionId, "f"));
|
|
26
|
+
})
|
|
27
|
+
.catch((error) => {
|
|
28
|
+
console.log('Unable to connect to signalR', error);
|
|
29
|
+
resolve('');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.log('Unable to connect to signalR: no connection');
|
|
34
|
+
resolve('');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return new Promise((resolve) => resolve(tslib_1.__classPrivateFieldGet(this, _SignalRService_sessionId, "f")));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getInitData(params) {
|
|
43
|
+
if (tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")) {
|
|
44
|
+
const { clientId } = params;
|
|
45
|
+
const requestId = (0, uuid_1.v4)();
|
|
46
|
+
const payload = {
|
|
47
|
+
source: 'automationCore',
|
|
48
|
+
sessionId: tslib_1.__classPrivateFieldGet(this, _SignalRService_sessionId, "f"),
|
|
49
|
+
requestId,
|
|
50
|
+
action: "init_data",
|
|
51
|
+
payload: {
|
|
52
|
+
clientId
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
return new Promise(resolve => {
|
|
56
|
+
if (tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")) {
|
|
57
|
+
tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f").invoke("ProcessMessage", payload, true).then(() => {
|
|
58
|
+
if (tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")) {
|
|
59
|
+
tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f").on("ProcessMessage", (message) => {
|
|
60
|
+
if (message.sessionId === tslib_1.__classPrivateFieldGet(this, _SignalRService_sessionId, "f") && message.requestId === requestId) {
|
|
61
|
+
resolve(message.payload);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}).catch((e) => {
|
|
66
|
+
console.log('SignalR sendMessage error', e);
|
|
67
|
+
return resolve(null);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return new Promise(resolve => resolve(null));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SignalRService = SignalRService;
|
|
78
|
+
_SignalRService_sessionId = new WeakMap(), _SignalRService_automationHubUrl = new WeakMap(), _SignalRService_connection = new WeakMap(), _SignalRService_instances = new WeakSet(), _SignalRService_createConnection = function _SignalRService_createConnection(sessionId) {
|
|
79
|
+
if (tslib_1.__classPrivateFieldGet(this, _SignalRService_connection, "f")) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const url = `${tslib_1.__classPrivateFieldGet(this, _SignalRService_automationHubUrl, "f")}?sessionId=${sessionId}`;
|
|
83
|
+
try {
|
|
84
|
+
tslib_1.__classPrivateFieldSet(this, _SignalRService_connection, new signalR.HubConnectionBuilder()
|
|
85
|
+
.withUrl(url)
|
|
86
|
+
.withAutomaticReconnect()
|
|
87
|
+
.build(), "f");
|
|
88
|
+
}
|
|
89
|
+
catch (_) {
|
|
90
|
+
tslib_1.__classPrivateFieldSet(this, _SignalRService_connection, undefined, "f");
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=signalr.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signalr.service.js","sourceRoot":"","sources":["../../../../../../../packages/app-platform/src/lib/services/signalr/signalr.service.ts"],"names":[],"mappings":"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"}
|