Files
formipay/node_modules/@sentry/utils/dist/dsn.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
3.7 KiB
JavaScript

Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var error_1 = require("./error");
var flags_1 = require("./flags");
/** Regular expression used to parse a Dsn. */
var DSN_REGEX = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/;
function isValidProtocol(protocol) {
return protocol === 'http' || protocol === 'https';
}
/**
* Renders the string representation of this Dsn.
*
* By default, this will render the public representation without the password
* component. To get the deprecated private representation, set `withPassword`
* to true.
*
* @param withPassword When set to true, the password will be included.
*/
function dsnToString(dsn, withPassword) {
if (withPassword === void 0) { withPassword = false; }
var host = dsn.host, path = dsn.path, pass = dsn.pass, port = dsn.port, projectId = dsn.projectId, protocol = dsn.protocol, publicKey = dsn.publicKey;
return (protocol + "://" + publicKey + (withPassword && pass ? ":" + pass : '') +
("@" + host + (port ? ":" + port : '') + "/" + (path ? path + "/" : path) + projectId));
}
exports.dsnToString = dsnToString;
function dsnFromString(str) {
var match = DSN_REGEX.exec(str);
if (!match) {
throw new error_1.SentryError("Invalid Sentry Dsn: " + str);
}
var _a = tslib_1.__read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];
var path = '';
var projectId = lastPath;
var split = projectId.split('/');
if (split.length > 1) {
path = split.slice(0, -1).join('/');
projectId = split.pop();
}
if (projectId) {
var projectMatch = projectId.match(/^\d+/);
if (projectMatch) {
projectId = projectMatch[0];
}
}
return dsnFromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });
}
function dsnFromComponents(components) {
// TODO this is for backwards compatibility, and can be removed in a future version
if ('user' in components && !('publicKey' in components)) {
components.publicKey = components.user;
}
return {
user: components.publicKey || '',
protocol: components.protocol,
publicKey: components.publicKey || '',
pass: components.pass || '',
host: components.host,
port: components.port || '',
path: components.path || '',
projectId: components.projectId,
};
}
function validateDsn(dsn) {
if (!flags_1.IS_DEBUG_BUILD) {
return;
}
var port = dsn.port, projectId = dsn.projectId, protocol = dsn.protocol;
var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];
requiredComponents.forEach(function (component) {
if (!dsn[component]) {
throw new error_1.SentryError("Invalid Sentry Dsn: " + component + " missing");
}
});
if (!projectId.match(/^\d+$/)) {
throw new error_1.SentryError("Invalid Sentry Dsn: Invalid projectId " + projectId);
}
if (!isValidProtocol(protocol)) {
throw new error_1.SentryError("Invalid Sentry Dsn: Invalid protocol " + protocol);
}
if (port && isNaN(parseInt(port, 10))) {
throw new error_1.SentryError("Invalid Sentry Dsn: Invalid port " + port);
}
return true;
}
/** The Sentry Dsn, identifying a Sentry instance and project. */
function makeDsn(from) {
var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);
validateDsn(components);
return components;
}
exports.makeDsn = makeDsn;
//# sourceMappingURL=dsn.js.map