@atlaskit/teams-client 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/CHANGELOG.md +1061 -0
  2. package/LICENSE.md +11 -0
  3. package/README.md +9 -0
  4. package/client/package.json +15 -0
  5. package/dist/cjs/common/types.js +8 -0
  6. package/dist/cjs/common/utils/ari.js +31 -0
  7. package/dist/cjs/common/utils/error/index.js +182 -0
  8. package/dist/cjs/common/utils/filter-null.js +9 -0
  9. package/dist/cjs/common/utils/http.js +119 -0
  10. package/dist/cjs/common/utils/index.js +37 -0
  11. package/dist/cjs/common/utils/permissions/constants.js +68 -0
  12. package/dist/cjs/common/utils/permissions/has-permission.js +42 -0
  13. package/dist/cjs/common/utils/permissions/index.js +31 -0
  14. package/dist/cjs/common/utils/permissions/types.js +11 -0
  15. package/dist/cjs/common/utils/sort-teams.js +52 -0
  16. package/dist/cjs/common/utils/status-code-handlers-provider.js +30 -0
  17. package/dist/cjs/common/utils/team.js +19 -0
  18. package/dist/cjs/common/utils/ufo/constants.js +22 -0
  19. package/dist/cjs/common/utils/ufo/index.js +69 -0
  20. package/dist/cjs/common/utils/ufo/utils.js +26 -0
  21. package/dist/cjs/index.js +166 -0
  22. package/dist/cjs/mocks/endpoints.js +267 -0
  23. package/dist/cjs/mocks/generate-data.js +115 -0
  24. package/dist/cjs/mocks/index.js +61 -0
  25. package/dist/cjs/mocks/invitations.js +21 -0
  26. package/dist/cjs/mocks/responses.js +480 -0
  27. package/dist/cjs/mocks/team-link.js +26 -0
  28. package/dist/cjs/mocks/team.js +150 -0
  29. package/dist/cjs/mocks/user.js +102 -0
  30. package/dist/cjs/mocks/with-faker.js +16 -0
  31. package/dist/cjs/services/agg-client/index.js +137 -0
  32. package/dist/cjs/services/agg-client/mocks/index.js +71 -0
  33. package/dist/cjs/services/agg-client/types.js +10 -0
  34. package/dist/cjs/services/agg-client/utils/queries/team-membership-query.js +8 -0
  35. package/dist/cjs/services/agg-client/utils/queries/user-query.js +12 -0
  36. package/dist/cjs/services/agg-client/utils/user-type.js +18 -0
  37. package/dist/cjs/services/base-client/index.js +94 -0
  38. package/dist/cjs/services/collaborationgraph-client/index.js +58 -0
  39. package/dist/cjs/services/constants.js +13 -0
  40. package/dist/cjs/services/directory-client/index.js +241 -0
  41. package/dist/cjs/services/graphql-client/index.js +12 -0
  42. package/dist/cjs/services/graphql-client/main.js +69 -0
  43. package/dist/cjs/services/graphql-client/types.js +5 -0
  44. package/dist/cjs/services/graphql-client/utils/index.js +157 -0
  45. package/dist/cjs/services/hooks/use-teams-client-setup.js +44 -0
  46. package/dist/cjs/services/identity-client/index.js +171 -0
  47. package/dist/cjs/services/identity-client/utils.js +183 -0
  48. package/dist/cjs/services/index.js +18 -0
  49. package/dist/cjs/services/invitations-client/index.js +168 -0
  50. package/dist/cjs/services/invitations-client/types.js +1 -0
  51. package/dist/cjs/services/invitations-client/utils/index.js +115 -0
  52. package/dist/cjs/services/invitations-client/utils/types.js +5 -0
  53. package/dist/cjs/services/legion-client/index.js +1160 -0
  54. package/dist/cjs/services/legion-client/types.js +5 -0
  55. package/dist/cjs/services/main.js +1941 -0
  56. package/dist/cjs/services/mutability-client/index.js +97 -0
  57. package/dist/cjs/services/mutability-client/types.js +1 -0
  58. package/dist/cjs/services/object-resolver-client/index.js +60 -0
  59. package/dist/cjs/services/object-resolver-client/types.js +17 -0
  60. package/dist/cjs/services/object-resolver-client/utils.js +67 -0
  61. package/dist/cjs/services/perms-client/index.js +48 -0
  62. package/dist/cjs/services/public-api-client/generated/data-contracts.js +1 -0
  63. package/dist/cjs/services/public-api-client/index.js +264 -0
  64. package/dist/cjs/services/rest-client/index.js +381 -0
  65. package/dist/cjs/services/rest-client/utils/cookie.js +23 -0
  66. package/dist/cjs/services/rest-client/utils/parse-error-message.js +62 -0
  67. package/dist/cjs/services/rest-client/utils/parse-response.js +20 -0
  68. package/dist/cjs/services/rest-client/utils/strip-uuid.js +10 -0
  69. package/dist/cjs/services/sentry/constants.js +15 -0
  70. package/dist/cjs/services/sentry/index.js +67 -0
  71. package/dist/cjs/services/sentry/main.js +196 -0
  72. package/dist/cjs/services/sentry/types.js +5 -0
  73. package/dist/cjs/services/sentry/utils/get-sentry-config.js +45 -0
  74. package/dist/cjs/services/sentry/utils/initialise-sentry.js +55 -0
  75. package/dist/cjs/services/sentry/utils/sentry-client.js +121 -0
  76. package/dist/cjs/services/sentry/utils/use-teams-sentry-client-setup.js +40 -0
  77. package/dist/cjs/services/teams-in-slack-client/index.js +103 -0
  78. package/dist/cjs/services/types.js +1 -0
  79. package/dist/cjs/services/use-query-light/index.js +25 -0
  80. package/dist/cjs/services/use-query-light/main.js +232 -0
  81. package/dist/cjs/services/use-query-light/types.js +52 -0
  82. package/dist/cjs/services/user-info-provider/index.js +18 -0
  83. package/dist/cjs/services/user-info-provider/main.js +72 -0
  84. package/dist/cjs/services/user-preferences-client/index.js +98 -0
  85. package/dist/cjs/types/config.js +1 -0
  86. package/dist/cjs/types/index.js +19 -0
  87. package/dist/cjs/types/links.js +22 -0
  88. package/dist/cjs/types/media.js +1 -0
  89. package/dist/cjs/types/membership.js +24 -0
  90. package/dist/cjs/types/slack.js +1 -0
  91. package/dist/cjs/types/team.js +5 -0
  92. package/dist/cjs/types/user.js +10 -0
  93. package/dist/es2019/common/types.js +2 -0
  94. package/dist/es2019/common/utils/ari.js +21 -0
  95. package/dist/es2019/common/utils/error/index.js +142 -0
  96. package/dist/es2019/common/utils/filter-null.js +3 -0
  97. package/dist/es2019/common/utils/http.js +82 -0
  98. package/dist/es2019/common/utils/index.js +2 -0
  99. package/dist/es2019/common/utils/permissions/constants.js +59 -0
  100. package/dist/es2019/common/utils/permissions/has-permission.js +33 -0
  101. package/dist/es2019/common/utils/permissions/index.js +2 -0
  102. package/dist/es2019/common/utils/permissions/types.js +5 -0
  103. package/dist/es2019/common/utils/sort-teams.js +45 -0
  104. package/dist/es2019/common/utils/status-code-handlers-provider.js +25 -0
  105. package/dist/es2019/common/utils/team.js +6 -0
  106. package/dist/es2019/common/utils/ufo/constants.js +12 -0
  107. package/dist/es2019/common/utils/ufo/index.js +43 -0
  108. package/dist/es2019/common/utils/ufo/utils.js +18 -0
  109. package/dist/es2019/index.js +19 -0
  110. package/dist/es2019/mocks/endpoints.js +250 -0
  111. package/dist/es2019/mocks/generate-data.js +96 -0
  112. package/dist/es2019/mocks/index.js +2 -0
  113. package/dist/es2019/mocks/invitations.js +11 -0
  114. package/dist/es2019/mocks/responses.js +478 -0
  115. package/dist/es2019/mocks/team-link.js +14 -0
  116. package/dist/es2019/mocks/team.js +127 -0
  117. package/dist/es2019/mocks/user.js +79 -0
  118. package/dist/es2019/mocks/with-faker.js +8 -0
  119. package/dist/es2019/services/agg-client/index.js +70 -0
  120. package/dist/es2019/services/agg-client/mocks/index.js +64 -0
  121. package/dist/es2019/services/agg-client/types.js +4 -0
  122. package/dist/es2019/services/agg-client/utils/queries/team-membership-query.js +36 -0
  123. package/dist/es2019/services/agg-client/utils/queries/user-query.js +39 -0
  124. package/dist/es2019/services/agg-client/utils/user-type.js +13 -0
  125. package/dist/es2019/services/base-client/index.js +66 -0
  126. package/dist/es2019/services/collaborationgraph-client/index.js +37 -0
  127. package/dist/es2019/services/constants.js +7 -0
  128. package/dist/es2019/services/directory-client/index.js +155 -0
  129. package/dist/es2019/services/graphql-client/index.js +1 -0
  130. package/dist/es2019/services/graphql-client/main.js +23 -0
  131. package/dist/es2019/services/graphql-client/types.js +1 -0
  132. package/dist/es2019/services/graphql-client/utils/index.js +76 -0
  133. package/dist/es2019/services/hooks/use-teams-client-setup.js +40 -0
  134. package/dist/es2019/services/identity-client/index.js +53 -0
  135. package/dist/es2019/services/identity-client/utils.js +167 -0
  136. package/dist/es2019/services/index.js +1 -0
  137. package/dist/es2019/services/invitations-client/index.js +65 -0
  138. package/dist/es2019/services/invitations-client/types.js +0 -0
  139. package/dist/es2019/services/invitations-client/utils/index.js +101 -0
  140. package/dist/es2019/services/invitations-client/utils/types.js +1 -0
  141. package/dist/es2019/services/legion-client/index.js +484 -0
  142. package/dist/es2019/services/legion-client/types.js +1 -0
  143. package/dist/es2019/services/main.js +541 -0
  144. package/dist/es2019/services/mutability-client/index.js +49 -0
  145. package/dist/es2019/services/mutability-client/types.js +0 -0
  146. package/dist/es2019/services/object-resolver-client/index.js +21 -0
  147. package/dist/es2019/services/object-resolver-client/types.js +12 -0
  148. package/dist/es2019/services/object-resolver-client/utils.js +53 -0
  149. package/dist/es2019/services/perms-client/index.js +25 -0
  150. package/dist/es2019/services/public-api-client/generated/data-contracts.js +0 -0
  151. package/dist/es2019/services/public-api-client/index.js +120 -0
  152. package/dist/es2019/services/rest-client/index.js +177 -0
  153. package/dist/es2019/services/rest-client/utils/cookie.js +13 -0
  154. package/dist/es2019/services/rest-client/utils/parse-error-message.js +20 -0
  155. package/dist/es2019/services/rest-client/utils/parse-response.js +14 -0
  156. package/dist/es2019/services/rest-client/utils/strip-uuid.js +4 -0
  157. package/dist/es2019/services/sentry/constants.js +10 -0
  158. package/dist/es2019/services/sentry/index.js +2 -0
  159. package/dist/es2019/services/sentry/main.js +107 -0
  160. package/dist/es2019/services/sentry/types.js +1 -0
  161. package/dist/es2019/services/sentry/utils/get-sentry-config.js +37 -0
  162. package/dist/es2019/services/sentry/utils/initialise-sentry.js +23 -0
  163. package/dist/es2019/services/sentry/utils/sentry-client.js +57 -0
  164. package/dist/es2019/services/sentry/utils/use-teams-sentry-client-setup.js +14 -0
  165. package/dist/es2019/services/teams-in-slack-client/index.js +32 -0
  166. package/dist/es2019/services/types.js +0 -0
  167. package/dist/es2019/services/use-query-light/index.js +2 -0
  168. package/dist/es2019/services/use-query-light/main.js +162 -0
  169. package/dist/es2019/services/use-query-light/types.js +27 -0
  170. package/dist/es2019/services/user-info-provider/index.js +1 -0
  171. package/dist/es2019/services/user-info-provider/main.js +44 -0
  172. package/dist/es2019/services/user-preferences-client/index.js +19 -0
  173. package/dist/es2019/types/config.js +0 -0
  174. package/dist/es2019/types/index.js +2 -0
  175. package/dist/es2019/types/links.js +16 -0
  176. package/dist/es2019/types/media.js +0 -0
  177. package/dist/es2019/types/membership.js +16 -0
  178. package/dist/es2019/types/slack.js +0 -0
  179. package/dist/es2019/types/team.js +1 -0
  180. package/dist/es2019/types/user.js +4 -0
  181. package/dist/esm/common/types.js +2 -0
  182. package/dist/esm/common/utils/ari.js +25 -0
  183. package/dist/esm/common/utils/error/index.js +176 -0
  184. package/dist/esm/common/utils/filter-null.js +3 -0
  185. package/dist/esm/common/utils/http.js +109 -0
  186. package/dist/esm/common/utils/index.js +2 -0
  187. package/dist/esm/common/utils/permissions/constants.js +61 -0
  188. package/dist/esm/common/utils/permissions/has-permission.js +34 -0
  189. package/dist/esm/common/utils/permissions/index.js +2 -0
  190. package/dist/esm/common/utils/permissions/types.js +5 -0
  191. package/dist/esm/common/utils/sort-teams.js +46 -0
  192. package/dist/esm/common/utils/status-code-handlers-provider.js +23 -0
  193. package/dist/esm/common/utils/team.js +12 -0
  194. package/dist/esm/common/utils/ufo/constants.js +15 -0
  195. package/dist/esm/common/utils/ufo/index.js +62 -0
  196. package/dist/esm/common/utils/ufo/utils.js +20 -0
  197. package/dist/esm/index.js +19 -0
  198. package/dist/esm/mocks/endpoints.js +261 -0
  199. package/dist/esm/mocks/generate-data.js +106 -0
  200. package/dist/esm/mocks/index.js +2 -0
  201. package/dist/esm/mocks/invitations.js +14 -0
  202. package/dist/esm/mocks/responses.js +473 -0
  203. package/dist/esm/mocks/team-link.js +19 -0
  204. package/dist/esm/mocks/team.js +143 -0
  205. package/dist/esm/mocks/user.js +95 -0
  206. package/dist/esm/mocks/with-faker.js +10 -0
  207. package/dist/esm/services/agg-client/index.js +130 -0
  208. package/dist/esm/services/agg-client/mocks/index.js +64 -0
  209. package/dist/esm/services/agg-client/types.js +4 -0
  210. package/dist/esm/services/agg-client/utils/queries/team-membership-query.js +2 -0
  211. package/dist/esm/services/agg-client/utils/queries/user-query.js +5 -0
  212. package/dist/esm/services/agg-client/utils/user-type.js +12 -0
  213. package/dist/esm/services/base-client/index.js +87 -0
  214. package/dist/esm/services/collaborationgraph-client/index.js +51 -0
  215. package/dist/esm/services/constants.js +7 -0
  216. package/dist/esm/services/directory-client/index.js +234 -0
  217. package/dist/esm/services/graphql-client/index.js +1 -0
  218. package/dist/esm/services/graphql-client/main.js +62 -0
  219. package/dist/esm/services/graphql-client/types.js +1 -0
  220. package/dist/esm/services/graphql-client/utils/index.js +149 -0
  221. package/dist/esm/services/hooks/use-teams-client-setup.js +39 -0
  222. package/dist/esm/services/identity-client/index.js +164 -0
  223. package/dist/esm/services/identity-client/utils.js +174 -0
  224. package/dist/esm/services/index.js +1 -0
  225. package/dist/esm/services/invitations-client/index.js +163 -0
  226. package/dist/esm/services/invitations-client/types.js +0 -0
  227. package/dist/esm/services/invitations-client/utils/index.js +108 -0
  228. package/dist/esm/services/invitations-client/utils/types.js +1 -0
  229. package/dist/esm/services/legion-client/index.js +1154 -0
  230. package/dist/esm/services/legion-client/types.js +1 -0
  231. package/dist/esm/services/main.js +1936 -0
  232. package/dist/esm/services/mutability-client/index.js +90 -0
  233. package/dist/esm/services/mutability-client/types.js +0 -0
  234. package/dist/esm/services/object-resolver-client/index.js +53 -0
  235. package/dist/esm/services/object-resolver-client/types.js +12 -0
  236. package/dist/esm/services/object-resolver-client/utils.js +61 -0
  237. package/dist/esm/services/perms-client/index.js +42 -0
  238. package/dist/esm/services/public-api-client/generated/data-contracts.js +0 -0
  239. package/dist/esm/services/public-api-client/index.js +260 -0
  240. package/dist/esm/services/rest-client/index.js +373 -0
  241. package/dist/esm/services/rest-client/utils/cookie.js +14 -0
  242. package/dist/esm/services/rest-client/utils/parse-error-message.js +55 -0
  243. package/dist/esm/services/rest-client/utils/parse-response.js +14 -0
  244. package/dist/esm/services/rest-client/utils/strip-uuid.js +4 -0
  245. package/dist/esm/services/sentry/constants.js +10 -0
  246. package/dist/esm/services/sentry/index.js +2 -0
  247. package/dist/esm/services/sentry/main.js +186 -0
  248. package/dist/esm/services/sentry/types.js +1 -0
  249. package/dist/esm/services/sentry/utils/get-sentry-config.js +38 -0
  250. package/dist/esm/services/sentry/utils/initialise-sentry.js +48 -0
  251. package/dist/esm/services/sentry/utils/sentry-client.js +108 -0
  252. package/dist/esm/services/sentry/utils/use-teams-sentry-client-setup.js +33 -0
  253. package/dist/esm/services/teams-in-slack-client/index.js +96 -0
  254. package/dist/esm/services/types.js +0 -0
  255. package/dist/esm/services/use-query-light/index.js +2 -0
  256. package/dist/esm/services/use-query-light/main.js +225 -0
  257. package/dist/esm/services/use-query-light/types.js +45 -0
  258. package/dist/esm/services/user-info-provider/index.js +1 -0
  259. package/dist/esm/services/user-info-provider/main.js +66 -0
  260. package/dist/esm/services/user-preferences-client/index.js +91 -0
  261. package/dist/esm/types/config.js +0 -0
  262. package/dist/esm/types/index.js +2 -0
  263. package/dist/esm/types/links.js +16 -0
  264. package/dist/esm/types/media.js +0 -0
  265. package/dist/esm/types/membership.js +17 -0
  266. package/dist/esm/types/slack.js +0 -0
  267. package/dist/esm/types/team.js +1 -0
  268. package/dist/esm/types/user.js +4 -0
  269. package/dist/types/common/types.d.ts +4 -0
  270. package/dist/types/common/utils/ari.d.ts +7 -0
  271. package/dist/types/common/utils/error/index.d.ts +91 -0
  272. package/dist/types/common/utils/filter-null.d.ts +1 -0
  273. package/dist/types/common/utils/http.d.ts +31 -0
  274. package/dist/types/common/utils/index.d.ts +2 -0
  275. package/dist/types/common/utils/permissions/constants.d.ts +23 -0
  276. package/dist/types/common/utils/permissions/has-permission.d.ts +31 -0
  277. package/dist/types/common/utils/permissions/index.d.ts +3 -0
  278. package/dist/types/common/utils/permissions/types.d.ts +7 -0
  279. package/dist/types/common/utils/sort-teams.d.ts +2 -0
  280. package/dist/types/common/utils/status-code-handlers-provider.d.ts +17 -0
  281. package/dist/types/common/utils/team.d.ts +5 -0
  282. package/dist/types/common/utils/ufo/constants.d.ts +5 -0
  283. package/dist/types/common/utils/ufo/index.d.ts +6 -0
  284. package/dist/types/common/utils/ufo/utils.d.ts +11 -0
  285. package/dist/types/index.d.ts +15 -0
  286. package/dist/types/mocks/endpoints.d.ts +22 -0
  287. package/dist/types/mocks/generate-data.d.ts +16 -0
  288. package/dist/types/mocks/index.d.ts +2 -0
  289. package/dist/types/mocks/invitations.d.ts +11 -0
  290. package/dist/types/mocks/responses.d.ts +75 -0
  291. package/dist/types/mocks/team-link.d.ts +7 -0
  292. package/dist/types/mocks/team.d.ts +14 -0
  293. package/dist/types/mocks/user.d.ts +15 -0
  294. package/dist/types/mocks/with-faker.d.ts +11 -0
  295. package/dist/types/services/agg-client/index.d.ts +12 -0
  296. package/dist/types/services/agg-client/mocks/index.d.ts +49 -0
  297. package/dist/types/services/agg-client/types.d.ts +13 -0
  298. package/dist/types/services/agg-client/utils/queries/team-membership-query.d.ts +33 -0
  299. package/dist/types/services/agg-client/utils/queries/user-query.d.ts +31 -0
  300. package/dist/types/services/agg-client/utils/user-type.d.ts +7 -0
  301. package/dist/types/services/base-client/index.d.ts +37 -0
  302. package/dist/types/services/collaborationgraph-client/index.d.ts +37 -0
  303. package/dist/types/services/constants.d.ts +2 -0
  304. package/dist/types/services/directory-client/index.d.ts +53 -0
  305. package/dist/types/services/graphql-client/index.d.ts +1 -0
  306. package/dist/types/services/graphql-client/main.d.ts +8 -0
  307. package/dist/types/services/graphql-client/types.d.ts +19 -0
  308. package/dist/types/services/graphql-client/utils/index.d.ts +3 -0
  309. package/dist/types/services/hooks/use-teams-client-setup.d.ts +12 -0
  310. package/dist/types/services/identity-client/index.d.ts +33 -0
  311. package/dist/types/services/identity-client/utils.d.ts +81 -0
  312. package/dist/types/services/index.d.ts +1 -0
  313. package/dist/types/services/invitations-client/index.d.ts +11 -0
  314. package/dist/types/services/invitations-client/types.d.ts +67 -0
  315. package/dist/types/services/invitations-client/utils/index.d.ts +7 -0
  316. package/dist/types/services/invitations-client/utils/types.d.ts +7 -0
  317. package/dist/types/services/legion-client/index.d.ts +133 -0
  318. package/dist/types/services/legion-client/types.d.ts +107 -0
  319. package/dist/types/services/main.d.ts +316 -0
  320. package/dist/types/services/mutability-client/index.d.ts +8 -0
  321. package/dist/types/services/mutability-client/types.d.ts +5 -0
  322. package/dist/types/services/object-resolver-client/index.d.ts +8 -0
  323. package/dist/types/services/object-resolver-client/types.d.ts +38 -0
  324. package/dist/types/services/object-resolver-client/utils.d.ts +18 -0
  325. package/dist/types/services/perms-client/index.d.ts +16 -0
  326. package/dist/types/services/public-api-client/generated/data-contracts.d.ts +112 -0
  327. package/dist/types/services/public-api-client/index.d.ts +41 -0
  328. package/dist/types/services/rest-client/index.d.ts +40 -0
  329. package/dist/types/services/rest-client/utils/cookie.d.ts +5 -0
  330. package/dist/types/services/rest-client/utils/parse-error-message.d.ts +1 -0
  331. package/dist/types/services/rest-client/utils/parse-response.d.ts +1 -0
  332. package/dist/types/services/rest-client/utils/strip-uuid.d.ts +1 -0
  333. package/dist/types/services/sentry/constants.d.ts +5 -0
  334. package/dist/types/services/sentry/index.d.ts +3 -0
  335. package/dist/types/services/sentry/main.d.ts +36 -0
  336. package/dist/types/services/sentry/types.d.ts +36 -0
  337. package/dist/types/services/sentry/utils/get-sentry-config.d.ts +2 -0
  338. package/dist/types/services/sentry/utils/initialise-sentry.d.ts +2 -0
  339. package/dist/types/services/sentry/utils/sentry-client.d.ts +9 -0
  340. package/dist/types/services/sentry/utils/use-teams-sentry-client-setup.d.ts +2 -0
  341. package/dist/types/services/teams-in-slack-client/index.d.ts +27 -0
  342. package/dist/types/services/types.d.ts +10 -0
  343. package/dist/types/services/use-query-light/index.d.ts +3 -0
  344. package/dist/types/services/use-query-light/main.d.ts +4 -0
  345. package/dist/types/services/use-query-light/types.d.ts +57 -0
  346. package/dist/types/services/user-info-provider/index.d.ts +1 -0
  347. package/dist/types/services/user-info-provider/main.d.ts +14 -0
  348. package/dist/types/services/user-preferences-client/index.d.ts +9 -0
  349. package/dist/types/types/config.d.ts +7 -0
  350. package/dist/types/types/index.d.ts +10 -0
  351. package/dist/types/types/links.d.ts +31 -0
  352. package/dist/types/types/media.d.ts +6 -0
  353. package/dist/types/types/membership.d.ts +35 -0
  354. package/dist/types/types/slack.d.ts +7 -0
  355. package/dist/types/types/team.d.ts +117 -0
  356. package/dist/types/types/user.d.ts +41 -0
  357. package/dist/types-ts4.5/common/types.d.ts +4 -0
  358. package/dist/types-ts4.5/common/utils/ari.d.ts +7 -0
  359. package/dist/types-ts4.5/common/utils/error/index.d.ts +91 -0
  360. package/dist/types-ts4.5/common/utils/filter-null.d.ts +1 -0
  361. package/dist/types-ts4.5/common/utils/http.d.ts +31 -0
  362. package/dist/types-ts4.5/common/utils/index.d.ts +2 -0
  363. package/dist/types-ts4.5/common/utils/permissions/constants.d.ts +23 -0
  364. package/dist/types-ts4.5/common/utils/permissions/has-permission.d.ts +31 -0
  365. package/dist/types-ts4.5/common/utils/permissions/index.d.ts +3 -0
  366. package/dist/types-ts4.5/common/utils/permissions/types.d.ts +26 -0
  367. package/dist/types-ts4.5/common/utils/sort-teams.d.ts +2 -0
  368. package/dist/types-ts4.5/common/utils/status-code-handlers-provider.d.ts +17 -0
  369. package/dist/types-ts4.5/common/utils/team.d.ts +5 -0
  370. package/dist/types-ts4.5/common/utils/ufo/constants.d.ts +64 -0
  371. package/dist/types-ts4.5/common/utils/ufo/index.d.ts +6 -0
  372. package/dist/types-ts4.5/common/utils/ufo/utils.d.ts +11 -0
  373. package/dist/types-ts4.5/index.d.ts +15 -0
  374. package/dist/types-ts4.5/mocks/endpoints.d.ts +22 -0
  375. package/dist/types-ts4.5/mocks/generate-data.d.ts +16 -0
  376. package/dist/types-ts4.5/mocks/index.d.ts +2 -0
  377. package/dist/types-ts4.5/mocks/invitations.d.ts +11 -0
  378. package/dist/types-ts4.5/mocks/responses.d.ts +75 -0
  379. package/dist/types-ts4.5/mocks/team-link.d.ts +7 -0
  380. package/dist/types-ts4.5/mocks/team.d.ts +14 -0
  381. package/dist/types-ts4.5/mocks/user.d.ts +15 -0
  382. package/dist/types-ts4.5/mocks/with-faker.d.ts +11 -0
  383. package/dist/types-ts4.5/services/agg-client/index.d.ts +12 -0
  384. package/dist/types-ts4.5/services/agg-client/mocks/index.d.ts +49 -0
  385. package/dist/types-ts4.5/services/agg-client/types.d.ts +13 -0
  386. package/dist/types-ts4.5/services/agg-client/utils/queries/team-membership-query.d.ts +33 -0
  387. package/dist/types-ts4.5/services/agg-client/utils/queries/user-query.d.ts +31 -0
  388. package/dist/types-ts4.5/services/agg-client/utils/user-type.d.ts +7 -0
  389. package/dist/types-ts4.5/services/base-client/index.d.ts +37 -0
  390. package/dist/types-ts4.5/services/collaborationgraph-client/index.d.ts +37 -0
  391. package/dist/types-ts4.5/services/constants.d.ts +2 -0
  392. package/dist/types-ts4.5/services/directory-client/index.d.ts +53 -0
  393. package/dist/types-ts4.5/services/graphql-client/index.d.ts +1 -0
  394. package/dist/types-ts4.5/services/graphql-client/main.d.ts +8 -0
  395. package/dist/types-ts4.5/services/graphql-client/types.d.ts +19 -0
  396. package/dist/types-ts4.5/services/graphql-client/utils/index.d.ts +3 -0
  397. package/dist/types-ts4.5/services/hooks/use-teams-client-setup.d.ts +12 -0
  398. package/dist/types-ts4.5/services/identity-client/index.d.ts +33 -0
  399. package/dist/types-ts4.5/services/identity-client/utils.d.ts +81 -0
  400. package/dist/types-ts4.5/services/index.d.ts +1 -0
  401. package/dist/types-ts4.5/services/invitations-client/index.d.ts +11 -0
  402. package/dist/types-ts4.5/services/invitations-client/types.d.ts +67 -0
  403. package/dist/types-ts4.5/services/invitations-client/utils/index.d.ts +7 -0
  404. package/dist/types-ts4.5/services/invitations-client/utils/types.d.ts +7 -0
  405. package/dist/types-ts4.5/services/legion-client/index.d.ts +133 -0
  406. package/dist/types-ts4.5/services/legion-client/types.d.ts +107 -0
  407. package/dist/types-ts4.5/services/main.d.ts +316 -0
  408. package/dist/types-ts4.5/services/mutability-client/index.d.ts +8 -0
  409. package/dist/types-ts4.5/services/mutability-client/types.d.ts +5 -0
  410. package/dist/types-ts4.5/services/object-resolver-client/index.d.ts +8 -0
  411. package/dist/types-ts4.5/services/object-resolver-client/types.d.ts +38 -0
  412. package/dist/types-ts4.5/services/object-resolver-client/utils.d.ts +18 -0
  413. package/dist/types-ts4.5/services/perms-client/index.d.ts +16 -0
  414. package/dist/types-ts4.5/services/public-api-client/generated/data-contracts.d.ts +112 -0
  415. package/dist/types-ts4.5/services/public-api-client/index.d.ts +41 -0
  416. package/dist/types-ts4.5/services/rest-client/index.d.ts +40 -0
  417. package/dist/types-ts4.5/services/rest-client/utils/cookie.d.ts +5 -0
  418. package/dist/types-ts4.5/services/rest-client/utils/parse-error-message.d.ts +1 -0
  419. package/dist/types-ts4.5/services/rest-client/utils/parse-response.d.ts +1 -0
  420. package/dist/types-ts4.5/services/rest-client/utils/strip-uuid.d.ts +1 -0
  421. package/dist/types-ts4.5/services/sentry/constants.d.ts +5 -0
  422. package/dist/types-ts4.5/services/sentry/index.d.ts +3 -0
  423. package/dist/types-ts4.5/services/sentry/main.d.ts +36 -0
  424. package/dist/types-ts4.5/services/sentry/types.d.ts +36 -0
  425. package/dist/types-ts4.5/services/sentry/utils/get-sentry-config.d.ts +2 -0
  426. package/dist/types-ts4.5/services/sentry/utils/initialise-sentry.d.ts +2 -0
  427. package/dist/types-ts4.5/services/sentry/utils/sentry-client.d.ts +9 -0
  428. package/dist/types-ts4.5/services/sentry/utils/use-teams-sentry-client-setup.d.ts +2 -0
  429. package/dist/types-ts4.5/services/teams-in-slack-client/index.d.ts +27 -0
  430. package/dist/types-ts4.5/services/types.d.ts +10 -0
  431. package/dist/types-ts4.5/services/use-query-light/index.d.ts +3 -0
  432. package/dist/types-ts4.5/services/use-query-light/main.d.ts +7 -0
  433. package/dist/types-ts4.5/services/use-query-light/types.d.ts +57 -0
  434. package/dist/types-ts4.5/services/user-info-provider/index.d.ts +1 -0
  435. package/dist/types-ts4.5/services/user-info-provider/main.d.ts +14 -0
  436. package/dist/types-ts4.5/services/user-preferences-client/index.d.ts +9 -0
  437. package/dist/types-ts4.5/types/config.d.ts +7 -0
  438. package/dist/types-ts4.5/types/index.d.ts +10 -0
  439. package/dist/types-ts4.5/types/links.d.ts +31 -0
  440. package/dist/types-ts4.5/types/media.d.ts +6 -0
  441. package/dist/types-ts4.5/types/membership.d.ts +35 -0
  442. package/dist/types-ts4.5/types/slack.d.ts +7 -0
  443. package/dist/types-ts4.5/types/team.d.ts +117 -0
  444. package/dist/types-ts4.5/types/user.d.ts +51 -0
  445. package/mocks/package.json +15 -0
  446. package/package.json +111 -0
  447. package/permissions/package.json +15 -0
  448. package/public/package.json +15 -0
  449. package/report.api.md +1210 -0
  450. package/scripts/generate-docs.ts +31 -0
  451. package/scripts/utils.ts +269 -0
  452. package/sentry/package.json +15 -0
  453. package/types/package.json +15 -0
  454. package/ufo/package.json +15 -0
  455. package/use-query-light/package.json +15 -0
  456. package/user-info-provider/package.json +15 -0
  457. package/utils/package.json +15 -0
