@ibm-aspera/sdk 0.7.4 → 0.9.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.
@@ -116,6 +116,14 @@ export declare const showSelectFileDialog: (options?: FileDialogOptions) => Prom
116
116
  * @returns a promise that resolves with the selected folder(s) and rejects if user cancels dialog
117
117
  */
118
118
  export declare const showSelectFolderDialog: (options?: FolderDialogOptions) => Promise<DataTransferResponse>;
119
+ /**
120
+ * Shows the about page of the transfer client.
121
+ *
122
+ * This is supported when using Connect or IBM Aspera for desktop, but not HTTP Gateway.
123
+ *
124
+ * @returns a promise that resolves when the about page is shown.
125
+ */
126
+ export declare const showAbout: () => Promise<any>;
119
127
  /**
120
128
  * Opens the IBM Aspera preferences page.
121
129
  *
@@ -245,3 +253,22 @@ export declare const getChecksum: (options: GetChecksumOptions) => Promise<Check
245
253
  * }
246
254
  */
247
255
  export declare const getCapabilities: () => SdkCapabilities;
256
+ /**
257
+ * Check if the SDK and underlying transfer client supports a specific capability.
258
+ *
259
+ * Capabilities depend on the transfer client being used (HTTP Gateway, Connect, or IBM Aspera for desktop).
260
+ * Use this function to conditionally enable/disable features in your application.
261
+ *
262
+ * @param capability the capability to check.
263
+ *
264
+ * @returns `true` if the capability is supported, `false` otherwise
265
+ *
266
+ * @example
267
+ * ```typescript
268
+ * // Determine if your web application can render image previews for user selected files
269
+ * if (asperaSdk.hasCapability('imagePreview')) {
270
+ * asperaSdk.readAsArrayBuffer(path);
271
+ * }
272
+ * ```
273
+ */
274
+ export declare const hasCapability: (capability: keyof SdkCapabilities) => boolean;
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.getCapabilities = exports.getChecksum = exports.readChunkAsArrayBuffer = exports.readAsArrayBuffer = exports.getInfo = exports.removeDropzone = exports.createDropzone = exports.setBranding = exports.modifyTransfer = exports.showDirectory = exports.getFilesList = exports.getTransfer = exports.getAllTransfers = exports.showPreferences = exports.showSelectFolderDialog = exports.showSelectFileDialog = exports.resumeTransfer = exports.stopTransfer = exports.removeTransfer = exports.deregisterStatusCallback = exports.registerStatusCallback = exports.deregisterActivityCallback = exports.registerActivityCallback = exports.startTransfer = exports.init = exports.initDragDrop = exports.testConnection = void 0;
14
+ exports.hasCapability = exports.getCapabilities = exports.getChecksum = exports.readChunkAsArrayBuffer = exports.readAsArrayBuffer = exports.getInfo = exports.removeDropzone = exports.createDropzone = exports.setBranding = exports.modifyTransfer = exports.showDirectory = exports.getFilesList = exports.getTransfer = exports.getAllTransfers = exports.showPreferences = exports.showAbout = exports.showSelectFolderDialog = exports.showSelectFileDialog = exports.resumeTransfer = exports.stopTransfer = exports.removeTransfer = exports.deregisterStatusCallback = exports.registerStatusCallback = exports.deregisterActivityCallback = exports.registerActivityCallback = exports.startTransfer = exports.init = exports.initDragDrop = exports.testConnection = void 0;
15
15
  var messages_1 = require("../constants/messages");
16
16
  var client_1 = require("../helpers/client/client");
17
17
  var helpers_1 = require("../helpers/helpers");
@@ -435,6 +435,33 @@ var showSelectFolderDialog = function (options) {
435
435
  return promiseInfo.promise;
436
436
  };
437
437
  exports.showSelectFolderDialog = showSelectFolderDialog;
