studiokit-scaffolding-js 7.0.14-alpha.1 → 7.1.1

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 (374) hide show
  1. package/lib/components/ActionList.d.ts +2 -2
  2. package/lib/components/ActionList.js +166 -87
  3. package/lib/components/AlertDialog.d.ts +3 -3
  4. package/lib/components/AlertDialog.js +133 -18
  5. package/lib/components/AlertWithIcon.js +93 -52
  6. package/lib/components/ConnectedModal.d.ts +1 -2
  7. package/lib/components/ConnectedModal.js +41 -35
  8. package/lib/components/Dropdowns/GroupsDropdown.d.ts +4 -4
  9. package/lib/components/Dropdowns/GroupsDropdown.js +69 -82
  10. package/lib/components/Dropdowns/ManagedNavDropdown.d.ts +2 -2
  11. package/lib/components/Dropdowns/ManagedNavDropdown.js +96 -108
  12. package/lib/components/Dropdowns/UserDropdown.js +109 -70
  13. package/lib/components/Dropdowns/index.js +27 -11
  14. package/lib/components/EntityOwnerList.d.ts +3 -3
  15. package/lib/components/EntityOwnerList.js +52 -60
  16. package/lib/components/Error.js +107 -27
  17. package/lib/components/ErrorBoundary.js +133 -94
  18. package/lib/components/ErrorMessage.d.ts +2 -2
  19. package/lib/components/ErrorMessage.js +44 -14
  20. package/lib/components/Forms/DateField.d.ts +2 -2
  21. package/lib/components/Forms/DateField.js +63 -95
  22. package/lib/components/Forms/TimeField.d.ts +2 -2
  23. package/lib/components/Forms/TimeField.js +84 -108
  24. package/lib/components/Forms/index.js +27 -13
  25. package/lib/components/Groups/CreateEditCopySaveButtons.d.ts +2 -2
  26. package/lib/components/Groups/CreateEditCopySaveButtons.js +102 -14
  27. package/lib/components/Groups/ExternalGroups/Attach.d.ts +6 -7
  28. package/lib/components/Groups/ExternalGroups/Attach.js +213 -188
  29. package/lib/components/Groups/ExternalGroups/Table.js +183 -76
  30. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
  31. package/lib/components/Groups/RosterSyncInfo.js +140 -49
  32. package/lib/components/HOC/AccessibleAppComponent.d.ts +2 -2
  33. package/lib/components/HOC/AccessibleAppComponent.js +96 -119
  34. package/lib/components/HOC/ActivityRequiredComponent.d.ts +14 -14
  35. package/lib/components/HOC/ActivityRequiredComponent.js +72 -86
  36. package/lib/components/HOC/AsyncComponent.d.ts +9 -9
  37. package/lib/components/HOC/AsyncComponent.js +53 -129
  38. package/lib/components/HOC/AuthenticatedComponent.d.ts +4 -4
  39. package/lib/components/HOC/AuthenticatedComponent.js +59 -96
  40. package/lib/components/HOC/CollectionComponent.d.ts +12 -12
  41. package/lib/components/HOC/CollectionComponent.js +161 -161
  42. package/lib/components/HOC/CollectionFirstItemComponent.d.ts +13 -13
  43. package/lib/components/HOC/CollectionFirstItemComponent.js +49 -91
  44. package/lib/components/HOC/CollectionItemComponent.d.ts +9 -9
  45. package/lib/components/HOC/CollectionItemComponent.js +159 -158
  46. package/lib/components/HOC/ConnectedModalComponent.d.ts +9 -9
  47. package/lib/components/HOC/ConnectedModalComponent.js +96 -126
  48. package/lib/components/HOC/DataDependentComponent.d.ts +3 -55
  49. package/lib/components/HOC/DataDependentComponent.js +30 -79
  50. package/lib/components/HOC/EntityComponent.d.ts +13 -13
  51. package/lib/components/HOC/EntityComponent.js +63 -101
  52. package/lib/components/HOC/FullscreenModalComponent.d.ts +9 -9
  53. package/lib/components/HOC/FullscreenModalComponent.js +145 -165
  54. package/lib/components/HOC/GroupActivityRequiredComponent.d.ts +2 -2
  55. package/lib/components/HOC/GroupActivityRequiredComponent.js +32 -31
  56. package/lib/components/HOC/GuidComponent.d.ts +1 -1
  57. package/lib/components/HOC/GuidComponent.js +25 -64
  58. package/lib/components/HOC/ModelContextDependencyVerifyComponent.d.ts +28 -29
  59. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +36 -59
  60. package/lib/components/HOC/ModelErrorRedirectComponent.d.ts +10 -10
  61. package/lib/components/HOC/ModelErrorRedirectComponent.js +40 -83
  62. package/lib/components/HOC/SearchPersistorComponent.d.ts +4 -4
  63. package/lib/components/HOC/SearchPersistorComponent.js +243 -216
  64. package/lib/components/HOC/UnauthenticatedComponent.d.ts +12 -12
  65. package/lib/components/HOC/UnauthenticatedComponent.js +37 -82
  66. package/lib/components/HOC/UserComponent.d.ts +1 -1
  67. package/lib/components/HOC/UserComponent.js +12 -11
  68. package/lib/components/Icons/IconAlphaList.js +34 -20
  69. package/lib/components/Icons/IconExternalUser.js +34 -20
  70. package/lib/components/Icons/IconImpersonation.js +34 -20
  71. package/lib/components/Icons/IconStopImpersonating.js +34 -20
  72. package/lib/components/Icons/IconTable.js +35 -21
  73. package/lib/components/Icons/IconTableDeleteCol.js +34 -20
  74. package/lib/components/Icons/IconTableDeleteRow.js +34 -20
  75. package/lib/components/Icons/IconTableInsertCol.js +34 -20
  76. package/lib/components/Icons/IconTableInsertRow.js +34 -20
  77. package/lib/components/Impersonation/Button.d.ts +2 -2
  78. package/lib/components/Impersonation/Button.js +76 -56
  79. package/lib/components/Impersonation/Link.d.ts +2 -2
  80. package/lib/components/Impersonation/Link.js +76 -53
  81. package/lib/components/Impersonation/UserDetail.d.ts +2 -2
  82. package/lib/components/Impersonation/UserDetail.js +64 -15
  83. package/lib/components/Loading.js +27 -21
  84. package/lib/components/LockDownBrowser/Check.js +194 -107
  85. package/lib/components/LockDownBrowser/ExitButton.js +27 -14
  86. package/lib/components/LockDownBrowser/Launch.js +70 -85
  87. package/lib/components/Lti/Confirm.js +152 -33
  88. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.d.ts +4 -2
  89. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -78
  90. package/lib/components/Lti/Launch.js +105 -49
  91. package/lib/components/Lti/LaunchGroup.js +85 -39
  92. package/lib/components/ManageTable.d.ts +1 -2
  93. package/lib/components/ManageTable.js +309 -104
  94. package/lib/components/ManageTableNoDataComponent.js +42 -22
  95. package/lib/components/NewVersionAlert.d.ts +2 -2
  96. package/lib/components/NewVersionAlert.js +82 -91
  97. package/lib/components/NotFound.js +87 -28
  98. package/lib/components/Notifications.d.ts +4 -4
  99. package/lib/components/Notifications.js +187 -169
  100. package/lib/components/PaginationNextButton.js +33 -21
  101. package/lib/components/PaginationPreviousButton.js +33 -21
  102. package/lib/components/Quill/CustomToolbar.d.ts +2 -2
  103. package/lib/components/Quill/CustomToolbar.js +432 -257
  104. package/lib/components/Quill/Formats/Image.d.ts +10 -25
  105. package/lib/components/Quill/Formats/Image.js +76 -82
  106. package/lib/components/Quill/Formats/List.d.ts +6 -3
  107. package/lib/components/Quill/Formats/List.js +50 -72
  108. package/lib/components/Quill/Formats/Video.d.ts +2 -1
  109. package/lib/components/Quill/Formats/Video.js +29 -43
  110. package/lib/components/Quill/ImageDropModule.d.ts +1 -1
  111. package/lib/components/Quill/ImageDropModule.js +142 -115
  112. package/lib/components/Quill/ImageWarning.d.ts +2 -2
  113. package/lib/components/Quill/ImageWarning.js +45 -32
  114. package/lib/components/Quill/ImageWithAltTextModal.d.ts +0 -1
  115. package/lib/components/Quill/ImageWithAltTextModal.js +425 -141
  116. package/lib/components/Quill/Specs/CustomImageSpec.d.ts +1 -1
  117. package/lib/components/Quill/Specs/CustomImageSpec.js +37 -45
  118. package/lib/components/Quill/Specs/CustomVideoSpec.d.ts +1 -1
  119. package/lib/components/Quill/Specs/CustomVideoSpec.js +27 -36
  120. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.d.ts +2 -1
  121. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +100 -116
  122. package/lib/components/Quill/TableModule/Blots/TableBlot.js +53 -66
  123. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +54 -67
  124. package/lib/components/Quill/TableModule/Blots/TableCellBlot.d.ts +1 -1
  125. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +225 -241
  126. package/lib/components/Quill/TableModule/Blots/TableContainer.js +82 -99
  127. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +76 -87
  128. package/lib/components/Quill/TableModule/constants.js +45 -41
  129. package/lib/components/Quill/TableModule/index.css +25 -25
  130. package/lib/components/Quill/TableModule/index.d.ts +14 -5
  131. package/lib/components/Quill/TableModule/index.js +373 -313
  132. package/lib/components/Quill/TableModule/utils.js +45 -45
  133. package/lib/components/Quill/accessibilityFix.d.ts +0 -1
  134. package/lib/components/Quill/accessibilityFix.js +222 -238
  135. package/lib/components/Quill/index.js +36 -32
  136. package/lib/components/RefreshIndicator/Bordered.js +48 -32
  137. package/lib/components/RefreshIndicator/Inline.js +48 -33
  138. package/lib/components/RefreshIndicator/index.d.ts +2 -2
  139. package/lib/components/RefreshIndicator/index.js +263 -113
  140. package/lib/components/SearchControls.js +216 -31
  141. package/lib/components/SentryRoute.js +10 -23
  142. package/lib/components/Tables/RoleFilter.d.ts +3 -4
  143. package/lib/components/Tables/RoleFilter.js +71 -46
  144. package/lib/components/Tables/TextFilter.d.ts +2 -3
  145. package/lib/components/Tables/TextFilter.js +62 -20
  146. package/lib/components/UserRoles/Add.d.ts +3 -3
  147. package/lib/components/UserRoles/Add.js +199 -161
  148. package/lib/components/UserRoles/Context.js +8 -6
  149. package/lib/components/UserRoles/RoleCell.js +181 -100
  150. package/lib/components/UserRoles/Select.js +168 -54
  151. package/lib/components/UserRoles/Table.js +221 -102
  152. package/lib/components/UserRoles/index.d.ts +6 -6
  153. package/lib/components/UserRoles/index.js +535 -464
  154. package/lib/config/eslint/index.d.ts +2 -0
  155. package/lib/config/eslint/index.js +36 -0
  156. package/lib/config/eslint/lib/order.d.ts +3 -0
  157. package/lib/config/eslint/lib/order.js +30 -0
  158. package/lib/config/eslint/lib/prettier.d.ts +3 -0
  159. package/lib/config/eslint/lib/prettier.js +23 -0
  160. package/lib/config/eslint/lib/typescript.d.ts +2 -0
  161. package/lib/config/eslint/lib/typescript.js +98 -0
  162. package/lib/config/eslint/react.d.ts +2 -0
  163. package/lib/config/eslint/react.js +30 -0
  164. package/lib/constants/baseActivity.js +30 -26
  165. package/lib/constants/baseRole.js +14 -10
  166. package/lib/constants/configuration.d.ts +1 -1
  167. package/lib/constants/configuration.js +43 -39
  168. package/lib/constants/externalProviderType.js +10 -6
  169. package/lib/constants/fetchErrorData.js +15 -11
  170. package/lib/constants/index.js +137 -23
  171. package/lib/constants/lockDownBrowser.js +28 -24
  172. package/lib/constants/mockData.d.ts +4 -6
  173. package/lib/constants/mockData.js +383 -324
  174. package/lib/constants/modelStatus.js +15 -11
  175. package/lib/constants/notificationType.js +12 -8
  176. package/lib/constants/operatingSystem.js +12 -8
  177. package/lib/constants/shard.js +11 -7
  178. package/lib/constants/table.js +21 -21
  179. package/lib/constants/tier.js +12 -8
  180. package/lib/constants/userRole.d.ts +1 -2
  181. package/lib/constants/userRole.js +15 -17
  182. package/lib/css/components/_buttons.css +11 -3
  183. package/lib/css/components/_quill.css +3 -3
  184. package/lib/css/components/_tables.css +6 -5
  185. package/lib/css/utils/_display.css +12 -19
  186. package/lib/css/utils/_general.css +1 -1
  187. package/lib/css/utils/_text.css +2 -1
  188. package/lib/css/variables.css +0 -4
  189. package/lib/endpointMappings.js +197 -193
  190. package/lib/hooks/useCollection.js +83 -65
  191. package/lib/hooks/useCollectionConfiguration.d.ts +0 -1
  192. package/lib/hooks/useCollectionConfiguration.js +179 -82
  193. package/lib/hooks/useCollectionItem.js +155 -58
  194. package/lib/hooks/useEventCalback.d.ts +14 -0
  195. package/lib/hooks/useEventCalback.js +51 -0
  196. package/lib/hooks/useGuid.js +19 -8
  197. package/lib/hooks/usePrevious.d.ts +24 -1
  198. package/lib/hooks/usePrevious.js +82 -12
  199. package/lib/index.js +156 -36
  200. package/lib/redux/actionCreator.d.ts +6 -6
  201. package/lib/redux/actionCreator.js +51 -40
  202. package/lib/redux/actions/AuthAction.js +44 -31
  203. package/lib/redux/actions/ModalAction.d.ts +1 -1
  204. package/lib/redux/actions/ModalAction.js +10 -6
  205. package/lib/redux/actions/ModelAction.d.ts +1 -1
  206. package/lib/redux/actions/ModelAction.js +77 -49
  207. package/lib/redux/actions/NotificationAction.js +10 -6
  208. package/lib/redux/actions/SearchAction.js +9 -5
  209. package/lib/redux/actions/index.js +60 -16
  210. package/lib/redux/configureReducers.d.ts +2 -5
  211. package/lib/redux/configureReducers.js +61 -72
  212. package/lib/redux/configureStore.d.ts +2 -2
  213. package/lib/redux/configureStore.js +83 -115
  214. package/lib/redux/helpers.js +7 -2
  215. package/lib/redux/reducers/authReducer.js +50 -44
  216. package/lib/redux/reducers/index.js +41 -15
  217. package/lib/redux/reducers/modalsReducer.js +49 -52
  218. package/lib/redux/reducers/modelsReducer.d.ts +2 -2
  219. package/lib/redux/reducers/modelsReducer.js +136 -135
  220. package/lib/redux/reducers/notificationsReducer.js +26 -21
  221. package/lib/redux/reducers/searchReducer.js +18 -12
  222. package/lib/redux/sagas/appInsightsSaga.js +24 -62
  223. package/lib/redux/sagas/authSaga.js +287 -414
  224. package/lib/redux/sagas/caliperSaga.js +154 -248
  225. package/lib/redux/sagas/clockOffsetSaga.js +35 -76
  226. package/lib/redux/sagas/configurationSaga.js +13 -46
  227. package/lib/redux/sagas/downtimeApiErrorSaga.d.ts +0 -1
  228. package/lib/redux/sagas/downtimeApiErrorSaga.js +23 -64
  229. package/lib/redux/sagas/errorSaga.d.ts +0 -1
  230. package/lib/redux/sagas/errorSaga.js +29 -63
  231. package/lib/redux/sagas/googleAnalyticsSaga.js +29 -69
  232. package/lib/redux/sagas/identityProviderSaga.js +24 -69
  233. package/lib/redux/sagas/initialDataLoadSaga.js +38 -29
  234. package/lib/redux/sagas/lockDownBrowserErrorSaga.d.ts +0 -1
  235. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +32 -81
  236. package/lib/redux/sagas/modelFetchSaga.js +331 -411
  237. package/lib/redux/sagas/noStoreSaga.d.ts +1 -1
  238. package/lib/redux/sagas/noStoreSaga.js +68 -101
  239. package/lib/redux/sagas/postLoginDataSaga.js +42 -74
  240. package/lib/redux/sagas/postLoginRedirectSaga.js +27 -68
  241. package/lib/redux/sagas/rootSaga.js +85 -137
  242. package/lib/redux/sagas/sentrySaga.js +29 -85
  243. package/lib/redux/sagas/userIdSaga.js +18 -54
  244. package/lib/services/codeProviderService.js +25 -29
  245. package/lib/services/dateService.js +12 -10
  246. package/lib/services/documentService.js +15 -10
  247. package/lib/services/fetchService.js +110 -144
  248. package/lib/services/persistenceService.d.ts +4 -4
  249. package/lib/services/persistenceService.js +45 -43
  250. package/lib/services/ticketProviderService.js +29 -33
  251. package/lib/services/tokenPersistenceService.js +13 -9
  252. package/lib/services/windowService.js +21 -17
  253. package/lib/startup.d.ts +1 -1
  254. package/lib/startup.js +115 -118
  255. package/lib/types/AppConfiguration.js +5 -1
  256. package/lib/types/Artifact.js +11 -7
  257. package/lib/types/BaseReduxState.js +5 -1
  258. package/lib/types/Client.js +5 -1
  259. package/lib/types/Collection.d.ts +3 -3
  260. package/lib/types/Collection.js +5 -1
  261. package/lib/types/Configuration.js +5 -1
  262. package/lib/types/DeepLinkingResponseRequest.js +5 -1
  263. package/lib/types/DeletableModel.js +5 -1
  264. package/lib/types/Event.js +5 -1
  265. package/lib/types/ExternalGroup.js +5 -1
  266. package/lib/types/ExternalProvider.js +5 -1
  267. package/lib/types/ExternalTerm.js +5 -1
  268. package/lib/types/Group.js +5 -1
  269. package/lib/types/IdentityProvider.js +5 -1
  270. package/lib/types/LtiLaunch.js +5 -1
  271. package/lib/types/NameOnlyEntity.js +5 -1
  272. package/lib/types/Notification.d.ts +2 -2
  273. package/lib/types/Notification.js +5 -1
  274. package/lib/types/OptionalRecord.d.ts +1 -1
  275. package/lib/types/OptionalRecord.js +5 -1
  276. package/lib/types/OwnerSchedule.d.ts +3 -1
  277. package/lib/types/OwnerSchedule.js +5 -1
  278. package/lib/types/PropertyOfType.d.ts +3 -3
  279. package/lib/types/PropertyOfType.js +5 -1
  280. package/lib/types/Quill.js +5 -1
  281. package/lib/types/RoleDescription.d.ts +0 -1
  282. package/lib/types/RoleDescription.js +5 -1
  283. package/lib/types/Search.js +5 -1
  284. package/lib/types/SimpleLocation.js +5 -1
  285. package/lib/types/UniTime.js +5 -1
  286. package/lib/types/User.js +5 -1
  287. package/lib/types/UserRole.js +5 -1
  288. package/lib/types/auth/AuthState.js +5 -1
  289. package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
  290. package/lib/types/auth/ClientCredentials.js +5 -1
  291. package/lib/types/auth/CodeProviderService.js +5 -1
  292. package/lib/types/auth/LocalLoginRequestBody.js +5 -1
  293. package/lib/types/auth/TicketProviderService.js +5 -1
  294. package/lib/types/auth/TokenPersistenceService.js +5 -1
  295. package/lib/types/auth/index.js +82 -18
  296. package/lib/types/externals.d.js +2 -0
  297. package/lib/types/index.js +313 -39
  298. package/lib/types/net/EndpointConfig.js +5 -1
  299. package/lib/types/net/EndpointMapping.js +5 -1
  300. package/lib/types/net/EndpointMappings.js +5 -1
  301. package/lib/types/net/ErrorHandler.d.ts +1 -1
  302. package/lib/types/net/ErrorHandler.js +5 -1
  303. package/lib/types/net/FetchConfig.d.ts +1 -1
  304. package/lib/types/net/FetchConfig.js +5 -1
  305. package/lib/types/net/FetchErrorData.js +10 -6
  306. package/lib/types/net/FetchResult.d.ts +2 -2
  307. package/lib/types/net/FetchResult.js +5 -1
  308. package/lib/types/net/HTTPMethod.d.ts +1 -1
  309. package/lib/types/net/HTTPMethod.js +5 -1
  310. package/lib/types/net/HTTPStatusCode.js +16 -12
  311. package/lib/types/net/Metadata.js +5 -1
  312. package/lib/types/net/Model.js +5 -1
  313. package/lib/types/net/ModelCollection.js +5 -1
  314. package/lib/types/net/ModelsState.js +5 -1
  315. package/lib/types/net/OAuthToken.js +5 -1
  316. package/lib/types/net/OAuthTokenOrNull.d.ts +1 -1
  317. package/lib/types/net/OAuthTokenOrNull.js +5 -1
  318. package/lib/types/net/TokenAccessFunction.d.ts +1 -1
  319. package/lib/types/net/TokenAccessFunction.js +5 -1
  320. package/lib/types/net/index.js +181 -27
  321. package/lib/utils/baseActivity.d.ts +2 -2
  322. package/lib/utils/baseActivity.js +93 -91
  323. package/lib/utils/baseRole.js +37 -33
  324. package/lib/utils/collection.js +413 -291
  325. package/lib/utils/cookies.js +22 -37
  326. package/lib/utils/date.js +210 -210
  327. package/lib/utils/dom.js +145 -133
  328. package/lib/utils/domainIdentifier.js +9 -9
  329. package/lib/utils/entityUserRole.js +6 -2
  330. package/lib/utils/error.d.ts +1 -1
  331. package/lib/utils/error.js +18 -16
  332. package/lib/utils/events.js +37 -30
  333. package/lib/utils/externalGroup.js +25 -21
  334. package/lib/utils/externalProviders.js +8 -4
  335. package/lib/utils/externalTerms.js +9 -6
  336. package/lib/utils/fetch.d.ts +1 -1
  337. package/lib/utils/fetch.js +179 -176
  338. package/lib/utils/group.js +17 -9
  339. package/lib/utils/groupDates.d.ts +1 -1
  340. package/lib/utils/groupDates.js +43 -39
  341. package/lib/utils/groupRoles.js +28 -28
  342. package/lib/utils/lockDownBrowser.js +16 -12
  343. package/lib/utils/logger.js +30 -25
  344. package/lib/utils/lti.js +10 -5
  345. package/lib/utils/model.d.ts +2 -2
  346. package/lib/utils/model.js +35 -44
  347. package/lib/utils/number.js +13 -16
  348. package/lib/utils/promise.d.ts +6 -1
  349. package/lib/utils/promise.js +34 -15
  350. package/lib/utils/quill.js +60 -71
  351. package/lib/utils/route.d.ts +2 -2
  352. package/lib/utils/route.js +61 -60
  353. package/lib/utils/search.d.ts +1 -1
  354. package/lib/utils/search.js +78 -85
  355. package/lib/utils/shard.js +38 -41
  356. package/lib/utils/sort.d.ts +3 -3
  357. package/lib/utils/sort.js +62 -58
  358. package/lib/utils/string.js +14 -10
  359. package/lib/utils/table.d.ts +3 -3
  360. package/lib/utils/table.js +36 -33
  361. package/lib/utils/timezone.js +12 -26
  362. package/lib/utils/url.d.ts +2 -1
  363. package/lib/utils/url.js +139 -193
  364. package/lib/utils/user.js +59 -61
  365. package/lib/utils/userAgent.js +11 -11
  366. package/lib/utils/userRole.d.ts +3 -3
  367. package/lib/utils/userRole.js +46 -44
  368. package/package.json +90 -73
  369. package/lib/config/eslint/index.cjs +0 -21
  370. package/lib/config/eslint/lib/order.cjs +0 -22
  371. package/lib/config/eslint/lib/prettier.cjs +0 -18
  372. package/lib/config/eslint/lib/typescript.cjs +0 -86
  373. package/lib/config/eslint/react.cjs +0 -9
  374. package/lib/css/utils/_focus.css +0 -4
