studiokit-scaffolding-js 7.0.12-next.1.4 → 7.0.12-next.2.2

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 (258) hide show
  1. package/lib/components/ActionList.js +170 -34
  2. package/lib/components/AlertDialog.js +133 -9
  3. package/lib/components/AlertWithIcon.js +92 -25
  4. package/lib/components/ConnectedModal.js +43 -13
  5. package/lib/components/Dropdowns/GroupsDropdown.js +69 -44
  6. package/lib/components/Dropdowns/ManagedNavDropdown.js +100 -67
  7. package/lib/components/Dropdowns/UserDropdown.js +111 -21
  8. package/lib/components/Dropdowns/index.js +27 -9
  9. package/lib/components/EntityOwnerList.js +52 -18
  10. package/lib/components/Error.js +106 -11
  11. package/lib/components/ErrorBoundary.js +134 -35
  12. package/lib/components/ErrorMessage.js +44 -9
  13. package/lib/components/Forms/DateField.js +61 -42
  14. package/lib/components/Forms/TimeField.js +81 -42
  15. package/lib/components/Forms/index.js +27 -4
  16. package/lib/components/Groups/CreateEditCopySaveButtons.js +114 -11
  17. package/lib/components/Groups/ExternalGroups/Attach.js +212 -148
  18. package/lib/components/Groups/ExternalGroups/Table.js +181 -45
  19. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
  20. package/lib/components/Groups/RosterSyncInfo.js +147 -20
  21. package/lib/components/HOC/AccessibleAppComponent.js +98 -73
  22. package/lib/components/HOC/ActivityRequiredComponent.js +92 -49
  23. package/lib/components/HOC/AsyncComponent.js +54 -39
  24. package/lib/components/HOC/AuthenticatedComponent.js +58 -38
  25. package/lib/components/HOC/CollectionComponent.js +170 -110
  26. package/lib/components/HOC/CollectionFirstItemComponent.js +51 -38
  27. package/lib/components/HOC/CollectionItemComponent.js +168 -106
  28. package/lib/components/HOC/ConnectedModalComponent.js +109 -80
  29. package/lib/components/HOC/DataDependentComponent.js +29 -21
  30. package/lib/components/HOC/EntityComponent.js +71 -57
  31. package/lib/components/HOC/FullscreenModalComponent.js +163 -123
  32. package/lib/components/HOC/GroupActivityRequiredComponent.js +45 -31
  33. package/lib/components/HOC/GuidComponent.js +29 -22
  34. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +41 -31
  35. package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -47
  36. package/lib/components/HOC/SearchPersistorComponent.js +240 -166
  37. package/lib/components/HOC/UnauthenticatedComponent.js +37 -25
  38. package/lib/components/HOC/UserComponent.js +12 -7
  39. package/lib/components/Icons/IconAlphaList.js +33 -5
  40. package/lib/components/Icons/IconExternalUser.js +33 -5
  41. package/lib/components/Icons/IconImpersonation.js +33 -5
  42. package/lib/components/Icons/IconStopImpersonating.js +33 -5
  43. package/lib/components/Icons/IconTable.js +35 -7
  44. package/lib/components/Icons/IconTableDeleteCol.js +33 -5
  45. package/lib/components/Icons/IconTableDeleteRow.js +33 -5
  46. package/lib/components/Icons/IconTableInsertCol.js +33 -5
  47. package/lib/components/Icons/IconTableInsertRow.js +33 -5
  48. package/lib/components/Impersonation/Button.js +77 -13
  49. package/lib/components/Impersonation/Link.js +77 -13
  50. package/lib/components/Impersonation/UserDetail.js +66 -9
  51. package/lib/components/Loading.js +26 -4
  52. package/lib/components/LockDownBrowser/Check.js +194 -49
  53. package/lib/components/LockDownBrowser/ExitButton.js +26 -9
  54. package/lib/components/LockDownBrowser/Launch.js +70 -62
  55. package/lib/components/Lti/Confirm.js +152 -11
  56. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -33
  57. package/lib/components/Lti/Launch.js +105 -24
  58. package/lib/components/Lti/LaunchGroup.js +85 -13
  59. package/lib/components/ManageTable.js +309 -87
  60. package/lib/components/ManageTableNoDataComponent.js +42 -4
  61. package/lib/components/NewVersionAlert.js +82 -46
  62. package/lib/components/NotFound.js +86 -10
  63. package/lib/components/Notifications.js +185 -126
  64. package/lib/components/PaginationNextButton.js +33 -6
  65. package/lib/components/PaginationPreviousButton.js +33 -6
  66. package/lib/components/Quill/CustomToolbar.js +432 -218
  67. package/lib/components/Quill/Formats/Image.js +73 -63
  68. package/lib/components/Quill/Formats/List.js +45 -45
  69. package/lib/components/Quill/Formats/Video.js +28 -24
  70. package/lib/components/Quill/ImageDropModule.js +147 -117
  71. package/lib/components/Quill/ImageWarning.js +47 -9
  72. package/lib/components/Quill/ImageWithAltTextModal.js +425 -86
  73. package/lib/components/Quill/Specs/CustomImageSpec.js +42 -34
  74. package/lib/components/Quill/Specs/CustomVideoSpec.js +34 -28
  75. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +98 -98
  76. package/lib/components/Quill/TableModule/Blots/TableBlot.js +52 -47
  77. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +53 -48
  78. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +224 -221
  79. package/lib/components/Quill/TableModule/Blots/TableContainer.js +80 -83
  80. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +75 -70
  81. package/lib/components/Quill/TableModule/constants.js +45 -41
  82. package/lib/components/Quill/TableModule/index.js +362 -301
  83. package/lib/components/Quill/TableModule/utils.js +42 -38
  84. package/lib/components/Quill/accessibilityFix.js +234 -232
  85. package/lib/components/Quill/index.js +34 -28
  86. package/lib/components/RefreshIndicator/Bordered.js +47 -6
  87. package/lib/components/RefreshIndicator/Inline.js +47 -8
  88. package/lib/components/RefreshIndicator/index.js +263 -59
  89. package/lib/components/SearchControls.js +216 -11
  90. package/lib/components/SentryRoute.js +11 -6
  91. package/lib/components/Tables/RoleFilter.js +69 -32
  92. package/lib/components/Tables/TextFilter.js +62 -13
  93. package/lib/components/UserRoles/Add.js +199 -96
  94. package/lib/components/UserRoles/Context.js +11 -7
  95. package/lib/components/UserRoles/RoleCell.js +181 -72
  96. package/lib/components/UserRoles/Select.js +157 -17
  97. package/lib/components/UserRoles/Table.js +221 -80
  98. package/lib/components/UserRoles/index.js +534 -384
  99. package/lib/config/eslint/index.js +32 -28
  100. package/lib/config/eslint/lib/order.js +26 -27
  101. package/lib/config/eslint/lib/prettier.js +20 -18
  102. package/lib/config/eslint/lib/typescript.js +93 -112
  103. package/lib/config/eslint/react.js +24 -14
  104. package/lib/constants/baseActivity.js +30 -26
  105. package/lib/constants/baseRole.js +14 -10
  106. package/lib/constants/configuration.js +33 -29
  107. package/lib/constants/externalProviderType.js +10 -6
  108. package/lib/constants/fetchErrorData.js +15 -11
  109. package/lib/constants/index.js +137 -14
  110. package/lib/constants/lockDownBrowser.js +28 -24
  111. package/lib/constants/mockData.js +382 -297
  112. package/lib/constants/modelStatus.js +15 -11
  113. package/lib/constants/notificationType.js +12 -8
  114. package/lib/constants/operatingSystem.js +12 -8
  115. package/lib/constants/shard.js +11 -7
  116. package/lib/constants/table.js +21 -21
  117. package/lib/constants/tier.js +12 -8
  118. package/lib/constants/userRole.js +15 -5
  119. package/lib/endpointMappings.js +197 -181
  120. package/lib/hooks/useCollection.js +82 -62
  121. package/lib/hooks/useCollectionConfiguration.js +228 -83
  122. package/lib/hooks/useCollectionItem.js +154 -54
  123. package/lib/hooks/useGuid.js +20 -8
  124. package/lib/hooks/usePrevious.js +19 -13
  125. package/lib/index.js +157 -25
  126. package/lib/redux/actionCreator.js +50 -28
  127. package/lib/redux/actions/AuthAction.js +44 -31
  128. package/lib/redux/actions/ModalAction.js +10 -6
  129. package/lib/redux/actions/ModelAction.js +77 -39
  130. package/lib/redux/actions/NotificationAction.js +10 -6
  131. package/lib/redux/actions/SearchAction.js +9 -5
  132. package/lib/redux/actions/index.js +60 -7
  133. package/lib/redux/configureReducers.js +60 -49
  134. package/lib/redux/configureStore.js +83 -87
  135. package/lib/redux/helpers.js +6 -2
  136. package/lib/redux/reducers/authReducer.js +50 -43
  137. package/lib/redux/reducers/index.js +41 -13
  138. package/lib/redux/reducers/modalsReducer.js +47 -29
  139. package/lib/redux/reducers/modelsReducer.js +178 -173
  140. package/lib/redux/reducers/notificationsReducer.js +24 -18
  141. package/lib/redux/reducers/searchReducer.js +25 -19
  142. package/lib/redux/sagas/appInsightsSaga.js +22 -18
  143. package/lib/redux/sagas/authSaga.js +253 -218
  144. package/lib/redux/sagas/caliperSaga.js +159 -143
  145. package/lib/redux/sagas/clockOffsetSaga.js +34 -31
  146. package/lib/redux/sagas/configurationSaga.js +11 -7
  147. package/lib/redux/sagas/downtimeApiErrorSaga.js +20 -17
  148. package/lib/redux/sagas/errorSaga.js +27 -21
  149. package/lib/redux/sagas/googleAnalyticsSaga.js +28 -24
  150. package/lib/redux/sagas/identityProviderSaga.js +22 -18
  151. package/lib/redux/sagas/initialDataLoadSaga.js +37 -28
  152. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +29 -20
  153. package/lib/redux/sagas/modelFetchSaga.js +355 -322
  154. package/lib/redux/sagas/noStoreSaga.js +61 -48
  155. package/lib/redux/sagas/postLoginDataSaga.js +45 -34
  156. package/lib/redux/sagas/postLoginRedirectSaga.js +27 -27
  157. package/lib/redux/sagas/rootSaga.js +82 -57
  158. package/lib/redux/sagas/sentrySaga.js +29 -25
  159. package/lib/redux/sagas/userIdSaga.js +16 -12
  160. package/lib/services/codeProviderService.js +25 -19
  161. package/lib/services/dateService.js +12 -7
  162. package/lib/services/documentService.js +17 -12
  163. package/lib/services/fetchService.js +129 -112
  164. package/lib/services/persistenceService.js +33 -29
  165. package/lib/services/ticketProviderService.js +29 -23
  166. package/lib/services/tokenPersistenceService.js +12 -8
  167. package/lib/services/windowService.js +18 -14
  168. package/lib/startup.js +132 -114
  169. package/lib/types/AppConfiguration.js +5 -1
  170. package/lib/types/Artifact.js +11 -7
  171. package/lib/types/BaseReduxState.js +5 -1
  172. package/lib/types/Client.js +5 -1
  173. package/lib/types/Collection.js +5 -1
  174. package/lib/types/Configuration.js +5 -1
  175. package/lib/types/DeepLinkingResponseRequest.js +5 -1
  176. package/lib/types/DeletableModel.js +5 -1
  177. package/lib/types/Event.js +5 -1
  178. package/lib/types/ExternalGroup.js +5 -1
  179. package/lib/types/ExternalProvider.js +5 -1
  180. package/lib/types/ExternalTerm.js +5 -1
  181. package/lib/types/Group.js +5 -1
  182. package/lib/types/IdentityProvider.js +5 -1
  183. package/lib/types/LtiLaunch.js +5 -1
  184. package/lib/types/NameOnlyEntity.js +5 -1
  185. package/lib/types/Notification.js +5 -1
  186. package/lib/types/OptionalRecord.js +5 -1
  187. package/lib/types/OwnerSchedule.js +5 -1
  188. package/lib/types/PropertyOfType.js +5 -1
  189. package/lib/types/Quill.js +5 -1
  190. package/lib/types/RoleDescription.js +5 -1
  191. package/lib/types/Search.js +5 -1
  192. package/lib/types/SimpleLocation.js +5 -1
  193. package/lib/types/UniTime.js +5 -1
  194. package/lib/types/User.js +5 -1
  195. package/lib/types/UserRole.js +5 -1
  196. package/lib/types/auth/AuthState.js +5 -1
  197. package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
  198. package/lib/types/auth/ClientCredentials.js +5 -1
  199. package/lib/types/auth/CodeProviderService.js +5 -1
  200. package/lib/types/auth/LocalLoginRequestBody.js +5 -1
  201. package/lib/types/auth/TicketProviderService.js +5 -1
  202. package/lib/types/auth/TokenPersistenceService.js +5 -1
  203. package/lib/types/auth/index.js +82 -9
  204. package/lib/types/externals.d.js +2 -0
  205. package/lib/types/index.js +313 -30
  206. package/lib/types/net/EndpointConfig.js +5 -1
  207. package/lib/types/net/EndpointMapping.js +5 -1
  208. package/lib/types/net/EndpointMappings.js +5 -1
  209. package/lib/types/net/ErrorHandler.js +5 -1
  210. package/lib/types/net/FetchConfig.js +5 -1
  211. package/lib/types/net/FetchErrorData.js +10 -6
  212. package/lib/types/net/FetchResult.js +5 -1
  213. package/lib/types/net/HTTPMethod.js +5 -1
  214. package/lib/types/net/HTTPStatusCode.js +16 -12
  215. package/lib/types/net/Metadata.js +5 -1
  216. package/lib/types/net/Model.js +5 -1
  217. package/lib/types/net/ModelCollection.js +5 -1
  218. package/lib/types/net/ModelsState.js +5 -1
  219. package/lib/types/net/OAuthToken.js +5 -1
  220. package/lib/types/net/OAuthTokenOrNull.js +5 -1
  221. package/lib/types/net/TokenAccessFunction.js +5 -1
  222. package/lib/types/net/index.js +181 -18
  223. package/lib/utils/baseActivity.js +133 -123
  224. package/lib/utils/baseRole.js +37 -33
  225. package/lib/utils/collection.js +425 -298
  226. package/lib/utils/cookies.js +22 -19
  227. package/lib/utils/date.js +303 -279
  228. package/lib/utils/dom.js +176 -165
  229. package/lib/utils/domainIdentifier.js +9 -5
  230. package/lib/utils/entityUserRole.js +6 -2
  231. package/lib/utils/error.js +17 -15
  232. package/lib/utils/events.js +40 -31
  233. package/lib/utils/externalGroup.js +22 -18
  234. package/lib/utils/externalProviders.js +8 -4
  235. package/lib/utils/externalTerms.js +10 -3
  236. package/lib/utils/fetch.js +179 -180
  237. package/lib/utils/group.js +18 -7
  238. package/lib/utils/groupDates.js +37 -33
  239. package/lib/utils/groupRoles.js +25 -21
  240. package/lib/utils/lockDownBrowser.js +15 -11
  241. package/lib/utils/logger.js +26 -22
  242. package/lib/utils/lti.js +9 -4
  243. package/lib/utils/model.js +36 -41
  244. package/lib/utils/number.js +21 -18
  245. package/lib/utils/promise.js +28 -21
  246. package/lib/utils/quill.js +65 -62
  247. package/lib/utils/route.js +58 -55
  248. package/lib/utils/search.js +76 -80
  249. package/lib/utils/shard.js +37 -37
  250. package/lib/utils/sort.js +50 -42
  251. package/lib/utils/string.js +13 -8
  252. package/lib/utils/table.js +38 -33
  253. package/lib/utils/timezone.js +10 -6
  254. package/lib/utils/url.js +142 -142
  255. package/lib/utils/user.js +58 -55
  256. package/lib/utils/userAgent.js +10 -10
  257. package/lib/utils/userRole.js +57 -49
  258. package/package.json +17 -3
