@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
package/LICENSE.md ADDED
@@ -0,0 +1,11 @@
1
+ Copyright 2023 Atlassian Pty Ltd
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
4
+ compliance with the License. You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software distributed under the License is
9
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
10
+ implied. See the License for the specific language governing permissions and limitations under the
11
+ License.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # TeamsClient
2
+
3
+ A client to retrieve team related data
4
+
5
+ **Note:** This component is designed for internal Atlassian development. External contributors will
6
+ be able to use this component but will not be able to submit issues.
7
+
8
+ # Usage
9
+ `import { teamsClient } from '@atlaskit/teams-client';`
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "@atlaskit/teams-client/client",
3
+ "main": "../dist/cjs/services/index.js",
4
+ "module": "../dist/esm/services/index.js",
5
+ "module:es2019": "../dist/es2019/services/index.js",
6
+ "sideEffects": false,
7
+ "types": "../dist/types/services/index.d.ts",
8
+ "typesVersions": {
9
+ ">=4.5 <5.4": {
10
+ "*": [
11
+ "../dist/types-ts4.5/services/index.d.ts"
12
+ ]
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.USER_ARI_PREFIX = exports.TEAM_ARI_PREFIX = void 0;
7
+ var USER_ARI_PREFIX = exports.USER_ARI_PREFIX = 'ari:cloud:identity::user/';
8
+ var TEAM_ARI_PREFIX = exports.TEAM_ARI_PREFIX = 'ari:cloud:identity::team/';
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toUserId = exports.toUserARI = exports.toTeamId = exports.toTeamARI = exports.isUserARI = exports.isTeamARI = void 0;
7
+ var _types = require("../types");
8
+ var isUserARI = exports.isUserARI = function isUserARI(ari) {
9
+ return ari.startsWith(_types.USER_ARI_PREFIX);
10
+ };
11
+ var toUserId = exports.toUserId = function toUserId(ari) {
12
+ if (isUserARI(ari)) {
13
+ return ari.replace(_types.USER_ARI_PREFIX, '');
14
+ }
15
+ throw new Error('Invalid UserARI');
16
+ };
17
+ var toUserARI = exports.toUserARI = function toUserARI(userId) {
18
+ return isUserARI(userId) ? userId : "".concat(_types.USER_ARI_PREFIX).concat(userId);
19
+ };
20
+ var isTeamARI = exports.isTeamARI = function isTeamARI(ari) {
21
+ return ari.startsWith(_types.TEAM_ARI_PREFIX);
22
+ };
23
+ var toTeamId = exports.toTeamId = function toTeamId(ari) {
24
+ if (isTeamARI(ari)) {
25
+ return ari.replace(_types.TEAM_ARI_PREFIX, '');
26
+ }
27
+ throw new Error('Invalid TeamARI');
28
+ };
29
+ var toTeamARI = exports.toTeamARI = function toTeamARI(teamId) {
30
+ return isTeamARI(teamId) ? teamId : "".concat(_types.TEAM_ARI_PREFIX).concat(teamId);
31
+ };
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TeamErrorType = exports.StatusCode = exports.SLOIgnoreHttpError = exports.SLOIgnoreError = exports.HttpError = exports.GraphQLError = exports.ErrorCategory = exports.DefaultError = void 0;
8
+ exports.doesErrorContainStatus = doesErrorContainStatus;
9
+ exports.isAuthError = isAuthError;
10
+ exports.isErrorStatusCode = isErrorStatusCode;
11
+ exports.isNetworkError = isNetworkError;
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
18
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
19
+ var _GraphQLError;
20
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
21
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
22
+ var ErrorCategory = exports.ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
23
+ ErrorCategory["NotFound"] = "NotFound";
24
+ ErrorCategory["NotPermitted"] = "NotPermitted";
25
+ ErrorCategory["MalformedInput"] = "MalformedInput";
26
+ ErrorCategory["Internal"] = "Internal";
27
+ return ErrorCategory;
28
+ }({});
29
+ var StatusCode = exports.StatusCode = /*#__PURE__*/function (StatusCode) {
30
+ StatusCode[StatusCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
31
+ StatusCode[StatusCode["FORBIDDEN"] = 403] = "FORBIDDEN";
32
+ StatusCode[StatusCode["TIMEOUT"] = 408] = "TIMEOUT";
33
+ StatusCode[StatusCode["GONE"] = 410] = "GONE";
34
+ StatusCode[StatusCode["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
35
+ return StatusCode;
36
+ }({});
37
+ function isAuthError(error) {
38
+ return isErrorStatusCode(StatusCode.UNAUTHORIZED, error) || isErrorStatusCode(StatusCode.FORBIDDEN, error);
39
+ }
40
+ function isErrorStatusCode(statusCode, error) {
41
+ var _error$message;
42
+ if (!error) {
43
+ return false;
44
+ }
45
+ if (error['status'] === statusCode ||
46
+ // error can be `ProperNetworkError` from `packages/graphql-client/src/links/error.ts`
47
+ error['statusCode'] === statusCode) {
48
+ return true;
49
+ }
50
+ var reg = new RegExp("status (code)?.*(".concat(statusCode, ")"));
51
+ return !!(error !== null && error !== void 0 && (_error$message = error.message) !== null && _error$message !== void 0 && _error$message.match(reg));
52
+ }
53
+ function doesErrorContainStatus(statusCode, message) {
54
+ var reg = new RegExp("status .*(".concat(statusCode, ")"));
55
+ return reg.test(message);
56
+ }
57
+ var TeamErrorType = exports.TeamErrorType = /*#__PURE__*/function (TeamErrorType) {
58
+ TeamErrorType["TEAM_NOT_ACTIVE"] = "Team must be active";
59
+ return TeamErrorType;
60
+ }({});
61
+ // Extending new custom Error types with `Object.setPrototypeOf`
62
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
63
+ var CommonError = /*#__PURE__*/function (_Error) {
64
+ function CommonError(message) {
65
+ var _this;
66
+ (0, _classCallCheck2.default)(this, CommonError);
67
+ _this = _callSuper(this, CommonError, [message]);
68
+ _this.name = _this.constructor.name;
69
+ _this.message = message || 'UnknownError';
70
+ _this.stack = new Error(message).stack || '';
71
+ return _this;
72
+ }
73
+ (0, _inherits2.default)(CommonError, _Error);
74
+ return (0, _createClass2.default)(CommonError);
75
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
76
+ var DefaultError = exports.DefaultError = /*#__PURE__*/function (_CommonError) {
77
+ function DefaultError(_ref) {
78
+ var _this2;
79
+ var message = _ref.message;
80
+ (0, _classCallCheck2.default)(this, DefaultError);
81
+ _this2 = _callSuper(this, DefaultError, [message || 'UnknownError']);
82
+ Object.setPrototypeOf(_this2, DefaultError.prototype);
83
+ return _this2;
84
+ }
85
+ (0, _inherits2.default)(DefaultError, _CommonError);
86
+ return (0, _createClass2.default)(DefaultError);
87
+ }(CommonError);
88
+ /**
89
+ * These errors will not fail UFO experiences
90
+ */
91
+ var SLOIgnoreError = exports.SLOIgnoreError = /*#__PURE__*/function (_CommonError2) {
92
+ function SLOIgnoreError(_ref2) {
93
+ var _this3;
94
+ var message = _ref2.message;
95
+ (0, _classCallCheck2.default)(this, SLOIgnoreError);
96
+ _this3 = _callSuper(this, SLOIgnoreError, ["SentryIgnore: ".concat(message || 'UnknownError')]);
97
+ Object.setPrototypeOf(_this3, SLOIgnoreError.prototype);
98
+ return _this3;
99
+ }
100
+ (0, _inherits2.default)(SLOIgnoreError, _CommonError2);
101
+ return (0, _createClass2.default)(SLOIgnoreError);
102
+ }(CommonError);
103
+ // Http Errors
104
+ var HttpError = exports.HttpError = /*#__PURE__*/function (_CommonError3) {
105
+ function HttpError(_ref3) {
106
+ var _this4;
107
+ var message = _ref3.message,
108
+ status = _ref3.status,
109
+ traceId = _ref3.traceId,
110
+ path = _ref3.path;
111
+ (0, _classCallCheck2.default)(this, HttpError);
112
+ _this4 = _callSuper(this, HttpError, [message]);
113
+ Object.setPrototypeOf(_this4, HttpError.prototype);
114
+ _this4.status = status;
115
+ _this4.traceId = traceId;
116
+ _this4.path = path;
117
+ return _this4;
118
+ }
119
+ (0, _inherits2.default)(HttpError, _CommonError3);
120
+ return (0, _createClass2.default)(HttpError);
121
+ }(CommonError);
122
+ /**
123
+ * These errors will not fail UFO experiences
124
+ */
125
+ var SLOIgnoreHttpError = exports.SLOIgnoreHttpError = /*#__PURE__*/function (_HttpError) {
126
+ function SLOIgnoreHttpError(props) {
127
+ var _this5;
128
+ (0, _classCallCheck2.default)(this, SLOIgnoreHttpError);
129
+ _this5 = _callSuper(this, SLOIgnoreHttpError, [props]);
130
+ Object.setPrototypeOf(_this5, SLOIgnoreHttpError.prototype);
131
+ return _this5;
132
+ }
133
+ (0, _inherits2.default)(SLOIgnoreHttpError, _HttpError);
134
+ return (0, _createClass2.default)(SLOIgnoreHttpError);
135
+ }(HttpError); // Graphql Errors
136
+ var GraphQLError = exports.GraphQLError = /*#__PURE__*/function (_CommonError4) {
137
+ // tslint:disable-line no-any
138
+
139
+ function GraphQLError(_ref4) {
140
+ var _this6;
141
+ var message = _ref4.message,
142
+ _ref4$category = _ref4.category,
143
+ category = _ref4$category === void 0 ? 'default' : _ref4$category,
144
+ fields = _ref4.fields;
145
+ (0, _classCallCheck2.default)(this, GraphQLError);
146
+ _this6 = _callSuper(this, GraphQLError, [message]);
147
+ Object.setPrototypeOf(_this6, GraphQLError.prototype);
148
+ _this6.category = category;
149
+ if (fields) {
150
+ _this6.fields = fields;
151
+ }
152
+ return _this6;
153
+ }
154
+ (0, _inherits2.default)(GraphQLError, _CommonError4);
155
+ return (0, _createClass2.default)(GraphQLError);
156
+ }(CommonError);
157
+ _GraphQLError = GraphQLError;
158
+ (0, _defineProperty2.default)(GraphQLError, "from", function (rawErrors) {
159
+ var firstError = rawErrors[0];
160
+ var errorData = {
161
+ category: firstError.category,
162
+ message: firstError.message
163
+ };
164
+ if (firstError.fields) {
165
+ errorData.fields = firstError.fields.reduce(function (obj, item) {
166
+ obj[item.field] = item.message;
167
+ return obj;
168
+ }, {});
169
+ }
170
+ return new _GraphQLError(errorData);
171
+ });
172
+ function isNetworkError(error) {
173
+ return error && !!error.message && (
174
+ // Firefox
175
+ error.message.includes('NetworkError') ||
176
+ // Chrome
177
+ error.message.startsWith('Failed to fetch') || error.message.includes('GraphQL error: Failed to fetch') ||
178
+ // cancel by users or unknown reason
179
+ error.message.includes('GraphQL error: The operation was aborted') || error.message.includes('GraphQL error: cancelled') || error.message.includes('Abgebrochen') || error.message.includes('отменено') || error.message.includes('Сетевое соединение потеряно.') || error.message.includes('anulowane') || error.message.includes('annulé') || error.message.includes('已取消') || error.message.includes('cancelado') || error.message.includes('キャンセルしました') || error.message.includes('cancelled') || error.message.includes('Network error') ||
180
+ // GraphQL-wrapping network error
181
+ !!(error['graphQLErrors'] && error['networkError']));
182
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.filterNull = filterNull;
7
+ function filterNull(x) {
8
+ return !!x;
9
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fetchWithExponentialBackoff = exports.EXPONENTIAL_BACKOFF_RETRY_POLICY = void 0;
8
+ exports.is5xx = is5xx;
9
+ exports.isFetchResponse = isFetchResponse;
10
+ exports.withExponentialBackoff = withExponentialBackoff;
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+ var EXPONENTIAL_BACKOFF_RETRY_POLICY = exports.EXPONENTIAL_BACKOFF_RETRY_POLICY = {
14
+ INITIAL_DELAY: 200,
15
+ MAX_RETRIES: 5,
16
+ JITTER: true
17
+ };
18
+
19
+ /**
20
+ * Checks whether a status code is a 5xx HTTP code.
21
+ * @param {number} status HTTP status code
22
+ */
23
+ function is5xx(status) {
24
+ return 500 <= status && status <= 599;
25
+ }
26
+ function isFetchResponse(data) {
27
+ if (!data || !data.hasOwnProperty('response')) {
28
+ return false;
29
+ }
30
+ return data.response instanceof Response;
31
+ }
32
+
33
+ // tslint:disable-next-line no-any
34
+
35
+ // tslint:disable-next-line no-any
36
+ var defaultRetryIfCallback = function defaultRetryIfCallback(a) {
37
+ return !a;
38
+ };
39
+ var defaultOptions = {
40
+ initial: 200,
41
+ jitter: false,
42
+ max: 5,
43
+ retryIf: defaultRetryIfCallback
44
+ };
45
+ /**
46
+ * Transparently wrap a function so that it is retried until it succeeds or reaches a max retry limit.
47
+ * The returned function has the same signature as the wrapped function.
48
+ *
49
+ * Modified from https://jsfiddle.net/pajtai/pLka0ow9/
50
+ */
51
+ function withExponentialBackoff(toTry) {
52
+ var hofOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
53
+ var initial = hofOptions.initial,
54
+ jitter = hofOptions.jitter,
55
+ max = hofOptions.max,
56
+ retryIf = hofOptions.retryIf;
57
+
58
+ // Initialize max retry decrementing counter (range of max...0)
59
+ var attemptsRemaining = max;
60
+
61
+ // Initialize delay. This will exponentially increase each retry (delay = intial * 2^n)
62
+ var delay = initial;
63
+
64
+ /**
65
+ * This function calls itself recursively until `retryIf` evaluates false or the retry limit is reached.
66
+ * The functioned-to-be-retried is called on each recursion.
67
+ */
68
+ return /*#__PURE__*/function () {
69
+ var _tryWithExponentialBackoff = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
70
+ var result,
71
+ _args = arguments;
72
+ return _regenerator.default.wrap(function _callee$(_context) {
73
+ while (1) switch (_context.prev = _context.next) {
74
+ case 0:
75
+ _context.next = 2;
76
+ return toTry.apply(void 0, _args);
77
+ case 2:
78
+ result = _context.sent;
79
+ --attemptsRemaining;
80
+
81
+ // If tried function was unsuccessful and there are still retries remaining, retry!
82
+ if (!(retryIf && retryIf(result) && attemptsRemaining > 0)) {
83
+ _context.next = 9;
84
+ break;
85
+ }
86
+ _context.next = 7;
87
+ return new Promise(function (resolve) {
88
+ return setTimeout(resolve, jitter ? Math.random() * delay : delay);
89
+ });
90
+ case 7:
91
+ // Exponentially increase delay
92
+ delay *= 2;
93
+
94
+ // Initiate retry
95
+ return _context.abrupt("return", tryWithExponentialBackoff.apply(void 0, _args));
96
+ case 9:
97
+ return _context.abrupt("return", result);
98
+ case 10:
99
+ case "end":
100
+ return _context.stop();
101
+ }
102
+ }, _callee);
103
+ }));
104
+ function tryWithExponentialBackoff() {
105
+ return _tryWithExponentialBackoff.apply(this, arguments);
106
+ }
107
+ return tryWithExponentialBackoff;
108
+ }();
109
+ }
110
+ var fetchWithExponentialBackoff = exports.fetchWithExponentialBackoff = withExponentialBackoff(function (url, init) {
111
+ return fetch(url, init);
112
+ }, {
113
+ initial: EXPONENTIAL_BACKOFF_RETRY_POLICY.INITIAL_DELAY,
114
+ jitter: EXPONENTIAL_BACKOFF_RETRY_POLICY.JITTER,
115
+ max: EXPONENTIAL_BACKOFF_RETRY_POLICY.MAX_RETRIES,
116
+ retryIf: function retryIf(response) {
117
+ return is5xx(response.status);
118
+ }
119
+ });
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "isInvited", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _team.isInvited;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "isMember", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _team.isMember;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "isNonMember", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _team.isNonMember;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "isRequestingJoin", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _team.isRequestingJoin;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "sortMembersByType", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _sortTeams.sortMembersByType;
34
+ }
35
+ });
36
+ var _sortTeams = require("./sort-teams");
37
+ var _team = require("./team");
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.vanityActions = exports.openPermissions = exports.inviteOnlyPermissions = exports.getPermissionMap = exports.allPermissions = exports.SCIMSyncTeamPermissions = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ var allPermissions = exports.allPermissions = function allPermissions(defaultPermission, isMember) {
13
+ return {
14
+ ADD_MEMBER_TO_TEAM: defaultPermission,
15
+ JOIN_TEAM: defaultPermission,
16
+ REQUEST_TO_JOIN: defaultPermission,
17
+ CANCEL_JOIN_REQUEST: defaultPermission,
18
+ APPROVE_JOIN_REQUEST: defaultPermission,
19
+ REJECT_JOIN_REQUEST: defaultPermission,
20
+ REMOVE_MEMBER_FROM_TEAM: defaultPermission,
21
+ CANCEL_INVITE: defaultPermission,
22
+ LEAVE_TEAM: defaultPermission && isMember,
23
+ EDIT_DESCRIPTION: defaultPermission,
24
+ EDIT_TEAM_NAME: defaultPermission,
25
+ EDIT_PROFILE_HEADER: defaultPermission,
26
+ EDIT_TEAM_LINK: defaultPermission,
27
+ DELETE_TEAM: defaultPermission,
28
+ EDIT_TEAM_SETTINGS: defaultPermission,
29
+ EDIT_TEAM_MEMBERSHIP: defaultPermission,
30
+ REMOVE_AGENT_FROM_TEAM: defaultPermission,
31
+ ADD_AGENT_TO_TEAM: defaultPermission
32
+ };
33
+ };
34
+ var vanityActions = exports.vanityActions = ['EDIT_DESCRIPTION', 'EDIT_TEAM_NAME', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK'];
35
+ var openPermissions = exports.openPermissions = function openPermissions(permission) {
36
+ return {
37
+ JOIN_TEAM: permission === 'FULL_READ' || permission === 'FULL_WRITE',
38
+ REQUEST_TO_JOIN: false,
39
+ CANCEL_JOIN_REQUEST: false,
40
+ APPROVE_JOIN_REQUEST: false,
41
+ REJECT_JOIN_REQUEST: false
42
+ };
43
+ };
44
+ var inviteOnlyPermissions = exports.inviteOnlyPermissions = function inviteOnlyPermissions(permission) {
45
+ return {
46
+ REQUEST_TO_JOIN: permission === 'FULL_READ',
47
+ CANCEL_JOIN_REQUEST: permission === 'FULL_READ'
48
+ };
49
+ };
50
+ var SCIMSyncTeamPermissions = exports.SCIMSyncTeamPermissions = function SCIMSyncTeamPermissions(isMember, isOrgAdmin) {
51
+ return {
52
+ EDIT_DESCRIPTION: isMember || isOrgAdmin,
53
+ EDIT_TEAM_SETTINGS: isMember || isOrgAdmin,
54
+ EDIT_TEAM_LINK: isMember || isOrgAdmin,
55
+ EDIT_TEAM_NAME: (isMember || isOrgAdmin) && (0, _platformFeatureFlags.fg)('enable_edit_team_name_external_type_teams')
56
+ };
57
+ };
58
+ var getPermissionMap = exports.getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin) {
59
+ if (settings === 'OPEN') {
60
+ return _objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), openPermissions(permission));
61
+ }
62
+ if (settings === 'MEMBER_INVITE') {
63
+ return _objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), inviteOnlyPermissions(permission));
64
+ } else if (settings === 'EXTERNAL') {
65
+ return _objectSpread(_objectSpread({}, allPermissions(false, isMember)), SCIMSyncTeamPermissions(isMember, isOrgAdmin));
66
+ }
67
+ return allPermissions(false, false);
68
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hasPermission = hasPermission;
7
+ exports.hasPermissionForAction = hasPermissionForAction;
8
+ exports.userCan = userCan;
9
+ var _team = require("../team");
10
+ var _constants = require("./constants");
11
+ function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions) {
12
+ if (!isPeopleBrowseEnabled && !_constants.vanityActions.includes(action)) {
13
+ return false;
14
+ }
15
+ var isMemberOfTeam = (0, _team.isMember)(currentUserMembership);
16
+ var isOrgAdmin = Boolean(teamVisibilityPermissions === null || teamVisibilityPermissions === void 0 ? void 0 : teamVisibilityPermissions.canAdminTeams);
17
+ return userCan(action, {
18
+ membershipSettings: settings,
19
+ teamPermission: permission,
20
+ isMemberOfTeam: isMemberOfTeam,
21
+ isOrgAdmin: isOrgAdmin
22
+ });
23
+ }
24
+ /**
25
+ * Determines if a user has permission perform a given action on a team
26
+ */
27
+ function userCan(action, options) {
28
+ return (0, _constants.getPermissionMap)(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin)[action];
29
+ }
30
+
31
+ /**
32
+ * @deprecated Use `userCan` instead, it gives better visibility into the option mappings
33
+ */
34
+ function hasPermissionForAction(action, settings, permission, isMemberOfTeam) {
35
+ var isOrgAdmin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
36
+ return userCan(action, {
37
+ membershipSettings: settings,
38
+ teamPermission: permission,
39
+ isMemberOfTeam: isMemberOfTeam,
40
+ isOrgAdmin: isOrgAdmin
41
+ });
42
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AllTeamActions", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _types.AllTeamActions;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "hasPermission", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _hasPermission.hasPermission;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "hasPermissionForAction", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _hasPermission.hasPermissionForAction;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "userCan", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _hasPermission.userCan;
28
+ }
29
+ });
30
+ var _hasPermission = require("./has-permission");
31
+ var _types = require("./types");
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AllTeamActions = void 0;
7
+ var AllTeamActions = exports.AllTeamActions = ['ADD_MEMBER_TO_TEAM', 'JOIN_TEAM', 'REQUEST_TO_JOIN', 'CANCEL_JOIN_REQUEST', 'APPROVE_JOIN_REQUEST', 'REJECT_JOIN_REQUEST', 'REMOVE_MEMBER_FROM_TEAM', 'CANCEL_INVITE', 'LEAVE_TEAM', 'REMOVE_AGENT_FROM_TEAM', 'ADD_AGENT_TO_TEAM',
8
+ // Visual
9
+ 'EDIT_TEAM_NAME', 'EDIT_DESCRIPTION', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK', 'EDIT_TEAM_SETTINGS', 'EDIT_TEAM_MEMBERSHIP',
10
+ // Serious
11
+ 'DELETE_TEAM'];
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sortMembersByType = void 0;
7
+ var MemberType = /*#__PURE__*/function (MemberType) {
8
+ MemberType[MemberType["CURRENT_USER"] = 0] = "CURRENT_USER";
9
+ MemberType[MemberType["MEMBER"] = 1] = "MEMBER";
10
+ MemberType[MemberType["INVITED"] = 2] = "INVITED";
11
+ MemberType[MemberType["INACTIVE"] = 3] = "INACTIVE";
12
+ MemberType[MemberType["DELETED"] = 4] = "DELETED";
13
+ return MemberType;
14
+ }(MemberType || {});
15
+ var checkType = function checkType(member, currentAccountId) {
16
+ var _member$user, _member$user2;
17
+ if (member.membershipId.memberId === currentAccountId) {
18
+ return MemberType.CURRENT_USER;
19
+ } else if (member && member.state === 'INVITED') {
20
+ return MemberType.INVITED;
21
+ } else if (((_member$user = member.user) === null || _member$user === void 0 ? void 0 : _member$user.status) === 'inactive') {
22
+ return MemberType.INACTIVE;
23
+ } else if (((_member$user2 = member.user) === null || _member$user2 === void 0 ? void 0 : _member$user2.status) === 'closed') {
24
+ return MemberType.DELETED;
25
+ } else {
26
+ return MemberType.MEMBER;
27
+ }
28
+ };
29
+ var sortMembersByType = exports.sortMembersByType = function sortMembersByType(members, currentAccountId) {
30
+ var newMembers = members.map(function (member) {
31
+ return {
32
+ member: member,
33
+ type: checkType(member, currentAccountId)
34
+ };
35
+ });
36
+ newMembers.sort(function (_ref, _ref2) {
37
+ var memberA = _ref.member,
38
+ typeA = _ref.type;
39
+ var memberB = _ref2.member,
40
+ typeB = _ref2.type;
41
+ if (typeA === typeB) {
42
+ var _memberA$user, _memberB$user;
43
+ return ((_memberA$user = memberA.user) === null || _memberA$user === void 0 ? void 0 : _memberA$user.fullName.localeCompare(((_memberB$user = memberB.user) === null || _memberB$user === void 0 ? void 0 : _memberB$user.fullName) || '')) || 0;
44
+ } else {
45
+ return typeA - typeB;
46
+ }
47
+ });
48
+ return newMembers.map(function (_ref3) {
49
+ var member = _ref3.member;
50
+ return member;
51
+ });
52
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleResponse = handleResponse;
7
+ exports.statusCodeHandlersProvider = void 0;
8
+ /**
9
+ * Our REST clients are initialised when their module loads which makes it tricky for them to consume the `statusCodeHandlers` prop passed to App from the host application.
10
+ * This is a temporary measure to enable the clients to consume `statusCodeHandlers`.
11
+ * The long term solution is to replace our REST clients with Apollo client custom resolvers
12
+ * This will unify all remote data handling under the apollo-client module which is able to easily receive `statusCodeHandlers` as it is initialised within the React portion of our app.
13
+ */
14
+
15
+ var statusCodeHandlersProvider = exports.statusCodeHandlersProvider = {
16
+ handlers: {},
17
+ get: function get() {
18
+ return statusCodeHandlersProvider.handlers;
19
+ },
20
+ setHandlers: function setHandlers(handlers) {
21
+ statusCodeHandlersProvider.handlers = handlers;
22
+ }
23
+ };
24
+ function handleResponse(response) {
25
+ var status = response.status;
26
+ var handler = statusCodeHandlersProvider.get()[status];
27
+ if (typeof handler === 'function') {
28
+ handler(response);
29
+ }
30
+ }