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.
- package/dist/containers/CardContainer.d.ts +0 -8
- package/dist/containers/CardContainer.js +13 -23
- package/dist/containers/CardContainer.js.map +1 -1
- package/dist/containers/CardContainerLogic.d.ts +3 -76
- package/dist/containers/CardContainerLogic.js +29 -150
- package/dist/containers/CardContainerLogic.js.map +1 -1
- package/dist/containers/ChangePassword.d.ts +3 -0
- package/dist/containers/ChangePassword.js +88 -0
- package/dist/containers/ChangePassword.js.map +1 -0
- package/dist/containers/FileUpload.d.ts +1 -1
- package/dist/containers/FileUpload.js.map +1 -1
- package/dist/containers/FluidModal.d.ts +2 -0
- package/dist/containers/FluidModal.js +6 -1
- package/dist/containers/FluidModal.js.map +1 -1
- package/dist/containers/FullTextSearch.d.ts +1 -5
- package/dist/containers/FullTextSearch.js +9 -9
- package/dist/containers/FullTextSearch.js.map +1 -1
- package/dist/containers/LoadingScreen.d.ts +7 -1
- package/dist/containers/LoadingScreen.js +15 -4
- package/dist/containers/LoadingScreen.js.map +1 -1
- package/dist/containers/QueryCount.js.map +1 -1
- package/dist/containers/QueryVisualizationWrapper.d.ts +48 -0
- package/dist/containers/QueryVisualizationWrapper.js +81 -0
- package/dist/containers/QueryVisualizationWrapper.js.map +1 -0
- package/dist/containers/QueryWrapper.d.ts +55 -145
- package/dist/containers/QueryWrapper.js +206 -263
- package/dist/containers/QueryWrapper.js.map +1 -1
- package/dist/containers/QueryWrapperErrorBanner.d.ts +5 -0
- package/dist/containers/QueryWrapperErrorBanner.js +16 -0
- package/dist/containers/QueryWrapperErrorBanner.js.map +1 -0
- package/dist/containers/SearchV2.d.ts +6 -2
- package/dist/containers/SearchV2.js +11 -11
- package/dist/containers/SearchV2.js.map +1 -1
- package/dist/containers/SqlEditor.d.ts +1 -5
- package/dist/containers/SqlEditor.js +8 -7
- package/dist/containers/SqlEditor.js.map +1 -1
- package/dist/containers/ToastMessage.d.ts +1 -1
- package/dist/containers/TotalQueryResults.d.ts +3 -6
- package/dist/containers/TotalQueryResults.js +42 -58
- package/dist/containers/TotalQueryResults.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.d.ts +1 -7
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
- package/dist/containers/download_list/DownloadConfirmation.d.ts +0 -5
- package/dist/containers/download_list/DownloadConfirmation.js +16 -18
- package/dist/containers/download_list/DownloadConfirmation.js.map +1 -1
- package/dist/containers/entity/annotations/AdditionalPropertiesSchemaField.d.ts +1 -1
- package/dist/containers/entity_finder/EntityFinder.d.ts +1 -1
- package/dist/containers/entity_finder/EntityFinder.js +4 -4
- package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
- package/dist/containers/entity_finder/EntityFinderModal.d.ts +2 -0
- package/dist/containers/entity_finder/EntityFinderModal.js +1 -1
- package/dist/containers/entity_finder/EntityFinderModal.js.map +1 -1
- package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +6 -4
- package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/view/DetailsView.d.ts +5 -1
- package/dist/containers/entity_finder/details/view/DetailsView.js +9 -2
- package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
- package/dist/containers/entity_finder/tree/{TreeView.d.ts → EntityTree.d.ts} +4 -4
- package/dist/containers/entity_finder/tree/{TreeView.js → EntityTree.js} +43 -30
- package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -0
- package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +89 -0
- package/dist/containers/entity_finder/tree/VirtualizedTree.js +379 -0
- package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -0
- package/dist/containers/home_page/featured-data/FacetPlotsCard.d.ts +1 -4
- package/dist/containers/home_page/featured-data/FacetPlotsCard.js +11 -8
- package/dist/containers/home_page/featured-data/FacetPlotsCard.js.map +1 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.d.ts +1 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +8 -9
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.d.ts +1 -1
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js +10 -11
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/FilterAndView.d.ts +2 -4
- package/dist/containers/query_wrapper_plot_nav/FilterAndView.js +12 -5
- package/dist/containers/query_wrapper_plot_nav/FilterAndView.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.d.ts +1 -2
- package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js +9 -10
- package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.d.ts +4 -4
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js +53 -35
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +1 -1
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
- package/dist/containers/table/StandaloneQueryWrapper.d.ts +4 -6
- package/dist/containers/table/StandaloneQueryWrapper.js +29 -19
- package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
- package/dist/containers/table/SynapseTable.d.ts +12 -13
- package/dist/containers/table/SynapseTable.js +100 -136
- package/dist/containers/table/SynapseTable.js.map +1 -1
- package/dist/containers/table/TopLevelControls.d.ts +1 -4
- package/dist/containers/table/TopLevelControls.js +27 -43
- package/dist/containers/table/TopLevelControls.js.map +1 -1
- package/dist/containers/table/datasets/DatasetItemsEditor.js +5 -2
- package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/containers/table/table-top/ColumnSelection.d.ts +1 -1
- package/dist/containers/table/table-top/ColumnSelection.js +3 -5
- package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
- package/dist/containers/table/table-top/DownloadOptions.d.ts +0 -2
- package/dist/containers/table/table-top/DownloadOptions.js +7 -6
- package/dist/containers/table/table-top/DownloadOptions.js.map +1 -1
- package/dist/containers/widgets/facet-nav/FacetNav.d.ts +1 -3
- package/dist/containers/widgets/facet-nav/FacetNav.js +14 -10
- package/dist/containers/widgets/facet-nav/FacetNav.js.map +1 -1
- package/dist/containers/widgets/facet-nav/FacetNavPanel.d.ts +5 -8
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js +15 -12
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/containers/widgets/query-filter/EnumFacetFilter.d.ts +3 -3
- package/dist/containers/widgets/query-filter/EnumFacetFilter.js +2 -2
- package/dist/containers/widgets/query-filter/EnumFacetFilter.js.map +1 -1
- package/dist/containers/widgets/query-filter/QueryFilter.d.ts +7 -12
- package/dist/containers/widgets/query-filter/QueryFilter.js +12 -9
- package/dist/containers/widgets/query-filter/QueryFilter.js.map +1 -1
- package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +4 -4
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js +4 -4
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/style/abstracts/_variables.scss +14 -0
- package/dist/style/components/_bar-loader.scss +11 -2
- package/dist/style/components/_spinner.scss +2 -2
- package/dist/style/components/entity_finder/_tree-node-browse.scss +5 -10
- package/dist/style/components/entity_finder/_tree-node-select.scss +17 -23
- package/dist/style/components/entity_finder/_tree-view.scss +17 -20
- package/dist/style/main.css +42 -27
- package/dist/umd/synapse-react-client.development.css +67 -27
- package/dist/umd/synapse-react-client.development.css.map +3 -3
- package/dist/umd/synapse-react-client.development.js +9865 -3080
- package/dist/umd/synapse-react-client.development.js.map +3 -3
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +106 -79
- package/dist/umd.index.d.ts +2 -1
- package/dist/umd.index.js +2 -0
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.js +3 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +62 -20
- package/dist/utils/SynapseClient.js +308 -211
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/SynapseConstants.d.ts +1 -0
- package/dist/utils/SynapseConstants.js +3 -2
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts +13 -1
- package/dist/utils/functions/EntityTypeUtils.js +25 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/queryUtils.d.ts +2 -2
- package/dist/utils/functions/queryUtils.js +22 -5
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/sqlFunctions.js +1 -1
- package/dist/utils/functions/sqlFunctions.js.map +1 -1
- package/dist/utils/functions/unCamelCase.d.ts +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js +3 -3
- package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.d.ts +4 -3
- package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js +67 -1
- package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js.map +1 -1
- package/dist/utils/synapseTypes/ChangePasswordRequests.d.ts +25 -0
- package/dist/utils/synapseTypes/{DownloadListV2/DownloadListQueryResponse.js → ChangePasswordRequests.js} +1 -1
- package/dist/utils/synapseTypes/ChangePasswordRequests.js.map +1 -0
- package/dist/utils/synapseTypes/FileUploadComplete.d.ts +6 -0
- package/dist/utils/synapseTypes/Table/AsynchronousJobStatus.d.ts +5 -4
- package/dist/utils/synapseTypes/Table/EntityView.d.ts +8 -0
- package/dist/utils/synapseTypes/Table/EntityView.js +9 -0
- package/dist/utils/synapseTypes/Table/EntityView.js.map +1 -1
- package/dist/utils/synapseTypes/Table/FacetColumnRequest.d.ts +1 -1
- package/dist/utils/synapseTypes/Table/FacetColumnResult.d.ts +10 -10
- package/dist/utils/synapseTypes/Table/QueryResultBundle.d.ts +1 -0
- package/dist/utils/synapseTypes/VerificationSubmission.d.ts +22 -5
- package/dist/utils/synapseTypes/VerificationSubmission.js +8 -0
- package/dist/utils/synapseTypes/VerificationSubmission.js.map +1 -1
- package/dist/utils/types/Writable.d.ts +8 -0
- package/dist/utils/{synapseTypes/DownloadListV2/DownloadListManifestResponse.js → types/Writable.js} +1 -1
- package/dist/utils/types/Writable.js.map +1 -0
- package/dist/utils/typography/Typography.styles.d.ts +1 -1
- package/package.json +47 -37
- package/dist/containers/Facets.d.ts +0 -43
- package/dist/containers/Facets.js +0 -199
- package/dist/containers/Facets.js.map +0 -1
- package/dist/containers/StackedBarChart.d.ts +0 -63
- package/dist/containers/StackedBarChart.js +0 -229
- package/dist/containers/StackedBarChart.js.map +0 -1
- package/dist/containers/entity_finder/tree/TreeNode.d.ts +0 -25
- package/dist/containers/entity_finder/tree/TreeNode.js +0 -89
- package/dist/containers/entity_finder/tree/TreeNode.js.map +0 -1
- package/dist/containers/entity_finder/tree/TreeView.js.map +0 -1
- package/dist/utils/functions/facetUtils.d.ts +0 -44
- package/dist/utils/functions/facetUtils.js +0 -84
- package/dist/utils/functions/facetUtils.js.map +0 -1
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.d.ts +0 -4
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.js.map +0 -1
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.d.ts +0 -5
- 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.
|
|
4
|
-
exports.
|
|
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
|
|
58
|
-
|
|
59
|
-
return
|
|
60
|
-
.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
|
208
|
+
var getDownloadFromTableRequest = function (request, accessToken) {
|
|
204
209
|
if (accessToken === void 0) { accessToken = undefined; }
|
|
205
|
-
return (0,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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
|
|
279
|
-
|
|
280
|
-
return (0,
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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,
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
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)
|
|
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)
|
|
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)
|
|
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) {
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
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,
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
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
|
|
1215
|
+
var createManifestFromDownloadListV2 = function (accessToken) {
|
|
1135
1216
|
if (accessToken === void 0) { accessToken = undefined; }
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
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
|
|
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
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
.
|
|
1163
|
-
|
|
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
|
|
1693
|
+
var updateTable = function (tableUpdateRequest, accessToken) {
|
|
1609
1694
|
if (accessToken === void 0) { accessToken = undefined; }
|
|
1610
|
-
return (0,
|
|
1611
|
-
|
|
1612
|
-
return (0,
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
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
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
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
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
.
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
.
|
|
1812
|
-
|
|
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
|