filemail-sdk 9.0.0 → 9.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"downloadFolderResolver.d.ts","sourceRoot":"","sources":["../../../src/downloader/downloadFolderResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,mBAAmB,MAAM,0CAA0C,CAAC;AAIhF,MAAM,CAAC,OAAO,OAAO,sBAAsB;;IAyDvC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB;CA4E/E"}
1
+ {"version":3,"file":"downloadFolderResolver.d.ts","sourceRoot":"","sources":["../../../src/downloader/downloadFolderResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,mBAAmB,MAAM,0CAA0C,CAAC;AAIhF,MAAM,CAAC,OAAO,OAAO,sBAAsB;;IAiEvC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB;CA4E/E"}
@@ -28,7 +28,14 @@ export default class DownloadFolderResolver {
28
28
  }
29
29
  return `[missing_domain]`;
30
30
  }
31
- static #placeholderRegexForSubstring = (token) => new RegExp(`<${token}(:(.*?))?>`, `g`);
31
+ static #escapeRegExp(str) {
32
+ return str.replace(/[.*+?^${}()|[\]\\/-]/g, `\\$&`);
33
+ }
34
+ static #placeholderRegexForSubstring = (token) => {
35
+ // eslint-disable-next-line no-param-reassign
36
+ token = this.#escapeRegExp(token);
37
+ return new RegExp(`<${token}(:(.*?))?>`, `g`);
38
+ };
32
39
  static #replacePlaceholderWithMaxLength(input, rx, replaceValue) {
