{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/v6/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const BITS = 128;\nexport const GROUPS = 8;\n\n/**\n * Represents IPv6 address scopes\n * @memberof Address6\n * @static\n */\nexport const SCOPES: { [key: number]: string | undefined } = {\n 0: 'Reserved',\n 1: 'Interface local',\n 2: 'Link local',\n 4: 'Admin local',\n 5: 'Site local',\n 8: 'Organization local',\n 14: 'Global',\n 15: 'Reserved',\n} as const;\n\n/**\n * Represents IPv6 address types\n * @memberof Address6\n * @static\n */\nexport const TYPES: { [key: string]: string | undefined } = {\n 'ff01::1/128': 'Multicast (All nodes on this interface)',\n 'ff01::2/128': 'Multicast (All routers on this interface)',\n 'ff02::1/128': 'Multicast (All nodes on this link)',\n 'ff02::2/128': 'Multicast (All routers on this link)',\n 'ff05::2/128': 'Multicast (All routers in this site)',\n 'ff02::5/128': 'Multicast (OSPFv3 AllSPF routers)',\n 'ff02::6/128': 'Multicast (OSPFv3 AllDR routers)',\n 'ff02::9/128': 'Multicast (RIP routers)',\n 'ff02::a/128': 'Multicast (EIGRP routers)',\n 'ff02::d/128': 'Multicast (PIM routers)',\n 'ff02::16/128': 'Multicast (MLDv2 reports)',\n 'ff01::fb/128': 'Multicast (mDNSv6)',\n 'ff02::fb/128': 'Multicast (mDNSv6)',\n 'ff05::fb/128': 'Multicast (mDNSv6)',\n 'ff02::1:2/128': 'Multicast (All DHCP servers and relay agents on this link)',\n 'ff05::1:2/128': 'Multicast (All DHCP servers and relay agents in this site)',\n 'ff02::1:3/128': 'Multicast (All DHCP servers on this link)',\n 'ff05::1:3/128': 'Multicast (All DHCP servers in this site)',\n '::/128': 'Unspecified',\n '::1/128': 'Loopback',\n '::ffff:0:0/96': 'IPv4-mapped',\n 'ff00::/8': 'Multicast',\n 'fe80::/10': 'Link-local unicast',\n 'fc00::/7': 'Unique local',\n '2001::/32': 'Teredo',\n '2001:2::/48': 'Benchmarking',\n '2002::/16': '6to4',\n '2001:db8::/32': 'Documentation',\n '3fff::/20': 'Documentation',\n '100::/64': 'Discard-only',\n 'fec0::/10': 'Site-local unicast (deprecated)',\n '::/96': 'IPv4-compatible (deprecated)',\n '64:ff9b::/96': 'NAT64 (well-known)',\n '64:ff9b:1::/48': 'NAT64 (local-use)',\n} as const;\n\n/**\n * A regular expression that matches bad characters in an IPv6 address\n * @memberof Address6\n * @static\n */\nexport const RE_BAD_CHARACTERS = /([^0-9a-f:/%])/gi;\n\n/**\n * A regular expression that matches an incorrect IPv6 address\n * @memberof Address6\n * @static\n */\nexport const RE_BAD_ADDRESS = /([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\\/$)/gi;\n\n/**\n * A regular expression that matches an IPv6 subnet\n * @memberof Address6\n * @static\n */\nexport const RE_SUBNET_STRING = /\\/\\d{1,3}(?=%|$)/;\n\n/**\n * A regular expression that matches an IPv6 zone\n * @memberof Address6\n * @static\n * @deprecated Takes quadratic time on input holding many `%` characters\n * followed by a line terminator. The library finds the zone by index, as\n * `Address6`'s constructor shows, and 11.0.0 removes this export.\n */\nexport const RE_ZONE_STRING = /%.*$/;\n\nexport const RE_URL = /^(?:\\[([0-9a-f:.]+)\\]|([0-9a-f:.]+))(?:[/?#].*)?$/i;\nexport const RE_URL_WITH_PORT = /^\\[([0-9a-f:.]+)\\]:([0-9]{1,5})(?:[/?#].*)?$/i;\n\n/**\n * The IANA IPv6 Special-Purpose Address Registry\n * (https://www.iana.org/assignments/iana-ipv6-special-registry/), one entry\n * per block: `[cidr, name, globallyReachable]`. A `null` reachability means\n * the registry says N/A or leaves the column blank; N/A blocks (Teredo, 6to4)\n * are treated as not globally reachable, since a packet to one needs a relay,\n * and blank blocks inherit the answer of the block containing them.\n *\n * `Address6.isGlobal()` answers from the most specific entry containing the\n * address, after delegating IPv4-mapped and NAT64 well-known addresses to the\n * embedded IPv4 address. `test/data/iana-corpus.json` is generated from the\n * registry's CSV and pins this table to it.\n */\nexport const SPECIAL_PURPOSE: ReadonlyArray = [\n ['::1/128', 'Loopback Address', false],\n ['::/128', 'Unspecified Address', false],\n ['::ffff:0:0/96', 'IPv4-mapped Address', false],\n ['64:ff9b::/96', 'IPv4-IPv6 Translat.', true],\n ['64:ff9b:1::/48', 'IPv4-IPv6 Translat.', false],\n ['100::/64', 'Discard-Only Address Block', false],\n ['100:0:0:1::/64', 'Dummy IPv6 Prefix', false],\n ['2001::/23', 'IETF Protocol Assignments', false],\n ['2001::/32', 'TEREDO', false],\n ['2001:1::1/128', 'Port Control Protocol Anycast', true],\n ['2001:1::2/128', 'Traversal Using Relays around NAT Anycast', true],\n ['2001:1::3/128', 'DNS-SD Service Registration Protocol Anycast', true],\n ['2001:2::/48', 'Benchmarking', false],\n ['2001:3::/32', 'AMT', true],\n ['2001:4:112::/48', 'AS112-v6', true],\n ['2001:10::/28', 'Deprecated (previously ORCHID)', null],\n ['2001:20::/28', 'ORCHIDv2', true],\n ['2001:30::/28', 'Drone Remote ID Protocol Entity Tags (DETs) Prefix', true],\n ['2001:db8::/32', 'Documentation', false],\n ['2002::/16', '6to4', false],\n ['2620:4f:8000::/48', 'Direct Delegation AS112 Service', true],\n ['3fff::/20', 'Documentation', false],\n ['5f00::/16', 'Segment Routing (SRv6) SIDs', false],\n ['fc00::/7', 'Unique-Local', false],\n ['fe80::/10', 'Link-Local Unicast', false],\n];\n"]}