package/lib/utils/url.js CHANGED
@@ -1,221 +1,167 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.parseLocation = exports.parseHeadersResponse = exports.X_FRAME_OPTIONS = exports.fetchText = exports.isUrlValid = exports.hasHttpProtocol = exports.getStorageUrl = exports.getApiBaseUrl = void 0;
40
- var lodash_1 = require("lodash");
41
- var shard_1 = require("../constants/shard");
42
- var tier_1 = require("../constants/tier");
43
- var windowService_1 = require("../services/windowService");
44
- var logger_1 = require("./logger");
45
- var shard_2 = require("./shard");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.X_FRAME_OPTIONS = void 0;
7
+ exports.fetchText = fetchText;
8
+ exports.getApiBaseUrl = getApiBaseUrl;
9
+ exports.getStorageUrl = getStorageUrl;
10
+ exports.hasHttpProtocol = hasHttpProtocol;
11
+ exports.isUrlValid = isUrlValid;
12
+ exports.parseLocation = exports.parseHeadersResponse = void 0;
13
+ var _lodash = require("lodash");
14
+ var _shard = require("../constants/shard");
15
+ var _tier = require("../constants/tier");
16
+ var _windowService = require("../services/windowService");
17
+ var _logger = require("./logger");
18
+ var _shard2 = require("./shard");
46
19
  function getApiBaseUrl(tier, apiUrlString) {
47
- // skip shard logic on LOCAL or if not using a custom domain (e.g. staging)
48
- if (tier === tier_1.TIER.LOCAL || apiUrlString.includes('azurewebsites.net')) {
49
- return apiUrlString;
50
- }
51
- var shardKey = shard_2.getShardKey();
52
- // TODO: default ROOT to point to Purdue, until we have a landing marketing page
53
- if (shardKey === shard_1.SHARD.ROOT) {
54
- shardKey = shard_1.SHARD.PURDUE;
55
- }
56
- var protocol = apiUrlString.substring(0, apiUrlString.indexOf('//'));
57
- var host = apiUrlString.substring(apiUrlString.indexOf('://') + 3);
58
- var tierSubdomainPart = '';
59
- switch (tier) {
60
- case tier_1.TIER.DEV:
61
- tierSubdomainPart = '.dev';
62
- break;
63
- case tier_1.TIER.QA:
64
- tierSubdomainPart = '.qa';
65
- break;
66
- }
67
- return protocol + "//" + shardKey + tierSubdomainPart + "." + host;
20
+ // skip shard logic on LOCAL or if not using a custom domain (e.g. staging)
21
+ if (tier === _tier.TIER.LOCAL || apiUrlString.includes('azurewebsites.net')) {
22
+ return apiUrlString;
23
+ }
24
+ let shardKey = (0, _shard2.getShardKey)();
25
+
26
+ // TODO: default ROOT to point to Purdue, until we have a landing marketing page
27
+ if (shardKey === _shard.SHARD.ROOT) {
28
+ shardKey = _shard.SHARD.PURDUE;
29
+ }
30
+ const protocol = apiUrlString.substring(0, apiUrlString.indexOf('//'));
31
+ const host = apiUrlString.substring(apiUrlString.indexOf('://') + 3);
32
+ let tierSubdomainPart = '';
33
+ switch (tier) {
34
+ case _tier.TIER.DEV:
35
+ tierSubdomainPart = '.dev';
36
+ break;
37
+ case _tier.TIER.QA:
38
+ tierSubdomainPart = '.qa';
39
+ break;
40
+ }
41
+ return `${protocol}//${shardKey}${tierSubdomainPart}.${host}`;
68
42
  }