33
40
  return input.replace(rx, (_0, _1, maxLength) => {
34
41
  let substringLength = DefaultMaxPlaceholderLength;
@@ -1 +1 @@
1
- {"version":3,"file":"downloadFolderResolver.js","sourceRoot":"","sources":["../../../src/downloader/downloadFolderResolver.ts"],"names":[],"mappings":"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","sourcesContent":["import SimpleDateFormatter from \"../utils/dateAndTime/simpleDateFormatter.js\";\r\nimport type GetTransferResponse from \"../utils/api/dtos/getTransferResponse.js\";\r\n\r\nconst DefaultMaxPlaceholderLength = 60;\r\n\r\nexport default class DownloadFolderResolver {\r\n static #pathFriendlyDate(date: string): string {\r\n return date\r\n .replace(/:+/g, `-`)\r\n .replace(/-+/g, `-`);\r\n }\r\n\r\n static #sanitizePathElement(value: string | null | undefined): string {\r\n if (!value)\r\n return ``;\r\n\r\n return value\r\n .replaceAll(`..\\\\`, ``)\r\n .replaceAll(`../`, ``)\r\n .replaceAll(`..`, ``)\r\n .replaceAll(`:`, ``)\r\n .replaceAll(`<`, ``)\r\n .replaceAll(`>`, ``)\r\n .replaceAll(`\\\\`, ``)\r\n .replaceAll(`/`, ``)\r\n .replace(/(\\n|\\r\\n){1,}/g, ` `);\r\n }\r\n\r\n static #getDomain(fromEmail: string | null | undefined) {\r\n if (fromEmail) {\r\n const idx = fromEmail.indexOf(`@`);\r\n if (idx > -1)\r\n return fromEmail.substring(idx + 1);\r\n }\r\n return `[missing_domain]`;\r\n }\r\n\r\n static #placeholderRegexForSubstring = (token: string) => new RegExp(`<${token}(:(.*?))?>`, `g`);\r\n\r\n static #replacePlaceholderWithMaxLength(input: string, rx: RegExp, replaceValue: string): string {\r\n return input.replace(rx, (_0: any, _1: any, maxLength: string | undefined): string => {\r\n let substringLength = DefaultMaxPlaceholderLength;\r\n if (!!maxLength && maxLength.length > 0) {\r\n try {\r\n substringLength = parseInt(maxLength, 10);\r\n if (Number.isNaN(substringLength))\r\n substringLength = DefaultMaxPlaceholderLength;\r\n }\r\n catch {\r\n substringLength = DefaultMaxPlaceholderLength;\r\n }\r\n }\r\n\r\n const sanitized = DownloadFolderResolver.#sanitizePathElement(replaceValue);\r\n\r\n if (substringLength < 0)\r\n return sanitized.substring(sanitized.length + substringLength);\r\n\r\n return sanitized.substring(0, substringLength);\r\n });\r\n }\r\n\r\n static prepareDownloadFolder(template: string, transfer: GetTransferResponse) {\r\n let result = template;\r\n if (transfer.from) {\r\n const domain = DownloadFolderResolver.#getDomain(transfer.from);\r\n result = result\r\n .replaceAll(`<domain>`, DownloadFolderResolver.#sanitizePathElement(domain))\r\n .replaceAll(`<emailfrom>`, DownloadFolderResolver.#sanitizePathElement(transfer.from));\r\n }\r\n result = result.replaceAll(`<id>`, transfer.id);\r\n\r\n // datesent\r\n result = result.replace(/<datesent(:(.*?))?>/g, (_0: any, _1: any, dateFormatString: string | undefined): string => {\r\n const dateFormatted = SimpleDateFormatter.formatDateAndTimeLocal(transfer.sentdate, dateFormatString);\r\n return DownloadFolderResolver.#sanitizePathElement(DownloadFolderResolver.#pathFriendlyDate(dateFormatted));\r\n });\r\n\r\n if (transfer.message) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(`description`),\r\n transfer.message,\r\n );\r\n }\r\n\r\n if (transfer.subject) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(`subject`),\r\n transfer.subject,\r\n );\r\n }\r\n\r\n if (transfer.to && transfer.to.length) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(`emailto`),\r\n transfer.to.join(`,`),\r\n );\r\n }\r\n\r\n if (transfer.customfields && transfer.customfields.length) {\r\n for (const cf of transfer.customfields) {\r\n if (cf.label && cf.value) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(cf.label),\r\n cf.value,\r\n );\r\n }\r\n }\r\n }\r\n // remaining custom fields which have not bee replaced from transfer - remove them\r\n /*\r\n if (company && company.customfields && company.customfields.length) {\r\n for (const cf of company.customfields)\r\n result = result.replace(new RegExp(`<${cf.label}>`, `ig`), ``);\r\n }\r\n */\r\n\r\n // replace remaining < and > (they are used as placeholder boundaries) and other chars which are not allowed in Windows folder paths\r\n result = result.replace(/<([\\w\\s]+)(:(.*?))?>/g, `[missing_$1]`);\r\n\r\n if (process.platform === `win32`)\r\n result = DownloadFolderResolver.#trimFolders(result);\r\n\r\n return result;\r\n }\r\n\r\n static #trimFolders(template: string) {\r\n const folders = template.replaceAll(`/`, `\\\\`).split(`\\\\`);\r\n\r\n for (let i = 0; i < folders.length; i++)\r\n folders[i] = folders[i]!.trim();\r\n\r\n return folders.join(`\\\\`);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"downloadFolderResolver.js","sourceRoot":"","sources":["../../../src/downloader/downloadFolderResolver.ts"],"names":[],"mappings":"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","sourcesContent":["import SimpleDateFormatter from \"../utils/dateAndTime/simpleDateFormatter.js\";\r\nimport type GetTransferResponse from \"../utils/api/dtos/getTransferResponse.js\";\r\n\r\nconst DefaultMaxPlaceholderLength = 60;\r\n\r\nexport default class DownloadFolderResolver {\r\n static #pathFriendlyDate(date: string): string {\r\n return date\r\n .replace(/:+/g, `-`)\r\n .replace(/-+/g, `-`);\r\n }\r\n\r\n static #sanitizePathElement(value: string | null | undefined): string {\r\n if (!value)\r\n return ``;\r\n\r\n return value\r\n .replaceAll(`..\\\\`, ``)\r\n .replaceAll(`../`, ``)\r\n .replaceAll(`..`, ``)\r\n .replaceAll(`:`, ``)\r\n .replaceAll(`<`, ``)\r\n .replaceAll(`>`, ``)\r\n .replaceAll(`\\\\`, ``)\r\n .replaceAll(`/`, ``)\r\n .replace(/(\\n|\\r\\n){1,}/g, ` `);\r\n }\r\n\r\n static #getDomain(fromEmail: string | null | undefined) {\r\n if (fromEmail) {\r\n const idx = fromEmail.indexOf(`@`);\r\n if (idx > -1)\r\n return fromEmail.substring(idx + 1);\r\n }\r\n return `[missing_domain]`;\r\n }\r\n\r\n static #escapeRegExp(str: string): string {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\/-]/g, `\\\\$&`);\r\n }\r\n\r\n static #placeholderRegexForSubstring = (token: string) => {\r\n // eslint-disable-next-line no-param-reassign\r\n token = this.#escapeRegExp(token);\r\n return new RegExp(`<${token}(:(.*?))?>`, `g`);\r\n };\r\n\r\n static #replacePlaceholderWithMaxLength(input: string, rx: RegExp, replaceValue: string): string {\r\n return input.replace(rx, (_0: any, _1: any, maxLength: string | undefined): string => {\r\n let substringLength = DefaultMaxPlaceholderLength;\r\n if (!!maxLength && maxLength.length > 0) {\r\n try {\r\n substringLength = parseInt(maxLength, 10);\r\n if (Number.isNaN(substringLength))\r\n substringLength = DefaultMaxPlaceholderLength;\r\n }\r\n catch {\r\n substringLength = DefaultMaxPlaceholderLength;\r\n }\r\n }\r\n\r\n const sanitized = DownloadFolderResolver.#sanitizePathElement(replaceValue);\r\n\r\n if (substringLength < 0)\r\n return sanitized.substring(sanitized.length + substringLength);\r\n\r\n return sanitized.substring(0, substringLength);\r\n });\r\n }\r\n\r\n static prepareDownloadFolder(template: string, transfer: GetTransferResponse) {\r\n let result = template;\r\n if (transfer.from) {\r\n const domain = DownloadFolderResolver.#getDomain(transfer.from);\r\n result = result\r\n .replaceAll(`<domain>`, DownloadFolderResolver.#sanitizePathElement(domain))\r\n .replaceAll(`<emailfrom>`, DownloadFolderResolver.#sanitizePathElement(transfer.from));\r\n }\r\n result = result.replaceAll(`<id>`, transfer.id);\r\n\r\n // datesent\r\n result = result.replace(/<datesent(:(.*?))?>/g, (_0: any, _1: any, dateFormatString: string | undefined): string => {\r\n const dateFormatted = SimpleDateFormatter.formatDateAndTimeLocal(transfer.sentdate, dateFormatString);\r\n return DownloadFolderResolver.#sanitizePathElement(DownloadFolderResolver.#pathFriendlyDate(dateFormatted));\r\n });\r\n\r\n if (transfer.message) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(`description`),\r\n transfer.message,\r\n );\r\n }\r\n\r\n if (transfer.subject) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(`subject`),\r\n transfer.subject,\r\n );\r\n }\r\n\r\n if (transfer.to && transfer.to.length) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(`emailto`),\r\n transfer.to.join(`,`),\r\n );\r\n }\r\n\r\n if (transfer.customfields && transfer.customfields.length) {\r\n for (const cf of transfer.customfields) {\r\n if (cf.label && cf.value) {\r\n result = DownloadFolderResolver.#replacePlaceholderWithMaxLength(\r\n result,\r\n DownloadFolderResolver.#placeholderRegexForSubstring(cf.label),\r\n cf.value,\r\n );\r\n }\r\n }\r\n }\r\n // remaining custom fields which have not bee replaced from transfer - remove them\r\n /*\r\n if (company && company.customfields && company.customfields.length) {\r\n for (const cf of company.customfields)\r\n result = result.replace(new RegExp(`<${cf.label}>`, `ig`), ``);\r\n }\r\n */\r\n\r\n // replace remaining < and > (they are used as placeholder boundaries) and other chars which are not allowed in Windows folder paths\r\n result = result.replace(/<([\\w\\s]+)(:(.*?))?>/g, `[missing_$1]`);\r\n\r\n if (process.platform === `win32`)\r\n result = DownloadFolderResolver.#trimFolders(result);\r\n\r\n return result;\r\n }\r\n\r\n static #trimFolders(template: string) {\r\n const folders = template.replaceAll(`/`, `\\\\`).split(`\\\\`);\r\n\r\n for (let i = 0; i < folders.length; i++)\r\n folders[i] = folders[i]!.trim();\r\n\r\n return folders.join(`\\\\`);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"webApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,0BAA0B,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,+BAA+B,MAAM,4CAA4C,CAAC;AAC9F,OAAO,KAAK,2BAA2B,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,yBAAyB,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAgC,MAAM,sCAAsC,CAAC;AAGpH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAc,YAAW,SAAS;;gBAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,SAAQ,EAAE,UAAU,SAAI;IAcnH,OAAO,CAAC,mBAAmB;IA0B3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYvC,eAAe,IAAI,IAAI;IAIjB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B/E,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAahD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgCtH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmBhH,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxF,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsCjG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAepG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5G,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAkB5H"}
1
+ {"version":3,"file":"webApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,0BAA0B,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,+BAA+B,MAAM,4CAA4C,CAAC;AAC9F,OAAO,KAAK,2BAA2B,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,yBAAyB,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAgC,MAAM,sCAAsC,CAAC;AAGpH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAc,YAAW,SAAS;;gBAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,SAAQ,EAAE,UAAU,SAAI;IAcnH,OAAO,CAAC,mBAAmB;IA2B3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYvC,eAAe,IAAI,IAAI;IAIjB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B/E,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAahD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgCtH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmBhH,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxF,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsCjG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAepG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5G,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAkB5H"}
@@ -19,6 +19,7 @@ export default class WebApiClient extends WebClientBase {
19
19
  const clientInstance = axios.create({
20
20
  baseURL,
21
21
  timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,
22
+ withCredentials: true,
22
23
  headers: {
23
24
  "x-api-version": `2.0`,
24
25
  source,
@@ -1 +1 @@
1
- {"version":3,"file":"webApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAoB/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IACnD,cAAc,CAAS;IACvB,cAAc,CAAgB;IAE9B,YAAY,OAAe,EAAE,MAAc,EAAE,aAAqB,EAAE,uBAAuB,GAAG,KAAK,EAAE,UAAU,GAAG,CAAC;QAC/G,KAAK,EAAE,CAAC;QAER,IAAI,CAAC;YACD,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAExG,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,OAAe,EAAE,MAAc,EAAE,uBAA+B,EAAE,UAAkB;QAC5G,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;YAChC,OAAO;YACP,OAAO,EAAE,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;YAC1E,OAAO,EAAE;gBACL,eAAe,EAAE,KAAK;gBACtB,MAAM;aACT;SACJ,CAAC,CAAC;QAEH,UAAU,CAAC,cAAc,EAAE;YACvB,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI;YAC3C,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,KAAK,CAAC,EAAE;gBACpB,MAAM,iCAAiC,GAAG,UAAU,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;gBAC9F,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;gBACxD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAE5F,OAAO,iCAAiC,IAAI,eAAe,IAAI,cAAc,CAAC;YAClF,CAAC;SACJ,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,UAAkB;QAC5B,IAAI,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAElD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACxE,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,WAAyB;QACxD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAG3C,YAAY,EAAE,OAAO,EAAE;gBACvB,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE9C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;YAEjC,IAAI,IAAI,CAAC,OAAO;gBACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEhD,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAElD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAyB;QAClC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAA0B,aAAa,EAAE,IAAI,EAAE;gBAC1F,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAkC,EAAE,WAAyB;QAClF,IAAI,CAAC;YACD,MAAM,UAAU,GAAiC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAEhG,MAAM,WAAW,GAAG,EAAE,GAAG,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;YAE1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAA8C,qBAAqB,EAAE,WAAW,EAAE;gBAC7H,OAAO,EAAE;oBACL,YAAY,EAAE,SAAS,EAAE,mEAAmE;iBAC/F;gBACD,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE9C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;YAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtC,OAAO;gBACH,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,GAAG,EAAE,OAAO;aACf,CAAC;QACN,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgC,EAAE,WAAyB;QAC9E,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;YAEvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAwC,mBAAmB,EAAE,WAAW,EAAE;gBACpH,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE9C,OAAO;gBACH,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC,WAAW;aAC/C,CAAC;QACN,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA6B,EAAE,WAAyB;QACxE,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAA0B,YAAY,OAAO,CAAC,UAAU,QAAQ,EAAE,IAAI,EAAE;gBACnH,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA8B,EAAE,WAAyB;QAC1E,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAA0B,iBAAiB,EAAE,OAAO,EAAE;gBAChG,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B,EAAE,WAAyB;QACpE,IAAI,CAAC;YACD,IAAI,QAAQ,GAAG,UAAU,CAAC;YAE1B,IAAI,OAAO,CAAC,UAAU;gBAClB,QAAQ,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAEzC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAErC,IAAI,OAAO,CAAC,OAAO;gBACf,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,OAAO,CAAC,QAAQ;gBAChB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,MAAM;gBACd,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;gBACzC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE/D,MAAM,OAAO,GAA2B,EAAE,CAAC;YAE3C,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;gBAChC,OAAO,CAAC,uBAAuB,GAAG,MAAM,CAAC;YAE7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAoC,QAAQ,EAAE;gBACxF,MAAM;gBACN,OAAO;gBACP,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE9C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,0BAA0B,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;QACpH,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAoC,EAAE,WAAyB;QACtF,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,eAAe,CAAC;YAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAqB,QAAQ,EAAE,OAAO,EAAE;gBACnF,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,6CAA6C,OAAO,EAAE,UAAU,SAAS,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnI,CAAC;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,OAAwC,EAAE,WAAyB;QAC9F,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;YAErC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAqB,QAAQ,EAAE,OAAO,EAAE;gBACnF,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,iDAAiD,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAiC,EAAE,WAAyB;QAChF,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAA0C,gBAAgB,EAAE;gBACtG,MAAM,EAAE;oBACJ,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,IAAI,EAAE,OAAO,CAAC,aAAa;iBAC9B;gBACD,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE9C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;CACJ","sourcesContent":["import axios, { AxiosInstance } from \"axios\";\r\nimport axiosRetry from \"axios-retry\";\r\n\r\nimport WebClientBase from \"./webClientBase.js\";\r\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\r\n\r\nimport type ApiClient from \"../apiClient.js\";\r\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\r\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\r\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\r\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\r\nimport type LoginRequest from \"../dtos/loginRequest.js\";\r\nimport type LoginResponse from \"../dtos/loginResponse.js\";\r\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\r\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\r\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\r\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\r\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\r\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\r\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\r\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\r\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\r\n\r\nexport default class WebApiClient extends WebClientBase implements ApiClient {\r\n #sourceDetails: string;\r\n #axiosInstance: AxiosInstance;\r\n\r\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\r\n super();\r\n\r\n try {\r\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\r\n\r\n this.#sourceDetails = sourceDetails;\r\n this.#axiosInstance = this.createAxiosInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error constructing WebApiClient`);\r\n }\r\n }\r\n\r\n private createAxiosInstance(baseURL: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): AxiosInstance {\r\n const clientInstance = axios.create({\r\n baseURL,\r\n timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\r\n headers: {\r\n \"x-api-version\": `2.0`,\r\n source,\r\n },\r\n });\r\n\r\n axiosRetry(clientInstance, {\r\n retries: retryLimit,\r\n retryDelay: retryCount => retryCount * 1000,\r\n shouldResetTimeout: true,\r\n retryCondition: error => {\r\n const isNetworkOrIdempotentRequestError = axiosRetry.isNetworkOrIdempotentRequestError(error);\r\n const isRetryablePost = error.config?.method === `post`;\r\n const isTimeoutError = error.code === `ECONNABORTED` && error.message.startsWith(`timeout`);\r\n\r\n return isNetworkOrIdempotentRequestError || isRetryablePost || isTimeoutError;\r\n },\r\n });\r\n\r\n return clientInstance;\r\n }\r\n\r\n setLoginToken(loginToken: string): void {\r\n try {\r\n if (!loginToken || loginToken.length === 0)\r\n throw new Error(`Login token can't be empty`);\r\n\r\n this.#axiosInstance.defaults.headers.common.logintoken = loginToken;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error setting login token`);\r\n }\r\n }\r\n\r\n clearLoginToken(): void {\r\n this.#axiosInstance.defaults.headers.common.logintoken = undefined;\r\n }\r\n\r\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<{\r\n logintoken?: string,\r\n expired?: boolean,\r\n }>>(`auth/login`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n if (data.expired)\r\n throw new Error(`Subscription has expired`);\r\n\r\n if (!data.logintoken)\r\n throw new Error(`Received empty login token`);\r\n\r\n return { loginToken: data.logintoken };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging in`);\r\n }\r\n }\r\n\r\n async logout(abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`auth/logout`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging out`);\r\n }\r\n }\r\n\r\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\r\n try {\r\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\r\n\r\n const requestData = { ...apiRequest, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<InitializeTransferResponseRaw>>(`transfer/initialize`, requestData, {\r\n headers: {\r\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n const udpData = this.getUdpData(data);\r\n\r\n return {\r\n transferId: data.transferid,\r\n transferKey: data.transferkey,\r\n transferUrl: data.transferurl,\r\n transferRegion: data.region,\r\n udp: udpData,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error initializing a transfer`);\r\n }\r\n }\r\n\r\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\r\n try {\r\n const requestData = { ...request, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.put<BaseResponse<{ downloadurl: string }>>(`transfer/complete`, requestData, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return {\r\n downloadUrl: response.data.data!.downloadurl,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error finalizing a transfer`);\r\n }\r\n }\r\n\r\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`transfer/${request.transferid}/reset`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error resetting a transfer`);\r\n }\r\n }\r\n\r\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.put<BaseResponse<undefined>>(`transfer/cancel`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error canceling a transfer`);\r\n }\r\n }\r\n\r\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\r\n try {\r\n let endpoint = `transfer`;\r\n\r\n if (request.transferid)\r\n endpoint += `/${request.transferid}`;\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (request.trackid)\r\n params.append(`trackid`, request.trackid);\r\n if (request.password)\r\n params.append(`password`, request.password);\r\n if (request.fprops)\r\n params.append(`fprops`, request.fprops.join(`,`));\r\n if (typeof request.fileslimit !== `undefined`)\r\n params.append(`fileslimit`, request.fileslimit.toString());\r\n\r\n const headers: Record<string, string> = {};\r\n\r\n if (request.checkLogintoken === true)\r\n headers.filemaillogintokencheck = `true`;\r\n\r\n const response = await this.#axiosInstance.get<BaseResponse<GetTransferResponse>>(endpoint, {\r\n params,\r\n headers,\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\r\n }\r\n }\r\n\r\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/file`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\r\n }\r\n }\r\n\r\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/transfer`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\r\n }\r\n }\r\n\r\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\r\n try {\r\n const response = await this.#axiosInstance.get<BaseResponse<GetInboxTransfersResponse>>(`transfer/inbox`, {\r\n params: {\r\n getforallusers: request.getForAllUsers,\r\n from: request.sinceUnixTime,\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting inbox transfers`);\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"webApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosInstance } from \"axios\";\r\nimport axiosRetry from \"axios-retry\";\r\n\r\nimport WebClientBase from \"./webClientBase.js\";\r\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\r\n\r\nimport type ApiClient from \"../apiClient.js\";\r\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\r\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\r\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\r\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\r\nimport type LoginRequest from \"../dtos/loginRequest.js\";\r\nimport type LoginResponse from \"../dtos/loginResponse.js\";\r\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\r\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\r\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\r\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\r\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\r\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\r\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\r\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\r\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\r\n\r\nexport default class WebApiClient extends WebClientBase implements ApiClient {\r\n #sourceDetails: string;\r\n #axiosInstance: AxiosInstance;\r\n\r\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\r\n super();\r\n\r\n try {\r\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\r\n\r\n this.#sourceDetails = sourceDetails;\r\n this.#axiosInstance = this.createAxiosInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error constructing WebApiClient`);\r\n }\r\n }\r\n\r\n private createAxiosInstance(baseURL: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): AxiosInstance {\r\n const clientInstance = axios.create({\r\n baseURL,\r\n timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\r\n withCredentials: true,\r\n headers: {\r\n \"x-api-version\": `2.0`,\r\n source,\r\n },\r\n });\r\n\r\n axiosRetry(clientInstance, {\r\n retries: retryLimit,\r\n retryDelay: retryCount => retryCount * 1000,\r\n shouldResetTimeout: true,\r\n retryCondition: error => {\r\n const isNetworkOrIdempotentRequestError = axiosRetry.isNetworkOrIdempotentRequestError(error);\r\n const isRetryablePost = error.config?.method === `post`;\r\n const isTimeoutError = error.code === `ECONNABORTED` && error.message.startsWith(`timeout`);\r\n\r\n return isNetworkOrIdempotentRequestError || isRetryablePost || isTimeoutError;\r\n },\r\n });\r\n\r\n return clientInstance;\r\n }\r\n\r\n setLoginToken(loginToken: string): void {\r\n try {\r\n if (!loginToken || loginToken.length === 0)\r\n throw new Error(`Login token can't be empty`);\r\n\r\n this.#axiosInstance.defaults.headers.common.logintoken = loginToken;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error setting login token`);\r\n }\r\n }\r\n\r\n clearLoginToken(): void {\r\n this.#axiosInstance.defaults.headers.common.logintoken = undefined;\r\n }\r\n\r\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<{\r\n logintoken?: string,\r\n expired?: boolean,\r\n }>>(`auth/login`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n if (data.expired)\r\n throw new Error(`Subscription has expired`);\r\n\r\n if (!data.logintoken)\r\n throw new Error(`Received empty login token`);\r\n\r\n return { loginToken: data.logintoken };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging in`);\r\n }\r\n }\r\n\r\n async logout(abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`auth/logout`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging out`);\r\n }\r\n }\r\n\r\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\r\n try {\r\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\r\n\r\n const requestData = { ...apiRequest, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<InitializeTransferResponseRaw>>(`transfer/initialize`, requestData, {\r\n headers: {\r\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n const udpData = this.getUdpData(data);\r\n\r\n return {\r\n transferId: data.transferid,\r\n transferKey: data.transferkey,\r\n transferUrl: data.transferurl,\r\n transferRegion: data.region,\r\n udp: udpData,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error initializing a transfer`);\r\n }\r\n }\r\n\r\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\r\n try {\r\n const requestData = { ...request, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.put<BaseResponse<{ downloadurl: string }>>(`transfer/complete`, requestData, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return {\r\n downloadUrl: response.data.data!.downloadurl,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error finalizing a transfer`);\r\n }\r\n }\r\n\r\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`transfer/${request.transferid}/reset`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error resetting a transfer`);\r\n }\r\n }\r\n\r\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.put<BaseResponse<undefined>>(`transfer/cancel`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error canceling a transfer`);\r\n }\r\n }\r\n\r\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\r\n try {\r\n let endpoint = `transfer`;\r\n\r\n if (request.transferid)\r\n endpoint += `/${request.transferid}`;\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (request.trackid)\r\n params.append(`trackid`, request.trackid);\r\n if (request.password)\r\n params.append(`password`, request.password);\r\n if (request.fprops)\r\n params.append(`fprops`, request.fprops.join(`,`));\r\n if (typeof request.fileslimit !== `undefined`)\r\n params.append(`fileslimit`, request.fileslimit.toString());\r\n\r\n const headers: Record<string, string> = {};\r\n\r\n if (request.checkLogintoken === true)\r\n headers.filemaillogintokencheck = `true`;\r\n\r\n const response = await this.#axiosInstance.get<BaseResponse<GetTransferResponse>>(endpoint, {\r\n params,\r\n headers,\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\r\n }\r\n }\r\n\r\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/file`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\r\n }\r\n }\r\n\r\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/transfer`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\r\n }\r\n }\r\n\r\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\r\n try {\r\n const response = await this.#axiosInstance.get<BaseResponse<GetInboxTransfersResponse>>(`transfer/inbox`, {\r\n params: {\r\n getforallusers: request.getForAllUsers,\r\n from: request.sinceUnixTime,\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting inbox transfers`);\r\n }\r\n }\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "filemail-sdk",
3
- "version": "9.0.0",
3
+ "version": "9.0.2",
4
4
  "description": "Library for transferring files to and from Filemail.com",
5
5
  "author": "Filemail AS",
6
6
  "license": "BSD-3-Clause",