diff options
| author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2026-10-16 07:26:43 +0000 |
|---|---|---|
| committer | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2026-10-16 07:26:43 +0000 |
| commit | c7014257244268156d1fdf408b99bb7c87f70760 (patch) | |
| tree | 52e64b5736eba3335e7ff028d046fb1cc2fb4ff0 /src | |
| parent | bump dependencies (diff) | |
| download | wireguard-config-c7014257244268156d1fdf408b99bb7c87f70760.tar.gz wireguard-config-c7014257244268156d1fdf408b99bb7c87f70760.zip | |
bump dependencies
Diffstat (limited to '')
| -rw-r--r-- | src/assets/js/bundle.js | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/assets/js/bundle.js b/src/assets/js/bundle.js index a3851c8..c028771 100644 --- a/src/assets/js/bundle.js +++ b/src/assets/js/bundle.js @@ -911,10 +911,13 @@ class Address6 { if (/\//.test(address)) { throw new address_error_1.AddressError('Invalid subnet mask.'); } - const zone = constants6.RE_ZONE_STRING.exec(address); - if (zone) { - this.zone = zone[0]; - address = address.replace(constants6.RE_ZONE_STRING, ''); + // A zone runs from the first `%` to the end of the input and holds no line + // terminator. Finding it by index reads the input once, where matching + // RE_ZONE_STRING retries from every `%` that a line terminator disqualifies. + const zoneStart = address.indexOf('%'); + if (zoneStart !== -1 && /^.*$/.test(address.slice(zoneStart))) { + this.zone = address.slice(zoneStart); + address = address.slice(0, zoneStart); } // The longest well-formed address is all but the last two groups written // as four hex digits with their colons, then a 15-character dotted quad: @@ -2364,6 +2367,9 @@ exports.RE_SUBNET_STRING = /\/\d{1,3}(?=%|$)/; * A regular expression that matches an IPv6 zone * @memberof Address6 * @static + * @deprecated Takes quadratic time on input holding many `%` characters + * followed by a line terminator. The library finds the zone by index, as + * `Address6`'s constructor shows, and 11.0.0 removes this export. */ exports.RE_ZONE_STRING = /%.*$/; exports.RE_URL = /^(?:\[([0-9a-f:.]+)\]|([0-9a-f:.]+))(?:[/?#].*)?$/i; |