@@ -1,70 +1,73 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
3
7
  exports.checkForNonPublicImages = void 0;
4
- const tslib_1 = require("tslib");
5
- const quill_1 = tslib_1.__importDefault(require("quill"));
6
- const uuid_1 = require("uuid");
7
- const actionCreator_1 = require("../redux/actionCreator");
8
- const noStoreSaga_1 = require("../redux/sagas/noStoreSaga");
9
- const fetch_1 = require("./fetch");
10
- const Delta = quill_1.default.import('delta');
11
- /**
12
- * Check for non-public in the provided quill contents. Update the ImageValue of an op if an image is found to be
13
- * non-public.
14
- * @param quill The Quill instance
15
- * @param checkedImages A list of all images we have already processed in previous calls to this function.
16
- * list of processed images
8
+ var _quill = _interopRequireDefault(require("quill"));
9
+ var _uuid = require("uuid");
10
+ var _actionCreator = require("../redux/actionCreator");
11
+ var _noStoreSaga = require("../redux/sagas/noStoreSaga");
12
+ var _fetch = require("./fetch");
13
+ const Delta = _quill.default.import('delta');
14
+
15
+ /**
16
+ * Check for non-public in the provided quill contents. Update the ImageValue of an op if an image is found to be
17
+ * non-public.
18
+ * @param quill The Quill instance
19
+ * @param checkedImages A list of all images we have already processed in previous calls to this function.
20
+ * list of processed images
17
21
  */
