@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,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,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,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,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
|
+
});
|