@esri/hub-common 13.17.2 → 13.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/dist/esm/associations/addAssociation.js +16 -0
  2. package/dist/esm/associations/addAssociation.js.map +1 -0
  3. package/dist/esm/associations/index.js +5 -0
  4. package/dist/esm/associations/index.js.map +1 -0
  5. package/dist/esm/associations/internal/getTargetEntityFromAssociationType.js +18 -0
  6. package/dist/esm/associations/internal/getTargetEntityFromAssociationType.js.map +1 -0
  7. package/dist/esm/associations/internal/getTypeByIdsQuery.js +28 -0
  8. package/dist/esm/associations/internal/getTypeByIdsQuery.js.map +1 -0
  9. package/dist/esm/associations/internal/getTypeFromAssociationType.js +18 -0
  10. package/dist/esm/associations/internal/getTypeFromAssociationType.js.map +1 -0
  11. package/dist/esm/associations/internal/getTypeWithKeywordQuery.js +27 -0
  12. package/dist/esm/associations/internal/getTypeWithKeywordQuery.js.map +1 -0
  13. package/dist/esm/associations/internal/getTypeWithoutKeywordQuery.js +27 -0
  14. package/dist/esm/associations/internal/getTypeWithoutKeywordQuery.js.map +1 -0
  15. package/dist/esm/associations/listAssociations.js +17 -0
  16. package/dist/esm/associations/listAssociations.js.map +1 -0
  17. package/dist/esm/associations/removeAssociation.js +17 -0
  18. package/dist/esm/associations/removeAssociation.js.map +1 -0
  19. package/dist/esm/associations/types.js +2 -0
  20. package/dist/esm/associations/types.js.map +1 -0
  21. package/dist/esm/content/_internal/ContentSchema.js +16 -0
  22. package/dist/esm/content/_internal/ContentSchema.js.map +1 -0
  23. package/dist/esm/content/_internal/ContentUiSchemaEdit.js +148 -0
  24. package/dist/esm/content/_internal/ContentUiSchemaEdit.js.map +1 -0
  25. package/dist/esm/content/_internal/ContentUiSchemaSettings.js +59 -0
  26. package/dist/esm/content/_internal/ContentUiSchemaSettings.js.map +1 -0
  27. package/dist/esm/content/_internal/computeProps.js +57 -0
  28. package/dist/esm/content/_internal/computeProps.js.map +1 -0
  29. package/dist/esm/content/hostedServiceUtils.js +91 -0
  30. package/dist/esm/content/hostedServiceUtils.js.map +1 -0
  31. package/dist/esm/core/EntityEditor.js +56 -0
  32. package/dist/esm/core/EntityEditor.js.map +1 -0
  33. package/dist/esm/core/behaviors/IWIthAssociationBehavior.js +1 -0
  34. package/dist/esm/core/behaviors/IWIthAssociationBehavior.js.map +1 -0
  35. package/dist/esm/core/behaviors/IWithFollowersBehavior.js +1 -0
  36. package/dist/esm/core/behaviors/IWithFollowersBehavior.js.map +1 -0
  37. package/dist/esm/core/enrichEntity.js +66 -0
  38. package/dist/esm/core/enrichEntity.js.map +1 -0
  39. package/dist/esm/core/schemas/getEditorConfig.js +13 -0
  40. package/dist/esm/core/schemas/getEditorConfig.js.map +1 -0
  41. package/dist/esm/core/schemas/internal/ConfigurableEntity.js +1 -0
  42. package/dist/esm/core/schemas/internal/ConfigurableEntity.js.map +1 -0
  43. package/dist/esm/core/schemas/internal/configOptionHelpers.js +88 -0
  44. package/dist/esm/core/schemas/internal/configOptionHelpers.js.map +1 -0
  45. package/dist/esm/core/schemas/internal/getCategoryItems.js +34 -0
  46. package/dist/esm/core/schemas/internal/getCategoryItems.js.map +1 -0
  47. package/dist/esm/core/schemas/internal/getConfigOptions.js +15 -0
  48. package/dist/esm/core/schemas/internal/getConfigOptions.js.map +1 -0
  49. package/dist/esm/core/schemas/internal/getEditorConfigOptions.js +37 -0
  50. package/dist/esm/core/schemas/internal/getEditorConfigOptions.js.map +1 -0
  51. package/dist/esm/core/schemas/internal/getEntityEditorSchemas.js +93 -0
  52. package/dist/esm/core/schemas/internal/getEntityEditorSchemas.js.map +1 -0
  53. package/dist/esm/core/schemas/internal/getFeaturedContentCatalogs.js +21 -0
  54. package/dist/esm/core/schemas/internal/getFeaturedContentCatalogs.js.map +1 -0
  55. package/dist/esm/core/schemas/internal/getFeaturedImageUrl.js +11 -0
  56. package/dist/esm/core/schemas/internal/getFeaturedImageUrl.js.map +1 -0
  57. package/dist/esm/core/schemas/internal/getLocationExtent.js +11 -0
  58. package/dist/esm/core/schemas/internal/getLocationExtent.js.map +1 -0
  59. package/dist/esm/core/schemas/internal/getLocationOptions.js +64 -0
  60. package/dist/esm/core/schemas/internal/getLocationOptions.js.map +1 -0
  61. package/dist/esm/core/schemas/internal/getSharableGroupsComboBoxItems.js +27 -0
  62. package/dist/esm/core/schemas/internal/getSharableGroupsComboBoxItems.js.map +1 -0
  63. package/dist/esm/core/schemas/internal/getTagItems.js +61 -0
  64. package/dist/esm/core/schemas/internal/getTagItems.js.map +1 -0
  65. package/dist/esm/core/traits/IWithAssociations.js +1 -0
  66. package/dist/esm/core/traits/IWithAssociations.js.map +1 -0
  67. package/dist/esm/core/traits/IWithFollowers.js +1 -0
  68. package/dist/esm/core/traits/IWithFollowers.js.map +1 -0
  69. package/dist/esm/core/types/HubEntityEditor.js +1 -0
  70. package/dist/esm/core/types/HubEntityEditor.js.map +1 -0
  71. package/dist/esm/core/types/IHubGroup.js +1 -0
  72. package/dist/esm/core/types/IHubGroup.js.map +1 -0
  73. package/dist/esm/discussions/api/channels/channels.js +14 -0
  74. package/dist/esm/discussions/api/channels/channels.js.map +1 -0
  75. package/dist/esm/discussions/api/channels/index.js +2 -0
  76. package/dist/esm/discussions/api/channels/index.js.map +1 -0
  77. package/dist/esm/discussions/api/index.js +3 -0
  78. package/dist/esm/discussions/api/index.js.map +1 -0
  79. package/dist/esm/discussions/api/request.js +20 -0
  80. package/dist/esm/discussions/api/request.js.map +1 -0
  81. package/dist/esm/discussions/api/types.js +245 -0
  82. package/dist/esm/discussions/api/types.js.map +1 -0
  83. package/dist/esm/discussions/api/utils/request.js +77 -0
  84. package/dist/esm/discussions/api/utils/request.js.map +1 -0
  85. package/dist/esm/features/_internal/checkCapabilityAccess.js +54 -0
  86. package/dist/esm/features/_internal/checkCapabilityAccess.js.map +1 -0
  87. package/dist/esm/features/_internal/checkFeatureAccess.js +99 -0
  88. package/dist/esm/features/_internal/checkFeatureAccess.js.map +1 -0
  89. package/dist/esm/features/_internal/index.js +3 -0
  90. package/dist/esm/features/_internal/index.js.map +1 -0
  91. package/dist/esm/features/checkFeature.js +107 -0
  92. package/dist/esm/features/checkFeature.js.map +1 -0
  93. package/dist/esm/features/index.js +5 -0
  94. package/dist/esm/features/index.js.map +1 -0
  95. package/dist/esm/features/types.js +28 -0
  96. package/dist/esm/features/types.js.map +1 -0
  97. package/dist/esm/groups/HubGroup.js +258 -0
  98. package/dist/esm/groups/HubGroup.js.map +1 -0
  99. package/dist/esm/groups/_internal/AddOrInviteUsersToGroupUtils.js +195 -0
  100. package/dist/esm/groups/_internal/AddOrInviteUsersToGroupUtils.js.map +1 -0
  101. package/dist/esm/groups/_internal/GroupBusinessRules.js +94 -0
  102. package/dist/esm/groups/_internal/GroupBusinessRules.js.map +1 -0
  103. package/dist/esm/groups/_internal/GroupSchema.js +31 -0
  104. package/dist/esm/groups/_internal/GroupSchema.js.map +1 -0
  105. package/dist/esm/groups/_internal/GroupUiSchemaEdit.js +62 -0
  106. package/dist/esm/groups/_internal/GroupUiSchemaEdit.js.map +1 -0
  107. package/dist/esm/groups/_internal/GroupUiSchemaSettings.js +46 -0
  108. package/dist/esm/groups/_internal/GroupUiSchemaSettings.js.map +1 -0
  109. package/dist/esm/groups/_internal/autoAddUsersAsAdmins.js +24 -0
  110. package/dist/esm/groups/_internal/autoAddUsersAsAdmins.js.map +1 -0
  111. package/dist/esm/groups/_internal/computeProps.js +45 -0
  112. package/dist/esm/groups/_internal/computeProps.js.map +1 -0
  113. package/dist/esm/groups/_internal/convertGroupToHubGroup.js +14 -0
  114. package/dist/esm/groups/_internal/convertGroupToHubGroup.js.map +1 -0
  115. package/dist/esm/groups/_internal/convertHubGroupToGroup.js +26 -0
  116. package/dist/esm/groups/_internal/convertHubGroupToGroup.js.map +1 -0
  117. package/dist/esm/groups/_internal/getPropertyMap.js +40 -0
  118. package/dist/esm/groups/_internal/getPropertyMap.js.map +1 -0
  119. package/dist/esm/groups/_internal/processAutoAddUsers.js +62 -0
  120. package/dist/esm/groups/_internal/processAutoAddUsers.js.map +1 -0
  121. package/dist/esm/groups/_internal/processEmailUsers.js +50 -0
  122. package/dist/esm/groups/_internal/processEmailUsers.js.map +1 -0
  123. package/dist/esm/groups/_internal/processInviteUsers.js +51 -0
  124. package/dist/esm/groups/_internal/processInviteUsers.js.map +1 -0
  125. package/dist/esm/groups/addOrInviteUsersToGroup.js +67 -0
  126. package/dist/esm/groups/addOrInviteUsersToGroup.js.map +1 -0
  127. package/dist/esm/groups/addOrInviteUsersToGroups.js +51 -0
  128. package/dist/esm/groups/addOrInviteUsersToGroups.js.map +1 -0
  129. package/dist/esm/groups/autoAddUsers.js +24 -0
  130. package/dist/esm/groups/autoAddUsers.js.map +1 -0
  131. package/dist/esm/groups/defaults.js +21 -0
  132. package/dist/esm/groups/defaults.js.map +1 -0
  133. package/dist/esm/groups/deleteGroupThumbnail.js +14 -0
  134. package/dist/esm/groups/deleteGroupThumbnail.js.map +1 -0
  135. package/dist/esm/groups/emailOrgUsers.js +29 -0
  136. package/dist/esm/groups/emailOrgUsers.js.map +1 -0
  137. package/dist/esm/groups/inviteUsers.js +30 -0
  138. package/dist/esm/groups/inviteUsers.js.map +1 -0
  139. package/dist/esm/groups/setGroupThumbnail.js +32 -0
  140. package/dist/esm/groups/setGroupThumbnail.js.map +1 -0
  141. package/dist/esm/groups/types/types.js +1 -0
  142. package/dist/esm/groups/types/types.js.map +1 -0
  143. package/dist/esm/initiatives/_internal/InitiativeUiSchemaCreate.js +134 -0
  144. package/dist/esm/initiatives/_internal/InitiativeUiSchemaCreate.js.map +1 -0
  145. package/dist/esm/initiatives/view.js +81 -0
  146. package/dist/esm/initiatives/view.js.map +1 -0
  147. package/dist/esm/items/deleteItemThumbnail.js +14 -0
  148. package/dist/esm/items/deleteItemThumbnail.js.map +1 -0
  149. package/dist/esm/pages/HubPage.js +201 -0
  150. package/dist/esm/pages/HubPage.js.map +1 -0
  151. package/dist/esm/pages/_internal/PageSchema.js +31 -0
  152. package/dist/esm/pages/_internal/PageSchema.js.map +1 -0
  153. package/dist/esm/pages/_internal/PageUiSchemaEdit.js +126 -0
  154. package/dist/esm/pages/_internal/PageUiSchemaEdit.js.map +1 -0
  155. package/dist/esm/pages/_internal/computeProps.js +45 -0
  156. package/dist/esm/pages/_internal/computeProps.js.map +1 -0
  157. package/dist/esm/pages/_internal/getPropertyMap.js +20 -0
  158. package/dist/esm/pages/_internal/getPropertyMap.js.map +1 -0
  159. package/dist/esm/pages/defaults.js +41 -0
  160. package/dist/esm/pages/defaults.js.map +1 -0
  161. package/dist/esm/permissions/PlatformPermissionPolicies.js +711 -0
  162. package/dist/esm/permissions/PlatformPermissionPolicies.js.map +1 -0
  163. package/dist/esm/permissions/_internal/PermissionCheckFunction.js +1 -0
  164. package/dist/esm/permissions/_internal/PermissionCheckFunction.js.map +1 -0
  165. package/dist/esm/permissions/_internal/checkAvailability.js +46 -0
  166. package/dist/esm/permissions/_internal/checkAvailability.js.map +1 -0
  167. package/dist/esm/permissions/_internal/checkEntityFeature.js +29 -0
  168. package/dist/esm/permissions/_internal/checkEntityFeature.js.map +1 -0
  169. package/dist/esm/permissions/_internal/checkEnvironment.js +28 -0
  170. package/dist/esm/permissions/_internal/checkEnvironment.js.map +1 -0
  171. package/dist/esm/permissions/_internal/checkFeature.js +65 -0
  172. package/dist/esm/permissions/_internal/checkFeature.js.map +1 -0
  173. package/dist/esm/permissions/_internal/checkFeatures.js +42 -0
  174. package/dist/esm/permissions/_internal/checkFeatures.js.map +1 -0
  175. package/dist/esm/permissions/_internal/checkParents.js +23 -0
  176. package/dist/esm/permissions/_internal/checkParents.js.map +1 -0
  177. package/dist/esm/permissions/_internal/checkServiceStatus.js +24 -0
  178. package/dist/esm/permissions/_internal/checkServiceStatus.js.map +1 -0
  179. package/dist/esm/permissions/_internal/processEntityFeatures.js +26 -0
  180. package/dist/esm/permissions/_internal/processEntityFeatures.js.map +1 -0
  181. package/dist/esm/projects/_internal/getProjectEditorConfigOptions.js +63 -0
  182. package/dist/esm/projects/_internal/getProjectEditorConfigOptions.js.map +1 -0
  183. package/dist/esm/search/_internal/commonHelpers/getDiscussionsApiDefinition.js +10 -0
  184. package/dist/esm/search/_internal/commonHelpers/getDiscussionsApiDefinition.js.map +1 -0
  185. package/dist/esm/search/_internal/commonHelpers/shouldUseDiscussionsApi.js +13 -0
  186. package/dist/esm/search/_internal/commonHelpers/shouldUseDiscussionsApi.js.map +1 -0
  187. package/dist/esm/search/_internal/explainFilter.js +34 -0
  188. package/dist/esm/search/_internal/explainFilter.js.map +1 -0
  189. package/dist/esm/search/_internal/explainHelpers.js +193 -0
  190. package/dist/esm/search/_internal/explainHelpers.js.map +1 -0
  191. package/dist/esm/search/_internal/explainPredicate.js +35 -0
  192. package/dist/esm/search/_internal/explainPredicate.js.map +1 -0
  193. package/dist/esm/search/_internal/getEntityTypeFromType.js +21 -0
  194. package/dist/esm/search/_internal/getEntityTypeFromType.js.map +1 -0
  195. package/dist/esm/search/_internal/hubSearchChannels.js +137 -0
  196. package/dist/esm/search/_internal/hubSearchChannels.js.map +1 -0
  197. package/dist/esm/search/_internal/negateGroupPredicates.js +28 -0
  198. package/dist/esm/search/_internal/negateGroupPredicates.js.map +1 -0
  199. package/dist/esm/search/_internal/portalSearchGroupMembers.js +10 -1
  200. package/dist/esm/search/_internal/portalSearchGroupMembers.js.map +1 -1
  201. package/dist/esm/search/explainQueryResult.js +53 -0
  202. package/dist/esm/search/explainQueryResult.js.map +1 -0
  203. package/dist/esm/sites/HubSite.js +2 -1
  204. package/dist/esm/sites/HubSite.js.map +1 -1
  205. package/dist/esm/sites/_internal/SiteUiSchemaFollowers.js +56 -0
  206. package/dist/esm/sites/_internal/SiteUiSchemaFollowers.js.map +1 -0
  207. package/dist/esm/sites/_internal/_migrate-summary-stat-card-configs.js +188 -0
  208. package/dist/esm/sites/_internal/_migrate-summary-stat-card-configs.js.map +1 -0
  209. package/dist/esm/sites/_internal/applyCatalogStructureMigration.js +39 -0
  210. package/dist/esm/sites/_internal/applyCatalogStructureMigration.js.map +1 -0
  211. package/dist/esm/sites/_internal/applyDefaultCollectionMigration.js +92 -0
  212. package/dist/esm/sites/_internal/applyDefaultCollectionMigration.js.map +1 -0
  213. package/dist/esm/sites/_internal/capabilities/capabilityToFeatureMap.js +31 -0
  214. package/dist/esm/sites/_internal/capabilities/capabilityToFeatureMap.js.map +1 -0
  215. package/dist/esm/sites/_internal/capabilities/convertFeaturesToLegacyCapabilities.js +46 -0
  216. package/dist/esm/sites/_internal/capabilities/convertFeaturesToLegacyCapabilities.js.map +1 -0
  217. package/dist/esm/sites/_internal/capabilities/migrateLegacyCapabilitiesToFeatures.js +34 -0
  218. package/dist/esm/sites/_internal/capabilities/migrateLegacyCapabilitiesToFeatures.js.map +1 -0
  219. package/dist/esm/sites/_internal/capabilities/types.js +1 -0
  220. package/dist/esm/sites/_internal/capabilities/types.js.map +1 -0
  221. package/dist/esm/sites/_internal/convertCatalogToLegacyFormat.js +33 -0
  222. package/dist/esm/sites/_internal/convertCatalogToLegacyFormat.js.map +1 -0
  223. package/dist/esm/sites/_internal/reflectCollectionsToSearchCategories.js +55 -0
  224. package/dist/esm/sites/_internal/reflectCollectionsToSearchCategories.js.map +1 -0
  225. package/dist/esm/sites/_internal/types.js +11 -0
  226. package/dist/esm/sites/_internal/types.js.map +1 -0
  227. package/dist/esm/urls/cacheBustUrl.js +13 -0
  228. package/dist/esm/urls/cacheBustUrl.js.map +1 -0
  229. package/dist/esm/urls/getCardModelUrl.js +76 -0
  230. package/dist/esm/urls/getCardModelUrl.js.map +1 -0
  231. package/dist/esm/users/view.js +71 -0
  232. package/dist/esm/users/view.js.map +1 -0
  233. package/dist/esm/utils/getEnvironmentFromPortalUrl.js +20 -0
  234. package/dist/esm/utils/getEnvironmentFromPortalUrl.js.map +1 -0
  235. package/dist/node/associations/addAssociation.js +20 -0
  236. package/dist/node/associations/addAssociation.js.map +1 -0
  237. package/dist/node/associations/index.js +8 -0
  238. package/dist/node/associations/index.js.map +1 -0
  239. package/dist/node/associations/internal/getTargetEntityFromAssociationType.js +22 -0
  240. package/dist/node/associations/internal/getTargetEntityFromAssociationType.js.map +1 -0
  241. package/dist/node/associations/internal/getTypeByIdsQuery.js +32 -0
  242. package/dist/node/associations/internal/getTypeByIdsQuery.js.map +1 -0
  243. package/dist/node/associations/internal/getTypeFromAssociationType.js +22 -0
  244. package/dist/node/associations/internal/getTypeFromAssociationType.js.map +1 -0
  245. package/dist/node/associations/internal/getTypeWithKeywordQuery.js +31 -0
  246. package/dist/node/associations/internal/getTypeWithKeywordQuery.js.map +1 -0
  247. package/dist/node/associations/internal/getTypeWithoutKeywordQuery.js +31 -0
  248. package/dist/node/associations/internal/getTypeWithoutKeywordQuery.js.map +1 -0
  249. package/dist/node/associations/listAssociations.js +21 -0
  250. package/dist/node/associations/listAssociations.js.map +1 -0
  251. package/dist/node/associations/removeAssociation.js +21 -0
  252. package/dist/node/associations/removeAssociation.js.map +1 -0
  253. package/dist/node/associations/types.js +4 -0
  254. package/dist/node/associations/types.js.map +1 -0
  255. package/dist/node/content/_internal/ContentSchema.js +19 -0
  256. package/dist/node/content/_internal/ContentSchema.js.map +1 -0
  257. package/dist/node/content/_internal/ContentUiSchemaEdit.js +151 -0
  258. package/dist/node/content/_internal/ContentUiSchemaEdit.js.map +1 -0
  259. package/dist/node/content/_internal/ContentUiSchemaSettings.js +62 -0
  260. package/dist/node/content/_internal/ContentUiSchemaSettings.js.map +1 -0
  261. package/dist/node/content/_internal/computeProps.js +62 -0
  262. package/dist/node/content/_internal/computeProps.js.map +1 -0
  263. package/dist/node/content/hostedServiceUtils.js +98 -0
  264. package/dist/node/content/hostedServiceUtils.js.map +1 -0
  265. package/dist/node/core/EntityEditor.js +60 -0
  266. package/dist/node/core/EntityEditor.js.map +1 -0
  267. package/dist/node/core/behaviors/IWIthAssociationBehavior.js +3 -0
  268. package/dist/node/core/behaviors/IWIthAssociationBehavior.js.map +1 -0
  269. package/dist/node/core/behaviors/IWithFollowersBehavior.js +3 -0
  270. package/dist/node/core/behaviors/IWithFollowersBehavior.js.map +1 -0
  271. package/dist/node/core/enrichEntity.js +69 -0
  272. package/dist/node/core/enrichEntity.js.map +1 -0
  273. package/dist/node/core/schemas/getEditorConfig.js +17 -0
  274. package/dist/node/core/schemas/getEditorConfig.js.map +1 -0
  275. package/dist/node/core/schemas/internal/ConfigurableEntity.js +3 -0
  276. package/dist/node/core/schemas/internal/ConfigurableEntity.js.map +1 -0
  277. package/dist/node/core/schemas/internal/configOptionHelpers.js +91 -0
  278. package/dist/node/core/schemas/internal/configOptionHelpers.js.map +1 -0
  279. package/dist/node/core/schemas/internal/getCategoryItems.js +38 -0
  280. package/dist/node/core/schemas/internal/getCategoryItems.js.map +1 -0
  281. package/dist/node/core/schemas/internal/getConfigOptions.js +19 -0
  282. package/dist/node/core/schemas/internal/getConfigOptions.js.map +1 -0
  283. package/dist/node/core/schemas/internal/getEditorConfigOptions.js +41 -0
  284. package/dist/node/core/schemas/internal/getEditorConfigOptions.js.map +1 -0
  285. package/dist/node/core/schemas/internal/getEntityEditorSchemas.js +97 -0
  286. package/dist/node/core/schemas/internal/getEntityEditorSchemas.js.map +1 -0
  287. package/dist/node/core/schemas/internal/getFeaturedContentCatalogs.js +25 -0
  288. package/dist/node/core/schemas/internal/getFeaturedContentCatalogs.js.map +1 -0
  289. package/dist/node/core/schemas/internal/getFeaturedImageUrl.js +15 -0
  290. package/dist/node/core/schemas/internal/getFeaturedImageUrl.js.map +1 -0
  291. package/dist/node/core/schemas/internal/getLocationExtent.js +15 -0
  292. package/dist/node/core/schemas/internal/getLocationExtent.js.map +1 -0
  293. package/dist/node/core/schemas/internal/getLocationOptions.js +68 -0
  294. package/dist/node/core/schemas/internal/getLocationOptions.js.map +1 -0
  295. package/dist/node/core/schemas/internal/getSharableGroupsComboBoxItems.js +31 -0
  296. package/dist/node/core/schemas/internal/getSharableGroupsComboBoxItems.js.map +1 -0
  297. package/dist/node/core/schemas/internal/getTagItems.js +65 -0
  298. package/dist/node/core/schemas/internal/getTagItems.js.map +1 -0
  299. package/dist/node/core/traits/IWithAssociations.js +3 -0
  300. package/dist/node/core/traits/IWithAssociations.js.map +1 -0
  301. package/dist/node/core/traits/IWithFollowers.js +3 -0
  302. package/dist/node/core/traits/IWithFollowers.js.map +1 -0
  303. package/dist/node/core/types/HubEntityEditor.js +3 -0
  304. package/dist/node/core/types/HubEntityEditor.js.map +1 -0
  305. package/dist/node/core/types/IHubGroup.js +3 -0
  306. package/dist/node/core/types/IHubGroup.js.map +1 -0
  307. package/dist/node/discussions/api/channels/channels.js +18 -0
  308. package/dist/node/discussions/api/channels/channels.js.map +1 -0
  309. package/dist/node/discussions/api/channels/index.js +5 -0
  310. package/dist/node/discussions/api/channels/index.js.map +1 -0
  311. package/dist/node/discussions/api/index.js +6 -0
  312. package/dist/node/discussions/api/index.js.map +1 -0
  313. package/dist/node/discussions/api/request.js +24 -0
  314. package/dist/node/discussions/api/request.js.map +1 -0
  315. package/dist/node/discussions/api/types.js +248 -0
  316. package/dist/node/discussions/api/types.js.map +1 -0
  317. package/dist/node/discussions/api/utils/request.js +83 -0
  318. package/dist/node/discussions/api/utils/request.js.map +1 -0
  319. package/dist/node/features/_internal/checkCapabilityAccess.js +54 -0
  320. package/dist/node/features/_internal/checkCapabilityAccess.js.map +1 -0
  321. package/dist/node/features/_internal/checkFeatureAccess.js +99 -0
  322. package/dist/node/features/_internal/checkFeatureAccess.js.map +1 -0
  323. package/dist/node/features/_internal/index.js +3 -0
  324. package/dist/node/features/_internal/index.js.map +1 -0
  325. package/dist/node/features/checkFeature.js +111 -0
  326. package/dist/node/features/checkFeature.js.map +1 -0
  327. package/dist/node/features/index.js +8 -0
  328. package/dist/node/features/index.js.map +1 -0
  329. package/dist/node/features/types.js +32 -0
  330. package/dist/node/features/types.js.map +1 -0
  331. package/dist/node/groups/HubGroup.js +262 -0
  332. package/dist/node/groups/HubGroup.js.map +1 -0
  333. package/dist/node/groups/_internal/AddOrInviteUsersToGroupUtils.js +205 -0
  334. package/dist/node/groups/_internal/AddOrInviteUsersToGroupUtils.js.map +1 -0
  335. package/dist/node/groups/_internal/GroupBusinessRules.js +97 -0
  336. package/dist/node/groups/_internal/GroupBusinessRules.js.map +1 -0
  337. package/dist/node/groups/_internal/GroupSchema.js +34 -0
  338. package/dist/node/groups/_internal/GroupSchema.js.map +1 -0
  339. package/dist/node/groups/_internal/GroupUiSchemaEdit.js +65 -0
  340. package/dist/node/groups/_internal/GroupUiSchemaEdit.js.map +1 -0
  341. package/dist/node/groups/_internal/GroupUiSchemaSettings.js +49 -0
  342. package/dist/node/groups/_internal/GroupUiSchemaSettings.js.map +1 -0
  343. package/dist/node/groups/_internal/autoAddUsersAsAdmins.js +28 -0
  344. package/dist/node/groups/_internal/autoAddUsersAsAdmins.js.map +1 -0
  345. package/dist/node/groups/_internal/computeProps.js +49 -0
  346. package/dist/node/groups/_internal/computeProps.js.map +1 -0
  347. package/dist/node/groups/_internal/convertGroupToHubGroup.js +18 -0
  348. package/dist/node/groups/_internal/convertGroupToHubGroup.js.map +1 -0
  349. package/dist/node/groups/_internal/convertHubGroupToGroup.js +30 -0
  350. package/dist/node/groups/_internal/convertHubGroupToGroup.js.map +1 -0
  351. package/dist/node/groups/_internal/getPropertyMap.js +44 -0
  352. package/dist/node/groups/_internal/getPropertyMap.js.map +1 -0
  353. package/dist/node/groups/_internal/processAutoAddUsers.js +66 -0
  354. package/dist/node/groups/_internal/processAutoAddUsers.js.map +1 -0
  355. package/dist/node/groups/_internal/processEmailUsers.js +54 -0
  356. package/dist/node/groups/_internal/processEmailUsers.js.map +1 -0
  357. package/dist/node/groups/_internal/processInviteUsers.js +55 -0
  358. package/dist/node/groups/_internal/processInviteUsers.js.map +1 -0
  359. package/dist/node/groups/addOrInviteUsersToGroup.js +71 -0
  360. package/dist/node/groups/addOrInviteUsersToGroup.js.map +1 -0
  361. package/dist/node/groups/addOrInviteUsersToGroups.js +55 -0
  362. package/dist/node/groups/addOrInviteUsersToGroups.js.map +1 -0
  363. package/dist/node/groups/autoAddUsers.js +28 -0
  364. package/dist/node/groups/autoAddUsers.js.map +1 -0
  365. package/dist/node/groups/defaults.js +24 -0
  366. package/dist/node/groups/defaults.js.map +1 -0
  367. package/dist/node/groups/deleteGroupThumbnail.js +18 -0
  368. package/dist/node/groups/deleteGroupThumbnail.js.map +1 -0
  369. package/dist/node/groups/emailOrgUsers.js +33 -0
  370. package/dist/node/groups/emailOrgUsers.js.map +1 -0
  371. package/dist/node/groups/inviteUsers.js +34 -0
  372. package/dist/node/groups/inviteUsers.js.map +1 -0
  373. package/dist/node/groups/setGroupThumbnail.js +36 -0
  374. package/dist/node/groups/setGroupThumbnail.js.map +1 -0
  375. package/dist/node/groups/types/types.js +3 -0
  376. package/dist/node/groups/types/types.js.map +1 -0
  377. package/dist/node/initiatives/_internal/InitiativeUiSchemaCreate.js +137 -0
  378. package/dist/node/initiatives/_internal/InitiativeUiSchemaCreate.js.map +1 -0
  379. package/dist/node/initiatives/view.js +84 -0
  380. package/dist/node/initiatives/view.js.map +1 -0
  381. package/dist/node/items/deleteItemThumbnail.js +18 -0
  382. package/dist/node/items/deleteItemThumbnail.js.map +1 -0
  383. package/dist/node/pages/HubPage.js +205 -0
  384. package/dist/node/pages/HubPage.js.map +1 -0
  385. package/dist/node/pages/_internal/PageSchema.js +34 -0
  386. package/dist/node/pages/_internal/PageSchema.js.map +1 -0
  387. package/dist/node/pages/_internal/PageUiSchemaEdit.js +129 -0
  388. package/dist/node/pages/_internal/PageUiSchemaEdit.js.map +1 -0
  389. package/dist/node/pages/_internal/computeProps.js +49 -0
  390. package/dist/node/pages/_internal/computeProps.js.map +1 -0
  391. package/dist/node/pages/_internal/getPropertyMap.js +24 -0
  392. package/dist/node/pages/_internal/getPropertyMap.js.map +1 -0
  393. package/dist/node/pages/defaults.js +44 -0
  394. package/dist/node/pages/defaults.js.map +1 -0
  395. package/dist/node/permissions/PlatformPermissionPolicies.js +714 -0
  396. package/dist/node/permissions/PlatformPermissionPolicies.js.map +1 -0
  397. package/dist/node/permissions/_internal/PermissionCheckFunction.js +3 -0
  398. package/dist/node/permissions/_internal/PermissionCheckFunction.js.map +1 -0
  399. package/dist/node/permissions/_internal/checkAvailability.js +50 -0
  400. package/dist/node/permissions/_internal/checkAvailability.js.map +1 -0
  401. package/dist/node/permissions/_internal/checkEntityFeature.js +33 -0
  402. package/dist/node/permissions/_internal/checkEntityFeature.js.map +1 -0
  403. package/dist/node/permissions/_internal/checkEnvironment.js +32 -0
  404. package/dist/node/permissions/_internal/checkEnvironment.js.map +1 -0
  405. package/dist/node/permissions/_internal/checkFeature.js +69 -0
  406. package/dist/node/permissions/_internal/checkFeature.js.map +1 -0
  407. package/dist/node/permissions/_internal/checkFeatures.js +46 -0
  408. package/dist/node/permissions/_internal/checkFeatures.js.map +1 -0
  409. package/dist/node/permissions/_internal/checkParents.js +27 -0
  410. package/dist/node/permissions/_internal/checkParents.js.map +1 -0
  411. package/dist/node/permissions/_internal/checkServiceStatus.js +28 -0
  412. package/dist/node/permissions/_internal/checkServiceStatus.js.map +1 -0
  413. package/dist/node/permissions/_internal/processEntityFeatures.js +30 -0
  414. package/dist/node/permissions/_internal/processEntityFeatures.js.map +1 -0
  415. package/dist/node/projects/_internal/getProjectEditorConfigOptions.js +67 -0
  416. package/dist/node/projects/_internal/getProjectEditorConfigOptions.js.map +1 -0
  417. package/dist/node/search/_internal/commonHelpers/getDiscussionsApiDefinition.js +14 -0
  418. package/dist/node/search/_internal/commonHelpers/getDiscussionsApiDefinition.js.map +1 -0
  419. package/dist/node/search/_internal/commonHelpers/shouldUseDiscussionsApi.js +17 -0
  420. package/dist/node/search/_internal/commonHelpers/shouldUseDiscussionsApi.js.map +1 -0
  421. package/dist/node/search/_internal/explainFilter.js +38 -0
  422. package/dist/node/search/_internal/explainFilter.js.map +1 -0
  423. package/dist/node/search/_internal/explainHelpers.js +202 -0
  424. package/dist/node/search/_internal/explainHelpers.js.map +1 -0
  425. package/dist/node/search/_internal/explainPredicate.js +39 -0
  426. package/dist/node/search/_internal/explainPredicate.js.map +1 -0
  427. package/dist/node/search/_internal/getEntityTypeFromType.js +25 -0
  428. package/dist/node/search/_internal/getEntityTypeFromType.js.map +1 -0
  429. package/dist/node/search/_internal/hubSearchChannels.js +140 -0
  430. package/dist/node/search/_internal/hubSearchChannels.js.map +1 -0
  431. package/dist/node/search/_internal/negateGroupPredicates.js +32 -0
  432. package/dist/node/search/_internal/negateGroupPredicates.js.map +1 -0
  433. package/dist/node/search/_internal/portalSearchGroupMembers.js +10 -1
  434. package/dist/node/search/_internal/portalSearchGroupMembers.js.map +1 -1
  435. package/dist/node/search/explainQueryResult.js +57 -0
  436. package/dist/node/search/explainQueryResult.js.map +1 -0
  437. package/dist/node/sites/HubSite.js +2 -1
  438. package/dist/node/sites/HubSite.js.map +1 -1
  439. package/dist/node/sites/_internal/SiteUiSchemaFollowers.js +59 -0
  440. package/dist/node/sites/_internal/SiteUiSchemaFollowers.js.map +1 -0
  441. package/dist/node/sites/_internal/_migrate-summary-stat-card-configs.js +192 -0
  442. package/dist/node/sites/_internal/_migrate-summary-stat-card-configs.js.map +1 -0
  443. package/dist/node/sites/_internal/applyCatalogStructureMigration.js +43 -0
  444. package/dist/node/sites/_internal/applyCatalogStructureMigration.js.map +1 -0
  445. package/dist/node/sites/_internal/applyDefaultCollectionMigration.js +96 -0
  446. package/dist/node/sites/_internal/applyDefaultCollectionMigration.js.map +1 -0
  447. package/dist/node/sites/_internal/capabilities/capabilityToFeatureMap.js +34 -0
  448. package/dist/node/sites/_internal/capabilities/capabilityToFeatureMap.js.map +1 -0
  449. package/dist/node/sites/_internal/capabilities/convertFeaturesToLegacyCapabilities.js +49 -0
  450. package/dist/node/sites/_internal/capabilities/convertFeaturesToLegacyCapabilities.js.map +1 -0
  451. package/dist/node/sites/_internal/capabilities/migrateLegacyCapabilitiesToFeatures.js +37 -0
  452. package/dist/node/sites/_internal/capabilities/migrateLegacyCapabilitiesToFeatures.js.map +1 -0
  453. package/dist/node/sites/_internal/capabilities/types.js +3 -0
  454. package/dist/node/sites/_internal/capabilities/types.js.map +1 -0
  455. package/dist/node/sites/_internal/convertCatalogToLegacyFormat.js +37 -0
  456. package/dist/node/sites/_internal/convertCatalogToLegacyFormat.js.map +1 -0
  457. package/dist/node/sites/_internal/reflectCollectionsToSearchCategories.js +59 -0
  458. package/dist/node/sites/_internal/reflectCollectionsToSearchCategories.js.map +1 -0
  459. package/dist/node/sites/_internal/types.js +14 -0
  460. package/dist/node/sites/_internal/types.js.map +1 -0
  461. package/dist/node/urls/cacheBustUrl.js +16 -0
  462. package/dist/node/urls/cacheBustUrl.js.map +1 -0
  463. package/dist/node/urls/getCardModelUrl.js +81 -0
  464. package/dist/node/urls/getCardModelUrl.js.map +1 -0
  465. package/dist/node/users/view.js +74 -0
  466. package/dist/node/users/view.js.map +1 -0
  467. package/dist/node/utils/getEnvironmentFromPortalUrl.js +24 -0
  468. package/dist/node/utils/getEnvironmentFromPortalUrl.js.map +1 -0
  469. package/dist/types/associations/addAssociation.d.ts +9 -0
  470. package/dist/types/associations/index.d.ts +4 -0
  471. package/dist/types/associations/internal/getTargetEntityFromAssociationType.d.ts +8 -0
  472. package/dist/types/associations/internal/getTypeByIdsQuery.d.ts +10 -0
  473. package/dist/types/associations/internal/getTypeFromAssociationType.d.ts +7 -0
  474. package/dist/types/associations/internal/getTypeWithKeywordQuery.d.ts +10 -0
  475. package/dist/types/associations/internal/getTypeWithoutKeywordQuery.d.ts +10 -0
  476. package/dist/types/associations/listAssociations.d.ts +8 -0
  477. package/dist/types/associations/removeAssociation.d.ts +9 -0
  478. package/dist/types/associations/types.d.ts +19 -0
  479. package/dist/types/content/_internal/ContentSchema.d.ts +7 -0
  480. package/dist/types/content/_internal/ContentUiSchemaEdit.d.ts +10 -0
  481. package/dist/types/content/_internal/ContentUiSchemaSettings.d.ts +10 -0
  482. package/dist/types/content/_internal/computeProps.d.ts +9 -0
  483. package/dist/types/content/hostedServiceUtils.d.ts +35 -0
  484. package/dist/types/core/EntityEditor.d.ts +13 -0
  485. package/dist/types/core/behaviors/IWIthAssociationBehavior.d.ts +23 -0
  486. package/dist/types/core/behaviors/IWithFollowersBehavior.d.ts +15 -0
  487. package/dist/types/core/enrichEntity.d.ts +16 -0
  488. package/dist/types/core/schemas/getEditorConfig.d.ts +13 -0
  489. package/dist/types/core/schemas/internal/ConfigurableEntity.d.ts +4 -0
  490. package/dist/types/core/schemas/internal/configOptionHelpers.d.ts +6 -0
  491. package/dist/types/core/schemas/internal/getCategoryItems.d.ts +11 -0
  492. package/dist/types/core/schemas/internal/getConfigOptions.d.ts +12 -0
  493. package/dist/types/core/schemas/internal/getEditorConfigOptions.d.ts +11 -0
  494. package/dist/types/core/schemas/internal/getEntityEditorSchemas.d.ts +15 -0
  495. package/dist/types/core/schemas/internal/getFeaturedContentCatalogs.d.ts +8 -0
  496. package/dist/types/core/schemas/internal/getFeaturedImageUrl.d.ts +3 -0
  497. package/dist/types/core/schemas/internal/getLocationExtent.d.ts +7 -0
  498. package/dist/types/core/schemas/internal/getLocationOptions.d.ts +16 -0
  499. package/dist/types/core/schemas/internal/getSharableGroupsComboBoxItems.d.ts +7 -0
  500. package/dist/types/core/schemas/internal/getTagItems.d.ts +12 -0
  501. package/dist/types/core/traits/IWithAssociations.d.ts +4 -0
  502. package/dist/types/core/traits/IWithFollowers.d.ts +7 -0
  503. package/dist/types/core/types/HubEntityEditor.d.ts +11 -0
  504. package/dist/types/core/types/IHubGroup.d.ts +109 -0
  505. package/dist/types/discussions/api/channels/channels.d.ts +10 -0
  506. package/dist/types/discussions/api/channels/index.d.ts +1 -0
  507. package/dist/types/discussions/api/index.d.ts +2 -0
  508. package/dist/types/discussions/api/request.d.ts +11 -0
  509. package/dist/types/discussions/api/types.d.ts +1007 -0
  510. package/dist/types/discussions/api/utils/request.d.ts +25 -0
  511. package/dist/types/features/_internal/checkCapabilityAccess.d.ts +0 -0
  512. package/dist/types/features/_internal/checkFeatureAccess.d.ts +0 -0
  513. package/dist/types/features/_internal/index.d.ts +0 -0
  514. package/dist/types/features/checkFeature.d.ts +10 -0
  515. package/dist/types/features/index.d.ts +2 -0
  516. package/dist/types/features/types.d.ts +31 -0
  517. package/dist/types/groups/HubGroup.d.ts +114 -0
  518. package/dist/types/groups/_internal/AddOrInviteUsersToGroupUtils.d.ts +82 -0
  519. package/dist/types/groups/_internal/GroupBusinessRules.d.ts +12 -0
  520. package/dist/types/groups/_internal/GroupSchema.d.ts +7 -0
  521. package/dist/types/groups/_internal/GroupUiSchemaEdit.d.ts +10 -0
  522. package/dist/types/groups/_internal/GroupUiSchemaSettings.d.ts +10 -0
  523. package/dist/types/groups/_internal/autoAddUsersAsAdmins.d.ts +13 -0
  524. package/dist/types/groups/_internal/computeProps.d.ts +12 -0
  525. package/dist/types/groups/_internal/convertGroupToHubGroup.d.ts +9 -0
  526. package/dist/types/groups/_internal/convertHubGroupToGroup.d.ts +7 -0
  527. package/dist/types/groups/_internal/getPropertyMap.d.ts +8 -0
  528. package/dist/types/groups/_internal/processAutoAddUsers.d.ts +15 -0
  529. package/dist/types/groups/_internal/processEmailUsers.d.ts +14 -0
  530. package/dist/types/groups/_internal/processInviteUsers.d.ts +13 -0
  531. package/dist/types/groups/addOrInviteUsersToGroup.d.ts +18 -0
  532. package/dist/types/groups/addOrInviteUsersToGroups.d.ts +30 -0
  533. package/dist/types/groups/autoAddUsers.d.ts +14 -0
  534. package/dist/types/groups/defaults.d.ts +11 -0
  535. package/dist/types/groups/deleteGroupThumbnail.d.ts +9 -0
  536. package/dist/types/groups/emailOrgUsers.d.ts +15 -0
  537. package/dist/types/groups/inviteUsers.d.ts +17 -0
  538. package/dist/types/groups/setGroupThumbnail.d.ts +9 -0
  539. package/dist/types/groups/types/types.d.ts +72 -0
  540. package/dist/types/initiatives/_internal/InitiativeUiSchemaCreate.d.ts +13 -0
  541. package/dist/types/initiatives/view.d.ts +19 -0
  542. package/dist/types/items/deleteItemThumbnail.d.ts +9 -0
  543. package/dist/types/pages/HubPage.d.ts +71 -0
  544. package/dist/types/pages/_internal/PageSchema.d.ts +7 -0
  545. package/dist/types/pages/_internal/PageUiSchemaEdit.d.ts +10 -0
  546. package/dist/types/pages/_internal/computeProps.d.ts +12 -0
  547. package/dist/types/pages/_internal/getPropertyMap.d.ts +8 -0
  548. package/dist/types/pages/defaults.d.ts +13 -0
  549. package/dist/types/permissions/PlatformPermissionPolicies.d.ts +9 -0
  550. package/dist/types/permissions/_internal/PermissionCheckFunction.d.ts +7 -0
  551. package/dist/types/permissions/_internal/checkAvailability.d.ts +13 -0
  552. package/dist/types/permissions/_internal/checkEntityFeature.d.ts +4 -0
  553. package/dist/types/permissions/_internal/checkEnvironment.d.ts +13 -0
  554. package/dist/types/permissions/_internal/checkFeature.d.ts +16 -0
  555. package/dist/types/permissions/_internal/checkFeatures.d.ts +10 -0
  556. package/dist/types/permissions/_internal/checkParents.d.ts +12 -0
  557. package/dist/types/permissions/_internal/checkServiceStatus.d.ts +4 -0
  558. package/dist/types/permissions/_internal/processEntityFeatures.d.ts +9 -0
  559. package/dist/types/projects/_internal/getProjectEditorConfigOptions.d.ts +10 -0
  560. package/dist/types/search/_internal/commonHelpers/getDiscussionsApiDefinition.d.ts +2 -0
  561. package/dist/types/search/_internal/commonHelpers/shouldUseDiscussionsApi.d.ts +11 -0
  562. package/dist/types/search/_internal/explainFilter.d.ts +11 -0
  563. package/dist/types/search/_internal/explainHelpers.d.ts +38 -0
  564. package/dist/types/search/_internal/explainPredicate.d.ts +12 -0
  565. package/dist/types/search/_internal/getEntityTypeFromType.d.ts +9 -0
  566. package/dist/types/search/_internal/hubSearchChannels.d.ts +30 -0
  567. package/dist/types/search/_internal/negateGroupPredicates.d.ts +9 -0
  568. package/dist/types/search/_internal/portalSearchGroupMembers.d.ts +2 -1
  569. package/dist/types/search/explainQueryResult.d.ts +102 -0
  570. package/dist/types/sites/_internal/SiteUiSchemaFollowers.d.ts +11 -0
  571. package/dist/types/sites/_internal/_migrate-summary-stat-card-configs.d.ts +9 -0
  572. package/dist/types/sites/_internal/applyCatalogStructureMigration.d.ts +11 -0
  573. package/dist/types/sites/_internal/applyDefaultCollectionMigration.d.ts +21 -0
  574. package/dist/types/sites/_internal/capabilities/capabilityToFeatureMap.d.ts +14 -0
  575. package/dist/types/sites/_internal/capabilities/convertFeaturesToLegacyCapabilities.d.ts +19 -0
  576. package/dist/types/sites/_internal/capabilities/migrateLegacyCapabilitiesToFeatures.d.ts +12 -0
  577. package/dist/types/sites/_internal/capabilities/types.d.ts +29 -0
  578. package/dist/types/sites/_internal/convertCatalogToLegacyFormat.d.ts +11 -0
  579. package/dist/types/sites/_internal/reflectCollectionsToSearchCategories.d.ts +11 -0
  580. package/dist/types/sites/_internal/types.d.ts +8 -0
  581. package/dist/types/urls/cacheBustUrl.d.ts +5 -0
  582. package/dist/types/urls/getCardModelUrl.d.ts +21 -0
  583. package/dist/types/users/view.d.ts +9 -0
  584. package/dist/types/utils/getEnvironmentFromPortalUrl.d.ts +2 -0
  585. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkFeatureAccess.js","sourceRoot":"","sources":["../../../../src/features/_internal/checkFeatureAccess.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,iFAAiF;AACjF,8EAA8E;AAC9E,sEAAsE;AACtE,wDAAwD;AAExD,uCAAuC;AACvC,sBAAsB;AACtB,KAAK;AAEL,4DAA4D;AAC5D,8DAA8D;AAC9D,gEAAgE;AAEhE,4CAA4C;AAC5C,uBAAuB;AACvB,KAAK;AAEL,4CAA4C;AAC5C,uBAAuB;AACvB,KAAK;AAEL,iFAAiF;AACjF,2BAA2B;AAC3B,oBAAoB;AACpB,8BAA8B;AAC9B,qBAAqB;AACrB,+BAA+B;AAC/B,uBAAuB;AACvB,iCAAiC;AACjC,sBAAsB;AACtB,mCAAmC;AACnC,yBAAyB;AACzB,mCAAmC;AACnC,eAAe;AACf,2BAA2B;AAC3B,mCAAmC;AACnC,MAAM;AACN,IAAI;AAEJ,+DAA+D;AAC/D,qCAAqC;AACrC,2EAA2E;AAC3E,aAAa;AACb,iCAAiC;AACjC,2BAA2B;AAC3B,OAAO;AACP,IAAI;AAEJ,MAAM;AACN,iCAAiC;AACjC,mBAAmB;AACnB,oBAAoB;AACpB,mBAAmB;AACnB,cAAc;AACd,MAAM;AACN,sCAAsC;AACtC,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AACjC,8BAA8B;AAC9B,2DAA2D;AAC3D,+CAA+C;AAC/C,6CAA6C;AAC7C,0DAA0D;AAC1D,sDAAsD;AACtD,6CAA6C;AAC7C,8BAA8B;AAC9B,kBAAkB;AAClB,oBAAoB;AACpB,0BAA0B;AAC1B,6BAA6B;AAC7B,sCAAsC;AACtC,8EAA8E;AAC9E,YAAY;AACZ,gBAAgB;AAChB,oDAAoD;AACpD,+DAA+D;AAC/D,8CAA8C;AAC9C,WAAW;AACX,uBAAuB;AACvB,sCAAsC;AAEtC,6BAA6B;AAC7B,uCAAuC;AACvC,6BAA6B;AAC7B,6DAA6D;AAC7D,gDAAgD;AAChD,6BAA6B;AAC7B,YAAY;AAEZ,wBAAwB;AACxB,6EAA6E;AAC7E,0DAA0D;AAC1D,WAAW;AACX,gCAAgC;AAChC,eAAe;AACf,0BAA0B;AAC1B,oCAAoC;AACpC,gCAAgC;AAChC,wCAAwC;AACxC,sCAAsC;AACtC,yBAAyB;AACzB,SAAS;AACT,SAAS;AACT,IAAI"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // export * from "./checkFeatureAccess";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/_internal/index.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,107 @@
