@ibm-aspera/sdk 0.2.2
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/.editorconfig +13 -0
- package/.eslintrc.js +128 -0
- package/.github/CODE_OF_CONDUCT.md +128 -0
- package/.github/CONTRIBUTING.md +147 -0
- package/.github/workflows/ci.yml +36 -0
- package/.github/workflows/documentation.yml +43 -0
- package/.github/workflows/npm_upload.yml +30 -0
- package/.husky/pre-commit +4 -0
- package/CHANGELOG.md +124 -0
- package/LICENSE +201 -0
- package/README.md +25 -0
- package/dist/commonjs/app/core.d.ts +219 -0
- package/dist/commonjs/app/core.js +546 -0
- package/dist/commonjs/app/installer.d.ts +9 -0
- package/dist/commonjs/app/installer.js +50 -0
- package/dist/commonjs/constants/constants.d.ts +6 -0
- package/dist/commonjs/constants/constants.js +9 -0
- package/dist/commonjs/constants/messages.d.ts +29 -0
- package/dist/commonjs/constants/messages.js +32 -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 +99 -0
- package/dist/commonjs/helpers/client/safari-client.js +252 -0
- package/dist/commonjs/helpers/helpers.d.ts +84 -0
- package/dist/commonjs/helpers/helpers.js +197 -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 +182 -0
- package/dist/commonjs/index.d.ts +41 -0
- package/dist/commonjs/index.js +99 -0
- package/dist/commonjs/models/aspera-sdk.model.d.ts +213 -0
- package/dist/commonjs/models/aspera-sdk.model.js +288 -0
- package/dist/commonjs/models/models.d.ts +640 -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 +7 -0
- package/dist/js/aspera-sdk.js.map +1 -0
- package/docs/DEVELOPMENT.md +38 -0
- package/jest.config.js +15 -0
- package/jest.setup.js +0 -0
- package/package.json +50 -0
- package/src/app/core.ts +610 -0
- package/src/app/installer.ts +53 -0
- package/src/constants/constants.ts +16 -0
- package/src/constants/messages.ts +29 -0
- package/src/helpers/client/client.ts +11 -0
- package/src/helpers/client/http-client.ts +92 -0
- package/src/helpers/client/safari-client.ts +318 -0
- package/src/helpers/helpers.ts +200 -0
- package/src/helpers/http.ts +39 -0
- package/src/helpers/ws.ts +215 -0
- package/src/index.html +404 -0
- package/src/index.ts +104 -0
- package/src/models/aspera-sdk.model.ts +360 -0
- package/src/models/models.ts +669 -0
- package/tests/client.spec.ts +52 -0
- package/tests/core.spec.ts +13 -0
- package/tests/helpers.spec.ts +124 -0
- package/tests/http.spec.ts +14 -0
- package/tests/installer.spec.ts +135 -0
- package/tests/mocks.ts +11 -0
- package/tsconfig.json +10 -0
- package/tsconfig.module.json +15 -0
- package/typedoc.js +17 -0
- package/webpack.config.js +53 -0
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInfo = exports.removeDropzone = exports.createDropzone = exports.setBranding = exports.modifyTransfer = exports.showDirectory = exports.getTransfer = exports.getAllTransfers = exports.showPreferences = exports.showSelectFolderDialog = exports.showSelectFileDialog = exports.resumeTransfer = exports.stopTransfer = exports.removeTransfer = exports.deregisterSafariExtensionStatusCallback = exports.registerSafariExtensionStatusCallback = exports.deregisterStatusCallback = exports.registerStatusCallback = exports.deregisterRemovedCallback = exports.registerRemovedCallback = exports.deregisterActivityCallback = exports.registerActivityCallback = exports.startTransfer = exports.init = exports.initDragDrop = exports.testConnection = void 0;
|
|
4
|
+
var messages_1 = require("../constants/messages");
|
|
5
|
+
var client_1 = require("../helpers/client/client");
|
|
6
|
+
var helpers_1 = require("../helpers/helpers");
|
|
7
|
+
var index_1 = require("../index");
|
|
8
|
+
/**
|
|
9
|
+
* Check if IBM Aspera for Desktop connection works. This function is called by init
|
|
10
|
+
* when initializing the SDK. This function can be used at any point for checking.
|
|
11
|
+
*
|
|
12
|
+
* @returns a promise that resolves if server can connect or rejects if not
|
|
13
|
+
*/
|
|
14
|
+
var testConnection = function () {
|
|
15
|
+
return client_1.client.request('get_info')
|
|
16
|
+
.then(function (data) {
|
|
17
|
+
index_1.asperaSdk.globals.AsperaSdkInfo = data;
|
|
18
|
+
index_1.asperaSdk.globals.asperaAppVerified = true;
|
|
19
|
+
return data;
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
exports.testConnection = testConnection;
|
|
23
|
+
/**
|
|
24
|
+
* Initialize drag and drop.
|
|
25
|
+
*
|
|
26
|
+
* @returns a promise that resolves if the initialization was successful or not
|
|
27
|
+
*/
|
|
28
|
+
var initDragDrop = function () {
|
|
29
|
+
if (!index_1.asperaSdk.isReady) {
|
|
30
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
31
|
+
}
|
|
32
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
33
|
+
client_1.client.request('init_drag_drop')
|
|
34
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
35
|
+
.catch(function (error) {
|
|
36
|
+
(0, helpers_1.errorLog)(messages_1.messages.dragDropInitFailed, error);
|
|
37
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.dragDropInitFailed, error));
|
|
38
|
+
});
|
|
39
|
+
return promiseInfo.promise;
|
|
40
|
+
};
|
|
41
|
+
exports.initDragDrop = initDragDrop;
|
|
42
|
+
/**
|
|
43
|
+
* Initialize IBM Aspera client. If client cannot (reject/catch), then
|
|
44
|
+
* client should attempt fixing server URL or trying again. If still fails disable UI elements.
|
|
45
|
+
*
|
|
46
|
+
* @param options initialization options:
|
|
47
|
+
*
|
|
48
|
+
* - `appId` the unique ID for the website. Transfers initiated during this session
|
|
49
|
+
* will be associated with this ID. It is recommended to use a unique ID to keep transfer
|
|
50
|
+
* information private from other websites.
|
|
51
|
+
*
|
|
52
|
+
* - `supportMultipleUsers` when enabled (defaults to false), the SDK will iterate over a port
|
|
53
|
+
* range and generate a session id to determine the running instance of the desktop app for the
|
|
54
|
+
* current user. This is needed when multiple users may be logged into the same machine
|
|
55
|
+
* simultaneously, for example on a Windows Server.
|
|
56
|
+
*
|
|
57
|
+
* @returns a promise that resolves if IBM Aspera Desktop is running properly or
|
|
58
|
+
* rejects if unable to connect
|
|
59
|
+
*/
|
|
60
|
+
var init = function (options) {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
var appId = (_a = options === null || options === void 0 ? void 0 : options.appId) !== null && _a !== void 0 ? _a : (0, helpers_1.randomUUID)();
|
|
63
|
+
var supportMultipleUsers = (_b = options === null || options === void 0 ? void 0 : options.supportMultipleUsers) !== null && _b !== void 0 ? _b : false;
|
|
64
|
+
index_1.asperaSdk.globals.appId = appId;
|
|
65
|
+
if (supportMultipleUsers) {
|
|
66
|
+
index_1.asperaSdk.globals.sessionId = (0, helpers_1.randomUUID)();
|
|
67
|
+
}
|
|
68
|
+
return index_1.asperaSdk.activityTracking.setup()
|
|
69
|
+
.then(function () { return (0, exports.testConnection)(); })
|
|
70
|
+
.then(function () { return (0, exports.initDragDrop)(); })
|
|
71
|
+
.catch(function (error) {
|
|
72
|
+
(0, helpers_1.errorLog)(messages_1.messages.serverError, error);
|
|
73
|
+
index_1.asperaSdk.globals.asperaAppVerified = false;
|
|
74
|
+
throw (0, helpers_1.generateErrorBody)(messages_1.messages.serverError, error);
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
exports.init = init;
|
|
78
|
+
/**
|
|
79
|
+
* Start a transfer
|
|
80
|
+
*
|
|
81
|
+
* @param transferSpec standard transferSpec for transfer
|
|
82
|
+
* @param asperaSdkSpec IBM Aspera settings when starting a transfer
|
|
83
|
+
*
|
|
84
|
+
* @returns a promise that resolves if transfer initiation is successful and rejects if transfer cannot be started
|
|
85
|
+
*/
|
|
86
|
+
var startTransfer = function (transferSpec, asperaSdkSpec) {
|
|
87
|
+
if (!index_1.asperaSdk.isReady) {
|
|
88
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
89
|
+
}
|
|
90
|
+
if (!(0, helpers_1.isValidTransferSpec)(transferSpec)) {
|
|
91
|
+
return (0, helpers_1.throwError)(messages_1.messages.notValidTransferSpec, { transferSpec: transferSpec });
|
|
92
|
+
}
|
|
93
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
94
|
+
var payload = {
|
|
95
|
+
transfer_spec: transferSpec,
|
|
96
|
+
desktop_spec: asperaSdkSpec,
|
|
97
|
+
app_id: index_1.asperaSdk.globals.appId,
|
|
98
|
+
};
|
|
99
|
+
client_1.client.request('start_transfer', payload)
|
|
100
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
101
|
+
.catch(function (error) {
|
|
102
|
+
(0, helpers_1.errorLog)(messages_1.messages.transferFailed, error);
|
|
103
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.transferFailed, error));
|
|
104
|
+
});
|
|
105
|
+
return promiseInfo.promise;
|
|
106
|
+
};
|
|
107
|
+
exports.startTransfer = startTransfer;
|
|
108
|
+
/**
|
|
109
|
+
* Register a callback event for getting transfer updates
|
|
110
|
+
*
|
|
111
|
+
* @param callback callback function to receive transfers
|
|
112
|
+
*
|
|
113
|
+
* @returns ID representing the callback for deregistration purposes
|
|
114
|
+
*/
|
|
115
|
+
var registerActivityCallback = function (callback) {
|
|
116
|
+
return index_1.asperaSdk.activityTracking.setCallback(callback);
|
|
117
|
+
};
|
|
118
|
+
exports.registerActivityCallback = registerActivityCallback;
|
|
119
|
+
/**
|
|
120
|
+
* Remove a callback from the transfer callback
|
|
121
|
+
*
|
|
122
|
+
* @param id the ID returned by `registerActivityCallback`
|
|
123
|
+
*/
|
|
124
|
+
var deregisterActivityCallback = function (id) {
|
|
125
|
+
index_1.asperaSdk.activityTracking.removeCallback(id);
|
|
126
|
+
};
|
|
127
|
+
exports.deregisterActivityCallback = deregisterActivityCallback;
|
|
128
|
+
/**
|
|
129
|
+
* Register a callback event for when a user removes or cancels a transfer
|
|
130
|
+
* directly from IBM Aspera. This may also be called if IBM Aspera
|
|
131
|
+
* is configured to automatically remove completed transfers.
|
|
132
|
+
*
|
|
133
|
+
* @param callback callback function to receive transfers
|
|
134
|
+
*
|
|
135
|
+
* @returns ID representing the callback for deregistration purposes
|
|
136
|
+
*/
|
|
137
|
+
var registerRemovedCallback = function (callback) {
|
|
138
|
+
return index_1.asperaSdk.activityTracking.setRemovedCallback(callback);
|
|
139
|
+
};
|
|
140
|
+
exports.registerRemovedCallback = registerRemovedCallback;
|
|
141
|
+
/**
|
|
142
|
+
* Remove a callback from the removed transfer callback
|
|
143
|
+
*
|
|
144
|
+
* @param id the ID returned by `registerRemovedCallback`
|
|
145
|
+
*/
|
|
146
|
+
var deregisterRemovedCallback = function (id) {
|
|
147
|
+
index_1.asperaSdk.activityTracking.removeRemovedCallback(id);
|
|
148
|
+
};
|
|
149
|
+
exports.deregisterRemovedCallback = deregisterRemovedCallback;
|
|
150
|
+
/**
|
|
151
|
+
* Register a callback for getting updates about the connection status of IBM Aspera SDK.
|
|
152
|
+
*
|
|
153
|
+
* For example, to be notified of when the SDK loses connection with the application or connection
|
|
154
|
+
* is re-established. This can be useful if you want to handle the case where the user quits IBM Aspera
|
|
155
|
+
* after `init` has already been called, and want to prompt the user to relaunch the application.
|
|
156
|
+
*
|
|
157
|
+
* @param callback callback function to receive events
|
|
158
|
+
*
|
|
159
|
+
* @returns ID representing the callback for deregistration purposes
|
|
160
|
+
*/
|
|
161
|
+
var registerStatusCallback = function (callback) {
|
|
162
|
+
return index_1.asperaSdk.activityTracking.setWebSocketEventCallback(callback);
|
|
163
|
+
};
|
|
164
|
+
exports.registerStatusCallback = registerStatusCallback;
|
|
165
|
+
/**
|
|
166
|
+
* Remove a callback from getting connection status events.
|
|
167
|
+
*
|
|
168
|
+
* @param id the ID returned by `registerStatusCallback`
|
|
169
|
+
*/
|
|
170
|
+
var deregisterStatusCallback = function (id) {
|
|
171
|
+
index_1.asperaSdk.activityTracking.removeWebSocketEventCallback(id);
|
|
172
|
+
};
|
|
173
|
+
exports.deregisterStatusCallback = deregisterStatusCallback;
|
|
174
|
+
/**
|
|
175
|
+
* Register a callback for getting updates about the Safari extension status.
|
|
176
|
+
*
|
|
177
|
+
* This can be useful if you want to handle the case where the user enable or disable the Safari extension.
|
|
178
|
+
*
|
|
179
|
+
* @param callback callback function to receive events
|
|
180
|
+
*
|
|
181
|
+
* @returns ID representing the callback for deregistration purposes
|
|
182
|
+
*/
|
|
183
|
+
var registerSafariExtensionStatusCallback = function (callback) {
|
|
184
|
+
return index_1.asperaSdk.activityTracking.setSafariExtensionEventCallback(callback);
|
|
185
|
+
};
|
|
186
|
+
exports.registerSafariExtensionStatusCallback = registerSafariExtensionStatusCallback;
|
|
187
|
+
/**
|
|
188
|
+
* Remove a callback from getting Safari extension status events.
|
|
189
|
+
*
|
|
190
|
+
* @param id the ID returned by `registerStatusCallback`
|
|
191
|
+
*/
|
|
192
|
+
var deregisterSafariExtensionStatusCallback = function (id) {
|
|
193
|
+
index_1.asperaSdk.activityTracking.removeSafariExtensionEventCallback(id);
|
|
194
|
+
};
|
|
195
|
+
exports.deregisterSafariExtensionStatusCallback = deregisterSafariExtensionStatusCallback;
|
|
196
|
+
/**
|
|
197
|
+
* Remove a transfer. This will stop the transfer if it is in progress.
|
|
198
|
+
*
|
|
199
|
+
* @param id transfer uuid
|
|
200
|
+
*
|
|
201
|
+
* @returns a promise that resolves if transfer is removed and rejects if transfer cannot be removed
|
|
202
|
+
*/
|
|
203
|
+
var removeTransfer = function (id) {
|
|
204
|
+
if (!index_1.asperaSdk.isReady) {
|
|
205
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
206
|
+
}
|
|
207
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
208
|
+
var payload = {
|
|
209
|
+
transfer_id: id,
|
|
210
|
+
};
|
|
211
|
+
client_1.client.request('remove_transfer', payload)
|
|
212
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
213
|
+
.catch(function (error) {
|
|
214
|
+
(0, helpers_1.errorLog)(messages_1.messages.removeTransferFailed, error);
|
|
215
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.removeTransferFailed, error));
|
|
216
|
+
});
|
|
217
|
+
return promiseInfo.promise;
|
|
218
|
+
};
|
|
219
|
+
exports.removeTransfer = removeTransfer;
|
|
220
|
+
/**
|
|
221
|
+
* Stop a transfer.
|
|
222
|
+
*
|
|
223
|
+
* @param id transfer uuid
|
|
224
|
+
*
|
|
225
|
+
* @returns a promise that resolves if transfer is stopped and rejects if transfer cannot be stopped
|
|
226
|
+
*/
|
|
227
|
+
var stopTransfer = function (id) {
|
|
228
|
+
if (!index_1.asperaSdk.isReady) {
|
|
229
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
230
|
+
}
|
|
231
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
232
|
+
var payload = {
|
|
233
|
+
transfer_id: id,
|
|
234
|
+
};
|
|
235
|
+
client_1.client.request('stop_transfer', payload)
|
|
236
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
237
|
+
.catch(function (error) {
|
|
238
|
+
(0, helpers_1.errorLog)(messages_1.messages.stopTransferFailed, error);
|
|
239
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.stopTransferFailed, error));
|
|
240
|
+
});
|
|
241
|
+
return promiseInfo.promise;
|
|
242
|
+
};
|
|
243
|
+
exports.stopTransfer = stopTransfer;
|
|
244
|
+
/**
|
|
245
|
+
* Resume a paused or failed transfer.
|
|
246
|
+
*
|
|
247
|
+
* @param id transfer uuid
|
|
248
|
+
* @param options resume transfer options
|
|
249
|
+
*
|
|
250
|
+
* @returns a promise that resolves with the new transfer object if transfer is resumed
|
|
251
|
+
*/
|
|
252
|
+
var resumeTransfer = function (id, options) {
|
|
253
|
+
if (!index_1.asperaSdk.isReady) {
|
|
254
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
255
|
+
}
|
|
256
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
257
|
+
var payload = {
|
|
258
|
+
transfer_id: id,
|
|
259
|
+
transfer_spec: options,
|
|
260
|
+
};
|
|
261
|
+
client_1.client.request('resume_transfer', payload)
|
|
262
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
263
|
+
.catch(function (error) {
|
|
264
|
+
(0, helpers_1.errorLog)(messages_1.messages.resumeTransferFailed, error);
|
|
265
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.resumeTransferFailed, error));
|
|
266
|
+
});
|
|
267
|
+
return promiseInfo.promise;
|
|
268
|
+
};
|
|
269
|
+
exports.resumeTransfer = resumeTransfer;
|
|
270
|
+
/**
|
|
271
|
+
* Displays a file browser dialog for the user to select files.
|
|
272
|
+
*
|
|
273
|
+
* @param options file dialog options
|
|
274
|
+
*
|
|
275
|
+
* @returns a promise that resolves with the selected file(s) and rejects if user cancels dialog
|
|
276
|
+
*/
|
|
277
|
+
var showSelectFileDialog = function (options) {
|
|
278
|
+
if (!index_1.asperaSdk.isReady) {
|
|
279
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
280
|
+
}
|
|
281
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
282
|
+
var payload = {
|
|
283
|
+
options: options || {},
|
|
284
|
+
app_id: index_1.asperaSdk.globals.appId,
|
|
285
|
+
};
|
|
286
|
+
client_1.client.request('show_file_dialog', payload)
|
|
287
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
288
|
+
.catch(function (error) {
|
|
289
|
+
(0, helpers_1.errorLog)(messages_1.messages.showSelectFileDialogFailed, error);
|
|
290
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.showSelectFileDialogFailed, error));
|
|
291
|
+
});
|
|
292
|
+
return promiseInfo.promise;
|
|
293
|
+
};
|
|
294
|
+
exports.showSelectFileDialog = showSelectFileDialog;
|
|
295
|
+
/**
|
|
296
|
+
* Displays a folder browser dialog for the user to select folders.
|
|
297
|
+
*
|
|
298
|
+
* @param options folder dialog options
|
|
299
|
+
*
|
|
300
|
+
* @returns a promise that resolves with the selected folder(s) and rejects if user cancels dialog
|
|
301
|
+
*/
|
|
302
|
+
var showSelectFolderDialog = function (options) {
|
|
303
|
+
if (!index_1.asperaSdk.isReady) {
|
|
304
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
305
|
+
}
|
|
306
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
307
|
+
var payload = {
|
|
308
|
+
options: options || {},
|
|
309
|
+
app_id: index_1.asperaSdk.globals.appId,
|
|
310
|
+
};
|
|
311
|
+
client_1.client.request('show_folder_dialog', payload)
|
|
312
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
313
|
+
.catch(function (error) {
|
|
314
|
+
(0, helpers_1.errorLog)(messages_1.messages.showSelectFolderDialogFailed, error);
|
|
315
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.showSelectFolderDialogFailed, error));
|
|
316
|
+
});
|
|
317
|
+
return promiseInfo.promise;
|
|
318
|
+
};
|
|
319
|
+
exports.showSelectFolderDialog = showSelectFolderDialog;
|
|
320
|
+
/**
|
|
321
|
+
* Opens the IBM Aspera preferences page.
|
|
322
|
+
*
|
|
323
|
+
* @returns a promise that resolves when the preferences page is opened.
|
|
324
|
+
*/
|
|
325
|
+
var showPreferences = function () {
|
|
326
|
+
if (!index_1.asperaSdk.isReady) {
|
|
327
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
328
|
+
}
|
|
329
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
330
|
+
client_1.client.request('open_preferences')
|
|
331
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
332
|
+
.catch(function (error) {
|
|
333
|
+
(0, helpers_1.errorLog)(messages_1.messages.showPreferencesFailed, error);
|
|
334
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.showPreferencesFailed, error));
|
|
335
|
+
});
|
|
336
|
+
return promiseInfo.promise;
|
|
337
|
+
};
|
|
338
|
+
exports.showPreferences = showPreferences;
|
|
339
|
+
/**
|
|
340
|
+
* Get all transfers associated with the current application.
|
|
341
|
+
*
|
|
342
|
+
* @returns a promise that resolves with an array of transfers.
|
|
343
|
+
*/
|
|
344
|
+
var getAllTransfers = function () {
|
|
345
|
+
if (!index_1.asperaSdk.isReady) {
|
|
346
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
347
|
+
}
|
|
348
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
349
|
+
var payload = {
|
|
350
|
+
app_id: index_1.asperaSdk.globals.appId,
|
|
351
|
+
};
|
|
352
|
+
client_1.client.request('get_all_transfers', payload)
|
|
353
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
354
|
+
.catch(function (error) {
|
|
355
|
+
(0, helpers_1.errorLog)(messages_1.messages.getAllTransfersFailed, error);
|
|
356
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.getAllTransfersFailed, error));
|
|
357
|
+
});
|
|
358
|
+
return promiseInfo.promise;
|
|
359
|
+
};
|
|
360
|
+
exports.getAllTransfers = getAllTransfers;
|
|
361
|
+
/**
|
|
362
|
+
* Get a specific transfer by ID.
|
|
363
|
+
*
|
|
364
|
+
* @param id transfer uuid
|
|
365
|
+
*
|
|
366
|
+
* @returns a promise that resolves with the transfer.
|
|
367
|
+
*/
|
|
368
|
+
var getTransfer = function (id) {
|
|
369
|
+
if (!index_1.asperaSdk.isReady) {
|
|
370
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
371
|
+
}
|
|
372
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
373
|
+
var payload = {
|
|
374
|
+
transfer_id: id,
|
|
375
|
+
};
|
|
376
|
+
client_1.client.request('get_transfer', payload)
|
|
377
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
378
|
+
.catch(function (error) {
|
|
379
|
+
(0, helpers_1.errorLog)(messages_1.messages.getTransferFailed, error);
|
|
380
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.getTransferFailed, error));
|
|
381
|
+
});
|
|
382
|
+
return promiseInfo.promise;
|
|
383
|
+
};
|
|
384
|
+
exports.getTransfer = getTransfer;
|
|
385
|
+
/**
|
|
386
|
+
* Opens and highlights the downloaded file in Finder or Windows Explorer. If multiple files,
|
|
387
|
+
* then only the first file will be selected.
|
|
388
|
+
*
|
|
389
|
+
* @param id transfer uuid
|
|
390
|
+
*
|
|
391
|
+
* @returns a promise that resolves if the file can be shown and rejects if not
|
|
392
|
+
*/
|
|
393
|
+
var showDirectory = function (id) {
|
|
394
|
+
if (!index_1.asperaSdk.isReady) {
|
|
395
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
396
|
+
}
|
|
397
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
398
|
+
var payload = {
|
|
399
|
+
transfer_id: id,
|
|
400
|
+
};
|
|
401
|
+
client_1.client.request('show_directory', payload)
|
|
402
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
403
|
+
.catch(function (error) {
|
|
404
|
+
(0, helpers_1.errorLog)(messages_1.messages.showDirectoryFailed, error);
|
|
405
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.showDirectoryFailed, error));
|
|
406
|
+
});
|
|
407
|
+
return promiseInfo.promise;
|
|
408
|
+
};
|
|
409
|
+
exports.showDirectory = showDirectory;
|
|
410
|
+
/**
|
|
411
|
+
* Modify the speed of a running transfer.
|
|
412
|
+
*
|
|
413
|
+
* @param id transfer uuid
|
|
414
|
+
* @param options transfer rate options
|
|
415
|
+
*
|
|
416
|
+
* @returns a promise that resolves if the transfer rate can be modified and rejects if not
|
|
417
|
+
*/
|
|
418
|
+
var modifyTransfer = function (id, options) {
|
|
419
|
+
if (!index_1.asperaSdk.isReady) {
|
|
420
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
421
|
+
}
|
|
422
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
423
|
+
var payload = {
|
|
424
|
+
transfer_id: id,
|
|
425
|
+
transfer_spec: options,
|
|
426
|
+
};
|
|
427
|
+
client_1.client.request('modify_transfer', payload)
|
|
428
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
429
|
+
.catch(function (error) {
|
|
430
|
+
(0, helpers_1.errorLog)(messages_1.messages.modifyTransferFailed, error);
|
|
431
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.modifyTransferFailed, error));
|
|
432
|
+
});
|
|
433
|
+
return promiseInfo.promise;
|
|
434
|
+
};
|
|
435
|
+
exports.modifyTransfer = modifyTransfer;
|
|
436
|
+
/**
|
|
437
|
+
* Set the custom branding template to be used by IBM Aspera. If the app is already
|
|
438
|
+
* configured to use a different branding, then the branding template you specify will be
|
|
439
|
+
* stored by the app, allowing the end user to switch at any point.
|
|
440
|
+
*
|
|
441
|
+
* @param id custom branding template id. This should be consistent across page loads.
|
|
442
|
+
* @param options custom branding options
|
|
443
|
+
*
|
|
444
|
+
* @returns a promise that resolves if the branding was properly set.
|
|
445
|
+
*/
|
|
446
|
+
var setBranding = function (id, options) {
|
|
447
|
+
if (!index_1.asperaSdk.isReady) {
|
|
448
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
449
|
+
}
|
|
450
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
451
|
+
var branding = {
|
|
452
|
+
id: id,
|
|
453
|
+
name: options.name,
|
|
454
|
+
theme: options.theme,
|
|
455
|
+
};
|
|
456
|
+
var payload = {
|
|
457
|
+
branding: branding,
|
|
458
|
+
};
|
|
459
|
+
client_1.client.request('update_branding', payload)
|
|
460
|
+
.then(function (data) { return promiseInfo.resolver(data); })
|
|
461
|
+
.catch(function (error) {
|
|
462
|
+
(0, helpers_1.errorLog)(messages_1.messages.setBrandingFailed, error);
|
|
463
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.setBrandingFailed, error));
|
|
464
|
+
});
|
|
465
|
+
return promiseInfo.promise;
|
|
466
|
+
};
|
|
467
|
+
exports.setBranding = setBranding;
|
|
468
|
+
/**
|
|
469
|
+
* Create a dropzone for the given element selector.
|
|
470
|
+
*
|
|
471
|
+
* @param callback the function to call once the files are dropped
|
|
472
|
+
* @param elementSelector the selector of the element on the page that should watch for drop events
|
|
473
|
+
*/
|
|
474
|
+
var createDropzone = function (callback, elementSelector) {
|
|
475
|
+
var elements = document.querySelectorAll(elementSelector);
|
|
476
|
+
if (!elements || !elements.length) {
|
|
477
|
+
(0, helpers_1.errorLog)(messages_1.messages.unableToFindElementOnPage);
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
var dragEvent = function (event) {
|
|
481
|
+
event.preventDefault();
|
|
482
|
+
};
|
|
483
|
+
var dropEvent = function (event) {
|
|
484
|
+
event.preventDefault();
|
|
485
|
+
var files = [];
|
|
486
|
+
if (event.dataTransfer && event.dataTransfer.files && event.dataTransfer.files.length && event.dataTransfer.files[0]) {
|
|
487
|
+
for (var i = 0; i < event.dataTransfer.files.length; i++) {
|
|
488
|
+
var file = event.dataTransfer.files[i];
|
|
489
|
+
files.push({
|
|
490
|
+
lastModified: file.lastModified,
|
|
491
|
+
name: file.name,
|
|
492
|
+
size: file.size,
|
|
493
|
+
type: file.type
|
|
494
|
+
});
|
|
495
|
+
}
|
|
496
|
+
var payload = {
|
|
497
|
+
files: files,
|
|
498
|
+
app_id: index_1.asperaSdk.globals.appId,
|
|
499
|
+
};
|
|
500
|
+
client_1.client.request('dropped_files', payload)
|
|
501
|
+
.then(function (data) { return callback({ event: event, files: data }); })
|
|
502
|
+
.catch(function (error) {
|
|
503
|
+
(0, helpers_1.errorLog)(messages_1.messages.unableToReadDropped, error);
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
elements.forEach(function (element) {
|
|
508
|
+
element.addEventListener('dragover', dragEvent);
|
|
509
|
+
element.addEventListener('drop', dropEvent);
|
|
510
|
+
index_1.asperaSdk.globals.dropZonesCreated.set(elementSelector, [{ event: 'dragover', callback: dragEvent }, { event: 'drop', callback: dropEvent }]);
|
|
511
|
+
});
|
|
512
|
+
};
|
|
513
|
+
exports.createDropzone = createDropzone;
|
|
514
|
+
/**
|
|
515
|
+
* Remove dropzone.
|
|
516
|
+
*
|
|
517
|
+
* @param elementSelector the selector of the element on the page that should remove
|
|
518
|
+
*/
|
|
519
|
+
var removeDropzone = function (elementSelector) {
|
|
520
|
+
var foundDropzone = index_1.asperaSdk.globals.dropZonesCreated.get(elementSelector);
|
|
521
|
+
if (foundDropzone) {
|
|
522
|
+
foundDropzone.forEach(function (data) {
|
|
523
|
+
var elements = document.querySelectorAll(elementSelector);
|
|
524
|
+
if (elements && elements.length) {
|
|
525
|
+
elements.forEach(function (element) {
|
|
526
|
+
element.removeEventListener(data.event, data.callback);
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
};
|
|
532
|
+
exports.removeDropzone = removeDropzone;
|
|
533
|
+
/**
|
|
534
|
+
* Get metadata about the IBM Aspera installation.
|
|
535
|
+
*
|
|
536
|
+
* @returns a promise that returns information about the user's IBM Aspera installation.
|
|
537
|
+
*/
|
|
538
|
+
var getInfo = function () {
|
|
539
|
+
if (!index_1.asperaSdk.isReady) {
|
|
540
|
+
return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
|
|
541
|
+
}
|
|
542
|
+
return new Promise(function (resolve, _) {
|
|
543
|
+
resolve(index_1.asperaSdk.globals.AsperaSdkInfo);
|
|
544
|
+
});
|
|
545
|
+
};
|
|
546
|
+
exports.getInfo = getInfo;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InstallerInfoResponse, InstallerOptions } from '../models/models';
|
|
2
|
+
/**
|
|
3
|
+
* Get the latest Aspera SDK installer information such as download URL and version.
|
|
4
|
+
*
|
|
5
|
+
* @param options Installer info options
|
|
6
|
+
*
|
|
7
|
+
* @returns a promise that resolves with the installer info and rejects if there is an error
|
|
8
|
+
*/
|
|
9
|
+
export declare const getInstallerInfo: (options?: InstallerOptions) => Promise<InstallerInfoResponse>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInstallerInfo = void 0;
|
|
4
|
+
var index_1 = require("../index");
|
|
5
|
+
var helpers_1 = require("../helpers/helpers");
|
|
6
|
+
var http_1 = require("../helpers/http");
|
|
7
|
+
var messages_1 = require("../constants/messages");
|
|
8
|
+
/**
|
|
9
|
+
* Get the latest Aspera SDK installer information such as download URL and version.
|
|
10
|
+
*
|
|
11
|
+
* @param options Installer info options
|
|
12
|
+
*
|
|
13
|
+
* @returns a promise that resolves with the installer info and rejects if there is an error
|
|
14
|
+
*/
|
|
15
|
+
var getInstallerInfo = function (options) {
|
|
16
|
+
if (options === void 0) { options = {}; }
|
|
17
|
+
var url = options.endpoint || index_1.asperaSdk.globals.installerUrl;
|
|
18
|
+
if (url.endsWith('/latest.json')) {
|
|
19
|
+
url = url.replace('/latest.json', '');
|
|
20
|
+
}
|
|
21
|
+
if (!(0, helpers_1.isValidURL)(url)) {
|
|
22
|
+
return (0, helpers_1.throwError)(messages_1.messages.invalidEndpoint, { url: url });
|
|
23
|
+
}
|
|
24
|
+
var promiseInfo = (0, helpers_1.generatePromiseObjects)();
|
|
25
|
+
(0, http_1.apiGet)("".concat(url, "/latest.json")).then(function (response) {
|
|
26
|
+
response.json().then(function (data) {
|
|
27
|
+
if (options.endpoint) {
|
|
28
|
+
for (var _i = 0, _a = data.entries; _i < _a.length; _i++) {
|
|
29
|
+
var entry = _a[_i];
|
|
30
|
+
if (!(0, helpers_1.isValidURL)(entry.url)) {
|
|
31
|
+
entry.url = "".concat(options.endpoint, "/").concat(entry.url);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (options.all) {
|
|
36
|
+
promiseInfo.resolver(data);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
var platform_1 = (0, helpers_1.getCurrentPlatform)();
|
|
40
|
+
data.entries = data.entries.filter(function (entry) { return entry.platform === platform_1; });
|
|
41
|
+
promiseInfo.resolver(data);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}).catch(function (error) {
|
|
45
|
+
(0, helpers_1.errorLog)(messages_1.messages.getInstallerError, error);
|
|
46
|
+
promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.getInstallerError, error));
|
|
47
|
+
});
|
|
48
|
+
return promiseInfo.promise;
|
|
49
|
+
};
|
|
50
|
+
exports.getInstallerInfo = getInstallerInfo;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** @ignore */
|
|
2
|
+
export declare const hiddenStyleList = "\n display: none !important;\n width: 1px !important;\n height: 1px !important;\n position: fixed !important;\n z-index: -99 !important;\n bottom: 0px !important;\n right: 0px !important;\n";
|
|
3
|
+
/** @ignore */
|
|
4
|
+
export declare const protocol = "aspera://";
|
|
5
|
+
/** @ignore */
|
|
6
|
+
export declare const installerUrl = "https://d3gcli72yxqn2z.cloudfront.net/downloads/desktop/latest/stable";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.installerUrl = exports.protocol = exports.hiddenStyleList = void 0;
|
|
4
|
+
/** @ignore */
|
|
5
|
+
exports.hiddenStyleList = "\n display: none !important;\n width: 1px !important;\n height: 1px !important;\n position: fixed !important;\n z-index: -99 !important;\n bottom: 0px !important;\n right: 0px !important;\n";
|
|
6
|
+
/** @ignore */
|
|
7
|
+
exports.protocol = 'aspera://';
|
|
8
|
+
/** @ignore */
|
|
9
|
+
exports.installerUrl = 'https://d3gcli72yxqn2z.cloudfront.net/downloads/desktop/latest/stable';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** @ignore */
|
|
2
|
+
export declare const messages: {
|
|
3
|
+
callbackIsNotFunction: string;
|
|
4
|
+
dragDropInitFailed: string;
|
|
5
|
+
failedToGenerateIframe: string;
|
|
6
|
+
getInstallerError: string;
|
|
7
|
+
getAllTransfersFailed: string;
|
|
8
|
+
getTransferFailed: string;
|
|
9
|
+
invalidEndpoint: string;
|
|
10
|
+
loadingProtocol: string;
|
|
11
|
+
modifyTransferFailed: string;
|
|
12
|
+
notValidTransferSpec: string;
|
|
13
|
+
removeTransferFailed: string;
|
|
14
|
+
resumeTransferFailed: string;
|
|
15
|
+
serverError: string;
|
|
16
|
+
serverNotVerified: string;
|
|
17
|
+
setBrandingFailed: string;
|
|
18
|
+
showDirectoryFailed: string;
|
|
19
|
+
showSelectFileDialogFailed: string;
|
|
20
|
+
showSelectFolderDialogFailed: string;
|
|
21
|
+
showPreferencesFailed: string;
|
|
22
|
+
stopTransferFailed: string;
|
|
23
|
+
transferFailed: string;
|
|
24
|
+
unableToFindElementOnPage: string;
|
|
25
|
+
unableToReadDropped: string;
|
|
26
|
+
websocketClosedError: string;
|
|
27
|
+
websocketClosedUnexpect: string;
|
|
28
|
+
websocketNotReady: string;
|
|
29
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.messages = void 0;
|
|
4
|
+
/** @ignore */
|
|
5
|
+
exports.messages = {
|
|
6
|
+
callbackIsNotFunction: 'The provided callback is not a function',
|
|
7
|
+
dragDropInitFailed: 'Unable to initialize drag-drop',
|
|
8
|
+
failedToGenerateIframe: 'Unable to generate IFRAME for download. Using new window',
|
|
9
|
+
getInstallerError: 'Unable to get latest installers',
|
|
10
|
+
getAllTransfersFailed: 'Unable to get all transfers',
|
|
11
|
+
getTransferFailed: 'Unable to get transfer',
|
|
12
|
+
invalidEndpoint: 'The specified endpoint is not a valid URL',
|
|
13
|
+
loadingProtocol: 'Launching IBM Aspera for Desktop',
|
|
14
|
+
modifyTransferFailed: 'Unable to modify transfer',
|
|
15
|
+
notValidTransferSpec: 'The supplied transferSpec is not valid',
|
|
16
|
+
removeTransferFailed: 'Unable to remove transfer',
|
|
17
|
+
resumeTransferFailed: 'Unable to resume transfer',
|
|
18
|
+
serverError: 'Unable to connect to IBM Aspera for Desktop server',
|
|
19
|
+
serverNotVerified: 'IBM Aspera SDK has not been verified. Run test or init first',
|
|
20
|
+
setBrandingFailed: 'Unable to set custom branding',
|
|
21
|
+
showDirectoryFailed: 'Unable to show transfer directory',
|
|
22
|
+
showSelectFileDialogFailed: 'Unable to show select file dialog',
|
|
23
|
+
showSelectFolderDialogFailed: 'Unable to show select folder dialog',
|
|
24
|
+
showPreferencesFailed: 'Unable to show preferences',
|
|
25
|
+
stopTransferFailed: 'Unable to stop transfer',
|
|
26
|
+
transferFailed: 'The transfer failed to initiate',
|
|
27
|
+
unableToFindElementOnPage: 'Unable to find the element on the current page',
|
|
28
|
+
unableToReadDropped: 'The dropped item could not be parsed. Please try selecting via the select file/folder option',
|
|
29
|
+
websocketClosedError: 'The websocket was closed due to an error',
|
|
30
|
+
websocketClosedUnexpect: 'The websocket was closed unexpectedly',
|
|
31
|
+
websocketNotReady: 'The websocket is not ready. Run init first',
|
|
32
|
+
};
|