Files
formipay/node_modules/@sentry/node/dist/transports/new.js
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 17:02:14 +07:00

92 lines
4.2 KiB
JavaScript

Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@sentry/core");
var utils_1 = require("@sentry/utils");
var http = require("http");
var https = require("https");
var url_1 = require("url");
/**
* Creates a Transport that uses native the native 'http' and 'https' modules to send events to Sentry.
*/
function makeNodeTransport(options) {
var _a;
var urlSegments = new url_1.URL(options.url);
var isHttps = urlSegments.protocol === 'https:';
// Proxy prioritization: http => `options.proxy` | `process.env.http_proxy`
// Proxy prioritization: https => `options.proxy` | `process.env.https_proxy` | `process.env.http_proxy`
var proxy = applyNoProxyOption(urlSegments, options.proxy || (isHttps ? process.env.https_proxy : undefined) || process.env.http_proxy);
var nativeHttpModule = isHttps ? https : http;
// TODO(v7): Evaluate if we can set keepAlive to true. This would involve testing for memory leaks in older node
// versions(>= 8) as they had memory leaks when using it: #2555
var agent = proxy
? new (require('https-proxy-agent'))(proxy)
: new nativeHttpModule.Agent({ keepAlive: false, maxSockets: 30, timeout: 2000 });
var requestExecutor = createRequestExecutor(options, (_a = options.httpModule, (_a !== null && _a !== void 0 ? _a : nativeHttpModule)), agent);
return core_1.createTransport({ bufferSize: options.bufferSize }, requestExecutor);
}
exports.makeNodeTransport = makeNodeTransport;
/**
* Honors the `no_proxy` env variable with the highest priority to allow for hosts exclusion.
*
* @param transportUrl The URL the transport intends to send events to.
* @param proxy The client configured proxy.
* @returns A proxy the transport should use.
*/
function applyNoProxyOption(transportUrlSegments, proxy) {
var no_proxy = process.env.no_proxy;
var urlIsExemptFromProxy = no_proxy &&
no_proxy
.split(',')
.some(function (exemption) { return transportUrlSegments.host.endsWith(exemption) || transportUrlSegments.hostname.endsWith(exemption); });
if (urlIsExemptFromProxy) {
return undefined;
}
else {
return proxy;
}
}
/**
* Creates a RequestExecutor to be used with `createTransport`.
*/
function createRequestExecutor(options, httpModule, agent) {
var _a = new url_1.URL(options.url), hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;
return function makeRequest(request) {
return new Promise(function (resolve, reject) {
var req = httpModule.request({
method: 'POST',
agent: agent,
headers: options.headers,
hostname: hostname,
path: "" + pathname + search,
port: port,
protocol: protocol,
ca: options.caCerts,
}, function (res) {
var _a, _b, _c;
res.on('data', function () {
// Drain socket
});
res.on('end', function () {
// Drain socket
});
var statusCode = (_a = res.statusCode, (_a !== null && _a !== void 0 ? _a : 500));
var status = utils_1.eventStatusFromHttpCode(statusCode);
res.setEncoding('utf8');
// "Key-value pairs of header names and values. Header names are lower-cased."
// https://nodejs.org/api/http.html#http_message_headers
var retryAfterHeader = (_b = res.headers['retry-after'], (_b !== null && _b !== void 0 ? _b : null));
var rateLimitsHeader = (_c = res.headers['x-sentry-rate-limits'], (_c !== null && _c !== void 0 ? _c : null));
resolve({
headers: {
'retry-after': retryAfterHeader,
'x-sentry-rate-limits': Array.isArray(rateLimitsHeader) ? rateLimitsHeader[0] : rateLimitsHeader,
},
reason: status,
statusCode: statusCode,
});
});
req.on('error', reject);
req.end(request.body);
});
};
}
//# sourceMappingURL=new.js.map