@ibm-aspera/sdk 0.2.29 → 0.2.30
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/commonjs/app/core.d.ts +191 -0
- package/dist/commonjs/app/core.js +682 -0
- package/dist/commonjs/app/installer.d.ts +9 -0
- package/dist/commonjs/app/installer.js +50 -0
- package/dist/commonjs/connect/core.d.ts +11 -0
- package/dist/commonjs/connect/core.js +73 -0
- package/dist/commonjs/constants/constants.d.ts +8 -0
- package/dist/commonjs/constants/constants.js +11 -0
- package/dist/commonjs/constants/messages.d.ts +35 -0
- package/dist/commonjs/constants/messages.js +38 -0
- package/dist/commonjs/helpers/client/client.d.ts +5 -0
- package/dist/commonjs/helpers/client/client.js +7 -0
- package/dist/commonjs/helpers/client/http-client.d.ts +42 -0
- package/dist/commonjs/helpers/client/http-client.js +84 -0
- package/dist/commonjs/helpers/client/safari-client.d.ts +101 -0
- package/dist/commonjs/helpers/client/safari-client.js +264 -0
- package/dist/commonjs/helpers/helpers.d.ts +109 -0
- package/dist/commonjs/helpers/helpers.js +249 -0
- package/dist/commonjs/helpers/http.d.ts +16 -0
- package/dist/commonjs/helpers/http.js +42 -0
- package/dist/commonjs/helpers/ws.d.ts +62 -0
- package/dist/commonjs/helpers/ws.js +161 -0
- package/dist/commonjs/http-gateway/core.d.ts +76 -0
- package/dist/commonjs/http-gateway/core.js +254 -0
- package/dist/commonjs/http-gateway/download.d.ts +14 -0
- package/dist/commonjs/http-gateway/download.js +187 -0
- package/dist/commonjs/http-gateway/index.d.ts +11 -0
- package/dist/commonjs/http-gateway/index.js +11 -0
- package/dist/commonjs/http-gateway/models.d.ts +16 -0
- package/dist/commonjs/http-gateway/models.js +2 -0
- package/dist/commonjs/http-gateway/upload.d.ts +14 -0
- package/dist/commonjs/http-gateway/upload.js +124 -0
- package/dist/commonjs/index.d.ts +8 -0
- package/dist/commonjs/index.js +100 -0
- package/dist/commonjs/models/aspera-sdk.model.d.ts +245 -0
- package/dist/commonjs/models/aspera-sdk.model.js +345 -0
- package/dist/commonjs/models/models.d.ts +712 -0
- package/dist/commonjs/models/models.js +2 -0
- package/dist/js/aspera-sdk.js +3 -0
- package/dist/js/aspera-sdk.js.LICENSE.txt +15 -0
- package/dist/js/aspera-sdk.js.map +1 -0
- package/package.json +5 -1
- package/.editorconfig +0 -13
- package/.github/CODEOWNERS +0 -1
- package/.github/CODE_OF_CONDUCT.md +0 -128
- package/.github/CONTRIBUTING.md +0 -147
- package/.github/dependabot.yml +0 -10
- package/.github/workflows/ci.yml +0 -39
- package/.github/workflows/documentation.yml +0 -44
- package/.github/workflows/publish.yml +0 -23
- package/.github/workflows/version.yml +0 -32
- package/.whitesource +0 -3
- package/CHANGELOG.md +0 -204
- package/docs/DEVELOPMENT.md +0 -38
- package/eslint.config.js +0 -104
- package/example/README.md +0 -7
- package/example/index.html +0 -14
- package/example/package-lock.json +0 -2989
- package/example/package.json +0 -30
- package/example/public/404.html +0 -5
- package/example/public/sdk-code.js +0 -326
- package/example/src/App/App.scss +0 -40
- package/example/src/App/index.tsx +0 -196
- package/example/src/Views/AllTogether.tsx +0 -26
- package/example/src/Views/DragDrop.tsx +0 -23
- package/example/src/Views/Home.tsx +0 -10
- package/example/src/Views/Initialize.tsx +0 -31
- package/example/src/Views/Installer.tsx +0 -154
- package/example/src/Views/MonitorTransfers.tsx +0 -88
- package/example/src/Views/Other.tsx +0 -24
- package/example/src/Views/SelectItems.tsx +0 -46
- package/example/src/Views/StartTransfer.tsx +0 -37
- package/example/src/Views/Test.tsx +0 -20
- package/example/src/Views/Views.scss +0 -111
- package/example/src/helpers/index.ts +0 -19
- package/example/src/index.scss +0 -47
- package/example/src/main.tsx +0 -17
- package/example/src/vite-env.d.ts +0 -2
- package/example/tsconfig.json +0 -30
- package/example/vite.config.ts +0 -23
- package/jest.config.js +0 -19
- package/jest.setup.js +0 -0
- package/renovate.json +0 -12
- package/src/app/core.ts +0 -765
- package/src/app/installer.ts +0 -53
- package/src/connect/core.ts +0 -83
- package/src/constants/constants.ts +0 -19
- package/src/constants/messages.ts +0 -35
- package/src/helpers/client/client.ts +0 -11
- package/src/helpers/client/http-client.ts +0 -92
- package/src/helpers/client/safari-client.ts +0 -334
- package/src/helpers/helpers.ts +0 -253
- package/src/helpers/http.ts +0 -39
- package/src/helpers/ws.ts +0 -191
- package/src/http-gateway/core.ts +0 -273
- package/src/http-gateway/download.ts +0 -217
- package/src/http-gateway/index.ts +0 -19
- package/src/http-gateway/models.ts +0 -20
- package/src/http-gateway/upload.ts +0 -148
- package/src/index.ts +0 -72
- package/src/models/aspera-sdk.model.ts +0 -446
- package/src/models/models.ts +0 -740
- package/tests/client.spec.ts +0 -52
- package/tests/core.spec.ts +0 -13
- package/tests/helpers.spec.ts +0 -127
- package/tests/http.spec.ts +0 -14
- package/tests/installer.spec.ts +0 -135
- package/tests/mocks.ts +0 -11
- package/tsconfig.json +0 -14
- package/tsconfig.module.json +0 -16
- package/typedoc.js +0 -7
- package/webpack.config.js +0 -35
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpDownload = void 0;
|
|
4
|
+
var index_1 = require("../index");
|
|
5
|
+
var helpers_1 = require("../helpers/helpers");
|
|
6
|
+
var messages_1 = require("../constants/messages");
|
|
7
|
+
var core_1 = require("./core");
|
|
8
|
+
var http_gateway_sdk_js_1 = require("@ibm-aspera/http-gateway-sdk-js");
|
|
9
|
+
/**
|
|
10
|
+
* HTTP Gateway Download Logic for presigned flow
|
|
11
|
+
* Presigned flow is when used files are too large or unknown file size
|
|
12
|
+
*
|
|
13
|
+
* @param transferSpec - TransferSpec for the download
|
|
14
|
+
* @param asperaSdkSpec IBM Aspera settings when starting a transfer.
|
|
15
|
+
*
|
|
16
|
+
* @returns Promise that resolves on success invoke or rejects if unable to start
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* This function is used internally and not exported.
|
|
20
|
+
*/
|
|
21
|
+
var httpDownloadPresigned = function (transferSpec, asperaSdkSpec) {
|
|
22
|
+
// create a transfer sdk object
|
|
23
|
+
var transferObject = (0, core_1.getSdkTransfer)(transferSpec);
|
|
24
|
+
transferObject.httpDownloadExternalHandle = true;
|
|
25
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
26
|
+
var triggerFailed = function (error) {
|
|
27
|
+
var errorData = (0, core_1.getMessageFromError)(error.response || error);
|
|
28
|
+
transferObject.status = 'failed';
|
|
29
|
+
transferObject.error_code = errorData.code;
|
|
30
|
+
transferObject.error_desc = errorData.message;
|
|
31
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
32
|
+
};
|
|
33
|
+
var url = new URL((asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_override_server_url) || index_1.asperaSdk.globals.httpGatewayUrl);
|
|
34
|
+
var headers = {
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
accept: 'application/json',
|
|
37
|
+
};
|
|
38
|
+
if (asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_authentication) {
|
|
39
|
+
headers['Authorization'] = "Bearer ".concat(asperaSdkSpec.http_gateway_authentication.token);
|
|
40
|
+
headers['X-Aspera-AccessKey'] = asperaSdkSpec.http_gateway_authentication.access_key;
|
|
41
|
+
}
|
|
42
|
+
var protocol = url.protocol === 'https:' ? 'https' : 'http';
|
|
43
|
+
return fetch("".concat(url.toString(), "/presign"), {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: headers,
|
|
46
|
+
body: (0, helpers_1.safeJsonString)({
|
|
47
|
+
transfer_spec: transferSpec,
|
|
48
|
+
method: 'GET',
|
|
49
|
+
protocol: protocol,
|
|
50
|
+
headers: {
|
|
51
|
+
host: url.host,
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
}).then(function (response) {
|
|
55
|
+
return response.json().then(function (data) {
|
|
56
|
+
return {
|
|
57
|
+
headers: response.headers,
|
|
58
|
+
body: data,
|
|
59
|
+
status: response.status,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
}).then(function (response) {
|
|
63
|
+
if (response.status >= 400) {
|
|
64
|
+
triggerFailed(response.body);
|
|
65
|
+
return transferObject;
|
|
66
|
+
}
|
|
67
|
+
transferObject.httpRequestId = response.headers.get('X-Request-Id');
|
|
68
|
+
transferObject.status = 'running';
|
|
69
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
70
|
+
var iframe = document.createElement('iframe');
|
|
71
|
+
iframe.src = response.body.signed_url;
|
|
72
|
+
iframe.width = '1px';
|
|
73
|
+
iframe.height = '1px';
|
|
74
|
+
index_1.asperaSdk.globals.httpGatewayIframeContainer.appendChild(iframe);
|
|
75
|
+
return transferObject;
|
|
76
|
+
}).catch(function (error) {
|
|
77
|
+
triggerFailed(error);
|
|
78
|
+
return transferObject;
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* HTTP Gateway Download Logic for in browser download with progress
|
|
83
|
+
* This is used when the transfer size is known and under the threshold
|
|
84
|
+
*
|
|
85
|
+
* @param transferSpec - TransferSpec for the download
|
|
86
|
+
* @param asperaSdkSpec IBM Aspera settings when starting a transfer.
|
|
87
|
+
*
|
|
88
|
+
* @returns Promise that resolves on success invoke or rejects if unable to start
|
|
89
|
+
*
|
|
90
|
+
* @remarks
|
|
91
|
+
* This function is used internally and not exported.
|
|
92
|
+
*/
|
|
93
|
+
var httpDownloadInBrowser = function (transferSpec, asperaSdkSpec) {
|
|
94
|
+
// create a transfer sdk object
|
|
95
|
+
var transferObject = (0, core_1.getSdkTransfer)(transferSpec);
|
|
96
|
+
var triggerFailed = function (error) {
|
|
97
|
+
var errorData = (0, core_1.getMessageFromError)(error.response || error);
|
|
98
|
+
transferObject.status = 'failed';
|
|
99
|
+
transferObject.error_code = errorData.code;
|
|
100
|
+
transferObject.error_desc = errorData.message;
|
|
101
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
102
|
+
};
|
|
103
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
104
|
+
var headers = {
|
|
105
|
+
'X-Aspera-Spec': (0, core_1.base64Encoding)((0, helpers_1.safeJsonString)(transferSpec)),
|
|
106
|
+
};
|
|
107
|
+
if (asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_authentication) {
|
|
108
|
+
headers['Authorization'] = "Bearer ".concat(asperaSdkSpec.http_gateway_authentication.token);
|
|
109
|
+
headers['X-Aspera-AccessKey'] = asperaSdkSpec.http_gateway_authentication.access_key;
|
|
110
|
+
}
|
|
111
|
+
fetch("".concat((asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_override_server_url) || index_1.asperaSdk.globals.httpGatewayUrl, "/download"), { method: 'GET', headers: headers }).then(function (data) {
|
|
112
|
+
var responseHeaders = data.headers;
|
|
113
|
+
transferObject.httpRequestId = responseHeaders.get('X-Request-Id');
|
|
114
|
+
var chunks = [];
|
|
115
|
+
var reader = data.body.getReader();
|
|
116
|
+
transferObject.status = 'running';
|
|
117
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
118
|
+
transferObject.bytes_expected = Number(responseHeaders.get('Content-Length') || 0);
|
|
119
|
+
var readBytes = function () {
|
|
120
|
+
reader.read().then(function (content) {
|
|
121
|
+
var _a;
|
|
122
|
+
if (content.done) {
|
|
123
|
+
if (data.status >= 400 || !transferObject.bytes_written) {
|
|
124
|
+
triggerFailed(data.body);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
transferObject.status = 'completed';
|
|
128
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
129
|
+
var blobData = new Blob(chunks, { type: responseHeaders.get('Content-Type') });
|
|
130
|
+
var objectURL = URL.createObjectURL(blobData);
|
|
131
|
+
var a = document.createElement('a');
|
|
132
|
+
a.href = objectURL;
|
|
133
|
+
a.setAttribute('style', 'display: none;');
|
|
134
|
+
a.download = (responseHeaders.get('Content-Disposition') || 'download').replace('attachment; filename="', '').replace('"', '');
|
|
135
|
+
document.body.appendChild(a);
|
|
136
|
+
a.click();
|
|
137
|
+
document.body.removeChild(a);
|
|
138
|
+
URL.revokeObjectURL(objectURL);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
chunks.push(content.value);
|
|
142
|
+
transferObject.status = 'running';
|
|
143
|
+
transferObject.bytes_written += ((_a = content.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
|
|
144
|
+
transferObject.percentage = (transferObject.bytes_written / transferObject.bytes_expected);
|
|
145
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
146
|
+
readBytes();
|
|
147
|
+
}
|
|
148
|
+
}).catch(function (error) {
|
|
149
|
+
triggerFailed(error);
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
readBytes();
|
|
153
|
+
}).catch(function (error) {
|
|
154
|
+
triggerFailed(error);
|
|
155
|
+
});
|
|
156
|
+
return Promise.resolve(transferObject);
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* HTTP Gateway Download Logic
|
|
160
|
+
*
|
|
161
|
+
* @param transferSpec - TransferSpec for the download
|
|
162
|
+
* @param asperaSdkSpec IBM Aspera settings when starting a transfer.
|
|
163
|
+
*
|
|
164
|
+
* @returns Promise that resolves on success invoke or rejects if unable to start
|
|
165
|
+
*
|
|
166
|
+
* @remarks
|
|
167
|
+
* Most logic is called directly by Desktop SDK functions
|
|
168
|
+
* You may not need to import anything from this file.
|
|
169
|
+
*/
|
|
170
|
+
var httpDownload = function (transferSpec, asperaSdkSpec) {
|
|
171
|
+
if (!index_1.asperaSdk.httpGatewayIsReady) {
|
|
172
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified, { type: 'download' });
|
|
173
|
+
}
|
|
174
|
+
if (index_1.asperaSdk.useOldHttpGateway) {
|
|
175
|
+
return (0, http_gateway_sdk_js_1.download)(transferSpec);
|
|
176
|
+
}
|
|
177
|
+
if (transferSpec.tags &&
|
|
178
|
+
transferSpec.tags.aspera &&
|
|
179
|
+
transferSpec.tags.aspera['http-gateway'] &&
|
|
180
|
+
transferSpec.tags.aspera['http-gateway'].expected_size <= index_1.asperaSdk.httpGatewayInBrowserDownloadThreshold) {
|
|
181
|
+
return httpDownloadInBrowser(transferSpec, asperaSdkSpec);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
return httpDownloadPresigned(transferSpec, asperaSdkSpec);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
exports.httpDownload = httpDownload;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { httpDownload } from './download';
|
|
2
|
+
import { httpUpload } from './upload';
|
|
3
|
+
import { handleHttpGatewayDrop, httpGatewaySelectFileFolderDialog, createHtmlInputElement } from './core';
|
|
4
|
+
/**
|
|
5
|
+
* HTTP Gateway Exports
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Most logic is called directly by Desktop SDK functions
|
|
9
|
+
* You may not need to import anything from this file.
|
|
10
|
+
*/
|
|
11
|
+
export { httpUpload, httpDownload, handleHttpGatewayDrop, httpGatewaySelectFileFolderDialog, createHtmlInputElement, };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createHtmlInputElement = exports.httpGatewaySelectFileFolderDialog = exports.handleHttpGatewayDrop = exports.httpDownload = exports.httpUpload = void 0;
|
|
4
|
+
var download_1 = require("./download");
|
|
5
|
+
Object.defineProperty(exports, "httpDownload", { enumerable: true, get: function () { return download_1.httpDownload; } });
|
|
6
|
+
var upload_1 = require("./upload");
|
|
7
|
+
Object.defineProperty(exports, "httpUpload", { enumerable: true, get: function () { return upload_1.httpUpload; } });
|
|
8
|
+
var core_1 = require("./core");
|
|
9
|
+
Object.defineProperty(exports, "handleHttpGatewayDrop", { enumerable: true, get: function () { return core_1.handleHttpGatewayDrop; } });
|
|
10
|
+
Object.defineProperty(exports, "httpGatewaySelectFileFolderDialog", { enumerable: true, get: function () { return core_1.httpGatewaySelectFileFolderDialog; } });
|
|
11
|
+
Object.defineProperty(exports, "createHtmlInputElement", { enumerable: true, get: function () { return core_1.createHtmlInputElement; } });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface HttpGatewayInfo {
|
|
2
|
+
version: string;
|
|
3
|
+
name: string;
|
|
4
|
+
upload_endpoint: string[];
|
|
5
|
+
download_endpoint: string[];
|
|
6
|
+
endpoints: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface HttpGatewayDownloadLegacy {
|
|
9
|
+
transfer_spec_id: string;
|
|
10
|
+
url: string;
|
|
11
|
+
}
|
|
12
|
+
export type HttpGatewayDownload = ReadableStream<Uint8Array<ArrayBuffer>>;
|
|
13
|
+
export type HttpGatewayUpload = null;
|
|
14
|
+
export interface HttpGatewayPresign {
|
|
15
|
+
signed_url: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsperaSdkSpec, AsperaSdkTransfer, TransferSpec } from '../models/models';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP Gateway Upload Logic
|
|
4
|
+
*
|
|
5
|
+
* @param transferSpec - TransferSpec for the upload
|
|
6
|
+
* @param asperaSdkSpec IBM Aspera settings when starting a transfer.
|
|
7
|
+
*
|
|
8
|
+
* @returns Promise that resolves on success invoke or rejects if unable to start
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Most logic is called directly by Desktop SDK functions
|
|
12
|
+
* You may not need to import anything from this file.
|
|
13
|
+
*/
|
|
14
|
+
export declare const httpUpload: (transferSpec: TransferSpec, asperaSdkSpec?: AsperaSdkSpec) => Promise<AsperaSdkTransfer>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpUpload = void 0;
|
|
4
|
+
var index_1 = require("../index");
|
|
5
|
+
var helpers_1 = require("../helpers/helpers");
|
|
6
|
+
var messages_1 = require("../constants/messages");
|
|
7
|
+
var core_1 = require("./core");
|
|
8
|
+
var http_gateway_sdk_js_1 = require("@ibm-aspera/http-gateway-sdk-js");
|
|
9
|
+
/**
|
|
10
|
+
* HTTP Gateway Upload Logic
|
|
11
|
+
*
|
|
12
|
+
* @param transferSpec - TransferSpec for the upload
|
|
13
|
+
* @param asperaSdkSpec IBM Aspera settings when starting a transfer.
|
|
14
|
+
*
|
|
15
|
+
* @returns Promise that resolves on success invoke or rejects if unable to start
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* Most logic is called directly by Desktop SDK functions
|
|
19
|
+
* You may not need to import anything from this file.
|
|
20
|
+
*/
|
|
21
|
+
var httpUpload = function (transferSpec, asperaSdkSpec) {
|
|
22
|
+
if (!index_1.asperaSdk.httpGatewayIsReady) {
|
|
23
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified, { type: 'upload' });
|
|
24
|
+
}
|
|
25
|
+
if (index_1.asperaSdk.useOldHttpGateway) {
|
|
26
|
+
return (0, http_gateway_sdk_js_1.upload)(transferSpec, (asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_v2_transfer_id) || '');
|
|
27
|
+
}
|
|
28
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
29
|
+
var request = new XMLHttpRequest();
|
|
30
|
+
var body = new FormData();
|
|
31
|
+
body.append('x-aspera-spec', (0, helpers_1.safeJsonString)(transferSpec));
|
|
32
|
+
var hasBadFile = [];
|
|
33
|
+
transferSpec.paths.forEach(function (path) {
|
|
34
|
+
var foundFile = index_1.asperaSdk.httpGatewaySelectedFiles.get(path.source);
|
|
35
|
+
if (foundFile) {
|
|
36
|
+
body.append('Content-Length', String(foundFile.size));
|
|
37
|
+
body.append('file', foundFile);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
hasBadFile.push(path.source);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
if (hasBadFile.length) {
|
|
44
|
+
return (0, helpers_1.throwError)(messages_1.messages.fileNotAllowed, { type: 'upload', invalidFiles: hasBadFile, transferSpec: transferSpec });
|
|
45
|
+
}
|
|
46
|
+
var transferObject = (0, core_1.getSdkTransfer)(transferSpec);
|
|
47
|
+
if (asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_authentication) {
|
|
48
|
+
request.setRequestHeader('Authorization', "Bearer ".concat(asperaSdkSpec.http_gateway_authentication.token));
|
|
49
|
+
request.setRequestHeader('X-Aspera-AccessKey', asperaSdkSpec.http_gateway_authentication.access_key);
|
|
50
|
+
}
|
|
51
|
+
request.open('POST', "".concat((asperaSdkSpec === null || asperaSdkSpec === void 0 ? void 0 : asperaSdkSpec.http_gateway_override_server_url) || index_1.asperaSdk.globals.httpGatewayUrl, "/upload"), true);
|
|
52
|
+
var triggerUpdate = function () {
|
|
53
|
+
(0, core_1.sendTransferUpdate)(transferObject);
|
|
54
|
+
};
|
|
55
|
+
var triggerFailed = function () {
|
|
56
|
+
var errorData = (0, core_1.getMessageFromError)(request.response);
|
|
57
|
+
transferObject.httpRequestId = request.getResponseHeader('X-Request-Id');
|
|
58
|
+
transferObject.status = 'failed';
|
|
59
|
+
transferObject.error_code = errorData.code;
|
|
60
|
+
transferObject.error_desc = errorData.message;
|
|
61
|
+
triggerUpdate();
|
|
62
|
+
};
|
|
63
|
+
request.upload.addEventListener('progress', function (event) {
|
|
64
|
+
if (transferObject.status === 'failed') {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
transferObject.status = 'running';
|
|
68
|
+
transferObject.elapsed_usec = (new Date().getTime() - new Date(transferObject.add_time).getTime()) * 1000;
|
|
69
|
+
if (event.lengthComputable) {
|
|
70
|
+
transferObject.bytes_expected = event.total;
|
|
71
|
+
transferObject.bytes_written = event.loaded;
|
|
72
|
+
transferObject.percentage = (event.loaded / event.total);
|
|
73
|
+
}
|
|
74
|
+
triggerUpdate();
|
|
75
|
+
});
|
|
76
|
+
request.addEventListener('load', function () {
|
|
77
|
+
transferObject.httpRequestId = request.getResponseHeader('X-Request-Id');
|
|
78
|
+
});
|
|
79
|
+
request.upload.addEventListener('load', function (event) {
|
|
80
|
+
if (transferObject.status === 'failed') {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
transferObject.status = 'completed';
|
|
84
|
+
transferObject.elapsed_usec = (new Date().getTime() - new Date(transferObject.add_time).getTime()) * 1000;
|
|
85
|
+
if (event.lengthComputable) {
|
|
86
|
+
transferObject.bytes_expected = event.total;
|
|
87
|
+
transferObject.bytes_written = event.loaded;
|
|
88
|
+
transferObject.percentage = (event.loaded / event.total);
|
|
89
|
+
}
|
|
90
|
+
triggerUpdate();
|
|
91
|
+
});
|
|
92
|
+
request.upload.addEventListener('loadstart', function () {
|
|
93
|
+
if (transferObject.status === 'failed') {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
transferObject.status = 'running';
|
|
97
|
+
promiseInfo.resolver(transferObject);
|
|
98
|
+
triggerUpdate();
|
|
99
|
+
});
|
|
100
|
+
request.addEventListener('readystatechange', function () {
|
|
101
|
+
if (request.status >= 400) {
|
|
102
|
+
triggerFailed();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
request.upload.addEventListener('error', function (event) {
|
|
106
|
+
triggerFailed();
|
|
107
|
+
promiseInfo.rejecter(event);
|
|
108
|
+
});
|
|
109
|
+
request.upload.addEventListener('abort', function (event) {
|
|
110
|
+
triggerFailed();
|
|
111
|
+
promiseInfo.rejecter(event);
|
|
112
|
+
});
|
|
113
|
+
request.addEventListener('error', function (event) {
|
|
114
|
+
triggerFailed();
|
|
115
|
+
promiseInfo.rejecter(event);
|
|
116
|
+
});
|
|
117
|
+
request.addEventListener('abort', function (event) {
|
|
118
|
+
triggerFailed();
|
|
119
|
+
promiseInfo.rejecter(event);
|
|
120
|
+
});
|
|
121
|
+
request.send(body);
|
|
122
|
+
return promiseInfo.promise;
|
|
123
|
+
};
|
|
124
|
+
exports.httpUpload = httpUpload;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AsperaSdk } from './models/aspera-sdk.model';
|
|
2
|
+
import { createDropzone, deregisterActivityCallback, deregisterStatusCallback, getAllTransfers, getInfo, getTransfer, init, initDragDrop, modifyTransfer, registerActivityCallback, registerStatusCallback, removeDropzone, removeTransfer, resumeTransfer, setBranding, showDirectory, showPreferences, showSelectFileDialog, showSelectFolderDialog, startTransfer, stopTransfer, testConnection } from './app/core';
|
|
3
|
+
import { getInstallerInfo } from './app/installer';
|
|
4
|
+
import { getInstallerUrls, isSafari } from './helpers/helpers';
|
|
5
|
+
export declare const asperaSdk: AsperaSdk;
|
|
6
|
+
declare const launch: () => void;
|
|
7
|
+
export { isSafari, init, testConnection, startTransfer, launch, registerActivityCallback, deregisterActivityCallback, removeTransfer, showDirectory, stopTransfer, resumeTransfer, getAllTransfers, getTransfer, showSelectFileDialog, showSelectFolderDialog, showPreferences, modifyTransfer, createDropzone, removeDropzone, initDragDrop, getInstallerInfo, registerStatusCallback, deregisterStatusCallback, setBranding, getInfo, getInstallerUrls, };
|
|
8
|
+
export default asperaSdk;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getInstallerUrls = exports.getInfo = exports.setBranding = exports.deregisterStatusCallback = exports.registerStatusCallback = exports.getInstallerInfo = exports.initDragDrop = exports.removeDropzone = exports.createDropzone = exports.modifyTransfer = exports.showPreferences = exports.showSelectFolderDialog = exports.showSelectFileDialog = exports.getTransfer = exports.getAllTransfers = exports.resumeTransfer = exports.stopTransfer = exports.showDirectory = exports.removeTransfer = exports.deregisterActivityCallback = exports.registerActivityCallback = exports.launch = exports.startTransfer = exports.testConnection = exports.init = exports.isSafari = exports.asperaSdk = void 0;
|
|
37
|
+
var aspera_sdk_model_1 = require("./models/aspera-sdk.model");
|
|
38
|
+
var core_1 = require("./app/core");
|
|
39
|
+
Object.defineProperty(exports, "createDropzone", { enumerable: true, get: function () { return core_1.createDropzone; } });
|
|
40
|
+
Object.defineProperty(exports, "deregisterActivityCallback", { enumerable: true, get: function () { return core_1.deregisterActivityCallback; } });
|
|
41
|
+
Object.defineProperty(exports, "deregisterStatusCallback", { enumerable: true, get: function () { return core_1.deregisterStatusCallback; } });
|
|
42
|
+
Object.defineProperty(exports, "getAllTransfers", { enumerable: true, get: function () { return core_1.getAllTransfers; } });
|
|
43
|
+
Object.defineProperty(exports, "getInfo", { enumerable: true, get: function () { return core_1.getInfo; } });
|
|
44
|
+
Object.defineProperty(exports, "getTransfer", { enumerable: true, get: function () { return core_1.getTransfer; } });
|
|
45
|
+
Object.defineProperty(exports, "init", { enumerable: true, get: function () { return core_1.init; } });
|
|
46
|
+
Object.defineProperty(exports, "initDragDrop", { enumerable: true, get: function () { return core_1.initDragDrop; } });
|
|
47
|
+
Object.defineProperty(exports, "modifyTransfer", { enumerable: true, get: function () { return core_1.modifyTransfer; } });
|
|
48
|
+
Object.defineProperty(exports, "registerActivityCallback", { enumerable: true, get: function () { return core_1.registerActivityCallback; } });
|
|
49
|
+
Object.defineProperty(exports, "registerStatusCallback", { enumerable: true, get: function () { return core_1.registerStatusCallback; } });
|
|
50
|
+
Object.defineProperty(exports, "removeDropzone", { enumerable: true, get: function () { return core_1.removeDropzone; } });
|
|
51
|
+
Object.defineProperty(exports, "removeTransfer", { enumerable: true, get: function () { return core_1.removeTransfer; } });
|
|
52
|
+
Object.defineProperty(exports, "resumeTransfer", { enumerable: true, get: function () { return core_1.resumeTransfer; } });
|
|
53
|
+
Object.defineProperty(exports, "setBranding", { enumerable: true, get: function () { return core_1.setBranding; } });
|
|
54
|
+
Object.defineProperty(exports, "showDirectory", { enumerable: true, get: function () { return core_1.showDirectory; } });
|
|
55
|
+
Object.defineProperty(exports, "showPreferences", { enumerable: true, get: function () { return core_1.showPreferences; } });
|
|
56
|
+
Object.defineProperty(exports, "showSelectFileDialog", { enumerable: true, get: function () { return core_1.showSelectFileDialog; } });
|
|
57
|
+
Object.defineProperty(exports, "showSelectFolderDialog", { enumerable: true, get: function () { return core_1.showSelectFolderDialog; } });
|
|
58
|
+
Object.defineProperty(exports, "startTransfer", { enumerable: true, get: function () { return core_1.startTransfer; } });
|
|
59
|
+
Object.defineProperty(exports, "stopTransfer", { enumerable: true, get: function () { return core_1.stopTransfer; } });
|
|
60
|
+
Object.defineProperty(exports, "testConnection", { enumerable: true, get: function () { return core_1.testConnection; } });
|
|
61
|
+
var installer_1 = require("./app/installer");
|
|
62
|
+
Object.defineProperty(exports, "getInstallerInfo", { enumerable: true, get: function () { return installer_1.getInstallerInfo; } });
|
|
63
|
+
var helpers_1 = require("./helpers/helpers");
|
|
64
|
+
Object.defineProperty(exports, "getInstallerUrls", { enumerable: true, get: function () { return helpers_1.getInstallerUrls; } });
|
|
65
|
+
Object.defineProperty(exports, "isSafari", { enumerable: true, get: function () { return helpers_1.isSafari; } });
|
|
66
|
+
var httpGatewayCalls = __importStar(require("./http-gateway"));
|
|
67
|
+
exports.asperaSdk = new aspera_sdk_model_1.AsperaSdk();
|
|
68
|
+
exports.asperaSdk.init = core_1.init;
|
|
69
|
+
exports.asperaSdk.testConnection = core_1.testConnection;
|
|
70
|
+
exports.asperaSdk.startTransfer = core_1.startTransfer;
|
|
71
|
+
exports.asperaSdk.registerActivityCallback = core_1.registerActivityCallback;
|
|
72
|
+
exports.asperaSdk.deregisterActivityCallback = core_1.deregisterActivityCallback;
|
|
73
|
+
exports.asperaSdk.removeTransfer = core_1.removeTransfer;
|
|
74
|
+
exports.asperaSdk.showDirectory = core_1.showDirectory;
|
|
75
|
+
exports.asperaSdk.stopTransfer = core_1.stopTransfer;
|
|
76
|
+
exports.asperaSdk.resumeTransfer = core_1.resumeTransfer;
|
|
77
|
+
exports.asperaSdk.getAllTransfers = core_1.getAllTransfers;
|
|
78
|
+
exports.asperaSdk.getTransfer = core_1.getTransfer;
|
|
79
|
+
exports.asperaSdk.showSelectFileDialog = core_1.showSelectFileDialog;
|
|
80
|
+
exports.asperaSdk.showSelectFolderDialog = core_1.showSelectFolderDialog;
|
|
81
|
+
exports.asperaSdk.showPreferences = core_1.showPreferences;
|
|
82
|
+
exports.asperaSdk.modifyTransfer = core_1.modifyTransfer;
|
|
83
|
+
exports.asperaSdk.createDropzone = core_1.createDropzone;
|
|
84
|
+
exports.asperaSdk.removeDropzone = core_1.removeDropzone;
|
|
85
|
+
exports.asperaSdk.getInstallerInfo = installer_1.getInstallerInfo;
|
|
86
|
+
exports.asperaSdk.registerStatusCallback = core_1.registerStatusCallback;
|
|
87
|
+
exports.asperaSdk.deregisterStatusCallback = core_1.deregisterStatusCallback;
|
|
88
|
+
exports.asperaSdk.initDragDrop = core_1.initDragDrop;
|
|
89
|
+
exports.asperaSdk.setBranding = core_1.setBranding;
|
|
90
|
+
exports.asperaSdk.getInfo = core_1.getInfo;
|
|
91
|
+
exports.asperaSdk.isSafari = helpers_1.isSafari;
|
|
92
|
+
exports.asperaSdk.getInstallerUrls = helpers_1.getInstallerUrls;
|
|
93
|
+
exports.asperaSdk.httpGatewayCalls = httpGatewayCalls;
|
|
94
|
+
var launch = exports.asperaSdk.globals.launch;
|
|
95
|
+
exports.launch = launch;
|
|
96
|
+
exports.asperaSdk.launch = launch;
|
|
97
|
+
if (typeof window === 'object') {
|
|
98
|
+
window.asperaSdk = exports.asperaSdk;
|
|
99
|
+
}
|
|
100
|
+
exports.default = exports.asperaSdk;
|