69
- exports.getApiBaseUrl = getApiBaseUrl;
70
43
  function getStorageUrl(config, url) {
71
- return config.TIER === tier_1.TIER.LOCAL && !!config.STORAGE_URL
72
- ? url.replace('http://127.0.0.1:10000', config.STORAGE_URL)
73
- : url;
44
+ return config.TIER === _tier.TIER.LOCAL && !!config.STORAGE_URL ? url.replace('http://127.0.0.1:10000', config.STORAGE_URL) : url;
74
45
  }
75
- exports.getStorageUrl = getStorageUrl;
76
46
  function hasHttpProtocol(url) {
77
- return /^(http|https):\/\//.test(url);
47
+ return /^(http|https):\/\//.test(url);
78
48
  }
79
- exports.hasHttpProtocol = hasHttpProtocol;
80
49
  function isUrlValid(url) {
81
- // modified from https://stackoverflow.com/a/3809435
82
- return /^(https?:\/\/)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_.~#?&/[\]!$&'*+,;=]*)$/.test(url);
50
+ // modified from https://stackoverflow.com/a/3809435
51
+ return /^(https?:\/\/)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_.~#?&/[\]!$&'*+,;=]*)$/.test(url);
83
52
  }
84
- exports.isUrlValid = isUrlValid;
53
+
85
54
  /** The total number of tries for `fetchText`, including the initial request. */
86
- var TRY_LIMIT = 5;
55
+ const TRY_LIMIT = 5;
87
56
  function wait(time) {
88
- return new Promise(function (resolve) {
89
- setTimeout(resolve, time);
90
- });
57
+ return new Promise(resolve => {
58
+ setTimeout(resolve, time);
59
+ });
91
60
  }
