@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.
- package/CHANGELOG.md +1061 -0
- package/LICENSE.md +11 -0
- package/README.md +9 -0
- package/client/package.json +15 -0
- package/dist/cjs/common/types.js +8 -0
- package/dist/cjs/common/utils/ari.js +31 -0
- package/dist/cjs/common/utils/error/index.js +182 -0
- package/dist/cjs/common/utils/filter-null.js +9 -0
- package/dist/cjs/common/utils/http.js +119 -0
- package/dist/cjs/common/utils/index.js +37 -0
- package/dist/cjs/common/utils/permissions/constants.js +68 -0
- package/dist/cjs/common/utils/permissions/has-permission.js +42 -0
- package/dist/cjs/common/utils/permissions/index.js +31 -0
- package/dist/cjs/common/utils/permissions/types.js +11 -0
- package/dist/cjs/common/utils/sort-teams.js +52 -0
- package/dist/cjs/common/utils/status-code-handlers-provider.js +30 -0
- package/dist/cjs/common/utils/team.js +19 -0
- package/dist/cjs/common/utils/ufo/constants.js +22 -0
- package/dist/cjs/common/utils/ufo/index.js +69 -0
- package/dist/cjs/common/utils/ufo/utils.js +26 -0
- package/dist/cjs/index.js +166 -0
- package/dist/cjs/mocks/endpoints.js +267 -0
- package/dist/cjs/mocks/generate-data.js +115 -0
- package/dist/cjs/mocks/index.js +61 -0
- package/dist/cjs/mocks/invitations.js +21 -0
- package/dist/cjs/mocks/responses.js +480 -0
- package/dist/cjs/mocks/team-link.js +26 -0
- package/dist/cjs/mocks/team.js +150 -0
- package/dist/cjs/mocks/user.js +102 -0
- package/dist/cjs/mocks/with-faker.js +16 -0
- package/dist/cjs/services/agg-client/index.js +137 -0
- package/dist/cjs/services/agg-client/mocks/index.js +71 -0
- package/dist/cjs/services/agg-client/types.js +10 -0
- package/dist/cjs/services/agg-client/utils/queries/team-membership-query.js +8 -0
- package/dist/cjs/services/agg-client/utils/queries/user-query.js +12 -0
- package/dist/cjs/services/agg-client/utils/user-type.js +18 -0
- package/dist/cjs/services/base-client/index.js +94 -0
- package/dist/cjs/services/collaborationgraph-client/index.js +58 -0
- package/dist/cjs/services/constants.js +13 -0
- package/dist/cjs/services/directory-client/index.js +241 -0
- package/dist/cjs/services/graphql-client/index.js +12 -0
- package/dist/cjs/services/graphql-client/main.js +69 -0
- package/dist/cjs/services/graphql-client/types.js +5 -0
- package/dist/cjs/services/graphql-client/utils/index.js +157 -0
- package/dist/cjs/services/hooks/use-teams-client-setup.js +44 -0
- package/dist/cjs/services/identity-client/index.js +171 -0
- package/dist/cjs/services/identity-client/utils.js +183 -0
- package/dist/cjs/services/index.js +18 -0
- package/dist/cjs/services/invitations-client/index.js +168 -0
- package/dist/cjs/services/invitations-client/types.js +1 -0
- package/dist/cjs/services/invitations-client/utils/index.js +115 -0
- package/dist/cjs/services/invitations-client/utils/types.js +5 -0
- package/dist/cjs/services/legion-client/index.js +1160 -0
- package/dist/cjs/services/legion-client/types.js +5 -0
- package/dist/cjs/services/main.js +1941 -0
- package/dist/cjs/services/mutability-client/index.js +97 -0
- package/dist/cjs/services/mutability-client/types.js +1 -0
- package/dist/cjs/services/object-resolver-client/index.js +60 -0
- package/dist/cjs/services/object-resolver-client/types.js +17 -0
- package/dist/cjs/services/object-resolver-client/utils.js +67 -0
- package/dist/cjs/services/perms-client/index.js +48 -0
- package/dist/cjs/services/public-api-client/generated/data-contracts.js +1 -0
- package/dist/cjs/services/public-api-client/index.js +264 -0
- package/dist/cjs/services/rest-client/index.js +381 -0
- package/dist/cjs/services/rest-client/utils/cookie.js +23 -0
- package/dist/cjs/services/rest-client/utils/parse-error-message.js +62 -0
- package/dist/cjs/services/rest-client/utils/parse-response.js +20 -0
- package/dist/cjs/services/rest-client/utils/strip-uuid.js +10 -0
- package/dist/cjs/services/sentry/constants.js +15 -0
- package/dist/cjs/services/sentry/index.js +67 -0
- package/dist/cjs/services/sentry/main.js +196 -0
- package/dist/cjs/services/sentry/types.js +5 -0
- package/dist/cjs/services/sentry/utils/get-sentry-config.js +45 -0
- package/dist/cjs/services/sentry/utils/initialise-sentry.js +55 -0
- package/dist/cjs/services/sentry/utils/sentry-client.js +121 -0
- package/dist/cjs/services/sentry/utils/use-teams-sentry-client-setup.js +40 -0
- package/dist/cjs/services/teams-in-slack-client/index.js +103 -0
- package/dist/cjs/services/types.js +1 -0
- package/dist/cjs/services/use-query-light/index.js +25 -0
- package/dist/cjs/services/use-query-light/main.js +232 -0
- package/dist/cjs/services/use-query-light/types.js +52 -0
- package/dist/cjs/services/user-info-provider/index.js +18 -0
- package/dist/cjs/services/user-info-provider/main.js +72 -0
- package/dist/cjs/services/user-preferences-client/index.js +98 -0
- package/dist/cjs/types/config.js +1 -0
- package/dist/cjs/types/index.js +19 -0
- package/dist/cjs/types/links.js +22 -0
- package/dist/cjs/types/media.js +1 -0
- package/dist/cjs/types/membership.js +24 -0
- package/dist/cjs/types/slack.js +1 -0
- package/dist/cjs/types/team.js +5 -0
- package/dist/cjs/types/user.js +10 -0
- package/dist/es2019/common/types.js +2 -0
- package/dist/es2019/common/utils/ari.js +21 -0
- package/dist/es2019/common/utils/error/index.js +142 -0
- package/dist/es2019/common/utils/filter-null.js +3 -0
- package/dist/es2019/common/utils/http.js +82 -0
- package/dist/es2019/common/utils/index.js +2 -0
- package/dist/es2019/common/utils/permissions/constants.js +59 -0
- package/dist/es2019/common/utils/permissions/has-permission.js +33 -0
- package/dist/es2019/common/utils/permissions/index.js +2 -0
- package/dist/es2019/common/utils/permissions/types.js +5 -0
- package/dist/es2019/common/utils/sort-teams.js +45 -0
- package/dist/es2019/common/utils/status-code-handlers-provider.js +25 -0
- package/dist/es2019/common/utils/team.js +6 -0
- package/dist/es2019/common/utils/ufo/constants.js +12 -0
- package/dist/es2019/common/utils/ufo/index.js +43 -0
- package/dist/es2019/common/utils/ufo/utils.js +18 -0
- package/dist/es2019/index.js +19 -0
- package/dist/es2019/mocks/endpoints.js +250 -0
- package/dist/es2019/mocks/generate-data.js +96 -0
- package/dist/es2019/mocks/index.js +2 -0
- package/dist/es2019/mocks/invitations.js +11 -0
- package/dist/es2019/mocks/responses.js +478 -0
- package/dist/es2019/mocks/team-link.js +14 -0
- package/dist/es2019/mocks/team.js +127 -0
- package/dist/es2019/mocks/user.js +79 -0
- package/dist/es2019/mocks/with-faker.js +8 -0
- package/dist/es2019/services/agg-client/index.js +70 -0
- package/dist/es2019/services/agg-client/mocks/index.js +64 -0
- package/dist/es2019/services/agg-client/types.js +4 -0
- package/dist/es2019/services/agg-client/utils/queries/team-membership-query.js +36 -0
- package/dist/es2019/services/agg-client/utils/queries/user-query.js +39 -0
- package/dist/es2019/services/agg-client/utils/user-type.js +13 -0
- package/dist/es2019/services/base-client/index.js +66 -0
- package/dist/es2019/services/collaborationgraph-client/index.js +37 -0
- package/dist/es2019/services/constants.js +7 -0
- package/dist/es2019/services/directory-client/index.js +155 -0
- package/dist/es2019/services/graphql-client/index.js +1 -0
- package/dist/es2019/services/graphql-client/main.js +23 -0
- package/dist/es2019/services/graphql-client/types.js +1 -0
- package/dist/es2019/services/graphql-client/utils/index.js +76 -0
- package/dist/es2019/services/hooks/use-teams-client-setup.js +40 -0
- package/dist/es2019/services/identity-client/index.js +53 -0
- package/dist/es2019/services/identity-client/utils.js +167 -0
- package/dist/es2019/services/index.js +1 -0
- package/dist/es2019/services/invitations-client/index.js +65 -0
- package/dist/es2019/services/invitations-client/types.js +0 -0
- package/dist/es2019/services/invitations-client/utils/index.js +101 -0
- package/dist/es2019/services/invitations-client/utils/types.js +1 -0
- package/dist/es2019/services/legion-client/index.js +484 -0
- package/dist/es2019/services/legion-client/types.js +1 -0
- package/dist/es2019/services/main.js +541 -0
- package/dist/es2019/services/mutability-client/index.js +49 -0
- package/dist/es2019/services/mutability-client/types.js +0 -0
- package/dist/es2019/services/object-resolver-client/index.js +21 -0
- package/dist/es2019/services/object-resolver-client/types.js +12 -0
- package/dist/es2019/services/object-resolver-client/utils.js +53 -0
- package/dist/es2019/services/perms-client/index.js +25 -0
- package/dist/es2019/services/public-api-client/generated/data-contracts.js +0 -0
- package/dist/es2019/services/public-api-client/index.js +120 -0
- package/dist/es2019/services/rest-client/index.js +177 -0
- package/dist/es2019/services/rest-client/utils/cookie.js +13 -0
- package/dist/es2019/services/rest-client/utils/parse-error-message.js +20 -0
- package/dist/es2019/services/rest-client/utils/parse-response.js +14 -0
- package/dist/es2019/services/rest-client/utils/strip-uuid.js +4 -0
- package/dist/es2019/services/sentry/constants.js +10 -0
- package/dist/es2019/services/sentry/index.js +2 -0
- package/dist/es2019/services/sentry/main.js +107 -0
- package/dist/es2019/services/sentry/types.js +1 -0
- package/dist/es2019/services/sentry/utils/get-sentry-config.js +37 -0
- package/dist/es2019/services/sentry/utils/initialise-sentry.js +23 -0
- package/dist/es2019/services/sentry/utils/sentry-client.js +57 -0
- package/dist/es2019/services/sentry/utils/use-teams-sentry-client-setup.js +14 -0
- package/dist/es2019/services/teams-in-slack-client/index.js +32 -0
- package/dist/es2019/services/types.js +0 -0
- package/dist/es2019/services/use-query-light/index.js +2 -0
- package/dist/es2019/services/use-query-light/main.js +162 -0
- package/dist/es2019/services/use-query-light/types.js +27 -0
- package/dist/es2019/services/user-info-provider/index.js +1 -0
- package/dist/es2019/services/user-info-provider/main.js +44 -0
- package/dist/es2019/services/user-preferences-client/index.js +19 -0
- package/dist/es2019/types/config.js +0 -0
- package/dist/es2019/types/index.js +2 -0
- package/dist/es2019/types/links.js +16 -0
- package/dist/es2019/types/media.js +0 -0
- package/dist/es2019/types/membership.js +16 -0
- package/dist/es2019/types/slack.js +0 -0
- package/dist/es2019/types/team.js +1 -0
- package/dist/es2019/types/user.js +4 -0
- package/dist/esm/common/types.js +2 -0
- package/dist/esm/common/utils/ari.js +25 -0
- package/dist/esm/common/utils/error/index.js +176 -0
- package/dist/esm/common/utils/filter-null.js +3 -0
- package/dist/esm/common/utils/http.js +109 -0
- package/dist/esm/common/utils/index.js +2 -0
- package/dist/esm/common/utils/permissions/constants.js +61 -0
- package/dist/esm/common/utils/permissions/has-permission.js +34 -0
- package/dist/esm/common/utils/permissions/index.js +2 -0
- package/dist/esm/common/utils/permissions/types.js +5 -0
- package/dist/esm/common/utils/sort-teams.js +46 -0
- package/dist/esm/common/utils/status-code-handlers-provider.js +23 -0
- package/dist/esm/common/utils/team.js +12 -0
- package/dist/esm/common/utils/ufo/constants.js +15 -0
- package/dist/esm/common/utils/ufo/index.js +62 -0
- package/dist/esm/common/utils/ufo/utils.js +20 -0
- package/dist/esm/index.js +19 -0
- package/dist/esm/mocks/endpoints.js +261 -0
- package/dist/esm/mocks/generate-data.js +106 -0
- package/dist/esm/mocks/index.js +2 -0
- package/dist/esm/mocks/invitations.js +14 -0
- package/dist/esm/mocks/responses.js +473 -0
- package/dist/esm/mocks/team-link.js +19 -0
- package/dist/esm/mocks/team.js +143 -0
- package/dist/esm/mocks/user.js +95 -0
- package/dist/esm/mocks/with-faker.js +10 -0
- package/dist/esm/services/agg-client/index.js +130 -0
- package/dist/esm/services/agg-client/mocks/index.js +64 -0
- package/dist/esm/services/agg-client/types.js +4 -0
- package/dist/esm/services/agg-client/utils/queries/team-membership-query.js +2 -0
- package/dist/esm/services/agg-client/utils/queries/user-query.js +5 -0
- package/dist/esm/services/agg-client/utils/user-type.js +12 -0
- package/dist/esm/services/base-client/index.js +87 -0
- package/dist/esm/services/collaborationgraph-client/index.js +51 -0
- package/dist/esm/services/constants.js +7 -0
- package/dist/esm/services/directory-client/index.js +234 -0
- package/dist/esm/services/graphql-client/index.js +1 -0
- package/dist/esm/services/graphql-client/main.js +62 -0
- package/dist/esm/services/graphql-client/types.js +1 -0
- package/dist/esm/services/graphql-client/utils/index.js +149 -0
- package/dist/esm/services/hooks/use-teams-client-setup.js +39 -0
- package/dist/esm/services/identity-client/index.js +164 -0
- package/dist/esm/services/identity-client/utils.js +174 -0
- package/dist/esm/services/index.js +1 -0
- package/dist/esm/services/invitations-client/index.js +163 -0
- package/dist/esm/services/invitations-client/types.js +0 -0
- package/dist/esm/services/invitations-client/utils/index.js +108 -0
- package/dist/esm/services/invitations-client/utils/types.js +1 -0
- package/dist/esm/services/legion-client/index.js +1154 -0
- package/dist/esm/services/legion-client/types.js +1 -0
- package/dist/esm/services/main.js +1936 -0
- package/dist/esm/services/mutability-client/index.js +90 -0
- package/dist/esm/services/mutability-client/types.js +0 -0
- package/dist/esm/services/object-resolver-client/index.js +53 -0
- package/dist/esm/services/object-resolver-client/types.js +12 -0
- package/dist/esm/services/object-resolver-client/utils.js +61 -0
- package/dist/esm/services/perms-client/index.js +42 -0
- package/dist/esm/services/public-api-client/generated/data-contracts.js +0 -0
- package/dist/esm/services/public-api-client/index.js +260 -0
- package/dist/esm/services/rest-client/index.js +373 -0
- package/dist/esm/services/rest-client/utils/cookie.js +14 -0
- package/dist/esm/services/rest-client/utils/parse-error-message.js +55 -0
- package/dist/esm/services/rest-client/utils/parse-response.js +14 -0
- package/dist/esm/services/rest-client/utils/strip-uuid.js +4 -0
- package/dist/esm/services/sentry/constants.js +10 -0
- package/dist/esm/services/sentry/index.js +2 -0
- package/dist/esm/services/sentry/main.js +186 -0
- package/dist/esm/services/sentry/types.js +1 -0
- package/dist/esm/services/sentry/utils/get-sentry-config.js +38 -0
- package/dist/esm/services/sentry/utils/initialise-sentry.js +48 -0
- package/dist/esm/services/sentry/utils/sentry-client.js +108 -0
- package/dist/esm/services/sentry/utils/use-teams-sentry-client-setup.js +33 -0
- package/dist/esm/services/teams-in-slack-client/index.js +96 -0
- package/dist/esm/services/types.js +0 -0
- package/dist/esm/services/use-query-light/index.js +2 -0
- package/dist/esm/services/use-query-light/main.js +225 -0
- package/dist/esm/services/use-query-light/types.js +45 -0
- package/dist/esm/services/user-info-provider/index.js +1 -0
- package/dist/esm/services/user-info-provider/main.js +66 -0
- package/dist/esm/services/user-preferences-client/index.js +91 -0
- package/dist/esm/types/config.js +0 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/links.js +16 -0
- package/dist/esm/types/media.js +0 -0
- package/dist/esm/types/membership.js +17 -0
- package/dist/esm/types/slack.js +0 -0
- package/dist/esm/types/team.js +1 -0
- package/dist/esm/types/user.js +4 -0
- package/dist/types/common/types.d.ts +4 -0
- package/dist/types/common/utils/ari.d.ts +7 -0
- package/dist/types/common/utils/error/index.d.ts +91 -0
- package/dist/types/common/utils/filter-null.d.ts +1 -0
- package/dist/types/common/utils/http.d.ts +31 -0
- package/dist/types/common/utils/index.d.ts +2 -0
- package/dist/types/common/utils/permissions/constants.d.ts +23 -0
- package/dist/types/common/utils/permissions/has-permission.d.ts +31 -0
- package/dist/types/common/utils/permissions/index.d.ts +3 -0
- package/dist/types/common/utils/permissions/types.d.ts +7 -0
- package/dist/types/common/utils/sort-teams.d.ts +2 -0
- package/dist/types/common/utils/status-code-handlers-provider.d.ts +17 -0
- package/dist/types/common/utils/team.d.ts +5 -0
- package/dist/types/common/utils/ufo/constants.d.ts +5 -0
- package/dist/types/common/utils/ufo/index.d.ts +6 -0
- package/dist/types/common/utils/ufo/utils.d.ts +11 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/mocks/endpoints.d.ts +22 -0
- package/dist/types/mocks/generate-data.d.ts +16 -0
- package/dist/types/mocks/index.d.ts +2 -0
- package/dist/types/mocks/invitations.d.ts +11 -0
- package/dist/types/mocks/responses.d.ts +75 -0
- package/dist/types/mocks/team-link.d.ts +7 -0
- package/dist/types/mocks/team.d.ts +14 -0
- package/dist/types/mocks/user.d.ts +15 -0
- package/dist/types/mocks/with-faker.d.ts +11 -0
- package/dist/types/services/agg-client/index.d.ts +12 -0
- package/dist/types/services/agg-client/mocks/index.d.ts +49 -0
- package/dist/types/services/agg-client/types.d.ts +13 -0
- package/dist/types/services/agg-client/utils/queries/team-membership-query.d.ts +33 -0
- package/dist/types/services/agg-client/utils/queries/user-query.d.ts +31 -0
- package/dist/types/services/agg-client/utils/user-type.d.ts +7 -0
- package/dist/types/services/base-client/index.d.ts +37 -0
- package/dist/types/services/collaborationgraph-client/index.d.ts +37 -0
- package/dist/types/services/constants.d.ts +2 -0
- package/dist/types/services/directory-client/index.d.ts +53 -0
- package/dist/types/services/graphql-client/index.d.ts +1 -0
- package/dist/types/services/graphql-client/main.d.ts +8 -0
- package/dist/types/services/graphql-client/types.d.ts +19 -0
- package/dist/types/services/graphql-client/utils/index.d.ts +3 -0
- package/dist/types/services/hooks/use-teams-client-setup.d.ts +12 -0
- package/dist/types/services/identity-client/index.d.ts +33 -0
- package/dist/types/services/identity-client/utils.d.ts +81 -0
- package/dist/types/services/index.d.ts +1 -0
- package/dist/types/services/invitations-client/index.d.ts +11 -0
- package/dist/types/services/invitations-client/types.d.ts +67 -0
- package/dist/types/services/invitations-client/utils/index.d.ts +7 -0
- package/dist/types/services/invitations-client/utils/types.d.ts +7 -0
- package/dist/types/services/legion-client/index.d.ts +133 -0
- package/dist/types/services/legion-client/types.d.ts +107 -0
- package/dist/types/services/main.d.ts +316 -0
- package/dist/types/services/mutability-client/index.d.ts +8 -0
- package/dist/types/services/mutability-client/types.d.ts +5 -0
- package/dist/types/services/object-resolver-client/index.d.ts +8 -0
- package/dist/types/services/object-resolver-client/types.d.ts +38 -0
- package/dist/types/services/object-resolver-client/utils.d.ts +18 -0
- package/dist/types/services/perms-client/index.d.ts +16 -0
- package/dist/types/services/public-api-client/generated/data-contracts.d.ts +112 -0
- package/dist/types/services/public-api-client/index.d.ts +41 -0
- package/dist/types/services/rest-client/index.d.ts +40 -0
- package/dist/types/services/rest-client/utils/cookie.d.ts +5 -0
- package/dist/types/services/rest-client/utils/parse-error-message.d.ts +1 -0
- package/dist/types/services/rest-client/utils/parse-response.d.ts +1 -0
- package/dist/types/services/rest-client/utils/strip-uuid.d.ts +1 -0
- package/dist/types/services/sentry/constants.d.ts +5 -0
- package/dist/types/services/sentry/index.d.ts +3 -0
- package/dist/types/services/sentry/main.d.ts +36 -0
- package/dist/types/services/sentry/types.d.ts +36 -0
- package/dist/types/services/sentry/utils/get-sentry-config.d.ts +2 -0
- package/dist/types/services/sentry/utils/initialise-sentry.d.ts +2 -0
- package/dist/types/services/sentry/utils/sentry-client.d.ts +9 -0
- package/dist/types/services/sentry/utils/use-teams-sentry-client-setup.d.ts +2 -0
- package/dist/types/services/teams-in-slack-client/index.d.ts +27 -0
- package/dist/types/services/types.d.ts +10 -0
- package/dist/types/services/use-query-light/index.d.ts +3 -0
- package/dist/types/services/use-query-light/main.d.ts +4 -0
- package/dist/types/services/use-query-light/types.d.ts +57 -0
- package/dist/types/services/user-info-provider/index.d.ts +1 -0
- package/dist/types/services/user-info-provider/main.d.ts +14 -0
- package/dist/types/services/user-preferences-client/index.d.ts +9 -0
- package/dist/types/types/config.d.ts +7 -0
- package/dist/types/types/index.d.ts +10 -0
- package/dist/types/types/links.d.ts +31 -0
- package/dist/types/types/media.d.ts +6 -0
- package/dist/types/types/membership.d.ts +35 -0
- package/dist/types/types/slack.d.ts +7 -0
- package/dist/types/types/team.d.ts +117 -0
- package/dist/types/types/user.d.ts +41 -0
- package/dist/types-ts4.5/common/types.d.ts +4 -0
- package/dist/types-ts4.5/common/utils/ari.d.ts +7 -0
- package/dist/types-ts4.5/common/utils/error/index.d.ts +91 -0
- package/dist/types-ts4.5/common/utils/filter-null.d.ts +1 -0
- package/dist/types-ts4.5/common/utils/http.d.ts +31 -0
- package/dist/types-ts4.5/common/utils/index.d.ts +2 -0
- package/dist/types-ts4.5/common/utils/permissions/constants.d.ts +23 -0
- package/dist/types-ts4.5/common/utils/permissions/has-permission.d.ts +31 -0
- package/dist/types-ts4.5/common/utils/permissions/index.d.ts +3 -0
- package/dist/types-ts4.5/common/utils/permissions/types.d.ts +26 -0
- package/dist/types-ts4.5/common/utils/sort-teams.d.ts +2 -0
- package/dist/types-ts4.5/common/utils/status-code-handlers-provider.d.ts +17 -0
- package/dist/types-ts4.5/common/utils/team.d.ts +5 -0
- package/dist/types-ts4.5/common/utils/ufo/constants.d.ts +64 -0
- package/dist/types-ts4.5/common/utils/ufo/index.d.ts +6 -0
- package/dist/types-ts4.5/common/utils/ufo/utils.d.ts +11 -0
- package/dist/types-ts4.5/index.d.ts +15 -0
- package/dist/types-ts4.5/mocks/endpoints.d.ts +22 -0
- package/dist/types-ts4.5/mocks/generate-data.d.ts +16 -0
- package/dist/types-ts4.5/mocks/index.d.ts +2 -0
- package/dist/types-ts4.5/mocks/invitations.d.ts +11 -0
- package/dist/types-ts4.5/mocks/responses.d.ts +75 -0
- package/dist/types-ts4.5/mocks/team-link.d.ts +7 -0
- package/dist/types-ts4.5/mocks/team.d.ts +14 -0
- package/dist/types-ts4.5/mocks/user.d.ts +15 -0
- package/dist/types-ts4.5/mocks/with-faker.d.ts +11 -0
- package/dist/types-ts4.5/services/agg-client/index.d.ts +12 -0
- package/dist/types-ts4.5/services/agg-client/mocks/index.d.ts +49 -0
- package/dist/types-ts4.5/services/agg-client/types.d.ts +13 -0
- package/dist/types-ts4.5/services/agg-client/utils/queries/team-membership-query.d.ts +33 -0
- package/dist/types-ts4.5/services/agg-client/utils/queries/user-query.d.ts +31 -0
- package/dist/types-ts4.5/services/agg-client/utils/user-type.d.ts +7 -0
- package/dist/types-ts4.5/services/base-client/index.d.ts +37 -0
- package/dist/types-ts4.5/services/collaborationgraph-client/index.d.ts +37 -0
- package/dist/types-ts4.5/services/constants.d.ts +2 -0
- package/dist/types-ts4.5/services/directory-client/index.d.ts +53 -0
- package/dist/types-ts4.5/services/graphql-client/index.d.ts +1 -0
- package/dist/types-ts4.5/services/graphql-client/main.d.ts +8 -0
- package/dist/types-ts4.5/services/graphql-client/types.d.ts +19 -0
- package/dist/types-ts4.5/services/graphql-client/utils/index.d.ts +3 -0
- package/dist/types-ts4.5/services/hooks/use-teams-client-setup.d.ts +12 -0
- package/dist/types-ts4.5/services/identity-client/index.d.ts +33 -0
- package/dist/types-ts4.5/services/identity-client/utils.d.ts +81 -0
- package/dist/types-ts4.5/services/index.d.ts +1 -0
- package/dist/types-ts4.5/services/invitations-client/index.d.ts +11 -0
- package/dist/types-ts4.5/services/invitations-client/types.d.ts +67 -0
- package/dist/types-ts4.5/services/invitations-client/utils/index.d.ts +7 -0
- package/dist/types-ts4.5/services/invitations-client/utils/types.d.ts +7 -0
- package/dist/types-ts4.5/services/legion-client/index.d.ts +133 -0
- package/dist/types-ts4.5/services/legion-client/types.d.ts +107 -0
- package/dist/types-ts4.5/services/main.d.ts +316 -0
- package/dist/types-ts4.5/services/mutability-client/index.d.ts +8 -0
- package/dist/types-ts4.5/services/mutability-client/types.d.ts +5 -0
- package/dist/types-ts4.5/services/object-resolver-client/index.d.ts +8 -0
- package/dist/types-ts4.5/services/object-resolver-client/types.d.ts +38 -0
- package/dist/types-ts4.5/services/object-resolver-client/utils.d.ts +18 -0
- package/dist/types-ts4.5/services/perms-client/index.d.ts +16 -0
- package/dist/types-ts4.5/services/public-api-client/generated/data-contracts.d.ts +112 -0
- package/dist/types-ts4.5/services/public-api-client/index.d.ts +41 -0
- package/dist/types-ts4.5/services/rest-client/index.d.ts +40 -0
- package/dist/types-ts4.5/services/rest-client/utils/cookie.d.ts +5 -0
- package/dist/types-ts4.5/services/rest-client/utils/parse-error-message.d.ts +1 -0
- package/dist/types-ts4.5/services/rest-client/utils/parse-response.d.ts +1 -0
- package/dist/types-ts4.5/services/rest-client/utils/strip-uuid.d.ts +1 -0
- package/dist/types-ts4.5/services/sentry/constants.d.ts +5 -0
- package/dist/types-ts4.5/services/sentry/index.d.ts +3 -0
- package/dist/types-ts4.5/services/sentry/main.d.ts +36 -0
- package/dist/types-ts4.5/services/sentry/types.d.ts +36 -0
- package/dist/types-ts4.5/services/sentry/utils/get-sentry-config.d.ts +2 -0
- package/dist/types-ts4.5/services/sentry/utils/initialise-sentry.d.ts +2 -0
- package/dist/types-ts4.5/services/sentry/utils/sentry-client.d.ts +9 -0
- package/dist/types-ts4.5/services/sentry/utils/use-teams-sentry-client-setup.d.ts +2 -0
- package/dist/types-ts4.5/services/teams-in-slack-client/index.d.ts +27 -0
- package/dist/types-ts4.5/services/types.d.ts +10 -0
- package/dist/types-ts4.5/services/use-query-light/index.d.ts +3 -0
- package/dist/types-ts4.5/services/use-query-light/main.d.ts +7 -0
- package/dist/types-ts4.5/services/use-query-light/types.d.ts +57 -0
- package/dist/types-ts4.5/services/user-info-provider/index.d.ts +1 -0
- package/dist/types-ts4.5/services/user-info-provider/main.d.ts +14 -0
- package/dist/types-ts4.5/services/user-preferences-client/index.d.ts +9 -0
- package/dist/types-ts4.5/types/config.d.ts +7 -0
- package/dist/types-ts4.5/types/index.d.ts +10 -0
- package/dist/types-ts4.5/types/links.d.ts +31 -0
- package/dist/types-ts4.5/types/media.d.ts +6 -0
- package/dist/types-ts4.5/types/membership.d.ts +35 -0
- package/dist/types-ts4.5/types/slack.d.ts +7 -0
- package/dist/types-ts4.5/types/team.d.ts +117 -0
- package/dist/types-ts4.5/types/user.d.ts +51 -0
- package/mocks/package.json +15 -0
- package/package.json +111 -0
- package/permissions/package.json +15 -0
- package/public/package.json +15 -0
- package/report.api.md +1210 -0
- package/scripts/generate-docs.ts +31 -0
- package/scripts/utils.ts +269 -0
- package/sentry/package.json +15 -0
- package/types/package.json +15 -0
- package/ufo/package.json +15 -0
- package/use-query-light/package.json +15 -0
- package/user-info-provider/package.json +15 -0
- package/utils/package.json +15 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
var _GraphQLError;
|
|
3
|
+
export let ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
|
|
4
|
+
ErrorCategory["NotFound"] = "NotFound";
|
|
5
|
+
ErrorCategory["NotPermitted"] = "NotPermitted";
|
|
6
|
+
ErrorCategory["MalformedInput"] = "MalformedInput";
|
|
7
|
+
ErrorCategory["Internal"] = "Internal";
|
|
8
|
+
return ErrorCategory;
|
|
9
|
+
}({});
|
|
10
|
+
export let StatusCode = /*#__PURE__*/function (StatusCode) {
|
|
11
|
+
StatusCode[StatusCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
12
|
+
StatusCode[StatusCode["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
13
|
+
StatusCode[StatusCode["TIMEOUT"] = 408] = "TIMEOUT";
|
|
14
|
+
StatusCode[StatusCode["GONE"] = 410] = "GONE";
|
|
15
|
+
StatusCode[StatusCode["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
|
|
16
|
+
return StatusCode;
|
|
17
|
+
}({});
|
|
18
|
+
export function isAuthError(error) {
|
|
19
|
+
return isErrorStatusCode(StatusCode.UNAUTHORIZED, error) || isErrorStatusCode(StatusCode.FORBIDDEN, error);
|
|
20
|
+
}
|
|
21
|
+
export function isErrorStatusCode(statusCode, error) {
|
|
22
|
+
var _error$message;
|
|
23
|
+
if (!error) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (error['status'] === statusCode ||
|
|
27
|
+
// error can be `ProperNetworkError` from `packages/graphql-client/src/links/error.ts`
|
|
28
|
+
error['statusCode'] === statusCode) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const reg = new RegExp(`status (code)?.*(${statusCode})`);
|
|
32
|
+
return !!(error !== null && error !== void 0 && (_error$message = error.message) !== null && _error$message !== void 0 && _error$message.match(reg));
|
|
33
|
+
}
|
|
34
|
+
export function doesErrorContainStatus(statusCode, message) {
|
|
35
|
+
const reg = new RegExp(`status .*(${statusCode})`);
|
|
36
|
+
return reg.test(message);
|
|
37
|
+
}
|
|
38
|
+
export let TeamErrorType = /*#__PURE__*/function (TeamErrorType) {
|
|
39
|
+
TeamErrorType["TEAM_NOT_ACTIVE"] = "Team must be active";
|
|
40
|
+
return TeamErrorType;
|
|
41
|
+
}({});
|
|
42
|
+
// Extending new custom Error types with `Object.setPrototypeOf`
|
|
43
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
|
|
44
|
+
|
|
45
|
+
class CommonError extends Error {
|
|
46
|
+
constructor(message) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.name = this.constructor.name;
|
|
49
|
+
this.message = message || 'UnknownError';
|
|
50
|
+
this.stack = new Error(message).stack || '';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export class DefaultError extends CommonError {
|
|
54
|
+
constructor({
|
|
55
|
+
message
|
|
56
|
+
}) {
|
|
57
|
+
super(message || 'UnknownError');
|
|
58
|
+
Object.setPrototypeOf(this, DefaultError.prototype);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* These errors will not fail UFO experiences
|
|
64
|
+
*/
|
|
65
|
+
export class SLOIgnoreError extends CommonError {
|
|
66
|
+
constructor({
|
|
67
|
+
message
|
|
68
|
+
}) {
|
|
69
|
+
super(`SentryIgnore: ${message || 'UnknownError'}`);
|
|
70
|
+
Object.setPrototypeOf(this, SLOIgnoreError.prototype);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Http Errors
|
|
74
|
+
export class HttpError extends CommonError {
|
|
75
|
+
constructor({
|
|
76
|
+
message,
|
|
77
|
+
status,
|
|
78
|
+
traceId,
|
|
79
|
+
path
|
|
80
|
+
}) {
|
|
81
|
+
super(message);
|
|
82
|
+
Object.setPrototypeOf(this, HttpError.prototype);
|
|
83
|
+
this.status = status;
|
|
84
|
+
this.traceId = traceId;
|
|
85
|
+
this.path = path;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* These errors will not fail UFO experiences
|
|
91
|
+
*/
|
|
92
|
+
export class SLOIgnoreHttpError extends HttpError {
|
|
93
|
+
constructor(props) {
|
|
94
|
+
super(props);
|
|
95
|
+
Object.setPrototypeOf(this, SLOIgnoreHttpError.prototype);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Graphql Errors
|
|
100
|
+
|
|
101
|
+
export class GraphQLError extends CommonError {
|
|
102
|
+
// tslint:disable-line no-any
|
|
103
|
+
|
|
104
|
+
constructor({
|
|
105
|
+
message,
|
|
106
|
+
category = 'default',
|
|
107
|
+
fields
|
|
108
|
+
}) {
|
|
109
|
+
super(message);
|
|
110
|
+
Object.setPrototypeOf(this, GraphQLError.prototype);
|
|
111
|
+
this.category = category;
|
|
112
|
+
if (fields) {
|
|
113
|
+
this.fields = fields;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
_GraphQLError = GraphQLError;
|
|
118
|
+
_defineProperty(GraphQLError, "from", rawErrors => {
|
|
119
|
+
const firstError = rawErrors[0];
|
|
120
|
+
const errorData = {
|
|
121
|
+
category: firstError.category,
|
|
122
|
+
message: firstError.message
|
|
123
|
+
};
|
|
124
|
+
if (firstError.fields) {
|
|
125
|
+
errorData.fields = firstError.fields.reduce((obj, item) => {
|
|
126
|
+
obj[item.field] = item.message;
|
|
127
|
+
return obj;
|
|
128
|
+
}, {});
|
|
129
|
+
}
|
|
130
|
+
return new _GraphQLError(errorData);
|
|
131
|
+
});
|
|
132
|
+
export function isNetworkError(error) {
|
|
133
|
+
return error && !!error.message && (
|
|
134
|
+
// Firefox
|
|
135
|
+
error.message.includes('NetworkError') ||
|
|
136
|
+
// Chrome
|
|
137
|
+
error.message.startsWith('Failed to fetch') || error.message.includes('GraphQL error: Failed to fetch') ||
|
|
138
|
+
// cancel by users or unknown reason
|
|
139
|
+
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') ||
|
|
140
|
+
// GraphQL-wrapping network error
|
|
141
|
+
!!(error['graphQLErrors'] && error['networkError']));
|
|
142
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export const EXPONENTIAL_BACKOFF_RETRY_POLICY = {
|
|
2
|
+
INITIAL_DELAY: 200,
|
|
3
|
+
MAX_RETRIES: 5,
|
|
4
|
+
JITTER: true
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Checks whether a status code is a 5xx HTTP code.
|
|
9
|
+
* @param {number} status HTTP status code
|
|
10
|
+
*/
|
|
11
|
+
export function is5xx(status) {
|
|
12
|
+
return 500 <= status && status <= 599;
|
|
13
|
+
}
|
|
14
|
+
export function isFetchResponse(data) {
|
|
15
|
+
if (!data || !data.hasOwnProperty('response')) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return data.response instanceof Response;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// tslint:disable-next-line no-any
|
|
22
|
+
|
|
23
|
+
// tslint:disable-next-line no-any
|
|
24
|
+
const defaultRetryIfCallback = a => !a;
|
|
25
|
+
const defaultOptions = {
|
|
26
|
+
initial: 200,
|
|
27
|
+
jitter: false,
|
|
28
|
+
max: 5,
|
|
29
|
+
retryIf: defaultRetryIfCallback
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Transparently wrap a function so that it is retried until it succeeds or reaches a max retry limit.
|
|
33
|
+
* The returned function has the same signature as the wrapped function.
|
|
34
|
+
*
|
|
35
|
+
* Modified from https://jsfiddle.net/pajtai/pLka0ow9/
|
|
36
|
+
*/
|
|
37
|
+
export function withExponentialBackoff(toTry, hofOptions = defaultOptions) {
|
|
38
|
+
const {
|
|
39
|
+
initial,
|
|
40
|
+
jitter,
|
|
41
|
+
max,
|
|
42
|
+
retryIf
|
|
43
|
+
} = hofOptions;
|
|
44
|
+
|
|
45
|
+
// Initialize max retry decrementing counter (range of max...0)
|
|
46
|
+
let attemptsRemaining = max;
|
|
47
|
+
|
|
48
|
+
// Initialize delay. This will exponentially increase each retry (delay = intial * 2^n)
|
|
49
|
+
let delay = initial;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* This function calls itself recursively until `retryIf` evaluates false or the retry limit is reached.
|
|
53
|
+
* The functioned-to-be-retried is called on each recursion.
|
|
54
|
+
*/
|
|
55
|
+
return async function tryWithExponentialBackoff(...args) {
|
|
56
|
+
// "An attempt was made"
|
|
57
|
+
const result = await toTry(...args);
|
|
58
|
+
--attemptsRemaining;
|
|
59
|
+
|
|
60
|
+
// If tried function was unsuccessful and there are still retries remaining, retry!
|
|
61
|
+
if (retryIf && retryIf(result) && attemptsRemaining > 0) {
|
|
62
|
+
// Wait for delay
|
|
63
|
+
await new Promise(resolve => setTimeout(resolve, jitter ? Math.random() * delay : delay));
|
|
64
|
+
|
|
65
|
+
// Exponentially increase delay
|
|
66
|
+
delay *= 2;
|
|
67
|
+
|
|
68
|
+
// Initiate retry
|
|
69
|
+
return tryWithExponentialBackoff(...args);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Return result of tried function if it is successful or if the retry limit
|
|
73
|
+
// was reached regardless of success.
|
|
74
|
+
return result;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export const fetchWithExponentialBackoff = withExponentialBackoff((url, init) => fetch(url, init), {
|
|
78
|
+
initial: EXPONENTIAL_BACKOFF_RETRY_POLICY.INITIAL_DELAY,
|
|
79
|
+
jitter: EXPONENTIAL_BACKOFF_RETRY_POLICY.JITTER,
|
|
80
|
+
max: EXPONENTIAL_BACKOFF_RETRY_POLICY.MAX_RETRIES,
|
|
81
|
+
retryIf: response => is5xx(response.status)
|
|
82
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
|
+
export const allPermissions = (defaultPermission, isMember) => ({
|
|
3
|
+
ADD_MEMBER_TO_TEAM: defaultPermission,
|
|
4
|
+
JOIN_TEAM: defaultPermission,
|
|
5
|
+
REQUEST_TO_JOIN: defaultPermission,
|
|
6
|
+
CANCEL_JOIN_REQUEST: defaultPermission,
|
|
7
|
+
APPROVE_JOIN_REQUEST: defaultPermission,
|
|
8
|
+
REJECT_JOIN_REQUEST: defaultPermission,
|
|
9
|
+
REMOVE_MEMBER_FROM_TEAM: defaultPermission,
|
|
10
|
+
CANCEL_INVITE: defaultPermission,
|
|
11
|
+
LEAVE_TEAM: defaultPermission && isMember,
|
|
12
|
+
EDIT_DESCRIPTION: defaultPermission,
|
|
13
|
+
EDIT_TEAM_NAME: defaultPermission,
|
|
14
|
+
EDIT_PROFILE_HEADER: defaultPermission,
|
|
15
|
+
EDIT_TEAM_LINK: defaultPermission,
|
|
16
|
+
DELETE_TEAM: defaultPermission,
|
|
17
|
+
EDIT_TEAM_SETTINGS: defaultPermission,
|
|
18
|
+
EDIT_TEAM_MEMBERSHIP: defaultPermission,
|
|
19
|
+
REMOVE_AGENT_FROM_TEAM: defaultPermission,
|
|
20
|
+
ADD_AGENT_TO_TEAM: defaultPermission
|
|
21
|
+
});
|
|
22
|
+
export const vanityActions = ['EDIT_DESCRIPTION', 'EDIT_TEAM_NAME', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK'];
|
|
23
|
+
export const openPermissions = permission => ({
|
|
24
|
+
JOIN_TEAM: permission === 'FULL_READ' || permission === 'FULL_WRITE',
|
|
25
|
+
REQUEST_TO_JOIN: false,
|
|
26
|
+
CANCEL_JOIN_REQUEST: false,
|
|
27
|
+
APPROVE_JOIN_REQUEST: false,
|
|
28
|
+
REJECT_JOIN_REQUEST: false
|
|
29
|
+
});
|
|
30
|
+
export const inviteOnlyPermissions = permission => ({
|
|
31
|
+
REQUEST_TO_JOIN: permission === 'FULL_READ',
|
|
32
|
+
CANCEL_JOIN_REQUEST: permission === 'FULL_READ'
|
|
33
|
+
});
|
|
34
|
+
export const SCIMSyncTeamPermissions = (isMember, isOrgAdmin) => ({
|
|
35
|
+
EDIT_DESCRIPTION: isMember || isOrgAdmin,
|
|
36
|
+
EDIT_TEAM_SETTINGS: isMember || isOrgAdmin,
|
|
37
|
+
EDIT_TEAM_LINK: isMember || isOrgAdmin,
|
|
38
|
+
EDIT_TEAM_NAME: (isMember || isOrgAdmin) && fg('enable_edit_team_name_external_type_teams')
|
|
39
|
+
});
|
|
40
|
+
export const getPermissionMap = (settings, permission, isMember, isOrgAdmin) => {
|
|
41
|
+
if (settings === 'OPEN') {
|
|
42
|
+
return {
|
|
43
|
+
...allPermissions(permission === 'FULL_WRITE', isMember),
|
|
44
|
+
...openPermissions(permission)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (settings === 'MEMBER_INVITE') {
|
|
48
|
+
return {
|
|
49
|
+
...allPermissions(permission === 'FULL_WRITE', isMember),
|
|
50
|
+
...inviteOnlyPermissions(permission)
|
|
51
|
+
};
|
|
52
|
+
} else if (settings === 'EXTERNAL') {
|
|
53
|
+
return {
|
|
54
|
+
...allPermissions(false, isMember),
|
|
55
|
+
...SCIMSyncTeamPermissions(isMember, isOrgAdmin)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return allPermissions(false, false);
|
|
59
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isMember } from '../team';
|
|
2
|
+
import { getPermissionMap, vanityActions } from './constants';
|
|
3
|
+
export function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions) {
|
|
4
|
+
if (!isPeopleBrowseEnabled && !vanityActions.includes(action)) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
const isMemberOfTeam = isMember(currentUserMembership);
|
|
8
|
+
const isOrgAdmin = Boolean(teamVisibilityPermissions === null || teamVisibilityPermissions === void 0 ? void 0 : teamVisibilityPermissions.canAdminTeams);
|
|
9
|
+
return userCan(action, {
|
|
10
|
+
membershipSettings: settings,
|
|
11
|
+
teamPermission: permission,
|
|
12
|
+
isMemberOfTeam,
|
|
13
|
+
isOrgAdmin
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Determines if a user has permission perform a given action on a team
|
|
18
|
+
*/
|
|
19
|
+
export function userCan(action, options) {
|
|
20
|
+
return getPermissionMap(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin)[action];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use `userCan` instead, it gives better visibility into the option mappings
|
|
25
|
+
*/
|
|
26
|
+
export function hasPermissionForAction(action, settings, permission, isMemberOfTeam, isOrgAdmin = false) {
|
|
27
|
+
return userCan(action, {
|
|
28
|
+
membershipSettings: settings,
|
|
29
|
+
teamPermission: permission,
|
|
30
|
+
isMemberOfTeam,
|
|
31
|
+
isOrgAdmin
|
|
32
|
+
});
|
|
33
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const 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',
|
|
2
|
+
// Visual
|
|
3
|
+
'EDIT_TEAM_NAME', 'EDIT_DESCRIPTION', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK', 'EDIT_TEAM_SETTINGS', 'EDIT_TEAM_MEMBERSHIP',
|
|
4
|
+
// Serious
|
|
5
|
+
'DELETE_TEAM'];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var MemberType = /*#__PURE__*/function (MemberType) {
|
|
2
|
+
MemberType[MemberType["CURRENT_USER"] = 0] = "CURRENT_USER";
|
|
3
|
+
MemberType[MemberType["MEMBER"] = 1] = "MEMBER";
|
|
4
|
+
MemberType[MemberType["INVITED"] = 2] = "INVITED";
|
|
5
|
+
MemberType[MemberType["INACTIVE"] = 3] = "INACTIVE";
|
|
6
|
+
MemberType[MemberType["DELETED"] = 4] = "DELETED";
|
|
7
|
+
return MemberType;
|
|
8
|
+
}(MemberType || {});
|
|
9
|
+
const checkType = (member, currentAccountId) => {
|
|
10
|
+
var _member$user, _member$user2;
|
|
11
|
+
if (member.membershipId.memberId === currentAccountId) {
|
|
12
|
+
return MemberType.CURRENT_USER;
|
|
13
|
+
} else if (member && member.state === 'INVITED') {
|
|
14
|
+
return MemberType.INVITED;
|
|
15
|
+
} else if (((_member$user = member.user) === null || _member$user === void 0 ? void 0 : _member$user.status) === 'inactive') {
|
|
16
|
+
return MemberType.INACTIVE;
|
|
17
|
+
} else if (((_member$user2 = member.user) === null || _member$user2 === void 0 ? void 0 : _member$user2.status) === 'closed') {
|
|
18
|
+
return MemberType.DELETED;
|
|
19
|
+
} else {
|
|
20
|
+
return MemberType.MEMBER;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export const sortMembersByType = (members, currentAccountId) => {
|
|
24
|
+
const newMembers = members.map(member => ({
|
|
25
|
+
member,
|
|
26
|
+
type: checkType(member, currentAccountId)
|
|
27
|
+
}));
|
|
28
|
+
newMembers.sort(({
|
|
29
|
+
member: memberA,
|
|
30
|
+
type: typeA
|
|
31
|
+
}, {
|
|
32
|
+
member: memberB,
|
|
33
|
+
type: typeB
|
|
34
|
+
}) => {
|
|
35
|
+
if (typeA === typeB) {
|
|
36
|
+
var _memberA$user, _memberB$user;
|
|
37
|
+
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;
|
|
38
|
+
} else {
|
|
39
|
+
return typeA - typeB;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return newMembers.map(({
|
|
43
|
+
member
|
|
44
|
+
}) => member);
|
|
45
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 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.
|
|
3
|
+
* This is a temporary measure to enable the clients to consume `statusCodeHandlers`.
|
|
4
|
+
* The long term solution is to replace our REST clients with Apollo client custom resolvers
|
|
5
|
+
* 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.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export const statusCodeHandlersProvider = {
|
|
9
|
+
handlers: {},
|
|
10
|
+
get() {
|
|
11
|
+
return statusCodeHandlersProvider.handlers;
|
|
12
|
+
},
|
|
13
|
+
setHandlers(handlers) {
|
|
14
|
+
statusCodeHandlersProvider.handlers = handlers;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export function handleResponse(response) {
|
|
18
|
+
const {
|
|
19
|
+
status
|
|
20
|
+
} = response;
|
|
21
|
+
const handler = statusCodeHandlersProvider.get()[status];
|
|
22
|
+
if (typeof handler === 'function') {
|
|
23
|
+
handler(response);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export function isInvited(member) {
|
|
2
|
+
return !!member && member.state === 'INVITED';
|
|
3
|
+
}
|
|
4
|
+
export const isNonMember = member => !member || member.state === 'ALUMNI';
|
|
5
|
+
export const isRequestingJoin = member => !!member && member.state === 'REQUESTING_TO_JOIN';
|
|
6
|
+
export const isMember = member => !!member && member.state === 'FULL_MEMBER';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
|
|
2
|
+
import { TeamsUFOExperience } from './index';
|
|
3
|
+
const TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack'];
|
|
4
|
+
export const TEAMS_CLIENT_EXPERIENCES = new Map([...TeamsClientExperienceKeyList.map(key => [key,
|
|
5
|
+
// camelCase to kebab-case
|
|
6
|
+
new TeamsUFOExperience(`teams-client-${key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}`, {
|
|
7
|
+
type: ExperienceTypes.Operation,
|
|
8
|
+
performanceType: ExperiencePerformanceTypes.Custom,
|
|
9
|
+
platform: {
|
|
10
|
+
component: 'people'
|
|
11
|
+
}
|
|
12
|
+
})])]);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { UFOExperience } from '@atlaskit/ufo';
|
|
2
|
+
import { isAuthError, isErrorStatusCode, isNetworkError, StatusCode } from '../error';
|
|
3
|
+
import { createErrorMetadata, isIgnoredError } from './utils';
|
|
4
|
+
export class TeamsUFOExperience extends UFOExperience {
|
|
5
|
+
abortWithError(error, reason) {
|
|
6
|
+
return super.abort({
|
|
7
|
+
metadata: {
|
|
8
|
+
error: createErrorMetadata(error),
|
|
9
|
+
reason
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
failWithError(error) {
|
|
14
|
+
if (error instanceof Error) {
|
|
15
|
+
if (isAuthError(error)) {
|
|
16
|
+
return this.abortWithError(error, 'Abort due to user unauthenticated');
|
|
17
|
+
}
|
|
18
|
+
if (isErrorStatusCode(StatusCode.GONE, error)) {
|
|
19
|
+
return this.abortWithError(error, 'Abort due to unavailable resource');
|
|
20
|
+
}
|
|
21
|
+
if (isIgnoredError(error)) {
|
|
22
|
+
return this.abortWithError(error, 'Abort due to an error in ignore list');
|
|
23
|
+
}
|
|
24
|
+
if (isNetworkError(error)) {
|
|
25
|
+
return this.abortWithError(error, 'Abort due to network error');
|
|
26
|
+
}
|
|
27
|
+
return super.failure({
|
|
28
|
+
metadata: {
|
|
29
|
+
error: createErrorMetadata(error),
|
|
30
|
+
packageVersion: "4.0.0",
|
|
31
|
+
packageName: "@atlaskit/teams-client"
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return super.failure({
|
|
36
|
+
metadata: {
|
|
37
|
+
error: 'unknown error',
|
|
38
|
+
packageVersion: "4.0.0",
|
|
39
|
+
packageName: "@atlaskit/teams-client"
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HttpError } from '../error';
|
|
2
|
+
export const createErrorMetadata = error => ({
|
|
3
|
+
error: {
|
|
4
|
+
name: error.name,
|
|
5
|
+
message: error.message,
|
|
6
|
+
stack: error.stack,
|
|
7
|
+
traceId: error instanceof HttpError ? error.traceId : undefined,
|
|
8
|
+
status: error instanceof HttpError ? error.status : undefined
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const ignoredErrors = ['SLOIgnoreError', 'SLOIgnoreHttpError'];
|
|
12
|
+
export const isIgnoredError = error => {
|
|
13
|
+
const errorName = error === null || error === void 0 ? void 0 : error.constructor.name;
|
|
14
|
+
if (!errorName) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return ignoredErrors.includes(errorName);
|
|
18
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { HttpError } from './common/utils/error';
|
|
2
|
+
export { isTeamMembershipWithUser } from './types/membership';
|
|
3
|
+
|
|
4
|
+
// /client
|
|
5
|
+
export { teamsClient, TeamsClient } from './services';
|
|
6
|
+
export { useTeamsClientSetup, useTeamsClientSetupNext } from './services/hooks/use-teams-client-setup';
|
|
7
|
+
|
|
8
|
+
// /permissions
|
|
9
|
+
export { AllTeamActions, hasPermission } from './common/utils/permissions';
|
|
10
|
+
// /sentry
|
|
11
|
+
export { initialiseSentry } from './services/sentry/utils/initialise-sentry';
|
|
12
|
+
export { logException, logInfoMessage } from './services/sentry/main';
|
|
13
|
+
// /user-info-provider
|
|
14
|
+
export { userInfoProvider, UserInfoProvider } from './services/user-info-provider';
|
|
15
|
+
|
|
16
|
+
// /utils
|
|
17
|
+
export { sortMembersByType, isInvited, isMember, isNonMember, isRequestingJoin } from './common/utils';
|
|
18
|
+
export { toUserARI, toUserId, toTeamARI, toTeamId } from './common/utils/ari';
|
|
19
|
+
export { useLazyQueryLight, useQueryLight, UseQueryLightError } from './services/use-query-light';
|