@singularsystems/neo-core 1.0.0-alpha.3 → 1.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/ApiClient/ApiClientBase.d.ts +5 -5
  3. package/dist/ApiClient/ApiClientBase.js +13 -13
  4. package/dist/ApiClient/ReadApiClient.d.ts +16 -16
  5. package/dist/ApiClient/ReadApiClient.js +24 -24
  6. package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
  7. package/dist/ApiClient/UpdateableApiClient.js +33 -33
  8. package/dist/AppServices/AppService.d.ts +46 -46
  9. package/dist/AppServices/AppService.js +25 -25
  10. package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
  11. package/dist/AppServices/Config/ConfigModel.js +28 -17
  12. package/dist/AppServices/Config/ConfigService.d.ts +15 -15
  13. package/dist/AppServices/Config/ConfigService.js +49 -53
  14. package/dist/AppServices/Module.d.ts +11 -11
  15. package/dist/AppServices/Module.js +13 -13
  16. package/dist/AppServices/NeoContainer.d.ts +22 -22
  17. package/dist/AppServices/NeoContainer.js +42 -42
  18. package/dist/AppServices/NeoModule.d.ts +3 -3
  19. package/dist/AppServices/NeoModule.js +30 -30
  20. package/dist/AppServices/NeoTypes.d.ts +61 -61
  21. package/dist/AppServices/NeoTypes.js +42 -42
  22. package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
  23. package/dist/AppServices/ServiceIdentifier.js +38 -39
  24. package/dist/AppServices/index.d.ts +7 -7
  25. package/dist/AppServices/index.js +7 -7
  26. package/dist/Components/AnimationHelper.d.ts +69 -69
  27. package/dist/Components/AnimationHelper.js +182 -182
  28. package/dist/Components/BootstrapHelpers.d.ts +8 -8
  29. package/dist/Components/BootstrapHelpers.js +30 -30
  30. package/dist/Components/BootstrapTypes.d.ts +35 -35
  31. package/dist/Components/BootstrapTypes.js +1 -1
  32. package/dist/Components/ButtonOptions.d.ts +63 -61
  33. package/dist/Components/ButtonOptions.js +1 -1
  34. package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
  35. package/dist/Components/ContextMenu/ContextMenu.js +1 -1
  36. package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
  37. package/dist/Components/ContextMenu/MenuUtils.js +34 -34
  38. package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
  39. package/dist/Components/DatePicker/DatePicker.js +502 -487
  40. package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
  41. package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
  42. package/dist/Components/ErrorHandler.d.ts +59 -55
  43. package/dist/Components/ErrorHandler.js +210 -138
  44. package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
  45. package/dist/Components/FileManager/BoundFileManager.js +60 -60
  46. package/dist/Components/FileManager/FileManager.d.ts +80 -78
  47. package/dist/Components/FileManager/FileManager.js +277 -257
  48. package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
  49. package/dist/Components/FileManager/FileUploadBatch.js +83 -82
  50. package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
  51. package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
  52. package/dist/Components/FormOptions.d.ts +34 -34
  53. package/dist/Components/FormOptions.js +1 -1
  54. package/dist/Components/ICollapsableOptions.d.ts +11 -11
  55. package/dist/Components/ICollapsableOptions.js +1 -1
  56. package/dist/Components/Modal/ModalHelper.d.ts +31 -31
  57. package/dist/Components/Modal/ModalHelper.js +174 -174
  58. package/dist/Components/Modal/ModalOptions.d.ts +61 -61
  59. package/dist/Components/Modal/ModalOptions.js +1 -1
  60. package/dist/Components/Modal/ModalStore.d.ts +32 -32
  61. package/dist/Components/Modal/ModalStore.js +82 -82
  62. package/dist/Components/Modal/ModalUtils.d.ts +61 -61
  63. package/dist/Components/Modal/ModalUtils.js +109 -109
  64. package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
  65. package/dist/Components/Notifications/INotificationHelper.js +1 -1
  66. package/dist/Components/Notifications/Notification.d.ts +32 -32
  67. package/dist/Components/Notifications/Notification.js +26 -27
  68. package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
  69. package/dist/Components/Notifications/NotificationHelper.js +111 -112
  70. package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
  71. package/dist/Components/Notifications/NotificationStore.js +78 -79
  72. package/dist/Components/PositionHelper.d.ts +10 -10
  73. package/dist/Components/PositionHelper.js +43 -43
  74. package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
  75. package/dist/Components/TaskRunner/Decorators.js +24 -24
  76. package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
  77. package/dist/Components/TaskRunner/ProgressState.js +71 -72
  78. package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
  79. package/dist/Components/TaskRunner/TaskRunner.js +253 -244
  80. package/dist/Components/TooltipOptions.d.ts +8 -8
  81. package/dist/Components/TooltipOptions.js +1 -1
  82. package/dist/Components/index.d.ts +22 -22
  83. package/dist/Components/index.js +13 -13
  84. package/dist/ConnectionManager.d.ts +45 -45
  85. package/dist/ConnectionManager.js +60 -61
  86. package/dist/Data/ApiDataSource.d.ts +46 -46
  87. package/dist/Data/ApiDataSource.js +140 -144
  88. package/dist/Data/AsyncDataSource.d.ts +35 -35
  89. package/dist/Data/AsyncDataSource.js +79 -80
  90. package/dist/Data/CacheService.d.ts +40 -40
  91. package/dist/Data/CacheService.js +63 -64
  92. package/dist/Data/DataCacheEntry.d.ts +42 -42
  93. package/dist/Data/DataCacheEntry.js +80 -80
  94. package/dist/Data/DataView.d.ts +43 -43
  95. package/dist/Data/DataView.js +173 -172
  96. package/dist/Data/Deserialiser.d.ts +42 -42
  97. package/dist/Data/Deserialiser.js +255 -255
  98. package/dist/Data/Paging/PageManager.d.ts +167 -167
  99. package/dist/Data/Paging/PageManager.js +323 -323
  100. package/dist/Data/Paging/PageRequest.d.ts +24 -24
  101. package/dist/Data/Paging/PageRequest.js +38 -39
  102. package/dist/Data/Paging/PageResult.d.ts +10 -10
  103. package/dist/Data/Paging/PageResult.js +14 -14
  104. package/dist/Data/Serialiser.d.ts +41 -41
  105. package/dist/Data/Serialiser.js +201 -201
  106. package/dist/Data/SortOperation.d.ts +8 -8
  107. package/dist/Data/SortOperation.js +26 -26
  108. package/dist/Data/StaticDataSource.d.ts +9 -9
  109. package/dist/Data/StaticDataSource.js +27 -27
  110. package/dist/Data/WindowedDataView.d.ts +8 -8
  111. package/dist/Data/WindowedDataView.js +49 -50
  112. package/dist/Data/index.d.ts +15 -15
  113. package/dist/Data/index.js +15 -15
  114. package/dist/Dates/DateUtils.d.ts +47 -47
  115. package/dist/Dates/DateUtils.js +226 -226
  116. package/dist/Dates/TimeSpan.d.ts +24 -24
  117. package/dist/Dates/TimeSpan.js +46 -46
  118. package/dist/DebounceHelper.d.ts +44 -38
  119. package/dist/DebounceHelper.js +122 -95
  120. package/dist/Extensions.d.ts +82 -82
  121. package/dist/Extensions.js +182 -182
  122. package/dist/FileUtils.d.ts +6 -6
  123. package/dist/FileUtils.js +37 -37
  124. package/dist/Globals.d.ts +19 -19
  125. package/dist/Globals.js +41 -41
  126. package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
  127. package/dist/JsonSchema/ClassMetadata.js +53 -53
  128. package/dist/JsonSchema/JsonData.d.ts +16 -16
  129. package/dist/JsonSchema/JsonData.js +97 -97
  130. package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
  131. package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
  132. package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
  133. package/dist/JsonSchema/PropertyMetadata.js +8 -8
  134. package/dist/JsonSchema/TypeCache.d.ts +16 -16
  135. package/dist/JsonSchema/TypeCache.js +44 -44
  136. package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
  137. package/dist/JsonSchema/TypeMetadata.js +170 -170
  138. package/dist/JsonSchema/index.d.ts +7 -7
  139. package/dist/JsonSchema/index.js +6 -6
  140. package/dist/Localisation/ILocalisationService.d.ts +11 -11
  141. package/dist/Localisation/ILocalisationService.js +1 -1
  142. package/dist/Localisation/LocalisationService.d.ts +4 -4
  143. package/dist/Localisation/LocalisationService.js +17 -17
  144. package/dist/Localisation/index.d.ts +1 -1
  145. package/dist/Localisation/index.js +1 -1
  146. package/dist/Misc.d.ts +6 -6
  147. package/dist/Misc.js +6 -6
  148. package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
  149. package/dist/Model/BaseModels/AuditValues.js +46 -48
  150. package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
  151. package/dist/Model/BaseModels/CriteriaBase.js +45 -34
  152. package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
  153. package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
  154. package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
  155. package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
  156. package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
  157. package/dist/Model/BaseModels/UserEvent.js +36 -32
  158. package/dist/Model/BindableBase.d.ts +46 -40
  159. package/dist/Model/BindableBase.js +79 -76
  160. package/dist/Model/Decorators.d.ts +47 -44
  161. package/dist/Model/Decorators.js +182 -177
  162. package/dist/Model/EnumHelper.d.ts +54 -54
  163. package/dist/Model/EnumHelper.js +104 -100
  164. package/dist/Model/IAutoRunner.d.ts +5 -5
  165. package/dist/Model/IAutoRunner.js +1 -1
  166. package/dist/Model/IModelBase.d.ts +92 -79
  167. package/dist/Model/IModelBase.js +1 -1
  168. package/dist/Model/IModelCreatorBase.d.ts +9 -9
  169. package/dist/Model/IModelCreatorBase.js +1 -1
  170. package/dist/Model/List.d.ts +79 -77
  171. package/dist/Model/List.js +208 -198
  172. package/dist/Model/LookupBase.d.ts +13 -6
  173. package/dist/Model/LookupBase.js +19 -10
  174. package/dist/Model/Misc.d.ts +83 -81
  175. package/dist/Model/Misc.js +59 -59
  176. package/dist/Model/ModelBase.d.ts +88 -86
  177. package/dist/Model/ModelBase.js +182 -180
  178. package/dist/Model/ModelCreatorBase.d.ts +24 -23
  179. package/dist/Model/ModelCreatorBase.js +92 -92
  180. package/dist/Model/ModelFieldInfo.d.ts +29 -12
  181. package/dist/Model/ModelFieldInfo.js +35 -26
  182. package/dist/Model/ModelGraphTraverser.d.ts +35 -35
  183. package/dist/Model/ModelGraphTraverser.js +101 -99
  184. package/dist/Model/NeoModel.d.ts +6 -6
  185. package/dist/Model/NeoModel.js +13 -13
  186. package/dist/Model/NeoTypeInfo.d.ts +52 -41
  187. package/dist/Model/NeoTypeInfo.js +300 -250
  188. package/dist/Model/ObservableProperty.d.ts +8 -8
  189. package/dist/Model/ObservableProperty.js +41 -41
  190. package/dist/Model/ObservableValue.d.ts +9 -9
  191. package/dist/Model/ObservableValue.js +25 -26
  192. package/dist/Model/PropertyInfo.d.ts +83 -81
  193. package/dist/Model/PropertyInfo.js +138 -137
  194. package/dist/Model/PropertyInstance.d.ts +84 -48
  195. package/dist/Model/PropertyInstance.js +173 -113
  196. package/dist/Model/ValueObject.d.ts +3 -3
  197. package/dist/Model/ValueObject.js +10 -10
  198. package/dist/Model/index.d.ts +15 -14
  199. package/dist/Model/index.js +13 -12
  200. package/dist/NumberUtils.d.ts +63 -49
  201. package/dist/NumberUtils.js +247 -197
  202. package/dist/Routing/IMenuItemProvider.d.ts +9 -9
  203. package/dist/Routing/IMenuItemProvider.js +1 -1
  204. package/dist/Routing/IMenuRoute.d.ts +18 -18
  205. package/dist/Routing/IMenuRoute.js +1 -1
  206. package/dist/Routing/INavigationHelper.d.ts +7 -7
  207. package/dist/Routing/INavigationHelper.js +1 -1
  208. package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
  209. package/dist/Routing/IPageLeaveHandler.js +7 -7
  210. package/dist/Routing/IRoute.d.ts +27 -27
  211. package/dist/Routing/IRoute.js +1 -1
  212. package/dist/Routing/IRouteSecurityService.d.ts +14 -14
  213. package/dist/Routing/IRouteSecurityService.js +1 -1
  214. package/dist/Routing/MenuItemProvider.d.ts +17 -17
  215. package/dist/Routing/MenuItemProvider.js +53 -54
  216. package/dist/Routing/RouteSecurityService.d.ts +18 -18
  217. package/dist/Routing/RouteSecurityService.js +35 -36
  218. package/dist/Routing/index.d.ts +7 -7
  219. package/dist/Routing/index.js +3 -3
  220. package/dist/Security/IAuthenticationService.d.ts +41 -36
  221. package/dist/Security/IAuthenticationService.js +1 -1
  222. package/dist/Security/IAuthorisationService.d.ts +11 -11
  223. package/dist/Security/IAuthorisationService.js +1 -1
  224. package/dist/Security/ILoginErrorHandler.d.ts +4 -4
  225. package/dist/Security/ILoginErrorHandler.js +1 -1
  226. package/dist/Security/ISecurityService.d.ts +10 -10
  227. package/dist/Security/ISecurityService.js +1 -1
  228. package/dist/Security/IUser.d.ts +10 -10
  229. package/dist/Security/IUser.js +1 -1
  230. package/dist/Security/IUserRole.d.ts +6 -6
  231. package/dist/Security/IUserRole.js +1 -1
  232. package/dist/Security/LoginErrorHandler.d.ts +15 -15
  233. package/dist/Security/LoginErrorHandler.js +97 -98
  234. package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
  235. package/dist/Security/Oidc/OidcAuthService.js +216 -189
  236. package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
  237. package/dist/Security/Oidc/OidcTypes.js +1 -1
  238. package/dist/Security/Oidc/OidcUser.d.ts +9 -9
  239. package/dist/Security/Oidc/OidcUser.js +33 -33
  240. package/dist/Security/SecurityService.d.ts +12 -12
  241. package/dist/Security/SecurityService.js +33 -34
  242. package/dist/Security/SignInResult.d.ts +13 -13
  243. package/dist/Security/SignInResult.js +8 -8
  244. package/dist/Security/User.d.ts +12 -12
  245. package/dist/Security/User.js +24 -24
  246. package/dist/Security/index.d.ts +10 -10
  247. package/dist/Security/index.js +5 -5
  248. package/dist/Settings.d.ts +71 -57
  249. package/dist/Settings.js +100 -87
  250. package/dist/SignalR/HubBase.d.ts +70 -70
  251. package/dist/SignalR/HubBase.js +164 -164
  252. package/dist/SignalR/HubReceiver.d.ts +11 -11
  253. package/dist/SignalR/HubReceiver.js +25 -25
  254. package/dist/SignalR/HubSubscription.d.ts +12 -12
  255. package/dist/SignalR/HubSubscription.js +14 -14
  256. package/dist/SignalR/index.d.ts +3 -3
  257. package/dist/SignalR/index.js +1 -1
  258. package/dist/StringUtils.d.ts +7 -7
  259. package/dist/StringUtils.js +24 -24
  260. package/dist/Utils.d.ts +81 -80
  261. package/dist/Utils.js +220 -218
  262. package/dist/Validation/Decorators.d.ts +12 -12
  263. package/dist/Validation/Decorators.js +52 -52
  264. package/dist/Validation/DisplayHelper.d.ts +20 -19
  265. package/dist/Validation/DisplayHelper.js +104 -104
  266. package/dist/Validation/Misc.d.ts +10 -10
  267. package/dist/Validation/Misc.js +11 -11
  268. package/dist/Validation/ModelProxy.d.ts +20 -20
  269. package/dist/Validation/ModelProxy.js +46 -46
  270. package/dist/Validation/RuleContext.d.ts +86 -86
  271. package/dist/Validation/RuleContext.js +130 -130
  272. package/dist/Validation/Rules.d.ts +70 -70
  273. package/dist/Validation/Rules.js +177 -177
  274. package/dist/Validation/ValidationHelpers.d.ts +12 -12
  275. package/dist/Validation/ValidationHelpers.js +57 -57
  276. package/dist/Validation/ValidationRules.d.ts +18 -18
  277. package/dist/Validation/ValidationRules.js +34 -34
  278. package/dist/Validation/ValidationState.d.ts +42 -42
  279. package/dist/Validation/ValidationState.js +74 -74
  280. package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
  281. package/dist/Validation/Validators/IModelValidator.js +1 -1
  282. package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
  283. package/dist/Validation/Validators/IPropertyValidator.js +15 -15
  284. package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
  285. package/dist/Validation/Validators/ModelValidator.js +143 -137
  286. package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
  287. package/dist/Validation/Validators/PropertyValidator.js +64 -67
  288. package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
  289. package/dist/Validation/Validators/RuleValidator.js +51 -55
  290. package/dist/Validation/index.d.ts +9 -9
  291. package/dist/Validation/index.js +7 -7
  292. package/dist/Views/IViewBase.d.ts +5 -5
  293. package/dist/Views/IViewBase.js +1 -1
  294. package/dist/index.d.ts +37 -36
  295. package/dist/index.js +44 -43
  296. 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
