summaryrefslogtreecommitdiff
path: root/desktop/node_modules/global-agent/dist/factories
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/node_modules/global-agent/dist/factories')
-rw-r--r--desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js175
-rw-r--r--desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow197
-rw-r--r--desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map1
-rw-r--r--desktop/node_modules/global-agent/dist/factories/createProxyController.js45
-rw-r--r--desktop/node_modules/global-agent/dist/factories/createProxyController.js.flow46
-rw-r--r--desktop/node_modules/global-agent/dist/factories/createProxyController.js.map1
-rw-r--r--desktop/node_modules/global-agent/dist/factories/index.js24
-rw-r--r--desktop/node_modules/global-agent/dist/factories/index.js.flow4
-rw-r--r--desktop/node_modules/global-agent/dist/factories/index.js.map1
9 files changed, 494 insertions, 0 deletions
diff --git a/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js b/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js
new file mode 100644
index 0000000..c87b9ed
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js
@@ -0,0 +1,175 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+
+var _http = _interopRequireDefault(require("http"));
+
+var _https = _interopRequireDefault(require("https"));
+
+var _boolean = require("boolean");
+
+var _semver = _interopRequireDefault(require("semver"));
+
+var _Logger = _interopRequireDefault(require("../Logger"));
+
+var _classes = require("../classes");
+
+var _errors = require("../errors");
+
+var _utilities = require("../utilities");
+
+var _createProxyController = _interopRequireDefault(require("./createProxyController"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const httpGet = _http.default.get;
+const httpRequest = _http.default.request;
+const httpsGet = _https.default.get;
+const httpsRequest = _https.default.request;
+
+const log = _Logger.default.child({
+ namespace: 'createGlobalProxyAgent'
+});
+
+const defaultConfigurationInput = {
+ environmentVariableNamespace: undefined,
+ forceGlobalAgent: undefined,
+ socketConnectionTimeout: 60000
+};
+
+const omitUndefined = subject => {
+ const keys = Object.keys(subject);
+ const result = {};
+
+ for (const key of keys) {
+ const value = subject[key];
+
+ if (value !== undefined) {
+ result[key] = value;
+ }
+ }
+
+ return result;
+};
+
+const createConfiguration = configurationInput => {
+ // eslint-disable-next-line no-process-env
+ const environment = process.env;
+ const defaultConfiguration = {
+ environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_',
+ forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? (0, _boolean.boolean)(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true,
+ socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout
+ }; // $FlowFixMe
+
+ return { ...defaultConfiguration,
+ ...omitUndefined(configurationInput)
+ };
+};
+
+const createGlobalProxyAgent = (configurationInput = defaultConfigurationInput) => {
+ const configuration = createConfiguration(configurationInput);
+ const proxyController = (0, _createProxyController.default)(); // eslint-disable-next-line no-process-env
+
+ proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null; // eslint-disable-next-line no-process-env
+
+ proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null; // eslint-disable-next-line no-process-env
+
+ proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null;
+ log.info({
+ configuration,
+ state: proxyController
+ }, 'global agent has been initialized');
+
+ const mustUrlUseProxy = getProxy => {
+ return url => {
+ if (!getProxy()) {
+ return false;
+ }
+
+ if (!proxyController.NO_PROXY) {
+ return true;
+ }
+
+ return !(0, _utilities.isUrlMatchingNoProxy)(url, proxyController.NO_PROXY);
+ };
+ };
+
+ const getUrlProxy = getProxy => {
+ return () => {
+ const proxy = getProxy();
+
+ if (!proxy) {
+ throw new _errors.UnexpectedStateError('HTTP(S) proxy must be configured.');
+ }
+
+ return (0, _utilities.parseProxyUrl)(proxy);
+ };
+ };
+
+ const getHttpProxy = () => {
+ return proxyController.HTTP_PROXY;
+ };
+
+ const BoundHttpProxyAgent = class extends _classes.HttpProxyAgent {
+ constructor() {
+ super(() => {
+ return getHttpProxy();
+ }, mustUrlUseProxy(getHttpProxy), getUrlProxy(getHttpProxy), _http.default.globalAgent, configuration.socketConnectionTimeout);
+ }
+
+ };
+ const httpAgent = new BoundHttpProxyAgent();
+
+ const getHttpsProxy = () => {
+ return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY;
+ };
+
+ const BoundHttpsProxyAgent = class extends _classes.HttpsProxyAgent {
+ constructor() {
+ super(() => {
+ return getHttpsProxy();
+ }, mustUrlUseProxy(getHttpsProxy), getUrlProxy(getHttpsProxy), _https.default.globalAgent, configuration.socketConnectionTimeout);
+ }
+
+ };
+ const httpsAgent = new BoundHttpsProxyAgent(); // Overriding globalAgent was added in v11.7.
+ // @see https://nodejs.org/uk/blog/release/v11.7.0/
+
+ if (_semver.default.gte(process.version, 'v11.7.0')) {
+ // @see https://github.com/facebook/flow/issues/7670
+ // $FlowFixMe
+ _http.default.globalAgent = httpAgent; // $FlowFixMe
+
+ _https.default.globalAgent = httpsAgent;
+ } // The reason this logic is used in addition to overriding http(s).globalAgent
+ // is because there is no guarantee that we set http(s).globalAgent variable
+ // before an instance of http(s).Agent has been already constructed by someone,
+ // e.g. Stripe SDK creates instances of http(s).Agent at the top-level.
+ // @see https://github.com/gajus/global-agent/pull/13
+ //
+ // We still want to override http(s).globalAgent when possible to enable logic
+ // in `bindHttpMethod`.
+
+
+ if (_semver.default.gte(process.version, 'v10.0.0')) {
+ // $FlowFixMe
+ _http.default.get = (0, _utilities.bindHttpMethod)(httpGet, httpAgent, configuration.forceGlobalAgent); // $FlowFixMe
+
+ _http.default.request = (0, _utilities.bindHttpMethod)(httpRequest, httpAgent, configuration.forceGlobalAgent); // $FlowFixMe
+
+ _https.default.get = (0, _utilities.bindHttpMethod)(httpsGet, httpsAgent, configuration.forceGlobalAgent); // $FlowFixMe
+
+ _https.default.request = (0, _utilities.bindHttpMethod)(httpsRequest, httpsAgent, configuration.forceGlobalAgent);
+ } else {
+ log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored');
+ }
+
+ return proxyController;
+};
+
+var _default = createGlobalProxyAgent;
+exports.default = _default;
+//# sourceMappingURL=createGlobalProxyAgent.js.map \ No newline at end of file
diff --git a/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow b/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow
new file mode 100644
index 0000000..d515a9d
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow
@@ -0,0 +1,197 @@
+// @flow
+
+import http from 'http';
+import https from 'https';
+import {
+ boolean as parseBoolean,
+} from 'boolean';
+import semver from 'semver';
+import Logger from '../Logger';
+import {
+ HttpProxyAgent,
+ HttpsProxyAgent,
+} from '../classes';
+import {
+ UnexpectedStateError,
+} from '../errors';
+import {
+ bindHttpMethod,
+ isUrlMatchingNoProxy,
+ parseProxyUrl,
+} from '../utilities';
+import type {
+ ProxyAgentConfigurationInputType,
+ ProxyAgentConfigurationType,
+} from '../types';
+import createProxyController from './createProxyController';
+
+const httpGet = http.get;
+const httpRequest = http.request;
+const httpsGet = https.get;
+const httpsRequest = https.request;
+
+const log = Logger.child({
+ namespace: 'createGlobalProxyAgent',
+});
+
+const defaultConfigurationInput = {
+ environmentVariableNamespace: undefined,
+ forceGlobalAgent: undefined,
+ socketConnectionTimeout: 60000,
+};
+
+const omitUndefined = (subject) => {
+ const keys = Object.keys(subject);
+
+ const result = {};
+
+ for (const key of keys) {
+ const value = subject[key];
+
+ if (value !== undefined) {
+ result[key] = value;
+ }
+ }
+
+ return result;
+};
+
+const createConfiguration = (configurationInput: ProxyAgentConfigurationInputType): ProxyAgentConfigurationType => {
+ // eslint-disable-next-line no-process-env
+ const environment = process.env;
+
+ const defaultConfiguration = {
+ environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_',
+ forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? parseBoolean(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true,
+ socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout,
+ };
+
+ // $FlowFixMe
+ return {
+ ...defaultConfiguration,
+ ...omitUndefined(configurationInput),
+ };
+};
+
+export default (configurationInput: ProxyAgentConfigurationInputType = defaultConfigurationInput) => {
+ const configuration = createConfiguration(configurationInput);
+
+ const proxyController = createProxyController();
+
+ // eslint-disable-next-line no-process-env
+ proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null;
+
+ // eslint-disable-next-line no-process-env
+ proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null;
+
+ // eslint-disable-next-line no-process-env
+ proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null;
+
+ log.info({
+ configuration,
+ state: proxyController,
+ }, 'global agent has been initialized');
+
+ const mustUrlUseProxy = (getProxy) => {
+ return (url) => {
+ if (!getProxy()) {
+ return false;
+ }
+
+ if (!proxyController.NO_PROXY) {
+ return true;
+ }
+
+ return !isUrlMatchingNoProxy(url, proxyController.NO_PROXY);
+ };
+ };
+
+ const getUrlProxy = (getProxy) => {
+ return () => {
+ const proxy = getProxy();
+
+ if (!proxy) {
+ throw new UnexpectedStateError('HTTP(S) proxy must be configured.');
+ }
+
+ return parseProxyUrl(proxy);
+ };
+ };
+
+ const getHttpProxy = () => {
+ return proxyController.HTTP_PROXY;
+ };
+
+ const BoundHttpProxyAgent = class extends HttpProxyAgent {
+ constructor () {
+ super(
+ () => {
+ return getHttpProxy();
+ },
+ mustUrlUseProxy(getHttpProxy),
+ getUrlProxy(getHttpProxy),
+ http.globalAgent,
+ configuration.socketConnectionTimeout,
+ );
+ }
+ };
+
+ const httpAgent = new BoundHttpProxyAgent();
+
+ const getHttpsProxy = () => {
+ return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY;
+ };
+
+ const BoundHttpsProxyAgent = class extends HttpsProxyAgent {
+ constructor () {
+ super(
+ () => {
+ return getHttpsProxy();
+ },
+ mustUrlUseProxy(getHttpsProxy),
+ getUrlProxy(getHttpsProxy),
+ https.globalAgent,
+ configuration.socketConnectionTimeout,
+ );
+ }
+ };
+
+ const httpsAgent = new BoundHttpsProxyAgent();
+
+ // Overriding globalAgent was added in v11.7.
+ // @see https://nodejs.org/uk/blog/release/v11.7.0/
+ if (semver.gte(process.version, 'v11.7.0')) {
+ // @see https://github.com/facebook/flow/issues/7670
+ // $FlowFixMe
+ http.globalAgent = httpAgent;
+
+ // $FlowFixMe
+ https.globalAgent = httpsAgent;
+ }
+
+ // The reason this logic is used in addition to overriding http(s).globalAgent
+ // is because there is no guarantee that we set http(s).globalAgent variable
+ // before an instance of http(s).Agent has been already constructed by someone,
+ // e.g. Stripe SDK creates instances of http(s).Agent at the top-level.
+ // @see https://github.com/gajus/global-agent/pull/13
+ //
+ // We still want to override http(s).globalAgent when possible to enable logic
+ // in `bindHttpMethod`.
+ if (semver.gte(process.version, 'v10.0.0')) {
+ // $FlowFixMe
+ http.get = bindHttpMethod(httpGet, httpAgent, configuration.forceGlobalAgent);
+
+ // $FlowFixMe
+ http.request = bindHttpMethod(httpRequest, httpAgent, configuration.forceGlobalAgent);
+
+ // $FlowFixMe
+ https.get = bindHttpMethod(httpsGet, httpsAgent, configuration.forceGlobalAgent);
+
+ // $FlowFixMe
+ https.request = bindHttpMethod(httpsRequest, httpsAgent, configuration.forceGlobalAgent);
+ } else {
+ log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored');
+ }
+
+ return proxyController;
+};
diff --git a/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map b/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map
new file mode 100644
index 0000000..00b69f9
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../src/factories/createGlobalProxyAgent.js"],"names":["httpGet","http","get","httpRequest","request","httpsGet","https","httpsRequest","log","Logger","child","namespace","defaultConfigurationInput","environmentVariableNamespace","undefined","forceGlobalAgent","socketConnectionTimeout","omitUndefined","subject","keys","Object","result","key","value","createConfiguration","configurationInput","environment","process","env","defaultConfiguration","GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE","GLOBAL_AGENT_FORCE_GLOBAL_AGENT","GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT","Number","parseInt","configuration","proxyController","HTTP_PROXY","HTTPS_PROXY","NO_PROXY","info","state","mustUrlUseProxy","getProxy","url","getUrlProxy","proxy","UnexpectedStateError","getHttpProxy","BoundHttpProxyAgent","HttpProxyAgent","constructor","globalAgent","httpAgent","getHttpsProxy","BoundHttpsProxyAgent","HttpsProxyAgent","httpsAgent","semver","gte","version","warn"],"mappings":"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","sourcesContent":["// @flow\n\nimport http from 'http';\nimport https from 'https';\nimport {\n boolean as parseBoolean,\n} from 'boolean';\nimport semver from 'semver';\nimport Logger from '../Logger';\nimport {\n HttpProxyAgent,\n HttpsProxyAgent,\n} from '../classes';\nimport {\n UnexpectedStateError,\n} from '../errors';\nimport {\n bindHttpMethod,\n isUrlMatchingNoProxy,\n parseProxyUrl,\n} from '../utilities';\nimport type {\n ProxyAgentConfigurationInputType,\n ProxyAgentConfigurationType,\n} from '../types';\nimport createProxyController from './createProxyController';\n\nconst httpGet = http.get;\nconst httpRequest = http.request;\nconst httpsGet = https.get;\nconst httpsRequest = https.request;\n\nconst log = Logger.child({\n namespace: 'createGlobalProxyAgent',\n});\n\nconst defaultConfigurationInput = {\n environmentVariableNamespace: undefined,\n forceGlobalAgent: undefined,\n socketConnectionTimeout: 60000,\n};\n\nconst omitUndefined = (subject) => {\n const keys = Object.keys(subject);\n\n const result = {};\n\n for (const key of keys) {\n const value = subject[key];\n\n if (value !== undefined) {\n result[key] = value;\n }\n }\n\n return result;\n};\n\nconst createConfiguration = (configurationInput: ProxyAgentConfigurationInputType): ProxyAgentConfigurationType => {\n // eslint-disable-next-line no-process-env\n const environment = process.env;\n\n const defaultConfiguration = {\n environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_',\n forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? parseBoolean(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true,\n socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout,\n };\n\n // $FlowFixMe\n return {\n ...defaultConfiguration,\n ...omitUndefined(configurationInput),\n };\n};\n\nexport default (configurationInput: ProxyAgentConfigurationInputType = defaultConfigurationInput) => {\n const configuration = createConfiguration(configurationInput);\n\n const proxyController = createProxyController();\n\n // eslint-disable-next-line no-process-env\n proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null;\n\n // eslint-disable-next-line no-process-env\n proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null;\n\n // eslint-disable-next-line no-process-env\n proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null;\n\n log.info({\n configuration,\n state: proxyController,\n }, 'global agent has been initialized');\n\n const mustUrlUseProxy = (getProxy) => {\n return (url) => {\n if (!getProxy()) {\n return false;\n }\n\n if (!proxyController.NO_PROXY) {\n return true;\n }\n\n return !isUrlMatchingNoProxy(url, proxyController.NO_PROXY);\n };\n };\n\n const getUrlProxy = (getProxy) => {\n return () => {\n const proxy = getProxy();\n\n if (!proxy) {\n throw new UnexpectedStateError('HTTP(S) proxy must be configured.');\n }\n\n return parseProxyUrl(proxy);\n };\n };\n\n const getHttpProxy = () => {\n return proxyController.HTTP_PROXY;\n };\n\n const BoundHttpProxyAgent = class extends HttpProxyAgent {\n constructor () {\n super(\n () => {\n return getHttpProxy();\n },\n mustUrlUseProxy(getHttpProxy),\n getUrlProxy(getHttpProxy),\n http.globalAgent,\n configuration.socketConnectionTimeout,\n );\n }\n };\n\n const httpAgent = new BoundHttpProxyAgent();\n\n const getHttpsProxy = () => {\n return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY;\n };\n\n const BoundHttpsProxyAgent = class extends HttpsProxyAgent {\n constructor () {\n super(\n () => {\n return getHttpsProxy();\n },\n mustUrlUseProxy(getHttpsProxy),\n getUrlProxy(getHttpsProxy),\n https.globalAgent,\n configuration.socketConnectionTimeout,\n );\n }\n };\n\n const httpsAgent = new BoundHttpsProxyAgent();\n\n // Overriding globalAgent was added in v11.7.\n // @see https://nodejs.org/uk/blog/release/v11.7.0/\n if (semver.gte(process.version, 'v11.7.0')) {\n // @see https://github.com/facebook/flow/issues/7670\n // $FlowFixMe\n http.globalAgent = httpAgent;\n\n // $FlowFixMe\n https.globalAgent = httpsAgent;\n }\n\n // The reason this logic is used in addition to overriding http(s).globalAgent\n // is because there is no guarantee that we set http(s).globalAgent variable\n // before an instance of http(s).Agent has been already constructed by someone,\n // e.g. Stripe SDK creates instances of http(s).Agent at the top-level.\n // @see https://github.com/gajus/global-agent/pull/13\n //\n // We still want to override http(s).globalAgent when possible to enable logic\n // in `bindHttpMethod`.\n if (semver.gte(process.version, 'v10.0.0')) {\n // $FlowFixMe\n http.get = bindHttpMethod(httpGet, httpAgent, configuration.forceGlobalAgent);\n\n // $FlowFixMe\n http.request = bindHttpMethod(httpRequest, httpAgent, configuration.forceGlobalAgent);\n\n // $FlowFixMe\n https.get = bindHttpMethod(httpsGet, httpsAgent, configuration.forceGlobalAgent);\n\n // $FlowFixMe\n https.request = bindHttpMethod(httpsRequest, httpsAgent, configuration.forceGlobalAgent);\n } else {\n log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored');\n }\n\n return proxyController;\n};\n"],"file":"createGlobalProxyAgent.js"} \ No newline at end of file
diff --git a/desktop/node_modules/global-agent/dist/factories/createProxyController.js b/desktop/node_modules/global-agent/dist/factories/createProxyController.js
new file mode 100644
index 0000000..7746081
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/createProxyController.js
@@ -0,0 +1,45 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+
+var _Logger = _interopRequireDefault(require("../Logger"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const log = _Logger.default.child({
+ namespace: 'createProxyController'
+});
+
+const KNOWN_PROPERTY_NAMES = ['HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY'];
+
+const createProxyController = () => {
+ // eslint-disable-next-line fp/no-proxy
+ return new Proxy({
+ HTTP_PROXY: null,
+ HTTPS_PROXY: null,
+ NO_PROXY: null
+ }, {
+ set: (subject, name, value) => {
+ if (!KNOWN_PROPERTY_NAMES.includes(name)) {
+ throw new Error('Cannot set an unmapped property "' + name + '".');
+ }
+
+ subject[name] = value;
+ log.info({
+ change: {
+ name,
+ value
+ },
+ newConfiguration: subject
+ }, 'configuration changed');
+ return true;
+ }
+ });
+};
+
+var _default = createProxyController;
+exports.default = _default;
+//# sourceMappingURL=createProxyController.js.map \ No newline at end of file
diff --git a/desktop/node_modules/global-agent/dist/factories/createProxyController.js.flow b/desktop/node_modules/global-agent/dist/factories/createProxyController.js.flow
new file mode 100644
index 0000000..5805ec8
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/createProxyController.js.flow
@@ -0,0 +1,46 @@
+// @flow
+
+import Logger from '../Logger';
+
+type ProxyControllerType = {|
+ HTTP_PROXY: string | null,
+ HTTPS_PROXY: string | null,
+ NO_PROXY: string | null,
+|};
+
+const log = Logger.child({
+ namespace: 'createProxyController',
+});
+
+const KNOWN_PROPERTY_NAMES = [
+ 'HTTP_PROXY',
+ 'HTTPS_PROXY',
+ 'NO_PROXY',
+];
+
+export default (): ProxyControllerType => {
+ // eslint-disable-next-line fp/no-proxy
+ return new Proxy({
+ HTTP_PROXY: null,
+ HTTPS_PROXY: null,
+ NO_PROXY: null,
+ }, {
+ set: (subject, name, value) => {
+ if (!KNOWN_PROPERTY_NAMES.includes(name)) {
+ throw new Error('Cannot set an unmapped property "' + name + '".');
+ }
+
+ subject[name] = value;
+
+ log.info({
+ change: {
+ name,
+ value,
+ },
+ newConfiguration: subject,
+ }, 'configuration changed');
+
+ return true;
+ },
+ });
+};
diff --git a/desktop/node_modules/global-agent/dist/factories/createProxyController.js.map b/desktop/node_modules/global-agent/dist/factories/createProxyController.js.map
new file mode 100644
index 0000000..da7b0e7
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/createProxyController.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../src/factories/createProxyController.js"],"names":["log","Logger","child","namespace","KNOWN_PROPERTY_NAMES","Proxy","HTTP_PROXY","HTTPS_PROXY","NO_PROXY","set","subject","name","value","includes","Error","info","change","newConfiguration"],"mappings":";;;;;;;AAEA;;;;AAQA,MAAMA,GAAG,GAAGC,gBAAOC,KAAP,CAAa;AACvBC,EAAAA,SAAS,EAAE;AADY,CAAb,CAAZ;;AAIA,MAAMC,oBAAoB,GAAG,CAC3B,YAD2B,EAE3B,aAF2B,EAG3B,UAH2B,CAA7B;;oCAM0C;AACxC;AACA,SAAO,IAAIC,KAAJ,CAAU;AACfC,IAAAA,UAAU,EAAE,IADG;AAEfC,IAAAA,WAAW,EAAE,IAFE;AAGfC,IAAAA,QAAQ,EAAE;AAHK,GAAV,EAIJ;AACDC,IAAAA,GAAG,EAAE,CAACC,OAAD,EAAUC,IAAV,EAAgBC,KAAhB,KAA0B;AAC7B,UAAI,CAACR,oBAAoB,CAACS,QAArB,CAA8BF,IAA9B,CAAL,EAA0C;AACxC,cAAM,IAAIG,KAAJ,CAAU,sCAAsCH,IAAtC,GAA6C,IAAvD,CAAN;AACD;;AAEDD,MAAAA,OAAO,CAACC,IAAD,CAAP,GAAgBC,KAAhB;AAEAZ,MAAAA,GAAG,CAACe,IAAJ,CAAS;AACPC,QAAAA,MAAM,EAAE;AACNL,UAAAA,IADM;AAENC,UAAAA;AAFM,SADD;AAKPK,QAAAA,gBAAgB,EAAEP;AALX,OAAT,EAMG,uBANH;AAQA,aAAO,IAAP;AACD;AAjBA,GAJI,CAAP;AAuBD,C","sourcesContent":["// @flow\n\nimport Logger from '../Logger';\n\ntype ProxyControllerType = {|\n HTTP_PROXY: string | null,\n HTTPS_PROXY: string | null,\n NO_PROXY: string | null,\n|};\n\nconst log = Logger.child({\n namespace: 'createProxyController',\n});\n\nconst KNOWN_PROPERTY_NAMES = [\n 'HTTP_PROXY',\n 'HTTPS_PROXY',\n 'NO_PROXY',\n];\n\nexport default (): ProxyControllerType => {\n // eslint-disable-next-line fp/no-proxy\n return new Proxy({\n HTTP_PROXY: null,\n HTTPS_PROXY: null,\n NO_PROXY: null,\n }, {\n set: (subject, name, value) => {\n if (!KNOWN_PROPERTY_NAMES.includes(name)) {\n throw new Error('Cannot set an unmapped property \"' + name + '\".');\n }\n\n subject[name] = value;\n\n log.info({\n change: {\n name,\n value,\n },\n newConfiguration: subject,\n }, 'configuration changed');\n\n return true;\n },\n });\n};\n"],"file":"createProxyController.js"} \ No newline at end of file
diff --git a/desktop/node_modules/global-agent/dist/factories/index.js b/desktop/node_modules/global-agent/dist/factories/index.js
new file mode 100644
index 0000000..3193022
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/index.js
@@ -0,0 +1,24 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+Object.defineProperty(exports, "createGlobalProxyAgent", {
+ enumerable: true,
+ get: function () {
+ return _createGlobalProxyAgent.default;
+ }
+});
+Object.defineProperty(exports, "createProxyController", {
+ enumerable: true,
+ get: function () {
+ return _createProxyController.default;
+ }
+});
+
+var _createGlobalProxyAgent = _interopRequireDefault(require("./createGlobalProxyAgent"));
+
+var _createProxyController = _interopRequireDefault(require("./createProxyController"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/desktop/node_modules/global-agent/dist/factories/index.js.flow b/desktop/node_modules/global-agent/dist/factories/index.js.flow
new file mode 100644
index 0000000..c16eca6
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/index.js.flow
@@ -0,0 +1,4 @@
+// @flow
+
+export {default as createGlobalProxyAgent} from './createGlobalProxyAgent';
+export {default as createProxyController} from './createProxyController';
diff --git a/desktop/node_modules/global-agent/dist/factories/index.js.map b/desktop/node_modules/global-agent/dist/factories/index.js.map
new file mode 100644
index 0000000..2e61240
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/factories/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../src/factories/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;;AACA","sourcesContent":["// @flow\n\nexport {default as createGlobalProxyAgent} from './createGlobalProxyAgent';\nexport {default as createProxyController} from './createProxyController';\n"],"file":"index.js"} \ No newline at end of file