@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.
Files changed (299) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/dist/ApiClient/ApiClientBase.d.ts +5 -5
  4. package/dist/ApiClient/ApiClientBase.js +13 -13
  5. package/dist/ApiClient/ReadApiClient.d.ts +16 -16
  6. package/dist/ApiClient/ReadApiClient.js +24 -24
  7. package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
  8. package/dist/ApiClient/UpdateableApiClient.js +33 -33
  9. package/dist/AppServices/AppService.d.ts +46 -46
  10. package/dist/AppServices/AppService.js +25 -25
  11. package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
  12. package/dist/AppServices/Config/ConfigModel.js +28 -17
  13. package/dist/AppServices/Config/ConfigService.d.ts +15 -15
  14. package/dist/AppServices/Config/ConfigService.js +49 -53
  15. package/dist/AppServices/Module.d.ts +11 -11
  16. package/dist/AppServices/Module.js +13 -13
  17. package/dist/AppServices/NeoContainer.d.ts +22 -22
  18. package/dist/AppServices/NeoContainer.js +42 -42
  19. package/dist/AppServices/NeoModule.d.ts +3 -3
  20. package/dist/AppServices/NeoModule.js +30 -30
  21. package/dist/AppServices/NeoTypes.d.ts +61 -61
  22. package/dist/AppServices/NeoTypes.js +42 -42
  23. package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
  24. package/dist/AppServices/ServiceIdentifier.js +38 -39
  25. package/dist/AppServices/index.d.ts +7 -7
  26. package/dist/AppServices/index.js +7 -7
  27. package/dist/Components/AnimationHelper.d.ts +69 -69
  28. package/dist/Components/AnimationHelper.js +182 -182
  29. package/dist/Components/BootstrapHelpers.d.ts +8 -8
  30. package/dist/Components/BootstrapHelpers.js +30 -30
  31. package/dist/Components/BootstrapTypes.d.ts +35 -35
  32. package/dist/Components/BootstrapTypes.js +1 -1
  33. package/dist/Components/ButtonOptions.d.ts +63 -61
  34. package/dist/Components/ButtonOptions.js +1 -1
  35. package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
  36. package/dist/Components/ContextMenu/ContextMenu.js +1 -1
  37. package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
  38. package/dist/Components/ContextMenu/MenuUtils.js +34 -34
  39. package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
  40. package/dist/Components/DatePicker/DatePicker.js +510 -487
  41. package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
  42. package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
  43. package/dist/Components/ErrorHandler.d.ts +63 -55
  44. package/dist/Components/ErrorHandler.js +211 -138
  45. package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
  46. package/dist/Components/FileManager/BoundFileManager.js +60 -60
  47. package/dist/Components/FileManager/FileManager.d.ts +80 -78
  48. package/dist/Components/FileManager/FileManager.js +277 -257
  49. package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
  50. package/dist/Components/FileManager/FileUploadBatch.js +83 -82
  51. package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
  52. package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
  53. package/dist/Components/FormOptions.d.ts +34 -34
  54. package/dist/Components/FormOptions.js +1 -1
  55. package/dist/Components/ICollapsableOptions.d.ts +11 -11
  56. package/dist/Components/ICollapsableOptions.js +1 -1
  57. package/dist/Components/Modal/ModalHelper.d.ts +31 -31
  58. package/dist/Components/Modal/ModalHelper.js +174 -174
  59. package/dist/Components/Modal/ModalOptions.d.ts +61 -61
  60. package/dist/Components/Modal/ModalOptions.js +1 -1
  61. package/dist/Components/Modal/ModalStore.d.ts +32 -32
  62. package/dist/Components/Modal/ModalStore.js +82 -82
  63. package/dist/Components/Modal/ModalUtils.d.ts +61 -61
  64. package/dist/Components/Modal/ModalUtils.js +109 -109
  65. package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
  66. package/dist/Components/Notifications/INotificationHelper.js +1 -1
  67. package/dist/Components/Notifications/Notification.d.ts +32 -32
  68. package/dist/Components/Notifications/Notification.js +26 -27
  69. package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
  70. package/dist/Components/Notifications/NotificationHelper.js +111 -112
  71. package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
  72. package/dist/Components/Notifications/NotificationStore.js +78 -79
  73. package/dist/Components/PositionHelper.d.ts +10 -10
  74. package/dist/Components/PositionHelper.js +43 -43
  75. package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
  76. package/dist/Components/TaskRunner/Decorators.js +24 -24
  77. package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
  78. package/dist/Components/TaskRunner/ProgressState.js +71 -72
  79. package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
  80. package/dist/Components/TaskRunner/TaskRunner.js +253 -244
  81. package/dist/Components/TooltipOptions.d.ts +8 -8
  82. package/dist/Components/TooltipOptions.js +1 -1
  83. package/dist/Components/index.d.ts +22 -22
  84. package/dist/Components/index.js +13 -13
  85. package/dist/ConnectionManager.d.ts +45 -45
  86. package/dist/ConnectionManager.js +60 -61
  87. package/dist/Data/ApiDataSource.d.ts +46 -46
  88. package/dist/Data/ApiDataSource.js +140 -144
  89. package/dist/Data/AsyncDataSource.d.ts +35 -35
  90. package/dist/Data/AsyncDataSource.js +79 -80
  91. package/dist/Data/CacheService.d.ts +40 -40
  92. package/dist/Data/CacheService.js +63 -64
  93. package/dist/Data/DataCacheEntry.d.ts +42 -42
  94. package/dist/Data/DataCacheEntry.js +80 -80
  95. package/dist/Data/DataView.d.ts +43 -43
  96. package/dist/Data/DataView.js +173 -172
  97. package/dist/Data/Deserialiser.d.ts +42 -42
  98. package/dist/Data/Deserialiser.js +255 -255
  99. package/dist/Data/Paging/PageManager.d.ts +167 -167
  100. package/dist/Data/Paging/PageManager.js +323 -323
  101. package/dist/Data/Paging/PageRequest.d.ts +24 -24
  102. package/dist/Data/Paging/PageRequest.js +38 -39
  103. package/dist/Data/Paging/PageResult.d.ts +10 -10
  104. package/dist/Data/Paging/PageResult.js +14 -14
  105. package/dist/Data/Serialiser.d.ts +41 -41
  106. package/dist/Data/Serialiser.js +201 -201
  107. package/dist/Data/SortOperation.d.ts +8 -8
  108. package/dist/Data/SortOperation.js +26 -26
  109. package/dist/Data/StaticDataSource.d.ts +9 -9
  110. package/dist/Data/StaticDataSource.js +27 -27
  111. package/dist/Data/WindowedDataView.d.ts +8 -8
  112. package/dist/Data/WindowedDataView.js +49 -50
  113. package/dist/Data/index.d.ts +15 -15
  114. package/dist/Data/index.js +15 -15
  115. package/dist/Dates/DateUtils.d.ts +47 -47
  116. package/dist/Dates/DateUtils.js +226 -226
  117. package/dist/Dates/TimeSpan.d.ts +24 -24
  118. package/dist/Dates/TimeSpan.js +46 -46
  119. package/dist/DebounceHelper.d.ts +44 -38
  120. package/dist/DebounceHelper.js +122 -95
  121. package/dist/Extensions.d.ts +82 -82
  122. package/dist/Extensions.js +182 -182
  123. package/dist/FileUtils.d.ts +6 -6
  124. package/dist/FileUtils.js +37 -37
  125. package/dist/Globals.d.ts +19 -19
  126. package/dist/Globals.js +41 -41
  127. package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
  128. package/dist/JsonSchema/ClassMetadata.js +53 -53
  129. package/dist/JsonSchema/JsonData.d.ts +16 -16
  130. package/dist/JsonSchema/JsonData.js +97 -97
  131. package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
  132. package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
  133. package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
  134. package/dist/JsonSchema/PropertyMetadata.js +8 -8
  135. package/dist/JsonSchema/TypeCache.d.ts +16 -16
  136. package/dist/JsonSchema/TypeCache.js +44 -44
  137. package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
  138. package/dist/JsonSchema/TypeMetadata.js +170 -170
  139. package/dist/JsonSchema/index.d.ts +7 -7
  140. package/dist/JsonSchema/index.js +6 -6
  141. package/dist/Localisation/ILocalisationService.d.ts +11 -11
  142. package/dist/Localisation/ILocalisationService.js +1 -1
  143. package/dist/Localisation/LocalisationService.d.ts +4 -4
  144. package/dist/Localisation/LocalisationService.js +17 -17
  145. package/dist/Localisation/index.d.ts +1 -1
  146. package/dist/Localisation/index.js +1 -1
  147. package/dist/Misc.d.ts +6 -6
  148. package/dist/Misc.js +6 -6
  149. package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
  150. package/dist/Model/BaseModels/AuditValues.js +46 -48
  151. package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
  152. package/dist/Model/BaseModels/CriteriaBase.js +45 -34
  153. package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
  154. package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
  155. package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
  156. package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
  157. package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
  158. package/dist/Model/BaseModels/UserEvent.js +36 -32
  159. package/dist/Model/BindableBase.d.ts +46 -40
  160. package/dist/Model/BindableBase.js +82 -76
  161. package/dist/Model/Decorators.d.ts +50 -44
  162. package/dist/Model/Decorators.js +189 -177
  163. package/dist/Model/EnumHelper.d.ts +54 -54
  164. package/dist/Model/EnumHelper.js +104 -100
  165. package/dist/Model/IAutoRunner.d.ts +5 -5
  166. package/dist/Model/IAutoRunner.js +1 -1
  167. package/dist/Model/IModelBase.d.ts +101 -79
  168. package/dist/Model/IModelBase.js +1 -1
  169. package/dist/Model/IModelCreatorBase.d.ts +9 -9
  170. package/dist/Model/IModelCreatorBase.js +1 -1
  171. package/dist/Model/List.d.ts +79 -77
  172. package/dist/Model/List.js +208 -198
  173. package/dist/Model/LookupBase.d.ts +13 -6
  174. package/dist/Model/LookupBase.js +19 -10
  175. package/dist/Model/MethodInfo.d.ts +8 -0
  176. package/dist/Model/MethodInfo.js +7 -0
  177. package/dist/Model/Misc.d.ts +83 -81
  178. package/dist/Model/Misc.js +59 -59
  179. package/dist/Model/ModelBase.d.ts +88 -86
  180. package/dist/Model/ModelBase.js +189 -180
  181. package/dist/Model/ModelCreatorBase.d.ts +23 -23
  182. package/dist/Model/ModelCreatorBase.js +91 -92
  183. package/dist/Model/ModelFieldInfo.d.ts +29 -12
  184. package/dist/Model/ModelFieldInfo.js +35 -26
  185. package/dist/Model/ModelGraphTraverser.d.ts +35 -35
  186. package/dist/Model/ModelGraphTraverser.js +101 -99
  187. package/dist/Model/NeoModel.d.ts +6 -6
  188. package/dist/Model/NeoModel.js +13 -13
  189. package/dist/Model/NeoTypeInfo.d.ts +55 -41
  190. package/dist/Model/NeoTypeInfo.js +319 -250
  191. package/dist/Model/ObservableProperty.d.ts +8 -8
  192. package/dist/Model/ObservableProperty.js +41 -41
  193. package/dist/Model/ObservableValue.d.ts +9 -9
  194. package/dist/Model/ObservableValue.js +25 -26
  195. package/dist/Model/PropertyInfo.d.ts +83 -81
  196. package/dist/Model/PropertyInfo.js +137 -137
  197. package/dist/Model/PropertyInstance.d.ts +84 -48
  198. package/dist/Model/PropertyInstance.js +173 -113
  199. package/dist/Model/ValueObject.d.ts +3 -3
  200. package/dist/Model/ValueObject.js +10 -10
  201. package/dist/Model/index.d.ts +15 -14
  202. package/dist/Model/index.js +13 -12
  203. package/dist/NumberUtils.d.ts +63 -49
  204. package/dist/NumberUtils.js +247 -197
  205. package/dist/Routing/IMenuItemProvider.d.ts +9 -9
  206. package/dist/Routing/IMenuItemProvider.js +1 -1
  207. package/dist/Routing/IMenuRoute.d.ts +18 -18
  208. package/dist/Routing/IMenuRoute.js +1 -1
  209. package/dist/Routing/INavigationHelper.d.ts +7 -7
  210. package/dist/Routing/INavigationHelper.js +1 -1
  211. package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
  212. package/dist/Routing/IPageLeaveHandler.js +7 -7
  213. package/dist/Routing/IRoute.d.ts +27 -27
  214. package/dist/Routing/IRoute.js +1 -1
  215. package/dist/Routing/IRouteSecurityService.d.ts +14 -14
  216. package/dist/Routing/IRouteSecurityService.js +1 -1
  217. package/dist/Routing/MenuItemProvider.d.ts +17 -17
  218. package/dist/Routing/MenuItemProvider.js +53 -54
  219. package/dist/Routing/RouteSecurityService.d.ts +18 -18
  220. package/dist/Routing/RouteSecurityService.js +35 -36
  221. package/dist/Routing/index.d.ts +7 -7
  222. package/dist/Routing/index.js +3 -3
  223. package/dist/Security/IAuthenticationService.d.ts +41 -36
  224. package/dist/Security/IAuthenticationService.js +1 -1
  225. package/dist/Security/IAuthorisationService.d.ts +11 -11
  226. package/dist/Security/IAuthorisationService.js +1 -1
  227. package/dist/Security/ILoginErrorHandler.d.ts +4 -4
  228. package/dist/Security/ILoginErrorHandler.js +1 -1
  229. package/dist/Security/ISecurityService.d.ts +10 -10
  230. package/dist/Security/ISecurityService.js +1 -1
  231. package/dist/Security/IUser.d.ts +10 -10
  232. package/dist/Security/IUser.js +1 -1
  233. package/dist/Security/IUserRole.d.ts +6 -6
  234. package/dist/Security/IUserRole.js +1 -1
  235. package/dist/Security/LoginErrorHandler.d.ts +15 -15
  236. package/dist/Security/LoginErrorHandler.js +97 -98
  237. package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
  238. package/dist/Security/Oidc/OidcAuthService.js +216 -189
  239. package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
  240. package/dist/Security/Oidc/OidcTypes.js +1 -1
  241. package/dist/Security/Oidc/OidcUser.d.ts +9 -9
  242. package/dist/Security/Oidc/OidcUser.js +33 -33
  243. package/dist/Security/SecurityService.d.ts +12 -12
  244. package/dist/Security/SecurityService.js +33 -34
  245. package/dist/Security/SignInResult.d.ts +13 -13
  246. package/dist/Security/SignInResult.js +8 -8
  247. package/dist/Security/User.d.ts +12 -12
  248. package/dist/Security/User.js +24 -24
  249. package/dist/Security/index.d.ts +10 -10
  250. package/dist/Security/index.js +5 -5
  251. package/dist/Settings.d.ts +71 -57
  252. package/dist/Settings.js +100 -87
  253. package/dist/SignalR/HubBase.d.ts +70 -70
  254. package/dist/SignalR/HubBase.js +164 -164
  255. package/dist/SignalR/HubReceiver.d.ts +11 -11
  256. package/dist/SignalR/HubReceiver.js +25 -25
  257. package/dist/SignalR/HubSubscription.d.ts +12 -12
  258. package/dist/SignalR/HubSubscription.js +14 -14
  259. package/dist/SignalR/index.d.ts +3 -3
  260. package/dist/SignalR/index.js +1 -1
  261. package/dist/StringUtils.d.ts +7 -7
  262. package/dist/StringUtils.js +24 -24
  263. package/dist/Utils.d.ts +81 -80
  264. package/dist/Utils.js +220 -218
  265. package/dist/Validation/Decorators.d.ts +12 -12
  266. package/dist/Validation/Decorators.js +52 -52
  267. package/dist/Validation/DisplayHelper.d.ts +20 -19
  268. package/dist/Validation/DisplayHelper.js +104 -104
  269. package/dist/Validation/Misc.d.ts +10 -10
  270. package/dist/Validation/Misc.js +11 -11
  271. package/dist/Validation/ModelProxy.d.ts +20 -20
  272. package/dist/Validation/ModelProxy.js +46 -46
  273. package/dist/Validation/RuleContext.d.ts +86 -86
  274. package/dist/Validation/RuleContext.js +130 -130
  275. package/dist/Validation/Rules.d.ts +70 -70
  276. package/dist/Validation/Rules.js +177 -177
  277. package/dist/Validation/ValidationHelpers.d.ts +12 -12
  278. package/dist/Validation/ValidationHelpers.js +57 -57
  279. package/dist/Validation/ValidationRules.d.ts +18 -18
  280. package/dist/Validation/ValidationRules.js +34 -34
  281. package/dist/Validation/ValidationState.d.ts +42 -42
  282. package/dist/Validation/ValidationState.js +74 -74
  283. package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
  284. package/dist/Validation/Validators/IModelValidator.js +1 -1
  285. package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
  286. package/dist/Validation/Validators/IPropertyValidator.js +15 -15
  287. package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
  288. package/dist/Validation/Validators/ModelValidator.js +143 -137
  289. package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
  290. package/dist/Validation/Validators/PropertyValidator.js +64 -67
  291. package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
  292. package/dist/Validation/Validators/RuleValidator.js +51 -55
  293. package/dist/Validation/index.d.ts +9 -9
  294. package/dist/Validation/index.js +7 -7
  295. package/dist/Views/IViewBase.d.ts +5 -5
  296. package/dist/Views/IViewBase.js +1 -1
  297. package/dist/index.d.ts +37 -36
  298. package/dist/index.js +44 -43
  299. 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
+ }