UNPKG

6.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/isNetworkError.js"],"names":["networkFatalsWildcards","networkFatals","networkErrorsWildcards","networkErrors","isNetworkTimeout","err","errCode","Err","getCode","isNetworkCapcha","data","includes","isNetworkFatal","filter","w","startsWith","length","isNetworkError","getFatalErrCode","getErrCode"],"mappings":";;;;;;;;;AACA;;AACA;;AAFA;AAIA,IAAMA,sBAAsB,GAAG,CAAC,uBAAD,EAA0B,eAA1B,CAA/B;AACA,IAAMC,aAAa,GAAG,CAAC,qCAAD,CAAtB;AAEO,IAAMC,sBAAsB,GAAG,CACpC,UADoC,EAEpC;AACA,QAHoC,EAIpC,UAJoC,CAA/B;;AAMA,IAAMC,aAAa,aACrBF,aADqB,GAExB,YAFwB,EAGxB,cAHwB,EAIxB,uBAJwB,EAKxB,2BALwB,EAMxB,cANwB,EAOxB,mCAPwB,EAQxB,QARwB,EASxB,iCATwB,EAUxB,kBAVwB,EAWxB,WAXwB,EAYxB,aAZwB,EAaxB,aAbwB,EAcxB,mBAdwB,EAexB,8BAfwB,EAAnB;;;AAkBA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAS;AACvC,MAAMC,OAAO,GAAGC,gBAAIC,OAAJ,CAAYH,GAAZ,KAAoB,EAApC;AAEA,SAAOC,OAAO,KAAK,yBAAnB;AACD,CAJM;;;;AAMA,IAAMG,eAAe,GAAG,SAAlBA,eAAkB,CAACJ,GAAD,EAAS;AACtC,MAAMK,IAAI,GAAG,qBAAIL,GAAJ,EAAS,eAAT,CAAb;AACA,MAAI,OAAOK,IAAP,KAAgB,QAApB,EAA8B,OAAO,KAAP;AAC9B,MAAIA,IAAI,CAACC,QAAL,CAAc,yCAAd,CAAJ,EAA8D,OAAO,IAAP;AAC9D,MAAID,IAAI,CAACC,QAAL,CAAc,2BAAd,CAAJ,EAAgD,OAAO,IAAP;AAChD,MAAID,IAAI,CAACC,QAAL,CAAc,sEAAd,CAAJ,EAA2F,OAAO,IAAP;AAC3F,MAAID,IAAI,CAACC,QAAL,CAAc,sEAAd,CAAJ,EAA2F,OAAO,IAAP;AAC3F,SAAO,KAAP;AACD,CARM;;;;AAUA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACP,GAAD,EAAS;AACrC,MAAI,qBAAIA,GAAJ,EAAS,iBAAT,MAAgC,GAApC,EAAyC,OAAO,IAAP,CADJ,CACiB;;AACtD,MAAI,qBAAIA,GAAJ,EAAS,iBAAT,MAAgC,GAApC,EAAyC,OAAO,IAAP,CAFJ,CAEiB;;AACtD,MAAII,eAAe,CAACJ,GAAD,CAAnB,EAA0B,OAAO,IAAP,CAHW,CAGE;;AACvC,MAAMC,OAAO,GAAGC,gBAAIC,OAAJ,CAAYH,GAAZ,KAAoB,EAApC;AACA,MAAIJ,aAAa,CAACU,QAAd,CAAuBL,OAAvB,CAAJ,EAAqC,OAAO,IAAP;AACrC,SAAON,sBAAsB,CAACa,MAAvB,CAA8B,UAACC,CAAD;AAAA,WAAOR,OAAO,CAACS,UAAR,CAAmBD,CAAnB,CAAP;AAAA,GAA9B,EAA4DE,MAAnE;AACD,CAPM;;;;AASA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACZ,GAAD,EAAS;AACrC,MAAIO,cAAc,CAACP,GAAD,CAAlB,EAAyB,OAAO,IAAP;AACzB,MAAMC,OAAO,GAAGC,gBAAIC,OAAJ,CAAYH,GAAZ,KAAoB,EAApC;AACA,MAAIF,aAAa,CAACQ,QAAd,CAAuBL,OAAvB,CAAJ,EAAqC,OAAO,IAAP;AACrC,SAAOJ,sBAAsB,CAACW,MAAvB,CAA8B,UAACC,CAAD;AAAA,WAAOR,OAAO,CAACS,UAAR,CAAmBD,CAAnB,CAAP;AAAA,GAA9B,EAA4DE,MAAnE;AACD,CALM;;;;AAOA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAACb,GAAD,EAAS;AACtC,MAAI,qBAAIA,GAAJ,EAAS,iBAAT,MAAgC,GAApC,EAAyC,OAAO,wCAAP;AACzC,MAAI,qBAAIA,GAAJ,EAAS,iBAAT,MAAgC,GAApC,EAAyC,OAAO,2CAAP;AACzC,MAAII,eAAe,CAACJ,GAAD,CAAnB,EAA0B,OAAO,+BAAP;AAC1B,MAAID,gBAAgB,CAACC,GAAD,CAApB,EAA2B,OAAO,yBAAP;AAC3B,MAAIY,cAAc,CAACZ,GAAD,CAAlB,EAAyB,OAAO,iBAAP;AACzB,SAAO,IAAP;AACD,CAPM;;;;AASA,IAAMc,UAAU,GAAG,SAAbA,UAAa,CAACd,GAAD;AAAA,SAASa,eAAe,CAACb,GAAD,CAAf,IAAwBE,gBAAIC,OAAJ,CAAYH,GAAZ,CAAjC;AAAA,CAAnB;;;eAEQY,c,EAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/* eslint-disable max-len */\nimport Err from '@lskjs/err';\nimport get from 'lodash/get';\n\nconst networkFatalsWildcards = ['REQUEST_NETWORK_FATAL', 'REQUEST_FATAL'];\nconst networkFatals = ['Request failed with status code 429'];\n\nexport const networkErrorsWildcards = [\n 'REQUEST_',\n // NOTE: legacy\n 'PROXY_',\n 'NETWORK_',\n];\nexport const networkErrors = [\n ...networkFatals,\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'TIMEOUT_RESPONSE_TEXT',\n 'SELF_SIGNED_CERT_IN_CHAIN',\n 'EHOSTUNREACH',\n 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n 'EPROTO',\n 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n 'CERT_HAS_EXPIRED',\n 'EAI_AGAIN',\n 'Z_BUF_ERROR',\n 'ENETUNREACH',\n 'ERR_SOCKET_CLOSED',\n 'ERR_TLS_CERT_ALTNAME_INVALID',\n];\n\nexport const isNetworkTimeout = (err) => {\n const errCode = Err.getCode(err) || '';\n\n return errCode === 'REQUEST_NETWORK_TIMEOUT';\n};\n\nexport const isNetworkCapcha = (err) => {\n const data = get(err, 'response.data');\n if (typeof data !== 'string') return false;\n if (data.includes('<div class=\"g-recaptcha\" data-sitekey=\"')) return true;\n if (data.includes('action_recaptcha_verify2\"')) return true;\n if (data.includes('We have been receiving a large volume of requests from your network.')) return true;\n if (data.includes('Our systems have detected unusual traffic from your computer network')) return true;\n return false;\n};\n\nexport const isNetworkFatal = (err) => {\n if (get(err, 'response.status') === 429) return true; // REQUEST_NETWORK_FATAL_TOO_MANY_REQUEST\n if (get(err, 'response.status') === 407) return true; // REQUEST_NETWORK_FATAL_PROXY_AUTH_REQUIRED\n if (isNetworkCapcha(err)) return true; // REQUEST_NETWORK_FATAL_CAPTCHA\n const errCode = Err.getCode(err) || '';\n if (networkFatals.includes(errCode)) return true;\n return networkFatalsWildcards.filter((w) => errCode.startsWith(w)).length;\n};\n\nexport const isNetworkError = (err) => {\n if (isNetworkFatal(err)) return true;\n const errCode = Err.getCode(err) || '';\n if (networkErrors.includes(errCode)) return true;\n return networkErrorsWildcards.filter((w) => errCode.startsWith(w)).length;\n};\n\nexport const getFatalErrCode = (err) => {\n if (get(err, 'response.status') === 429) return 'REQUEST_NETWORK_FATAL_TOO_MANY_REQUEST';\n if (get(err, 'response.status') === 407) return 'REQUEST_NETWORK_FATAL_PROXY_AUTH_REQUIRED';\n if (isNetworkCapcha(err)) return 'REQUEST_NETWORK_FATAL_CAPTCHA';\n if (isNetworkTimeout(err)) return 'REQUEST_NETWORK_TIMEOUT';\n if (isNetworkError(err)) return 'REQUEST_NETWORK';\n return null;\n};\n\nexport const getErrCode = (err) => getFatalErrCode(err) || Err.getCode(err);\n\nexport default isNetworkError;\n\n// TODO: add this errors\n// if (response.status === 407) throw new Err('PROXY_AUTH_REQUIRED');\n// export function checkResponse(response) {\n// if (response.status === 407) throw new Err('PROXY_AUTH_REQUIRED');\n// } else if (typeof response.data === 'string') {\n// /* eslint-disable max-len */\n// if (response.data.indexOf('<div class=\"g-recaptcha\" data-sitekey=\"') !== -1) {\n// if (\n// response.req &&\n// response.req.headers &&\n// response.req.headers.cookie &&\n// response.req.headers.cookie.indexOf('goojf') === 0\n// ) {\n// throw new Err('NETWORK_RECAPCHA', { capchaCookie: response.req.headers.cookie.substr(6, 156) });\n// }\n// throw new Err('NETWORK_RECAPCHA');\n// }\n// if (response.data.indexOf('action_recaptcha_verify2\"') !== -1) throw new Err('NETWORK_RECAPCHA');\n// if (response.data.indexOf('We have been receiving a large volume of requests from your network.') !== -1)\n// throw new Err('NETWORK_BAN');\n// if (response.data.indexOf('Our systems have detected unusual traffic from your computer network') !== -1)\n// throw new Err('NETWORK_RECAPCHA');\n// /* eslint-enable max-len */\n// }\n// }\n"],"file":"isNetworkError.js"}
\No newline at end of file