@@ -0,0 +1,541 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import { TEAMS_CLIENT_EXPERIENCES } from '../common/utils/ufo/constants';
3
+ import { aggClient } from './agg-client';
4
+ import collaborationGraphClient from './collaborationgraph-client';
5
+ import { directoryClient } from './directory-client';
6
+ import identityClient from './identity-client';
7
+ import invitationsClient from './invitations-client';
8
+ import { defaultLegionClient } from './legion-client';
9
+ import mutabilityClient from './mutability-client';
10
+ import objectResolverClient from './object-resolver-client';
11
+ import permsClient from './perms-client';
12
+ import publicApiClient from './public-api-client';
13
+ import teamsInSlackClient from './teams-in-slack-client';
14
+ import userPreferencesClient from './user-preferences-client';
15
+
16
+ /**
17
+ * This solves error TS1055:
18
+ * Type 'ReturnType' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value
19
+ */
20
+
21
+ /**
22
+ * The Teams Client is an used for fetching data related to Atlas teams.
23
+ * It is an abstraction over the various clients that are used to fetch data related to teams.
24
+ * Find out more about the APIs here - [https://developer.atlassian.com/platform/teams-internal/](https://developer.atlassian.com/platform/teams-internal/)
25
+ */
26
+ export class TeamsClient {
27
+ constructor(
28
+ /**
29
+ * @param {ClientContextProps} context - Context including CloudId & OrgId to be used for all requests
30
+ */
31
+ context) {
32
+ _defineProperty(this, "_aggClient", aggClient);
33
+ _defineProperty(this, "_directoryClient", directoryClient);
34
+ _defineProperty(this, "_legionClient", defaultLegionClient);
35
+ _defineProperty(this, "_mutabilityClient", mutabilityClient);
36
+ _defineProperty(this, "_permsClient", permsClient);
37
+ _defineProperty(this, "_publicApiClient", publicApiClient);
38
+ _defineProperty(this, "_invitationsClient", invitationsClient);
39
+ _defineProperty(this, "_userPreferencesClient", userPreferencesClient);
40
+ _defineProperty(this, "_objectResolverClient", objectResolverClient);
41
+ _defineProperty(this, "_teamsInSlackClient", teamsInSlackClient);
42
+ _defineProperty(this, "_collaborationGraphClient", collaborationGraphClient);
43
+ _defineProperty(this, "_identityClient", identityClient);
44
+ if (context) {
45
+ this.setContext(context);
46
+ }
47
+ }
48
+ async measurePerformance(name, fn) {
49
+ const exp = TEAMS_CLIENT_EXPERIENCES.get(name);
50
+ if (!exp) {
51
+ return fn();
52
+ }
53
+ exp.start();
54
+ try {
55
+ const result = await fn();
56
+ exp.success();
57
+ return result;
58
+ } catch (e) {
59
+ exp.failWithError(e);
60
+ throw e;
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Sets the base URL to be used in the client requests
66
+ * @param {string} baseUrl - The new base URL
67
+ */
68
+ setBaseUrl(baseUrl) {
69
+ this._aggClient.setBaseUrl(baseUrl);
70
+ this._directoryClient.setBaseUrl(baseUrl);
71
+ }
72
+
73
+ /**
74
+ * Sets context including CloudId & OrgId to be used for all requests
75
+ */
76
+ setContext(context) {
77
+ this._aggClient.setContext(context);
78
+ this._directoryClient.setContext(context);
79
+ this._legionClient.setContext(context);
80
+ this._permsClient.setContext(context);
81
+ this._mutabilityClient.setContext(context);
82
+ this._publicApiClient.setContext(context);
83
+ this._invitationsClient.setContext(context);
84
+ }
85
+
86
+ /**
87
+ * @private
88
+ * @deprecated use setBaseUrl instead
89
+ */
90
+ setDirectoryBaseUrl(baseUrl) {
91
+ // eslint-disable-next-line no-console
92
+ console.warn('setDirectoryBaseUrl is deprecated, use setBaseUrl instead');
93
+ return this._directoryClient.setBaseUrl(baseUrl);
94
+ }
95
+
96
+ /**
97
+ * Fetches Browse user settings
98
+ */
99
+ async querySettings(cloudId, product) {
100
+ if (cloudId) {
101
+ this.setContext({
102
+ cloudId
103
+ });
104
+ }
105
+ return this.measurePerformance('querySettings', async () => {
106
+ if (!product) {
107
+ throw new Error('Product is required');
108
+ }
109
+ const response = await this._legionClient.retrieveBrowseUserPermission(product);
110
+ return {
111
+ 'internal.browse-users-allowed': response.canSearchUsers
112
+ };
113
+ });
114
+ }
115
+
116
+ /**
117
+ * This will return all of the teams-related permissions that your user has for the org and site in the client context.
118
+ */
119
+ async getPermissions() {
120
+ return this.measurePerformance('getPermissions', () => this._legionClient.getPermissions());
121
+ }
122
+
123
+ /**
124
+ * Fetches feature flags from Directory
125
+ * @deprecated As part of decommisioning pf-directoy
126
+ */
127
+ async queryFeatureFlags(...args) {
128
+ return this.measurePerformance('queryFeatureFlags', () => this._directoryClient.queryFeatureFlags(...args));
129
+ }
130
+
131
+ /**
132
+ * Get user information of members of a team, paginated
133
+ * @param {string} teamId
134
+ * @returns {Promise}
135
+ */
136
+ async queryTeamMemberships(teamId, membershipState = ['FULL_MEMBER'], pageInfo = {
137
+ first: 100
138
+ }) {
139
+ return this._aggClient.queryTeamMemberships(teamId, membershipState, pageInfo);
140
+ }
141
+
142
+ /**
143
+ * Get user information given an user id
144
+ * @param {string} userId
145
+ * @returns {Promise}
146
+ */
147
+ async queryAGGUser(userId) {
148
+ return this._aggClient.queryAGGUser(userId);
149
+ }
150
+
151
+ /**
152
+ * Get user information of a member of a team
153
+ * @param {string} userId
154
+ * @returns {Promise<CloudUser>}
155
+ */
156
+ queryUser(...args) {
157
+ return this.measurePerformance('queryUser', () => this._directoryClient.queryUser(...args));
158
+ }
159
+ setLegionRootUrl(url) {
160
+ return this._legionClient.setRootUrl(url);
161
+ }
162
+
163
+ /**
164
+ *
165
+ * @param teamId
166
+ * @returns {Promise<TeamWithImageUrls>}
167
+ */
168
+ async getTeamById(teamId) {
169
+ return this.measurePerformance('getTeamById', () => this._legionClient.getTeamById(teamId));
170
+ }
171
+
172
+ /**
173
+ * Search teams based on query
174
+ */
175
+ async getAllTeams(...args) {
176
+ return this.measurePerformance('getAllTeams', () => this._legionClient.getAllTeams(...args));
177
+ }
178
+
179
+ /**
180
+ * Update team details
181
+ */
182
+ async updateTeamById(...args) {
183
+ return this.measurePerformance('updateTeamById', () => this._legionClient.updateTeamById(...args));
184
+ }
185
+
186
+ /**
187
+ * @private
188
+ * @deprecated use addUsersToTeam instead
189
+ */
190
+ async inviteUsersToTeam(...args) {
191
+ return this.measurePerformance('inviteUsersToTeam', () => this._legionClient.inviteUsersToTeam(...args));
192
+ }
193
+
194
+ /**
195
+ * Get the current user's team membership
196
+ */
197
+ async getMyTeamMembership(...args) {
198
+ return this.measurePerformance('getMyTeamMembership', () => this._legionClient.getMyTeamMembership(...args));
199
+ }
200
+
201
+ /**
202
+ * Get a teams "Links"
203
+ */
204
+ async getTeamLinksByTeamId(teamId) {
205
+ return this.measurePerformance('getTeamLinksByTeamId', () => this._legionClient.getTeamLinksByTeamId(teamId));
206
+ }
207
+
208
+ /**
209
+ * Create a team link
210
+ */
211
+ async createTeamLink(...args) {
212
+ return this.measurePerformance('createTeamLink', () => this._legionClient.createTeamLink(...args));
213
+ }
214
+
215
+ /**
216
+ * Update a team link
217
+ */
218
+ async updateTeamLink(...args) {
219
+ return this.measurePerformance('updateTeamLink', () => this._legionClient.updateTeamLink(...args));
220
+ }
221
+
222
+ /**
223
+ * Delete a team link
224
+ */
225
+ async deleteTeamLink(...args) {
226
+ return this.measurePerformance('deleteTeamLink', () => this._legionClient.deleteTeamLink(...args));
227
+ }
228
+
229
+ /**
230
+ * Reorder a team link
231
+ */
232
+ async reorderTeamLink(...args) {
233
+ return this.measurePerformance('reorderTeamLink', () => this._legionClient.reorderTeamLink(...args));
234
+ }
235
+
236
+ /**
237
+ * Get org's eligibility for managed teams
238
+ */
239
+ async getOrgEligibilityForManagedTeams() {
240
+ return this.measurePerformance('getOrgEligibilityForManagedTeams', () => this._legionClient.getOrgEligibilityForManagedTeams());
241
+ }
242
+
243
+ /**
244
+ * @deprecated Invitation status no longer exists
245
+ * Accept a team invitation
246
+ */
247
+ async acceptTeamInvitation(...args) {
248
+ return this.measurePerformance('acceptTeamInvitation', () => this._legionClient.acceptTeamInvitation(...args));
249
+ }
250
+
251
+ /**
252
+ * @deprecated Invitation status no longer exists
253
+ * Decline a team invitation
254
+ */
255
+ async declineTeamInvitation(...args) {
256
+ return this.measurePerformance('declineTeamInvitation', () => this._legionClient.declineTeamInvitation(...args));
257
+ }
258
+
259
+ /**
260
+ * Add current user to a team
261
+ */
262
+ async selfJoinTeam(...args) {
263
+ return this.measurePerformance('selfJoinTeam', () => this._legionClient.selfJoinTeam(...args));
264
+ }
265
+
266
+ /**
267
+ * Cancel a join request to a private team
268
+ */
269
+ async cancelJoinRequest(teamId) {
270
+ return this.measurePerformance('cancelJoinRequest', () => this._legionClient.cancelJoinRequest(teamId));
271
+ }
272
+
273
+ /**
274
+ * Accept a join request to a private team
275
+ */
276
+ async acceptJoinRequest(...args) {
277
+ return this.measurePerformance('acceptJoinRequest', () => this._legionClient.acceptJoinRequest(...args));
278
+ }
279
+
280
+ /**
281
+ * Decline a join request to a private team
282
+ */
283
+ async declineJoinRequest(...args) {
284
+ return this.measurePerformance('declineJoinRequest', () => this._legionClient.declineJoinRequest(...args));
285
+ }
286
+
287
+ /**
288
+ * @deprecated use removeTeamMemberships instead
289
+ */
290
+ async deleteTeamMembership(...args) {
291
+ return this.measurePerformance('deleteTeamMembership', () => this._legionClient.deleteTeamMembership(...args));
292
+ }
293
+
294
+ /**
295
+ * @deprecated INVITED status has been deprecated
296
+ */
297
+ async revokeTeamInvite(...args) {
298
+ return this.measurePerformance('revokeTeamInvite', () => this._legionClient.revokeTeamInvite(...args));
299
+ }
300
+
301
+ /**
302
+ * Delete a team
303
+ */
304
+ async deleteTeam(teamId) {
305
+ return this.measurePerformance('deleteTeam', () => this._legionClient.deleteTeam(teamId));
306
+ }
307
+
308
+ /**
309
+ * @private
310
+ * @deprecated should be other means to solve this issue
311
+ */
312
+ async isSingleFullMemberTeam(teamId) {
313
+ return this._legionClient.isSingleFullMemberTeam(teamId);
314
+ }
315
+
316
+ /**
317
+ * Create a team
318
+ */
319
+ async createTeam(...args) {
320
+ return this.measurePerformance('createTeam', () => this._legionClient.createTeam(...args));
321
+ }
322
+
323
+ /**
324
+ * Create a external team
325
+ * @param {string} groupDescription - The description of the group, which will be used as the team description. The group name will be fetched from the identity service, so it does not need to be provided.
326
+ * @param {ExternalReference} externalReference
327
+ */
328
+ async createExternalTeam(...args) {
329
+ return this.measurePerformance('createExternalTeam', () => this._legionClient.createExternalTeam(...args));
330
+ }
331
+
332
+ /**
333
+ * Get linked teams for a groups in bulk
334
+ * @param {string} groupIds - The group ids to fetch linked teams for
335
+ */
336
+ async getLinkedTeamsBulk(...args) {
337
+ return this.measurePerformance('getLinkedTeamsBulk', () => this._legionClient.getLinkedTeamsBulk(...args));
338
+ }
339
+
340
+ /**
341
+ * Get Org scope
342
+ */
343
+ async getOrgScope(...args) {
344
+ return this.measurePerformance('getOrgScope', () => this._legionClient.getOrgScope(...args));
345
+ }
346
+
347
+ /**
348
+ * Restore soft-deleted team and sync to group
349
+ */
350
+ async restoreTeamToSyncedGroup(...args) {
351
+ return this.measurePerformance('restoreTeamToSyncedGroup', () => this._legionClient.restoreTeamToSyncedGroup(...args));
352
+ }
353
+
354
+ /**
355
+ * Get the difference between a team and a group
356
+ * @param teamId
357
+ * @param {ExternalReference} externalReference
358
+ * @returns {Promise<TeamAndGroupDifference>}
359
+ */
360
+ async getTeamAndGroupDiff(...args) {
361
+ return this.measurePerformance('getTeamAndGroupDiff', () => this._legionClient.getTeamAndGroupDiff(...args));
362
+ }
363
+
364
+ /**
365
+ * Link an existing team to a group
366
+ * @param teamId
367
+ * @param {ExternalReference} externalReference
368
+ */
369
+ async linkExistingTeamToGroup(...args) {
370
+ return this.measurePerformance('linkExistingTeamToGroup', () => this._legionClient.linkExistingTeamToGroup(...args));
371
+ }
372
+
373
+ /**
374
+ *
375
+ * @param teamId
376
+ * @returns {Promise<LinkedTeamsProfileDetails>}
377
+ */
378
+ async getTeamProfileDetailsByTeamId(...args) {
379
+ return this.measurePerformance('getTeamProfileDetails', () => this._legionClient.getTeamProfileDetails(...args));
380
+ }
381
+
382
+ /**
383
+ *
384
+ * @param teamId
385
+ * @returns {Promise<SoftDeletedTeam>}
386
+ */
387
+ async getSoftDeletdTeamById(teamId) {
388
+ return this.measurePerformance('getSoftDeletedTeamById', () => this._legionClient.getSoftDeletedTeamById(teamId));
389
+ }
390
+
391
+ /**
392
+ * Shoud only be used within Teams (P&T) packages
393
+ * @param userId
394
+ * @returns {Promise<SoftDeletedTeam>}
395
+ */
396
+ async getUserInSiteUserBase(userId) {
397
+ return this.measurePerformance('getUserInSiteUserBase', () => this._legionClient.getUserInSiteUserBase(userId));
398
+ }
399
+ trimTeamARI(teamId = '') {
400
+ return this._legionClient.trimTeamARI(teamId);
401
+ }
402
+
403
+ /**
404
+ * Get user profile with mutability constraints
405
+ */
406
+ async getProfileWithMutability(...args) {
407
+ return this.measurePerformance('getProfileWithMutability', () => this._mutabilityClient.getProfileWithMutability(...args));
408
+ }
409
+
410
+ /**
411
+ * Is the current user a site admin
412
+ */
413
+ getIsSiteAdmin(...args) {
414
+ return this.measurePerformance('getIsSiteAdmin', () => this._permsClient.getIsSiteAdmin(...args));
415
+ }
416
+
417
+ /**
418
+ * Add users to a team
419
+ */
420
+ addUsersToTeam(...args) {
421
+ return this.measurePerformance('addUsersToTeam', () => this._publicApiClient.addUsersToTeam(...args));
422
+ }
423
+
424
+ /**
425
+ * Remove users from a team
426
+ */
427
+ removeTeamMemberships(...args) {
428
+ return this.measurePerformance('removeTeamMemberships', () => this._publicApiClient.removeTeamMemberships(...args));
429
+ }
430
+
431
+ /**
432
+ * Restore a deleted team
433
+ */
434
+ restoreTeam(...args) {
435
+ return this.measurePerformance('restoreTeam', () => this._publicApiClient.restoreTeam(...args));
436
+ }
437
+ getRecommendedProducts(...args) {
438
+ return this.measurePerformance('getRecommendedProducts', () => this._invitationsClient.getProductRecommendations(...args));
439
+ }
440
+ joinOrRequestDefaultAccessToProductsBulk(...args) {
441
+ return this.measurePerformance('joinOrRequestDefaultAccessToProductsBulk', () => this._invitationsClient.joinOrRequestDefaultAccessToProductsBulk(...args));
442
+ }
443
+
444
+ /**
445
+ * Get token to upload media for a team
446
+ */
447
+ async getWriteTeamMediaToken() {
448
+ return this.measurePerformance('getWriteTeamMediaToken', () => this._legionClient.getWriteMediaToken());
449
+ }
450
+
451
+ /**
452
+ * Get token to read media for a user
453
+ */
454
+ async getReadMediaToken(...args) {
455
+ return this.measurePerformance('getReadMediaToken', () => this._userPreferencesClient.getReadMediaToken(...args));
456
+ }
457
+
458
+ /**
459
+ * Get token to upload media for a user
460
+ */
461
+ async getWriteUserMediaToken() {
462
+ return this.measurePerformance('getWriteUserMediaToken', () => this._userPreferencesClient.getWriteMediaToken());
463
+ }
464
+
465
+ /**
466
+ * Update header image for a user
467
+ */
468
+ async updateUserHeaderImage(headerImageId) {
469
+ return this.measurePerformance('updateUserHeaderImage', () => this._userPreferencesClient.updateUserHeaderImage(headerImageId));
470
+ }
471
+
472
+ /**
473
+ * Fetch user containers from collboration graph
474
+ */
475
+ async getUserContainers(...args) {
476
+ return this.measurePerformance('getUserContainers', () => this._collaborationGraphClient.getUserContainers(...args));
477
+ }
478
+
479
+ /**
480
+ * Fetch mutatability of external managed user fields
481
+ */
482
+ async getUserManageConfig(...args) {
483
+ return this.measurePerformance('getUserManageConfig', () => this._identityClient.getUserManageConfig(...args));
484
+ }
485
+
486
+ /**
487
+ * Fetch user avatar uploaded status
488
+ */
489
+ async getMyAvatarUploadedStatus(...args) {
490
+ return this.measurePerformance('getMyAvatarUploadedStatus', () => this._identityClient.getMyAvatarUploadedStatus(...args));
491
+ }
492
+
493
+ /**
494
+ * Delete user avatar
495
+ */
496
+ async deleteAvatar(...args) {
497
+ return this.measurePerformance('deleteUserAvatar', () => this._identityClient.deleteAvatar(...args));
498
+ }
499
+ async fetchUserAvatarInfo(...args) {
500
+ return this.measurePerformance('fetchUserAvatarInfo', () => this._identityClient.fetchUserAvatarInfo(...args));
501
+ }
502
+
503
+ /**
504
+ * Fetch Team link icons
505
+ */
506
+ async getTeamLinkIcons(...args) {
507
+ return this.measurePerformance('getTeamLinkIcons', () => this._objectResolverClient.getTeamLinkIcons(...args));
508
+ }
509
+
510
+ /**
511
+ * Fetch team in slack details
512
+ */
513
+ async getTeamInSlack(...args) {
514
+ return this.measurePerformance('getTeamInSlack', () => this._teamsInSlackClient.getTeamInSlack(...args));
515
+ }
516
+
517
+ /**
518
+ * Delete team in slack
519
+ */
520
+ async disconnectTeamInSlack(...args) {
521
+ return this.measurePerformance('disconnectTeamInSlack', () => this._teamsInSlackClient.disconnectTeamInSlack(...args));
522
+ }
523
+
524
+ /**
525
+ * Update team in slack
526
+ */
527
+ async updateTeamInSlack(...args) {
528
+ return this.measurePerformance('updateTeamInSlack', () => this._teamsInSlackClient.updateTeamInSlack(...args));
529
+ }
530
+
531
+ /**
532
+ * Update user details
533
+ */
534
+ async updateUser(...args) {
535
+ return this.measurePerformance('updateUser', () => this._identityClient.updateUser(...args));
536
+ }
537
+ async updateUserAvatar(...args) {
538
+ return this.measurePerformance('updateUserAvatar', () => this._identityClient.updateUserAvatar(...args));
539
+ }
540
+ }
541
+ export const teamsClient = new TeamsClient();
@@ -0,0 +1,49 @@
1
+ import { DefaultError } from '../../common/utils/error';
2
+ import { DEFAULT_CONFIG } from '../constants';
3
+ import { RestClient } from '../rest-client';
4
+ const defaultConfig = {
5
+ serviceUrl: `${DEFAULT_CONFIG.stargateRoot}/users/manage`
6
+ };
7
+ const NOT_EDITABLE = 'not_editable';
8
+ const NOT_EDITABLE_FIELD = 'field';
9
+ const NOT_EDITABLE_REASON = 'reason';
10
+ export class MutabilityClient extends RestClient {
11
+ constructor(config = {}) {
12
+ super({
13
+ ...defaultConfig,
14
+ ...config
15
+ });
16
+ }
17
+ async getProfileWithMutability(userId) {
18
+ return this.getResource(`/${userId}/profile`).then(resp => {
19
+ return mapToMutabilityConstraints(resp);
20
+ });
21
+ }
22
+ }
23
+ function mapToMutabilityConstraints(json) {
24
+ let constraints = [];
25
+ if (json[NOT_EDITABLE] != null) {
26
+ for (const value of json[NOT_EDITABLE]) {
27
+ constraints = constraints.concat({
28
+ field: value[NOT_EDITABLE_FIELD],
29
+ reason: determineReason(value[NOT_EDITABLE_REASON])
30
+ });
31
+ }
32
+ }
33
+ return constraints;
34
+ }
35
+ function determineReason(value) {
36
+ switch (value) {
37
+ case 'managed':
38
+ case 'ext.dir.scim':
39
+ case 'ext.dir.google':
40
+ return value;
41
+ default:
42
+ throw new DefaultError({
43
+ message: `Unknown mutability constraint reason: ${value}`
44
+ });
45
+ }
46
+ }
47
+
48
+ // eslint-disable-next-line import/no-anonymous-default-export
49
+ export default new MutabilityClient();
@@ -0,0 +1,21 @@
1
+ import { DEFAULT_CONFIG } from '../constants';
2
+ import { RestClient } from '../rest-client';
3
+ import { transformIconData } from './utils';
4
+ const defaultConfig = {
5
+ serviceUrl: `${DEFAULT_CONFIG.stargateRoot}`
6
+ };
7
+ export class ObjectResolverClient extends RestClient {
8
+ constructor(config = {}) {
9
+ super({
10
+ ...defaultConfig,
11
+ ...config
12
+ });
13
+ }
14
+ async getTeamLinkIcons(teamLinkUrls) {
15
+ const requestBody = teamLinkUrls.map(url => ({
16
+ resourceUrl: url
17
+ }));
18
+ return this.postResourceRaw(`/object-resolver/resolve/batch`, JSON.stringify(requestBody)).then(transformIconData);
19
+ }
20
+ }
21
+ export default new ObjectResolverClient();
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This type matches the props for the TeamLinkIcon component in embeddable-directory
3
+ */
4
+
5
+ /**
6
+ * These names match the Provider Name in the JSON-LD response from respective resolvers
7
+ */
8
+ export let ProviderNames = /*#__PURE__*/function (ProviderNames) {
9
+ ProviderNames["CONFLUENCE"] = "Confluence";
10
+ ProviderNames["JIRA"] = "Jira";
11
+ return ProviderNames;
12
+ }({});
@@ -0,0 +1,53 @@
1
+ import { ProviderNames } from './types';
2
+
3
+ /**
4
+ * Formats data into LinkIconData with appropriate Jira/Confluence favicon urls.
5
+ * Undefined icons remain undefined.
6
+ * Exported for testing purposes.
7
+ *
8
+ * Confluence favicon extension: /wiki/favicon.ico
9
+ * Jira favicon extension: /favicon.ico
10
+ *
11
+ * @param jsonLd - raw JSON-LD data for an individual link
12
+ */
13
+ export const formatLinkIconData = jsonLd => {
14
+ const {
15
+ url,
16
+ generator: {
17
+ name,
18
+ icon
19
+ }
20
+ } = jsonLd;
21
+ switch (name) {
22
+ case ProviderNames.CONFLUENCE:
23
+ return {
24
+ linkUrl: url,
25
+ iconUrl: getConfluenceFavicon(url),
26
+ productName: name
27
+ };
28
+ case ProviderNames.JIRA:
29
+ return {
30
+ linkUrl: url,
31
+ iconUrl: getJiraFavicon(url),
32
+ productName: name
33
+ };
34
+ default:
35
+ return {
36
+ linkUrl: url,
37
+ iconUrl: typeof icon === 'object' ? icon['url'] : icon,
38
+ productName: name
39
+ };
40
+ }
41
+ };
42
+ const isIconItemSuccess = response => {
43
+ return response.status === 200;
44
+ };
45
+
46
+ /**
47
+ * Converts batched list of json-ld responses into list of formatted LinkIconData { url, icon_url }
48
+ *
49
+ * @param batchResp - list of json-ld responses { body, status }
50
+ */
51
+ export const transformIconData = batchResp => batchResp.filter(isIconItemSuccess).map(resp => resp.body.data).map(formatLinkIconData).filter(linkIconData => linkIconData.iconUrl !== undefined);
52
+ const getConfluenceFavicon = url => `https://${new URL(url).hostname}/wiki/favicon.ico`;
53
+ const getJiraFavicon = url => `https://${new URL(url).hostname}/favicon.ico`;
@@ -0,0 +1,25 @@
1
+ import { DEFAULT_CONFIG } from '../constants';
2
+ import { RestClient } from '../rest-client';
3
+ export class PermsClient extends RestClient {
4
+ getIsSiteAdmin(
5
+ /**
6
+ * @private
7
+ * @deprecated don't need to pass param, value is taken from `this.getCloudId()` instead
8
+ */
9
+ cloudId) {
10
+ return this.postResource('/permitted', {
11
+ permissionId: 'manage',
12
+ resourceId: `ari:cloud:platform::site/${this.getCloudId(cloudId)}`
13
+ }).then(response => response.permitted);
14
+ }
15
+ }
16
+
17
+ /**
18
+ * REST Client to make calls to resources on the activity service.
19
+ *
20
+ * @type {RestClient}
21
+ */
22
+ // eslint-disable-next-line import/no-anonymous-default-export
23
+ export default new PermsClient({
24
+ serviceUrl: DEFAULT_CONFIG.permsServiceUrl
25
+ });