92
- function fetchText(url, options) {
93
- return __awaiter(this, void 0, void 0, function () {
94
- var tryCount, resp, text, error_1;
95
- return __generator(this, function (_a) {
96
- switch (_a.label) {
97
- case 0:
98
- tryCount = 0;
99
- _a.label = 1;
100
- case 1:
101
- tryCount++;
102
- _a.label = 2;
103
- case 2:
104
- _a.trys.push([2, 5, , 8]);
105
- return [4 /*yield*/, fetch(url, options)];
106
- case 3:
107
- resp = _a.sent();
108
- return [4 /*yield*/, resp.text()];
109
- case 4:
110
- text = _a.sent();
111
- return [2 /*return*/, text];
112
- case 5:
113
- error_1 = _a.sent();
114
- logger_1.getLogger().error("Failed to fetch " + url + ". attempt: " + tryCount + ", error: " + error_1);
115
- if (!(tryCount < TRY_LIMIT)) return [3 /*break*/, 7];
116
- return [4 /*yield*/, wait(Math.pow(2, (tryCount - 1)) * 100)]; // 100, 200, 400, 800
117
- case 6:
118
- _a.sent(); // 100, 200, 400, 800
119
- _a.label = 7;
120
- case 7: return [3 /*break*/, 8];
121
- case 8:
122
- if (tryCount < TRY_LIMIT) return [3 /*break*/, 1];
123
- _a.label = 9;
124
- case 9: throw new Error("Failed to fetch " + url + " after " + TRY_LIMIT + " attempts.");
125
- }
126
- });
127
- });
61
+ async function fetchText(url, options) {
62
+ let tryCount = 0;
63
+ do {
64
+ tryCount++;
65
+ try {
66
+ const resp = await fetch(url, options);
67
+ const text = await resp.text();
68
+ return text;
69
+ } catch (error) {
70
+ (0, _logger.getLogger)().error(`Failed to fetch ${url}. attempt: ${tryCount}, error: ${error}`);
71
+ if (tryCount < TRY_LIMIT) {
72
+ await wait(2 ** (tryCount - 1) * 100); // 100, 200, 400, 800
73
+ }
74
+ }
75
+ } while (tryCount < TRY_LIMIT);
76
+ throw new Error(`Failed to fetch ${url} after ${TRY_LIMIT} attempts.`);
128
77
  }
129
- exports.fetchText = fetchText;
130
- var X_FRAME_OPTIONS;
131
- (function (X_FRAME_OPTIONS) {
132
- X_FRAME_OPTIONS["DENY"] = "DENY";
133
- X_FRAME_OPTIONS["SAMEORIGIN"] = "SAMEORIGIN";
134
- X_FRAME_OPTIONS["ALLOW_FROM"] = "ALLOW-FROM";
135
- })(X_FRAME_OPTIONS = exports.X_FRAME_OPTIONS || (exports.X_FRAME_OPTIONS = {}));
78
+ let X_FRAME_OPTIONS = exports.X_FRAME_OPTIONS = /*#__PURE__*/function (X_FRAME_OPTIONS) {
79
+ X_FRAME_OPTIONS["DENY"] = "DENY";
80
+ X_FRAME_OPTIONS["SAMEORIGIN"] = "SAMEORIGIN";
81
+ X_FRAME_OPTIONS["ALLOW_FROM"] = "ALLOW-FROM";
82
+ return X_FRAME_OPTIONS;
83
+ }({});
136
84
  /**
137
85
  * Using the given headers, determine if a url is allowed to be displayed in an iFrame.
138
86
  * @param headers An array of request headers.
139
87
  * @returns The parsed result
140
88
  */
141
- var parseHeadersResponse = function (headers) {
142
- // default result
143
- var result = {
144
- isValid: false,
145
- iFrameAllowed: undefined
146
- };
147
- if (!headers) {
148
- return result;
89
+ const parseHeadersResponse = headers => {
90
+ // default result
91
+ const result = {
92
+ isValid: false,
93
+ iFrameAllowed: undefined
94
+ };
95
+ if (!headers) {
96
+ return result;
97
+ }
98
+ result.isValid = true;
99
+ result.iFrameAllowed = true;
100
+ const location = _windowService.windowService.getLocation();
101
+
102
+ // content-security-policy / x-content-security-policy
103
+ // can contain 'frame-ancestors <source> <source>' with one or many sources
104
+ // iFrameAllowed if it does not contain 'frame-ancestors' or if it does with an acceptable source
105
+ const xContentSecurityPolicy = (0, _lodash.find)(headers, (value, key) => key.toLowerCase() === 'content-security-policy' || key.toLowerCase() === 'x-content-security-policy');
106
+ if (xContentSecurityPolicy && (0, _lodash.isArray)(xContentSecurityPolicy)) {
107
+ // define all acceptable frame-ancestors sources
108
+ // protocol, full location host, host, and all wildcard permutations
109
+ const acceptableSources = [location.protocol, `${location.protocol}//${location.host}`, location.host];
110
+ const hostParts = location.host.split('.');
111
+ while (hostParts.length > 2) {
112
+ hostParts.shift();
113
+ const tempHost = `*.${hostParts.join('.')}`;
114
+ acceptableSources.push(tempHost);
115
+ acceptableSources.push(`${location.protocol}//${tempHost}`);
149
116
  }
150
- result.isValid = true;
151
- result.iFrameAllowed = true;
152
- var location = windowService_1.windowService.getLocation();
153
- // content-security-policy / x-content-security-policy
154
- // can contain 'frame-ancestors <source> <source>' with one or many sources
155
- // iFrameAllowed if it does not contain 'frame-ancestors' or if it does with an acceptable source
156
- var xContentSecurityPolicy = lodash_1.find(headers, function (value, key) {
157
- return key.toLowerCase() === 'content-security-policy' || key.toLowerCase() === 'x-content-security-policy';
117
+ result.iFrameAllowed = !xContentSecurityPolicy.some(x => x.indexOf('frame-ancestors ') >= 0) || xContentSecurityPolicy.some(x => {
118
+ /**
119
+ * Matches
120
+ * * the string `frame-ancestors `
121
+ * * one or many of the following, followed by a space, semicolon, or end of string
122
+ * * `http:`
123
+ * * `https:`
124
+ * * `'self'`
125
+ * * `'none'`
126
+ * * url with optional scheme and optional asterisk wildcards
127
+ */
128
+ const frameAncestorsRegex = /frame-ancestors ((?:(?:(?:http:)|(?:https:)|(?:'self')|(?:'none')|(?:(?:https?:\/\/)?[\w*.-]+(?:\.[\w*.-]+)+[\w-._~:/?#[\]@!$&'()*+,=]+))(?:[ ;]|$))+)/g;
129
+ const results = frameAncestorsRegex.exec(x);
130
+ if (!results) {
131
+ return false;
132
+ }
133
+ const sources = results[1].split(' ');
134
+ return sources.some(source => acceptableSources.some(acceptableSource => acceptableSource === source));
158
135
  });
159
- if (xContentSecurityPolicy) {
160
- // define all acceptable frame-ancestors sources
161
- // protocol, full location host, host, and all wildcard permutations
162
- var acceptableSources_1 = [location.protocol, location.protocol + "//" + location.host, location.host];
163
- var hostParts = location.host.split('.');
164
- while (hostParts.length > 2) {
165
- hostParts.shift();
166
- var tempHost = "*." + hostParts.join('.');
167
- acceptableSources_1.push(tempHost);
168
- acceptableSources_1.push(location.protocol + "//" + tempHost);
169
- }
170
- result.iFrameAllowed =
171
- !xContentSecurityPolicy.some(function (x) { return x.indexOf('frame-ancestors ') >= 0; }) ||
172
- xContentSecurityPolicy.some(function (x) {
173
- /**
174
- * Matches
175
- * * the string `frame-ancestors `
176
- * * one or many of the following, followed by a space, semicolon, or end of string
177
- * * `http:`
178
- * * `https:`
179
- * * `'self'`
180
- * * `'none'`
181
- * * url with optional scheme and optional asterisk wildcards
182
- */
183
- var frameAncestorsRegex = /frame-ancestors ((?:(?:(?:http:)|(?:https:)|(?:'self')|(?:'none')|(?:(?:https?:\/\/)?[\w*.-]+(?:\.[\w*.-]+)+[\w-._~:/?#[\]@!$&'()*+,=]+))(?:[ ;]|$))+)/g;
184
- var results = frameAncestorsRegex.exec(x);
185
- if (!results) {
186
- return false;
187
- }
188
- var sources = results[1].split(' ');
189
- return sources.some(function (source) { return acceptableSources_1.some(function (acceptableSource) { return acceptableSource === source; }); });
190
- });
191
- }
192
- // x-frame-options can be ['SAMEORIGIN', 'DENY', 'ALLOW-FROM...']
193
- // iFrameAllowed if the the x-frame-options is 'ALLOW-FROM {app web url}'
194
- var xFrameOptions = lodash_1.find(headers, function (value, key) { return key.toLowerCase() === 'x-frame-options'; });
195
- if (xFrameOptions) {
196
- result.iFrameAllowed =
197
- !xFrameOptions.some(function (x) { return x === X_FRAME_OPTIONS.DENY || x === X_FRAME_OPTIONS.SAMEORIGIN; }) &&
198
- xFrameOptions.some(function (x) { return x === X_FRAME_OPTIONS.ALLOW_FROM + " " + location.protocol + "//" + location.host; });
199
- }
200
- return result;
136
+ }
137
+
138
+ // x-frame-options can be ['SAMEORIGIN', 'DENY', 'ALLOW-FROM...']
139
+ // iFrameAllowed if the the x-frame-options is 'ALLOW-FROM {app web url}'
140
+ const xFrameOptions = (0, _lodash.find)(headers, (value, key) => key.toLowerCase() === 'x-frame-options');
141
+ if (xFrameOptions && (0, _lodash.isArray)(xFrameOptions)) {
142
+ result.iFrameAllowed = !xFrameOptions.some(x => x === X_FRAME_OPTIONS.DENY || x === X_FRAME_OPTIONS.SAMEORIGIN) && xFrameOptions.some(x => x === `${X_FRAME_OPTIONS.ALLOW_FROM} ${location.protocol}//${location.host}`);
143
+ }
144
+ return result;
201
145
  };
202
- exports.parseHeadersResponse = parseHeadersResponse;
146
+
203
147
  /**
204
148
  * Parse a path string into a location with separate pathname, search, and hash components.
205
149
  * @param path A path string
206
150
  * @returns The parsed result
207
151
  */
208
- var parseLocation = function (path) {
209
- var searchStart = path.indexOf('?');
210
- var hashStart = path.indexOf('#');
211
- var searchEnd = hashStart > -1 ? hashStart : undefined;
212
- var pathname = searchStart > -1 ? path.substring(0, searchStart) : hashStart > -1 ? path.substring(0, hashStart) : path;
213
- var search = searchStart > -1 ? path.substring(searchStart, searchEnd) : undefined;
214
- var hash = hashStart > -1 ? path.substring(hashStart) : undefined;
215
- return {
216
- pathname: pathname || '/',
217
- search: search,
218
- hash: hash
219
- };
152
+ exports.parseHeadersResponse = parseHeadersResponse;
153
+ const parseLocation = path => {
154
+ const searchStart = path.indexOf('?');
155
+ const hashStart = path.indexOf('#');
156
+ const searchEnd = hashStart > -1 ? hashStart : undefined;
157
+ const pathname = searchStart > -1 ? path.substring(0, searchStart) : hashStart > -1 ? path.substring(0, hashStart) : path;
158
+ const search = searchStart > -1 ? path.substring(searchStart, searchEnd) : undefined;
159
+ const hash = hashStart > -1 ? path.substring(hashStart) : undefined;
160
+ return {
161
+ pathname: pathname || '/',
162
+ search: search,
163
+ hash: hash
164
+ };
220
165
  };
221
166
  exports.parseLocation = parseLocation;
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9zaGFyZCIsIl90aWVyIiwiX3dpbmRvd1NlcnZpY2UiLCJfbG9nZ2VyIiwiX3NoYXJkMiIsImdldEFwaUJhc2VVcmwiLCJ0aWVyIiwiYXBpVXJsU3RyaW5nIiwiVElFUiIsIkxPQ0FMIiwiaW5jbHVkZXMiLCJzaGFyZEtleSIsImdldFNoYXJkS2V5IiwiU0hBUkQiLCJST09UIiwiUFVSRFVFIiwicHJvdG9jb2wiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwiaG9zdCIsInRpZXJTdWJkb21haW5QYXJ0IiwiREVWIiwiUUEiLCJnZXRTdG9yYWdlVXJsIiwiY29uZmlnIiwidXJsIiwiU1RPUkFHRV9VUkwiLCJyZXBsYWNlIiwiaGFzSHR0cFByb3RvY29sIiwidGVzdCIsImlzVXJsVmFsaWQiLCJUUllfTElNSVQiLCJ3YWl0IiwidGltZSIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImZldGNoVGV4dCIsIm9wdGlvbnMiLCJ0cnlDb3VudCIsInJlc3AiLCJmZXRjaCIsInRleHQiLCJlcnJvciIsImdldExvZ2dlciIsIkVycm9yIiwiWF9GUkFNRV9PUFRJT05TIiwiZXhwb3J0cyIsInBhcnNlSGVhZGVyc1Jlc3BvbnNlIiwiaGVhZGVycyIsInJlc3VsdCIsImlzVmFsaWQiLCJpRnJhbWVBbGxvd2VkIiwidW5kZWZpbmVkIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJ4Q29udGVudFNlY3VyaXR5UG9saWN5IiwiZmluZCIsInZhbHVlIiwia2V5IiwidG9Mb3dlckNhc2UiLCJpc0FycmF5IiwiYWNjZXB0YWJsZVNvdXJjZXMiLCJob3N0UGFydHMiLCJzcGxpdCIsImxlbmd0aCIsInNoaWZ0IiwidGVtcEhvc3QiLCJqb2luIiwicHVzaCIsInNvbWUiLCJ4IiwiZnJhbWVBbmNlc3RvcnNSZWdleCIsInJlc3VsdHMiLCJleGVjIiwic291cmNlcyIsInNvdXJjZSIsImFjY2VwdGFibGVTb3VyY2UiLCJ4RnJhbWVPcHRpb25zIiwiREVOWSIsIlNBTUVPUklHSU4iLCJBTExPV19GUk9NIiwicGFyc2VMb2NhdGlvbiIsInBhdGgiLCJzZWFyY2hTdGFydCIsImhhc2hTdGFydCIsInNlYXJjaEVuZCIsInBhdGhuYW1lIiwic2VhcmNoIiwiaGFzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnaGlzdG9yeSdcbmltcG9ydCB7IERpY3Rpb25hcnksIGZpbmQsIGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBTSEFSRCB9IGZyb20gJy4uL2NvbnN0YW50cy9zaGFyZCdcbmltcG9ydCB7IFRJRVIgfSBmcm9tICcuLi9jb25zdGFudHMvdGllcidcbmltcG9ydCB7IHdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93aW5kb3dTZXJ2aWNlJ1xuaW1wb3J0IHsgQXBwQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBnZXRTaGFyZEtleSB9IGZyb20gJy4vc2hhcmQnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlCYXNlVXJsKHRpZXI6IFRJRVIsIGFwaVVybFN0cmluZzogc3RyaW5nKSB7XG5cdC8vIHNraXAgc2hhcmQgbG9naWMgb24gTE9DQUwgb3IgaWYgbm90IHVzaW5nIGEgY3VzdG9tIGRvbWFpbiAoZS5nLiBzdGFnaW5nKVxuXHRpZiAodGllciA9PT0gVElFUi5MT0NBTCB8fCBhcGlVcmxTdHJpbmcuaW5jbHVkZXMoJ2F6dXJld2Vic2l0ZXMubmV0JykpIHtcblx0XHRyZXR1cm4gYXBpVXJsU3RyaW5nXG5cdH1cblx0bGV0IHNoYXJkS2V5ID0gZ2V0U2hhcmRLZXkoKVxuXG5cdC8vIFRPRE86IGRlZmF1bHQgUk9PVCB0byBwb2ludCB0byBQdXJkdWUsIHVudGlsIHdlIGhhdmUgYSBsYW5kaW5nIG1hcmtldGluZyBwYWdlXG5cdGlmIChzaGFyZEtleSA9PT0gU0hBUkQuUk9PVCkge1xuXHRcdHNoYXJkS2V5ID0gU0hBUkQuUFVSRFVFXG5cdH1cblxuXHRjb25zdCBwcm90b2NvbCA9IGFwaVVybFN0cmluZy5zdWJzdHJpbmcoMCwgYXBpVXJsU3RyaW5nLmluZGV4T2YoJy8vJykpXG5cdGNvbnN0IGhvc3QgPSBhcGlVcmxTdHJpbmcuc3Vic3RyaW5nKGFwaVVybFN0cmluZy5pbmRleE9mKCc6Ly8nKSArIDMpXG5cdGxldCB0aWVyU3ViZG9tYWluUGFydCA9ICcnXG5cdHN3aXRjaCAodGllcikge1xuXHRcdGNhc2UgVElFUi5ERVY6XG5cdFx0XHR0aWVyU3ViZG9tYWluUGFydCA9ICcuZGV2J1xuXHRcdFx0YnJlYWtcblx0XHRjYXNlIFRJRVIuUUE6XG5cdFx0XHR0aWVyU3ViZG9tYWluUGFydCA9ICcucWEnXG5cdFx0XHRicmVha1xuXHR9XG5cdHJldHVybiBgJHtwcm90b2NvbH0vLyR7c2hhcmRLZXl9JHt0aWVyU3ViZG9tYWluUGFydH0uJHtob3N0fWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2VVcmwoY29uZmlnOiBBcHBDb25maWd1cmF0aW9uLCB1cmw6IHN0cmluZykge1xuXHRyZXR1cm4gY29uZmlnLlRJRVIgPT09IFRJRVIuTE9DQUwgJiYgISFjb25maWcuU1RPUkFHRV9VUkxcblx0XHQ/IHVybC5yZXBsYWNlKCdodHRwOi8vMTI3LjAuMC4xOjEwMDAwJywgY29uZmlnLlNUT1JBR0VfVVJMKVxuXHRcdDogdXJsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNIdHRwUHJvdG9jb2wodXJsOiBzdHJpbmcpIHtcblx0cmV0dXJuIC9eKGh0dHB8aHR0cHMpOlxcL1xcLy8udGVzdCh1cmwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VybFZhbGlkKHVybDogc3RyaW5nKSB7XG5cdC8vIG1vZGlmaWVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM4MDk0MzVcblx0cmV0dXJuIC9eKGh0dHBzPzpcXC9cXC8pP1stYS16QS1aMC05QDolLl8rfiM9XXsxLDI1Nn1cXC5bYS16QS1aMC05KCldezEsNn1cXGIoWy1hLXpBLVowLTkoKUA6JV8ufiM/Ji9bXFxdISQmJyorLDs9XSopJC8udGVzdChcblx0XHR1cmxcblx0KVxufVxuXG4vKiogVGhlIHRvdGFsIG51bWJlciBvZiB0cmllcyBmb3IgYGZldGNoVGV4dGAsIGluY2x1ZGluZyB0aGUgaW5pdGlhbCByZXF1ZXN0LiAqL1xuY29uc3QgVFJZX0xJTUlUID0gNVxuXG5mdW5jdGlvbiB3YWl0KHRpbWU6IG51bWJlcikge1xuXHRyZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG5cdFx0c2V0VGltZW91dChyZXNvbHZlLCB0aW1lKVxuXHR9KVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hUZXh0KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdEluaXQpIHtcblx0bGV0IHRyeUNvdW50ID0gMFxuXHRkbyB7XG5cdFx0dHJ5Q291bnQrK1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCByZXNwID0gYXdhaXQgZmV0Y2godXJsLCBvcHRpb25zKVxuXHRcdFx0Y29uc3QgdGV4dCA9IGF3YWl0IHJlc3AudGV4dCgpXG5cdFx0XHRyZXR1cm4gdGV4dFxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRnZXRMb2dnZXIoKS5lcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dXJsfS4gYXR0ZW1wdDogJHt0cnlDb3VudH0sIGVycm9yOiAke2Vycm9yfWApXG5cdFx0XHRpZiAodHJ5Q291bnQgPCBUUllfTElNSVQpIHtcblx0XHRcdFx0YXdhaXQgd2FpdCgyICoqICh0cnlDb3VudCAtIDEpICogMTAwKSAvLyAxMDAsIDIwMCwgNDAwLCA4MDBcblx0XHRcdH1cblx0XHR9XG5cdH0gd2hpbGUgKHRyeUNvdW50IDwgVFJZX0xJTUlUKVxuXG5cdHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dXJsfSBhZnRlciAke1RSWV9MSU1JVH0gYXR0ZW1wdHMuYClcbn1cblxuZXhwb3J0IGVudW0gWF9GUkFNRV9PUFRJT05TIHtcblx0REVOWSA9ICdERU5ZJyxcblx0U0FNRU9SSUdJTiA9ICdTQU1FT1JJR0lOJyxcblx0QUxMT1dfRlJPTSA9ICdBTExPVy1GUk9NJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZEhlYWRlcnNSZXNwb25zZSB7XG5cdGlzVmFsaWQ6IGJvb2xlYW5cblx0aUZyYW1lQWxsb3dlZD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBVc2luZyB0aGUgZ2l2ZW4gaGVhZGVycywgZGV0ZXJtaW5lIGlmIGEgdXJsIGlzIGFsbG93ZWQgdG8gYmUgZGlzcGxheWVkIGluIGFuIGlGcmFtZS5cbiAqIEBwYXJhbSBoZWFkZXJzIEFuIGFycmF5IG9mIHJlcXVlc3QgaGVhZGVycy5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzdWx0XG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUhlYWRlcnNSZXNwb25zZSA9IChoZWFkZXJzPzogRGljdGlvbmFyeTxzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4pID0+IHtcblx0Ly8gZGVmYXVsdCByZXN1bHRcblx0Y29uc3QgcmVzdWx0OiBQYXJzZWRIZWFkZXJzUmVzcG9uc2UgPSB7XG5cdFx0aXNWYWxpZDogZmFsc2UsXG5cdFx0aUZyYW1lQWxsb3dlZDogdW5kZWZpbmVkXG5cdH1cblxuXHRpZiAoIWhlYWRlcnMpIHtcblx0XHRyZXR1cm4gcmVzdWx0XG5cdH1cblxuXHRyZXN1bHQuaXNWYWxpZCA9IHRydWVcblx0cmVzdWx0LmlGcmFtZUFsbG93ZWQgPSB0cnVlXG5cblx0Y29uc3QgbG9jYXRpb24gPSB3aW5kb3dTZXJ2aWNlLmdldExvY2F0aW9uKClcblxuXHQvLyBjb250ZW50LXNlY3VyaXR5LXBvbGljeSAvIHgtY29udGVudC1zZWN1cml0eS1wb2xpY3lcblx0Ly8gY2FuIGNvbnRhaW4gJ2ZyYW1lLWFuY2VzdG9ycyA8c291cmNlPiA8c291cmNlPicgd2l0aCBvbmUgb3IgbWFueSBzb3VyY2VzXG5cdC8vIGlGcmFtZUFsbG93ZWQgaWYgaXQgZG9lcyBub3QgY29udGFpbiAnZnJhbWUtYW5jZXN0b3JzJyBvciBpZiBpdCBkb2VzIHdpdGggYW4gYWNjZXB0YWJsZSBzb3VyY2Vcblx0Y29uc3QgeENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGZpbmQoXG5cdFx0aGVhZGVycyxcblx0XHQodmFsdWUsIGtleSkgPT5cblx0XHRcdGtleS50b0xvd2VyQ2FzZSgpID09PSAnY29udGVudC1zZWN1cml0eS1wb2xpY3knIHx8IGtleS50b0xvd2VyQ2FzZSgpID09PSAneC1jb250ZW50LXNlY3VyaXR5LXBvbGljeSdcblx0KVxuXHRpZiAoeENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiBpc0FycmF5KHhDb250ZW50U2VjdXJpdHlQb2xpY3kpKSB7XG5cdFx0Ly8gZGVmaW5lIGFsbCBhY2NlcHRhYmxlIGZyYW1lLWFuY2VzdG9ycyBzb3VyY2VzXG5cdFx0Ly8gcHJvdG9jb2wsIGZ1bGwgbG9jYXRpb24gaG9zdCwgaG9zdCwgYW5kIGFsbCB3aWxkY2FyZCBwZXJtdXRhdGlvbnNcblx0XHRjb25zdCBhY2NlcHRhYmxlU291cmNlcyA9IFtsb2NhdGlvbi5wcm90b2NvbCwgYCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke2xvY2F0aW9uLmhvc3R9YCwgbG9jYXRpb24uaG9zdF1cblx0XHRjb25zdCBob3N0UGFydHMgPSBsb2NhdGlvbi5ob3N0LnNwbGl0KCcuJylcblx0XHR3aGlsZSAoaG9zdFBhcnRzLmxlbmd0aCA+IDIpIHtcblx0XHRcdGhvc3RQYXJ0cy5zaGlmdCgpXG5cdFx0XHRjb25zdCB0ZW1wSG9zdCA9IGAqLiR7aG9zdFBhcnRzLmpvaW4oJy4nKX1gXG5cdFx0XHRhY2NlcHRhYmxlU291cmNlcy5wdXNoKHRlbXBIb3N0KVxuXHRcdFx0YWNjZXB0YWJsZVNvdXJjZXMucHVzaChgJHtsb2NhdGlvbi5wcm90b2NvbH0vLyR7dGVtcEhvc3R9YClcblx0XHR9XG5cdFx0cmVzdWx0LmlGcmFtZUFsbG93ZWQgPVxuXHRcdFx0IXhDb250ZW50U2VjdXJpdHlQb2xpY3kuc29tZSh4ID0+IHguaW5kZXhPZignZnJhbWUtYW5jZXN0b3JzICcpID49IDApIHx8XG5cdFx0XHR4Q29udGVudFNlY3VyaXR5UG9saWN5LnNvbWUoeCA9PiB7XG5cdFx0XHRcdC8qKlxuXHRcdFx0XHQgKiBNYXRjaGVzXG5cdFx0XHRcdCAqICogdGhlIHN0cmluZyBgZnJhbWUtYW5jZXN0b3JzIGBcblx0XHRcdFx0ICogKiBvbmUgb3IgbWFueSBvZiB0aGUgZm9sbG93aW5nLCBmb2xsb3dlZCBieSBhIHNwYWNlLCBzZW1pY29sb24sIG9yIGVuZCBvZiBzdHJpbmdcblx0XHRcdFx0ICogICAgICogYGh0dHA6YFxuXHRcdFx0XHQgKiAgICAgKiBgaHR0cHM6YFxuXHRcdFx0XHQgKiAgICAgKiBgJ3NlbGYnYFxuXHRcdFx0XHQgKiAgICAgKiBgJ25vbmUnYFxuXHRcdFx0XHQgKiAgICAgKiB1cmwgd2l0aCBvcHRpb25hbCBzY2hlbWUgYW5kIG9wdGlvbmFsIGFzdGVyaXNrIHdpbGRjYXJkc1xuXHRcdFx0XHQgKi9cblx0XHRcdFx0Y29uc3QgZnJhbWVBbmNlc3RvcnNSZWdleCA9XG5cdFx0XHRcdFx0L2ZyYW1lLWFuY2VzdG9ycyAoKD86KD86KD86aHR0cDopfCg/Omh0dHBzOil8KD86J3NlbGYnKXwoPzonbm9uZScpfCg/Oig/Omh0dHBzPzpcXC9cXC8pP1tcXHcqLi1dKyg/OlxcLltcXHcqLi1dKykrW1xcdy0uX346Lz8jW1xcXUAhJCYnKCkqKyw9XSspKSg/OlsgO118JCkpKykvZ1xuXHRcdFx0XHRjb25zdCByZXN1bHRzID0gZnJhbWVBbmNlc3RvcnNSZWdleC5leGVjKHgpXG5cdFx0XHRcdGlmICghcmVzdWx0cykge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZVxuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IHNvdXJjZXMgPSByZXN1bHRzWzFdLnNwbGl0KCcgJylcblx0XHRcdFx0cmV0dXJuIHNvdXJjZXMuc29tZShzb3VyY2UgPT4gYWNjZXB0YWJsZVNvdXJjZXMuc29tZShhY2NlcHRhYmxlU291cmNlID0+IGFjY2VwdGFibGVTb3VyY2UgPT09IHNvdXJjZSkpXG5cdFx0XHR9KVxuXHR9XG5cblx0Ly8geC1mcmFtZS1vcHRpb25zIGNhbiBiZSBbJ1NBTUVPUklHSU4nLCAnREVOWScsICdBTExPVy1GUk9NLi4uJ11cblx0Ly8gaUZyYW1lQWxsb3dlZCBpZiB0aGUgdGhlIHgtZnJhbWUtb3B0aW9ucyBpcyAnQUxMT1ctRlJPTSB7YXBwIHdlYiB1cmx9J1xuXHRjb25zdCB4RnJhbWVPcHRpb25zID0gZmluZChoZWFkZXJzLCAodmFsdWUsIGtleSkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT09ICd4LWZyYW1lLW9wdGlvbnMnKVxuXHRpZiAoeEZyYW1lT3B0aW9ucyAmJiBpc0FycmF5KHhGcmFtZU9wdGlvbnMpKSB7XG5cdFx0cmVzdWx0LmlGcmFtZUFsbG93ZWQgPVxuXHRcdFx0IXhGcmFtZU9wdGlvbnMuc29tZSh4ID0+IHggPT09IFhfRlJBTUVfT1BUSU9OUy5ERU5ZIHx8IHggPT09IFhfRlJBTUVfT1BUSU9OUy5TQU1FT1JJR0lOKSAmJlxuXHRcdFx0eEZyYW1lT3B0aW9ucy5zb21lKHggPT4geCA9PT0gYCR7WF9GUkFNRV9PUFRJT05TLkFMTE9XX0ZST019ICR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke2xvY2F0aW9uLmhvc3R9YClcblx0fVxuXHRyZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUGFyc2UgYSBwYXRoIHN0cmluZyBpbnRvIGEgbG9jYXRpb24gd2l0aCBzZXBhcmF0ZSBwYXRobmFtZSwgc2VhcmNoLCBhbmQgaGFzaCBjb21wb25lbnRzLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHN0cmluZ1xuICogQHJldHVybnMgVGhlIHBhcnNlZCByZXN1bHRcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlTG9jYXRpb24gPSAocGF0aDogc3RyaW5nKTogTG9jYXRpb25EZXNjcmlwdG9yID0+IHtcblx0Y29uc3Qgc2VhcmNoU3RhcnQgPSBwYXRoLmluZGV4T2YoJz8nKVxuXHRjb25zdCBoYXNoU3RhcnQgPSBwYXRoLmluZGV4T2YoJyMnKVxuXHRjb25zdCBzZWFyY2hFbmQgPSBoYXNoU3RhcnQgPiAtMSA/IGhhc2hTdGFydCA6IHVuZGVmaW5lZFxuXHRjb25zdCBwYXRobmFtZSA9XG5cdFx0c2VhcmNoU3RhcnQgPiAtMSA/IHBhdGguc3Vic3RyaW5nKDAsIHNlYXJjaFN0YXJ0KSA6IGhhc2hTdGFydCA+IC0xID8gcGF0aC5zdWJzdHJpbmcoMCwgaGFzaFN0YXJ0KSA6IHBhdGhcblx0Y29uc3Qgc2VhcmNoID0gc2VhcmNoU3RhcnQgPiAtMSA/IHBhdGguc3Vic3RyaW5nKHNlYXJjaFN0YXJ0LCBzZWFyY2hFbmQpIDogdW5kZWZpbmVkXG5cdGNvbnN0IGhhc2ggPSBoYXNoU3RhcnQgPiAtMSA/IHBhdGguc3Vic3RyaW5nKGhhc2hTdGFydCkgOiB1bmRlZmluZWRcblx0cmV0dXJuIHtcblx0XHRwYXRobmFtZTogcGF0aG5hbWUgfHwgJy8nLFxuXHRcdHNlYXJjaDogc2VhcmNoLFxuXHRcdGhhc2g6IGhhc2hcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFMLE9BQUE7QUFFTyxTQUFTTSxhQUFhQSxDQUFDQyxJQUFVLEVBQUVDLFlBQW9CLEVBQUU7RUFDL0Q7RUFDQSxJQUFJRCxJQUFJLEtBQUtFLFVBQUksQ0FBQ0MsS0FBSyxJQUFJRixZQUFZLENBQUNHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0lBQ3RFLE9BQU9ILFlBQVk7RUFDcEI7RUFDQSxJQUFJSSxRQUFRLEdBQUcs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
package/lib/utils/user.js CHANGED
@@ -1,72 +1,70 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stopImpersonation = exports.startImpersonation = exports.filterUsersByRole = exports.displayFirstNamePossessive = exports.displayFirstName = exports.displayNamePossessive = exports.displayName = void 0;
4
- var constants_1 = require("../constants");
5
- var actionCreator_1 = require("../redux/actionCreator");
6
- var noStoreSaga_1 = require("../redux/sagas/noStoreSaga");
7
- var fetch_1 = require("./fetch");
8
- var makePossessive = function (word) { return (word.endsWith('s') ? word + "\u2019" : word + "\u2019s"); };
9
- var displayName = function (u, shouldReverse) {
10
- if (shouldReverse === void 0) { shouldReverse = false; }
11
- return !!u.firstName && !!u.lastName
12
- ? shouldReverse
13
- ? u.lastName + ", " + u.firstName
14
- : u.firstName + " " + u.lastName
15
- : u.email;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stopImpersonation = exports.startImpersonation = exports.filterUsersByRole = exports.displayNamePossessive = exports.displayName = exports.displayFirstNamePossessive = exports.displayFirstName = void 0;
7
+ var _constants = require("../constants");
8
+ var _actionCreator = require("../redux/actionCreator");
9
+ var _noStoreSaga = require("../redux/sagas/noStoreSaga");
10
+ var _fetch = require("./fetch");
11
+ const makePossessive = word => word.endsWith('s') ? `${word}’` : `${word}’s`;
12
+ const displayName = function (u) {
13
+ let shouldReverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
14
+ return !!u.firstName && !!u.lastName ? shouldReverse ? `${u.lastName}, ${u.firstName}` : `${u.firstName} ${u.lastName}` : u.email;
16
15
  };
17
16
  exports.displayName = displayName;
18
- var displayNamePossessive = function (u) {
19
- return !!u.firstName && !!u.lastName ? u.firstName + " " + makePossessive(u.lastName) : u.email + "\u2019s";
20
- };
17
+ const displayNamePossessive = u => !!u.firstName && !!u.lastName ? `${u.firstName} ${makePossessive(u.lastName)}` : `${u.email}’s`;
21
18
  exports.displayNamePossessive = displayNamePossessive;
22
- var displayFirstName = function (u) { return (u.firstName ? u.firstName : u.email); };
19
+ const displayFirstName = u => u.firstName ? u.firstName : u.email;
23
20
  exports.displayFirstName = displayFirstName;
24
- var displayFirstNamePossessive = function (u) { return (u.firstName ? makePossessive(u.firstName) : u.email + "\u2019s"); };
21
+ const displayFirstNamePossessive = u => u.firstName ? makePossessive(u.firstName) : `${u.email}’s`;
25
22
  exports.displayFirstNamePossessive = displayFirstNamePossessive;
26
- var filterUsersByRole = function (role) { return function (userRoles) {
27
- return userRoles.filter(function (userRole) { return userRole.roles.some(function (r) { return r.role === role; }); });
28
- }; };
23
+ const filterUsersByRole = role => userRoles => {
24
+ return userRoles.filter(userRole => userRole.roles.some(r => r.role === role));
25
+ };
29
26
  exports.filterUsersByRole = filterUsersByRole;
30
- var startImpersonation = function (guid, userId) {
31
- noStoreSaga_1.registerNoStoreActionHook(guid, function (data) {
32
- noStoreSaga_1.unregisterNoStoreActionHook(guid);
33
- if (!data || fetch_1.isFetchErrorData(data)) {
34
- actionCreator_1.addNotification({
35
- text: (data === null || data === void 0 ? void 0 : data.detail) || 'Could not start impersonation',
36
- type: constants_1.NOTIFICATION_TYPE.ERROR
37
- });
38
- }
39
- else {
40
- var response = data;
41
- window.location.href = "/?code=" + encodeURIComponent(response.code);
42
- }
43
- });
44
- actionCreator_1.dispatchModelFetchRequest({
45
- modelName: 'startImpersonation',
46
- noStore: true,
47
- guid: guid,
48
- queryParams: { userId: userId }
49
- });
27
+ const startImpersonation = (guid, userId) => {
28
+ (0, _noStoreSaga.registerNoStoreActionHook)(guid, data => {
29
+ (0, _noStoreSaga.unregisterNoStoreActionHook)(guid);
30
+ if (!data || (0, _fetch.isFetchErrorData)(data)) {
31
+ (0, _actionCreator.addNotification)({
32
+ text: data?.detail || 'Could not start impersonation',
33
+ type: _constants.NOTIFICATION_TYPE.ERROR
34
+ });
35
+ } else {
36
+ const response = data;
37
+ window.location.href = `/?code=${encodeURIComponent(response.code)}`;
38
+ }
39
+ });
40
+ (0, _actionCreator.dispatchModelFetchRequest)({
41
+ modelName: 'startImpersonation',
42
+ noStore: true,
43
+ guid,
44
+ queryParams: {
45
+ userId
46
+ }
47
+ });
50
48
  };
51
49
  exports.startImpersonation = startImpersonation;
52
- var stopImpersonation = function (guid) {
53
- noStoreSaga_1.registerNoStoreActionHook(guid, function (data) {
54
- noStoreSaga_1.unregisterNoStoreActionHook(guid);
55
- if (!data || fetch_1.isFetchErrorData(data)) {
56
- actionCreator_1.addNotification({
57
- text: (data === null || data === void 0 ? void 0 : data.detail) || 'Could not stop impersonation',
58
- type: constants_1.NOTIFICATION_TYPE.ERROR
59
- });
60
- }
61
- else {
62
- var response = data;
63
- window.location.href = "/?code=" + encodeURIComponent(response.code);
64
- }
65
- });
66
- actionCreator_1.dispatchModelFetchRequest({
67
- modelName: 'stopImpersonation',
68
- noStore: true,
69
- guid: guid
70
- });
50
+ const stopImpersonation = guid => {
51
+ (0, _noStoreSaga.registerNoStoreActionHook)(guid, data => {
52
+ (0, _noStoreSaga.unregisterNoStoreActionHook)(guid);
53
+ if (!data || (0, _fetch.isFetchErrorData)(data)) {
54
+ (0, _actionCreator.addNotification)({
55
+ text: data?.detail || 'Could not stop impersonation',
56
+ type: _constants.NOTIFICATION_TYPE.ERROR
57
+ });
58
+ } else {
59
+ const response = data;
60
+ window.location.href = `/?code=${encodeURIComponent(response.code)}`;
61
+ }
62
+ });
63
+ (0, _actionCreator.dispatchModelFetchRequest)({
64
+ modelName: 'stopImpersonation',
65
+ noStore: true,
66
+ guid
67
+ });
71
68
  };
72
69
  exports.stopImpersonation = stopImpersonation;
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9hY3Rpb25DcmVhdG9yIiwiX25vU3RvcmVTYWdhIiwiX2ZldGNoIiwibWFrZVBvc3Nlc3NpdmUiLCJ3b3JkIiwiZW5kc1dpdGgiLCJkaXNwbGF5TmFtZSIsInUiLCJzaG91bGRSZXZlcnNlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJlbWFpbCIsImV4cG9ydHMiLCJkaXNwbGF5TmFtZVBvc3Nlc3NpdmUiLCJkaXNwbGF5Rmlyc3ROYW1lIiwiZGlzcGxheUZpcnN0TmFtZVBvc3Nlc3NpdmUiLCJmaWx0ZXJVc2Vyc0J5Um9sZSIsInJvbGUiLCJ1c2VyUm9sZXMiLCJmaWx0ZXIiLCJ1c2VyUm9sZSIsInJvbGVzIiwic29tZSIsInIiLCJzdGFydEltcGVyc29uYXRpb24iLCJndWlkIiwidXNlcklkIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJpc0ZldGNoRXJyb3JEYXRhIiwiYWRkTm90aWZpY2F0aW9uIiwidGV4dCIsImRldGFpbCIsInR5cGUiLCJOT1RJRklDQVRJT05fVFlQRSIsIkVSUk9SIiwicmVzcG9uc2UiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjb2RlIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1vZGVsTmFtZSIsIm5vU3RvcmUiLCJxdWVyeVBhcmFtcyIsInN0b3BJbXBlcnNvbmF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTk9USUZJQ0FUSU9OX1RZUEUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBhZGROb3RpZmljYXRpb24sIGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QgfSBmcm9tICcuLi9yZWR1eC9hY3Rpb25DcmVhdG9yJ1xuaW1wb3J0IHsgcmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vaywgdW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rIH0gZnJvbSAnLi4vcmVkdXgvc2FnYXMvbm9TdG9yZVNhZ2EnXG5pbXBvcnQgeyBGZXRjaEVycm9yRGF0YSwgVXNlciwgVXNlcldpdGhSb2xlcyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgaXNGZXRjaEVycm9yRGF0YSB9IGZyb20gJy4vZmV0Y2gnXG5cbmNvbnN0IG1ha2VQb3NzZXNzaXZlID0gKHdvcmQ6IHN0cmluZykgPT4gKHdvcmQuZW5kc1dpdGgoJ3MnKSA/IGAke3dvcmR94oCZYCA6IGAke3dvcmR94oCZc2ApXG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5TmFtZSA9ICh1OiBVc2VyLCBzaG91bGRSZXZlcnNlID0gZmFsc2UpID0+XG5cdCEhdS5maXJzdE5hbWUgJiYgISF1Lmxhc3ROYW1lXG5cdFx0PyBzaG91bGRSZXZlcnNlXG5cdFx0XHQ/IGAke3UubGFzdE5hbWV9LCAke3UuZmlyc3ROYW1lfWBcblx0XHRcdDogYCR7dS5maXJzdE5hbWV9ICR7dS5sYXN0TmFtZX1gXG5cdFx0OiB1LmVtYWlsXG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5TmFtZVBvc3Nlc3NpdmUgPSAodTogVXNlcikgPT5cblx0ISF1LmZpcnN0TmFtZSAmJiAhIXUubGFzdE5hbWUgPyBgJHt1LmZpcnN0TmFtZX0gJHttYWtlUG9zc2Vzc2l2ZSh1Lmxhc3ROYW1lKX1gIDogYCR7dS5lbWFpbH3igJlzYFxuXG5leHBvcnQgY29uc3QgZGlzcGxheUZpcnN0TmFtZSA9ICh1OiBVc2VyKSA9PiAodS5maXJzdE5hbWUgPyB1LmZpcnN0TmFtZSA6IHUuZW1haWwpXG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5Rmlyc3ROYW1lUG9zc2Vzc2l2ZSA9ICh1OiBVc2VyKSA9PiAodS5maXJzdE5hbWUgPyBtYWtlUG9zc2Vzc2l2ZSh1LmZpcnN0TmFtZSkgOiBgJHt1LmVtYWlsfeKAmXNgKVxuXG5leHBvcnQgY29uc3QgZmlsdGVyVXNlcnNCeVJvbGUgPSAocm9sZTogc3RyaW5nKSA9PiAodXNlclJvbGVzOiBVc2VyV2l0aFJvbGVzW10pID0+IHtcblx0cmV0dXJuIHVzZXJSb2xlcy5maWx0ZXIodXNlclJvbGUgPT4gdXNlclJvbGUucm9sZXMuc29tZShyID0+IHIucm9sZSA9PT0gcm9sZSkpXG59XG5cbmV4cG9ydCBjb25zdCBzdGFydEltcGVyc29uYXRpb24gPSAoZ3VpZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuXHRyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGd1aWQsIChkYXRhOiB7IGNvZGU6IHN0cmluZyB9IHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XG5cdFx0dW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGd1aWQpXG5cdFx0aWYgKCFkYXRhIHx8IGlzRmV0Y2hFcnJvckRhdGEoZGF0YSkpIHtcblx0XHRcdGFkZE5vdGlmaWNhdGlvbih7XG5cdFx0XHRcdHRleHQ6IGRhdGE/LmRldGFpbCB8fCAnQ291bGQgbm90IHN0YXJ0IGltcGVyc29uYXRpb24nLFxuXHRcdFx0XHR0eXBlOiBOT1RJRklDQVRJT05fVFlQRS5FUlJPUlxuXHRcdFx0fSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBkYXRhIGFzIHsgY29kZTogc3RyaW5nIH1cblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC8/Y29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChyZXNwb25zZS5jb2RlKX1gXG5cdFx0fVxuXHR9KVxuXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdG1vZGVsTmFtZTogJ3N0YXJ0SW1wZXJzb25hdGlvbicsXG5cdFx0bm9TdG9yZTogdHJ1ZSxcblx0XHRndWlkLFxuXHRcdHF1ZXJ5UGFyYW1zOiB7IHVzZXJJZCB9XG5cdH0pXG59XG5cbmV4cG9ydCBjb25zdCBzdG9wSW1wZXJzb25hdGlvbiA9IChndWlkOiBzdHJpbmcpID0+IHtcblx0cmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhndWlkLCAoZGF0YTogeyBjb2RlOiBzdHJpbmcgfSB8IEZldGNoRXJyb3JEYXRhIHwgbnVsbCkgPT4ge1xuXHRcdHVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhndWlkKVxuXHRcdGlmICghZGF0YSB8fCBpc0ZldGNoRXJyb3JEYXRhKGRhdGEpKSB7XG5cdFx0XHRhZGROb3RpZmljYXRpb24oe1xuXHRcdFx0XHR0ZXh0OiBkYXRhPy5kZXRhaWwgfHwgJ0NvdWxkIG5vdCBzdG9wIGltcGVyc29uYXRpb24nLFxuXHRcdFx0XHR0eXBlOiBOT1RJRklDQVRJT05fVFlQRS5FUlJPUlxuXHRcdFx0fSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBkYXRhIGFzIHsgY29kZTogc3RyaW5nIH1cblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC8/Y29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChyZXNwb25zZS5jb2RlKX1gXG5cdFx0fVxuXHR9KVxuXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdG1vZGVsTmFtZTogJ3N0b3BJbXBlcnNvbmF0aW9uJyxcblx0XHRub1N0b3JlOiB0cnVlLFxuXHRcdGd1aWRcblx0fSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksY0FBYyxHQUFJQyxJQUFZLElBQU1BLElBQUksQ0FBQ0MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUdELElBQUksR0FBRyxHQUFHLEdBQUdBLElBQUksSUFBSztBQUVqRixNQUFNRSxXQUFXLEdBQUcsU0FBQUEsQ0FBQ0MsQ0FBTztFQUFBLElBQUVDLGFBQWEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztFQUFBLE9BQ3pELENBQUMsQ0FBQ0YsQ0FBQyxDQUFDSyxTQUFTLElBQUksQ0FBQyxDQUFDTCxDQUFDLENBQUNNLFFBQVEsR0FDMUJMLGFBQWEsR0FDWixHQUFHRCxDQUFDLENBQUNNLFFBQVEsS0FBS04sQ0FBQyxDQUFDSyxTQUFTLEVBQUUsR0FDL0IsR0FBR0wsQ0FBQyxDQUFDSyxTQUFTLElBQUlMLENBQUMsQ0FBQ00sUUFBUSxFQUFFLEdBQy9CTixDQUFDLENBQUNPLEtBQUs7QUFBQTtBQUFBQyxPQUFBLENBQUFULFdBQUEsR0FBQUEsV0FBQTtBQUVKLE1BQU1VLHFCQUFxQixHQUFJVCxDQUFPLElBQzVDLENBQUMsQ0FBQ0EsQ0FBQyxDQUFDSyxTQUFTLElBQUksQ0FBQyxDQUFDTCxDQUFDLENBQUNNLFFBQVEsR0FBRyxHQUFHTixDQUFDLENBQUNLLFNBQVMsSUFBSVQsY0FBYyxDQUFDSSxDQUFDLENBQUNNLFFBQVEsQ0FBQyxFQUFFLEdBQUcsR0FBR04sQ0FBQyxDQUFDTyxLQUFLLElBQUk7QUFBQUMsT0FBQSxDQUFBQyxxQkFBQSxHQUFBQSxxQkFBQTtBQUV6RixNQUFNQyxnQkFBZ0IsR0FBSVYsQ0FBTyxJQUFNQSxDQUFDLENBQUNLLFNBQVMsR0FBR0wsQ0FBQyxDQUFDSyxTQUFTLEdBQUdMLENBQUMsQ0FBQ08sS0FBTTtBQUFBQyxPQUFBLENBQUFFLGdCQUFBLEdBQUFBLGdCQUFBO0FBRTNFLE1BQU1DLDBCQUEwQixHQUFJWCxDQUFPLElBQU1BLENBQUMsQ0FBQ0ssU0FBUyxHQUFHVCxjQUFjLENBQUNJLENBQUMsQ0FBQ0ssU0FBUyxDQUFDLEdBQUcsR0FBR0wsQ0FBQyxDQUFDTyxLQUFLLElBQUs7QUFBQUMsT0FBQSxDQUFBRywwQkFBQSxHQUFBQSwwQkFBQTtBQUU1RyxNQUFNQyxpQkFBaUIsR0FBSUMsSUFBWSxJQUFNQyxTQUEwQixJQUFLO0VBQ2xGLE9BQU9BLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLElBQUlBLFFBQVEsQ0FBQ0MsS0FBSyxDQUFDQyxJQUFJLENBQUNDLENBQUMsSUFBSUEsQ0FBQyxDQUFDTixJQUFJLEtBQUtBLElBQUksQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFBQUwsT0FBQSxDQUFBSSxpQkFBQSxHQUFBQSxpQkFBQTtBQUVNLE1BQU1RLGtCQUFrQixHQUFHQSxDQUFDQyxJQUFZLEVBQUVDLE1BQWMsS0FBSztFQUNuRSxJQUFBQyxzQ0FBeUIsRUFBQ0YsSUFBSSxFQUFHRyxJQUE4QyxJQUFLO0lBQ25GLElBQUFDLHdDQUEyQixFQUFDSixJQUFJLENBQUM7SUFDakMsSUFBSSxDQUFDRyxJQUFJLElBQUksSUFBQUUsdUJBQWdCLEVBQUNGLElBQUksQ0FBQyxFQUFFO01BQ3BDLElBQUFHLDhCQUFlLEVBQUM7UUFDZkMsSUFBSSxFQUFFSixJQUFJLEVBQUVLLE1BQU0sSUFBSSwrQkFBK0I7UUFDckRDLElBQUksRUFBRUMsNEJBQWlCLENBQUNDO01BQ3pCLENBQUMsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNOLE1BQU1DLFFBQVEsR0FBR1QsSUFBd0I7TUFDekNVLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEdBQUcsVUFBVUMsa0JBQWtCLENBQUNKLFFBQVEsQ0FBQ0ssSUFBSSxDQUFDLEVBQUU7SUFDckU7RUFDRCxDQUFDLENBQUM7RUFFRixJQUFBQyx3Q0FBeUIsRUFBQztJQUN6QkMsU0FBUyxFQUFFLG9CQUFvQjtJQUMvQkMsT0FBTyxFQUFFLElBQUk7SUFDYnBCLElBQUk7SUFDSnFCLFdBQVcsRUFBRTtNQUFFcEI7SUFBTztFQUN2QixDQUFDLENBQUM7QUFDSCxDQUFDO0FBQUFkLE9BQUEsQ0FBQVksa0JBQUEsR0FBQUEsa0JBQUE7QUFFTSxNQUFNdUIsaUJBQWlCLEdBQUl0QixJQUFZLElBQUs7RUFDbEQsSUFBQUUsc0NBQXlCLEVBQUNGLElBQUksRUFBR0csSUFBOEMsSUFBSztJQUNuRixJQUFBQyx3Q0FBMkIsRUFBQ0osSUFBSSxDQUFDO0lBQ2pDLElBQUksQ0FBQ0csSUFBSSxJQUFJLElBQUFFLHVCQUFnQixFQUFDRixJQUFJLENBQUMsRUFBRTtNQUNwQyxJQUFBRyw4QkFBZSxFQUFDO1FBQ2ZDLElBQUksRUFBRUosSUFBSSxFQUFFSyxNQUFNLElBQUksOEJBQThCO1FBQ3BEQyxJQUFJLEVBQUVDLDRCQUFpQixDQUFDQztNQUN6QixDQUFDLENBQUM7SUFDSCxDQUFDLE1BQU07TUFDTixNQUFNQyxRQUFRLEdBQUdULElBQXdCO01BQ3pDVSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHLFVBQVVDLGtCQUFrQixDQUFDSixRQUFRLENBQUNLLElBQUksQ0FBQyxFQUFFO0lBQ3JFO0VBQ0QsQ0FBQyxDQUFDO0VBRUYsSUFBQUMsd0NBQXlCLEVBQUM7SUFDekJDLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUJDLE9BQU8sRUFBRSxJQUFJO0lBQ2JwQjtFQUNELENBQUMsQ0FBQztBQUNILENBQUM7QUFBQWIsT0FBQSxDQUFBbUMsaUJBQUEsR0FBQUEsaUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.getOperatingSystem = void 0;
4
- var operatingSystem_1 = require("../constants/operatingSystem");
5
- var getOperatingSystem = function () {
6
- var userAgent = window.navigator.userAgent.toLowerCase();
7
- var macOSPlatforms = /(macintosh|macintel|macppc|mac68k|macos)/i;
8
- var windowsPlatforms = /(win32|win64|windows|wince)/i;
9
- return macOSPlatforms.test(userAgent)
10
- ? operatingSystem_1.OPERATING_SYSTEM.MAC
11
- : windowsPlatforms.test(userAgent)
12
- ? operatingSystem_1.OPERATING_SYSTEM.WINDOWS
13
- : operatingSystem_1.OPERATING_SYSTEM.UNKNOWN;
7
+ var _operatingSystem = require("../constants/operatingSystem");
8
+ const getOperatingSystem = () => {
9
+ const userAgent = window.navigator.userAgent.toLowerCase();
10
+ const macOSPlatforms = /(macintosh|macintel|macppc|mac68k|macos)/i;
11
+ const windowsPlatforms = /(win32|win64|windows|wince)/i;
12
+ return macOSPlatforms.test(userAgent) ? _operatingSystem.OPERATING_SYSTEM.MAC : windowsPlatforms.test(userAgent) ? _operatingSystem.OPERATING_SYSTEM.WINDOWS : _operatingSystem.OPERATING_SYSTEM.UNKNOWN;
14
13
  };
15
14
  exports.getOperatingSystem = getOperatingSystem;
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3BlcmF0aW5nU3lzdGVtIiwicmVxdWlyZSIsImdldE9wZXJhdGluZ1N5c3RlbSIsInVzZXJBZ2VudCIsIndpbmRvdyIsIm5hdmlnYXRvciIsInRvTG93ZXJDYXNlIiwibWFjT1NQbGF0Zm9ybXMiLCJ3aW5kb3dzUGxhdGZvcm1zIiwidGVzdCIsIk9QRVJBVElOR19TWVNURU0iLCJNQUMiLCJXSU5ET1dTIiwiVU5LTk9XTiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXNlckFnZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9QRVJBVElOR19TWVNURU0gfSBmcm9tICcuLi9jb25zdGFudHMvb3BlcmF0aW5nU3lzdGVtJ1xuXG5leHBvcnQgY29uc3QgZ2V0T3BlcmF0aW5nU3lzdGVtID0gKCkgPT4ge1xuXHRjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpXG5cdGNvbnN0IG1hY09TUGxhdGZvcm1zID0gLyhtYWNpbnRvc2h8bWFjaW50ZWx8bWFjcHBjfG1hYzY4a3xtYWNvcykvaVxuXHRjb25zdCB3aW5kb3dzUGxhdGZvcm1zID0gLyh3aW4zMnx3aW42NHx3aW5kb3dzfHdpbmNlKS9pXG5cblx0cmV0dXJuIG1hY09TUGxhdGZvcm1zLnRlc3QodXNlckFnZW50KVxuXHRcdD8gT1BFUkFUSU5HX1NZU1RFTS5NQUNcblx0XHQ6IHdpbmRvd3NQbGF0Zm9ybXMudGVzdCh1c2VyQWdlbnQpXG5cdFx0XHQ/IE9QRVJBVElOR19TWVNURU0uV0lORE9XU1xuXHRcdFx0OiBPUEVSQVRJTkdfU1lTVEVNLlVOS05PV05cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUVPLE1BQU1DLGtCQUFrQixHQUFHQSxDQUFBLEtBQU07RUFDdkMsTUFBTUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0YsU0FBUyxDQUFDRyxXQUFXLENBQUMsQ0FBQztFQUMxRCxNQUFNQyxjQUFjLEdBQUcsMkNBQTJDO0VBQ2xFLE1BQU1DLGdCQUFnQixHQUFHLDhCQUE4QjtFQUV2RCxPQUFPRCxjQUFjLENBQUNFLElBQUksQ0FBQ04sU0FBUyxDQUFDLEdBQ2xDTyxpQ0FBZ0IsQ0FBQ0MsR0FBRyxHQUNwQkgsZ0JBQWdCLENBQUNDLElBQUksQ0FBQ04sU0FBUyxDQUFDLEdBQy9CTyxpQ0FBZ0IsQ0FBQ0UsT0FBTyxHQUN4QkYsaUNBQWdCLENBQUNHLE9BQU87QUFDN0IsQ0FBQztBQUFBQyxPQUFBLENBQUFaLGtCQUFBLEdBQUFBLGtCQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -13,15 +13,15 @@ export declare const isExternal: (userRole: UserRole) => boolean;
13
13
  * Get the text for the given `userRole.role`. Defaults to using `textForBaseRole`.
14
14
  * @param textForRole Override method for providing role text
15
15
  */
16
- export declare const getRoleText: (textForRole?: ((role: string) => string) | undefined) => (a: UserRole) => string;
16
+ export declare const getRoleText: (textForRole?: (role: string) => string) => (a: UserRole) => string;
17
17
  /**
18
18
  * Sort the userRoles by role, using the provided `roles` order
19
19
  * @param roles Roles ordered in descing access level
20
20
  */
21
- export declare const sortByRole: (roles: string[]) => (a: UserRole, b: UserRole) => 0 | 1 | -1;
21
+ export declare const sortByRole: (roles: string[]) => (a: UserRole, b: UserRole) => 1 | -1 | 0;
22
22
  /**
23
23
  * Sort the users by role, using the provided `roles` order
24
24
  * @param roles Roles ordered in descing access level
25
25
  */
26
- export declare const sortByHighestAccessRole: (roles: string[]) => (a: UserWithRoles, b: UserWithRoles) => 0 | 1 | -1;
26
+ export declare const sortByHighestAccessRole: (roles: string[]) => (a: UserWithRoles, b: UserWithRoles) => 1 | -1 | 0;
27
27
  export declare const convertToUserWithRoles: <TUserRole extends UserRole = UserRole>(userRole: TUserRole) => UserWithRoles<TUserRole>;