@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,162 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { print } from 'graphql';
3
+ import isEqual from 'lodash/isEqual';
4
+ import { fetchWithExponentialBackoff } from '../../common/utils/http';
5
+ import { logException } from '../sentry';
6
+ import { UseQueryLightError } from './types';
7
+ const transformError = ({
8
+ error,
9
+ graphQLErrors
10
+ }) => {
11
+ const reducedGraphqlErrorMessage = graphQLErrors && graphQLErrors.reduce((acc, gqlError) => acc + (acc ? '\n' : '') + (gqlError.message ? gqlError.message : ''), '');
12
+ const reducedGraphqlErrorName = graphQLErrors && graphQLErrors.reduce((acc, gqlError) => acc + (acc ? '\n' : '') + (gqlError.name ? gqlError.name : ''), '');
13
+ return new UseQueryLightError(
14
+ // Network error would lead to no graphqlErrors as the query would not be fired. Hence at the front.
15
+ (error === null || error === void 0 ? void 0 : error.message) || reducedGraphqlErrorMessage || 'Unknown error', (error === null || error === void 0 ? void 0 : error.name) || reducedGraphqlErrorName,
16
+ // graphQLErrors in Apollo error is empty array when there is no error.
17
+ // So we follow the same to make sure error handlers are working as expected.
18
+ graphQLErrors || [], error);
19
+ };
20
+ export const useQueryLight = (query, options) => {
21
+ const [loading, setLoading] = useState(true);
22
+ const [error, setError] = useState(undefined);
23
+ const [data, setData] = useState(undefined);
24
+ const variablesRef = useRef(options.variables);
25
+
26
+ // Need this to deep compare variables to avoid infinite loops in useEffect
27
+ if (!isEqual(variablesRef.current, options.variables)) {
28
+ variablesRef.current = options.variables;
29
+ }
30
+
31
+ // Initial fetch, and refetch
32
+ const fetchData = useCallback(async () => {
33
+ try {
34
+ setLoading(true);
35
+ const response = await fetchWithExponentialBackoff(`${options.serviceUrl}?q=${options.operationName}`, {
36
+ method: 'POST',
37
+ headers: new Headers({
38
+ 'Content-Type': 'application/json',
39
+ ...options.customHeaders
40
+ }),
41
+ credentials: 'include',
42
+ body: JSON.stringify({
43
+ query: print(query),
44
+ variables: {
45
+ ...variablesRef.current
46
+ }
47
+ })
48
+ });
49
+ const responseData = await response.json();
50
+ if (response.ok) {
51
+ if (responseData.errors) {
52
+ setError(transformError({
53
+ graphQLErrors: responseData.errors
54
+ }));
55
+ }
56
+ setData(responseData.data);
57
+ setLoading(false);
58
+ } else {
59
+ throw new Error(`Generic fetch error within useQueryLight, status ${response.status}`);
60
+ }
61
+ } catch (error) {
62
+ if (error instanceof Error) {
63
+ setError(transformError({
64
+ error
65
+ }));
66
+ } else {
67
+ setError(transformError({
68
+ error: new Error('Unknown error')
69
+ }));
70
+ logException(error, `useQueryLight - ${options.operationName}`);
71
+ }
72
+ setData(undefined);
73
+ setLoading(false);
74
+ }
75
+ }, [query, options.serviceUrl, options.operationName, options.customHeaders]);
76
+
77
+ // Fetch more
78
+ const fetchMore = useCallback(async ({
79
+ variables,
80
+ handleDataMerge
81
+ }) => {
82
+ try {
83
+ // reset errors to catch new ones
84
+ setError(undefined);
85
+ const response = await fetchWithExponentialBackoff(`${options.serviceUrl}?q=${options.operationName}`, {
86
+ method: 'POST',
87
+ headers: new Headers({
88
+ 'Content-Type': 'application/json',
89
+ ...options.customHeaders
90
+ }),
91
+ credentials: 'include',
92
+ body: JSON.stringify({
93
+ query: print(query),
94
+ variables: {
95
+ ...variablesRef.current,
96
+ ...variables
97
+ }
98
+ })
99
+ });
100
+ const responseData = await response.json();
101
+ if (response.ok) {
102
+ if (responseData.errors) {
103
+ setError(transformError({
104
+ graphQLErrors: responseData.errors
105
+ }));
106
+ }
107
+ setData(prevData => handleDataMerge(prevData, responseData.data));
108
+ } else {
109
+ throw new Error(`Generic fetch error within useQueryLight, status ${response.status}`);
110
+ }
111
+ } catch (error) {
112
+ if (error instanceof Error) {
113
+ setError(transformError({
114
+ error
115
+ }));
116
+ } else {
117
+ setError(transformError({
118
+ error: new Error('Unknown error')
119
+ }));
120
+ logException(error, `useQueryLight fetchMore - ${options.operationName}`);
121
+ }
122
+ }
123
+ }, [query, options.serviceUrl, options.operationName, options.customHeaders]);
124
+ useEffect(() => {
125
+ if (!options.skip) {
126
+ fetchData();
127
+ } else {
128
+ setLoading(false);
129
+ }
130
+ }, [options.skip, variablesRef.current]); // eslint-disable-line react-hooks/exhaustive-deps
131
+
132
+ return {
133
+ loading,
134
+ error,
135
+ data,
136
+ refetch: fetchData,
137
+ fetchMore
138
+ };
139
+ };
140
+ export const useLazyQueryLight = (query, options) => {
141
+ const [fetchTriggered, setFetchTriggered] = useState(false);
142
+ const {
143
+ loading,
144
+ error,
145
+ data,
146
+ refetch,
147
+ fetchMore
148
+ } = useQueryLight(query, {
149
+ ...options,
150
+ skip: !fetchTriggered
151
+ });
152
+ const triggerFetch = useCallback(() => {
153
+ setFetchTriggered(true);
154
+ }, []);
155
+ return [triggerFetch, {
156
+ loading,
157
+ error,
158
+ data,
159
+ refetch,
160
+ fetchMore
161
+ }];
162
+ };
@@ -0,0 +1,27 @@
1
+ export let ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
2
+ ErrorCategory["NotFound"] = "NotFound";
3
+ ErrorCategory["NotPermitted"] = "NotPermitted";
4
+ ErrorCategory["MalformedInput"] = "MalformedInput";
5
+ ErrorCategory["Internal"] = "Internal";
6
+ return ErrorCategory;
7
+ }({});
8
+ export class ActualGraphQLError extends Error {
9
+ // AGG standard
10
+
11
+ constructor(message) {
12
+ super(message);
13
+ this.message = message;
14
+ }
15
+ }
16
+ export class UseQueryLightError extends Error {
17
+ constructor(message, name, graphQLErrors, networkError, extensions, extraInfo) {
18
+ super(message);
19
+ this.graphQLErrors = graphQLErrors;
20
+ this.networkError = networkError;
21
+ this.extensions = extensions;
22
+ this.extraInfo = extraInfo;
23
+ if (name) {
24
+ this.name = name;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1 @@
1
+ export { userInfoProvider, UserInfoProvider } from './main';
@@ -0,0 +1,44 @@
1
+ import { DEFAULT_CONFIG } from '../constants';
2
+
3
+ // Needs to be declared here to avoid blowing up this earlyInit bundle
4
+ class FetchError extends Error {
5
+ constructor(response) {
6
+ super(`Request failed with status ${response.status}`);
7
+ this.response = response;
8
+ this.name = this.constructor.name;
9
+ }
10
+ }
11
+ // export for testing
12
+ export class UserInfoProvider {
13
+ get(fetchOp = fetch) {
14
+ if (this.promise) {
15
+ return this.promise;
16
+ }
17
+ const getJson = url => fetchOp(url, {
18
+ method: 'GET',
19
+ mode: 'cors',
20
+ credentials: 'include',
21
+ headers: {
22
+ 'Content-Type': 'application/json'
23
+ }
24
+ }).then(response => {
25
+ if (!response.ok) {
26
+ throw new FetchError(response);
27
+ }
28
+ return response.json();
29
+ });
30
+ this.promise = getJson(`${DEFAULT_CONFIG.stargateRoot}/me`).then(me => {
31
+ var _me$extended_profile;
32
+ return {
33
+ userId: me.account_id,
34
+ locale: me.locale,
35
+ fullName: me.name,
36
+ avatarUrl: me.picture,
37
+ email: me.email,
38
+ title: (_me$extended_profile = me.extended_profile) === null || _me$extended_profile === void 0 ? void 0 : _me$extended_profile.job_title
39
+ };
40
+ });
41
+ return this.promise;
42
+ }
43
+ }
44
+ export const userInfoProvider = new UserInfoProvider();
@@ -0,0 +1,19 @@
1
+ import { DEFAULT_CONFIG } from '../constants';
2
+ import { RestClient } from '../rest-client';
3
+ const buildGetReadTokenURL = accountId => `/api/user-image/${accountId}/header-image/read`;
4
+ export class UserPreferencesClient extends RestClient {
5
+ async getReadMediaToken(accountId) {
6
+ return this.getResource(buildGetReadTokenURL(accountId)).then(response => response);
7
+ }
8
+ async getWriteMediaToken() {
9
+ return this.getResource('/api/user-image/header-image/write').then(response => response);
10
+ }
11
+ async updateUserHeaderImage(headerImageId) {
12
+ return await this.putResource('/api/user-image/self/header-image', {
13
+ headerImageId
14
+ });
15
+ }
16
+ }
17
+ export default new UserPreferencesClient({
18
+ serviceUrl: DEFAULT_CONFIG.stargateRoot
19
+ });
File without changes
@@ -0,0 +1,2 @@
1
+ export { isEditableUserField } from './user';
2
+ export { isResultWithPageInfo } from '../services/agg-client/types';
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Used to synchronise these field names to forms used to create/edit links e.g. TeamLinkForm
3
+ */
4
+ export const LINK_FIELDS = {
5
+ CONTENT_TITLE: 'contentTitle',
6
+ DESCRIPTION: 'description',
7
+ LINK_URI: 'linkUri'
8
+ };
9
+
10
+ /**
11
+ * Type for uncreated team links. These don't have link IDs
12
+ */
13
+
14
+ /**
15
+ * Type for order of team links.
16
+ */
File without changes
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @private
3
+ * @deprecated INVITED is deprecated
4
+ */
5
+
6
+ /**
7
+ * @param membershipId - The team IDZ
8
+ */
9
+
10
+ // Currently an agent is just a user, they may diverge if we need more agent specific fields
11
+
12
+ // The minimal user required to invited someone
13
+
14
+ export function isTeamMembershipWithUser(membership) {
15
+ return typeof membership.user === 'object';
16
+ }
File without changes
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ const EditableUserFieldList = ['title', 'department', 'companyName', 'location', 'phoneNumber', 'fullName', 'nickname', 'locale', 'email'];
2
+ export const isEditableUserField = key => {
3
+ return EditableUserFieldList.includes(key);
4
+ };
@@ -0,0 +1,2 @@
1
+ export var USER_ARI_PREFIX = 'ari:cloud:identity::user/';
2
+ export var TEAM_ARI_PREFIX = 'ari:cloud:identity::team/';
@@ -0,0 +1,25 @@
1
+ import { TEAM_ARI_PREFIX, USER_ARI_PREFIX } from '../types';
2
+ export var isUserARI = function isUserARI(ari) {
3
+ return ari.startsWith(USER_ARI_PREFIX);
4
+ };
5
+ export var toUserId = function toUserId(ari) {
6
+ if (isUserARI(ari)) {
7
+ return ari.replace(USER_ARI_PREFIX, '');
8
+ }
9
+ throw new Error('Invalid UserARI');
10
+ };
11
+ export var toUserARI = function toUserARI(userId) {
12
+ return isUserARI(userId) ? userId : "".concat(USER_ARI_PREFIX).concat(userId);
13
+ };
14
+ export var isTeamARI = function isTeamARI(ari) {
15
+ return ari.startsWith(TEAM_ARI_PREFIX);
16
+ };
17
+ export var toTeamId = function toTeamId(ari) {
18
+ if (isTeamARI(ari)) {
19
+ return ari.replace(TEAM_ARI_PREFIX, '');
20
+ }
21
+ throw new Error('Invalid TeamARI');
22
+ };
23
+ export var toTeamARI = function toTeamARI(teamId) {
24
+ return isTeamARI(teamId) ? teamId : "".concat(TEAM_ARI_PREFIX).concat(teamId);
25
+ };
@@ -0,0 +1,176 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+ import _inherits from "@babel/runtime/helpers/inherits";
7
+ import _wrapNativeSuper from "@babel/runtime/helpers/wrapNativeSuper";
8
+ var _GraphQLError;
9
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ export var ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
12
+ ErrorCategory["NotFound"] = "NotFound";
13
+ ErrorCategory["NotPermitted"] = "NotPermitted";
14
+ ErrorCategory["MalformedInput"] = "MalformedInput";
15
+ ErrorCategory["Internal"] = "Internal";
16
+ return ErrorCategory;
17
+ }({});
18
+ export var StatusCode = /*#__PURE__*/function (StatusCode) {
19
+ StatusCode[StatusCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
20
+ StatusCode[StatusCode["FORBIDDEN"] = 403] = "FORBIDDEN";
21
+ StatusCode[StatusCode["TIMEOUT"] = 408] = "TIMEOUT";
22
+ StatusCode[StatusCode["GONE"] = 410] = "GONE";
23
+ StatusCode[StatusCode["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
24
+ return StatusCode;
25
+ }({});
26
+ export function isAuthError(error) {
27
+ return isErrorStatusCode(StatusCode.UNAUTHORIZED, error) || isErrorStatusCode(StatusCode.FORBIDDEN, error);
28
+ }
29
+ export function isErrorStatusCode(statusCode, error) {
30
+ var _error$message;
31
+ if (!error) {
32
+ return false;
33
+ }
34
+ if (error['status'] === statusCode ||
35
+ // error can be `ProperNetworkError` from `packages/graphql-client/src/links/error.ts`
36
+ error['statusCode'] === statusCode) {
37
+ return true;
38
+ }
39
+ var reg = new RegExp("status (code)?.*(".concat(statusCode, ")"));
40
+ return !!(error !== null && error !== void 0 && (_error$message = error.message) !== null && _error$message !== void 0 && _error$message.match(reg));
41
+ }
42
+ export function doesErrorContainStatus(statusCode, message) {
43
+ var reg = new RegExp("status .*(".concat(statusCode, ")"));
44
+ return reg.test(message);
45
+ }
46
+ export var TeamErrorType = /*#__PURE__*/function (TeamErrorType) {
47
+ TeamErrorType["TEAM_NOT_ACTIVE"] = "Team must be active";
48
+ return TeamErrorType;
49
+ }({});
50
+ // Extending new custom Error types with `Object.setPrototypeOf`
51
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
52
+ var CommonError = /*#__PURE__*/function (_Error) {
53
+ function CommonError(message) {
54
+ var _this;
55
+ _classCallCheck(this, CommonError);
56
+ _this = _callSuper(this, CommonError, [message]);
57
+ _this.name = _this.constructor.name;
58
+ _this.message = message || 'UnknownError';
59
+ _this.stack = new Error(message).stack || '';
60
+ return _this;
61
+ }
62
+ _inherits(CommonError, _Error);
63
+ return _createClass(CommonError);
64
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
65
+ export var DefaultError = /*#__PURE__*/function (_CommonError) {
66
+ function DefaultError(_ref) {
67
+ var _this2;
68
+ var message = _ref.message;
69
+ _classCallCheck(this, DefaultError);
70
+ _this2 = _callSuper(this, DefaultError, [message || 'UnknownError']);
71
+ Object.setPrototypeOf(_this2, DefaultError.prototype);
72
+ return _this2;
73
+ }
74
+ _inherits(DefaultError, _CommonError);
75
+ return _createClass(DefaultError);
76
+ }(CommonError);
77
+
78
+ /**
79
+ * These errors will not fail UFO experiences
80
+ */
81
+ export var SLOIgnoreError = /*#__PURE__*/function (_CommonError2) {
82
+ function SLOIgnoreError(_ref2) {
83
+ var _this3;
84
+ var message = _ref2.message;
85
+ _classCallCheck(this, SLOIgnoreError);
86
+ _this3 = _callSuper(this, SLOIgnoreError, ["SentryIgnore: ".concat(message || 'UnknownError')]);
87
+ Object.setPrototypeOf(_this3, SLOIgnoreError.prototype);
88
+ return _this3;
89
+ }
90
+ _inherits(SLOIgnoreError, _CommonError2);
91
+ return _createClass(SLOIgnoreError);
92
+ }(CommonError);
93
+ // Http Errors
94
+ export var HttpError = /*#__PURE__*/function (_CommonError3) {
95
+ function HttpError(_ref3) {
96
+ var _this4;
97
+ var message = _ref3.message,
98
+ status = _ref3.status,
99
+ traceId = _ref3.traceId,
100
+ path = _ref3.path;
101
+ _classCallCheck(this, HttpError);
102
+ _this4 = _callSuper(this, HttpError, [message]);
103
+ Object.setPrototypeOf(_this4, HttpError.prototype);
104
+ _this4.status = status;
105
+ _this4.traceId = traceId;
106
+ _this4.path = path;
107
+ return _this4;
108
+ }
109
+ _inherits(HttpError, _CommonError3);
110
+ return _createClass(HttpError);
111
+ }(CommonError);
112
+
113
+ /**
114
+ * These errors will not fail UFO experiences
115
+ */
116
+ export var SLOIgnoreHttpError = /*#__PURE__*/function (_HttpError) {
117
+ function SLOIgnoreHttpError(props) {
118
+ var _this5;
119
+ _classCallCheck(this, SLOIgnoreHttpError);
120
+ _this5 = _callSuper(this, SLOIgnoreHttpError, [props]);
121
+ Object.setPrototypeOf(_this5, SLOIgnoreHttpError.prototype);
122
+ return _this5;
123
+ }
124
+ _inherits(SLOIgnoreHttpError, _HttpError);
125
+ return _createClass(SLOIgnoreHttpError);
126
+ }(HttpError);
127
+
128
+ // Graphql Errors
129
+
130
+ export var GraphQLError = /*#__PURE__*/function (_CommonError4) {
131
+ // tslint:disable-line no-any
132
+
133
+ function GraphQLError(_ref4) {
134
+ var _this6;
135
+ var message = _ref4.message,
136
+ _ref4$category = _ref4.category,
137
+ category = _ref4$category === void 0 ? 'default' : _ref4$category,
138
+ fields = _ref4.fields;
139
+ _classCallCheck(this, GraphQLError);
140
+ _this6 = _callSuper(this, GraphQLError, [message]);
141
+ Object.setPrototypeOf(_this6, GraphQLError.prototype);
142
+ _this6.category = category;
143
+ if (fields) {
144
+ _this6.fields = fields;
145
+ }
146
+ return _this6;
147
+ }
148
+ _inherits(GraphQLError, _CommonError4);
149
+ return _createClass(GraphQLError);
150
+ }(CommonError);
151
+ _GraphQLError = GraphQLError;
152
+ _defineProperty(GraphQLError, "from", function (rawErrors) {
153
+ var firstError = rawErrors[0];
154
+ var errorData = {
155
+ category: firstError.category,
156
+ message: firstError.message
157
+ };
158
+ if (firstError.fields) {
159
+ errorData.fields = firstError.fields.reduce(function (obj, item) {
160
+ obj[item.field] = item.message;
161
+ return obj;
162
+ }, {});
163
+ }
164
+ return new _GraphQLError(errorData);
165
+ });
166
+ export function isNetworkError(error) {
167
+ return error && !!error.message && (
168
+ // Firefox
169
+ error.message.includes('NetworkError') ||
170
+ // Chrome
171
+ error.message.startsWith('Failed to fetch') || error.message.includes('GraphQL error: Failed to fetch') ||
172
+ // cancel by users or unknown reason
173
+ 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') ||
174
+ // GraphQL-wrapping network error
175
+ !!(error['graphQLErrors'] && error['networkError']));
176
+ }
@@ -0,0 +1,3 @@
1
+ export function filterNull(x) {
2
+ return !!x;
3
+ }
@@ -0,0 +1,109 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ export var EXPONENTIAL_BACKOFF_RETRY_POLICY = {
4
+ INITIAL_DELAY: 200,
5
+ MAX_RETRIES: 5,
6
+ JITTER: true
7
+ };
8
+
9
+ /**
10
+ * Checks whether a status code is a 5xx HTTP code.
11
+ * @param {number} status HTTP status code
12
+ */
13
+ export function is5xx(status) {
14
+ return 500 <= status && status <= 599;
15
+ }
16
+ export function isFetchResponse(data) {
17
+ if (!data || !data.hasOwnProperty('response')) {
18
+ return false;
19
+ }
20
+ return data.response instanceof Response;
21
+ }
22
+
23
+ // tslint:disable-next-line no-any
24
+
25
+ // tslint:disable-next-line no-any
26
+ var defaultRetryIfCallback = function defaultRetryIfCallback(a) {
27
+ return !a;
28
+ };
29
+ var defaultOptions = {
30
+ initial: 200,
31
+ jitter: false,
32
+ max: 5,
33
+ retryIf: defaultRetryIfCallback
34
+ };
35
+ /**
36
+ * Transparently wrap a function so that it is retried until it succeeds or reaches a max retry limit.
37
+ * The returned function has the same signature as the wrapped function.
38
+ *
39
+ * Modified from https://jsfiddle.net/pajtai/pLka0ow9/
40
+ */
41
+ export function withExponentialBackoff(toTry) {
42
+ var hofOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
43
+ var initial = hofOptions.initial,
44
+ jitter = hofOptions.jitter,
45
+ max = hofOptions.max,
46
+ retryIf = hofOptions.retryIf;
47
+
48
+ // Initialize max retry decrementing counter (range of max...0)
49
+ var attemptsRemaining = max;
50
+
51
+ // Initialize delay. This will exponentially increase each retry (delay = intial * 2^n)
52
+ var delay = initial;
53
+
54
+ /**
55
+ * This function calls itself recursively until `retryIf` evaluates false or the retry limit is reached.
56
+ * The functioned-to-be-retried is called on each recursion.
57
+ */
58
+ return /*#__PURE__*/function () {
59
+ var _tryWithExponentialBackoff = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
60
+ var result,
61
+ _args = arguments;
62
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ _context.next = 2;
66
+ return toTry.apply(void 0, _args);
67
+ case 2:
68
+ result = _context.sent;
69
+ --attemptsRemaining;
70
+
71
+ // If tried function was unsuccessful and there are still retries remaining, retry!
72
+ if (!(retryIf && retryIf(result) && attemptsRemaining > 0)) {
73
+ _context.next = 9;
74
+ break;
75
+ }
76
+ _context.next = 7;
77
+ return new Promise(function (resolve) {
78
+ return setTimeout(resolve, jitter ? Math.random() * delay : delay);
79
+ });
80
+ case 7:
81
+ // Exponentially increase delay
82
+ delay *= 2;
83
+
84
+ // Initiate retry
85
+ return _context.abrupt("return", tryWithExponentialBackoff.apply(void 0, _args));
86
+ case 9:
87
+ return _context.abrupt("return", result);
88
+ case 10:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }, _callee);
93
+ }));
94
+ function tryWithExponentialBackoff() {
95
+ return _tryWithExponentialBackoff.apply(this, arguments);
96
+ }
97
+ return tryWithExponentialBackoff;
98
+ }();
99
+ }
100
+ export var fetchWithExponentialBackoff = withExponentialBackoff(function (url, init) {
101
+ return fetch(url, init);
102
+ }, {
103
+ initial: EXPONENTIAL_BACKOFF_RETRY_POLICY.INITIAL_DELAY,
104
+ jitter: EXPONENTIAL_BACKOFF_RETRY_POLICY.JITTER,
105
+ max: EXPONENTIAL_BACKOFF_RETRY_POLICY.MAX_RETRIES,
106
+ retryIf: function retryIf(response) {
107
+ return is5xx(response.status);
108
+ }
109
+ });
@@ -0,0 +1,2 @@
1
+ export { sortMembersByType } from './sort-teams';
2
+ export { isInvited, isMember, isNonMember, isRequestingJoin } from './team';