synapse-react-client 2.1.21 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/containers/CardContainer.d.ts +0 -8
  2. package/dist/containers/CardContainer.js +13 -23
  3. package/dist/containers/CardContainer.js.map +1 -1
  4. package/dist/containers/CardContainerLogic.d.ts +3 -76
  5. package/dist/containers/CardContainerLogic.js +29 -150
  6. package/dist/containers/CardContainerLogic.js.map +1 -1
  7. package/dist/containers/ChangePassword.d.ts +3 -0
  8. package/dist/containers/ChangePassword.js +88 -0
  9. package/dist/containers/ChangePassword.js.map +1 -0
  10. package/dist/containers/FileUpload.d.ts +1 -1
  11. package/dist/containers/FileUpload.js.map +1 -1
  12. package/dist/containers/FluidModal.d.ts +2 -0
  13. package/dist/containers/FluidModal.js +6 -1
  14. package/dist/containers/FluidModal.js.map +1 -1
  15. package/dist/containers/FullTextSearch.d.ts +1 -5
  16. package/dist/containers/FullTextSearch.js +9 -9
  17. package/dist/containers/FullTextSearch.js.map +1 -1
  18. package/dist/containers/LoadingScreen.d.ts +7 -1
  19. package/dist/containers/LoadingScreen.js +15 -4
  20. package/dist/containers/LoadingScreen.js.map +1 -1
  21. package/dist/containers/QueryCount.js.map +1 -1
  22. package/dist/containers/QueryVisualizationWrapper.d.ts +48 -0
  23. package/dist/containers/QueryVisualizationWrapper.js +81 -0
  24. package/dist/containers/QueryVisualizationWrapper.js.map +1 -0
  25. package/dist/containers/QueryWrapper.d.ts +55 -145
  26. package/dist/containers/QueryWrapper.js +206 -263
  27. package/dist/containers/QueryWrapper.js.map +1 -1
  28. package/dist/containers/QueryWrapperErrorBanner.d.ts +5 -0
  29. package/dist/containers/QueryWrapperErrorBanner.js +16 -0
  30. package/dist/containers/QueryWrapperErrorBanner.js.map +1 -0
  31. package/dist/containers/SearchV2.d.ts +6 -2
  32. package/dist/containers/SearchV2.js +11 -11
  33. package/dist/containers/SearchV2.js.map +1 -1
  34. package/dist/containers/SqlEditor.d.ts +1 -5
  35. package/dist/containers/SqlEditor.js +8 -7
  36. package/dist/containers/SqlEditor.js.map +1 -1
  37. package/dist/containers/ToastMessage.d.ts +1 -1
  38. package/dist/containers/TotalQueryResults.d.ts +3 -6
  39. package/dist/containers/TotalQueryResults.js +42 -58
  40. package/dist/containers/TotalQueryResults.js.map +1 -1
  41. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.d.ts +1 -7
  42. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
  43. package/dist/containers/download_list/DownloadConfirmation.d.ts +0 -5
  44. package/dist/containers/download_list/DownloadConfirmation.js +16 -18
  45. package/dist/containers/download_list/DownloadConfirmation.js.map +1 -1
  46. package/dist/containers/entity/annotations/AdditionalPropertiesSchemaField.d.ts +1 -1
  47. package/dist/containers/entity_finder/EntityFinder.d.ts +1 -1
  48. package/dist/containers/entity_finder/EntityFinder.js +4 -4
  49. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  50. package/dist/containers/entity_finder/EntityFinderModal.d.ts +2 -0
  51. package/dist/containers/entity_finder/EntityFinderModal.js +1 -1
  52. package/dist/containers/entity_finder/EntityFinderModal.js.map +1 -1
  53. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +6 -4
  54. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
  55. package/dist/containers/entity_finder/details/view/DetailsView.d.ts +5 -1
  56. package/dist/containers/entity_finder/details/view/DetailsView.js +9 -2
  57. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  58. package/dist/containers/entity_finder/tree/{TreeView.d.ts → EntityTree.d.ts} +4 -4
  59. package/dist/containers/entity_finder/tree/{TreeView.js → EntityTree.js} +43 -30
  60. package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -0
  61. package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +89 -0
  62. package/dist/containers/entity_finder/tree/VirtualizedTree.js +379 -0
  63. package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -0
  64. package/dist/containers/home_page/featured-data/FacetPlotsCard.d.ts +1 -4
  65. package/dist/containers/home_page/featured-data/FacetPlotsCard.js +11 -8
  66. package/dist/containers/home_page/featured-data/FacetPlotsCard.js.map +1 -1
  67. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.d.ts +1 -1
  68. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +8 -9
  69. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
  70. package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.d.ts +1 -1
  71. package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js +10 -11
  72. package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js.map +1 -1
  73. package/dist/containers/query_wrapper_plot_nav/FilterAndView.d.ts +2 -4
  74. package/dist/containers/query_wrapper_plot_nav/FilterAndView.js +12 -5
  75. package/dist/containers/query_wrapper_plot_nav/FilterAndView.js.map +1 -1
  76. package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.d.ts +1 -2
  77. package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js +9 -10
  78. package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js.map +1 -1
  79. package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.d.ts +4 -4
  80. package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js +53 -35
  81. package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js.map +1 -1
  82. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +1 -1
  83. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
  84. package/dist/containers/table/StandaloneQueryWrapper.d.ts +4 -6
  85. package/dist/containers/table/StandaloneQueryWrapper.js +29 -19
  86. package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
  87. package/dist/containers/table/SynapseTable.d.ts +12 -13
  88. package/dist/containers/table/SynapseTable.js +100 -136
  89. package/dist/containers/table/SynapseTable.js.map +1 -1
  90. package/dist/containers/table/TopLevelControls.d.ts +1 -4
  91. package/dist/containers/table/TopLevelControls.js +27 -43
  92. package/dist/containers/table/TopLevelControls.js.map +1 -1
  93. package/dist/containers/table/datasets/DatasetItemsEditor.js +5 -2
  94. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  95. package/dist/containers/table/table-top/ColumnSelection.d.ts +1 -1
  96. package/dist/containers/table/table-top/ColumnSelection.js +3 -5
  97. package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
  98. package/dist/containers/table/table-top/DownloadOptions.d.ts +0 -2
  99. package/dist/containers/table/table-top/DownloadOptions.js +7 -6
  100. package/dist/containers/table/table-top/DownloadOptions.js.map +1 -1
  101. package/dist/containers/widgets/facet-nav/FacetNav.d.ts +1 -3
  102. package/dist/containers/widgets/facet-nav/FacetNav.js +14 -10
  103. package/dist/containers/widgets/facet-nav/FacetNav.js.map +1 -1
  104. package/dist/containers/widgets/facet-nav/FacetNavPanel.d.ts +5 -8
  105. package/dist/containers/widgets/facet-nav/FacetNavPanel.js +15 -12
  106. package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  107. package/dist/containers/widgets/query-filter/EnumFacetFilter.d.ts +3 -3
  108. package/dist/containers/widgets/query-filter/EnumFacetFilter.js +2 -2
  109. package/dist/containers/widgets/query-filter/EnumFacetFilter.js.map +1 -1
  110. package/dist/containers/widgets/query-filter/QueryFilter.d.ts +7 -12
  111. package/dist/containers/widgets/query-filter/QueryFilter.js +12 -9
  112. package/dist/containers/widgets/query-filter/QueryFilter.js.map +1 -1
  113. package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +4 -4
  114. package/dist/containers/widgets/query-filter/RangeFacetFilter.js +4 -4
  115. package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  116. package/dist/index.d.ts +6 -9
  117. package/dist/index.js +6 -6
  118. package/dist/index.js.map +1 -1
  119. package/dist/style/abstracts/_variables.scss +14 -0
  120. package/dist/style/components/_bar-loader.scss +11 -2
  121. package/dist/style/components/_spinner.scss +2 -2
  122. package/dist/style/components/entity_finder/_tree-node-browse.scss +5 -10
  123. package/dist/style/components/entity_finder/_tree-node-select.scss +17 -23
  124. package/dist/style/components/entity_finder/_tree-view.scss +17 -20
  125. package/dist/style/main.css +42 -27
  126. package/dist/umd/synapse-react-client.development.css +67 -27
  127. package/dist/umd/synapse-react-client.development.css.map +3 -3
  128. package/dist/umd/synapse-react-client.development.js +9865 -3080
  129. package/dist/umd/synapse-react-client.development.js.map +3 -3
  130. package/dist/umd/synapse-react-client.production.min.css +1 -1
  131. package/dist/umd/synapse-react-client.production.min.js +106 -79
  132. package/dist/umd.index.d.ts +2 -1
  133. package/dist/umd.index.js +2 -0
  134. package/dist/umd.index.js.map +1 -1
  135. package/dist/utils/APIConstants.d.ts +1 -0
  136. package/dist/utils/APIConstants.js +3 -2
  137. package/dist/utils/APIConstants.js.map +1 -1
  138. package/dist/utils/SynapseClient.d.ts +62 -20
  139. package/dist/utils/SynapseClient.js +308 -211
  140. package/dist/utils/SynapseClient.js.map +1 -1
  141. package/dist/utils/SynapseConstants.d.ts +1 -0
  142. package/dist/utils/SynapseConstants.js +3 -2
  143. package/dist/utils/SynapseConstants.js.map +1 -1
  144. package/dist/utils/functions/EntityTypeUtils.d.ts +13 -1
  145. package/dist/utils/functions/EntityTypeUtils.js +25 -1
  146. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  147. package/dist/utils/functions/queryUtils.d.ts +2 -2
  148. package/dist/utils/functions/queryUtils.js +22 -5
  149. package/dist/utils/functions/queryUtils.js.map +1 -1
  150. package/dist/utils/functions/sqlFunctions.js +1 -1
  151. package/dist/utils/functions/sqlFunctions.js.map +1 -1
  152. package/dist/utils/functions/unCamelCase.d.ts +1 -1
  153. package/dist/utils/functions/unCamelCase.js.map +1 -1
  154. package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js +3 -3
  155. package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js.map +1 -1
  156. package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.d.ts +4 -3
  157. package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js +67 -1
  158. package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js.map +1 -1
  159. package/dist/utils/synapseTypes/ChangePasswordRequests.d.ts +25 -0
  160. package/dist/utils/synapseTypes/{DownloadListV2/DownloadListQueryResponse.js → ChangePasswordRequests.js} +1 -1
  161. package/dist/utils/synapseTypes/ChangePasswordRequests.js.map +1 -0
  162. package/dist/utils/synapseTypes/FileUploadComplete.d.ts +6 -0
  163. package/dist/utils/synapseTypes/Table/AsynchronousJobStatus.d.ts +5 -4
  164. package/dist/utils/synapseTypes/Table/EntityView.d.ts +8 -0
  165. package/dist/utils/synapseTypes/Table/EntityView.js +9 -0
  166. package/dist/utils/synapseTypes/Table/EntityView.js.map +1 -1
  167. package/dist/utils/synapseTypes/Table/FacetColumnRequest.d.ts +1 -1
  168. package/dist/utils/synapseTypes/Table/FacetColumnResult.d.ts +10 -10
  169. package/dist/utils/synapseTypes/Table/QueryResultBundle.d.ts +1 -0
  170. package/dist/utils/synapseTypes/VerificationSubmission.d.ts +22 -5
  171. package/dist/utils/synapseTypes/VerificationSubmission.js +8 -0
  172. package/dist/utils/synapseTypes/VerificationSubmission.js.map +1 -1
  173. package/dist/utils/types/Writable.d.ts +8 -0
  174. package/dist/utils/{synapseTypes/DownloadListV2/DownloadListManifestResponse.js → types/Writable.js} +1 -1
  175. package/dist/utils/types/Writable.js.map +1 -0
  176. package/dist/utils/typography/Typography.styles.d.ts +1 -1
  177. package/package.json +47 -37
  178. package/dist/containers/Facets.d.ts +0 -43
  179. package/dist/containers/Facets.js +0 -199
  180. package/dist/containers/Facets.js.map +0 -1
  181. package/dist/containers/StackedBarChart.d.ts +0 -63
  182. package/dist/containers/StackedBarChart.js +0 -229
  183. package/dist/containers/StackedBarChart.js.map +0 -1
  184. package/dist/containers/entity_finder/tree/TreeNode.d.ts +0 -25
  185. package/dist/containers/entity_finder/tree/TreeNode.js +0 -89
  186. package/dist/containers/entity_finder/tree/TreeNode.js.map +0 -1
  187. package/dist/containers/entity_finder/tree/TreeView.js.map +0 -1
  188. package/dist/utils/functions/facetUtils.d.ts +0 -44
  189. package/dist/utils/functions/facetUtils.js +0 -84
  190. package/dist/utils/functions/facetUtils.js.map +0 -1
  191. package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.d.ts +0 -4
  192. package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.js.map +0 -1
  193. package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.d.ts +0 -5
  194. package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.js.map +0 -1
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWikiAttachmentsFromEvaluation = exports.getWikiAttachmentsFromEntity = exports.getWikiPageKeyForAccessRequirement = exports.getWikiPageKeyForEntity = exports.getTeamList = exports.getUserTeamList = exports.getUserChallenges = exports.removeUserFavorite = exports.getUserFavorites = exports.getEntityWiki = exports.getEntityBundleV2 = exports.deleteEntity = exports.updateEntity = exports.getEntityHeader = exports.getEntityHeaders = exports.getEntityHeadersByIds = exports.getEntity = exports.getBulkFiles = exports.getFiles = exports.lookupChildEntity = exports.getEntityChildren = exports.getUserProfiles = exports.getGroupHeadersBatch = exports.getUserGroupHeaders = exports.getUserBundle = exports.getUserProfileById = exports.getUserProfile = exports.createProject = exports.createEntity = exports.oAuthSessionRequest = exports.oAuthUrlRequest = exports.login = exports.getFullQueryTableResults = exports.getQueryTableResults = exports.getAsyncResultFromJobId = exports.getFileHandleByIdURL = exports.getActualFileHandleByIdURL = exports.getFileHandleById = exports.getDownloadFromTableRequest = exports.addFilesToDownloadList = exports.getVersion = exports.doPut = exports.doDelete = exports.doGet = exports.doPost = exports.delay = exports.getRootURL = exports.SYNAPSE_STORAGE_LOCATION_ID = exports.ACCESS_TOKEN_COOKIE_KEY = exports.IS_OUTSIDE_SYNAPSE_ORG = void 0;
4
- exports.getAccessRequirement = exports.getRestrictionInformation = exports.getProjectStatistics = exports.rejectFormData = exports.acceptFormData = exports.listFormDataAsFormAdmin = exports.listFormData = exports.submitFormData = exports.deleteFormData = exports.updateFormData = exports.createFormData = exports.updateFormACL = exports.getFormACL = exports.createFormGroup = exports.consentToOAuth2Request = exports.getAuthenticatedOn = exports.getOAuth2Client = exports.hasUserAuthorizedOAuthClient = exports.getOAuth2RequestDescription = exports.getEvaluationSubmissions = exports.deleteEvaluationRound = exports.updateEvaluationRound = exports.createEvaluationRound = exports.getEvaluationRoundsList = exports.getEvaluationRound = exports.deleteEvaluation = exports.createEvaluation = exports.updateEvaluation = exports.getEvaluation = exports.getEvaluationPermissions = exports.submitToEvaluation = exports.createACL = exports.addFilesToDownloadListV2 = exports.createManifestFromDownloadListV2 = exports.createPackageFromDownloadListV2 = exports.addFileToDownloadListV2 = exports.getFileResult = exports.getFileHandleContent = exports.getFileHandleContentFromID = exports.startMultipartUpload = exports.checkUploadComplete = exports.uploadFile = exports.signOut = exports.detectSSOCode = exports.getPrincipalAliasRequest = exports.getUseUtcTimeFromCookie = exports.getAccessTokenFromCookie = exports.setAccessTokenCookie = exports.isInSynapseExperimentalMode = exports.getPresignedUrlForWikiAttachment = void 0;
5
- exports.signSynapseTermsOfUse = exports.bindOAuthProviderToAccount = exports.oAuthRegisterAccountStep2 = exports.registerAccountStep2 = exports.registerAccountStep1 = exports.isAliasAvailable = exports.getNotificationEmail = exports.updateEntityJson = exports.getEntityJson = exports.hasAccessToEntity = exports.getValidationSchema = exports.getSchema = exports.getSchemaValidationResults = exports.getSchemaBinding = exports.cancelDataAccessRequest = exports.submitDataAccessRequest = exports.updateDataAccessRequest = exports.getDataAccessRequestForUpdate = exports.getResearchProject = exports.updateResearchProject = exports.removeItemFromDownloadListV2 = exports.getDownloadListActionsRequired = exports.getDownloadListStatistics = exports.getAvailableFilesToDownload = exports.clearDownloadListV2 = exports.searchEntities = exports.getEntityVersions = exports.getEntityPath = exports.getUserProjects = exports.getMyProjects = exports.deletePersonalAccessToken = exports.getPersonalAccessTokenRecords = exports.createPersonalAccessToken = exports.getTransformSqlWithFacetsRequest = exports.updateTable = exports.deleteDownloadList = exports.deleteDownloadListFiles = exports.getAllOfPaginatedService = exports.getDownloadOrder = exports.getDownloadList = exports.postAccessApproval = exports.getAccessApproval = exports.getAllAccessRequirements = exports.getAccessRequirementStatus = exports.getAccessRequirementById = void 0;
3
+ exports.getTeamList = exports.getUserTeamList = exports.getUserChallenges = exports.removeUserFavorite = exports.getUserFavorites = exports.getEntityWiki = exports.getEntityBundleV2 = exports.deleteEntity = exports.updateEntity = exports.getEntityHeader = exports.getEntityHeaders = exports.getEntityHeadersByIds = exports.getEntity = exports.getBulkFiles = exports.getFiles = exports.lookupChildEntity = exports.getEntityChildren = exports.getUserProfiles = exports.getGroupHeadersBatch = exports.getUserGroupHeaders = exports.updateMyUserProfile = exports.getMyUserBundle = exports.getUserBundle = exports.getUserProfileById = exports.getUserProfile = exports.createProject = exports.createEntity = exports.oAuthSessionRequest = exports.oAuthUrlRequest = exports.login = exports.getFullQueryTableResults = exports.getQueryTableResults = exports.getQueryTableAsyncJobResults = exports.getAsyncResultBodyFromJobId = exports.getAsyncResultFromJobId = exports.getFileHandleByIdURL = exports.getActualFileHandleByIdURL = exports.getFileHandleById = exports.getDownloadFromTableRequest = exports.getVersion = exports.doPut = exports.doDelete = exports.doGet = exports.doPost = exports.SynapseClientError = exports.delay = exports.getRootURL = exports.SYNAPSE_STORAGE_LOCATION_ID = exports.ACCESS_TOKEN_COOKIE_KEY = exports.IS_OUTSIDE_SYNAPSE_ORG = void 0;
4
+ exports.acceptFormData = exports.listFormDataAsFormAdmin = exports.listFormData = exports.submitFormData = exports.deleteFormData = exports.updateFormData = exports.createFormData = exports.updateFormACL = exports.getFormACL = exports.createFormGroup = exports.consentToOAuth2Request = exports.getAuthenticatedOn = exports.getOAuth2Client = exports.hasUserAuthorizedOAuthClient = exports.getOAuth2RequestDescription = exports.getEvaluationSubmissions = exports.deleteEvaluationRound = exports.updateEvaluationRound = exports.createEvaluationRound = exports.getEvaluationRoundsList = exports.getEvaluationRound = exports.deleteEvaluation = exports.createEvaluation = exports.updateEvaluation = exports.getEvaluation = exports.getEvaluationPermissions = exports.submitToEvaluation = exports.createACL = exports.addFilesToDownloadListV2 = exports.createManifestFromDownloadListV2 = exports.createPackageFromDownloadListV2 = exports.addFileToDownloadListV2 = exports.getFileResult = exports.getFileHandleContent = exports.getFileHandleContentFromID = exports.startMultipartUpload = exports.checkUploadComplete = exports.uploadFile = exports.signOut = exports.detectSSOCode = exports.getPrincipalAliasRequest = exports.getUseUtcTimeFromCookie = exports.getAccessTokenFromCookie = exports.setAccessTokenCookie = exports.isInSynapseExperimentalMode = exports.getPresignedUrlForWikiAttachment = exports.getWikiAttachmentsFromEvaluation = exports.getWikiAttachmentsFromEntity = exports.getWikiPageKeyForAccessRequirement = exports.getWikiPageKeyForEntity = void 0;
5
+ exports.createProfileVerificationSubmission = exports.signSynapseTermsOfUse = exports.bindOAuthProviderToAccount = exports.oAuthRegisterAccountStep2 = exports.registerAccountStep2 = exports.registerAccountStep1 = exports.isAliasAvailable = exports.getNotificationEmail = exports.updateEntityJson = exports.getEntityJson = exports.hasAccessToEntity = exports.getValidationSchema = exports.getSchema = exports.getSchemaValidationResults = exports.getSchemaBinding = exports.cancelDataAccessRequest = exports.submitDataAccessRequest = exports.updateDataAccessRequest = exports.getDataAccessRequestForUpdate = exports.getResearchProject = exports.updateResearchProject = exports.removeItemFromDownloadListV2 = exports.getDownloadListActionsRequired = exports.getDownloadListStatistics = exports.getAvailableFilesToDownload = exports.clearDownloadListV2 = exports.searchEntities = exports.getEntityVersions = exports.getEntityPath = exports.getUserProjects = exports.getMyProjects = exports.deletePersonalAccessToken = exports.getPersonalAccessTokenRecords = exports.createPersonalAccessToken = exports.getTransformSqlWithFacetsRequest = exports.updateTable = exports.deleteDownloadList = exports.deleteDownloadListFiles = exports.getAllOfPaginatedService = exports.getDownloadOrder = exports.getDownloadList = exports.postAccessApproval = exports.getAccessApproval = exports.getAllAccessRequirements = exports.getAccessRequirementStatus = exports.getAccessRequirementById = exports.getAccessRequirement = exports.getRestrictionInformation = exports.getProjectStatistics = exports.rejectFormData = void 0;
6
+ exports.changePasswordWithCurrentPassword = void 0;
6
7
  var tslib_1 = require("tslib");
