@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,189 +1,216 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __generator, __metadata } from "tslib";
|
|
2
|
-
import { Observable } from '../../Model/Decorators';
|
|
3
|
-
import OidcUser from './OidcUser';
|
|
4
|
-
import { SignInResult } from '../SignInResult';
|
|
5
|
-
import { Misc } from '../../';
|
|
6
|
-
import { NeoTypes } from '../../AppServices';
|
|
7
|
-
/**
|
|
8
|
-
* Oidc authentication service base class.
|
|
9
|
-
* You must override this class and provide the user manager implementation from the oidc library.
|
|
10
|
-
*/
|
|
11
|
-
var OidcAuthService = /** @class */ (function () {
|
|
12
|
-
/**
|
|
13
|
-
* Creates an Oidc auth service
|
|
14
|
-
* @param userManager Oidc-client user manager instance
|
|
15
|
-
* @param user User which existed in storage at startup
|
|
16
|
-
*/
|
|
17
|
-
function OidcAuthService(userManager, axios) {
|
|
18
|
-
this.userManager = userManager;
|
|
19
|
-
this.axios = axios;
|
|
20
|
-
this._user = null;
|
|
21
|
-
this.userManager = userManager;
|
|
22
|
-
this.userManager.events.addUserLoaded(this.onUserLoaded.bind(this));
|
|
23
|
-
this.userManager.events.addUserUnloaded(this.onUserUnloaded.bind(this));
|
|
24
|
-
this.userManager.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
OidcAuthService.prototype.
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return [
|
|
109
|
-
case
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
1
|
+
import { __awaiter, __decorate, __generator, __metadata } from "tslib";
|
|
2
|
+
import { Observable } from '../../Model/Decorators';
|
|
3
|
+
import OidcUser from './OidcUser';
|
|
4
|
+
import { SignInResult } from '../SignInResult';
|
|
5
|
+
import { Misc } from '../../';
|
|
6
|
+
import { NeoTypes } from '../../AppServices';
|
|
7
|
+
/**
|
|
8
|
+
* Oidc authentication service base class.
|
|
9
|
+
* You must override this class and provide the user manager implementation from the oidc library.
|
|
10
|
+
*/
|
|
11
|
+
var OidcAuthService = /** @class */ (function () {
|
|
12
|
+
/**
|
|
13
|
+
* Creates an Oidc auth service
|
|
14
|
+
* @param userManager Oidc-client user manager instance
|
|
15
|
+
* @param user User which existed in storage at startup
|
|
16
|
+
*/
|
|
17
|
+
function OidcAuthService(userManager, axios) {
|
|
18
|
+
this.userManager = userManager;
|
|
19
|
+
this.axios = axios;
|
|
20
|
+
this._user = null;
|
|
21
|
+
this.userManager = userManager;
|
|
22
|
+
this.userManager.events.addUserLoaded(this.onUserLoaded.bind(this));
|
|
23
|
+
this.userManager.events.addUserUnloaded(this.onUserUnloaded.bind(this));
|
|
24
|
+
if (!this.userManager.settings.automaticSilentRenew) {
|
|
25
|
+
// If automaticSilentRenew is set to true, then the user manager will handle automatic renewal.
|
|
26
|
+
this.userManager.events.addAccessTokenExpiring(this.signinSilent.bind(this));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
OidcAuthService.prototype.loadUserFromToken = function () {
|
|
30
|
+
return this.loadUserFromSession();
|
|
31
|
+
};
|
|
32
|
+
OidcAuthService.prototype.loadUserFromSession = function () {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
34
|
+
var user;
|
|
35
|
+
return __generator(this, function (_a) {
|
|
36
|
+
switch (_a.label) {
|
|
37
|
+
case 0: return [4 /*yield*/, this.userManager.getUser()];
|
|
38
|
+
case 1:
|
|
39
|
+
user = _a.sent();
|
|
40
|
+
if (user) {
|
|
41
|
+
// Get user does not raise the onUserLoaded event, so we call it manually.
|
|
42
|
+
this.onUserLoaded(user);
|
|
43
|
+
}
|
|
44
|
+
return [2 /*return*/, this.user];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
OidcAuthService.prototype.ensureSignedIn = function (redirectLocal) {
|
|
50
|
+
var settings = this.userManager.settings;
|
|
51
|
+
if (!this.isAuthenticated &&
|
|
52
|
+
(!settings.redirect_uri || !window.location.href.startsWith(settings.redirect_uri)) &&
|
|
53
|
+
(!settings.silent_redirect_uri || !window.location.href.startsWith(settings.silent_redirect_uri))) {
|
|
54
|
+
this.beginSignIn(redirectLocal);
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Redirect to identity server to get the auth token.
|
|
61
|
+
* @param redirectPath Local path to redirect to once login is complete.
|
|
62
|
+
*/
|
|
63
|
+
OidcAuthService.prototype.beginSignIn = function (redirectPath) {
|
|
64
|
+
return this.userManager.signinRedirect({ state: redirectPath });
|
|
65
|
+
};
|
|
66
|
+
;
|
|
67
|
+
/**
|
|
68
|
+
* Reads the access token from the query string and returns the redirect path.
|
|
69
|
+
*/
|
|
70
|
+
OidcAuthService.prototype.endSignIn = function () {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
+
var user, e_1;
|
|
73
|
+
return __generator(this, function (_a) {
|
|
74
|
+
switch (_a.label) {
|
|
75
|
+
case 0:
|
|
76
|
+
_a.trys.push([0, 2, , 3]);
|
|
77
|
+
return [4 /*yield*/, this.userManager.signinRedirectCallback()];
|
|
78
|
+
case 1:
|
|
79
|
+
user = _a.sent();
|
|
80
|
+
return [2 /*return*/, Promise.resolve(user.state || "")];
|
|
81
|
+
case 2:
|
|
82
|
+
e_1 = _a.sent();
|
|
83
|
+
console.error(e_1);
|
|
84
|
+
return [2 /*return*/, Promise.reject(e_1)];
|
|
85
|
+
case 3: return [2 /*return*/];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Checks if the login state exists, and logs in the user.
|
|
92
|
+
* Result.success will be false if an error occurs. Errors will be handled by the service bound to NeoTypes.Security.LoginErrorHandler.
|
|
93
|
+
*/
|
|
94
|
+
OidcAuthService.prototype.tryCompleteSignIn = function () {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
+
var queryParams, stateKey, loginErrorHandler, redirectPath, e_2;
|
|
97
|
+
return __generator(this, function (_a) {
|
|
98
|
+
switch (_a.label) {
|
|
99
|
+
case 0:
|
|
100
|
+
queryParams = new URLSearchParams(window.location.search);
|
|
101
|
+
stateKey = queryParams.get("state");
|
|
102
|
+
loginErrorHandler = Misc.Globals.appService.get(NeoTypes.Security.LoginErrorHandler);
|
|
103
|
+
if (!(!stateKey || window.localStorage.getItem("oidc." + stateKey) === null)) return [3 /*break*/, 1];
|
|
104
|
+
loginErrorHandler.onMissingLoginState();
|
|
105
|
+
return [3 /*break*/, 6];
|
|
106
|
+
case 1:
|
|
107
|
+
_a.trys.push([1, 5, , 6]);
|
|
108
|
+
return [4 /*yield*/, this.endSignIn()];
|
|
109
|
+
case 2:
|
|
110
|
+
redirectPath = _a.sent();
|
|
111
|
+
if (!this.afterUserLoadedPromise) return [3 /*break*/, 4];
|
|
112
|
+
return [4 /*yield*/, this.afterUserLoadedPromise];
|
|
113
|
+
case 3:
|
|
114
|
+
_a.sent();
|
|
115
|
+
this.afterUserLoadedPromise = undefined;
|
|
116
|
+
_a.label = 4;
|
|
117
|
+
case 4: return [2 /*return*/, new SignInResult(true, redirectPath)];
|
|
118
|
+
case 5:
|
|
119
|
+
e_2 = _a.sent();
|
|
120
|
+
loginErrorHandler.onException(e_2);
|
|
121
|
+
return [3 /*break*/, 6];
|
|
122
|
+
case 6: return [2 /*return*/, new SignInResult(false, "")];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
OidcAuthService.prototype.endSignInSilent = function () {
|
|
128
|
+
return this.userManager.signinSilentCallback();
|
|
129
|
+
};
|
|
130
|
+
OidcAuthService.prototype.onUserLoaded = function (user) {
|
|
131
|
+
this.setUser(this.createUser(user));
|
|
132
|
+
this.afterUserLoadedPromise = this.afterUserLoaded();
|
|
133
|
+
};
|
|
134
|
+
OidcAuthService.prototype.afterUserLoaded = function () {
|
|
135
|
+
};
|
|
136
|
+
OidcAuthService.prototype.createUser = function (user) {
|
|
137
|
+
return new OidcUser(user);
|
|
138
|
+
};
|
|
139
|
+
OidcAuthService.prototype.onUserUnloaded = function () {
|
|
140
|
+
this.setUser(null);
|
|
141
|
+
};
|
|
142
|
+
OidcAuthService.prototype.setUser = function (user) {
|
|
143
|
+
if (user) {
|
|
144
|
+
this.axios.defaults.headers.common['Authorization'] = user.authKey;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
delete this.axios.defaults.headers.common['Authorization'];
|
|
148
|
+
}
|
|
149
|
+
this._user = user;
|
|
150
|
+
};
|
|
151
|
+
OidcAuthService.prototype.signinSilent = function () {
|
|
152
|
+
return this.userManager.signinSilent();
|
|
153
|
+
};
|
|
154
|
+
OidcAuthService.prototype.beginSignOut = function () {
|
|
155
|
+
if (this._user) {
|
|
156
|
+
this.userManager.signoutRedirect({ id_token_hint: this._user.userData.id_token });
|
|
157
|
+
this.signOutLocal();
|
|
158
|
+
}
|
|
159
|
+
this.userManager.clearStaleState();
|
|
160
|
+
};
|
|
161
|
+
;
|
|
162
|
+
OidcAuthService.prototype.endSignOut = function () {
|
|
163
|
+
return this.userManager.signoutRedirectCallback();
|
|
164
|
+
};
|
|
165
|
+
;
|
|
166
|
+
OidcAuthService.prototype.signOutLocal = function () {
|
|
167
|
+
this.setUser(null);
|
|
168
|
+
};
|
|
169
|
+
Object.defineProperty(OidcAuthService.prototype, "user", {
|
|
170
|
+
get: function () {
|
|
171
|
+
return this._user;
|
|
172
|
+
},
|
|
173
|
+
enumerable: false,
|
|
174
|
+
configurable: true
|
|
175
|
+
});
|
|
176
|
+
Object.defineProperty(OidcAuthService.prototype, "isAuthenticated", {
|
|
177
|
+
get: function () {
|
|
178
|
+
return this.user !== null && !this.user.hasExpired;
|
|
179
|
+
},
|
|
180
|
+
enumerable: false,
|
|
181
|
+
configurable: true
|
|
182
|
+
});
|
|
183
|
+
OidcAuthService.createIdentityServerMetadata = function (identityServerUrl) {
|
|
184
|
+
return {
|
|
185
|
+
issuer: identityServerUrl,
|
|
186
|
+
jwks_uri: identityServerUrl + "/.well-known/openid-configuration/jwks",
|
|
187
|
+
authorization_endpoint: identityServerUrl + "/connect/authorize",
|
|
188
|
+
token_endpoint: identityServerUrl + "/connect/token",
|
|
189
|
+
userinfo_endpoint: identityServerUrl + "/connect/userinfo",
|
|
190
|
+
end_session_endpoint: identityServerUrl + "/connect/endsession",
|
|
191
|
+
check_session_iframe: identityServerUrl + "/connect/checksession",
|
|
192
|
+
revocation_endpoint: identityServerUrl + "/connect/revocation",
|
|
193
|
+
introspection_endpoint: identityServerUrl + "/connect/introspect"
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* If this is a silent sign in (based on the current uri), `endSignInSilent()` is called on the oidc client, and this method returns true.
|
|
198
|
+
* 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.
|
|
199
|
+
* @param silentRedirectRoute The app relative path used for silent sign in callbacks.
|
|
200
|
+
*/
|
|
201
|
+
OidcAuthService.isSilentSignIn = function (silentRedirectRoute) {
|
|
202
|
+
var config = Misc.Globals.appService.get(NeoTypes.Config.ConfigModel);
|
|
203
|
+
var silentRedirectUri = "".concat(window.location.origin).concat(config.baseUrl).concat(silentRedirectRoute);
|
|
204
|
+
if (window.location.href.startsWith(silentRedirectUri)) {
|
|
205
|
+
Misc.Globals.appService.get(NeoTypes.Security.AuthenticationService).endSignInSilent();
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
return false;
|
|
209
|
+
};
|
|
210
|
+
__decorate([
|
|
211
|
+
Observable(),
|
|
212
|
+
__metadata("design:type", Object)
|
|
213
|
+
], OidcAuthService.prototype, "_user", void 0);
|
|
214
|
+
return OidcAuthService;
|
|
215
|
+
}());
|
|
216
|
+
export default OidcAuthService;
|
|
@@ -1,29 +1,46 @@
|
|
|
1
|
-
export interface IOidcUser {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
export interface IOidcUser {
|
|
2
|
+
/**
|
|
3
|
+
* A JSON Web Token (JWT). Only provided if `openid` scope was requested.
|
|
4
|
+
* The application can access the data decoded by using the `profile` property.
|
|
5
|
+
*/
|
|
6
|
+
id_token?: string;
|
|
7
|
+
/** Typically "Bearer" */
|
|
8
|
+
token_type: string;
|
|
9
|
+
/**
|
|
10
|
+
* The requested access token returned from the OIDC provider. The application can use this token to
|
|
11
|
+
* authenticate itself to the secured resource.
|
|
12
|
+
*/
|
|
13
|
+
access_token: string;
|
|
14
|
+
/** The scopes that the requested access token is valid for. */
|
|
15
|
+
scope?: string;
|
|
16
|
+
profile: any;
|
|
17
|
+
expires_at?: number;
|
|
18
|
+
/** State passed to IDS which is returned to us. */
|
|
19
|
+
state: any;
|
|
20
|
+
readonly expired: boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
export interface IUserManager {
|
|
23
|
+
events: IUserManagerEvents;
|
|
24
|
+
settings: IUserManagerSettings;
|
|
25
|
+
signinRedirect(args?: any): Promise<any>;
|
|
26
|
+
signinRedirectCallback(url?: string): Promise<IOidcUser>;
|
|
27
|
+
signoutRedirect(args?: any): Promise<any>;
|
|
28
|
+
signoutRedirectCallback(url?: string): Promise<any>;
|
|
29
|
+
signinSilent(args?: any): Promise<IOidcUser | null>;
|
|
30
|
+
signinSilentCallback(url?: string): Promise<any>;
|
|
31
|
+
clearStaleState(): Promise<void>;
|
|
32
|
+
getUser(): Promise<IOidcUser | null>;
|
|
33
|
+
}
|
|
34
|
+
export interface IUserManagerSettings {
|
|
35
|
+
/** The redirect URI of your client application to receive a response from the OIDC/OAuth2 provider */
|
|
36
|
+
redirect_uri?: string;
|
|
37
|
+
/** Flag to indicate if there should be an automatic attempt to renew the access token prior to its expiration */
|
|
38
|
+
automaticSilentRenew?: boolean;
|
|
39
|
+
/** The URL for the page containing the code handling the silent renew */
|
|
40
|
+
silent_redirect_uri?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface IUserManagerEvents {
|
|
43
|
+
addUserLoaded(callback: (...ev: any[]) => void): void;
|
|
44
|
+
addUserUnloaded(callback: (...ev: any[]) => void): void;
|
|
45
|
+
addAccessTokenExpiring(callback: (...ev: any[]) => void): void;
|
|
46
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { User } from '../User';
|
|
2
|
-
import { IOidcUser } from './OidcTypes';
|
|
3
|
-
export default class OidcUser extends User {
|
|
4
|
-
userData: IOidcUser;
|
|
5
|
-
constructor(userData: IOidcUser);
|
|
6
|
-
get hasExpired(): boolean;
|
|
7
|
-
get authKey(): string;
|
|
8
|
-
get accessToken(): string;
|
|
9
|
-
}
|
|
1
|
+
import { User } from '../User';
|
|
2
|
+
import { IOidcUser } from './OidcTypes';
|
|
3
|
+
export default class OidcUser extends User {
|
|
4
|
+
userData: IOidcUser;
|
|
5
|
+
constructor(userData: IOidcUser);
|
|
6
|
+
get hasExpired(): boolean;
|
|
7
|
+
get authKey(): string;
|
|
8
|
+
get accessToken(): string;
|
|
9
|
+
}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { User } from '../User';
|
|
3
|
-
var OidcUser = /** @class */ (function (_super) {
|
|
4
|
-
__extends(OidcUser, _super);
|
|
5
|
-
function OidcUser(userData) {
|
|
6
|
-
var _this = _super.call(this, userData.profile.name, userData.profile.preferred_username, userData.profile.given_name, userData.profile.family_name) || this;
|
|
7
|
-
_this.userData = userData;
|
|
8
|
-
return _this;
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(OidcUser.prototype, "hasExpired", {
|
|
11
|
-
get: function () {
|
|
12
|
-
return this.userData.expired;
|
|
13
|
-
},
|
|
14
|
-
enumerable: false,
|
|
15
|
-
configurable: true
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(OidcUser.prototype, "authKey", {
|
|
18
|
-
get: function () {
|
|
19
|
-
return this.userData.token_type + " " + this.userData.access_token;
|
|
20
|
-
},
|
|
21
|
-
enumerable: false,
|
|
22
|
-
configurable: true
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(OidcUser.prototype, "accessToken", {
|
|
25
|
-
get: function () {
|
|
26
|
-
return this.userData.access_token;
|
|
27
|
-
},
|
|
28
|
-
enumerable: false,
|
|
29
|
-
configurable: true
|
|
30
|
-
});
|
|
31
|
-
return OidcUser;
|
|
32
|
-
}(User));
|
|
33
|
-
export default OidcUser;
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { User } from '../User';
|
|
3
|
+
var OidcUser = /** @class */ (function (_super) {
|
|
4
|
+
__extends(OidcUser, _super);
|
|
5
|
+
function OidcUser(userData) {
|
|
6
|
+
var _this = _super.call(this, userData.profile.name, userData.profile.preferred_username, userData.profile.given_name, userData.profile.family_name) || this;
|
|
7
|
+
_this.userData = userData;
|
|
8
|
+
return _this;
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(OidcUser.prototype, "hasExpired", {
|
|
11
|
+
get: function () {
|
|
12
|
+
return this.userData.expired;
|
|
13
|
+
},
|
|
14
|
+
enumerable: false,
|
|
15
|
+
configurable: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(OidcUser.prototype, "authKey", {
|
|
18
|
+
get: function () {
|
|
19
|
+
return this.userData.token_type + " " + this.userData.access_token;
|
|
20
|
+
},
|
|
21
|
+
enumerable: false,
|
|
22
|
+
configurable: true
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(OidcUser.prototype, "accessToken", {
|
|
25
|
+
get: function () {
|
|
26
|
+
return this.userData.access_token;
|
|
27
|
+
},
|
|
28
|
+
enumerable: false,
|
|
29
|
+
configurable: true
|
|
30
|
+
});
|
|
31
|
+
return OidcUser;
|
|
32
|
+
}(User));
|
|
33
|
+
export default OidcUser;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import IAuthenticationService from './IAuthenticationService';
|
|
2
|
-
import IAuthorisationService from './IAuthorisationService';
|
|
3
|
-
import ISecurityService from './ISecurityService';
|
|
4
|
-
import { IUser } from './IUser';
|
|
5
|
-
export declare class SecurityService implements ISecurityService {
|
|
6
|
-
authentication: IAuthenticationService;
|
|
7
|
-
authorisation: IAuthorisationService;
|
|
8
|
-
constructor(authentication: IAuthenticationService, authorisation: IAuthorisationService);
|
|
9
|
-
get isAuthenticated(): boolean;
|
|
10
|
-
get user(): IUser | null;
|
|
11
|
-
hasRole(roleName: string): boolean;
|
|
12
|
-
}
|
|
1
|
+
import IAuthenticationService from './IAuthenticationService';
|
|
2
|
+
import IAuthorisationService from './IAuthorisationService';
|
|
3
|
+
import ISecurityService from './ISecurityService';
|
|
4
|
+
import { IUser } from './IUser';
|
|
5
|
+
export declare class SecurityService implements ISecurityService {
|
|
6
|
+
authentication: IAuthenticationService;
|
|
7
|
+
authorisation: IAuthorisationService;
|
|
8
|
+
constructor(authentication: IAuthenticationService, authorisation: IAuthorisationService);
|
|
9
|
+
get isAuthenticated(): boolean;
|
|
10
|
+
get user(): IUser | null;
|
|
11
|
+
hasRole(roleName: string): boolean;
|
|
12
|
+
}
|