Buckets:
| ; | |
| var __defProp = Object.defineProperty; | |
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | |
| var __getOwnPropNames = Object.getOwnPropertyNames; | |
| var __hasOwnProp = Object.prototype.hasOwnProperty; | |
| var __export = (target, all) => { | |
| for (var name in all) | |
| __defProp(target, name, { get: all[name], enumerable: true }); | |
| }; | |
| var __copyProps = (to, from, except, desc) => { | |
| if (from && typeof from === "object" || typeof from === "function") { | |
| for (let key of __getOwnPropNames(from)) | |
| if (!__hasOwnProp.call(to, key) && key !== except) | |
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | |
| } | |
| return to; | |
| }; | |
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | |
| var ipaddr_exports = {}; | |
| __export(ipaddr_exports, { | |
| convertIPv4BinaryToString: () => convertIPv4BinaryToString, | |
| convertIPv4ToBinary: () => convertIPv4ToBinary, | |
| convertIPv6BinaryToString: () => convertIPv6BinaryToString, | |
| convertIPv6ToBinary: () => convertIPv6ToBinary, | |
| distinctRemoteAddr: () => distinctRemoteAddr, | |
| expandIPv6: () => expandIPv6 | |
| }); | |
| module.exports = __toCommonJS(ipaddr_exports); | |
| const expandIPv6 = (ipV6) => { | |
| const sections = ipV6.split(":"); | |
| if (IPV4_REGEX.test(sections.at(-1))) { | |
| sections.splice( | |
| -1, | |
| 1, | |
| ...convertIPv6BinaryToString(convertIPv4ToBinary(sections.at(-1))).substring(2).split(":") | |
| // => ['7f00', '0001'] | |
| ); | |
| } | |
| for (let i = 0; i < sections.length; i++) { | |
| const node = sections[i]; | |
| if (node !== "") { | |
| sections[i] = node.padStart(4, "0"); | |
| } else { | |
| sections[i + 1] === "" && sections.splice(i + 1, 1); | |
| sections[i] = new Array(8 - sections.length + 1).fill("0000").join(":"); | |
| } | |
| } | |
| return sections.join(":"); | |
| }; | |
| const IPV4_OCTET_PART = "(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])"; | |
| const IPV4_REGEX = new RegExp(`^(?:${IPV4_OCTET_PART}\\.){3}${IPV4_OCTET_PART}$`); | |
| const distinctRemoteAddr = (remoteAddr) => { | |
| if (IPV4_REGEX.test(remoteAddr)) { | |
| return "IPv4"; | |
| } | |
| if (remoteAddr.includes(":")) { | |
| return "IPv6"; | |
| } | |
| }; | |
| const convertIPv4ToBinary = (ipv4) => { | |
| const parts = ipv4.split("."); | |
| let result = 0n; | |
| for (let i = 0; i < 4; i++) { | |
| result <<= 8n; | |
| result += BigInt(parts[i]); | |
| } | |
| return result; | |
| }; | |
| const convertIPv6ToBinary = (ipv6) => { | |
| const sections = expandIPv6(ipv6).split(":"); | |
| let result = 0n; | |
| for (let i = 0; i < 8; i++) { | |
| result <<= 16n; | |
| result += BigInt(parseInt(sections[i], 16)); | |
| } | |
| return result; | |
| }; | |
| const convertIPv4BinaryToString = (ipV4) => { | |
| const sections = []; | |
| for (let i = 0; i < 4; i++) { | |
| sections.push(ipV4 >> BigInt(8 * (3 - i)) & 0xffn); | |
| } | |
| return sections.join("."); | |
| }; | |
| const convertIPv6BinaryToString = (ipV6) => { | |
| if (ipV6 >> 32n === 0xffffn) { | |
| return `::ffff:${convertIPv4BinaryToString(ipV6 & 0xffffffffn)}`; | |
| } | |
| const sections = []; | |
| for (let i = 0; i < 8; i++) { | |
| sections.push((ipV6 >> BigInt(16 * (7 - i)) & 0xffffn).toString(16)); | |
| } | |
| let currentZeroStart = -1; | |
| let maxZeroStart = -1; | |
| let maxZeroEnd = -1; | |
| for (let i = 0; i < 8; i++) { | |
| if (sections[i] === "0") { | |
| if (currentZeroStart === -1) { | |
| currentZeroStart = i; | |
| } | |
| } else { | |
| if (currentZeroStart > -1) { | |
| if (i - currentZeroStart > maxZeroEnd - maxZeroStart) { | |
| maxZeroStart = currentZeroStart; | |
| maxZeroEnd = i; | |
| } | |
| currentZeroStart = -1; | |
| } | |
| } | |
| } | |
| if (currentZeroStart > -1) { | |
| if (8 - currentZeroStart > maxZeroEnd - maxZeroStart) { | |
| maxZeroStart = currentZeroStart; | |
| maxZeroEnd = 8; | |
| } | |
| } | |
| if (maxZeroStart !== -1) { | |
| sections.splice(maxZeroStart, maxZeroEnd - maxZeroStart, ":"); | |
| } | |
| return sections.join(":").replace(/:{2,}/g, "::"); | |
| }; | |
| // Annotate the CommonJS export names for ESM import in node: | |
| 0 && (module.exports = { | |
| convertIPv4BinaryToString, | |
| convertIPv4ToBinary, | |
| convertIPv6BinaryToString, | |
| convertIPv6ToBinary, | |
| distinctRemoteAddr, | |
| expandIPv6 | |
| }); | |
Xet Storage Details
- Size:
- 4.06 kB
- Xet hash:
- e721291b66ef73f5a45278b9c6bfc8c2d7a1584a407d48bda311e6c7dd938b38
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.