7
8
  var spark_md5_1 = (0, tslib_1.__importDefault)(require("spark-md5"));
8
9
  var universal_cookie_1 = (0, tslib_1.__importDefault)(require("universal-cookie"));
@@ -44,6 +45,21 @@ function delay(t) {
44
45
  });
45
46
  }
46
47
  exports.delay = delay;
48
+ /**
49
+ * Error message returned by the Synapse backend joined with the
50
+ * HTTP status code.
51
+ */
52
+ var SynapseClientError = /** @class */ (function (_super) {
53
+ (0, tslib_1.__extends)(SynapseClientError, _super);
54
+ function SynapseClientError(status, reason) {
55
+ var _this = _super.call(this, reason) || this;
56
+ _this.status = status;
57
+ _this.reason = reason;
58
+ return _this;
59
+ }
60
+ return SynapseClientError;
61
+ }(Error));
62
+ exports.SynapseClientError = SynapseClientError;
47
63
  /*
48
64
  0 - no internet connection
49
65
  429 - Too Many Requests
@@ -52,54 +68,60 @@ exports.delay = delay;
52
68
  504 - Gateway Timeout
53
69
  */
54
70
  var RETRY_STATUS_CODES = [0, 429, 502, 503, 504];
71
+ /**
72
+ * Fetches data, retrying if the HTTP status code indicates that it could be retried. Contains custom logic for
73
+ * handling errors returned by the Synapse backend.
74
+ * @throws SynapseClientError
75
+ */
55
76
  var fetchWithExponentialTimeout = function (url, options, delayMs) {
56
77
  if (delayMs === void 0) { delayMs = 1000; }
57
- return fetch(url, options)
58
- .then(function (resp) {
59
- return resp
60
- .text()
61
- .then(function (text) {
62
- // try to parse it as json
63
- try {
64
- var json = JSON.parse(text);
65
- return resp.ok ? Promise.resolve(json) : Promise.reject(json);
66
- }
67
- catch (error) {
68
- // failed to parse json, return text
69
- return resp.ok ? Promise.resolve(text) : Promise.reject(text);
70
- }
71
- })
72
- .catch(function (error) {
73
- if (resp.ok) {
74
- // possible empty response
75
- return Promise.resolve({
76
- reason: error,
77
- status: resp.status,
78
- });
79
- }
80
- if (error.reason && resp.status) {
81
- // successful return from server but invalid call
82
- return Promise.reject((0, tslib_1.__assign)((0, tslib_1.__assign)({}, error), { status: resp.status }));
78
+ return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
79
+ var response, responseBody, responseObject;
80
+ return (0, tslib_1.__generator)(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0: return [4 /*yield*/, fetch(url, options)];
83
+ case 1:
84
+ response = _a.sent();
85
+ _a.label = 2;
86
+ case 2:
87
+ if (!(response.status && RETRY_STATUS_CODES.includes(response.status))) return [3 /*break*/, 5];
88
+ return [4 /*yield*/, delay(delayMs)
89
+ // Exponential backoff if we re-fetch
90
+ ];
91
+ case 3:
92
+ _a.sent();
93
+ // Exponential backoff if we re-fetch
94
+ delayMs = delayMs * 2;
95
+ return [4 /*yield*/, fetch(url, options)];
96
+ case 4:
97
+ response = _a.sent();
98
+ return [3 /*break*/, 2];
99
+ case 5: return [4 /*yield*/, response.text()];
100
+ case 6:
101
+ responseBody = _a.sent();
102
+ responseObject = responseBody;
103
+ try {
104
+ // try to parse it as json
105
+ responseObject = JSON.parse(responseBody);
106
+ }
107
+ catch (error) {
108
+ console.warn('Failed to parse response as JSON', responseBody);
109
+ }
110
+ if (response.ok) {
111
+ return [2 /*return*/, responseObject];
112
+ }
113
+ else if (typeof responseObject === 'object' && 'reason' in responseObject) {
114
+ throw new SynapseClientError(response.status, responseObject.reason);
115
+ }
116
+ else {
117
+ throw new SynapseClientError(response.status, JSON.stringify(responseObject));
118
+ }
119
+ return [2 /*return*/];
83
120
  }
84
- // This occurs if the response is not ok and does not have json or is empty
85
- return Promise.reject({
86
- reason: error,
87
- status: resp.status,
88
- });
89
121
  });
90
- })
91
- .catch(function (error) {
92
- if (error.status && RETRY_STATUS_CODES.indexOf(error.status) !== -1) {
93
- return delay(delayMs).then(function () {
94
- return fetchWithExponentialTimeout(url, options, delayMs * 2);
95
- });
96
- }
97
- else {
98
- return Promise.reject(error);
99
- }
100
122
  });
101
123
  };
102
- var doPost = function (url, requestJsonObject, accessToken, initCredentials, endpoint) {
124
+ var doPost = function (url, requestJsonObject, accessToken, initCredentials, endpoint, signal) {
103
125
  var options = {
104
126
  body: JSON.stringify(requestJsonObject),
105
127
  headers: {
@@ -110,6 +132,7 @@ var doPost = function (url, requestJsonObject, accessToken, initCredentials, end
110
132
  method: 'POST',
111
133
  mode: 'cors',
112
134
  credentials: initCredentials,
135
+ signal: signal,
113
136
  };
114
137
  if (accessToken) {
115
138
  // @ts-ignore
@@ -179,36 +202,21 @@ var getVersion = function () {
179
202
  return (0, exports.doGet)('/repo/v1/version', undefined, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
180
203
  };
181
204
  exports.getVersion = getVersion;
182
- /**
183
- * https://rest-docs.synapse.org/rest/POST/download/list/add/async/start.html
184
- */
185
- //Start an asynchronous job to add files to a user's download list.
186
- var addFilesToDownloadList = function (request, accessToken, updateParentState) {
187
- return (0, exports.doPost)("/file/v1/download/list/add/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
188
- .then(function (resp) {
189
- var requestUrl = "/file/v1/download/list/add/async/get/" + resp.token;
190
- return (0, exports.getAsyncResultFromJobId)(requestUrl, accessToken, updateParentState).then(function (data) {
191
- (0, dispatchDownloadListChangeEvent_1.dispatchDownloadListChangeEvent)(data.downloadList);
192
- return data;
193
- });
194
- })
195
- .catch(function (error) {
196
- throw error;
197
- });
198
- };
199
- exports.addFilesToDownloadList = addFilesToDownloadList;
200
205
  /**
201
206
  * https://rest-docs.synapse.org/rest/POST/entity/id/table/download/csv/async/start.html
202
207
  */
203
- var getDownloadFromTableRequest = function (request, accessToken, updateParentState) {
208
+ var getDownloadFromTableRequest = function (request, accessToken) {
204
209
  if (accessToken === void 0) { accessToken = undefined; }
205
- return (0, exports.doPost)("/repo/v1/entity/" + request.entityId + "/table/download/csv/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
206
- .then(function (resp) {
207
- var requestUrl = "/repo/v1/entity/" + request.entityId + "/table/download/csv/async/get/" + resp.token;
208
- return (0, exports.getAsyncResultFromJobId)(requestUrl, accessToken, updateParentState);
209
- })
210
- .catch(function (error) {
211
- throw error;
210
+ return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
211
+ var asyncJobId;
212
+ return (0, tslib_1.__generator)(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0: return [4 /*yield*/, (0, exports.doPost)("/repo/v1/entity/" + request.entityId + "/table/download/csv/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
215
+ case 1:
216
+ asyncJobId = _a.sent();
217
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/entity/" + request.entityId + "/table/download/csv/async/get/" + asyncJobId.token, accessToken)];
218
+ }
219
+ });
212
220
  });
213
221
  };
214
222
  exports.getDownloadFromTableRequest = getDownloadFromTableRequest;
@@ -246,45 +254,99 @@ var getFileHandleByIdURL = function (handleId, accessToken) {
246
254
  return (0, exports.doGet)("/file/v1/fileHandle/" + handleId + "/url?redirect=false", accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
247
255
  };
248
256
  exports.getFileHandleByIdURL = getFileHandleByIdURL;
249
- var getAsyncResultFromJobId = function (urlRequest, accessToken, updateParentState) {
250
- if (accessToken === void 0) { accessToken = undefined; }
251
- return (0, exports.doGet)(urlRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
252
- .then(function (resp) {
253
- // is this the job status?
254
- if (resp.jobState && resp.jobState !== 'FAILED') {
255
- updateParentState &&
256
- updateParentState({
257
- asyncJobStatus: resp,
258
- });
259
- // still processing, wait for a second and try again
260
- return delay(500).then(function () {
261
- return (0, exports.getAsyncResultFromJobId)(urlRequest, accessToken, updateParentState);
262
- });
257
+ /**
258
+ * Get a completed asynchronous job. Will refetch every 500ms until COMPLETE or FAILED.
259
+ * @param asyncJobId
260
+ * @param accessToken
261
+ * @param setCurrentAsyncResult - optional function that will receive the AsynchronousJobStatus object every time
262
+ * it's fetched, including while it is in the "PROCESSING" state.
263
+ * @returns
264
+ */
265
+ var getAsyncResultFromJobId = function (asyncJobId, responseBodyEndpoint, accessToken, setCurrentAsyncResult) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
266
+ var response;
267
+ return (0, tslib_1.__generator)(this, function (_a) {
268
+ switch (_a.label) {
269
+ case 0: return [4 /*yield*/, (0, exports.doGet)("/repo/v1/asynchronous/job/" + asyncJobId, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
270
+ case 1:
271
+ response = _a.sent();
272
+ setCurrentAsyncResult === null || setCurrentAsyncResult === void 0 ? void 0 : setCurrentAsyncResult(response);
273
+ _a.label = 2;
274
+ case 2:
275
+ if (!(response.jobState && response.jobState === 'PROCESSING')) return [3 /*break*/, 5];
276
+ return [4 /*yield*/, delay(500)];
277
+ case 3:
278
+ _a.sent();
279
+ return [4 /*yield*/, (0, exports.doGet)("/repo/v1/asynchronous/job/" + asyncJobId, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
280
+ case 4:
281
+ response = _a.sent();
282
+ setCurrentAsyncResult === null || setCurrentAsyncResult === void 0 ? void 0 : setCurrentAsyncResult(response);
283
+ return [3 /*break*/, 2];
284
+ case 5:
285
+ if (response.jobState === 'FAILED') {
286
+ /**
287
+ * While we technically already have the failure reason in the response, the HTTP response doesn't give a helpful error code (e.g. 403)
288
+ * that we can use for an error banner. We can get the HTTP code if we fetch the response body directly.
289
+ */
290
+ (0, exports.doGet)(responseBodyEndpoint, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
291
+ }
292
+ return [2 /*return*/, response];
263
293
  }
264
- // these must be the query results!
265
- return resp;
266
- })
267
- .catch(function (error) {
268
- throw error;
269
294
  });
270
- };
295
+ }); };
271
296
  exports.getAsyncResultFromJobId = getAsyncResultFromJobId;
297
+ /**
298
+ * Get the response body for an asynchronous job, or throw an error if the job failed.
299
+ * @param asyncJobId
300
+ * @param accessToken
301
+ * @returns
302
+ */
303
+ var getAsyncResultBodyFromJobId = function (asyncJobId, responseBodyEndpoint, accessToken) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
304
+ var response;
305
+ return (0, tslib_1.__generator)(this, function (_a) {
306
+ switch (_a.label) {
307
+ case 0: return [4 /*yield*/, (0, exports.getAsyncResultFromJobId)(asyncJobId, responseBodyEndpoint, accessToken)];
308
+ case 1:
309
+ response = _a.sent();
310
+ return [2 /*return*/, response.responseBody];
311
+ }
312
+ });
313
+ }); };
314
+ exports.getAsyncResultBodyFromJobId = getAsyncResultBodyFromJobId;
272
315
  /**
273
316
  * https://rest-docs.synapse.org/rest/POST/entity/id/table/query/nextPage/async/start.html
274
317
  * @param {*} queryBundleRequest
275
318
  * @param {*} accessToken
276
319
  * @param {*} endpoint
277
320
  */
278
- var getQueryTableResults = function (queryBundleRequest, accessToken, updateParentState) {
279
- if (accessToken === void 0) { accessToken = undefined; }
280
- return (0, exports.doPost)("/repo/v1/entity/" + queryBundleRequest.entityId + "/table/query/async/start", queryBundleRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
281
- .then(function (resp) {
282
- return (0, exports.getAsyncResultFromJobId)("/repo/v1/entity/" + queryBundleRequest.entityId + "/table/query/async/get/" + resp.token, accessToken, updateParentState);
283
- })
284
- .catch(function (error) {
285
- throw error;
321
+ var getQueryTableAsyncJobResults = function (queryBundleRequest, accessToken) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
322
+ var asyncJobId;
323
+ return (0, tslib_1.__generator)(this, function (_a) {
324
+ switch (_a.label) {
325
+ case 0: return [4 /*yield*/, (0, exports.doPost)("/repo/v1/entity/" + queryBundleRequest.entityId + "/table/query/async/start", queryBundleRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
326
+ case 1:
327
+ asyncJobId = _a.sent();
328
+ return [2 /*return*/, (0, exports.getAsyncResultFromJobId)(asyncJobId.token, "/repo/v1/entity/" + queryBundleRequest.entityId + "/table/query/async/get/" + asyncJobId.token, accessToken)];
329
+ }
286
330
  });
287
- };
331
+ }); };
332
+ exports.getQueryTableAsyncJobResults = getQueryTableAsyncJobResults;
333
+ /**
334
+ * https://rest-docs.synapse.org/rest/POST/entity/id/table/query/nextPage/async/start.html
335
+ * @param {*} queryBundleRequest
336
+ * @param {*} accessToken
337
+ * @param {*} endpoint
338
+ */
339
+ var getQueryTableResults = function (queryBundleRequest, accessToken) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
340
+ var asyncJobId;
341
+ return (0, tslib_1.__generator)(this, function (_a) {
342
+ switch (_a.label) {
343
+ case 0: return [4 /*yield*/, (0, exports.doPost)("/repo/v1/entity/" + queryBundleRequest.entityId + "/table/query/async/start", queryBundleRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
344
+ case 1:
345
+ asyncJobId = _a.sent();
346
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/entity/" + queryBundleRequest.entityId + "/table/query/async/get/" + asyncJobId.token, accessToken)];
347
+ }
348
+ });
349
+ }); };
288
350
  exports.getQueryTableResults = getQueryTableResults;
289
351
  /**
290
352
  * Run and return results from queryBundleRequest, queryBundle request must be of the
@@ -417,6 +479,26 @@ var getUserBundle = function (id, mask, accessToken) {
417
479
  return (0, exports.doGet)((0, APIConstants_1.USER_ID_BUNDLE)(id) + "?mask=" + mask, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
418
480
  };
419
481
  exports.getUserBundle = getUserBundle;
482
+ /**
483
+ * Return the ucurrent user's bundle
484
+ * http://rest-docs.synapse.org/rest/GET/user/bundle.html
485
+ */
486
+ var getMyUserBundle = function (mask, accessToken) {
487
+ return (0, exports.doGet)(APIConstants_1.USER_BUNDLE + "?mask=" + mask, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
488
+ };
489
+ exports.getMyUserBundle = getMyUserBundle;
490
+ /**
491
+ * Update your own profile
492
+ * @param profile
493
+ * @param accessToken
494
+ * @returns
495
+ */
496
+ var updateMyUserProfile = function (profile, accessToken) {
497
+ if (accessToken === void 0) { accessToken = undefined; }
498
+ var url = '/repo/v1/userProfile';
499
+ return (0, exports.doPut)(url, profile, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
500
+ };
501
+ exports.updateMyUserProfile = updateMyUserProfile;
420
502
  /**
421
503
  * Get Users and Groups that match the given prefix.
422
504
  * http://rest-docs.synapse.org/rest/GET/userGroupHeaders.html
@@ -450,9 +532,9 @@ exports.getUserProfiles = getUserProfiles;
450
532
  * Return the children (Files/Folders) of the given entity (Project or Folder).
451
533
  * https://rest-docs.synapse.org/rest/POST/entity/children.html
452
534
  */
453
- var getEntityChildren = function (request, accessToken) {
535
+ var getEntityChildren = function (request, accessToken, signal) {
454
536
  if (accessToken === void 0) { accessToken = undefined; }
455
- return (0, exports.doPost)('/repo/v1/entity/children', request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
537
+ return (0, exports.doPost)('/repo/v1/entity/children', request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT, signal);
456
538
  };
457
539
  exports.getEntityChildren = getEntityChildren;
458
540
  /**
@@ -479,17 +561,26 @@ exports.getFiles = getFiles;
479
561
  */
480
562
  var getBulkFiles = function (bulkFileDownloadRequest, accessToken) {
481
563
  if (accessToken === void 0) { accessToken = undefined; }
482
- return (0, exports.doPost)('/file/v1/file/bulk/async/start', bulkFileDownloadRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
483
- .then(function (asyncJobId) {
484
- var urlRequest = "/file/v1/file/bulk/async/get/" + asyncJobId.token;
485
- return (0, exports.getAsyncResultFromJobId)(urlRequest, accessToken);
486
- })
487
- .catch(function (err) {
488
- console.error('Error on getBulkFiles ', err);
489
- throw err;
564
+ return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
565
+ var asyncJobId;
566
+ return (0, tslib_1.__generator)(this, function (_a) {
567
+ switch (_a.label) {
568
+ case 0: return [4 /*yield*/, (0, exports.doPost)('/file/v1/file/bulk/async/start', bulkFileDownloadRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
569
+ case 1:
570
+ asyncJobId = _a.sent();
571
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/file/v1/file/bulk/async/get/" + asyncJobId.token, accessToken)];
572
+ }
573
+ });
490
574
  });
491
575
  };
492
576
  exports.getBulkFiles = getBulkFiles;
577
+ /**
578
+ * Bundled access to Entity and related data components.
579
+ * An EntityBundle can be used to create, fetch, or update an Entity and associated
580
+ * objects with a single web service request.
581
+ * See SynapseClient.test.js for an example partsMask.
582
+ * https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/Entity.html
583
+ */
493
584
  var getEntity = function (accessToken, entityId, versionNumber) {
494
585
  if (accessToken === void 0) { accessToken = undefined; }
495
586
  if (entityId.indexOf('.') > -1) {
@@ -794,11 +885,13 @@ var detectSSOCode = function (registerAccountUrl, onError) {
794
885
  }
795
886
  };
796
887
  if (state) {
797
- (0, exports.oAuthRegisterAccountStep2)(state, provider, code, redirectUrl, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT).then(onSuccess)
888
+ (0, exports.oAuthRegisterAccountStep2)(state, provider, code, redirectUrl, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
889
+ .then(onSuccess)
798
890
  .catch(onFailure);
799
891
  }
800
892
  else {
801
- (0, exports.oAuthSessionRequest)(provider, code, redirectUrl, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT).then(onSuccess)
893
+ (0, exports.oAuthSessionRequest)(provider, code, redirectUrl, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
894
+ .then(onSuccess)
802
895
  .catch(onFailure);
803
896
  }
804
897
  }
@@ -810,7 +903,8 @@ var detectSSOCode = function (registerAccountUrl, onError) {
810
903
  onError(err.reason);
811
904
  }
812
905
  };
813
- (0, exports.bindOAuthProviderToAccount)(provider, code, redirectUrl, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT).then(redirectAfterSuccess_1)
906
+ (0, exports.bindOAuthProviderToAccount)(provider, code, redirectUrl, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
907
+ .then(redirectAfterSuccess_1)
814
908
  .catch(onFailure);
815
909
  }
816
910
  }
@@ -978,36 +1072,22 @@ var uploadFilePart = function (presignedUrl, file, contentType) { return (0, tsl
978
1072
  var startMultipartUpload = function (accessToken, fileName, file, request, fileUploadResolve, fileUploadReject) {
979
1073
  var url = '/file/v1/file/multipart';
980
1074
  (0, exports.doPost)(url, request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
981
- .then(function (status) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
982
- var clientSidePartsState, i;
983
- return (0, tslib_1.__generator)(this, function (_a) {
984
- switch (_a.label) {
985
- case 0:
986
- clientSidePartsState = status.partsState
987
- .split('')
988
- .map(function (bit) { return bit === '1'; });
989
- status.clientSidePartsState = clientSidePartsState;
990
- i = 0;
991
- _a.label = 1;
992
- case 1:
993
- if (!(i < clientSidePartsState.length)) return [3 /*break*/, 4];
994
- if (!!clientSidePartsState[i]) return [3 /*break*/, 3];
995
- // upload this part. note that partNumber is always the index+1
996
- return [4 /*yield*/, processFilePart(i + 1, status, accessToken, fileName, file, request, fileUploadResolve, fileUploadReject)];
997
- case 2:
998
- // upload this part. note that partNumber is always the index+1
999
- _a.sent();
1000
- _a.label = 3;
1001
- case 3:
1002
- i = i + 1;
1003
- return [3 /*break*/, 1];
1004
- case 4:
1005
- // in case there is no upload work to do!
1006
- (0, exports.checkUploadComplete)(status, fileName, accessToken, fileUploadResolve, fileUploadReject);
1007
- return [2 /*return*/];
1075
+ .then(function (status) {
1076
+ // started the upload
1077
+ // keep track of the part state client-side
1078
+ var clientSidePartsState = status.partsState
1079
+ .split('')
1080
+ .map(function (bit) { return bit === '1'; });
1081
+ status.clientSidePartsState = clientSidePartsState;
1082
+ for (var i = 0; i < clientSidePartsState.length; i = i + 1) {
1083
+ if (!clientSidePartsState[i]) {
1084
+ // upload this part. note that partNumber is always the index+1
1085
+ processFilePart(i + 1, status, accessToken, fileName, file, request, fileUploadResolve, fileUploadReject);
1008
1086
  }
1009
- });
1010
- }); })
1087
+ }
1088
+ // in case there is no upload work to do!
1089
+ (0, exports.checkUploadComplete)(status, fileName, accessToken, fileUploadResolve, fileUploadReject);
1090
+ })
1011
1091
  .catch(function (error) {
1012
1092
  fileUploadReject(error);
1013
1093
  });
@@ -1111,39 +1191,44 @@ exports.addFileToDownloadListV2 = addFileToDownloadListV2;
1111
1191
  /**
1112
1192
  * http://rest-docs.synapse.org/rest/POST/download/list/package/async/start.html
1113
1193
  */
1114
- var createPackageFromDownloadListV2 = function (zipFileName, accessToken, updateParentState) {
1115
- if (accessToken === void 0) { accessToken = undefined; }
1116
- var request = {
1117
- zipFileName: zipFileName,
1118
- includeManifest: true,
1119
- concreteType: 'org.sagebionetworks.repo.model.download.DownloadListPackageRequest',
1120
- };
1121
- return (0, exports.doPost)("/repo/v1/download/list/package/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
1122
- .then(function (resp) {
1123
- var requestUrl = "/repo/v1/download/list/package/async/get/" + resp.token;
1124
- return (0, exports.getAsyncResultFromJobId)(requestUrl, accessToken, updateParentState);
1125
- })
1126
- .catch(function (error) {
1127
- throw error;
1194
+ var createPackageFromDownloadListV2 = function (zipFileName, accessToken) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
1195
+ var request, asyncJobId;
1196
+ return (0, tslib_1.__generator)(this, function (_a) {
1197
+ switch (_a.label) {
1198
+ case 0:
1199
+ request = {
1200
+ zipFileName: zipFileName,
1201
+ includeManifest: true,
1202
+ concreteType: 'org.sagebionetworks.repo.model.download.DownloadListPackageRequest',
1203
+ };
1204
+ return [4 /*yield*/, (0, exports.doPost)("/repo/v1/download/list/package/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
1205
+ case 1:
1206
+ asyncJobId = _a.sent();
1207
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/download/list/package/async/get/" + asyncJobId.token, accessToken)];
1208
+ }
1128
1209
  });
1129
- };
1210
+ }); };
1130
1211
  exports.createPackageFromDownloadListV2 = createPackageFromDownloadListV2;
1131
1212
  /**
1132
1213
  * http://rest-docs.synapse.org/rest/POST/download/list/package/async/start.html
1133
1214
  */
1134
- var createManifestFromDownloadListV2 = function (accessToken, updateParentState) {
1215
+ var createManifestFromDownloadListV2 = function (accessToken) {
1135
1216
  if (accessToken === void 0) { accessToken = undefined; }
1136
- var request = {
1137
- csvTableDescriptor: {},
1138
- concreteType: 'org.sagebionetworks.repo.model.download.DownloadListManifestRequest',
1139
- };
1140
- return (0, exports.doPost)("/repo/v1/download/list/manifest/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
1141
- .then(function (resp) {
1142
- var requestUrl = "/repo/v1/download/list/manifest/async/get/" + resp.token;
1143
- return (0, exports.getAsyncResultFromJobId)(requestUrl, accessToken, updateParentState);
1144
- })
1145
- .catch(function (error) {
1146
- throw error;
1217
+ return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
1218
+ var request, asyncJobId;
1219
+ return (0, tslib_1.__generator)(this, function (_a) {
1220
+ switch (_a.label) {
1221
+ case 0:
1222
+ request = {
1223
+ csvTableDescriptor: {},
1224
+ concreteType: 'org.sagebionetworks.repo.model.download.DownloadListManifestRequest',
1225
+ };
1226
+ return [4 /*yield*/, (0, exports.doPost)("/repo/v1/download/list/manifest/async/start", request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
1227
+ case 1:
1228
+ asyncJobId = _a.sent();
1229
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/download/list/manifest/async/get/" + asyncJobId.token, accessToken)];
1230
+ }
1231
+ });
1147
1232
  });
1148
1233
  };
1149
1234
  exports.createManifestFromDownloadListV2 = createManifestFromDownloadListV2;
@@ -1151,17 +1236,17 @@ exports.createManifestFromDownloadListV2 = createManifestFromDownloadListV2;
1151
1236
  * http://rest-docs.synapse.org/rest/POST/download/list/add/async/start.html
1152
1237
  * Start an asynchronous job to add files to a user's download list from either a view query or a folder. Use GET /download/list/add/async/get/{asyncToken} to get both the job status and job results.
1153
1238
  */
1154
- var addFilesToDownloadListV2 = function (request, accessToken, updateParentState) {
1239
+ var addFilesToDownloadListV2 = function (request, accessToken) {
1155
1240
  if (accessToken === void 0) { accessToken = undefined; }
1156
1241
  return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
1242
+ var asyncJobId;
1157
1243
  return (0, tslib_1.__generator)(this, function (_a) {
1158
- return [2 /*return*/, (0, exports.doPost)('/repo/v1//download/list/add/async/start', request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
1159
- .then(function (resp) {
1160
- return (0, exports.getAsyncResultFromJobId)("/repo/v1/download/list/add/async/get/" + resp.token, accessToken, updateParentState);
1161
- })
1162
- .catch(function (error) {
1163
- throw error;
1164
- })];
1244
+ switch (_a.label) {
1245
+ case 0: return [4 /*yield*/, (0, exports.doPost)('/repo/v1/download/list/add/async/start', request, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
1246
+ case 1:
1247
+ asyncJobId = _a.sent();
1248
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/download/list/add/async/get/" + asyncJobId.token, accessToken)];
1249
+ }
1165
1250
  });
1166
1251
  });
1167
1252
  };
@@ -1605,14 +1690,18 @@ exports.deleteDownloadList = deleteDownloadList;
1605
1690
  * @param {*} endpoint
1606
1691
  * // technically returns a TableUpdateTransactionResponse, but I don't see any reason we need this
1607
1692
  */
1608
- var updateTable = function (tableUpdateRequest, accessToken, updateParentState) {
1693
+ var updateTable = function (tableUpdateRequest, accessToken) {
1609
1694
  if (accessToken === void 0) { accessToken = undefined; }
1610
- return (0, exports.doPost)("/repo/v1/entity/" + tableUpdateRequest.entityId + "/table/transaction/async/start", tableUpdateRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
1611
- .then(function (resp) {
1612
- return (0, exports.getAsyncResultFromJobId)("/repo/v1/entity/" + tableUpdateRequest.entityId + "/table/transaction/async/get/" + resp.token, accessToken, updateParentState);
1613
- })
1614
- .catch(function (error) {
1615
- throw error;
1695
+ return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
1696
+ var asyncJobId;
1697
+ return (0, tslib_1.__generator)(this, function (_a) {
1698
+ switch (_a.label) {
1699
+ case 0: return [4 /*yield*/, (0, exports.doPost)("/repo/v1/entity/" + tableUpdateRequest.entityId + "/table/transaction/async/start", tableUpdateRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
1700
+ case 1:
1701
+ asyncJobId = _a.sent();
1702
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/entity/" + tableUpdateRequest.entityId + "/table/transaction/async/get/" + asyncJobId.token, accessToken)];
1703
+ }
1704
+ });
1616
1705
  });
1617
1706
  };
1618
1707
  exports.updateTable = updateTable;
@@ -1664,23 +1753,22 @@ var searchEntities = function (query, accessToken) {
1664
1753
  return (0, exports.doPost)('/repo/v1/search', query, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
1665
1754
  };
1666
1755
  exports.searchEntities = searchEntities;
1667
- var getDownloadListJobResponse = function (accessToken, queryRequestDetails) {
1668
- var downloadListQueryRequest = {
1669
- concreteType: 'org.sagebionetworks.repo.model.download.DownloadListQueryRequest',
1670
- requestDetails: queryRequestDetails,
1671
- };
1672
- return (0, exports.doPost)('/repo/v1/download/list/query/async/start', downloadListQueryRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
1673
- .then(function (asyncJobId) {
1674
- var urlRequest = "/repo/v1/download/list/query/async/get/" + asyncJobId.token;
1675
- return (0, exports.getAsyncResultFromJobId)(urlRequest, accessToken).then(function (queryResponse) {
1676
- return queryResponse.responseDetails;
1677
- });
1678
- })
1679
- .catch(function (err) {
1680
- console.error('Error on getDownloadListV2 ', err);
1681
- throw err;
1756
+ var getDownloadListJobResponse = function (accessToken, queryRequestDetails) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
1757
+ var downloadListQueryRequest, asyncJobId;
1758
+ return (0, tslib_1.__generator)(this, function (_a) {
1759
+ switch (_a.label) {
1760
+ case 0:
1761
+ downloadListQueryRequest = {
1762
+ concreteType: 'org.sagebionetworks.repo.model.download.DownloadListQueryRequest',
1763
+ requestDetails: queryRequestDetails,
1764
+ };
1765
+ return [4 /*yield*/, (0, exports.doPost)('/repo/v1/download/list/query/async/start', downloadListQueryRequest, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
1766
+ case 1:
1767
+ asyncJobId = _a.sent();
1768
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, "/repo/v1/download/list/query/async/get/" + asyncJobId.token, accessToken)];
1769
+ }
1682
1770
  });
1683
- };
1771
+ }); };
1684
1772
  /**
1685
1773
  * Clear all files from the user's Download List v2.
1686
1774
  * http://rest-docs.synapse.org/rest/DELETE/download/list.html
@@ -1800,18 +1888,17 @@ exports.getSchema = getSchema;
1800
1888
  * @returns
1801
1889
  */
1802
1890
  var getValidationSchema = function (schema$id, accessToken) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
1891
+ var asyncJobId;
1803
1892
  return (0, tslib_1.__generator)(this, function (_a) {
1804
- return [2 /*return*/, (0, exports.doPost)(APIConstants_1.SCHEMA_VALIDATION_START, {
1805
- concreteType: 'org.sagebionetworks.repo.model.schema.GetValidationSchemaRequest',
1806
- $id: schema$id,
1807
- }, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)
1808
- .then(function (asyncJobId) {
1809
- return (0, exports.getAsyncResultFromJobId)((0, APIConstants_1.SCHEMA_VALIDATION_GET)(asyncJobId.token), accessToken);
1810
- })
1811
- .catch(function (err) {
1812
- console.error('Error on getValidationSchema ', err);
1813
- throw err;
1814
- })];
1893
+ switch (_a.label) {
1894
+ case 0: return [4 /*yield*/, (0, exports.doPost)(APIConstants_1.SCHEMA_VALIDATION_START, {
1895
+ concreteType: 'org.sagebionetworks.repo.model.schema.GetValidationSchemaRequest',
1896
+ $id: schema$id,
1897
+ }, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT)];
1898
+ case 1:
1899
+ asyncJobId = _a.sent();
1900
+ return [2 /*return*/, (0, exports.getAsyncResultBodyFromJobId)(asyncJobId.token, (0, APIConstants_1.SCHEMA_VALIDATION_GET)(asyncJobId.token), accessToken)];
1901
+ }
1815
1902
  });
1816
1903
  }); };
1817
1904
  exports.getValidationSchema = getValidationSchema;
@@ -1914,4 +2001,14 @@ var signSynapseTermsOfUse = function (accessToken) {
1914
2001
  return (0, exports.doPost)(APIConstants_1.SIGN_TERMS_OF_USE, { accessToken: accessToken }, undefined, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
1915
2002
  };
1916
2003
  exports.signSynapseTermsOfUse = signSynapseTermsOfUse;
2004
+ //https://rest-docs.synapse.org/rest/POST/verificationSubmission.html
2005
+ var createProfileVerificationSubmission = function (verificationSubmission, accessToken) {
2006
+ return (0, exports.doPost)(APIConstants_1.VERIFICATION_SUBMISSION, verificationSubmission, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
2007
+ };
2008
+ exports.createProfileVerificationSubmission = createProfileVerificationSubmission;
2009
+ // https://rest-docs.synapse.org/rest/POST/user/changePassword.html
2010
+ var changePasswordWithCurrentPassword = function (newPassword, accessToken) {
2011
+ return (0, exports.doPost)('/auth/v1/user/changePassword', newPassword, accessToken, undefined, getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT);
2012
+ };
2013
+ exports.changePasswordWithCurrentPassword = changePasswordWithCurrentPassword;
1917
2014
  //# sourceMappingURL=SynapseClient.js.map