1
+ import { isHubFeature } from "./types";
2
+ const QaExtFeatures = {
3
+ workspaces: true,
4
+ };
5
+ const DevExtFeatures = Object.assign({}, QaExtFeatures);
6
+ const LocalDevFeatures = Object.assign({}, QaExtFeatures);
7
+ const SandboxDevFeatures = Object.assign({}, QaExtFeatures);
8
+ const ProductionFeatures = {
9
+ workspaces: false,
10
+ };
11
+ const EnterpriseFeatures = {
12
+ workspaces: false,
13
+ };
14
+ function getFeaturesForEnvironment(environment) {
15
+ switch (environment) {
16
+ case "qaext":
17
+ return QaExtFeatures;
18
+ case "devext":
19
+ return DevExtFeatures;
20
+ case "localdev":
21
+ return LocalDevFeatures;
22
+ case "sandbox":
23
+ return SandboxDevFeatures;
24
+ case "enterprise":
25
+ return EnterpriseFeatures;
26
+ default:
27
+ // default to prod
28
+ return ProductionFeatures;
29
+ }
30
+ }
31
+ function getFeatures(context) {
32
+ const { environment } = context;
33
+ const featuresForEnvironment = getFeaturesForEnvironment(environment);
34
+ return Object.assign(Object.assign({}, featuresForEnvironment), context.features);
35
+ }
36
+ /**
37
+ * Check if a capability is enabled for a given entity and if the current user has necessary permissions to access it
38
+ * @param capability
39
+ * @param context
40
+ * @param entity
41
+ * @returns
42
+ */
43
+ export function checkFeature(feature, context, entity) {
44
+ /*
45
+ TODO:
46
+ - by env
47
+ - by org??? checkAlpha? probably not checkLicense - that would be for a capability...
48
+ - by entity??? or is it entity type???
49
+ - if it is turned off for the env it is off for all entities???
50
+ - if it is on for the env but off for the entity then it is off for that entity???
51
+ - url params can ovverride everything???
52
+ */
53
+ // const entityType: HubEntityType = getTypeFromEntity(entity);
54
+ // Find the rule for the given entity type and capability
55
+ const isValid = isHubFeature(feature);
56
+ if (isValid) {
57
+ const featuresHash = getFeatures(context);
58
+ const enabled = featuresHash[feature];
59
+ if (enabled) {
60
+ return {
61
+ feature,
62
+ access: true,
63
+ code: "enabled",
64
+ response: "granted",
65
+ };
66
+ }
67
+ else {
68
+ return {
69
+ feature,
70
+ access: false,
71
+ code: "disabled",
72
+ response: "feature-not-available",
73
+ message: `Feature "${feature}" is not enabled for this environment.`,
74
+ };
75
+ }
76
+ // ======
77
+ // const rule = CapabilityPermissions.find(
78
+ // hubFeature => hubFeature.entity === entityType && hubFeature.feature === feature
79
+ // );
80
+ // if (rule) {
81
+ // // check each capability access rule
82
+ // return checkFeatureAccess(rule, context, entity);
83
+ // } else {
84
+ // // No rule found
85
+ // return {
86
+ // feature,
87
+ // access: false,
88
+ // code: "disabled",
89
+ // response: "not-available",
90
+ // message: `Feature "${feature}" is not defined for ${entityType}.`,
91
+ // responses: [],
92
+ // } as IFeatureAccessResponse;
93
+ // }
94
+ }
95
+ else {
96
+ // Invalid Feature
97
+ return {
98
+ feature,
99
+ access: false,
100
+ code: "disabled",
101
+ response: "invalid-feature",
102
+ message: `Value "${feature}" is not a valid Hub Feature.`,
103
+ responses: [],
104
+ };
105
+ }
106
+ }
107
+ //# sourceMappingURL=checkFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkFeature.js","sourceRoot":"","sources":["../../../src/features/checkFeature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,YAAY,EAAE,MAAM,SAAS,CAAC;AAiBxF,MAAM,aAAa,GAAgB;IACjC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,cAAc,qBAAqB,aAAa,CAAE,CAAC;AACzD,MAAM,gBAAgB,qBAAqB,aAAa,CAAE,CAAC;AAC3D,MAAM,kBAAkB,qBAAqB,aAAa,CAAE,CAAC;AAE7D,MAAM,kBAAkB,GAAgB;IACtC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,kBAAkB,GAAgB;IACtC,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,SAAS,yBAAyB,CAAC,WAA2B;IAC5D,QAAQ,WAAW,EAAE;QACnB,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC;QACxB,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,kBAAkB,CAAC;QAC5B,KAAK,YAAY;YACf,OAAO,kBAAkB,CAAC;QAC5B;YACE,kBAAkB;YAClB,OAAO,kBAAkB,CAAC;KAC7B;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACtE,uCACK,sBAAsB,GACtB,OAAO,CAAC,QAAQ,EACnB;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAmB,EACnB,OAAuB,EACvB,MAAkC;IAElC;;;;;;;;MAQE;IACF,+DAA+D;IAC/D,yDAAyD;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,EAAE;QACX,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE;YACX,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS;aACM,CAAC;SAC7B;aAAM;YACL,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,uBAAuB;gBACjC,OAAO,EAAE,YAAY,OAAO,wCAAwC;aAC3C,CAAC;SAC7B;QACD,SAAS;QACT,2CAA2C;QAC3C,qFAAqF;QACrF,KAAK;QACL,cAAc;QACd,yCAAyC;QACzC,sDAAsD;QACtD,WAAW;QACX,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,qBAAqB;QACrB,wBAAwB;QACxB,iCAAiC;QACjC,yEAAyE;QACzE,qBAAqB;QACrB,iCAAiC;QACjC,IAAI;KACL;SAAM;QACL,kBAAkB;QAClB,OAAO;YACL,OAAO;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE,UAAU,OAAO,+BAA+B;YACzD,SAAS,EAAE,EAAE;SACY,CAAC;KAC7B;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./types";
2
+ // export * from "./processEntityCapabilities";
3
+ // export * from "./getWorkspaceCapabilities";
4
+ export * from "./checkFeature";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,+CAA+C;AAC/C,8CAA8C;AAC9C,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Hub System Features
3
+ */
4
+ const validFeaures = [
5
+ "workspaces",
6
+ ];
7
+ /**
8
+ * Validate a feature. This is used because the libary can be used outside of typescript and we want to be able to return a message is the string passed in is not a valid capability
9
+ * @param Feature
10
+ * @returns
11
+ */
12
+ export function isHubFeature(maybeFeature) {
13
+ return validFeaures.includes(maybeFeature);
14
+ }
15
+ // /**
16
+ // * All capability checks for an Entity's workspace
17
+ // */
18
+ // export interface IWorkspaceCapabilityResponse {
19
+ // /**
20
+ // * Array of capabilities the current user has access to, in the context of a given entity
21
+ // */
22
+ // granted: Capability[];
23
+ // /**
24
+ // * Detailed checks for each capability. Used for observability
25
+ // */
26
+ // details: ICapabilityAccessResponse[];
27
+ // }
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/types.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,YAAY;CACJ,CAAC;AAcX;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,OAAO,YAAY,CAAC,QAAQ,CAAC,YAA0B,CAAC,CAAC;AAC3D,CAAC;AAyBD,MAAM;AACN,qDAAqD;AACrD,MAAM;AACN,kDAAkD;AAClD,QAAQ;AACR,8FAA8F;AAC9F,QAAQ;AACR,2BAA2B;AAC3B,QAAQ;AACR,mEAAmE;AACnE,QAAQ;AACR,0CAA0C;AAC1C,IAAI"}
@@ -0,0 +1,258 @@
1
+ import { createHubGroup, updateHubGroup, fetchHubGroup, deleteHubGroup, } from "./HubGroups";
2
+ import { convertHubGroupToGroup } from "./_internal/convertHubGroupToGroup";
3
+ import { DEFAULT_GROUP } from "./defaults";
4
+ import { addPermissionPolicy, checkPermission, removePermissionPolicy, } from "../permissions";
5
+ import { cloneObject } from "../util";
6
+ import { getEditorConfig } from "../core/schemas/getEditorConfig";
7
+ import { setGroupThumbnail } from "./setGroupThumbnail";
8
+ import { getGroupThumbnailUrl } from "../search/utils";
9
+ import { deleteGroupThumbnail } from "./deleteGroupThumbnail";
10
+ import { enrichEntity } from "../core/enrichEntity";
11
+ /**
12
+ * Hub Group Class
13
+ */
14
+ export class HubGroup {
15
+ constructor(group, context) {
16
+ this.isDestroyed = false;
17
+ this.thumbnailCache = null;
18
+ this.entity = group;
19
+ this.context = context;
20
+ }
21
+ /**
22
+ * Whether the user can edit the group,
23
+ * only the owner or admins of the group can
24
+ */
25
+ get canEdit() {
26
+ return ((this.entity.memberType &&
27
+ (this.entity.memberType === "owner" ||
28
+ this.entity.memberType === "admin")) ||
29
+ this.entity.owner === this.context.currentUser.username);
30
+ }
31
+ /**
32
+ * Whether the user can delete the group
33
+ * only the owner or admins of the group can
34
+ */
35
+ get canDelete() {
36
+ return this.canEdit;
37
+ }
38
+ /**
39
+ * Whether the group is protected, if so, it can't be deleted
40
+ */
41
+ get isProtected() {
42
+ return this.entity.protected;
43
+ }
44
+ /**
45
+ * Create an instance from an IHubGroup object
46
+ * @param json - JSON object to create a HubGroup from
47
+ * @param context - ArcGIS context
48
+ * @returns
49
+ */
50
+ static fromJson(json, context) {
51
+ // merge what we have with the default values
52
+ const pojo = this.applyDefaults(json);
53
+ return new HubGroup(pojo, context);
54
+ }
55
+ /**
56
+ * Create a new HubGroup, returning a HubGroup instance.
57
+ * Note: This does not persist the Group into the backing store
58
+ * @param partialGroup
59
+ * @param context
60
+ * @returns
61
+ */
62
+ static async create(partialGroup, context, save = false) {
63
+ const pojo = this.applyDefaults(partialGroup);
64
+ // return an instance of HubGroup
65
+ const instance = HubGroup.fromJson(pojo, context);
66
+ if (save) {
67
+ await instance.save();
68
+ }
69
+ return instance;
70
+ }
71
+ /**
72
+ * Fetch a Group from the backing store and return a HubGroup instance.
73
+ * @param identifier - Identifier of the group to load
74
+ * @param context
75
+ * @returns
76
+ */
77
+ static async fetch(identifier, context) {
78
+ try {
79
+ const group = await fetchHubGroup(identifier, context.userRequestOptions);
80
+ // create an instance of HubGroup from the group
81
+ return HubGroup.fromJson(group, context);
82
+ }
83
+ catch (ex) {
84
+ if (ex.message ===
85
+ "COM_0003: Group does not exist or is inaccessible.") {
86
+ throw new Error(`Group not found.`);
87
+ }
88
+ else {
89
+ throw ex;
90
+ }
91
+ }
92
+ }
93
+ static applyDefaults(partialGroup) {
94
+ // extend the partial over the defaults
95
+ return Object.assign(Object.assign({}, DEFAULT_GROUP), partialGroup);
96
+ }
97
+ /**
98
+ * Return the backing entity as an object literal
99
+ */
100
+ toJson() {
101
+ if (this.isDestroyed) {
102
+ throw new Error("HubGroup is already destroyed.");
103
+ }
104
+ return cloneObject(this.entity);
105
+ }
106
+ /**
107
+ * Apply a new state to the instance
108
+ * @param changes
109
+ */
110
+ update(changes) {
111
+ if (this.isDestroyed) {
112
+ throw new Error("HubGroup is already destroyed.");
113
+ }
114
+ // merge partial onto existing entity
115
+ this.entity = Object.assign(Object.assign({}, this.entity), changes);
116
+ }
117
+ /**
118
+ * Save the HubGroup to the backing store
119
+ * @returns
120
+ */
121
+ async save() {
122
+ if (this.isDestroyed) {
123
+ throw new Error("HubGroup is already destroyed.");
124
+ }
125
+ if (this.entity.id) {
126
+ // update it
127
+ this.entity = await updateHubGroup(this.entity, this.context.userRequestOptions);
128
+ }
129
+ else {
130
+ // create it
131
+ this.entity = await createHubGroup(this.entity, this.context.userRequestOptions);
132
+ }
133
+ return;
134
+ }
135
+ /**
136
+ * Delete the HubGroup from the store
137
+ * set a flag to indicate that it is destroyed
138
+ * @returns
139
+ */
140
+ async delete() {
141
+ if (this.isDestroyed) {
142
+ throw new Error("HubGroup is already destroyed.");
143
+ }
144
+ this.isDestroyed = true;
145
+ // Delegate to module fn
146
+ await deleteHubGroup(this.entity.id, this.context.userRequestOptions);
147
+ }
148
+ /**
149
+ * Check if current user has a specific permission, accounting for
150
+ * both system and entity level policies
151
+ * @param permission
152
+ * @returns
153
+ */
154
+ checkPermission(permission) {
155
+ return checkPermission(permission, this.context, this.entity);
156
+ }
157
+ /**
158
+ * Get all policies related to a specific permission
159
+ * @param permission
160
+ * @returns
161
+ */
162
+ getPermissionPolicies(permission) {
163
+ const permissions = this.entity.permissions;
164
+ return permissions.filter((p) => p.permission === permission);
165
+ }
166
+ /**
167
+ * Add a policy to the entity
168
+ * @param policy
169
+ */
170
+ addPermissionPolicy(policy) {
171
+ this.entity.permissions = addPermissionPolicy(this.entity.permissions, policy);
172
+ }
173
+ /**
174
+ * Remove a policy from the entity
175
+ * @param permission
176
+ * @param id
177
+ */
178
+ removePermissionPolicy(permission, id) {
179
+ this.entity.permissions = removePermissionPolicy(this.entity.permissions, permission, id);
180
+ }
181
+ /*
182
+ * Get the editor config for the HubGroup entity.
183
+ * @param i18nScope translation scope to be interpolated into the uiSchema
184
+ * @param type editor type - corresonds to the returned uiSchema
185
+ * @param options optional hash of dynamic uiSchema element options
186
+ */
187
+ async getEditorConfig(i18nScope, type) {
188
+ // delegate to the schema subsystem
189
+ return getEditorConfig(i18nScope, type, this.entity, this.context);
190
+ }
191
+ /**
192
+ * Return the group as an editor object
193
+ */
194
+ async toEditor(editorContext = {}, include = []) {
195
+ // 1. optionally enrich entity and cast to editor
196
+ const editor = include.length
197
+ ? (await enrichEntity(cloneObject(this.entity), include, this.context.hubRequestOptions))
198
+ : cloneObject(this.entity);
199
+ // 2. Apply transforms to relevant entity values so they
200
+ // can be consumed by the editor
201
+ return editor;
202
+ }
203
+ /**
204
+ * Load the group from the editor object
205
+ * @param editor
206
+ * @returns
207
+ */
208
+ async fromEditor(editor) {
209
+ const isCreate = !editor.id;
210
+ // Setting the thumbnailCache will ensure that
211
+ // the thumbnail is updated on next save
212
+ if (editor._thumbnail) {
213
+ if (editor._thumbnail.blob) {
214
+ this.thumbnailCache = {
215
+ file: editor._thumbnail.blob,
216
+ filename: editor._thumbnail.fileName,
217
+ clear: false,
218
+ };
219
+ }
220
+ else {
221
+ this.thumbnailCache = {
222
+ clear: true,
223
+ };
224
+ }
225
+ }
226
+ delete editor._thumbnail;
227
+ if (this.thumbnailCache) {
228
+ if (this.thumbnailCache.clear) {
229
+ await deleteGroupThumbnail(this.entity.id, this.context.userRequestOptions);
230
+ }
231
+ else {
232
+ await setGroupThumbnail(this.entity.id, this.thumbnailCache.file, this.thumbnailCache.filename, this.context.userRequestOptions, this.entity.owner);
233
+ // Note: updating the thumbnail alone does not update the modified date of the group
234
+ // thus we can just set props on the entity w/o re-fetching
235
+ this.entity.thumbnail = `thumbnail/${this.thumbnailCache.filename}`;
236
+ // Cover the Hub Group to an IGoup
237
+ const group = convertHubGroupToGroup(this.entity);
238
+ this.entity.thumbnailUrl = getGroupThumbnailUrl(this.context.userRequestOptions.portal, group);
239
+ // clear the thumbnail cache
240
+ this.thumbnailCache = null;
241
+ }
242
+ }
243
+ // convert back to an entity. Apply any reverse transforms used in
244
+ // of the toEditor method
245
+ const entity = cloneObject(editor);
246
+ // create it if it does not yet exist...
247
+ if (isCreate) {
248
+ throw new Error("Cannot create group using the Editor.");
249
+ }
250
+ else {
251
+ // ...otherwise, update the in-memory entity and save it
252
+ this.entity = entity;
253
+ await this.save();
254
+ }
255
+ return this.entity;
256
+ }
257
+ }
258
+ //# sourceMappingURL=HubGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubGroup.js","sourceRoot":"","sources":["../../../src/groups/HubGroup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { processAutoAddUsers } from "./processAutoAddUsers";
2
+ import { processInviteUsers } from "./processInviteUsers";
3
+ // Add or invite flow based on the type of user begins here
4
+ /**
5
+ * @private
6
+ * Handles add/invite logic for collaboration coordinators inside partnered orgs.
7
+ * This is intentionally split out from the invitation of partnered org normal members,
8
+ * because the two types of partnered org usres (regular and collaboration coordinator)
9
+ * always come from the same 'bucket', however have distinctly different add paths Invite vs auto add.
10
+ * It returns either an empty instance of the addOrInviteResponse
11
+ * object, or their response from auto adding users.
12
+ *
13
+ * @export
14
+ * @param {IAddOrInviteContext} context context object
15
+ * @return {IAddOrInviteResponse} response object
16
+ */
17
+ export async function addOrInviteCollaborationCoordinators(context) {
18
+ // If there are no org users return handling no users
19
+ if (!context.collaborationCoordinator ||
20
+ context.collaborationCoordinator.length === 0) {
21
+ // we return an empty object because
22
+ // if you leave out any of the props
23
+ // from the final object and you are concatting together arrays you can concat
24
+ // an undeifined inside an array which will throw off array lengths.
25
+ return handleNoUsers();
26
+ }
27
+ return processAutoAddUsers(context, "collaborationCoordinator");
28
+ }
29
+ /**
30
+ * @private
31
+ * Handles add/invite logic for community users
32
+ * It returns either an empty instance of the addOrInviteResponse
33
+ * object, or either ther esponse from processing auto adding
34
+ * users or inviting users. If an email has been passed in it also notifies
35
+ * processAutoAddUsers that emails should be sent.
36
+ *
37
+ * @export
38
+ * @param {IAddOrInviteContext} context context object
39
+ * @return {IAddOrInviteResponse} response object
40
+ */
41
+ export async function addOrInviteCommunityUsers(context) {
42
+ // We default to handleNoUsers
43
+ // we return an empty object because
44
+ // if you leave out any of the props
45
+ // from the final object and you are concatting together arrays you can concat
46
+ // an undeifined inside an array which will throw off array lengths.
47
+ let fnToCall = handleNoUsers;
48
+ let shouldEmail = false;
49
+ // If community users were passed in...
50
+ if (context.community && context.community.length > 0) {
51
+ // Default to either autoAdd or invite based on canAutoAddUser.
52
+ fnToCall = context.canAutoAddUser
53
+ ? processAutoAddUsers
54
+ : processInviteUsers;
55
+ // If we have an email object
56
+ // Then we will auto add...
57
+ // But whether or not we email is still in question
58
+ if (context.email) {
59
+ // If the email object has the groupId property...
60
+ if (context.email.hasOwnProperty("groupId")) {
61
+ // If the email objects groupId property is the same as the current groupId in context...
62
+ // (This function is part of a flow that could work for N groupIds)
63
+ if (context.email.groupId === context.groupId) {
64
+ // Then we auto add and send email
65
+ fnToCall = processAutoAddUsers;
66
+ shouldEmail = true;
67
+ } // ELSE if the groupId's do NOT match, we will fall back
68
+ // To autoAdd or invite as per line 32.
69
+ // We are doing the above logic (lines 43 - 47) because
70
+ // We wish to add users to core groups, followers, and content groups
71
+ // but only to email the core group.
72
+ }
73
+ else {
74
+ // If it does not have a groupId at all then we will autoAdd and email.
75
+ fnToCall = processAutoAddUsers;
76
+ shouldEmail = true;
77
+ }
78
+ }
79
+ }
80
+ // Return/call the function
81
+ return fnToCall(context, "community", shouldEmail);
82
+ }
83
+ /**
84
+ * @private
85
+ * Handles add/invite logic for Org users
86
+ * It returns either an empty instance of the addOrInviteResponse
87
+ * object, or either ther esponse from processing auto adding a users or inviting a user
88
+ *
89
+ * @export
90
+ * @param {IAddOrInviteContext} context context object
91
+ * @return {IAddOrInviteResponse} response object
92
+ */
93
+ export async function addOrInviteOrgUsers(context) {
94
+ // If there are no org users return handling no users
95
+ if (!context.org || context.org.length === 0) {
96
+ // we return an empty object because
97
+ // if you leave out any of the props
98
+ // from the final object and you are concatting together arrays you can concat
99
+ // an undeifined inside an array which will throw off array lengths.
100
+ return handleNoUsers();
101
+ }
102
+ // for org user if you have assignUsers then auto add the user
103
+ // if not then invite the user
104
+ return context.canAutoAddUser
105
+ ? processAutoAddUsers(context, "org")
106
+ : processInviteUsers(context, "org");
107
+ }
108
+ /**
109
+ * @private
110
+ * Handles add/invite logic for partnered org users.
111
+ * It returns either an empty instance of the addOrInviteResponse
112
+ * object, or their response from inviting users.
113
+ *
114
+ * @export
115
+ * @param {IAddOrInviteContext} context context object
116
+ * @return {IAddOrInviteResponse} response object
117
+ */
118
+ export async function addOrInvitePartneredUsers(context) {
119
+ // If there are no org users return handling no users
120
+ if (!context.partnered || context.partnered.length === 0) {
121
+ // we return an empty object because
122
+ // if you leave out any of the props
123
+ // from the final object and you are concatting together arrays you can concat
124
+ // an undeifined inside an array which will throw off array lengths.
125
+ return handleNoUsers();
126
+ }
127
+ // process invite
128
+ return processInviteUsers(context, "partnered");
129
+ }
130
+ /**
131
+ * @private
132
+ * Handles add/invite logic for world users
133
+ * It either returns an empty instance of the add/invite response
134
+ * object, or a populated version from processInviteUsers
135
+ *
136
+ * @export
137
+ * @param {IAddOrInviteContext} context Context object
138
+ * @return {IAddOrInviteResponse} Response object
139
+ */
140
+ export async function addOrInviteWorldUsers(context) {
141
+ // If there are no world users return handling no users
142
+ if (!context.world || context.world.length === 0) {
143
+ // we return an empty object because
144
+ // if you leave out any of the props
145
+ // from the final object and you are concatting together arrays you can concat
146
+ // an undeifined inside an array which will throw off array lengths.
147
+ return handleNoUsers();
148
+ }
149
+ // process invite
150
+ return processInviteUsers(context, "world");
151
+ }
152
+ // Add or invite flow based on the type of user ends here
153
+ /**
154
+ * @private
155
+ * Returns an empty instance of the addorinviteresponse object.
156
+ * We are using this because if you leave out any of the props
157
+ * from the final object and you are concatting together arrays you can concat
158
+ * an undeifined inside an array which will throw off array lengths.
159
+ *
160
+ * @export
161
+ * @return {IAddOrInviteResponse}
162
+ */
163
+ export async function handleNoUsers(context, userType, shouldEmail) {
164
+ return {
165
+ notAdded: [],
166
+ notEmailed: [],
167
+ notInvited: [],
168
+ users: [],
169
+ errors: [],
170
+ };
171
+ }
172
+ /**
173
+ * @private
174
+ * Takes users array and sorts them into an object by the type of user they are
175
+ * based on the orgType prop (world|org|community)
176
+ *
177
+ * @export
178
+ * @param {IUserWithOrgType[]} users array of users
179
+ * @return {IUserOrgRelationship} Object of users sorted by type (world, org, community)
180
+ */
181
+ export function groupUsersByOrgRelationship(users) {
182
+ return users.reduce((acc, user) => {
183
+ // keyof needed to make bracket notation work without TS throwing a wobbly.
184
+ const orgType = user.orgType;
185
+ acc[orgType].push(user);
186
+ return acc;
187
+ }, {
188
+ world: [],
189
+ org: [],
190
+ community: [],
191
+ partnered: [],
192
+ collaborationCoordinator: [],
193
+ });
194
+ }
195
+ //# sourceMappingURL=AddOrInviteUsersToGroupUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddOrInviteUsersToGroupUtils.js","sourceRoot":"","sources":["../../../../src/groups/_internal/AddOrInviteUsersToGroupUtils.ts"],"names":[],"mappings":"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"}