438
+ /**
439
+ * Shows the about page of the transfer client.
440
+ *
441
+ * This is supported when using Connect or IBM Aspera for desktop, but not HTTP Gateway.
442
+ *
443
+ * @returns a promise that resolves when the about page is shown.
444
+ */
445
+ var showAbout = function () {
446
+ if (index_1.asperaSdk.useHttpGateway) {
447
+ return (0, helpers_1.throwError)(messages_1.messages.showAboutNotSupported);
448
+ }
449
+ if (index_1.asperaSdk.useConnect) {
450
+ return index_1.asperaSdk.globals.connect.showAbout();
451
+ }
452
+ if (!index_1.asperaSdk.isReady) {
453
+ return (0, helpers_1.throwError)(messages_1.messages.serverNotVerified);
454
+ }
455
+ var promiseInfo = (0, helpers_1.generatePromiseObjects)();
456
+ client_1.client.request('show_about')
457
+ .then(function (data) { return promiseInfo.resolver(data); })
458
+ .catch(function (error) {
459
+ (0, helpers_1.errorLog)(messages_1.messages.showAboutFailed, error);
460
+ promiseInfo.rejecter((0, helpers_1.generateErrorBody)(messages_1.messages.showAboutFailed, error));
461
+ });
462
+ return promiseInfo.promise;
463
+ };
464
+ exports.showAbout = showAbout;
438
465
  /**
439
466
  * Opens the IBM Aspera preferences page.
440
467
  *
@@ -924,8 +951,9 @@ var getChecksum = function (options) {
924
951
  exports.getChecksum = getChecksum;
925
952
  var supportsMethod = function (method) {
926
953
  // We currently do not support calculating file checksums when using HTTP Gateway. In theory it should be possible
927
- // to calculate this direclty in the browser similar to how `readAsArrayBuffer()` is implemented.
928
- if (index_1.asperaSdk.useHttpGateway && method === 'get_checksum') {
954
+ // to calculate this directly in the browser similar to how `readAsArrayBuffer()` is implemented.
955
+ // HTTP Gateway also does not support showing native transfer client UI (about, preferences, etc.).
956
+ if (index_1.asperaSdk.useHttpGateway && (method === 'get_checksum' || method === 'show_about' || method === 'open_preferences')) {
929
957
  return false;
930
958
  }
931
959
  // HTTP Gateway and Connect do not have any RPC methods so fallback to true
@@ -958,6 +986,30 @@ var getCapabilities = function () {
958
986
  return {
959
987
  imagePreview: supportsMethod('read_as_array_buffer') && supportsMethod('read_chunk_as_array_buffer'),
960
988
  fileChecksum: supportsMethod('get_checksum'),
989
+ showAbout: supportsMethod('show_about'),
990
+ showPreferences: supportsMethod('open_preferences'),
961
991
  };
962
992
  };
963
993
  exports.getCapabilities = getCapabilities;
994
+ /**
995
+ * Check if the SDK and underlying transfer client supports a specific capability.
996
+ *
997
+ * Capabilities depend on the transfer client being used (HTTP Gateway, Connect, or IBM Aspera for desktop).
998
+ * Use this function to conditionally enable/disable features in your application.
999
+ *
1000
+ * @param capability the capability to check.
1001
+ *
1002
+ * @returns `true` if the capability is supported, `false` otherwise
1003
+ *
1004
+ * @example
1005
+ * ```typescript
1006
+ * // Determine if your web application can render image previews for user selected files
1007
+ * if (asperaSdk.hasCapability('imagePreview')) {
1008
+ * asperaSdk.readAsArrayBuffer(path);
1009
+ * }
1010
+ * ```
1011
+ */
1012
+ var hasCapability = function (capability) {
1013
+ return !!(0, exports.getCapabilities)()[capability];
1014
+ };
1015
+ exports.hasCapability = hasCapability;
@@ -39,4 +39,6 @@ export declare const messages: {
39
39
  getFilesListFailed: string;
40
40
  getChecksumFailed: string;
41
41
  getChecksumNotSupported: string;
42
+ showAboutFailed: string;
43
+ showAboutNotSupported: string;
42
44
  };
@@ -42,4 +42,6 @@ exports.messages = {
42
42
  getFilesListFailed: 'Unable to get files list for transfer',
43
43
  getChecksumFailed: 'Unable to get file checksum',
44
44
  getChecksumNotSupported: 'File checksum not supported for current transfer client',
45
+ showAboutFailed: 'Unable to show about page',
46
+ showAboutNotSupported: 'Show about is not supported for current transfer client',
45
47
  };
@@ -1,10 +1,10 @@
1
1
  import { AsperaSdk } from './models/aspera-sdk.model';
2
- import { createDropzone, deregisterActivityCallback, deregisterStatusCallback, getAllTransfers, getCapabilities, getChecksum, getFilesList, getInfo, getTransfer, init, initDragDrop, modifyTransfer, readAsArrayBuffer, readChunkAsArrayBuffer, registerActivityCallback, registerStatusCallback, removeDropzone, removeTransfer, resumeTransfer, setBranding, showDirectory, showPreferences, showSelectFileDialog, showSelectFolderDialog, startTransfer, stopTransfer, testConnection } from './app/core';
2
+ import { createDropzone, deregisterActivityCallback, deregisterStatusCallback, getAllTransfers, getCapabilities, getChecksum, getFilesList, getInfo, getTransfer, hasCapability, init, initDragDrop, modifyTransfer, readAsArrayBuffer, readChunkAsArrayBuffer, registerActivityCallback, registerStatusCallback, removeDropzone, removeTransfer, resumeTransfer, setBranding, showAbout, showDirectory, showPreferences, showSelectFileDialog, showSelectFolderDialog, startTransfer, stopTransfer, testConnection } from './app/core';
3
3
  import { getInstallerInfo } from './app/installer';
