filemail-sdk 10.2.0 → 10.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"transferFilesRegistrar.d.ts","sourceRoot":"","sources":["../../../src/uploader/transferFilesRegistrar.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,WAAW,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAMtE,MAAM,CAAC,OAAO,OAAO,sBAAsB;;gBAmB3B,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EAAE;IAMrG,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAItF,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,IAAI;IAsBvF,OAAO,CAAC,oBAAoB;IAYtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAUnF,eAAe;YAef,oBAAoB;YA8BpB,mBAAmB;IAcjC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAoBtB,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE,sBAAsB,CAAC;IAI9D,wBAAwB,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,EAAE,sBAAsB,CAAC,CAAC,EAAE,GAAG,IAAI;CAGnH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,wBAAwB,EAAE,IAAI,CAAC;CAAE,GAAG;IAAE,wBAAwB,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"transferFilesRegistrar.d.ts","sourceRoot":"","sources":["../../../src/uploader/transferFilesRegistrar.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,WAAW,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAMtE,MAAM,CAAC,OAAO,OAAO,sBAAsB;;gBAmB3B,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EAAE;IAMrG,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAItF,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,IAAI;IAsBvF,OAAO,CAAC,oBAAoB;IAYtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAUnF,eAAe;YAef,oBAAoB;YA8BpB,mBAAmB;IAejC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAoBtB,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE,sBAAsB,CAAC;IAI9D,wBAAwB,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,EAAE,sBAAsB,CAAC,CAAC,EAAE,GAAG,IAAI;CAGnH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,wBAAwB,EAAE,IAAI,CAAC;CAAE,GAAG;IAAE,wBAAwB,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;CAAE,CAAC"}
@@ -97,6 +97,7 @@ export default class TransferFilesRegistrar {
97
97
  const registerFilesRequest = {
98
98
  transferkey: this.#transferKey,
99
99
  items: filesBatch.map(file => ({
100
+ clientItemId: String(file.externalId),
100
101
  path: this.joinTransferPath(file.fileDestinationPathInTransfer, file.fileName),
101
102
  type: `File`,
102
103
  size: file.fileSizeInBytes,
@@ -118,8 +119,9 @@ export default class TransferFilesRegistrar {
118
119
  validateRegistrationBatchResponse(filesBatch, response) {
119
120
  if (response.items.length !== filesBatch.length)
120
121
  throw new TransferUploadError(`Invalid register transfer files response`);
121
- return response.items.map((item, index) => {
122
- const file = filesBatch[index];
122
+ const filesByClientItemId = new Map(filesBatch.map(file => [String(file.externalId), file]));
123
+ return response.items.map((item) => {
124
+ const file = filesByClientItemId.get(item.clientItemId);
123
125
  if (!file || !item.uploadItemId || !item.fileId)
124
126
  throw new TransferUploadError(`Invalid register transfer files response`);
125
127
  return [file.externalId, { uploadItemId: item.uploadItemId, fileId: item.fileId }];
@@ -1 +1 @@
1
- {"version":3,"file":"transferFilesRegistrar.js","sourceRoot":"","sources":["../../../src/uploader/transferFilesRegistrar.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAU3D,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACvC,UAAU,CAAY;IACtB,aAAa,CAAe;IAC5B,MAAM,CAAmC;IAEzC,gBAAgB,GAAG,IAAI,GAAG,EAA2C,CAAC;IACtE,oBAAoB,GAAG,IAAI,GAAG,EAA0B,CAAC;IACzD,gBAAgB,CAAsG;IAEtH,WAAW,CAAqB;IAChC,YAAY,CAAqB;IAEjC,eAAe,CAA8B;IAC7C,4BAA4B,CAA2B;IAEvD,0BAA0B,GAAG,IAAI,CAAC;IAElC,eAAe,CAA4B;IAE3C,YAAY,SAAoB,EAAE,YAA0B,EAAE,KAAuC;QACjG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,cAA+B;QAC7C,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAkB,EAAE,WAAmB,EAAE,mBAAiC;QAC5E,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;YAC3B,MAAM,IAAI,mBAAmB,CAAC,yCAAyC,CAAC,CAAC;QAE7E,IAAI,IAAI,CAAC,eAAe;YACpB,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;QAElE,IAAI,mBAAmB,EAAE,OAAO;YAC5B,OAAO;QAEX,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAEhC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QAExC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAElC,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QAE/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC;IAEO,oBAAoB,CAAC,mBAA4C;QACrE,MAAM,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QAEtC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAElF,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC,4BAA4B,GAAG,GAAG,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACnH,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,eAAe;YACrB,OAAO;QAEX,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC;QAE9B,MAAM,IAAI,CAAC,eAAe,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,oBAAqC;QAC/D,IAAI,IAAI,CAAC,gBAAgB;YACrB,MAAM,IAAI,mBAAmB,CAAC,iDAAiD,CAAC,CAAC;QAErF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,IAAI,CAAC,gBAAgB,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;YAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtC,CAAC;gBACO,CAAC;YACL,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC;YAEtC,IAAI,CAAC,4BAA4B,GAAG,SAAS,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACrC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAE3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,IAAI,yBAAyB,EAAE,CAAC;YACrF,IAAI,IAAI,CAAC,eAAgB,CAAC,MAAM,CAAC,OAAO;gBACpC,MAAM;YAEV,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,yBAAyB,CAAC,CAAC;YAEnF,IAAI,CAAC;gBACD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAE1E,KAAK,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,IAAI,sBAAsB;oBACjE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBAE9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,UAAU;oBACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAc,CAAC,CAAC;gBAEnE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO;oBACrC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;oBACO,CAAC;gBACL,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,UAA4C;QAC1E,MAAM,oBAAoB,GAAiC;YACvD,WAAW,EAAE,IAAI,CAAC,YAAa;YAC/B,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC9E,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,eAAe;aAC7B,CAAC,CAAC;SACN,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAY,EAAE,oBAAoB,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACpI,OAAO,IAAI,CAAC,iCAAiC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IAEO,iBAAiB,CAAC,UAAmC,EAAE,KAAc;QACzE,MAAM,SAAS,GAA0C;YACrD,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;YACxD,KAAK,EAAE,KAAc;SACxB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;IACzF,CAAC;IAEO,2BAA2B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC;IAEO,iCAAiC,CAAC,UAA4C,EAAE,QAAuC;QAC3H,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;YAC3C,MAAM,IAAI,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;QAE9E,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAA6C,EAAE;YACjF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM;gBAC3C,MAAM,IAAI,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;YAE9E,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,gBAAgB,CAAC,aAAqB,EAAE,QAAgB;QAC5D,MAAM,uBAAuB,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,uBAAuB;YACxB,OAAO,kBAAkB,CAAC;QAE9B,OAAO,GAAG,uBAAuB,IAAI,kBAAkB,EAAE,CAAC;IAC9D,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACtB,OAAO;QAEX,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAEzE,IAAI,gBAAgB;YAChB,OAAO,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3C,IAAI,YAAY;YACjB,OAAO,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAE,EAAE,CAAC,CAAC;aACzG,IAAI,IAAI,CAAC,0BAA0B;YACpC,OAAO,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC,CAAC;;YAEjH,OAAO,CAAC,+CAA+C;QAE3D,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,wBAAwB,CAAC,eAAgF;QACrG,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;CACJ","sourcesContent":["import TransferUploadError from \"./transferUploadError.js\";\nimport TransferUploadEvent from \"./transferUploadEvent.js\";\n\nimport type ApiClient from \"../utils/api/apiClient.js\";\nimport type EventsEngine from \"../utils/events/eventsEngine.js\";\nimport type FileDetails from \"../utils/fileSystem/fileDetails.js\";\nimport type RegisteredTransferFile from \"./registeredTransferFile.js\";\nimport type FilesRegistrationBatchFailedEventArgs from \"./eventArgs/filesRegistrationBatchFailedEventArgs.js\";\nimport type { RegisterTransferFilesRequest } from \"../utils/api/dtos/registerTransferFilesRequest.js\";\nimport type { RegisterTransferFilesResponse } from \"../utils/api/dtos/registerTransferFilesResponse.js\";\n\nconst REGISTER_ITEMS_BATCH_SIZE = 250;\nexport default class TransferFilesRegistrar {\n #apiClient: ApiClient;\n #eventsEngine: EventsEngine;\n #files: readonly Readonly<FileDetails>[];\n\n #registeredFiles = new Map<string | number, RegisteredTransferFile>();\n #failedRegistrations = new Map<string | number, Error>();\n #currentObserver: { wantedExternalFileId: string | number, resolve: (value: RegistrationResult) => void } | undefined;\n\n #transferId: string | undefined;\n #transferKey: string | undefined;\n\n #stopController: AbortController | undefined;\n #removeExternalAbortListener: (() => void) | undefined;\n\n #isRegisteringAllFilesDone = true;\n\n #runningPromise: Promise<void> | undefined;\n\n constructor(apiClient: ApiClient, eventsEngine: EventsEngine, files: readonly Readonly<FileDetails>[]) {\n this.#apiClient = apiClient;\n this.#eventsEngine = eventsEngine;\n this.#files = files;\n }\n\n getRegisteredFile(externalFileId: string | number): RegisteredTransferFile | undefined {\n return this.#registeredFiles.get(externalFileId);\n }\n\n start(transferId: string, transferKey: string, pauseAndAbortSignal?: AbortSignal): void {\n if (!transferId || !transferKey)\n throw new TransferUploadError(`TransferId and TransferKey are required`);\n\n if (this.#runningPromise)\n throw new TransferUploadError(`Registrar is already running`);\n\n if (pauseAndAbortSignal?.aborted)\n return;\n\n this.#transferId = transferId;\n this.#transferKey = transferKey;\n\n this.#isRegisteringAllFilesDone = false;\n\n this.#failedRegistrations.clear();\n\n this.createStopController(pauseAndAbortSignal);\n\n this.#runningPromise = this.runRegistration();\n }\n\n private createStopController(pauseAndAbortSignal: AbortSignal | undefined) {\n const stopController = new AbortController();\n\n this.#stopController = stopController;\n\n const abortRegistration = () => stopController.abort(pauseAndAbortSignal?.reason);\n\n pauseAndAbortSignal?.addEventListener(`abort`, abortRegistration, { once: true });\n\n this.#removeExternalAbortListener = () => pauseAndAbortSignal?.removeEventListener(`abort`, abortRegistration);\n }\n\n async stop(): Promise<void> {\n if (!this.#runningPromise)\n return;\n\n this.#stopController?.abort();\n\n await this.#runningPromise;\n }\n\n async waitUntilFileRegistered(wantedExternalFileId: string | number): Promise<RegistrationResult> {\n if (this.#currentObserver)\n throw new TransferUploadError(`Current implementation allows only one observer`);\n\n return new Promise(resolve => {\n this.#currentObserver = { wantedExternalFileId, resolve };\n this.notifyObserver();\n });\n }\n\n private async runRegistration(): Promise<void> {\n try {\n await this.registerMissingFiles();\n }\n finally {\n this.#isRegisteringAllFilesDone = true;\n this.notifyObserver();\n this.#removeExternalAbortListener?.();\n\n this.#removeExternalAbortListener = undefined;\n this.#stopController = undefined;\n this.#runningPromise = undefined;\n }\n }\n\n private async registerMissingFiles(): Promise<void> {\n const filesToRegister = this.getFilesMissingRegistration();\n\n for (let start = 0; start < filesToRegister.length; start += REGISTER_ITEMS_BATCH_SIZE) {\n if (this.#stopController!.signal.aborted)\n break;\n\n const filesBatch = filesToRegister.slice(start, start + REGISTER_ITEMS_BATCH_SIZE);\n\n try {\n const registeredBatchEntries = await this.registerSingleBatch(filesBatch);\n\n for (const [externalFileId, registeredFile] of registeredBatchEntries)\n this.#registeredFiles.set(externalFileId, registeredFile);\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n }\n catch (error) {\n for (const file of filesBatch)\n this.#failedRegistrations.set(file.externalId, error as Error);\n\n if (!this.#stopController?.signal.aborted)\n this.notifyBatchFailed(filesBatch, error);\n }\n finally {\n this.notifyObserver();\n }\n }\n }\n\n private async registerSingleBatch(filesBatch: readonly Readonly<FileDetails>[]): Promise<Array<[string | number, RegisteredTransferFile]>> {\n const registerFilesRequest: RegisterTransferFilesRequest = {\n transferkey: this.#transferKey!,\n items: filesBatch.map(file => ({\n path: this.joinTransferPath(file.fileDestinationPathInTransfer, file.fileName),\n type: `File`,\n size: file.fileSizeInBytes,\n })),\n };\n\n const response = await this.#apiClient.registerTransferFiles(this.#transferId!, registerFilesRequest, this.#stopController?.signal);\n return this.validateRegistrationBatchResponse(filesBatch, response);\n }\n\n private notifyBatchFailed(filesBatch: Readonly<FileDetails>[], error: unknown) {\n const eventArgs: FilesRegistrationBatchFailedEventArgs = {\n externalFileIds: filesBatch.map(file => file.externalId),\n error: error as Error,\n };\n\n this.#eventsEngine.emit(TransferUploadEvent.FilesRegistrationBatchFailed, eventArgs);\n }\n\n private getFilesMissingRegistration(): readonly Readonly<FileDetails>[] {\n return this.#files.filter(file => !this.#registeredFiles.has(file.externalId));\n }\n\n private validateRegistrationBatchResponse(filesBatch: readonly Readonly<FileDetails>[], response: RegisterTransferFilesResponse): Array<[string | number, RegisteredTransferFile]> {\n if (response.items.length !== filesBatch.length)\n throw new TransferUploadError(`Invalid register transfer files response`);\n\n return response.items.map((item, index): [string | number, RegisteredTransferFile] => {\n const file = filesBatch[index];\n\n if (!file || !item.uploadItemId || !item.fileId)\n throw new TransferUploadError(`Invalid register transfer files response`);\n\n return [file.externalId, { uploadItemId: item.uploadItemId, fileId: item.fileId }];\n });\n }\n\n private joinTransferPath(directoryPath: string, fileName: string): string {\n const normalizedDirectoryPath = directoryPath.replace(/^\\/+|\\/+$/g, ``);\n const normalizedFileName = fileName.replace(/^\\/+/g, ``);\n\n if (!normalizedDirectoryPath)\n return normalizedFileName;\n\n return `${normalizedDirectoryPath}/${normalizedFileName}`;\n }\n\n private notifyObserver(): void {\n if (!this.#currentObserver)\n return;\n\n const { wantedExternalFileId, resolve } = this.#currentObserver;\n const isFileRegistered = this.#registeredFiles.has(wantedExternalFileId);\n const isFileFailed = this.#failedRegistrations.has(wantedExternalFileId);\n\n if (isFileRegistered)\n resolve({ isRegisteredSuccessfully: true });\n else if (isFileFailed)\n resolve({ isRegisteredSuccessfully: false, error: this.#failedRegistrations.get(wantedExternalFileId)! });\n else if (this.#isRegisteringAllFilesDone)\n resolve({ isRegisteredSuccessfully: false, error: new Error(`File has never been picked up for registration`) });\n else\n return; // continue waiting for new batch registrations\n\n this.#currentObserver = undefined;\n }\n\n export(): ReadonlyMap<string | number, RegisteredTransferFile> {\n return this.#registeredFiles;\n }\n\n recoverFromExportedState(registeredFiles: readonly (readonly [string | number, RegisteredTransferFile])[]): void {\n this.#registeredFiles = new Map(registeredFiles);\n }\n}\n\nexport type RegistrationResult = { isRegisteredSuccessfully: true; } | { isRegisteredSuccessfully: false; error: Error; };"]}
1
+ {"version":3,"file":"transferFilesRegistrar.js","sourceRoot":"","sources":["../../../src/uploader/transferFilesRegistrar.ts"],"names":[],"mappings":"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","sourcesContent":["import TransferUploadError from \"./transferUploadError.js\";\nimport TransferUploadEvent from \"./transferUploadEvent.js\";\n\nimport type ApiClient from \"../utils/api/apiClient.js\";\nimport type EventsEngine from \"../utils/events/eventsEngine.js\";\nimport type FileDetails from \"../utils/fileSystem/fileDetails.js\";\nimport type RegisteredTransferFile from \"./registeredTransferFile.js\";\nimport type FilesRegistrationBatchFailedEventArgs from \"./eventArgs/filesRegistrationBatchFailedEventArgs.js\";\nimport type { RegisterTransferFilesRequest } from \"../utils/api/dtos/registerTransferFilesRequest.js\";\nimport type { RegisterTransferFilesResponse } from \"../utils/api/dtos/registerTransferFilesResponse.js\";\n\nconst REGISTER_ITEMS_BATCH_SIZE = 250;\nexport default class TransferFilesRegistrar {\n #apiClient: ApiClient;\n #eventsEngine: EventsEngine;\n #files: readonly Readonly<FileDetails>[];\n\n #registeredFiles = new Map<string | number, RegisteredTransferFile>();\n #failedRegistrations = new Map<string | number, Error>();\n #currentObserver: { wantedExternalFileId: string | number, resolve: (value: RegistrationResult) => void } | undefined;\n\n #transferId: string | undefined;\n #transferKey: string | undefined;\n\n #stopController: AbortController | undefined;\n #removeExternalAbortListener: (() => void) | undefined;\n\n #isRegisteringAllFilesDone = true;\n\n #runningPromise: Promise<void> | undefined;\n\n constructor(apiClient: ApiClient, eventsEngine: EventsEngine, files: readonly Readonly<FileDetails>[]) {\n this.#apiClient = apiClient;\n this.#eventsEngine = eventsEngine;\n this.#files = files;\n }\n\n getRegisteredFile(externalFileId: string | number): RegisteredTransferFile | undefined {\n return this.#registeredFiles.get(externalFileId);\n }\n\n start(transferId: string, transferKey: string, pauseAndAbortSignal?: AbortSignal): void {\n if (!transferId || !transferKey)\n throw new TransferUploadError(`TransferId and TransferKey are required`);\n\n if (this.#runningPromise)\n throw new TransferUploadError(`Registrar is already running`);\n\n if (pauseAndAbortSignal?.aborted)\n return;\n\n this.#transferId = transferId;\n this.#transferKey = transferKey;\n\n this.#isRegisteringAllFilesDone = false;\n\n this.#failedRegistrations.clear();\n\n this.createStopController(pauseAndAbortSignal);\n\n this.#runningPromise = this.runRegistration();\n }\n\n private createStopController(pauseAndAbortSignal: AbortSignal | undefined) {\n const stopController = new AbortController();\n\n this.#stopController = stopController;\n\n const abortRegistration = () => stopController.abort(pauseAndAbortSignal?.reason);\n\n pauseAndAbortSignal?.addEventListener(`abort`, abortRegistration, { once: true });\n\n this.#removeExternalAbortListener = () => pauseAndAbortSignal?.removeEventListener(`abort`, abortRegistration);\n }\n\n async stop(): Promise<void> {\n if (!this.#runningPromise)\n return;\n\n this.#stopController?.abort();\n\n await this.#runningPromise;\n }\n\n async waitUntilFileRegistered(wantedExternalFileId: string | number): Promise<RegistrationResult> {\n if (this.#currentObserver)\n throw new TransferUploadError(`Current implementation allows only one observer`);\n\n return new Promise(resolve => {\n this.#currentObserver = { wantedExternalFileId, resolve };\n this.notifyObserver();\n });\n }\n\n private async runRegistration(): Promise<void> {\n try {\n await this.registerMissingFiles();\n }\n finally {\n this.#isRegisteringAllFilesDone = true;\n this.notifyObserver();\n this.#removeExternalAbortListener?.();\n\n this.#removeExternalAbortListener = undefined;\n this.#stopController = undefined;\n this.#runningPromise = undefined;\n }\n }\n\n private async registerMissingFiles(): Promise<void> {\n const filesToRegister = this.getFilesMissingRegistration();\n\n for (let start = 0; start < filesToRegister.length; start += REGISTER_ITEMS_BATCH_SIZE) {\n if (this.#stopController!.signal.aborted)\n break;\n\n const filesBatch = filesToRegister.slice(start, start + REGISTER_ITEMS_BATCH_SIZE);\n\n try {\n const registeredBatchEntries = await this.registerSingleBatch(filesBatch);\n\n for (const [externalFileId, registeredFile] of registeredBatchEntries)\n this.#registeredFiles.set(externalFileId, registeredFile);\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n }\n catch (error) {\n for (const file of filesBatch)\n this.#failedRegistrations.set(file.externalId, error as Error);\n\n if (!this.#stopController?.signal.aborted)\n this.notifyBatchFailed(filesBatch, error);\n }\n finally {\n this.notifyObserver();\n }\n }\n }\n\n private async registerSingleBatch(filesBatch: readonly Readonly<FileDetails>[]): Promise<Array<[string | number, RegisteredTransferFile]>> {\n const registerFilesRequest: RegisterTransferFilesRequest = {\n transferkey: this.#transferKey!,\n items: filesBatch.map(file => ({\n clientItemId: String(file.externalId),\n path: this.joinTransferPath(file.fileDestinationPathInTransfer, file.fileName),\n type: `File`,\n size: file.fileSizeInBytes,\n })),\n };\n\n const response = await this.#apiClient.registerTransferFiles(this.#transferId!, registerFilesRequest, this.#stopController?.signal);\n return this.validateRegistrationBatchResponse(filesBatch, response);\n }\n\n private notifyBatchFailed(filesBatch: Readonly<FileDetails>[], error: unknown) {\n const eventArgs: FilesRegistrationBatchFailedEventArgs = {\n externalFileIds: filesBatch.map(file => file.externalId),\n error: error as Error,\n };\n\n this.#eventsEngine.emit(TransferUploadEvent.FilesRegistrationBatchFailed, eventArgs);\n }\n\n private getFilesMissingRegistration(): readonly Readonly<FileDetails>[] {\n return this.#files.filter(file => !this.#registeredFiles.has(file.externalId));\n }\n\n private validateRegistrationBatchResponse(filesBatch: readonly Readonly<FileDetails>[], response: RegisterTransferFilesResponse): Array<[string | number, RegisteredTransferFile]> {\n if (response.items.length !== filesBatch.length)\n throw new TransferUploadError(`Invalid register transfer files response`);\n\n const filesByClientItemId = new Map(\n filesBatch.map(file => [String(file.externalId), file] as const),\n );\n\n return response.items.map((item): [string | number, RegisteredTransferFile] => {\n const file = filesByClientItemId.get(item.clientItemId);\n\n if (!file || !item.uploadItemId || !item.fileId)\n throw new TransferUploadError(`Invalid register transfer files response`);\n\n return [file.externalId, { uploadItemId: item.uploadItemId, fileId: item.fileId }];\n });\n }\n\n private joinTransferPath(directoryPath: string, fileName: string): string {\n const normalizedDirectoryPath = directoryPath.replace(/^\\/+|\\/+$/g, ``);\n const normalizedFileName = fileName.replace(/^\\/+/g, ``);\n\n if (!normalizedDirectoryPath)\n return normalizedFileName;\n\n return `${normalizedDirectoryPath}/${normalizedFileName}`;\n }\n\n private notifyObserver(): void {\n if (!this.#currentObserver)\n return;\n\n const { wantedExternalFileId, resolve } = this.#currentObserver;\n const isFileRegistered = this.#registeredFiles.has(wantedExternalFileId);\n const isFileFailed = this.#failedRegistrations.has(wantedExternalFileId);\n\n if (isFileRegistered)\n resolve({ isRegisteredSuccessfully: true });\n else if (isFileFailed)\n resolve({ isRegisteredSuccessfully: false, error: this.#failedRegistrations.get(wantedExternalFileId)! });\n else if (this.#isRegisteringAllFilesDone)\n resolve({ isRegisteredSuccessfully: false, error: new Error(`File has never been picked up for registration`) });\n else\n return; // continue waiting for new batch registrations\n\n this.#currentObserver = undefined;\n }\n\n export(): ReadonlyMap<string | number, RegisteredTransferFile> {\n return this.#registeredFiles;\n }\n\n recoverFromExportedState(registeredFiles: readonly (readonly [string | number, RegisteredTransferFile])[]): void {\n this.#registeredFiles = new Map(registeredFiles);\n }\n}\n\nexport type RegistrationResult = { isRegisteredSuccessfully: true; } | { isRegisteredSuccessfully: false; error: Error; };"]}
@@ -6,6 +6,7 @@ export type RegisterTransferFilesRequest = {
6
6
  };
7
7
  type RegisterTransferFilesRequestItem = {
8
8
  path: string;
9
+ clientItemId: string;
9
10
  sourceFileId?: string;
10
11
  } & ({
11
12
  type: `File`;
@@ -1 +1 @@
1
- {"version":3,"file":"registerTransferFilesRequest.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesRequest.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,gCAAgC,EAAE,CAAC;CAC7C,CAAA;AAED,KAAK,gCAAgC,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,CAAC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"registerTransferFilesRequest.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesRequest.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,gCAAgC,EAAE,CAAC;CAC7C,CAAA;AAED,KAAK,gCAAgC,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,CAAC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerTransferFilesRequest.js","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesRequest.ts"],"names":[],"mappings":"","sourcesContent":["export type RegisterTransferFilesRequest = {\n transferkey: string,\n batchid?: string,\n parentItemId?: string | null,\n items: RegisterTransferFilesRequestItem[],\n}\n\ntype RegisterTransferFilesRequestItem = {\n path: string,\n sourceFileId?: string,\n} & ({\n type: `File`,\n size: number,\n} | {\n type: `Folder`,\n size?: number,\n})\n"]}
1
+ {"version":3,"file":"registerTransferFilesRequest.js","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesRequest.ts"],"names":[],"mappings":"","sourcesContent":["export type RegisterTransferFilesRequest = {\n transferkey: string,\n batchid?: string,\n parentItemId?: string | null,\n items: RegisterTransferFilesRequestItem[],\n}\n\ntype RegisterTransferFilesRequestItem = {\n path: string,\n clientItemId: string,\n sourceFileId?: string,\n} & ({\n type: `File`,\n size: number,\n} | {\n type: `Folder`,\n size?: number,\n})\n"]}
@@ -1,8 +1,12 @@
1
1
  export type RegisterTransferFilesResponse = {
2
2
  items: {
3
3
  uploadItemId: string;
4
- path?: string;
5
- fileId?: string | null;
4
+ clientItemId: string;
5
+ requestedPath: string;
6
+ path: string;
7
+ renamed: boolean;
8
+ uploaded: boolean;
9
+ fileId: string | null;
6
10
  uploadurl?: string | null;
7
11
  }[];
8
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"registerTransferFilesResponse.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesResponse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GAAG;IACxC,KAAK,EAAE;QACH,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,EAAE,CAAC;CACP,CAAA"}
1
+ {"version":3,"file":"registerTransferFilesResponse.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesResponse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GAAG;IACxC,KAAK,EAAE;QACH,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,EAAE,CAAC;CACP,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerTransferFilesResponse.js","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesResponse.ts"],"names":[],"mappings":"","sourcesContent":["export type RegisterTransferFilesResponse = {\n items: {\n uploadItemId: string,\n path?: string,\n fileId?: string | null,\n uploadurl?: string | null,\n }[],\n}"]}
1
+ {"version":3,"file":"registerTransferFilesResponse.js","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/registerTransferFilesResponse.ts"],"names":[],"mappings":"","sourcesContent":["export type RegisterTransferFilesResponse = {\n items: {\n uploadItemId: string,\n clientItemId: string,\n requestedPath: string,\n path: string,\n renamed: boolean,\n uploaded: boolean,\n fileId: string | null,\n uploadurl?: string | null,\n }[],\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export default class NodeApiClient extends NodeClientBase {
28
28
  retry: {
29
29
  limit: retryLimit,
30
30
  methods: [`GET`, `POST`, `PUT`, `PATCH`, `HEAD`, `DELETE`, `OPTIONS`, `TRACE`],
31
+ statusCodes: [...(got.defaults.options.retry.statusCodes ?? []), 409],
31
32
  ...retryEconnresetWorkaround,
32
33
  },
33
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"nodeApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import got, { Got } from \"got\";\n\nimport NodeClientBase from \"./nodeClientBase.js\";\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\nimport { retryEconnresetWorkaround } from \"./gotWorkarounds.js\";\n\nimport type ApiClient from \"../apiClient.js\";\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\nimport type { FinalizeTransferResponseRaw } from \"../dtos/finalizeTransferResponse.js\";\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\nimport type LoginRequest from \"../dtos/loginRequest.js\";\nimport type LoginResponse from \"../dtos/loginResponse.js\";\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\nimport type { RegisterTransferFilesRequest } from \"../dtos/registerTransferFilesRequest.js\";\nimport type { RegisterTransferFilesResponse } from \"../dtos/registerTransferFilesResponse.js\";\nimport type { AckTransferFilesRequest } from \"../dtos/ackTransferFilesRequest.js\";\nimport type { AckTransferFilesResponse } from \"../dtos/ackTransferFilesResponse.js\";\n\nexport default class NodeApiClient extends NodeClientBase implements ApiClient {\n #sourceDetails: string;\n #gotInstance: Got;\n\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\n super();\n\n try {\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\n\n this.#sourceDetails = sourceDetails;\n this.#gotInstance = this.createGotInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\n }\n catch (error) {\n throw this.createApiError(error, `Error constructing NodeApiClient`);\n }\n }\n\n private createGotInstance(baseUrl: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): Got {\n return got.extend({\n prefixUrl: baseUrl,\n timeout: {\n request: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\n },\n headers: {\n \"x-api-version\": `2.0`,\n source,\n },\n retry: {\n limit: retryLimit,\n methods: [`GET`, `POST`, `PUT`, `PATCH`, `HEAD`, `DELETE`, `OPTIONS`, `TRACE`],\n ...retryEconnresetWorkaround,\n },\n });\n }\n\n setLoginToken(loginToken: string): void {\n try {\n if (!loginToken || loginToken.length === 0)\n throw new Error(`Login token can't be empty`);\n\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: loginToken } });\n }\n catch (error) {\n throw this.createApiError(error, `Error setting login token`);\n }\n }\n\n clearLoginToken(): void {\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: undefined } });\n }\n\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\n try {\n const response: BaseResponse<{\n logintoken?: string,\n expired?: boolean,\n }> = await this.#gotInstance.post(`auth/login`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n const data = response.data!;\n\n if (data.expired)\n throw new Error(`Subscription has expired`);\n\n if (!data.logintoken)\n throw new Error(`Received empty login token`);\n\n return { loginToken: data.logintoken };\n }\n catch (error) {\n throw this.createApiError(error, `Error logging in`);\n }\n }\n\n async logout(abortSignal?: AbortSignal): Promise<void> {\n try {\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`auth/logout`, {\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error logging out`);\n }\n }\n\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\n try {\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\n\n const response: BaseResponse<InitializeTransferResponseRaw> = await this.#gotInstance.post(`transfer/initialize`, {\n json: { ...apiRequest, sourcedetails: this.#sourceDetails },\n headers: {\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\n },\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n const data = response.data!;\n\n return {\n transferId: data.transferid,\n transferKey: data.transferkey,\n transferUrl: data.transferurl,\n transferRegion: data.region,\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error initializing a transfer`);\n }\n }\n\n async registerTransferFiles(transferId: string, request: RegisterTransferFilesRequest, abortSignal?: AbortSignal): Promise<RegisterTransferFilesResponse> {\n try {\n const response: BaseResponse<RegisterTransferFilesResponse> = await this.#gotInstance.post(`transfer/${transferId}/file`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer files`);\n }\n }\n\n async ackTransferFiles(transferId: string, request: AckTransferFilesRequest, abortSignal?: AbortSignal): Promise<AckTransferFilesResponse> {\n try {\n const response: BaseResponse<AckTransferFilesResponse> = await this.#gotInstance.post(`transfer/${transferId}/file/ack`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error acknowledging transfer files`);\n }\n }\n\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\n try {\n const response: BaseResponse<FinalizeTransferResponseRaw> = await this.#gotInstance.put(`transfer/complete`, {\n json: { ...request, sourcedetails: this.#sourceDetails },\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return {\n downloadUrl: response.data!.downloadurl,\n confirmationUrl: response.data!.confirmationUrl,\n recipientTrackingLinks: response.data!.recipients?.map(recipient => ({\n email: recipient.email,\n downloadLink: recipient.downloadlink,\n })),\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error finalizing a transfer`);\n }\n }\n\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`transfer/${request.transferid}/reset`, {\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error resetting a transfer`);\n }\n }\n\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response: BaseResponse<undefined> = await this.#gotInstance.put(`transfer/cancel`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error canceling a transfer`);\n }\n }\n\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\n try {\n let gotInstance = this.#gotInstance.extend();\n\n let endpoint = `transfer`;\n if (request.transferid)\n endpoint += `/${request.transferid}`;\n\n const searchParams = new URLSearchParams();\n if (request.trackid)\n searchParams.append(`trackid`, request.trackid);\n if (request.password)\n searchParams.append(`password`, request.password);\n if (request.fprops)\n searchParams.append(`fprops`, request.fprops.join(`,`));\n if (typeof request.fileslimit !== `undefined`)\n searchParams.append(`fileslimit`, request.fileslimit.toString());\n if (request.checkLogintoken === true) {\n gotInstance = gotInstance.extend({\n headers: {\n filemaillogintokencheck: `true`,\n },\n });\n }\n\n const response: BaseResponse<GetTransferResponse> = await gotInstance.get(endpoint, {\n searchParams,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\n }\n }\n\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/file`;\n\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\n }\n }\n\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/transfer`;\n\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\n }\n }\n\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\n try {\n const searchParams = new URLSearchParams({\n getforallusers: request.getForAllUsers.toString(),\n from: request.sinceUnixTime.toString(),\n ignoreDeletedPortals: `true`,\n });\n\n for (const portal of request.portals ?? [])\n searchParams.append(`portalId`, portal);\n\n const response: BaseResponse<GetInboxTransfersResponse> = await this.#gotInstance.get(`transfer/inbox`, {\n searchParams,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting inbox transfers`);\n }\n }\n}"]}
1
+ {"version":3,"file":"nodeApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import got, { Got } from \"got\";\n\nimport NodeClientBase from \"./nodeClientBase.js\";\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\nimport { retryEconnresetWorkaround } from \"./gotWorkarounds.js\";\n\nimport type ApiClient from \"../apiClient.js\";\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\nimport type { FinalizeTransferResponseRaw } from \"../dtos/finalizeTransferResponse.js\";\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\nimport type LoginRequest from \"../dtos/loginRequest.js\";\nimport type LoginResponse from \"../dtos/loginResponse.js\";\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\nimport type { RegisterTransferFilesRequest } from \"../dtos/registerTransferFilesRequest.js\";\nimport type { RegisterTransferFilesResponse } from \"../dtos/registerTransferFilesResponse.js\";\nimport type { AckTransferFilesRequest } from \"../dtos/ackTransferFilesRequest.js\";\nimport type { AckTransferFilesResponse } from \"../dtos/ackTransferFilesResponse.js\";\n\nexport default class NodeApiClient extends NodeClientBase implements ApiClient {\n #sourceDetails: string;\n #gotInstance: Got;\n\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\n super();\n\n try {\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\n\n this.#sourceDetails = sourceDetails;\n this.#gotInstance = this.createGotInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\n }\n catch (error) {\n throw this.createApiError(error, `Error constructing NodeApiClient`);\n }\n }\n\n private createGotInstance(baseUrl: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): Got {\n return got.extend({\n prefixUrl: baseUrl,\n timeout: {\n request: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\n },\n headers: {\n \"x-api-version\": `2.0`,\n source,\n },\n retry: {\n limit: retryLimit,\n methods: [`GET`, `POST`, `PUT`, `PATCH`, `HEAD`, `DELETE`, `OPTIONS`, `TRACE`],\n statusCodes: [...(got.defaults.options.retry.statusCodes ?? []), 409],\n ...retryEconnresetWorkaround,\n },\n });\n }\n\n setLoginToken(loginToken: string): void {\n try {\n if (!loginToken || loginToken.length === 0)\n throw new Error(`Login token can't be empty`);\n\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: loginToken } });\n }\n catch (error) {\n throw this.createApiError(error, `Error setting login token`);\n }\n }\n\n clearLoginToken(): void {\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: undefined } });\n }\n\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\n try {\n const response: BaseResponse<{\n logintoken?: string,\n expired?: boolean,\n }> = await this.#gotInstance.post(`auth/login`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n const data = response.data!;\n\n if (data.expired)\n throw new Error(`Subscription has expired`);\n\n if (!data.logintoken)\n throw new Error(`Received empty login token`);\n\n return { loginToken: data.logintoken };\n }\n catch (error) {\n throw this.createApiError(error, `Error logging in`);\n }\n }\n\n async logout(abortSignal?: AbortSignal): Promise<void> {\n try {\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`auth/logout`, {\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error logging out`);\n }\n }\n\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\n try {\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\n\n const response: BaseResponse<InitializeTransferResponseRaw> = await this.#gotInstance.post(`transfer/initialize`, {\n json: { ...apiRequest, sourcedetails: this.#sourceDetails },\n headers: {\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\n },\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n const data = response.data!;\n\n return {\n transferId: data.transferid,\n transferKey: data.transferkey,\n transferUrl: data.transferurl,\n transferRegion: data.region,\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error initializing a transfer`);\n }\n }\n\n async registerTransferFiles(transferId: string, request: RegisterTransferFilesRequest, abortSignal?: AbortSignal): Promise<RegisterTransferFilesResponse> {\n try {\n const response: BaseResponse<RegisterTransferFilesResponse> = await this.#gotInstance.post(`transfer/${transferId}/file`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer files`);\n }\n }\n\n async ackTransferFiles(transferId: string, request: AckTransferFilesRequest, abortSignal?: AbortSignal): Promise<AckTransferFilesResponse> {\n try {\n const response: BaseResponse<AckTransferFilesResponse> = await this.#gotInstance.post(`transfer/${transferId}/file/ack`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error acknowledging transfer files`);\n }\n }\n\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\n try {\n const response: BaseResponse<FinalizeTransferResponseRaw> = await this.#gotInstance.put(`transfer/complete`, {\n json: { ...request, sourcedetails: this.#sourceDetails },\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return {\n downloadUrl: response.data!.downloadurl,\n confirmationUrl: response.data!.confirmationUrl,\n recipientTrackingLinks: response.data!.recipients?.map(recipient => ({\n email: recipient.email,\n downloadLink: recipient.downloadlink,\n })),\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error finalizing a transfer`);\n }\n }\n\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`transfer/${request.transferid}/reset`, {\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error resetting a transfer`);\n }\n }\n\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response: BaseResponse<undefined> = await this.#gotInstance.put(`transfer/cancel`, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error canceling a transfer`);\n }\n }\n\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\n try {\n let gotInstance = this.#gotInstance.extend();\n\n let endpoint = `transfer`;\n if (request.transferid)\n endpoint += `/${request.transferid}`;\n\n const searchParams = new URLSearchParams();\n if (request.trackid)\n searchParams.append(`trackid`, request.trackid);\n if (request.password)\n searchParams.append(`password`, request.password);\n if (request.fprops)\n searchParams.append(`fprops`, request.fprops.join(`,`));\n if (typeof request.fileslimit !== `undefined`)\n searchParams.append(`fileslimit`, request.fileslimit.toString());\n if (request.checkLogintoken === true) {\n gotInstance = gotInstance.extend({\n headers: {\n filemaillogintokencheck: `true`,\n },\n });\n }\n\n const response: BaseResponse<GetTransferResponse> = await gotInstance.get(endpoint, {\n searchParams,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\n }\n }\n\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/file`;\n\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\n }\n }\n\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/transfer`;\n\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\n json: request,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\n }\n }\n\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\n try {\n const searchParams = new URLSearchParams({\n getforallusers: request.getForAllUsers.toString(),\n from: request.sinceUnixTime.toString(),\n ignoreDeletedPortals: `true`,\n });\n\n for (const portal of request.portals ?? [])\n searchParams.append(`portalId`, portal);\n\n const response: BaseResponse<GetInboxTransfersResponse> = await this.#gotInstance.get(`transfer/inbox`, {\n searchParams,\n signal: abortSignal,\n }).json();\n\n this.throwIfPayloadNotOk(response, true);\n\n return response.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting inbox transfers`);\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "filemail-sdk",
3
- "version": "10.2.0",
3
+ "version": "10.2.1",
4
4
  "description": "Library for transferring files to and from Filemail.com",
5
5
  "author": "Filemail AS",
6
6
  "license": "BSD-3-Clause",