cloudbypass-sdk
Version:
Cloudbypass Nodejs SDK.
1 lines • 20.8 kB
Source Map (JSON)
{"version":3,"file":"cloudbypass.cjs","sources":["../../lib/utils.js","../../lib/error/BypassError.js","../../lib/error/isBypassError.js","../../lib/api.js","../../lib/proxy.js","../../lib/cloudbypass.js"],"sourcesContent":["const getEnv = (key, defaultValue) => {\r\n try {\r\n if (process.env[key]) {\r\n return process.env[key] || defaultValue;\r\n }\r\n } catch (err) {\r\n /* pass */\r\n }\r\n\r\n return defaultValue;\r\n}\r\n\r\n\r\nconst getApiHost = (apihost) => {\r\n const apiHost = apihost || getEnv(\"CB_APIHOST\", \"https://api.cloudbypass.com\");\r\n\r\n if (!apiHost.match(/^((?:http|https):(\\/\\/)?)([\\w.-]+)(:(\\d+))?$/)) {\r\n throw new Error(\"Invalid APIHOST\");\r\n }\r\n\r\n return apiHost;\r\n}\r\n\r\nconst parseOptions = (options) => {\r\n const _options = {\r\n \"disable-redirect\": true, \"full-cookie\": true,\r\n }\r\n\r\n if (typeof options === \"string\") {\r\n options.split(\",\").forEach(option => {\r\n _options[option.trim()] = true;\r\n });\r\n } else if (typeof options === \"object\") {\r\n if (Array.isArray(options)) {\r\n options.forEach(option => {\r\n _options[option.trim()] = true;\r\n });\r\n } else {\r\n Object.keys(options).forEach(key => {\r\n _options[key.trim()] = options[key];\r\n });\r\n }\r\n }\r\n\r\n return Object.keys(_options).map(key => {\r\n return _options[key] ? key : \"\";\r\n }).join(\",\");\r\n}\r\n\r\nconst inherits = (constructor, superConstructor, props, descriptors) => {\r\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\r\n constructor.prototype.constructor = constructor;\r\n Object.defineProperty(constructor, 'super', {\r\n value: superConstructor.prototype\r\n });\r\n props && Object.assign(constructor.prototype, props);\r\n}\r\n\r\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\r\n\r\nexport {\r\n getEnv, getApiHost, parseOptions, inherits, isObject\r\n}","import {inherits} from \"../utils.js\";\r\n\r\nfunction BypassError(axiosError) {\r\n const {request, response} = axiosError;\r\n const {id, code, message} = response.data;\r\n\r\n this.name = 'BypassError';\r\n id && (this.id = id);\r\n message && (this.message = message);\r\n code && (this.code = code);\r\n request && (this.request = request);\r\n response && (this.response = response);\r\n}\r\n\r\ninherits(BypassError, Error, {\r\n toJSON: function toJSON() {\r\n return {\r\n message: this.message, name: this.name, id: this.id, code: this.code,\r\n status: this.response && this.response.status ? this.response.status : null\r\n };\r\n }\r\n});\r\n\r\nconst prototype = BypassError.prototype;\r\n\r\nObject.defineProperty(prototype, 'isBypassError', {value: true});\r\n\r\nexport default BypassError;","import {isObject} from '../utils.js';\r\n\r\nexport default function isBypassError(payload) {\r\n return isObject(payload) && (payload.isBypassError === true);\r\n}\r\n","import axios from \"axios\";\r\nimport {getEnv} from \"./utils.js\";\r\n\r\nconst getBalance = async (apikey, email) => {\r\n return axios.get('https://console.cloudbypass.com/api/v1/balance', {\r\n params: {\r\n apikey: getEnv(\"CB_APIKEY\", apikey),\r\n email\r\n }\r\n })\r\n .then(res => {\r\n return res.data?.balance;\r\n })\r\n}\r\n\r\nexport {\r\n getBalance\r\n};","class CloudbypassProxy {\r\n\r\n constructor(auth, kwargs = {}) {\r\n const {username, password} = CloudbypassProxy.checkAuth(auth);\r\n this.username = username;\r\n this.password = password;\r\n this.region = kwargs.region || null;\r\n this.expire = kwargs.expire || null;\r\n this.gateway = kwargs.gateway || 'gw.cloudbypass.com:1288';\r\n this.__sessionId = null;\r\n }\r\n\r\n static checkAuth(auth) {\r\n // ^(\\w+-(res|dat)):(\\w+)$\r\n const content = /^(\\w+-(res|dat)):(\\w+)$/.exec(auth);\r\n if (!content) {\r\n throw new Error('Invalid auth format');\r\n }\r\n return {\r\n username: content[1],\r\n password: content[3],\r\n };\r\n }\r\n\r\n setExpire(expire) {\r\n this.expire = expire;\r\n this.__sessionId = null;\r\n return this;\r\n }\r\n\r\n setDynamic() {\r\n return this.setExpire(0);\r\n }\r\n\r\n setGateway(gateway) {\r\n this.gateway = gateway;\r\n this.__sessionId = null;\r\n return this;\r\n }\r\n\r\n setRegion(region) {\r\n this.region = region;\r\n this.__sessionId = null;\r\n return this;\r\n }\r\n\r\n clearRegion() {\r\n this.region = null;\r\n this.__sessionId = null;\r\n return this;\r\n }\r\n\r\n get sessionId() {\r\n if (!this.__sessionId) {\r\n // 0123456789abcdefghijklmnopqrstuvwxyz 随机11位\r\n this.__sessionId = Math.random().toString(36).substr(2);\r\n }\r\n return this.__sessionId;\r\n }\r\n\r\n parseOptions() {\r\n const options = [\r\n this.username\r\n ];\r\n if (this.region) {\r\n options.push(this.region.replace(/\\s+/g, '+'));\r\n }\r\n let expire = this.expire;\r\n if (expire) {\r\n for (let val of [[60, \"s\"], [60, \"m\"], [24, \"h\"], [999, \"d\"]]) {\r\n const [time, unit] = val;\r\n if (expire < time || expire % time) {\r\n options.push(`s${this.sessionId}-${expire}${unit}`);\r\n break;\r\n }\r\n expire /= time;\r\n }\r\n }\r\n return options.join('_');\r\n }\r\n\r\n format(format_str) {\r\n return (format_str || 'username:password@gateway')\r\n .replace('username', this.parseOptions())\r\n .replace('password', this.password)\r\n .replace('gateway', this.gateway);\r\n }\r\n\r\n toString() {\r\n return this.format();\r\n }\r\n\r\n copy() {\r\n return new CloudbypassProxy(`${this.username}:${this.password}`, {\r\n region: this.region,\r\n expire: this.expire,\r\n gateway: this.gateway,\r\n });\r\n }\r\n\r\n * limit(count, format_str) {\r\n if (count <= 0) {\r\n throw new Error('Count must be greater than 0');\r\n }\r\n\r\n for (let i = 0; i < count; i++) {\r\n this.__sessionId = null;\r\n yield this.format(format_str);\r\n }\r\n }\r\n\r\n * loop(count, format_str) {\r\n if (count <= 0) {\r\n throw new Error('Count must be greater than 0');\r\n }\r\n\r\n const pool = [];\r\n\r\n for (let i = 0; i < count; i++) {\r\n this.__sessionId = null;\r\n const proxy = this.format(format_str);\r\n pool.push(proxy);\r\n yield proxy;\r\n }\r\n\r\n while (true) {\r\n for (let i = 0; i < count; i++) {\r\n yield pool[i];\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default CloudbypassProxy;","import axios from 'axios';\r\nimport {wrapper} from 'axios-cookiejar-support';\r\nimport {CookieJar} from 'tough-cookie';\r\nimport url from 'url';\r\nimport {getEnv, getApiHost, parseOptions} from './utils.js';\r\nimport BypassError from './error/BypassError.js';\r\nimport isBypassError from './error/isBypassError.js';\r\nimport {getBalance} from './api.js';\r\nimport CloudbypassProxy from \"./proxy.js\";\r\n\r\nconst ENV_APIKEY = getEnv(\"CB_APIKEY\", \"\");\r\nconst ENV_PROXY = getEnv(\"CB_PROXY\", \"\");\r\n\r\nconst cloudbypass = wrapper(axios.create({\r\n jar: new CookieJar(),\r\n}));\r\nconst cloudbypassInterceptorHelper = (_axios) => {\r\n _axios.interceptors.request.use(config => {\r\n const u = url.parse(config.url);\r\n const proxy = config.cb_proxy || ENV_PROXY;\r\n config.headers = {\r\n \"x-cb-apikey\": config.cb_apikey || ENV_APIKEY,\r\n \"x-cb-host\": u.host,\r\n \"x-cb-options\": parseOptions(config.cb_options),\r\n \"x-cb-protocol\": u.protocol.replace(\":\", \"\"),\r\n ...(config.headers || {})\r\n }\r\n if (proxy) {\r\n config.headers[\"x-cb-proxy\"] = proxy;\r\n }\r\n if (config.cb_part) {\r\n config.headers[\"x-cb-part\"] = config.cb_part;\r\n config.headers[\"x-cb-version\"] = \"2\";\r\n }\r\n if (config.cb_use_v2){\r\n config.headers[\"x-cb-version\"] = \"2\";\r\n }\r\n config.url = getApiHost(config.cb_apihost) + u.path;\r\n return config;\r\n }, error => {\r\n return Promise.reject(error);\r\n });\r\n _axios.interceptors.response.use(response => {\r\n return response;\r\n }, error => {\r\n if (error.name === \"AxiosError\" && error.response && error.response.data) {\r\n throw new BypassError(error);\r\n }\r\n return Promise.reject(error);\r\n });\r\n\r\n return _axios;\r\n}\r\n\r\ncloudbypass.create = function (options) {\r\n options = options || {};\r\n options.jar = options.jar || new CookieJar();\r\n return cloudbypassInterceptorHelper(\r\n wrapper(axios.create(options))\r\n );\r\n};\r\n\r\ncloudbypassInterceptorHelper(cloudbypass);\r\n\r\n[\"get\", \"post\", \"put\", \"delete\", \"head\", \"options\", \"patch\"].forEach(method => {\r\n cloudbypass[method] = function (url, data, config) {\r\n if (method === \"get\") {\r\n config = data;\r\n data = undefined;\r\n }\r\n return this.request({\r\n method,\r\n url,\r\n data,\r\n ...config\r\n });\r\n }\r\n});\r\n\r\ncloudbypass.isBypassError = isBypassError;\r\ncloudbypass.getBalance = getBalance;\r\ncloudbypass.BypassError = BypassError;\r\ncloudbypass.createProxy = function (auth) {\r\n return new CloudbypassProxy(auth);\r\n}\r\n\r\ncloudbypass.default = cloudbypass;\r\n\r\nexport default cloudbypass;"],"names":["axios","wrapper","CookieJar","url"],"mappings":"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"}