4
4
  import { getInstallerUrls, isSafari } from './helpers/helpers';
5
5
  export declare const asperaSdk: AsperaSdk;
6
6
  declare const launch: () => void;
7
- export { isSafari, init, testConnection, startTransfer, launch, registerActivityCallback, deregisterActivityCallback, removeTransfer, showDirectory, stopTransfer, resumeTransfer, getAllTransfers, getTransfer, getFilesList, showSelectFileDialog, showSelectFolderDialog, showPreferences, modifyTransfer, createDropzone, removeDropzone, initDragDrop, getInstallerInfo, registerStatusCallback, deregisterStatusCallback, setBranding, getInfo, readAsArrayBuffer, readChunkAsArrayBuffer, getInstallerUrls, getCapabilities, getChecksum, };
7
+ export { isSafari, init, testConnection, startTransfer, launch, registerActivityCallback, deregisterActivityCallback, removeTransfer, showAbout, showDirectory, stopTransfer, resumeTransfer, getAllTransfers, getTransfer, getFilesList, showSelectFileDialog, showSelectFolderDialog, showPreferences, modifyTransfer, createDropzone, removeDropzone, initDragDrop, getInstallerInfo, registerStatusCallback, deregisterStatusCallback, setBranding, getInfo, readAsArrayBuffer, readChunkAsArrayBuffer, getInstallerUrls, getCapabilities, hasCapability, getChecksum, };
8
8
  export type { AsperaSdkSpec, AsperaSdkTransfer, BrowserStyleFile, ChecksumFileResponse, CustomBrandingOptions, CustomTheme, CustomThemeItems, DataTransferResponse, DropzoneEventData, DropzoneEventType, DropzoneOptions, FileDialogOptions, FileError, FileFilter, FileStat, FileStatus, FolderDialogOptions, GetChecksumOptions, InitOptions, InstallerInfo, InstallerInfoResponse, InstallerOptions, InstallerUrlInfo, ModifyTransferOptions, OverwritePolicy, PaginatedFilesResponse, Pagination, Path, ReadAsArrayBufferResponse, ReadChunkAsArrayBufferResponse, ResumePolicy, ResumeTransferOptions, SafariExtensionEvent, SdkCapabilities, TransferSpec, TransferStatus, WebsocketEvent, } from './models/models';
9
9
  export type { ActivityMessage, ActivityMessageTypes, AsperaSdkClientInfo, AsperaSdkInfo, TransferResponse, } from './models/aspera-sdk.model';
10
10
  export { AsperaSdk, AsperaSdkGlobals } from './models/aspera-sdk.model';
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.AsperaSdkGlobals = exports.AsperaSdk = exports.getChecksum = exports.getCapabilities = exports.getInstallerUrls = exports.readChunkAsArrayBuffer = exports.readAsArrayBuffer = 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.getFilesList = 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;
36
+ exports.AsperaSdkGlobals = exports.AsperaSdk = exports.getChecksum = exports.hasCapability = exports.getCapabilities = exports.getInstallerUrls = exports.readChunkAsArrayBuffer = exports.readAsArrayBuffer = 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.getFilesList = exports.getTransfer = exports.getAllTransfers = exports.resumeTransfer = exports.stopTransfer = exports.showDirectory = exports.showAbout = exports.removeTransfer = exports.deregisterActivityCallback = exports.registerActivityCallback = exports.launch = exports.startTransfer = exports.testConnection = exports.init = exports.isSafari = exports.asperaSdk = void 0;
37
37
  var aspera_sdk_model_1 = require("./models/aspera-sdk.model");
38
38
  var core_1 = require("./app/core");
39
39
  Object.defineProperty(exports, "createDropzone", { enumerable: true, get: function () { return core_1.createDropzone; } });
