@singularsystems/neo-core 1.0.0-alpha.3 → 1.0.0-beta.0
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/CHANGELOG.md +15 -0
- package/README.md +1 -1
- package/dist/ApiClient/ApiClientBase.d.ts +5 -5
- package/dist/ApiClient/ApiClientBase.js +13 -13
- package/dist/ApiClient/ReadApiClient.d.ts +16 -16
- package/dist/ApiClient/ReadApiClient.js +24 -24
- package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
- package/dist/ApiClient/UpdateableApiClient.js +33 -33
- package/dist/AppServices/AppService.d.ts +46 -46
- package/dist/AppServices/AppService.js +25 -25
- package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
- package/dist/AppServices/Config/ConfigModel.js +28 -17
- package/dist/AppServices/Config/ConfigService.d.ts +15 -15
- package/dist/AppServices/Config/ConfigService.js +49 -53
- package/dist/AppServices/Module.d.ts +11 -11
- package/dist/AppServices/Module.js +13 -13
- package/dist/AppServices/NeoContainer.d.ts +22 -22
- package/dist/AppServices/NeoContainer.js +42 -42
- package/dist/AppServices/NeoModule.d.ts +3 -3
- package/dist/AppServices/NeoModule.js +30 -30
- package/dist/AppServices/NeoTypes.d.ts +61 -61
- package/dist/AppServices/NeoTypes.js +42 -42
- package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
- package/dist/AppServices/ServiceIdentifier.js +38 -39
- package/dist/AppServices/index.d.ts +7 -7
- package/dist/AppServices/index.js +7 -7
- package/dist/Components/AnimationHelper.d.ts +69 -69
- package/dist/Components/AnimationHelper.js +182 -182
- package/dist/Components/BootstrapHelpers.d.ts +8 -8
- package/dist/Components/BootstrapHelpers.js +30 -30
- package/dist/Components/BootstrapTypes.d.ts +35 -35
- package/dist/Components/BootstrapTypes.js +1 -1
- package/dist/Components/ButtonOptions.d.ts +63 -61
- package/dist/Components/ButtonOptions.js +1 -1
- package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
- package/dist/Components/ContextMenu/ContextMenu.js +1 -1
- package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
- package/dist/Components/ContextMenu/MenuUtils.js +34 -34
- package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
- package/dist/Components/DatePicker/DatePicker.js +510 -487
- package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
- package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
- package/dist/Components/ErrorHandler.d.ts +63 -55
- package/dist/Components/ErrorHandler.js +211 -138
- package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
- package/dist/Components/FileManager/BoundFileManager.js +60 -60
- package/dist/Components/FileManager/FileManager.d.ts +80 -78
- package/dist/Components/FileManager/FileManager.js +277 -257
- package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
- package/dist/Components/FileManager/FileUploadBatch.js +83 -82
- package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
- package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
- package/dist/Components/FormOptions.d.ts +34 -34
- package/dist/Components/FormOptions.js +1 -1
- package/dist/Components/ICollapsableOptions.d.ts +11 -11
- package/dist/Components/ICollapsableOptions.js +1 -1
- package/dist/Components/Modal/ModalHelper.d.ts +31 -31
- package/dist/Components/Modal/ModalHelper.js +174 -174
- package/dist/Components/Modal/ModalOptions.d.ts +61 -61
- package/dist/Components/Modal/ModalOptions.js +1 -1
- package/dist/Components/Modal/ModalStore.d.ts +32 -32
- package/dist/Components/Modal/ModalStore.js +82 -82
- package/dist/Components/Modal/ModalUtils.d.ts +61 -61
- package/dist/Components/Modal/ModalUtils.js +109 -109
- package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
- package/dist/Components/Notifications/INotificationHelper.js +1 -1
- package/dist/Components/Notifications/Notification.d.ts +32 -32
- package/dist/Components/Notifications/Notification.js +26 -27
- package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
- package/dist/Components/Notifications/NotificationHelper.js +111 -112
- package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
- package/dist/Components/Notifications/NotificationStore.js +78 -79
- package/dist/Components/PositionHelper.d.ts +10 -10
- package/dist/Components/PositionHelper.js +43 -43
- package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
- package/dist/Components/TaskRunner/Decorators.js +24 -24
- package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
- package/dist/Components/TaskRunner/ProgressState.js +71 -72
- package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
- package/dist/Components/TaskRunner/TaskRunner.js +253 -244
- package/dist/Components/TooltipOptions.d.ts +8 -8
- package/dist/Components/TooltipOptions.js +1 -1
- package/dist/Components/index.d.ts +22 -22
- package/dist/Components/index.js +13 -13
- package/dist/ConnectionManager.d.ts +45 -45
- package/dist/ConnectionManager.js +60 -61
- package/dist/Data/ApiDataSource.d.ts +46 -46
- package/dist/Data/ApiDataSource.js +140 -144
- package/dist/Data/AsyncDataSource.d.ts +35 -35
- package/dist/Data/AsyncDataSource.js +79 -80
- package/dist/Data/CacheService.d.ts +40 -40
- package/dist/Data/CacheService.js +63 -64
- package/dist/Data/DataCacheEntry.d.ts +42 -42
- package/dist/Data/DataCacheEntry.js +80 -80
- package/dist/Data/DataView.d.ts +43 -43
- package/dist/Data/DataView.js +173 -172
- package/dist/Data/Deserialiser.d.ts +42 -42
- package/dist/Data/Deserialiser.js +255 -255
- package/dist/Data/Paging/PageManager.d.ts +167 -167
- package/dist/Data/Paging/PageManager.js +323 -323
- package/dist/Data/Paging/PageRequest.d.ts +24 -24
- package/dist/Data/Paging/PageRequest.js +38 -39
- package/dist/Data/Paging/PageResult.d.ts +10 -10
- package/dist/Data/Paging/PageResult.js +14 -14
- package/dist/Data/Serialiser.d.ts +41 -41
- package/dist/Data/Serialiser.js +201 -201
- package/dist/Data/SortOperation.d.ts +8 -8
- package/dist/Data/SortOperation.js +26 -26
- package/dist/Data/StaticDataSource.d.ts +9 -9
- package/dist/Data/StaticDataSource.js +27 -27
- package/dist/Data/WindowedDataView.d.ts +8 -8
- package/dist/Data/WindowedDataView.js +49 -50
- package/dist/Data/index.d.ts +15 -15
- package/dist/Data/index.js +15 -15
- package/dist/Dates/DateUtils.d.ts +47 -47
- package/dist/Dates/DateUtils.js +226 -226
- package/dist/Dates/TimeSpan.d.ts +24 -24
- package/dist/Dates/TimeSpan.js +46 -46
- package/dist/DebounceHelper.d.ts +44 -38
- package/dist/DebounceHelper.js +122 -95
- package/dist/Extensions.d.ts +82 -82
- package/dist/Extensions.js +182 -182
- package/dist/FileUtils.d.ts +6 -6
- package/dist/FileUtils.js +37 -37
- package/dist/Globals.d.ts +19 -19
- package/dist/Globals.js +41 -41
- package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
- package/dist/JsonSchema/ClassMetadata.js +53 -53
- package/dist/JsonSchema/JsonData.d.ts +16 -16
- package/dist/JsonSchema/JsonData.js +97 -97
- package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
- package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
- package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
- package/dist/JsonSchema/PropertyMetadata.js +8 -8
- package/dist/JsonSchema/TypeCache.d.ts +16 -16
- package/dist/JsonSchema/TypeCache.js +44 -44
- package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
- package/dist/JsonSchema/TypeMetadata.js +170 -170
- package/dist/JsonSchema/index.d.ts +7 -7
- package/dist/JsonSchema/index.js +6 -6
- package/dist/Localisation/ILocalisationService.d.ts +11 -11
- package/dist/Localisation/ILocalisationService.js +1 -1
- package/dist/Localisation/LocalisationService.d.ts +4 -4
- package/dist/Localisation/LocalisationService.js +17 -17
- package/dist/Localisation/index.d.ts +1 -1
- package/dist/Localisation/index.js +1 -1
- package/dist/Misc.d.ts +6 -6
- package/dist/Misc.js +6 -6
- package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
- package/dist/Model/BaseModels/AuditValues.js +46 -48
- package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
- package/dist/Model/BaseModels/CriteriaBase.js +45 -34
- package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
- package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
- package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
- package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
- package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
- package/dist/Model/BaseModels/UserEvent.js +36 -32
- package/dist/Model/BindableBase.d.ts +46 -40
- package/dist/Model/BindableBase.js +82 -76
- package/dist/Model/Decorators.d.ts +50 -44
- package/dist/Model/Decorators.js +189 -177
- package/dist/Model/EnumHelper.d.ts +54 -54
- package/dist/Model/EnumHelper.js +104 -100
- package/dist/Model/IAutoRunner.d.ts +5 -5
- package/dist/Model/IAutoRunner.js +1 -1
- package/dist/Model/IModelBase.d.ts +101 -79
- package/dist/Model/IModelBase.js +1 -1
- package/dist/Model/IModelCreatorBase.d.ts +9 -9
- package/dist/Model/IModelCreatorBase.js +1 -1
- package/dist/Model/List.d.ts +79 -77
- package/dist/Model/List.js +208 -198
- package/dist/Model/LookupBase.d.ts +13 -6
- package/dist/Model/LookupBase.js +19 -10
- package/dist/Model/MethodInfo.d.ts +8 -0
- package/dist/Model/MethodInfo.js +7 -0
- package/dist/Model/Misc.d.ts +83 -81
- package/dist/Model/Misc.js +59 -59
- package/dist/Model/ModelBase.d.ts +88 -86
- package/dist/Model/ModelBase.js +189 -180
- package/dist/Model/ModelCreatorBase.d.ts +23 -23
- package/dist/Model/ModelCreatorBase.js +91 -92
- package/dist/Model/ModelFieldInfo.d.ts +29 -12
- package/dist/Model/ModelFieldInfo.js +35 -26
- package/dist/Model/ModelGraphTraverser.d.ts +35 -35
- package/dist/Model/ModelGraphTraverser.js +101 -99
- package/dist/Model/NeoModel.d.ts +6 -6
- package/dist/Model/NeoModel.js +13 -13
- package/dist/Model/NeoTypeInfo.d.ts +55 -41
- package/dist/Model/NeoTypeInfo.js +319 -250
- package/dist/Model/ObservableProperty.d.ts +8 -8
- package/dist/Model/ObservableProperty.js +41 -41
- package/dist/Model/ObservableValue.d.ts +9 -9
- package/dist/Model/ObservableValue.js +25 -26
- package/dist/Model/PropertyInfo.d.ts +83 -81
- package/dist/Model/PropertyInfo.js +137 -137
- package/dist/Model/PropertyInstance.d.ts +84 -48
- package/dist/Model/PropertyInstance.js +173 -113
- package/dist/Model/ValueObject.d.ts +3 -3
- package/dist/Model/ValueObject.js +10 -10
- package/dist/Model/index.d.ts +15 -14
- package/dist/Model/index.js +13 -12
- package/dist/NumberUtils.d.ts +63 -49
- package/dist/NumberUtils.js +247 -197
- package/dist/Routing/IMenuItemProvider.d.ts +9 -9
- package/dist/Routing/IMenuItemProvider.js +1 -1
- package/dist/Routing/IMenuRoute.d.ts +18 -18
- package/dist/Routing/IMenuRoute.js +1 -1
- package/dist/Routing/INavigationHelper.d.ts +7 -7
- package/dist/Routing/INavigationHelper.js +1 -1
- package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
- package/dist/Routing/IPageLeaveHandler.js +7 -7
- package/dist/Routing/IRoute.d.ts +27 -27
- package/dist/Routing/IRoute.js +1 -1
- package/dist/Routing/IRouteSecurityService.d.ts +14 -14
- package/dist/Routing/IRouteSecurityService.js +1 -1
- package/dist/Routing/MenuItemProvider.d.ts +17 -17
- package/dist/Routing/MenuItemProvider.js +53 -54
- package/dist/Routing/RouteSecurityService.d.ts +18 -18
- package/dist/Routing/RouteSecurityService.js +35 -36
- package/dist/Routing/index.d.ts +7 -7
- package/dist/Routing/index.js +3 -3
- package/dist/Security/IAuthenticationService.d.ts +41 -36
- package/dist/Security/IAuthenticationService.js +1 -1
- package/dist/Security/IAuthorisationService.d.ts +11 -11
- package/dist/Security/IAuthorisationService.js +1 -1
- package/dist/Security/ILoginErrorHandler.d.ts +4 -4
- package/dist/Security/ILoginErrorHandler.js +1 -1
- package/dist/Security/ISecurityService.d.ts +10 -10
- package/dist/Security/ISecurityService.js +1 -1
- package/dist/Security/IUser.d.ts +10 -10
- package/dist/Security/IUser.js +1 -1
- package/dist/Security/IUserRole.d.ts +6 -6
- package/dist/Security/IUserRole.js +1 -1
- package/dist/Security/LoginErrorHandler.d.ts +15 -15
- package/dist/Security/LoginErrorHandler.js +97 -98
- package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
- package/dist/Security/Oidc/OidcAuthService.js +216 -189
- package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
- package/dist/Security/Oidc/OidcTypes.js +1 -1
- package/dist/Security/Oidc/OidcUser.d.ts +9 -9
- package/dist/Security/Oidc/OidcUser.js +33 -33
- package/dist/Security/SecurityService.d.ts +12 -12
- package/dist/Security/SecurityService.js +33 -34
- package/dist/Security/SignInResult.d.ts +13 -13
- package/dist/Security/SignInResult.js +8 -8
- package/dist/Security/User.d.ts +12 -12
- package/dist/Security/User.js +24 -24
- package/dist/Security/index.d.ts +10 -10
- package/dist/Security/index.js +5 -5
- package/dist/Settings.d.ts +71 -57
- package/dist/Settings.js +100 -87
- package/dist/SignalR/HubBase.d.ts +70 -70
- package/dist/SignalR/HubBase.js +164 -164
- package/dist/SignalR/HubReceiver.d.ts +11 -11
- package/dist/SignalR/HubReceiver.js +25 -25
- package/dist/SignalR/HubSubscription.d.ts +12 -12
- package/dist/SignalR/HubSubscription.js +14 -14
- package/dist/SignalR/index.d.ts +3 -3
- package/dist/SignalR/index.js +1 -1
- package/dist/StringUtils.d.ts +7 -7
- package/dist/StringUtils.js +24 -24
- package/dist/Utils.d.ts +81 -80
- package/dist/Utils.js +220 -218
- package/dist/Validation/Decorators.d.ts +12 -12
- package/dist/Validation/Decorators.js +52 -52
- package/dist/Validation/DisplayHelper.d.ts +20 -19
- package/dist/Validation/DisplayHelper.js +104 -104
- package/dist/Validation/Misc.d.ts +10 -10
- package/dist/Validation/Misc.js +11 -11
- package/dist/Validation/ModelProxy.d.ts +20 -20
- package/dist/Validation/ModelProxy.js +46 -46
- package/dist/Validation/RuleContext.d.ts +86 -86
- package/dist/Validation/RuleContext.js +130 -130
- package/dist/Validation/Rules.d.ts +70 -70
- package/dist/Validation/Rules.js +177 -177
- package/dist/Validation/ValidationHelpers.d.ts +12 -12
- package/dist/Validation/ValidationHelpers.js +57 -57
- package/dist/Validation/ValidationRules.d.ts +18 -18
- package/dist/Validation/ValidationRules.js +34 -34
- package/dist/Validation/ValidationState.d.ts +42 -42
- package/dist/Validation/ValidationState.js +74 -74
- package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
- package/dist/Validation/Validators/IModelValidator.js +1 -1
- package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
- package/dist/Validation/Validators/IPropertyValidator.js +15 -15
- package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
- package/dist/Validation/Validators/ModelValidator.js +143 -137
- package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
- package/dist/Validation/Validators/PropertyValidator.js +64 -67
- package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
- package/dist/Validation/Validators/RuleValidator.js +51 -55
- package/dist/Validation/index.d.ts +9 -9
- package/dist/Validation/index.js +7 -7
- package/dist/Views/IViewBase.d.ts +5 -5
- package/dist/Views/IViewBase.js +1 -1
- package/dist/index.d.ts +37 -36
- package/dist/index.js +44 -43
- package/package.json +11 -10
|
@@ -1,98 +1,97 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __generator, __metadata, __param } from "tslib";
|
|
2
|
-
import { Utils } from "../Utils";
|
|
3
|
-
import { ModalUtils } from "../Components/Modal/ModalUtils";
|
|
4
|
-
import { inject, injectable } from "inversify";
|
|
5
|
-
import NeoTypes from "../AppServices/NeoTypes";
|
|
6
|
-
var NeoLoginErrorHandler = /** @class */ (function () {
|
|
7
|
-
function NeoLoginErrorHandler(authenticationService, navigationHelper) {
|
|
8
|
-
this.authenticationService = authenticationService;
|
|
9
|
-
this.navigationHelper = navigationHelper;
|
|
10
|
-
}
|
|
11
|
-
NeoLoginErrorHandler.prototype.onMissingLoginState = function () {
|
|
12
|
-
if (this.authenticationService.isAuthenticated) {
|
|
13
|
-
this.onAlreadyLoggedIn();
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
this.onNotLoggedIn();
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
NeoLoginErrorHandler.prototype.onException = function (error) {
|
|
20
|
-
var errorMessage = "";
|
|
21
|
-
if (error instanceof Error) {
|
|
22
|
-
errorMessage = error.message;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
errorMessage = error;
|
|
26
|
-
}
|
|
27
|
-
if (errorMessage.indexOf("exp is in the past") >= 0) {
|
|
28
|
-
this.onIncorrectUserClock();
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.onUnhandledException(errorMessage);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
NeoLoginErrorHandler.prototype.onAlreadyLoggedIn = function () {
|
|
35
|
-
var _this = this;
|
|
36
|
-
var userName = this.authenticationService.user.displayName;
|
|
37
|
-
var displayHtml = Utils.suppressHtmlEncode("<p>You are attempting to login, but are already logged in as ".concat(userName, ".</p><p>Do you want to continue as ").concat(userName, ", or logout?</p>"));
|
|
38
|
-
ModalUtils.showModal("Login", displayHtml, {
|
|
39
|
-
acceptButton: { text: "Continue", icon: "arrow-right", onClick: function () { return _this.redirectToHome(); } },
|
|
40
|
-
closeButton: { text: "Logout", icon: "sign-out-alt", onClick: function () { _this.authenticationService.beginSignOut(); } },
|
|
41
|
-
showCancelButton: false
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
NeoLoginErrorHandler.prototype.onNotLoggedIn = function () {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
-
return __generator(this, function (_a) {
|
|
47
|
-
switch (_a.label) {
|
|
48
|
-
case 0:
|
|
49
|
-
// Old login request
|
|
50
|
-
return [4 /*yield*/, ModalUtils.showMessage("Old login request", "You are using an old login request. Click ok to login again.")];
|
|
51
|
-
case 1:
|
|
52
|
-
// Old login request
|
|
53
|
-
_a.sent();
|
|
54
|
-
// Redirect to home page. This will cause a login redirect if the home page requires authentication.
|
|
55
|
-
this.redirectToHome();
|
|
56
|
-
return [2 /*return*/];
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
NeoLoginErrorHandler.prototype.onIncorrectUserClock = function () {
|
|
62
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
63
|
-
return __generator(this, function (_a) {
|
|
64
|
-
switch (_a.label) {
|
|
65
|
-
case 0: return [4 /*yield*/, ModalUtils.showMessage("Login", "Login request expired. This is most likely due to your device's time being incorrect.")];
|
|
66
|
-
case 1:
|
|
67
|
-
_a.sent();
|
|
68
|
-
this.redirectToHome();
|
|
69
|
-
return [2 /*return*/];
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
NeoLoginErrorHandler.prototype.onUnhandledException = function (errorMessage) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
-
return __generator(this, function (_a) {
|
|
77
|
-
switch (_a.label) {
|
|
78
|
-
case 0: return [4 /*yield*/, ModalUtils.showMessage("Login", "An error occurred: " + errorMessage)];
|
|
79
|
-
case 1:
|
|
80
|
-
_a.sent();
|
|
81
|
-
this.redirectToHome();
|
|
82
|
-
return [2 /*return*/];
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
NeoLoginErrorHandler.prototype.redirectToHome = function () {
|
|
88
|
-
this.navigationHelper.navigateInternal("/");
|
|
89
|
-
};
|
|
90
|
-
NeoLoginErrorHandler = __decorate([
|
|
91
|
-
injectable(),
|
|
92
|
-
__param(0, inject(NeoTypes.Security.AuthenticationService.symbol)),
|
|
93
|
-
__param(1, inject(NeoTypes.Routing.NavigationHelper.symbol)),
|
|
94
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
95
|
-
], NeoLoginErrorHandler);
|
|
96
|
-
return NeoLoginErrorHandler;
|
|
97
|
-
}());
|
|
98
|
-
export { NeoLoginErrorHandler };
|
|
1
|
+
import { __awaiter, __decorate, __generator, __metadata, __param } from "tslib";
|
|
2
|
+
import { Utils } from "../Utils";
|
|
3
|
+
import { ModalUtils } from "../Components/Modal/ModalUtils";
|
|
4
|
+
import { inject, injectable } from "inversify";
|
|
5
|
+
import NeoTypes from "../AppServices/NeoTypes";
|
|
6
|
+
export var NeoLoginErrorHandler = /** @class */ (function () {
|
|
7
|
+
function NeoLoginErrorHandler(authenticationService, navigationHelper) {
|
|
8
|
+
this.authenticationService = authenticationService;
|
|
9
|
+
this.navigationHelper = navigationHelper;
|
|
10
|
+
}
|
|
11
|
+
NeoLoginErrorHandler.prototype.onMissingLoginState = function () {
|
|
12
|
+
if (this.authenticationService.isAuthenticated) {
|
|
13
|
+
this.onAlreadyLoggedIn();
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
this.onNotLoggedIn();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
NeoLoginErrorHandler.prototype.onException = function (error) {
|
|
20
|
+
var errorMessage = "";
|
|
21
|
+
if (error instanceof Error) {
|
|
22
|
+
errorMessage = error.message;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
errorMessage = error;
|
|
26
|
+
}
|
|
27
|
+
if (errorMessage.indexOf("exp is in the past") >= 0) {
|
|
28
|
+
this.onIncorrectUserClock();
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.onUnhandledException(errorMessage);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
NeoLoginErrorHandler.prototype.onAlreadyLoggedIn = function () {
|
|
35
|
+
var _this = this;
|
|
36
|
+
var userName = this.authenticationService.user.displayName;
|
|
37
|
+
var displayHtml = Utils.suppressHtmlEncode("<p>You are attempting to login, but are already logged in as ".concat(userName, ".</p><p>Do you want to continue as ").concat(userName, ", or logout?</p>"));
|
|
38
|
+
ModalUtils.showModal("Login", displayHtml, {
|
|
39
|
+
acceptButton: { text: "Continue", icon: "arrow-right", onClick: function () { return _this.redirectToHome(); } },
|
|
40
|
+
closeButton: { text: "Logout", icon: "sign-out-alt", onClick: function () { _this.authenticationService.beginSignOut(); } },
|
|
41
|
+
showCancelButton: false
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
NeoLoginErrorHandler.prototype.onNotLoggedIn = function () {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
// Old login request
|
|
50
|
+
return [4 /*yield*/, ModalUtils.showMessage("Old login request", "You are using an old login request. Click ok to login again.")];
|
|
51
|
+
case 1:
|
|
52
|
+
// Old login request
|
|
53
|
+
_a.sent();
|
|
54
|
+
// Redirect to home page. This will cause a login redirect if the home page requires authentication.
|
|
55
|
+
this.redirectToHome();
|
|
56
|
+
return [2 /*return*/];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
NeoLoginErrorHandler.prototype.onIncorrectUserClock = function () {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
63
|
+
return __generator(this, function (_a) {
|
|
64
|
+
switch (_a.label) {
|
|
65
|
+
case 0: return [4 /*yield*/, ModalUtils.showMessage("Login", "Login request expired. This is most likely due to your device's time being incorrect.")];
|
|
66
|
+
case 1:
|
|
67
|
+
_a.sent();
|
|
68
|
+
this.redirectToHome();
|
|
69
|
+
return [2 /*return*/];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
NeoLoginErrorHandler.prototype.onUnhandledException = function (errorMessage) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
+
return __generator(this, function (_a) {
|
|
77
|
+
switch (_a.label) {
|
|
78
|
+
case 0: return [4 /*yield*/, ModalUtils.showMessage("Login", "An error occurred: " + errorMessage)];
|
|
79
|
+
case 1:
|
|
80
|
+
_a.sent();
|
|
81
|
+
this.redirectToHome();
|
|
82
|
+
return [2 /*return*/];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
NeoLoginErrorHandler.prototype.redirectToHome = function () {
|
|
88
|
+
this.navigationHelper.navigateInternal("/");
|
|
89
|
+
};
|
|
90
|
+
NeoLoginErrorHandler = __decorate([
|
|
91
|
+
injectable(),
|
|
92
|
+
__param(0, inject(NeoTypes.Security.AuthenticationService.symbol)),
|
|
93
|
+
__param(1, inject(NeoTypes.Routing.NavigationHelper.symbol)),
|
|
94
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
95
|
+
], NeoLoginErrorHandler);
|
|
96
|
+
return NeoLoginErrorHandler;
|
|
97
|
+
}());
|
|
@@ -1,60 +1,67 @@
|
|
|
1
|
-
import { IOidcUser, IUserManager } from './OidcTypes';
|
|
2
|
-
import OidcUser from './OidcUser';
|
|
3
|
-
import IAuthenticationService from '../IAuthenticationService';
|
|
4
|
-
import { AxiosInstance } from 'axios';
|
|
5
|
-
import { SignInResult } from '../SignInResult';
|
|
6
|
-
/**
|
|
7
|
-
* Oidc authentication service base class.
|
|
8
|
-
* You must override this class and provide the user manager implementation from the oidc library.
|
|
9
|
-
*/
|
|
10
|
-
export default abstract class OidcAuthService<TUser extends OidcUser = OidcUser> implements IAuthenticationService {
|
|
11
|
-
protected userManager: IUserManager;
|
|
12
|
-
private axios;
|
|
13
|
-
private _user;
|
|
14
|
-
private afterUserLoadedPromise;
|
|
15
|
-
/**
|
|
16
|
-
* Creates an Oidc auth service
|
|
17
|
-
* @param userManager Oidc-client user manager instance
|
|
18
|
-
* @param user User which existed in storage at startup
|
|
19
|
-
*/
|
|
20
|
-
constructor(userManager: IUserManager, axios: AxiosInstance);
|
|
21
|
-
loadUserFromToken(): Promise<TUser | null>;
|
|
22
|
-
loadUserFromSession(): Promise<TUser | null>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
*
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
protected
|
|
41
|
-
|
|
42
|
-
private
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
get
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
1
|
+
import { IOidcUser, IUserManager } from './OidcTypes';
|
|
2
|
+
import OidcUser from './OidcUser';
|
|
3
|
+
import IAuthenticationService from '../IAuthenticationService';
|
|
4
|
+
import { AxiosInstance } from 'axios';
|
|
5
|
+
import { SignInResult } from '../SignInResult';
|
|
6
|
+
/**
|
|
7
|
+
* Oidc authentication service base class.
|
|
8
|
+
* You must override this class and provide the user manager implementation from the oidc library.
|
|
9
|
+
*/
|
|
10
|
+
export default abstract class OidcAuthService<TUser extends OidcUser = OidcUser> implements IAuthenticationService {
|
|
11
|
+
protected userManager: IUserManager;
|
|
12
|
+
private axios;
|
|
13
|
+
private _user;
|
|
14
|
+
private afterUserLoadedPromise;
|
|
15
|
+
/**
|
|
16
|
+
* Creates an Oidc auth service
|
|
17
|
+
* @param userManager Oidc-client user manager instance
|
|
18
|
+
* @param user User which existed in storage at startup
|
|
19
|
+
*/
|
|
20
|
+
constructor(userManager: IUserManager, axios: AxiosInstance);
|
|
21
|
+
loadUserFromToken(): Promise<TUser | null>;
|
|
22
|
+
loadUserFromSession(): Promise<TUser | null>;
|
|
23
|
+
ensureSignedIn(redirectLocal?: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Redirect to identity server to get the auth token.
|
|
26
|
+
* @param redirectPath Local path to redirect to once login is complete.
|
|
27
|
+
*/
|
|
28
|
+
beginSignIn(redirectPath?: string): Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Reads the access token from the query string and returns the redirect path.
|
|
31
|
+
*/
|
|
32
|
+
endSignIn(): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Checks if the login state exists, and logs in the user.
|
|
35
|
+
* Result.success will be false if an error occurs. Errors will be handled by the service bound to NeoTypes.Security.LoginErrorHandler.
|
|
36
|
+
*/
|
|
37
|
+
tryCompleteSignIn(): Promise<SignInResult>;
|
|
38
|
+
endSignInSilent(): Promise<any>;
|
|
39
|
+
private onUserLoaded;
|
|
40
|
+
protected afterUserLoaded(): Promise<void> | void;
|
|
41
|
+
protected createUser(user: IOidcUser): OidcUser;
|
|
42
|
+
private onUserUnloaded;
|
|
43
|
+
private setUser;
|
|
44
|
+
signinSilent(): Promise<IOidcUser | null>;
|
|
45
|
+
beginSignOut(): void;
|
|
46
|
+
endSignOut(): Promise<any>;
|
|
47
|
+
signOutLocal(): void;
|
|
48
|
+
get user(): TUser | null;
|
|
49
|
+
get isAuthenticated(): boolean;
|
|
50
|
+
static createIdentityServerMetadata(identityServerUrl: string): {
|
|
51
|
+
issuer: string;
|
|
52
|
+
jwks_uri: string;
|
|
53
|
+
authorization_endpoint: string;
|
|
54
|
+
token_endpoint: string;
|
|
55
|
+
userinfo_endpoint: string;
|
|
56
|
+
end_session_endpoint: string;
|
|
57
|
+
check_session_iframe: string;
|
|
58
|
+
revocation_endpoint: string;
|
|
59
|
+
introspection_endpoint: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* If this is a silent sign in (based on the current uri), `endSignInSilent()` is called on the oidc client, and this method returns true.
|
|
63
|
+
* This should be called on startup of your app. If this returns true, don't continue with startup, since this iframe will be shortly disposed.
|
|
64
|
+
* @param silentRedirectRoute The app relative path used for silent sign in callbacks.
|
|
65
|
+
*/
|
|
66
|
+
static isSilentSignIn(silentRedirectRoute: string): boolean;
|
|
67
|
+
}
|