- * Redirect to identity server to get the auth token.
25
- * @param redirectPath Local path to redirect to once login is complete.
26
- */
27
- beginSignIn(redirectPath?: string): Promise<any>;
28
- /**
29
- * Reads the access token from the query string and returns the redirect path.
30
- */
31
- endSignIn(): Promise<string>;
32
- /**
33
- * Checks if the login state exists, and logs in the user.
34
- * Result.success will be false if an error occurs. Errors will be handled by the service bound to NeoTypes.Security.LoginErrorHandler.
35
- */
36
- tryCompleteSignIn(): Promise<SignInResult>;
37
- endSignInSilent(): Promise<any>;
38
- private onUserLoaded;
39
- protected afterUserLoaded(): Promise<void> | void;
40
- protected createUser(user: IOidcUser): OidcUser;
41
- private onUserUnloaded;
42
- private setUser;
43
- signinSilent(): Promise<IOidcUser>;
44
- beginSignOut(): void;
45
- endSignOut(): Promise<any>;
46
- signOutLocal(): void;
47
- get user(): TUser | null;
48
- get isAuthenticated(): boolean;
49
- static createIdentityServerMetadata(identityServerUrl: string): {
50
- issuer: string;
51
- jwks_uri: string;
52
- authorization_endpoint: string;
53
- token_endpoint: string;
54
- userinfo_endpoint: string;
55
- end_session_endpoint: string;
56
- check_session_iframe: string;
57
- revocation_endpoint: string;
58
- introspection_endpoint: string;
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
+ }