| 
								
							 | 
							
								"use strict";
							 | 
						
						
						
							| 
								
							 | 
							
								var __importDefault = (this && this.__importDefault) || function (mod) {
							 | 
						
						
						
							| 
								
							 | 
							
								    return (mod && mod.__esModule) ? mod : { "default": mod };
							 | 
						
						
						
							| 
								
							 | 
							
								};
							 | 
						
						
						
							| 
								
							 | 
							
								Object.defineProperty(exports, "__esModule", { value: true });
							 | 
						
						
						
							| 
								
							 | 
							
								exports.client = exports.setConfig = void 0;
							 | 
						
						
						
							| 
								
							 | 
							
								const urllib_1 = __importDefault(require("urllib"));
							 | 
						
						
						
							| 
								
							 | 
							
								const agentkeepalive_1 = __importDefault(require("agentkeepalive"));
							 | 
						
						
						
							| 
								
							 | 
							
								const getUserAgent_1 = require("./common/utils/getUserAgent");
							 | 
						
						
						
							| 
								
							 | 
							
								const initOptions_1 = __importDefault(require("./common/client/initOptions"));
							 | 
						
						
						
							| 
								
							 | 
							
								const HttpsAgentKeepalive = agentkeepalive_1.default.HttpsAgent;
							 | 
						
						
						
							| 
								
							 | 
							
								const globalHttpAgent = new agentkeepalive_1.default();
							 | 
						
						
						
							| 
								
							 | 
							
								const globalHttpsAgent = new HttpsAgentKeepalive();
							 | 
						
						
						
							| 
								
							 | 
							
								class Client {
							 | 
						
						
						
							| 
								
							 | 
							
								    constructor(options, ctx) {
							 | 
						
						
						
							| 
								
							 | 
							
								        if (!(this instanceof Client)) {
							 | 
						
						
						
							| 
								
							 | 
							
								            return new Client(options, ctx);
							 | 
						
						
						
							| 
								
							 | 
							
								        }
							 | 
						
						
						
							| 
								
							 | 
							
								        if (options && options.inited) {
							 | 
						
						
						
							| 
								
							 | 
							
								            this.options = options;
							 | 
						
						
						
							| 
								
							 | 
							
								        }
							 | 
						
						
						
							| 
								
							 | 
							
								        else {
							 | 
						
						
						
							| 
								
							 | 
							
								            this.options = initOptions_1.default(options);
							 | 
						
						
						
							| 
								
							 | 
							
								        }
							 | 
						
						
						
							| 
								
							 | 
							
								        // support custom agent and urllib client
							 | 
						
						
						
							| 
								
							 | 
							
								        if (this.options.urllib) {
							 | 
						
						
						
							| 
								
							 | 
							
								            this.urllib = this.options.urllib;
							 | 
						
						
						
							| 
								
							 | 
							
								        }
							 | 
						
						
						
							| 
								
							 | 
							
								        else {
							 | 
						
						
						
							| 
								
							 | 
							
								            this.urllib = urllib_1.default;
							 | 
						
						
						
							| 
								
							 | 
							
								            this.agent = this.options.agent || globalHttpAgent;
							 | 
						
						
						
							| 
								
							 | 
							
								            this.httpsAgent = this.options.httpsAgent || globalHttpsAgent;
							 | 
						
						
						
							| 
								
							 | 
							
								        }
							 | 
						
						
						
							| 
								
							 | 
							
								        this.ctx = ctx;
							 | 
						
						
						
							| 
								
							 | 
							
								        this.userAgent = getUserAgent_1.getUserAgent();
							 | 
						
						
						
							| 
								
							 | 
							
								    }
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 | 
						
						
						
							| 
								
							 | 
							
								let client;
							 | 
						
						
						
							| 
								
							 | 
							
								exports.client = client;
							 | 
						
						
						
							| 
								
							 | 
							
								exports.setConfig = (options, ctx) => {
							 | 
						
						
						
							| 
								
							 | 
							
								    exports.client = client = new Client(options, ctx);
							 | 
						
						
						
							| 
								
							 | 
							
								};
							 |