1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.httpExecutor = exports.NodeHttpExecutor = undefined;
|
7 |
|
8 | var _bluebirdLst;
|
9 |
|
10 | function _load_bluebirdLst() {
|
11 | return _bluebirdLst = require("bluebird-lst");
|
12 | }
|
13 |
|
14 |
|
15 | let proxyFromNpm = (() => {
|
16 | var _ref = (0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* () {
|
17 | let data = "";
|
18 | try {
|
19 | data = yield (0, (_fsExtraP || _load_fsExtraP()).readFile)(_path.join((0, (_os || _load_os()).homedir)(), ".npmrc"), "utf-8");
|
20 | } catch (ignored) {
|
21 | return null;
|
22 | }
|
23 | if (!data) {
|
24 | return null;
|
25 | }
|
26 | try {
|
27 | const config = (0, (_ini || _load_ini()).parse)(data);
|
28 | return config["https-proxy"] || config.proxy;
|
29 | } catch (e) {
|
30 |
|
31 | console.warn(e);
|
32 | return null;
|
33 | }
|
34 | });
|
35 |
|
36 | return function proxyFromNpm() {
|
37 | return _ref.apply(this, arguments);
|
38 | };
|
39 | })();
|
40 |
|
41 |
|
42 |
|
43 | let createAgent = (() => {
|
44 | var _ref2 = (0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* () {
|
45 | let proxyString = process.env.npm_config_https_proxy || process.env.HTTPS_PROXY || process.env.https_proxy || process.env.npm_config_proxy;
|
46 | if (!proxyString) {
|
47 | proxyString = yield proxyFromNpm();
|
48 | if (!proxyString) {
|
49 | return null;
|
50 | }
|
51 | }
|
52 | const proxy = (0, (_url || _load_url()).parse)(proxyString);
|
53 | const proxyProtocol = proxy.protocol === "https:" ? "Https" : "Http";
|
54 | return require("tunnel-agent")[`httpsOver${proxyProtocol}`]({
|
55 | proxy: {
|
56 | port: proxy.port || (proxyProtocol === "Https" ? 443 : 80),
|
57 | host: proxy.hostname,
|
58 | proxyAuth: proxy.auth
|
59 | }
|
60 | });
|
61 | });
|
62 |
|
63 | return function createAgent() {
|
64 | return _ref2.apply(this, arguments);
|
65 | };
|
66 | })();
|
67 |
|
68 |
|
69 |
|
70 | var _debug2;
|
71 |
|
72 | function _load_debug() {
|
73 | return _debug2 = _interopRequireDefault(require("debug"));
|
74 | }
|
75 |
|
76 | var _electronBuilderHttp;
|
77 |
|
78 | function _load_electronBuilderHttp() {
|
79 | return _electronBuilderHttp = require("electron-builder-http");
|
80 | }
|
81 |
|
82 | var _fsExtraP;
|
83 |
|
84 | function _load_fsExtraP() {
|
85 | return _fsExtraP = require("fs-extra-p");
|
86 | }
|
87 |
|
88 | var _https;
|
89 |
|
90 | function _load_https() {
|
91 | return _https = _interopRequireWildcard(require("https"));
|
92 | }
|
93 |
|
94 | var _ini;
|
95 |
|
96 | function _load_ini() {
|
97 | return _ini = require("ini");
|
98 | }
|
99 |
|
100 | var _os;
|
101 |
|
102 | function _load_os() {
|
103 | return _os = require("os");
|
104 | }
|
105 |
|
106 | var _path = _interopRequireWildcard(require("path"));
|
107 |
|
108 | var _url;
|
109 |
|
110 | function _load_url() {
|
111 | return _url = require("url");
|
112 | }
|
113 |
|
114 | var _util;
|
115 |
|
116 | function _load_util() {
|
117 | return _util = require("./util");
|
118 | }
|
119 |
|
120 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
121 |
|
122 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
123 |
|
124 | const debug = (0, (_debug2 || _load_debug()).default)("electron-builder");
|
125 | class NodeHttpExecutor extends (_electronBuilderHttp || _load_electronBuilderHttp()).HttpExecutor {
|
126 | download(url, destination) {
|
127 | var _this = this;
|
128 |
|
129 | let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { cancellationToken: new (_electronBuilderHttp || _load_electronBuilderHttp()).CancellationToken() };
|
130 | return (0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* () {
|
131 | if (!options.skipDirCreation) {
|
132 | yield (0, (_fsExtraP || _load_fsExtraP()).ensureDir)(_path.dirname(destination));
|
133 | }
|
134 | if (_this.httpsAgentPromise == null) {
|
135 | _this.httpsAgentPromise = createAgent();
|
136 | }
|
137 | const agent = yield _this.httpsAgentPromise;
|
138 | return yield options.cancellationToken.createPromise(function (resolve, reject, onCancel) {
|
139 | const parsedUrl = (0, (_url || _load_url()).parse)(url);
|
140 | _this.doDownload((0, (_electronBuilderHttp || _load_electronBuilderHttp()).configureRequestOptions)({
|
141 | hostname: parsedUrl.hostname,
|
142 | path: parsedUrl.path,
|
143 | headers: options.headers || undefined,
|
144 | agent
|
145 | }), destination, 0, options, function (error) {
|
146 | if (error == null) {
|
147 | resolve(destination);
|
148 | } else {
|
149 | reject(error);
|
150 | }
|
151 | }, onCancel);
|
152 | });
|
153 | })();
|
154 | }
|
155 | doApiRequest(options, cancellationToken, requestProcessor) {
|
156 | let redirectCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
157 |
|
158 | if (debug.enabled) {
|
159 | debug(`HTTPS request: ${(0, (_util || _load_util()).safeStringifyJson)(options)}`);
|
160 | }
|
161 | return cancellationToken.createPromise((resolve, reject, onCancel) => {
|
162 | const request = (_https || _load_https()).request(options, response => {
|
163 | try {
|
164 | this.handleResponse(response, options, cancellationToken, resolve, reject, redirectCount, requestProcessor);
|
165 | } catch (e) {
|
166 | reject(e);
|
167 | }
|
168 | });
|
169 | this.addTimeOutHandler(request, reject);
|
170 | request.on("error", reject);
|
171 | requestProcessor(request, reject);
|
172 | onCancel(() => request.abort());
|
173 | });
|
174 | }
|
175 | doRequest(options, callback) {
|
176 | return (_https || _load_https()).request(options, callback);
|
177 | }
|
178 | }
|
179 | exports.NodeHttpExecutor = NodeHttpExecutor;
|
180 | const httpExecutor = exports.httpExecutor = new NodeHttpExecutor(); |
\ | No newline at end of file |