{"version":3,"file":"2667b0167538efc32e262b12.js?3.6.14.7428b935c.1723600572441","mappings":"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","sources":["webpack://mono-repo/./node_modules/@uppy/companion-client/lib/RequestClient.js"],"sourcesContent":["let _Symbol$for;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport UserFacingApiError from '@uppy/utils/lib/UserFacingApiError';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport pRetry, { AbortError } from 'p-retry';\nimport fetchWithNetworkError from '@uppy/utils/lib/fetchWithNetworkError';\nimport ErrorWithCause from '@uppy/utils/lib/ErrorWithCause';\nimport emitSocketProgress from '@uppy/utils/lib/emitSocketProgress';\nimport getSocketHost from '@uppy/utils/lib/getSocketHost';\nimport AuthError from \"./AuthError.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n \"version\": \"3.8.0\"\n};\n// Remove the trailing slash so we can always safely append /xyz.\nfunction stripSlash(url) {\n return url.replace(/\\/$/, '');\n}\nconst retryCount = 10; // set to a low number, like 2 to test manual user retries\nconst socketActivityTimeoutMs = 5 * 60 * 1000; // set to a low number like 10000 to test this\n\nexport const authErrorStatusCode = 401;\nclass HttpError extends Error {\n constructor(_ref) {\n let {\n statusCode,\n message\n } = _ref;\n super(message);\n this.name = 'HttpError';\n this.statusCode = statusCode;\n }\n}\nasync function handleJSONResponse(res) {\n if (res.status === authErrorStatusCode) {\n throw new AuthError();\n }\n if (res.ok) {\n return res.json();\n }\n let errMsg = `Failed request with status: ${res.status}. ${res.statusText}`;\n let errData;\n try {\n errData = await res.json();\n if (errData.message) errMsg = `${errMsg} message: ${errData.message}`;\n if (errData.requestId) errMsg = `${errMsg} request-Id: ${errData.requestId}`;\n } catch (cause) {\n // if the response contains invalid JSON, let's ignore the error data\n throw new Error(errMsg, {\n cause\n });\n }\n if (res.status >= 400 && res.status <= 499 && errData.message) {\n throw new UserFacingApiError(errData.message);\n }\n throw new HttpError({\n statusCode: res.status,\n message: errMsg\n });\n}\nvar _companionHeaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"companionHeaders\");\nvar _getUrl = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUrl\");\nvar _requestSocketToken = /*#__PURE__*/_classPrivateFieldLooseKey(\"requestSocketToken\");\nvar _awaitRemoteFileUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"awaitRemoteFileUpload\");\n_Symbol$for = Symbol.for('uppy test: getCompanionHeaders');\nexport default class RequestClient {\n constructor(uppy, opts) {\n /**\n * This method will ensure a websocket for the specified file and returns a promise that resolves\n * when the file has finished downloading, or rejects if it fails.\n * It will retry if the websocket gets disconnected\n */\n Object.defineProperty(this, _awaitRemoteFileUpload, {\n value: _awaitRemoteFileUpload2\n });\n Object.defineProperty(this, _getUrl, {\n value: _getUrl2\n });\n Object.defineProperty(this, _companionHeaders, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _requestSocketToken, {\n writable: true,\n value: async _ref2 => {\n var _file$remote;\n let {\n file,\n postBody,\n signal\n } = _ref2;\n if (((_file$remote = file.remote) == null ? void 0 : _file$remote.url) == null) {\n throw new Error('Cannot connect to an undefined URL');\n }\n const res = await this.post(file.remote.url, {\n ...file.remote.body,\n ...postBody\n }, {\n signal\n });\n return res.token;\n }\n });\n this.uppy = uppy;\n this.opts = opts;\n this.onReceiveResponse = this.onReceiveResponse.bind(this);\n // TODO: Remove optional chaining\n _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders] = opts == null ? void 0 : opts.companionHeaders;\n }\n setCompanionHeaders(headers) {\n _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders] = headers;\n }\n [_Symbol$for]() {\n return _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders];\n }\n get hostname() {\n const {\n companion\n } = this.uppy.getState();\n const host = this.opts.companionUrl;\n return stripSlash(companion && companion[host] ? companion[host] : host);\n }\n async headers(emptyBody) {\n if (emptyBody === void 0) {\n emptyBody = false;\n }\n const defaultHeaders = {\n Accept: 'application/json',\n ...(emptyBody ? undefined : {\n // Passing those headers on requests with no data forces browsers to first make a preflight request.\n 'Content-Type': 'application/json'\n })\n };\n return {\n ...defaultHeaders,\n ..._classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders]\n };\n }\n onReceiveResponse(res) {\n const {\n headers\n } = res;\n const state = this.uppy.getState();\n const companion = state.companion || {};\n const host = this.opts.companionUrl;\n\n // Store the self-identified domain name for the Companion instance we just hit.\n if (headers.has('i-am') && headers.get('i-am') !== companion[host]) {\n this.uppy.setState({\n companion: {\n ...companion,\n [host]: headers.get('i-am')\n }\n });\n }\n }\n async request(_ref3) {\n let {\n path,\n method = 'GET',\n data,\n skipPostResponse,\n signal\n } = _ref3;\n try {\n const headers = await this.headers(!data);\n const response = await fetchWithNetworkError(_classPrivateFieldLooseBase(this, _getUrl)[_getUrl](path), {\n method,\n signal,\n headers,\n credentials: this.opts.companionCookiesRule || 'same-origin',\n body: data ? JSON.stringify(data) : null\n });\n if (!skipPostResponse) this.onReceiveResponse(response);\n return await handleJSONResponse(response);\n } catch (err) {\n // pass these through\n if (err.isAuthError || err.name === 'UserFacingApiError' || err.name === 'AbortError') throw err;\n throw new ErrorWithCause(`Could not ${method} ${_classPrivateFieldLooseBase(this, _getUrl)[_getUrl](path)}`, {\n cause: err\n });\n }\n }\n async get(path, options) {\n // TODO: remove boolean support for options that was added for backward compatibility.\n // eslint-disable-next-line no-param-reassign\n if (typeof options === 'boolean') options = {\n skipPostResponse: options\n };\n return this.request({\n ...options,\n path\n });\n }\n async post(path, data, options) {\n // TODO: remove boolean support for options that was added for backward compatibility.\n // eslint-disable-next-line no-param-reassign\n if (typeof options === 'boolean') options = {\n skipPostResponse: options\n };\n return this.request({\n ...options,\n path,\n method: 'POST',\n data\n });\n }\n async delete(path, data, options) {\n // TODO: remove boolean support for options that was added for backward compatibility.\n // eslint-disable-next-line no-param-reassign\n if (typeof options === 'boolean') options = {\n skipPostResponse: options\n };\n return this.request({\n ...options,\n path,\n method: 'DELETE',\n data\n });\n }\n\n /**\n * Remote uploading consists of two steps:\n * 1. #requestSocketToken which starts the download/upload in companion and returns a unique token for the upload.\n * Then companion will halt the upload until:\n * 2. #awaitRemoteFileUpload is called, which will open/ensure a websocket connection towards companion, with the\n * previously generated token provided. It returns a promise that will resolve/reject once the file has finished\n * uploading or is otherwise done (failed, canceled)\n */\n async uploadRemoteFile(file, reqBody, options) {\n var _this = this;\n try {\n const {\n signal,\n getQueue\n } = options || {};\n return await pRetry(async () => {\n var _this$uppy$getFile;\n // if we already have a serverToken, assume that we are resuming the existing server upload id\n const existingServerToken = (_this$uppy$getFile = this.uppy.getFile(file.id)) == null ? void 0 : _this$uppy$getFile.serverToken;\n if (existingServerToken != null) {\n this.uppy.log(`Connecting to exiting websocket ${existingServerToken}`);\n return _classPrivateFieldLooseBase(this, _awaitRemoteFileUpload)[_awaitRemoteFileUpload]({\n file,\n queue: getQueue(),\n signal\n });\n }\n const queueRequestSocketToken = getQueue().wrapPromiseFunction(async function () {\n try {\n return await _classPrivateFieldLooseBase(_this, _requestSocketToken)[_requestSocketToken](...arguments);\n } catch (outerErr) {\n // throwing AbortError will cause p-retry to stop retrying\n if (outerErr.isAuthError) throw new AbortError(outerErr);\n if (outerErr.cause == null) throw outerErr;\n const err = outerErr.cause;\n const isRetryableHttpError = () => [408, 409, 429, 418, 423].includes(err.statusCode) || err.statusCode >= 500 && err.statusCode <= 599 && ![501, 505].includes(err.statusCode);\n if (err.name === 'HttpError' && !isRetryableHttpError()) throw new AbortError(err);\n\n // p-retry will retry most other errors,\n // but it will not retry TypeError (except network error TypeErrors)\n throw err;\n }\n }, {\n priority: -1\n });\n const serverToken = await queueRequestSocketToken({\n file,\n postBody: reqBody,\n signal\n }).abortOn(signal);\n if (!this.uppy.getFile(file.id)) return undefined; // has file since been removed?\n\n this.uppy.setFileState(file.id, {\n serverToken\n });\n return _classPrivateFieldLooseBase(this, _awaitRemoteFileUpload)[_awaitRemoteFileUpload]({\n file: this.uppy.getFile(file.id),\n // re-fetching file because it might have changed in the meantime\n queue: getQueue(),\n signal\n });\n }, {\n retries: retryCount,\n signal,\n onFailedAttempt: err => this.uppy.log(`Retrying upload due to: ${err.message}`, 'warning')\n });\n } catch (err) {\n // this is a bit confusing, but note that an error with the `name` prop set to 'AbortError' (from AbortController)\n // is not the same as `p-retry` `AbortError`\n if (err.name === 'AbortError') {\n // The file upload was aborted, it’s not an error\n return undefined;\n }\n this.uppy.emit('upload-error', file, err);\n throw err;\n }\n }\n}\nfunction _getUrl2(url) {\n if (/^(https?:|)\\/\\//.test(url)) {\n return url;\n }\n return `${this.hostname}/${url}`;\n}\nasync function _awaitRemoteFileUpload2(_ref4) {\n let {\n file,\n queue,\n signal\n } = _ref4;\n let removeEventHandlers;\n const {\n capabilities\n } = this.uppy.getState();\n try {\n return await new Promise((resolve, reject) => {\n const token = file.serverToken;\n const host = getSocketHost(file.remote.companionUrl);\n let socket;\n let socketAbortController;\n let activityTimeout;\n let {\n isPaused\n } = file;\n const socketSend = (action, payload) => {\n if (socket == null || socket.readyState !== socket.OPEN) {\n var _socket;\n this.uppy.log(`Cannot send \"${action}\" to socket ${file.id} because the socket state was ${String((_socket = socket) == null ? void 0 : _socket.readyState)}`, 'warning');\n return;\n }\n socket.send(JSON.stringify({\n action,\n payload: payload != null ? payload : {}\n }));\n };\n function sendState() {\n if (!capabilities.resumableUploads) return;\n if (isPaused) socketSend('pause');else socketSend('resume');\n }\n const createWebsocket = async () => {\n if (socketAbortController) socketAbortController.abort();\n socketAbortController = new AbortController();\n const onFatalError = err => {\n var _socketAbortControlle;\n // Remove the serverToken so that a new one will be created for the retry.\n this.uppy.setFileState(file.id, {\n serverToken: null\n });\n (_socketAbortControlle = socketAbortController) == null || _socketAbortControlle.abort == null || _socketAbortControlle.abort();\n reject(err);\n };\n\n // todo instead implement the ability for users to cancel / retry *currently uploading files* in the UI\n function resetActivityTimeout() {\n clearTimeout(activityTimeout);\n if (isPaused) return;\n activityTimeout = setTimeout(() => onFatalError(new Error('Timeout waiting for message from Companion socket')), socketActivityTimeoutMs);\n }\n try {\n await queue.wrapPromiseFunction(async () => {\n const reconnectWebsocket = async () =>\n // eslint-disable-next-line promise/param-names\n new Promise((_, rejectSocket) => {\n socket = new WebSocket(`${host}/api/${token}`);\n resetActivityTimeout();\n socket.addEventListener('close', () => {\n socket = undefined;\n rejectSocket(new Error('Socket closed unexpectedly'));\n });\n socket.addEventListener('error', error => {\n var _socket2;\n this.uppy.log(`Companion socket error ${JSON.stringify(error)}, closing socket`, 'warning');\n (_socket2 = socket) == null || _socket2.close(); // will 'close' event to be emitted\n });\n socket.addEventListener('open', () => {\n sendState();\n });\n socket.addEventListener('message', e => {\n resetActivityTimeout();\n try {\n const {\n action,\n payload\n } = JSON.parse(e.data);\n switch (action) {\n case 'progress':\n {\n emitSocketProgress(this, payload, this.uppy.getFile(file.id));\n break;\n }\n case 'success':\n {\n var _payload$response, _payload$response$sta, _payload$response2, _socketAbortControlle2;\n // payload.response is sent from companion for xhr-upload (aka uploadMultipart in companion) and\n // s3 multipart (aka uploadS3Multipart)\n // but not for tus/transloadit (aka uploadTus)\n // responseText is a string which may or may not be in JSON format\n // this means that an upload destination of xhr or s3 multipart MUST respond with valid JSON\n // to companion, or the JSON.parse will crash\n const text = (_payload$response = payload.response) == null ? void 0 : _payload$response.responseText;\n this.uppy.emit('upload-success', this.uppy.getFile(file.id), {\n uploadURL: payload.url,\n status: (_payload$response$sta = (_payload$response2 = payload.response) == null ? void 0 : _payload$response2.status) != null ? _payload$response$sta : 200,\n body: text ? JSON.parse(text) : undefined\n });\n (_socketAbortControlle2 = socketAbortController) == null || _socketAbortControlle2.abort == null || _socketAbortControlle2.abort();\n resolve();\n break;\n }\n case 'error':\n {\n const {\n message\n } = payload.error;\n throw Object.assign(new Error(message), {\n cause: payload.error\n });\n }\n default:\n this.uppy.log(`Companion socket unknown action ${action}`, 'warning');\n }\n } catch (err) {\n onFatalError(err);\n }\n });\n const closeSocket = () => {\n this.uppy.log(`Closing socket ${file.id}`, 'info');\n clearTimeout(activityTimeout);\n if (socket) socket.close();\n socket = undefined;\n };\n socketAbortController.signal.addEventListener('abort', () => {\n closeSocket();\n });\n });\n await pRetry(reconnectWebsocket, {\n retries: retryCount,\n signal: socketAbortController.signal,\n onFailedAttempt: () => {\n if (socketAbortController.signal.aborted) return; // don't log in this case\n this.uppy.log(`Retrying websocket ${file.id}`, 'info');\n }\n });\n })().abortOn(socketAbortController.signal);\n } catch (err) {\n if (socketAbortController.signal.aborted) return;\n onFatalError(err);\n }\n };\n const pause = newPausedState => {\n if (!capabilities.resumableUploads) return;\n isPaused = newPausedState;\n if (socket) sendState();\n if (newPausedState) {\n var _socketAbortControlle3;\n // Remove this file from the queue so another file can start in its place.\n (_socketAbortControlle3 = socketAbortController) == null || _socketAbortControlle3.abort == null || _socketAbortControlle3.abort(); // close socket to free up the request for other uploads\n } else {\n // Resuming an upload should be queued, else you could pause and then\n // resume a queued upload to make it skip the queue.\n createWebsocket();\n }\n };\n const onFileRemove = targetFile => {\n var _socketAbortControlle4;\n if (!capabilities.individualCancellation) return;\n if (targetFile.id !== file.id) return;\n socketSend('cancel');\n (_socketAbortControlle4 = socketAbortController) == null || _socketAbortControlle4.abort == null || _socketAbortControlle4.abort();\n this.uppy.log(`upload ${file.id} was removed`, 'info');\n resolve();\n };\n const onCancelAll = _ref5 => {\n var _socketAbortControlle5;\n let {\n reason\n } = _ref5;\n if (reason === 'user') {\n socketSend('cancel');\n }\n (_socketAbortControlle5 = socketAbortController) == null || _socketAbortControlle5.abort == null || _socketAbortControlle5.abort();\n this.uppy.log(`upload ${file.id} was canceled`, 'info');\n resolve();\n };\n const onFilePausedChange = (targetFileId, newPausedState) => {\n if (targetFileId !== file.id) return;\n pause(newPausedState);\n };\n const onPauseAll = () => pause(true);\n const onResumeAll = () => pause(false);\n this.uppy.on('file-removed', onFileRemove);\n this.uppy.on('cancel-all', onCancelAll);\n this.uppy.on('upload-pause', onFilePausedChange);\n this.uppy.on('pause-all', onPauseAll);\n this.uppy.on('resume-all', onResumeAll);\n removeEventHandlers = () => {\n this.uppy.off('file-removed', onFileRemove);\n this.uppy.off('cancel-all', onCancelAll);\n this.uppy.off('upload-pause', onFilePausedChange);\n this.uppy.off('pause-all', onPauseAll);\n this.uppy.off('resume-all', onResumeAll);\n };\n signal.addEventListener('abort', () => {\n var _socketAbortControlle6;\n (_socketAbortControlle6 = socketAbortController) == null || _socketAbortControlle6.abort();\n });\n createWebsocket();\n });\n } finally {\n // @ts-expect-error used before defined\n removeEventHandlers == null || removeEventHandlers();\n }\n}\nRequestClient.VERSION = packageJson.version;"],"names":["_Symbol$for","_classPrivateFieldLooseBase","receiver","privateKey","Object","prototype","hasOwnProperty","call","TypeError","id","_classPrivateFieldLooseKey","name","authErrorStatusCode","HttpError","Error","constructor","_ref","statusCode","message","super","this","_companionHeaders","_getUrl","_requestSocketToken","_awaitRemoteFileUpload","Symbol","for","RequestClient","uppy","opts","defineProperty","value","_awaitRemoteFileUpload2","_getUrl2","writable","async","_file$remote","file","postBody","signal","_ref2","remote","url","post","body","token","onReceiveResponse","bind","companionHeaders","setCompanionHeaders","headers","hostname","companion","getState","host","companionUrl","replace","emptyBody","Accept","undefined","res","has","get","setState","request","_ref3","path","method","data","skipPostResponse","response","credentials","companionCookiesRule","JSON","stringify","status","ok","json","errData","errMsg","statusText","requestId","cause","handleJSONResponse","err","isAuthError","options","uploadRemoteFile","reqBody","_this","getQueue","_this$uppy$getFile","existingServerToken","getFile","serverToken","log","queue","queueRequestSocketToken","wrapPromiseFunction","arguments","outerErr","AbortError","isRetryableHttpError","includes","priority","abortOn","setFileState","retries","onFailedAttempt","emit","test","_ref4","removeEventHandlers","capabilities","Promise","resolve","reject","socket","socketAbortController","activityTimeout","isPaused","socketSend","action","payload","_socket","readyState","OPEN","send","String","sendState","resumableUploads","createWebsocket","abort","AbortController","onFatalError","_socketAbortControlle","resetActivityTimeout","clearTimeout","setTimeout","_","rejectSocket","WebSocket","addEventListener","error","_socket2","close","e","parse","_payload$response","_payload$response$sta","_payload$response2","_socketAbortControlle2","text","responseText","uploadURL","assign","closeSocket","aborted","pause","newPausedState","_socketAbortControlle3","onFileRemove","targetFile","_socketAbortControlle4","individualCancellation","onCancelAll","_ref5","_socketAbortControlle5","reason","onFilePausedChange","targetFileId","onPauseAll","onResumeAll","on","off","_socketAbortControlle6","VERSION"],"sourceRoot":""}