18
22
  const checkForNonPublicImages = (quill, checkedImages) => {
19
- var _a;
20
- (_a = quill
21
- .getContents()
22
- .ops // Is the op an image and have we not seen it before?
23
- ) === null || _a === void 0 ? void 0 : _a.filter(op => op.insert.image &&
24
- !checkedImages.find(image => image.src === op.insert.image.src) &&
25
- op.insert.image.src.startsWith('http')).forEach(op => {
26
- // Check if the image is public. Do not check data:image urls
27
- // Use the backend to check if the image is public
28
- // Due to CSP and other security measures, we can't check this in the frontend
29
- // uuidv5 is a deterministic uuid generator based on a namespace and a name
30
- // uuidv5.URL is the namespace for urls
31
- const hookId = (0, uuid_1.v5)(op.insert.image.src, uuid_1.v5.URL);
32
- noStoreSaga_1.noStoreHooks.registerNoStoreActionHook(hookId, (data) => {
33
- noStoreSaga_1.noStoreHooks.unregisterNoStoreActionHook(hookId);
34
- let contentTypeKey;
35
- /**
36
- * API fetches the URL, and `noStoreSaga` returns either the result or error
37
- * * `data` is `null` when the API could not fetch the URL with a successful status code, and returns `null` => `nonPublic`
38
- * * `data` is `FetchErrorData` if the API request itself failed, e.g. from some unknown error, we don't know if the image is public => do not update
39
- * * `data` is a dictionary of headers when the API does fetch the URL
40
- * * if there is no `Content-Type` header, we don't know if the image is public => do not update
41
- * * if there is a `Content-Type` header, but is NOT an image type (i.e. it was a 302 that, when followed returned HTML)
42
- * (I'm looking at you, Brightspace) => `nonPublic`
43
- * * if there is a `Content-Type` header, and it is an image type, then the image is public => do not update
44
- */
45
- if (!data ||
46
- (!(0, fetch_1.isFetchErrorData)(data) &&
47
- (contentTypeKey = Object.keys(data).find(k => k.toLowerCase() === 'content-type')) &&
48
- !data[contentTypeKey][0].startsWith('image'))) {
49
- const contents = quill.getContents();
50
- const ops = contents.map((o) => {
51
- var _a;
52
- return ((_a = o.insert.image) === null || _a === void 0 ? void 0 : _a.src) && op.insert.image.src && o.insert.image.src === op.insert.image.src
53
- ? Object.assign(Object.assign({}, o), { insert: Object.assign(Object.assign({}, o.insert), { image: Object.assign(Object.assign({}, o.insert.image), { nonPublic: true }) }) }) : o;
54
- });
55
- const updatedContents = contents.diff(new Delta(ops));
56
- quill.updateContents(updatedContents);
23
+ quill.getContents().ops // Is the op an image and have we not seen it before?
24
+ ?.filter(op => op.insert.image && !checkedImages.find(image => image.src === op.insert.image.src) && op.insert.image.src.startsWith('http')).forEach(op => {
25
+ // Check if the image is public. Do not check data:image urls
26
+ // Use the backend to check if the image is public
27
+ // Due to CSP and other security measures, we can't check this in the frontend
28
+
29
+ // uuidv5 is a deterministic uuid generator based on a namespace and a name
30
+ // uuidv5.URL is the namespace for urls
31
+ const hookId = (0, _uuid.v5)(op.insert.image.src, _uuid.v5.URL);
32
+ _noStoreSaga.noStoreHooks.registerNoStoreActionHook(hookId, data => {
33
+ _noStoreSaga.noStoreHooks.unregisterNoStoreActionHook(hookId);
34
+ let contentTypeKey;
35
+ /**
36
+ * API fetches the URL, and `noStoreSaga` returns either the result or error
37
+ * * `data` is `null` when the API could not fetch the URL with a successful status code, and returns `null` => `nonPublic`
38
+ * * `data` is `FetchErrorData` if the API request itself failed, e.g. from some unknown error, we don't know if the image is public => do not update
39
+ * * `data` is a dictionary of headers when the API does fetch the URL
40
+ * * if there is no `Content-Type` header, we don't know if the image is public => do not update
41
+ * * if there is a `Content-Type` header, but is NOT an image type (i.e. it was a 302 that, when followed returned HTML)
42
+ * (I'm looking at you, Brightspace) => `nonPublic`
43
+ * * if there is a `Content-Type` header, and it is an image type, then the image is public => do not update
44
+ */
45
+ if (!data || !(0, _fetch.isFetchErrorData)(data) && (contentTypeKey = Object.keys(data).find(k => k.toLowerCase() === 'content-type')) && !data[contentTypeKey][0].startsWith('image')) {
46
+ const contents = quill.getContents();
47
+ const ops = contents.map(o => o.insert.image?.src && op.insert.image.src && o.insert.image.src === op.insert.image.src ? {
48
+ ...o,
49
+ insert: {
50
+ ...o.insert,
51
+ image: {
52
+ ...o.insert.image,
53
+ nonPublic: true
57
54
  }
58
- });
59
- // This endpoint returns headers for a url. If the url is nonexistent, it will return null
60
- (0, actionCreator_1.dispatchModelFetchRequest)({
61
- modelName: 'urlChecker',
62
- guid: hookId,
63
- noStore: true,
64
- queryParams: {
65
- url: op.insert.image.src
66
- }
67
- });
55
+ }
56
+ } : o);
57
+ const updatedContents = contents.diff(new Delta(ops));
58
+ quill.updateContents(updatedContents);
59
+ }
60
+ });
61
+ // This endpoint returns headers for a url. If the url is nonexistent, it will return null
62
+ (0, _actionCreator.dispatchModelFetchRequest)({
63
+ modelName: 'urlChecker',
64
+ guid: hookId,
65
+ noStore: true,
66
+ queryParams: {
67
+ url: op.insert.image.src
68
+ }
68
69
  });
70
+ });
69
71
  };
70
72
  exports.checkForNonPublicImages = checkForNonPublicImages;
73
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVpbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl91dWlkIiwiX2FjdGlvbkNyZWF0b3IiLCJfbm9TdG9yZVNhZ2EiLCJfZmV0Y2giLCJEZWx0YSIsIlF1aWxsIiwiaW1wb3J0IiwiY2hlY2tGb3JOb25QdWJsaWNJbWFnZXMiLCJxdWlsbCIsImNoZWNrZWRJbWFnZXMiLCJnZXRDb250ZW50cyIsIm9wcyIsImZpbHRlciIsIm9wIiwiaW5zZXJ0IiwiaW1hZ2UiLCJmaW5kIiwic3JjIiwic3RhcnRzV2l0aCIsImZvckVhY2giLCJob29rSWQiLCJ1dWlkdjUiLCJVUkwiLCJub1N0b3JlSG9va3MiLCJyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rIiwiZGF0YSIsInVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImNvbnRlbnRUeXBlS2V5IiwiaXNGZXRjaEVycm9yRGF0YSIsIk9iamVjdCIsImtleXMiLCJrIiwidG9Mb3dlckNhc2UiLCJjb250ZW50cyIsIm1hcCIsIm8iLCJub25QdWJsaWMiLCJ1cGRhdGVkQ29udGVudHMiLCJkaWZmIiwidXBkYXRlQ29udGVudHMiLCJkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0IiwibW9kZWxOYW1lIiwiZ3VpZCIsIm5vU3RvcmUiLCJxdWVyeVBhcmFtcyIsInVybCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcXVpbGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFF1aWxsLCB7IERlbHRhT3BlcmF0aW9uIH0gZnJvbSAncXVpbGwnXHJcbmltcG9ydCB7IHY1IGFzIHV1aWR2NSB9IGZyb20gJ3V1aWQnXHJcbmltcG9ydCB7IEltYWdlVmFsdWUgfSBmcm9tICcuLi9jb21wb25lbnRzL1F1aWxsL0Zvcm1hdHMvSW1hZ2UnXHJcbmltcG9ydCB7IGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QgfSBmcm9tICcuLi9yZWR1eC9hY3Rpb25DcmVhdG9yJ1xyXG5pbXBvcnQgeyBub1N0b3JlSG9va3MgfSBmcm9tICcuLi9yZWR1eC9zYWdhcy9ub1N0b3JlU2FnYSdcclxuaW1wb3J0IHsgRmV0Y2hFcnJvckRhdGEgfSBmcm9tICcuLi90eXBlcydcclxuaW1wb3J0IHsgaXNGZXRjaEVycm9yRGF0YSB9IGZyb20gJy4vZmV0Y2gnXHJcblxyXG5jb25zdCBEZWx0YSA9IFF1aWxsLmltcG9ydCgnZGVsdGEnKVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGZvciBub24tcHVibGljIGluIHRoZSBwcm92aWRlZCBxdWlsbCBjb250ZW50cy4gVXBkYXRlIHRoZSBJbWFnZVZhbHVlIG9mIGFuIG9wIGlmIGFuIGltYWdlIGlzIGZvdW5kIHRvIGJlXHJcbiAqIG5vbi1wdWJsaWMuXHJcbiAqIEBwYXJhbSBxdWlsbCBUaGUgUXVpbGwgaW5zdGFuY2VcclxuICogQHBhcmFtIGNoZWNrZWRJbWFnZXMgQSBsaXN0IG9mIGFsbCBpbWFnZXMgd2UgaGF2ZSBhbHJlYWR5IHByb2Nlc3NlZCBpbiBwcmV2aW91cyBjYWxscyB0byB0aGlzIGZ1bmN0aW9uLlxyXG4gKiBsaXN0IG9mIHByb2Nlc3NlZCBpbWFnZXNcclxuICovXHJcbmV4cG9ydCBjb25zdCBjaGVja0Zvck5vblB1YmxpY0ltYWdlcyA9IChxdWlsbDogUXVpbGwsIGNoZWNrZWRJbWFnZXM6IEltYWdlVmFsdWVbXSkgPT4ge1xyXG5cdHF1aWxsXHJcblx0XHQuZ2V0Q29udGVudHMoKVxyXG5cdFx0Lm9wcyAvLyBJcyB0aGUgb3AgYW4gaW1hZ2UgYW5kIGhhdmUgd2Ugbm90IHNlZW4gaXQgYmVmb3JlP1xyXG5cdFx0Py5maWx0ZXIoXHJcblx0XHRcdG9wID0+XHJcblx0XHRcdFx0b3AuaW5zZXJ0LmltYWdlICYmXHJcblx0XHRcdFx0IWNoZWNrZWRJbWFnZXMuZmluZChpbWFnZSA9PiBpbWFnZS5zcmMgPT09IG9wLmluc2VydC5pbWFnZS5zcmMpICYmXHJcblx0XHRcdFx0b3AuaW5zZXJ0LmltYWdlLnNyYy5zdGFydHNXaXRoKCdodHRwJylcclxuXHRcdClcclxuXHRcdC5mb3JFYWNoKG9wID0+IHtcclxuXHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIGltYWdlIGlzIHB1YmxpYy4gRG8gbm90IGNoZWNrIGRhdGE6aW1hZ2UgdXJsc1xyXG5cdFx0XHQvLyBVc2UgdGhlIGJhY2tlbmQgdG8gY2hlY2sgaWYgdGhlIGltYWdlIGlzIHB1YmxpY1xyXG5cdFx0XHQvLyBEdWUgdG8gQ1NQIGFuZCBvdGhlciBzZWN1cml0eSBtZWFzdXJlcywgd2UgY2FuJ3QgY2hlY2sgdGhpcyBpbiB0aGUgZnJvbnRlbmRcclxuXHJcblx0XHRcdC8vIHV1aWR2NSBpcyBhIGRldGVybWluaXN0aWMgdXVpZCBnZW5lcmF0b3IgYmFzZWQgb24gYSBuYW1lc3BhY2UgYW5kIGEgbmFtZVxyXG5cdFx0XHQvLyB1dWlkdjUuVVJMIGlzIHRoZSBuYW1lc3BhY2UgZm9yIHVybHNcclxuXHRcdFx0Y29uc3QgaG9va0lkID0gdXVpZHY1KG9wLmluc2VydC5pbWFnZS5zcmMsIHV1aWR2NS5VUkwpXHJcblx0XHRcdG5vU3RvcmVIb29rcy5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGhvb2tJZCwgKGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IEZldGNoRXJyb3JEYXRhIHwgbnVsbCkgPT4ge1xyXG5cdFx0XHRcdG5vU3RvcmVIb29rcy51bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soaG9va0lkKVxyXG5cdFx0XHRcdGxldCBjb250ZW50VHlwZUtleTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcblx0XHRcdFx0LyoqXHJcblx0XHRcdFx0ICogQVBJIGZldGNoZXMgdGhlIFVSTCwgYW5kIGBub1N0b3JlU2FnYWAgcmV0dXJucyBlaXRoZXIgdGhlIHJlc3VsdCBvciBlcnJvclxyXG5cdFx0XHRcdCAqICogYGRhdGFgIGlzIGBudWxsYCB3aGVuIHRoZSBBUEkgY291bGQgbm90IGZldGNoIHRoZSBVUkwgd2l0aCBhIHN1Y2Nlc3NmdWwgc3RhdHVzIGNvZGUsIGFuZCByZXR1cm5zIGBudWxsYCA9PiBgbm9uUHVibGljYFxyXG5cdFx0XHRcdCAqICogYGRhdGFgIGlzIGBGZXRjaEVycm9yRGF0YWAgaWYgdGhlIEFQSSByZXF1ZXN0IGl0c2VsZiBmYWlsZWQsIGUuZy4gZnJvbSBzb21lIHVua25vd24gZXJyb3IsIHdlIGRvbid0IGtub3cgaWYgdGhlIGltYWdlIGlzIHB1YmxpYyA9PiBkbyBub3QgdXBkYXRlXHJcblx0XHRcdFx0ICogKiBgZGF0YWAgaXMgYSBkaWN0aW9uYXJ5IG9mIGhlYWRlcnMgd2hlbiB0aGUgQVBJIGRvZXMgZmV0Y2ggdGhlIFVSTFxyXG5cdFx0XHRcdCAqICAgKiBpZiB0aGVyZSBpcyBubyBgQ29udGVudC1UeXBlYCBoZWFkZXIsIHdlIGRvbid0IGtub3cgaWYgdGhlIGltYWdlIGlzIHB1YmxpYyA9PiBkbyBub3QgdXBkYXRlXHJcblx0XHRcdFx0ICogICAqIGlmIHRoZXJlIGlzIGEgYENvbnRlbnQtVHlwZWAgaGVhZGVyLCBidXQgaXMgTk9UIGFuIGltYWdlIHR5cGUgKGkuZS4gaXQgd2FzIGEgMzAyIHRoYXQsIHdoZW4gZm9sbG93ZWQgcmV0dXJuZWQgSFRNTClcclxuXHRcdFx0XHQgKiAgICAgKEknbSBsb29raW5nIGF0IHlvdSwgQnJpZ2h0c3BhY2UpID0+IGBub25QdWJsaWNgXHJcblx0XHRcdFx0ICogICAqIGlmIHRoZXJlIGlzIGEgYENvbnRlbnQtVHlwZWAgaGVhZGVyLCBhbmQgaXQgaXMgYW4gaW1hZ2UgdHlwZSwgdGhlbiB0aGUgaW1hZ2UgaXMgcHVibGljID0+IGRvIG5vdCB1cGRhdGVcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHQhZGF0YSB8fFxyXG5cdFx0XHRcdFx0KCFpc0ZldGNoRXJyb3JEYXRhKGRhdGEpICYmXHJcblx0XHRcdFx0XHRcdChjb250ZW50VHlwZUtleSA9IE9iamVjdC5rZXlzKGRhdGEpLmZpbmQoayA9PiBrLnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LXR5cGUnKSkgJiZcclxuXHRcdFx0XHRcdFx0IWRhdGFbY29udGVudFR5cGVLZXldWzBdLnN0YXJ0c1dpdGgoJ2ltYWdlJykpXHJcblx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRjb25zdCBjb250ZW50cyA9IHF1aWxsLmdldENvbnRlbnRzKClcclxuXHRcdFx0XHRcdGNvbnN0IG9wcyA9IGNvbnRlbnRzLm1hcCgobzogRGVsdGFPcGVyYXRpb24pID0+XHJcblx0XHRcdFx0XHRcdG8uaW5zZXJ0LmltYWdlPy5zcmMgJiYgb3AuaW5zZXJ0LmltYWdlLnNyYyAmJiBvLmluc2VydC5pbWFnZS5zcmMgPT09IG9wLmluc2VydC5pbWFnZS5zcmNcclxuXHRcdFx0XHRcdFx0XHQ/IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Li4ubyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0aW5zZXJ0OiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Li4uby5pbnNlcnQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW1hZ2U6IHsgLi4uby5pbnNlcnQuaW1hZ2UsIG5vblB1YmxpYzogdHJ1ZSB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHQ6IG9cclxuXHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdGNvbnN0IHVwZGF0ZWRDb250ZW50cyA9IGNvbnRlbnRzLmRpZmYobmV3IERlbHRhKG9wcykpXHJcblx0XHRcdFx0XHRxdWlsbC51cGRhdGVDb250ZW50cyh1cGRhdGVkQ29udGVudHMpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0XHQvLyBUaGlzIGVuZHBvaW50IHJldHVybnMgaGVhZGVycyBmb3IgYSB1cmwuIElmIHRoZSB1cmwgaXMgbm9uZXhpc3RlbnQsIGl0IHdpbGwgcmV0dXJuIG51bGxcclxuXHRcdFx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XHJcblx0XHRcdFx0bW9kZWxOYW1lOiAndXJsQ2hlY2tlcicsXHJcblx0XHRcdFx0Z3VpZDogaG9va0lkLFxyXG5cdFx0XHRcdG5vU3RvcmU6IHRydWUsXHJcblx0XHRcdFx0cXVlcnlQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHVybDogb3AuaW5zZXJ0LmltYWdlLnNyY1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBRUEsTUFBTUssS0FBSyxHQUFHQyxjQUFLLENBQUNDLE1BQU0sQ0FBQyxPQUFPLENBQUM7O0FBRW5DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMsdUJBQXVCLEdBQUdBLENBQUNDLEtBQVksRUFBRUMsYUFBMkIsS0FBSztFQUNyRkQsS0FBSyxDQUNIRSxXQUFXLENBQUMsQ0FBQyxDQUNiQyxHQUFHLENBQUM7RUFBQSxFQUNIQyxNQUFNLENBQ1BDLEVBQUUsSUFDREEsRUFBRSxDQUFDQyxNQUFNLENBQUNDLEtBQUssSUFDZixDQUFDTixhQUFhLENBQUNPLElBQUksQ0FBQ0QsS0FBSyxJQUFJQSxLQUFLLENBQUNFLEdBQUcsS0FBS0osRUFBRSxDQUFDQyxNQUFNLENBQUNDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDLElBQy9ESixFQUFFLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDRSxHQUFHLENBQUNDLFVBQVUsQ0FBQyxNQUFNLENBQ3ZDLENBQUMsQ0FDQUMsT0FBTyxDQUFDTixFQUFFLElBQUk7SUFDZDtJQUNBO0lBQ0E7O0lBRUE7SUFDQTtJQUNBLE1BQU1PLE1BQU0sR0FBRyxJQUFBQyxRQUFNLEVBQUNSLEVBQUUsQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLENBQUNFLEdBQUcsRUFBRUksUUFBTSxDQUFDQyxHQUFHLENBQUM7SUFDdERDLHlCQUFZLENBQUNDLHlCQUF5QixDQUFDSixNQUFNLEVBQUdLLElBQXNELElBQUs7TUFDMUdGLHlCQUFZLENBQUNHLDJCQUEyQixDQUFDTixNQUFNLENBQUM7TUFDaEQsSUFBSU8sY0FBa0M7TUFDdEM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFDSSxJQUNDLENBQUNGLElBQUksSUFDSixDQUFDLElBQUFHLHVCQUFnQixFQUFDSCxJQUFJLENBQUMsS0FDdEJFLGNBQWMsR0FBR0UsTUFBTSxDQUFDQyxJQUFJLENBQUNMLElBQUksQ0FBQyxDQUFDVCxJQUFJLENBQUNlLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxDQUFDLElBQ2xGLENBQUNQLElBQUksQ0FBQ0UsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNULFVBQVUsQ0FBQyxPQUFPLENBQUUsRUFDN0M7UUFDRCxNQUFNZSxRQUFRLEdBQUd6QixLQUFLLENBQUNFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU1DLEdBQUcsR0FBR3NCLFFBQVEsQ0FBQ0MsR0FBRyxDQUFFQyxDQUFpQixJQUMxQ0EsQ0FBQyxDQUFDckIsTUFBTSxDQUFDQyxLQUFLLEVBQUVFLEdBQUcsSUFBSUosRUFBRSxDQUFDQyxNQUFNLENBQUNDLEtBQUssQ0FBQ0UsR0FBRyxJQUFJa0IsQ0FBQyxDQUFDckIsTUFBTSxDQUFDQyxLQUFLLENBQUNFLEdBQUcsS0FBS0osRUFBRSxDQUFDQyxNQUFNLENBQUNDLEtBQUssQ0FBQ0UsR0FBRyxHQUNyRjtVQUNBLEdBQUdrQixDQUFDO1VBQ0pyQixNQUFNLEVBQUU7WUFDUCxHQUFHcUIsQ0FBQyxDQUFDckIsTUFBTTtZQUNYQyxLQUFLLEVBQUU7Y0FBRSxHQUFHb0IsQ0FBQyxDQUFDckIsTUFBTSxDQUFDQyxLQUFLO2NBQUVxQixTQUFTLEVBQUU7WUFBSztVQUM3QztRQUNELENBQUMsR0FDQUQsQ0FDSixDQUFDO1FBQ0QsTUFBTUUsZUFBZSxHQUFHSixRQUFRLENBQUNLLElBQUksQ0FBQyxJQUFJbEMsS0FBSyxDQUFDTyxHQUFHLENBQUMsQ0FBQztRQUNyREgsS0FBSyxDQUFDK0IsY0FBYyxDQUFDRixlQUFlLENBQUM7TUFDdEM7SUFDRCxDQUFDLENBQUM7SUFDRjtJQUNBLElBQUFHLHdDQUF5QixFQUFDO01BQ3pCQyxTQUFTLEVBQUUsWUFBWTtNQUN2QkMsSUFBSSxFQUFFdEIsTUFBTTtNQUNadUIsT0FBTyxFQUFFLElBQUk7TUFDYkMsV0FBVyxFQUFFO1FBQ1pDLEdBQUcsRUFBRWhDLEVBQUUsQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLENBQUNFO01BQ3RCO0lBQ0QsQ0FBQyxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFBNkIsT0FBQSxDQUFBdkMsdUJBQUEsR0FBQUEsdUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,67 +1,70 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getReduxModelName = exports.getMinRequiredPathParamsCount = exports.getPathParamsFromRouteMatchParams = exports.getModelIdFromRouteMatchParams = void 0;
4
- const tslib_1 = require("tslib");
5
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
- const pluralize_1 = tslib_1.__importDefault(require("pluralize"));
7
- const configuration_1 = require("../constants/configuration");
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getReduxModelName = exports.getPathParamsFromRouteMatchParams = exports.getModelIdFromRouteMatchParams = exports.getMinRequiredPathParamsCount = void 0;
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _pluralize = _interopRequireDefault(require("pluralize"));
10
+ var _configuration = require("../constants/configuration");
8
11
  const getModelIdFromRouteMatchParams = (routeMatchParams, modelName) => {
9
- const singularModelName = pluralize_1.default.singular(modelName);
10
- const id = routeMatchParams[`${singularModelName}Id`];
11
- if (!id || isNaN(Number(id))) {
12
- return id;
13
- }
14
- return parseInt(id, 10);
12
+ const singularModelName = _pluralize.default.singular(modelName);
13
+ const id = routeMatchParams[`${singularModelName}Id`];
14
+ if (!id || isNaN(Number(id))) {
15
+ return id;
16
+ }
17
+ return parseInt(id, 10);
15
18
  };
16
19
  exports.getModelIdFromRouteMatchParams = getModelIdFromRouteMatchParams;
17
20
  const getPathParamsFromRouteMatchParams = (routeMatchParams, modelName) => {
18
- const pathParams = modelName.split('.').reduce((retval, levelName) => {
19
- const levelId = (0, exports.getModelIdFromRouteMatchParams)(routeMatchParams, levelName);
20
- if (levelId) {
21
- retval.push(levelId);
22
- }
23
- return retval;
24
- }, []);
25
- return pathParams;
21
+ const pathParams = modelName.split('.').reduce((retval, levelName) => {
22
+ const levelId = getModelIdFromRouteMatchParams(routeMatchParams, levelName);
23
+ if (levelId) {
24
+ retval.push(levelId);
25
+ }
26
+ return retval;
27
+ }, []);
28
+ return pathParams;
26
29
  };
27
30
  exports.getPathParamsFromRouteMatchParams = getPathParamsFromRouteMatchParams;
28
- const getMinRequiredPathParamsCount = (modelName) => {
29
- const endpointMappings = (0, configuration_1.getEndpointMappings)();
30
- let pathParamCount = 0;
31
- const modelLevelNames = modelName.split('.');
32
- modelLevelNames.forEach((levelName, index) => {
33
- const modelLevelName = modelLevelNames.slice(0, index + 1).join('.');
34
- const modelLevel = modelLevelName ? lodash_1.default.get(endpointMappings, modelLevelName) : {};
35
- const modelConfig = lodash_1.default.merge({}, modelLevel._config);
36
- if (modelConfig.isCollection && index + 1 < modelLevelNames.length) {
37
- pathParamCount++;
38
- }
39
- });
40
- return pathParamCount;
31
+ const getMinRequiredPathParamsCount = modelName => {
32
+ const endpointMappings = (0, _configuration.getEndpointMappings)();
33
+ let pathParamCount = 0;
34
+ const modelLevelNames = modelName.split('.');
35
+ modelLevelNames.forEach((levelName, index) => {
36
+ const modelLevelName = modelLevelNames.slice(0, index + 1).join('.');
37
+ const modelLevel = modelLevelName ? _lodash.default.get(endpointMappings, modelLevelName) : {};
38
+ const modelConfig = _lodash.default.merge({}, modelLevel._config);
39
+ if (modelConfig.isCollection && index + 1 < modelLevelNames.length) {
40
+ pathParamCount++;
41
+ }
42
+ });
43
+ return pathParamCount;
41
44
  };
42
45
  exports.getMinRequiredPathParamsCount = getMinRequiredPathParamsCount;
43
46
  const getReduxModelName = (pathParams, modelName) => {
44
- const endpointMappings = (0, configuration_1.getEndpointMappings)();
45
- let reduxModelName = modelName;
46
- if (pathParams.length > 0) {
47
- let pathParamIndex = 0;
48
- const modelLevelNames = modelName.split('.');
49
- modelLevelNames.forEach((levelName, index) => {
50
- const modelLevelName = modelLevelNames.slice(0, index + 1).join('.');
51
- const modelLevel = modelLevelName ? lodash_1.default.get(endpointMappings, modelLevelName) : {};
52
- const modelConfig = lodash_1.default.merge({}, modelLevel._config);
53
- if (index === 0) {
54
- reduxModelName = levelName;
55
- }
56
- else {
57
- reduxModelName = `${reduxModelName}.${levelName}`;
58
- }
59
- if (pathParams.length - 1 >= pathParamIndex && modelConfig.isCollection) {
60
- reduxModelName = `${reduxModelName}.${pathParams[pathParamIndex]}`;
61
- pathParamIndex++;
62
- }
63
- });
64
- }
65
- return reduxModelName;
47
+ const endpointMappings = (0, _configuration.getEndpointMappings)();
48
+ let reduxModelName = modelName;
49
+ if (pathParams.length > 0) {
50
+ let pathParamIndex = 0;
51
+ const modelLevelNames = modelName.split('.');
52
+ modelLevelNames.forEach((levelName, index) => {
53
+ const modelLevelName = modelLevelNames.slice(0, index + 1).join('.');
54
+ const modelLevel = modelLevelName ? _lodash.default.get(endpointMappings, modelLevelName) : {};
55
+ const modelConfig = _lodash.default.merge({}, modelLevel._config);
56
+ if (index === 0) {
57
+ reduxModelName = levelName;
58
+ } else {
59
+ reduxModelName = `${reduxModelName}.${levelName}`;
60
+ }
61
+ if (pathParams.length - 1 >= pathParamIndex && modelConfig.isCollection) {
62
+ reduxModelName = `${reduxModelName}.${pathParams[pathParamIndex]}`;
63
+ pathParamIndex++;
64
+ }
65
+ });
66
+ }
67
+ return reduxModelName;
66
68
  };
67
69
  exports.getReduxModelName = getReduxModelName;
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGx1cmFsaXplIiwiX2NvbmZpZ3VyYXRpb24iLCJnZXRNb2RlbElkRnJvbVJvdXRlTWF0Y2hQYXJhbXMiLCJyb3V0ZU1hdGNoUGFyYW1zIiwibW9kZWxOYW1lIiwic2luZ3VsYXJNb2RlbE5hbWUiLCJwbHVyYWxpemUiLCJzaW5ndWxhciIsImlkIiwiaXNOYU4iLCJOdW1iZXIiLCJwYXJzZUludCIsImV4cG9ydHMiLCJnZXRQYXRoUGFyYW1zRnJvbVJvdXRlTWF0Y2hQYXJhbXMiLCJwYXRoUGFyYW1zIiwic3BsaXQiLCJyZWR1Y2UiLCJyZXR2YWwiLCJsZXZlbE5hbWUiLCJsZXZlbElkIiwicHVzaCIsImdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50IiwiZW5kcG9pbnRNYXBwaW5ncyIsImdldEVuZHBvaW50TWFwcGluZ3MiLCJwYXRoUGFyYW1Db3VudCIsIm1vZGVsTGV2ZWxOYW1lcyIsImZvckVhY2giLCJpbmRleCIsIm1vZGVsTGV2ZWxOYW1lIiwic2xpY2UiLCJqb2luIiwibW9kZWxMZXZlbCIsIl8iLCJnZXQiLCJtb2RlbENvbmZpZyIsIm1lcmdlIiwiX2NvbmZpZyIsImlzQ29sbGVjdGlvbiIsImxlbmd0aCIsImdldFJlZHV4TW9kZWxOYW1lIiwicmVkdXhNb2RlbE5hbWUiLCJwYXRoUGFyYW1JbmRleCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yb3V0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXywgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJ1xyXG5pbXBvcnQgcGx1cmFsaXplIGZyb20gJ3BsdXJhbGl6ZSdcclxuaW1wb3J0IHsgZ2V0RW5kcG9pbnRNYXBwaW5ncyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWd1cmF0aW9uJ1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldE1vZGVsSWRGcm9tUm91dGVNYXRjaFBhcmFtcyA9IChyb3V0ZU1hdGNoUGFyYW1zOiBEaWN0aW9uYXJ5PHN0cmluZz4sIG1vZGVsTmFtZTogc3RyaW5nKSA9PiB7XHJcblx0Y29uc3Qgc2luZ3VsYXJNb2RlbE5hbWUgPSBwbHVyYWxpemUuc2luZ3VsYXIobW9kZWxOYW1lKVxyXG5cdGNvbnN0IGlkID0gcm91dGVNYXRjaFBhcmFtc1tgJHtzaW5ndWxhck1vZGVsTmFtZX1JZGBdIGFzIHN0cmluZyB8IHVuZGVmaW5lZFxyXG5cdGlmICghaWQgfHwgaXNOYU4oTnVtYmVyKGlkKSkpIHtcclxuXHRcdHJldHVybiBpZFxyXG5cdH1cclxuXHRyZXR1cm4gcGFyc2VJbnQoaWQsIDEwKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGF0aFBhcmFtc0Zyb21Sb3V0ZU1hdGNoUGFyYW1zID0gKHJvdXRlTWF0Y2hQYXJhbXM6IERpY3Rpb25hcnk8c3RyaW5nPiwgbW9kZWxOYW1lOiBzdHJpbmcpID0+IHtcclxuXHRjb25zdCBwYXRoUGFyYW1zID0gbW9kZWxOYW1lLnNwbGl0KCcuJykucmVkdWNlKChyZXR2YWw6IGFueVtdLCBsZXZlbE5hbWUpID0+IHtcclxuXHRcdGNvbnN0IGxldmVsSWQgPSBnZXRNb2RlbElkRnJvbVJvdXRlTWF0Y2hQYXJhbXMocm91dGVNYXRjaFBhcmFtcywgbGV2ZWxOYW1lKVxyXG5cdFx0aWYgKGxldmVsSWQpIHtcclxuXHRcdFx0cmV0dmFsLnB1c2gobGV2ZWxJZClcclxuXHRcdH1cclxuXHRcdHJldHVybiByZXR2YWxcclxuXHR9LCBbXSlcclxuXHRyZXR1cm4gcGF0aFBhcmFtc1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQgPSAobW9kZWxOYW1lOiBzdHJpbmcpID0+IHtcclxuXHRjb25zdCBlbmRwb2ludE1hcHBpbmdzID0gZ2V0RW5kcG9pbnRNYXBwaW5ncygpXHJcblx0bGV0IHBhdGhQYXJhbUNvdW50ID0gMFxyXG5cdGNvbnN0IG1vZGVsTGV2ZWxOYW1lcyA9IG1vZGVsTmFtZS5zcGxpdCgnLicpXHJcblx0bW9kZWxMZXZlbE5hbWVzLmZvckVhY2goKGxldmVsTmFtZSwgaW5kZXgpID0+IHtcclxuXHRcdGNvbnN0IG1vZGVsTGV2ZWxOYW1lID0gbW9kZWxMZXZlbE5hbWVzLnNsaWNlKDAsIGluZGV4ICsgMSkuam9pbignLicpXHJcblx0XHRjb25zdCBtb2RlbExldmVsID0gbW9kZWxMZXZlbE5hbWUgPyBfLmdldChlbmRwb2ludE1hcHBpbmdzLCBtb2RlbExldmVsTmFtZSkgOiB7fVxyXG5cdFx0Y29uc3QgbW9kZWxDb25maWcgPSBfLm1lcmdlKHt9LCBtb2RlbExldmVsLl9jb25maWcpXHJcblx0XHRpZiAobW9kZWxDb25maWcuaXNDb2xsZWN0aW9uICYmIGluZGV4ICsgMSA8IG1vZGVsTGV2ZWxOYW1lcy5sZW5ndGgpIHtcclxuXHRcdFx0cGF0aFBhcmFtQ291bnQrK1xyXG5cdFx0fVxyXG5cdH0pXHJcblx0cmV0dXJuIHBhdGhQYXJhbUNvdW50XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRSZWR1eE1vZGVsTmFtZSA9IChwYXRoUGFyYW1zOiBhbnlbXSwgbW9kZWxOYW1lOiBzdHJpbmcpID0+IHtcclxuXHRjb25zdCBlbmRwb2ludE1hcHBpbmdzID0gZ2V0RW5kcG9pbnRNYXBwaW5ncygpXHJcblx0bGV0IHJlZHV4TW9kZWxOYW1lID0gbW9kZWxOYW1lXHJcblx0aWYgKHBhdGhQYXJhbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0bGV0IHBhdGhQYXJhbUluZGV4ID0gMFxyXG5cdFx0Y29uc3QgbW9kZWxMZXZlbE5hbWVzID0gbW9kZWxOYW1lLnNwbGl0KCcuJylcclxuXHRcdG1vZGVsTGV2ZWxOYW1lcy5mb3JFYWNoKChsZXZlbE5hbWUsIGluZGV4KSA9PiB7XHJcblx0XHRcdGNvbnN0IG1vZGVsTGV2ZWxOYW1lID0gbW9kZWxMZXZlbE5hbWVzLnNsaWNlKDAsIGluZGV4ICsgMSkuam9pbignLicpXHJcblx0XHRcdGNvbnN0IG1vZGVsTGV2ZWwgPSBtb2RlbExldmVsTmFtZSA/IF8uZ2V0KGVuZHBvaW50TWFwcGluZ3MsIG1vZGVsTGV2ZWxOYW1lKSA6IHt9XHJcblx0XHRcdGNvbnN0IG1vZGVsQ29uZmlnID0gXy5tZXJnZSh7fSwgbW9kZWxMZXZlbC5fY29uZmlnKVxyXG5cdFx0XHRpZiAoaW5kZXggPT09IDApIHtcclxuXHRcdFx0XHRyZWR1eE1vZGVsTmFtZSA9IGxldmVsTmFtZVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlZHV4TW9kZWxOYW1lID0gYCR7cmVkdXhNb2RlbE5hbWV9LiR7bGV2ZWxOYW1lfWBcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAocGF0aFBhcmFtcy5sZW5ndGggLSAxID49IHBhdGhQYXJhbUluZGV4ICYmIG1vZGVsQ29uZmlnLmlzQ29sbGVjdGlvbikge1xyXG5cdFx0XHRcdHJlZHV4TW9kZWxOYW1lID0gYCR7cmVkdXhNb2RlbE5hbWV9LiR7cGF0aFBhcmFtc1twYXRoUGFyYW1JbmRleF19YFxyXG5cdFx0XHRcdHBhdGhQYXJhbUluZGV4KytcclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHR9XHJcblx0cmV0dXJuIHJlZHV4TW9kZWxOYW1lXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBRU8sTUFBTUcsOEJBQThCLEdBQUdBLENBQUNDLGdCQUFvQyxFQUFFQyxTQUFpQixLQUFLO0VBQzFHLE1BQU1DLGlCQUFpQixHQUFHQyxrQkFBUyxDQUFDQyxRQUFRLENBQUNILFNBQVMsQ0FBQztFQUN2RCxNQUFNSSxFQUFFLEdBQUdMLGdCQUFnQixDQUFDLEdBQUdFLGlCQUFpQixJQUFJLENBQXVCO0VBQzNFLElBQUksQ0FBQ0csRUFBRSxJQUFJQyxLQUFLLENBQUNDLE1BQU0sQ0FBQ0YsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUM3QixPQUFP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
@@ -1,93 +1,89 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.searchGroups = exports.searchEntities = exports.isEntityMatchedByKeywords = exports.isEntityMatchedByKeyword = exports.isEntityUserMatchedByKeyword = exports.getKeywordsList = void 0;
4
- const table_1 = require("../constants/table");
5
- const date_1 = require("./date");
6
- const groupDates_1 = require("./groupDates");
7
- const groupRoles_1 = require("./groupRoles");
8
- const getKeywordsList = (keywords) => {
9
- if (!keywords)
10
- return [];
11
- return keywords
12
- .trim()
13
- .toLowerCase()
14
- .split(' ')
15
- .filter(k => !!k);
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.searchGroups = exports.searchEntities = exports.isEntityUserMatchedByKeyword = exports.isEntityMatchedByKeywords = exports.isEntityMatchedByKeyword = exports.getKeywordsList = void 0;
7
+ var _table = require("../constants/table");
8
+ var _date = require("./date");
9
+ var _groupDates = require("./groupDates");
10
+ var _groupRoles = require("./groupRoles");
11
+ const getKeywordsList = keywords => {
12
+ if (!keywords) return [];
13
+ return keywords.trim().toLowerCase().split(' ').filter(k => !!k);
16
14
  };
17
15
  exports.getKeywordsList = getKeywordsList;
18
- const isEntityUserMatchedByKeyword = (owner, keyword) => {
19
- var _a, _b, _c, _d;
20
- return owner.id.toLowerCase().includes(keyword) ||
21
- !!((_a = owner.firstName) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(keyword)) ||
22
- !!((_b = owner.lastName) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase().includes(keyword)) ||
23
- !!((_c = owner.email) === null || _c === void 0 ? void 0 : _c.toString().toLowerCase().includes(keyword)) ||
24
- !!((_d = owner.uid) === null || _d === void 0 ? void 0 : _d.toString().toLowerCase().includes(keyword));
25
- };
16
+ const isEntityUserMatchedByKeyword = (owner, keyword) => owner.id.toLowerCase().includes(keyword) || !!owner.firstName?.toLowerCase().includes(keyword) || !!owner.lastName?.toString().toLowerCase().includes(keyword) || !!owner.email?.toString().toLowerCase().includes(keyword) || !!owner.uid?.toString().toLowerCase().includes(keyword);
26
17
  exports.isEntityUserMatchedByKeyword = isEntityUserMatchedByKeyword;
27
- const isEntityMatchedByKeyword = (entity, keyword) => entity.id.toString().toLowerCase().includes(keyword) ||
28
- entity.name.toLowerCase().includes(keyword) ||
29
- entity.owners.some(owner => (0, exports.isEntityUserMatchedByKeyword)(owner, keyword));
18
+ const isEntityMatchedByKeyword = (entity, keyword) => entity.id.toString().toLowerCase().includes(keyword) || entity.name.toLowerCase().includes(keyword) || entity.owners.some(owner => isEntityUserMatchedByKeyword(owner, keyword));
30
19
  exports.isEntityMatchedByKeyword = isEntityMatchedByKeyword;
31
- const isEntityMatchedByKeywords = (entity, keywordsList) => keywordsList.length === 0 || keywordsList.every(k => (0, exports.isEntityMatchedByKeyword)(entity, k));
20
+ const isEntityMatchedByKeywords = (entity, keywordsList) => keywordsList.length === 0 || keywordsList.every(k => isEntityMatchedByKeyword(entity, k));
32
21
  exports.isEntityMatchedByKeywords = isEntityMatchedByKeywords;
33
22
  const searchEntities = (entityArray, entityMatchFunction, readActivity, canReadAnyGlobally, keywords) => {
34
- const keywordsList = (0, exports.getKeywordsList)(keywords);
35
- const filteredEntities = entityArray.reduce((acc, e) => {
36
- var _a;
37
- // exclude if cannot read any entity and does not have the read activity
38
- if (!canReadAnyGlobally && !e.activities.includes(readActivity))
39
- return acc;
40
- // exclude if does not match, if any
41
- if (!entityMatchFunction(e, keywordsList))
42
- return acc;
43
- // add entity to the corresponding tab filtered array
44
- const tab = e.isDeleted ? table_1.MANAGE_TABLE_TAB.DELETED : table_1.MANAGE_TABLE_TAB.AVAILABLE;
45
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
46
- const tabArray = (_a = acc[tab]) !== null && _a !== void 0 ? _a : [];
47
- tabArray.push(e);
48
- acc[tab] = tabArray;
49
- return acc;
50
- }, { [table_1.MANAGE_TABLE_TAB.AVAILABLE]: [], [table_1.MANAGE_TABLE_TAB.DELETED]: [] });
51
- return filteredEntities;
23
+ const keywordsList = getKeywordsList(keywords);
24
+ const filteredEntities = entityArray.reduce((acc, e) => {
25
+ // exclude if cannot read any entity and does not have the read activity
26
+ if (!canReadAnyGlobally && !e.activities.includes(readActivity)) return acc;
27
+ // exclude if does not match, if any
28
+ if (!entityMatchFunction(e, keywordsList)) return acc;
29
+ // add entity to the corresponding tab filtered array
30
+ const tab = e.isDeleted ? _table.MANAGE_TABLE_TAB.DELETED : _table.MANAGE_TABLE_TAB.AVAILABLE;
31
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
32
+ const tabArray = acc[tab] ?? [];
33
+ tabArray.push(e);
34
+ acc[tab] = tabArray;
35
+ return acc;
36
+ }, {
37
+ [_table.MANAGE_TABLE_TAB.AVAILABLE]: [],
38
+ [_table.MANAGE_TABLE_TAB.DELETED]: []
39
+ });
40
+ return filteredEntities;
52
41
  };
42
+
43
+ //#region Groups
53
44
  exports.searchEntities = searchEntities;
54
45
  const getGroupTab = (group, endDate) => {
55
- if (group.isDeleted) {
56
- return table_1.GROUP_MANAGE_TABLE_TAB.DELETED;
57
- }
58
- else if (!!group.id && (0, date_1.isNowBeforeDate)(endDate)) {
59
- return table_1.GROUP_MANAGE_TABLE_TAB.CURRENT;
60
- }
61
- return table_1.GROUP_MANAGE_TABLE_TAB.PAST;
46
+ if (group.isDeleted) {
47
+ return _table.GROUP_MANAGE_TABLE_TAB.DELETED;
48
+ } else if (!!group.id && (0, _date.isNowBeforeDate)(endDate)) {
49
+ return _table.GROUP_MANAGE_TABLE_TAB.CURRENT;
50
+ }
51
+ return _table.GROUP_MANAGE_TABLE_TAB.PAST;
62
52
  };
63
- const searchGroups = ({ groups, modelArray: groupsArray, externalTerms, canReadyAnyGlobally, keywords, dateString }) => {
64
- const keywordsList = (0, exports.getKeywordsList)(keywords);
65
- const visibleGroups = canReadyAnyGlobally ? groupsArray : (0, groupRoles_1.groupsAsAnythingButLearner)(groups);
66
- const filteredGroups = visibleGroups.reduce((acc, g) => {
67
- var _a;
68
- // exclude if does not match keywords, if any
69
- if (!(0, exports.isEntityMatchedByKeywords)(g, keywordsList))
70
- return acc;
71
- const startDate = (0, groupDates_1.getStartDate)(externalTerms, g);
72
- const endDate = (0, groupDates_1.getEndDate)(externalTerms, g);
73
- // exclude if search dateString is not between group start and end dates
74
- if (!!dateString &&
75
- ((0, date_1.getLocalMomentFromUtc)(dateString) < (0, date_1.getLocalMomentFromUtc)(startDate) ||
76
- (0, date_1.getLocalMomentFromUtc)(dateString) > (0, date_1.getLocalMomentFromUtc)(endDate))) {
77
- return acc;
78
- }
79
- const tab = getGroupTab(g, endDate);
80
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
81
- const tabArray = (_a = acc[tab]) !== null && _a !== void 0 ? _a : [];
82
- tabArray.push(g);
83
- acc[tab] = tabArray;
84
- return acc;
85
- }, {
86
- [table_1.GROUP_MANAGE_TABLE_TAB.CURRENT]: [],
87
- [table_1.GROUP_MANAGE_TABLE_TAB.PAST]: [],
88
- [table_1.GROUP_MANAGE_TABLE_TAB.DELETED]: []
89
- });
90
- return filteredGroups;
53
+ const searchGroups = _ref => {
54
+ let {
55
+ groups,
56
+ modelArray: groupsArray,
57
+ externalTerms,
58
+ canReadyAnyGlobally,
59
+ keywords,
60
+ dateString
61
+ } = _ref;
62
+ const keywordsList = getKeywordsList(keywords);
63
+ const visibleGroups = canReadyAnyGlobally ? groupsArray : (0, _groupRoles.groupsAsAnythingButLearner)(groups);
64
+ const filteredGroups = visibleGroups.reduce((acc, g) => {
65
+ // exclude if does not match keywords, if any
66
+ if (!isEntityMatchedByKeywords(g, keywordsList)) return acc;
67
+ const startDate = (0, _groupDates.getStartDate)(externalTerms, g);
68
+ const endDate = (0, _groupDates.getEndDate)(externalTerms, g);
69
+ // exclude if search dateString is not between group start and end dates
70
+ if (!!dateString && ((0, _date.getLocalMomentFromUtc)(dateString) < (0, _date.getLocalMomentFromUtc)(startDate) || (0, _date.getLocalMomentFromUtc)(dateString) > (0, _date.getLocalMomentFromUtc)(endDate))) {
71
+ return acc;
72
+ }
73
+ const tab = getGroupTab(g, endDate);
74
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
75
+ const tabArray = acc[tab] ?? [];
76
+ tabArray.push(g);
77
+ acc[tab] = tabArray;
78
+ return acc;
79
+ }, {
80
+ [_table.GROUP_MANAGE_TABLE_TAB.CURRENT]: [],
81
+ [_table.GROUP_MANAGE_TABLE_TAB.PAST]: [],
82
+ [_table.GROUP_MANAGE_TABLE_TAB.DELETED]: []
83
+ });
84
+ return filteredGroups;
91
85
  };
92
- exports.searchGroups = searchGroups;
86
+
93
87
  //#endregion Groups
88
+ exports.searchGroups = searchGroups;
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGFibGUiLCJyZXF1aXJlIiwiX2RhdGUiLCJfZ3JvdXBEYXRlcyIsIl9ncm91cFJvbGVzIiwiZ2V0S2V5d29yZHNMaXN0Iiwia2V5d29yZHMiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJzcGxpdCIsImZpbHRlciIsImsiLCJleHBvcnRzIiwiaXNFbnRpdHlVc2VyTWF0Y2hlZEJ5S2V5d29yZCIsIm93bmVyIiwia2V5d29yZCIsImlkIiwiaW5jbHVkZXMiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInRvU3RyaW5nIiwiZW1haWwiLCJ1aWQiLCJpc0VudGl0eU1hdGNoZWRCeUtleXdvcmQiLCJlbnRpdHkiLCJuYW1lIiwib3duZXJzIiwic29tZSIsImlzRW50aXR5TWF0Y2hlZEJ5S2V5d29yZHMiLCJrZXl3b3Jkc0xpc3QiLCJsZW5ndGgiLCJldmVyeSIsInNlYXJjaEVudGl0aWVzIiwiZW50aXR5QXJyYXkiLCJlbnRpdHlNYXRjaEZ1bmN0aW9uIiwicmVhZEFjdGl2aXR5IiwiY2FuUmVhZEFueUdsb2JhbGx5IiwiZmlsdGVyZWRFbnRpdGllcyIsInJlZHVjZSIsImFjYyIsImUiLCJhY3Rpdml0aWVzIiwidGFiIiwiaXNEZWxldGVkIiwiTUFOQUdFX1RBQkxFX1RBQiIsIkRFTEVURUQiLCJBVkFJTEFCTEUiLCJ0YWJBcnJheSIsInB1c2giLCJnZXRHcm91cFRhYiIsImdyb3VwIiwiZW5kRGF0ZSIsIkdST1VQX01BTkFHRV9UQUJMRV9UQUIiLCJpc05vd0JlZm9yZURhdGUiLCJDVVJSRU5UIiwiUEFTVCIsInNlYXJjaEdyb3VwcyIsIl9yZWYiLCJncm91cHMiLCJtb2RlbEFycmF5IiwiZ3JvdXBzQXJyYXkiLCJleHRlcm5hbFRlcm1zIiwiY2FuUmVhZHlBbnlHbG9iYWxseSIsImRhdGVTdHJpbmciLCJ2aXNpYmxlR3JvdXBzIiwiZ3JvdXBzQXNBbnl0aGluZ0J1dExlYXJuZXIiLCJmaWx0ZXJlZEdyb3VwcyIsImciLCJzdGFydERhdGUiLCJnZXRTdGFydERhdGUiLCJnZXRFbmREYXRlIiwiZ2V0TG9jYWxNb21lbnRGcm9tVXRjIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHUk9VUF9NQU5BR0VfVEFCTEVfVEFCLCBNQU5BR0VfVEFCTEVfVEFCIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RhYmxlJ1xyXG5pbXBvcnQgeyBFbnRpdHlVc2VyLCBFeHRlcm5hbFRlcm0sIEdyb3VwLCBNb2RlbENvbGxlY3Rpb24gfSBmcm9tICcuLi90eXBlcydcclxuaW1wb3J0IHsgZ2V0TG9jYWxNb21lbnRGcm9tVXRjLCBpc05vd0JlZm9yZURhdGUgfSBmcm9tICcuL2RhdGUnXHJcbmltcG9ydCB7IGdldEVuZERhdGUsIGdldFN0YXJ0RGF0ZSB9IGZyb20gJy4vZ3JvdXBEYXRlcydcclxuaW1wb3J0IHsgZ3JvdXBzQXNBbnl0aGluZ0J1dExlYXJuZXIgfSBmcm9tICcuL2dyb3VwUm9sZXMnXHJcblxyXG5leHBvcnQgY29uc3QgZ2V0S2V5d29yZHNMaXN0ID0gKGtleXdvcmRzOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcclxuXHRpZiAoIWtleXdvcmRzKSByZXR1cm4gW11cclxuXHRyZXR1cm4ga2V5d29yZHNcclxuXHRcdC50cmltKClcclxuXHRcdC50b0xvd2VyQ2FzZSgpXHJcblx0XHQuc3BsaXQoJyAnKVxyXG5cdFx0LmZpbHRlcihrID0+ICEhaylcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzRW50aXR5VXNlck1hdGNoZWRCeUtleXdvcmQgPSAob3duZXI6IEVudGl0eVVzZXIsIGtleXdvcmQ6IHN0cmluZykgPT5cclxuXHRvd25lci5pZC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGtleXdvcmQpIHx8XHJcblx0ISFvd25lci5maXJzdE5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoa2V5d29yZCkgfHxcclxuXHQhIW93bmVyLmxhc3ROYW1lPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoa2V5d29yZCkgfHxcclxuXHQhIW93bmVyLmVtYWlsPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoa2V5d29yZCkgfHxcclxuXHQhIW93bmVyLnVpZD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGtleXdvcmQpXHJcblxyXG5leHBvcnQgY29uc3QgaXNFbnRpdHlNYXRjaGVkQnlLZXl3b3JkID0gKGVudGl0eTogeyBpZDogbnVtYmVyOyBuYW1lOiBzdHJpbmc7IG93bmVyczogRW50aXR5VXNlcltdIH0sIGtleXdvcmQ6IHN0cmluZykgPT5cclxuXHRlbnRpdHkuaWQudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGtleXdvcmQpIHx8XHJcblx0ZW50aXR5Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrZXl3b3JkKSB8fFxyXG5cdGVudGl0eS5vd25lcnMuc29tZShvd25lciA9PiBpc0VudGl0eVVzZXJNYXRjaGVkQnlLZXl3b3JkKG93bmVyLCBrZXl3b3JkKSlcclxuXHJcbmV4cG9ydCBjb25zdCBpc0VudGl0eU1hdGNoZWRCeUtleXdvcmRzID0gKFxyXG5cdGVudGl0eTogeyBpZDogbnVtYmVyOyBuYW1lOiBzdHJpbmc7IG93bmVyczogRW50aXR5VXNlcltdIH0sXHJcblx0a2V5d29yZHNMaXN0OiBzdHJpbmdbXVxyXG4pID0+IGtleXdvcmRzTGlzdC5sZW5ndGggPT09IDAgfHwga2V5d29yZHNMaXN0LmV2ZXJ5KGsgPT4gaXNFbnRpdHlNYXRjaGVkQnlLZXl3b3JkKGVudGl0eSwgaykpXHJcblxyXG5leHBvcnQgY29uc3Qgc2VhcmNoRW50aXRpZXMgPSA8VCBleHRlbmRzIHsgaXNEZWxldGVkOiBib29sZWFuOyBhY3Rpdml0aWVzOiBzdHJpbmdbXSB9PihcclxuXHRlbnRpdHlBcnJheTogVFtdLFxyXG5cdGVudGl0eU1hdGNoRnVuY3Rpb246IChlbnRpdHk6IFQsIGtleXdvcmRzTGlzdDogc3RyaW5nW10pID0+IGJvb2xlYW4sXHJcblx0cmVhZEFjdGl2aXR5OiBzdHJpbmcsXHJcblx0Y2FuUmVhZEFueUdsb2JhbGx5PzogYm9vbGVhbixcclxuXHRrZXl3b3Jkcz86IHN0cmluZ1xyXG4pID0+IHtcclxuXHRjb25zdCBrZXl3b3Jkc0xpc3QgPSBnZXRLZXl3b3Jkc0xpc3Qoa2V5d29yZHMpXHJcblx0Y29uc3QgZmlsdGVyZWRFbnRpdGllcyA9IGVudGl0eUFycmF5LnJlZHVjZTxSZWNvcmQ8bnVtYmVyLCBUW10+PihcclxuXHRcdChhY2MsIGUpID0+IHtcclxuXHRcdFx0Ly8gZXhjbHVkZSBpZiBjYW5ub3QgcmVhZCBhbnkgZW50aXR5IGFuZCBkb2VzIG5vdCBoYXZlIHRoZSByZWFkIGFjdGl2aXR5XHJcblx0XHRcdGlmICghY2FuUmVhZEFueUdsb2JhbGx5ICYmICFlLmFjdGl2aXRpZXMuaW5jbHVkZXMocmVhZEFjdGl2aXR5KSkgcmV0dXJuIGFjY1xyXG5cdFx0XHQvLyBleGNsdWRlIGlmIGRvZXMgbm90IG1hdGNoLCBpZiBhbnlcclxuXHRcdFx0aWYgKCFlbnRpdHlNYXRjaEZ1bmN0aW9uKGUsIGtleXdvcmRzTGlzdCkpIHJldHVybiBhY2NcclxuXHRcdFx0Ly8gYWRkIGVudGl0eSB0byB0aGUgY29ycmVzcG9uZGluZyB0YWIgZmlsdGVyZWQgYXJyYXlcclxuXHRcdFx0Y29uc3QgdGFiID0gZS5pc0RlbGV0ZWQgPyBNQU5BR0VfVEFCTEVfVEFCLkRFTEVURUQgOiBNQU5BR0VfVEFCTEVfVEFCLkFWQUlMQUJMRVxyXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxyXG5cdFx0XHRjb25zdCB0YWJBcnJheTogVFtdID0gYWNjW3RhYl0gPz8gW11cclxuXHRcdFx0dGFiQXJyYXkucHVzaChlKVxyXG5cdFx0XHRhY2NbdGFiXSA9IHRhYkFycmF5XHJcblx0XHRcdHJldHVybiBhY2NcclxuXHRcdH0sXHJcblx0XHR7IFtNQU5BR0VfVEFCTEVfVEFCLkFWQUlMQUJMRV06IFtdLCBbTUFOQUdFX1RBQkxFX1RBQi5ERUxFVEVEXTogW10gfVxyXG5cdClcclxuXHRyZXR1cm4gZmlsdGVyZWRFbnRpdGllc1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaE1vZGVsQXJyYXlQYXJhbXM8VE1vZGVsPiB7XHJcblx0bW9kZWxBcnJheTogVE1vZGVsW11cclxuXHRjYW5SZWFkeUFueUdsb2JhbGx5PzogYm9vbGVhblxyXG5cdGtleXdvcmRzPzogc3RyaW5nXHJcbn1cclxuXHJcbi8vI3JlZ2lvbiBHcm91cHNcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoR3JvdXBzUGFyYW1zIGV4dGVuZHMgU2VhcmNoTW9kZWxBcnJheVBhcmFtczxHcm91cD4ge1xyXG5cdGdyb3VwczogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPlxyXG5cdGV4dGVybmFsVGVybXM6IE1vZGVsQ29sbGVjdGlvbjxFeHRlcm5hbFRlcm0+XHJcblx0ZGF0ZVN0cmluZz86IHN0cmluZ1xyXG59XHJcblxyXG5jb25zdCBnZXRHcm91cFRhYiA9IChncm91cDogR3JvdXAsIGVuZERhdGU6IHN0cmluZykgPT4ge1xyXG5cdGlmIChncm91cC5pc0RlbGV0ZWQpIHtcclxuXHRcdHJldHVybiBHUk9VUF9NQU5BR0VfVEFCTEVfVEFCLkRFTEVURURcclxuXHR9IGVsc2UgaWYgKCEhZ3JvdXAuaWQgJiYgaXNOb3dCZWZvcmVEYXRlKGVuZERhdGUpKSB7XHJcblx0XHRyZXR1cm4gR1JPVVBfTUFOQUdFX1RBQkxFX1RBQi5DVVJSRU5UXHJcblx0fVxyXG5cdHJldHVybiBHUk9VUF9NQU5BR0VfVEFCTEVfVEFCLlBBU1RcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNlYXJjaEdyb3VwcyA9ICh7XHJcblx0Z3JvdXBzLFxyXG5cdG1vZGVsQXJyYXk6IGdyb3Vwc0FycmF5LFxyXG5cdGV4dGVybmFsVGVybXMsXHJcblx0Y2FuUmVhZHlBbnlHbG9iYWxseSxcclxuXHRrZXl3b3JkcyxcclxuXHRkYXRlU3RyaW5nXHJcbn06IFNlYXJjaEdyb3Vwc1BhcmFtcykgPT4ge1xyXG5cdGNvbnN0IGtleXdvcmRzTGlzdCA9IGdldEtleXdvcmRzTGlzdChrZXl3b3JkcylcclxuXHRjb25zdCB2aXNpYmxlR3JvdXBzID0gY2FuUmVhZHlBbnlHbG9iYWxseSA/IGdyb3Vwc0FycmF5IDogZ3JvdXBzQXNBbnl0aGluZ0J1dExlYXJuZXIoZ3JvdXBzKVxyXG5cdGNvbnN0IGZpbHRlcmVkR3JvdXBzID0gdmlzaWJsZUdyb3Vwcy5yZWR1Y2U8UmVjb3JkPG51bWJlciwgR3JvdXBbXT4+KFxyXG5cdFx0KGFjYywgZykgPT4ge1xyXG5cdFx0XHQvLyBleGNsdWRlIGlmIGRvZXMgbm90IG1hdGNoIGtleXdvcmRzLCBpZiBhbnlcclxuXHRcdFx0aWYgKCFpc0VudGl0eU1hdGNoZWRCeUtleXdvcmRzKGcsIGtleXdvcmRzTGlzdCkpIHJldHVybiBhY2NcclxuXHRcdFx0Y29uc3Qgc3RhcnREYXRlID0gZ2V0U3RhcnREYXRlKGV4dGVybmFsVGVybXMsIGcpXHJcblx0XHRcdGNvbnN0IGVuZERhdGUgPSBnZXRFbmREYXRlKGV4dGVybmFsVGVybXMsIGcpXHJcblx0XHRcdC8vIGV4Y2x1ZGUgaWYgc2VhcmNoIGRhdGVTdHJpbmcgaXMgbm90IGJldHdlZW4gZ3JvdXAgc3RhcnQgYW5kIGVuZCBkYXRlc1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0ISFkYXRlU3RyaW5nICYmXHJcblx0XHRcdFx0KGdldExvY2FsTW9tZW50RnJvbVV0YyhkYXRlU3RyaW5nKSA8IGdldExvY2FsTW9tZW50RnJvbVV0YyhzdGFydERhdGUpIHx8XHJcblx0XHRcdFx0XHRnZXRMb2NhbE1vbWVudEZyb21VdGMoZGF0ZVN0cmluZykgPiBnZXRMb2NhbE1vbWVudEZyb21VdGMoZW5kRGF0ZSkpXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHJldHVybiBhY2NcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCB0YWIgPSBnZXRHcm91cFRhYihnLCBlbmREYXRlKVxyXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxyXG5cdFx0XHRjb25zdCB0YWJBcnJheTogR3JvdXBbXSA9IGFjY1t0YWJdID8/IFtdXHJcblx0XHRcdHRhYkFycmF5LnB1c2goZylcclxuXHRcdFx0YWNjW3RhYl0gPSB0YWJBcnJheVxyXG5cdFx0XHRyZXR1cm4gYWNjXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRbR1JPVVBfTUFOQUdFX1RBQkxFX1RBQi5DVVJSRU5UXTogW10sXHJcblx0XHRcdFtHUk9VUF9NQU5BR0VfVEFCTEVfVEFCLlBBU1RdOiBbXSxcclxuXHRcdFx0W0dST1VQX01BTkFHRV9UQUJMRV9UQUIuREVMRVRFRF06IFtdXHJcblx0XHR9XHJcblx0KVxyXG5cdHJldHVybiBmaWx0ZXJlZEdyb3Vwc1xyXG59XHJcblxyXG4vLyNlbmRyZWdpb24gR3JvdXBzXHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBRU8sTUFBTUksZUFBZSxHQUFJQyxRQUE0QixJQUFLO0VBQ2hFLElBQUksQ0FBQ0EsUUFBUSxFQUFFLE9BQU8sRUFBRTtFQUN4QixPQUFPQSxRQUFRLENBQ2JDLElBQUksQ0FBQyxDQUFDLENBQ05DLFdBQVcsQ0FBQyxDQUFDLENBQ2JDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDVkMsTUFBTSxDQUFDQyxDQUFDLElBQUksQ0FBQyxDQUFDQSxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQUFBQyxPQUFBLENBQUFQLGVBQUEsR0FBQUEsZUFBQTtBQUVNLE1BQU1RLDRCQUE0QixHQUFHQSxDQUFDQyxLQUFpQixFQUFFQyxPQUFlLEtBQzlFRCxLQUFLLENBQUNFLEVBQUUsQ0FBQ1Is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
@@ -1,45 +1,45 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPurdueShard = isPurdueShard;
4
- exports.isDemoShard = isDemoShard;
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
5
7
  exports.getShardKey = getShardKey;
6
- const tslib_1 = require("tslib");
7
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
8
- const configuration_1 = require("../constants/configuration");
9
- const shard_1 = require("../constants/shard");
10
- const windowService_1 = require("../services/windowService");
8
+ exports.isDemoShard = isDemoShard;
9
+ exports.isPurdueShard = isPurdueShard;
10
+ var _lodash = _interopRequireDefault(require("lodash"));
11
+ var _configuration = require("../constants/configuration");
12
+ var _shard = require("../constants/shard");
13
+ var _windowService = require("../services/windowService");
11
14
  function isPurdueShard() {
12
- return getShardKey() === shard_1.SHARD.PURDUE;
15
+ return getShardKey() === _shard.SHARD.PURDUE;
13
16
  }
14
17
  function isDemoShard() {
15
- return getShardKey() === shard_1.SHARD.DEMO;
18
+ return getShardKey() === _shard.SHARD.DEMO;
16
19
  }
17
20
  function getShardKey(host, localhostShardKey) {
18
- const appConfig = (0, configuration_1.getAppConfig)();
19
- const location = windowService_1.windowService.getLocation();
20
- const finalHost = host || location.host;
21
- const finalLocalhostShardKey = localhostShardKey || appConfig.LOCALHOST_SHARD_KEY;
22
- const rootDomain = appConfig.ROOT_DOMAIN;
23
- if (lodash_1.default.startsWith(finalHost, 'localhost') && !!finalLocalhostShardKey) {
24
- return finalLocalhostShardKey;
25
- }
26
- if (lodash_1.default.startsWith(finalHost, 'localhost') ||
27
- lodash_1.default.includes(finalHost, 'azurewebsites.net') ||
28
- lodash_1.default.includes(finalHost, 'web.core.windows.net') ||
29
- lodash_1.default.includes(finalHost, 'azureedge.net') ||
30
- lodash_1.default.includes(finalHost, 'z01.azurefd.net') ||
31
- lodash_1.default.includes(finalHost, 'ngrok.io')) {
32
- return shard_1.SHARD.PURDUE;
33
- }
34
- const urlParts = finalHost.split('.');
35
- if (urlParts[0] === 'www' || urlParts[0] === 'dev' || (!!rootDomain && urlParts[0] === rootDomain.split('.')[0])) {
36
- return shard_1.SHARD.ROOT;
37
- }
38
- // get subdomain by removing root domain parts
39
- let shardKey = finalHost.replace(`.${rootDomain}`, '');
40
- // exclude `.dev` from shardKey
41
- if (shardKey.indexOf('.dev') === shardKey.length - 4) {
42
- shardKey = shardKey.replace('.dev', '');
43
- }
44
- return shardKey;
21
+ const appConfig = (0, _configuration.getAppConfig)();
22
+ const location = _windowService.windowService.getLocation();
23
+ const finalHost = host || location.host;
24
+ const finalLocalhostShardKey = localhostShardKey || appConfig.LOCALHOST_SHARD_KEY;
25
+ const rootDomain = appConfig.ROOT_DOMAIN;
26
+ if (_lodash.default.startsWith(finalHost, 'localhost') && !!finalLocalhostShardKey) {
27
+ return finalLocalhostShardKey;
28
+ }
29
+ if (_lodash.default.startsWith(finalHost, 'localhost') || _lodash.default.includes(finalHost, 'azurewebsites.net') || _lodash.default.includes(finalHost, 'web.core.windows.net') || _lodash.default.includes(finalHost, 'azureedge.net') || _lodash.default.includes(finalHost, 'z01.azurefd.net') || _lodash.default.includes(finalHost, 'ngrok.io')) {
30
+ return _shard.SHARD.PURDUE;
31
+ }
32
+ const urlParts = finalHost.split('.');
33
+ if (urlParts[0] === 'www' || urlParts[0] === 'dev' || !!rootDomain && urlParts[0] === rootDomain.split('.')[0]) {
34
+ return _shard.SHARD.ROOT;
35
+ }
36
+
37
+ // get subdomain by removing root domain parts
38
+ let shardKey = finalHost.replace(`.${rootDomain}`, '');
39
+ // exclude `.dev` from shardKey
40
+ if (shardKey.indexOf('.dev') === shardKey.length - 4) {
41
+ shardKey = shardKey.replace('.dev', '');
42
+ }
43
+ return shardKey;
45
44
  }
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uZmlndXJhdGlvbiIsIl9zaGFyZCIsIl93aW5kb3dTZXJ2aWNlIiwiaXNQdXJkdWVTaGFyZCIsImdldFNoYXJkS2V5IiwiU0hBUkQiLCJQVVJEVUUiLCJpc0RlbW9TaGFyZCIsIkRFTU8iLCJob3N0IiwibG9jYWxob3N0U2hhcmRLZXkiLCJhcHBDb25maWciLCJnZXRBcHBDb25maWciLCJsb2NhdGlvbiIsIndpbmRvd1NlcnZpY2UiLCJnZXRMb2NhdGlvbiIsImZpbmFsSG9zdCIsImZpbmFsTG9jYWxob3N0U2hhcmRLZXkiLCJMT0NBTEhPU1RfU0hBUkRfS0VZIiwicm9vdERvbWFpbiIsIlJPT1RfRE9NQUlOIiwiXyIsInN0YXJ0c1dpdGgiLCJpbmNsdWRlcyIsInVybFBhcnRzIiwic3BsaXQiLCJST09UIiwic2hhcmRLZXkiLCJyZXBsYWNlIiwiaW5kZXhPZiIsImxlbmd0aCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zaGFyZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnXHJcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWd1cmF0aW9uJ1xyXG5pbXBvcnQgeyBTSEFSRCB9IGZyb20gJy4uL2NvbnN0YW50cy9zaGFyZCdcclxuaW1wb3J0IHsgd2luZG93U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dpbmRvd1NlcnZpY2UnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNQdXJkdWVTaGFyZCgpIHtcclxuXHRyZXR1cm4gZ2V0U2hhcmRLZXkoKSA9PT0gU0hBUkQuUFVSRFVFXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RlbW9TaGFyZCgpIHtcclxuXHRyZXR1cm4gZ2V0U2hhcmRLZXkoKSA9PT0gU0hBUkQuREVNT1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmRLZXkoaG9zdD86IHN0cmluZywgbG9jYWxob3N0U2hhcmRLZXk/OiBzdHJpbmcpIHtcclxuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxyXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXHJcblx0Y29uc3QgZmluYWxIb3N0ID0gaG9zdCB8fCBsb2NhdGlvbi5ob3N0XHJcblx0Y29uc3QgZmluYWxMb2NhbGhvc3RTaGFyZEtleSA9IGxvY2FsaG9zdFNoYXJkS2V5IHx8IGFwcENvbmZpZy5MT0NBTEhPU1RfU0hBUkRfS0VZXHJcblx0Y29uc3Qgcm9vdERvbWFpbiA9IGFwcENvbmZpZy5ST09UX0RPTUFJTlxyXG5cclxuXHRpZiAoXy5zdGFydHNXaXRoKGZpbmFsSG9zdCwgJ2xvY2FsaG9zdCcpICYmICEhZmluYWxMb2NhbGhvc3RTaGFyZEtleSkge1xyXG5cdFx0cmV0dXJuIGZpbmFsTG9jYWxob3N0U2hhcmRLZXlcclxuXHR9XHJcblxyXG5cdGlmIChcclxuXHRcdF8uc3RhcnRzV2l0aChmaW5hbEhvc3QsICdsb2NhbGhvc3QnKSB8fFxyXG5cdFx0Xy5pbmNsdWRlcyhmaW5hbEhvc3QsICdhenVyZXdlYnNpdGVzLm5ldCcpIHx8XHJcblx0XHRfLmluY2x1ZGVzKGZpbmFsSG9zdCwgJ3dlYi5jb3JlLndpbmRvd3MubmV0JykgfHxcclxuXHRcdF8uaW5jbHVkZXMoZmluYWxIb3N0LCAnYXp1cmVlZGdlLm5ldCcpIHx8XHJcblx0XHRfLmluY2x1ZGVzKGZpbmFsSG9zdCwgJ3owMS5henVyZWZkLm5ldCcpIHx8XHJcblx0XHRfLmluY2x1ZGVzKGZpbmFsSG9zdCwgJ25ncm9rLmlvJylcclxuXHQpIHtcclxuXHRcdHJldHVybiBTSEFSRC5QVVJEVUVcclxuXHR9XHJcblxyXG5cdGNvbnN0IHVybFBhcnRzID0gZmluYWxIb3N0LnNwbGl0KCcuJylcclxuXHRpZiAodXJsUGFydHNbMF0gPT09ICd3d3cnIHx8IHVybFBhcnRzWzBdID09PSAnZGV2JyB8fCAoISFyb290RG9tYWluICYmIHVybFBhcnRzWzBdID09PSByb290RG9tYWluLnNwbGl0KCcuJylbMF0pKSB7XHJcblx0XHRyZXR1cm4gU0hBUkQuUk9PVFxyXG5cdH1cclxuXHJcblx0Ly8gZ2V0IHN1YmRvbWFpbiBieSByZW1vdmluZyByb290IGRvbWFpbiBwYXJ0c1xyXG5cdGxldCBzaGFyZEtleSA9IGZpbmFsSG9zdC5yZXBsYWNlKGAuJHtyb290RG9tYWlufWAsICcnKVxyXG5cdC8vIGV4Y2x1ZGUgYC5kZXZgIGZyb20gc2hhcmRLZXlcclxuXHRpZiAoc2hhcmRLZXkuaW5kZXhPZignLmRldicpID09PSBzaGFyZEtleS5sZW5ndGggLSA0KSB7XHJcblx0XHRzaGFyZEtleSA9IHNoYXJkS2V5LnJlcGxhY2UoJy5kZXYnLCAnJylcclxuXHR9XHJcblx0cmV0dXJuIHNoYXJkS2V5XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFFTyxTQUFTSSxhQUFhQSxDQUFBLEVBQUc7RUFDL0IsT0FBT0MsV0FBVyxDQUFDLENBQUMsS0FBS0MsWUFBSyxDQUFDQyxNQUFNO0FBQ3RDO0FBRU8sU0FBU0MsV0FBV0EsQ0FBQSxFQUFHO0VBQzdCLE9BQU9ILFdBQVcsQ0FBQyxDQUFDLEtBQUtDLFlBQUssQ0FBQ0csSUFBSTtBQUNwQztBQUVPLFNBQVNKLFdBQVdBLENBQUNLLElBQWEsRUFBRUMsaUJBQTBCLEVBQUU7RUFDdEUsTUFBTUMsU0FBUyxHQUFHLElBQUFDLDJCQUFZLEVBQUMsQ0FBQztFQUNoQyxNQUFNQyxRQUFRLEdBQUdDLDRCQUFhLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0VBQzVDLE1BQU1DLFNBQVMsR0FBR1AsSUFBSSxJQUFJSSxRQUFRLENBQUNKLElBQUk7RUFDdkMsTUFBTVEsc0JBQXNCLEdBQUdQLGlCQUFpQixJQUFJQyxTQUFTLENBQUNPLG1CQUFtQjtFQUNqRixNQUFNQyxVQUFVLEdBQUdSLFNBQVMsQ0FBQ1MsV0FBVztFQUV4QyxJQUFJQyxlQUFDLENBQUNDLFVBQVUsQ0FBQ04sU0FBUyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQ0Msc0JBQXNCLEVBQUU7SUFDckUsT0FBT0Esc0JBQXNCO0VBQzlCO0VBRUEsSUFDQ0ksZUFBQyxDQUFDQyxVQUFVLENBQUNOLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFDcENLLGVBQUMsQ0FBQ0UsUUFBUSxDQUFDUCxTQUFTLEVBQUUsbUJBQW1CLENBQUMsSUFDMUNLLGVBQUMsQ0FBQ0UsUUFBUSxDQUFDUCxTQUFTLEVBQUUsc0JBQXNCLENBQUMsSUFDN0NLLGVBQUMsQ0FBQ0UsUUFBUSxDQUFDUCxTQUFTLEVBQUUsZUFBZSxDQUFDLElBQ3RDSyxlQUFDLENBQUNFLFFBQVEsQ0FBQ1AsU0FBUyxFQUFFLGlCQUFpQixDQUFDLElBQ3hDSyxlQUFDLENBQUNFLFFBQVEsQ0FBQ1AsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUNoQztJQUNELE9BQU9YLFlBQUssQ0FBQ0MsTUFBTTtFQUNwQjtFQUVBLE1BQU1rQixRQUFRLEdBQUdSLFNBQVMsQ0FBQ1MsS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUNyQyxJQUFJRCxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJQSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFLLENBQUMsQ0FBQ0wsVUFBVSxJQUFJSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUtMLFVBQVUsQ0FBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRSxFQUFFO0lBQ2pILE9BQU9wQixZQUFLLENBQUNxQixJQUFJO0VBQ2xCOztFQUVBO0VBQ0EsSUFBSUMsUUFBUSxHQUFHWCxTQUFTLENBQUNZLE9BQU8sQ0FBQyxJQUFJVCxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDdEQ7RUFDQSxJQUFJUSxRQUFRLENBQUNFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBS0YsUUFBUSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ3JESCxRQUFRLEdBQUdBLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7RUFDeEM7RUFDQSxPQUFPRCxRQUFRO0FBQ2hCIiwiaWdub3JlTGlzdCI6W119