@@ -45,6 +45,7 @@ Object.defineProperty(exports, "getChecksum", { enumerable: true, get: function
45
45
  Object.defineProperty(exports, "getFilesList", { enumerable: true, get: function () { return core_1.getFilesList; } });
46
46
  Object.defineProperty(exports, "getInfo", { enumerable: true, get: function () { return core_1.getInfo; } });
47
47
  Object.defineProperty(exports, "getTransfer", { enumerable: true, get: function () { return core_1.getTransfer; } });
48
+ Object.defineProperty(exports, "hasCapability", { enumerable: true, get: function () { return core_1.hasCapability; } });
48
49
  Object.defineProperty(exports, "init", { enumerable: true, get: function () { return core_1.init; } });
49
50
  Object.defineProperty(exports, "initDragDrop", { enumerable: true, get: function () { return core_1.initDragDrop; } });
50
51
  Object.defineProperty(exports, "modifyTransfer", { enumerable: true, get: function () { return core_1.modifyTransfer; } });
@@ -56,6 +57,7 @@ Object.defineProperty(exports, "removeDropzone", { enumerable: true, get: functi
56
57
  Object.defineProperty(exports, "removeTransfer", { enumerable: true, get: function () { return core_1.removeTransfer; } });
57
58
  Object.defineProperty(exports, "resumeTransfer", { enumerable: true, get: function () { return core_1.resumeTransfer; } });
58
59
  Object.defineProperty(exports, "setBranding", { enumerable: true, get: function () { return core_1.setBranding; } });
60
+ Object.defineProperty(exports, "showAbout", { enumerable: true, get: function () { return core_1.showAbout; } });
59
61
  Object.defineProperty(exports, "showDirectory", { enumerable: true, get: function () { return core_1.showDirectory; } });
60
62
  Object.defineProperty(exports, "showPreferences", { enumerable: true, get: function () { return core_1.showPreferences; } });
61
63
  Object.defineProperty(exports, "showSelectFileDialog", { enumerable: true, get: function () { return core_1.showSelectFileDialog; } });
@@ -76,6 +78,7 @@ exports.asperaSdk.startTransfer = core_1.startTransfer;
76
78
  exports.asperaSdk.registerActivityCallback = core_1.registerActivityCallback;
77
79
  exports.asperaSdk.deregisterActivityCallback = core_1.deregisterActivityCallback;
78
80
  exports.asperaSdk.removeTransfer = core_1.removeTransfer;
81
+ exports.asperaSdk.showAbout = core_1.showAbout;
79
82
  exports.asperaSdk.showDirectory = core_1.showDirectory;
80
83
  exports.asperaSdk.stopTransfer = core_1.stopTransfer;
81
84
  exports.asperaSdk.resumeTransfer = core_1.resumeTransfer;
@@ -99,6 +102,7 @@ exports.asperaSdk.readChunkAsArrayBuffer = core_1.readChunkAsArrayBuffer;
99
102
  exports.asperaSdk.isSafari = helpers_1.isSafari;
100
103
  exports.asperaSdk.getInstallerUrls = helpers_1.getInstallerUrls;
101
104
  exports.asperaSdk.getCapabilities = core_1.getCapabilities;
105
+ exports.asperaSdk.hasCapability = core_1.hasCapability;
102
106
  exports.asperaSdk.getChecksum = core_1.getChecksum;
103
107
  exports.asperaSdk.httpGatewayCalls = httpGatewayCalls;
104
108
  var launch = exports.asperaSdk.globals.launch;
@@ -201,6 +201,8 @@ export declare class AsperaSdk {
201
201
  showSelectFileDialog: (options?: FileDialogOptions) => Promise<DataTransferResponse>;
202
202
  /** Function to display a folder dialog for the user to select folders. */
203
203
  showSelectFolderDialog: (options?: FolderDialogOptions) => Promise<DataTransferResponse>;
204
+ /** Function to show the about page of the transfer client */
205
+ showAbout: () => Promise<any>;
204
206
  /** Function to display the IBM Aspera preferences page */
205
207
  showPreferences: () => Promise<any>;
206
208
  /** Function to modify a running transfer */
@@ -235,6 +237,8 @@ export declare class AsperaSdk {
235
237
  getInstallerUrls: () => InstallerUrlInfo;
236
238
  /** Function to get the SDK capabilities. */
237
239
  getCapabilities: () => SdkCapabilities;
240
+ /** Function to check whether the SDK supports the specified capability */
241
+ hasCapability: (capability: keyof SdkCapabilities) => boolean;
238
242
  /** Function to get a checksum for a file */
239
243
  getChecksum: (options: GetChecksumOptions) => Promise<ChecksumFileResponse>;
240
244
  /** Indicate if Safari Extension is enabled. If the extension is disabled during the lifecycle this will not update to disabled. */
@@ -879,4 +879,18 @@ export interface SdkCapabilities {
879
879
  * Whether the SDK can calculate checksums of a file chunk.
880
880
  */
881
881
  fileChecksum: boolean;
882
+ /**
883
+ * Whether the transfer client supports showing the about page.
884
+ *
885
+ * This is supported when using Connect or IBM Aspera for desktop with the required RPC methods,
886
+ * but not HTTP Gateway.
887
+ */
888
+ showAbout: boolean;
889
+ /**
890
+ * Whether the transfer client supports showing the preferences page.
891
+ *
892
+ * This is supported when using Connect or IBM Aspera for desktop with the required RPC methods,
893
+ * but not HTTP Gateway.
894
+ */
895
+ showPreferences: boolean;
882
896
  }