UNPKG

@linode/api-v4

Version:
1,266 lines (1,260 loc) 936 kB
"use strict"; (() => { var __create = Object.create; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name); var __typeError = (msg) => { throw TypeError(msg); }; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x + '" is not supported'); }); var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all3) => { for (var name in all3) __defProp(target, name, { get: all3[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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; var __await = function(promise, isYieldStar) { this[0] = promise; this[1] = isYieldStar; }; var __asyncGenerator = (__this, __arguments, generator) => { var resume = (k, v, yes, no) => { try { var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done; Promise.resolve(isAwait ? v[0] : v).then((y) => isAwait ? resume(k === "return" ? k : "next", v[1] ? { done: y.done, value: y.value } : y, yes, no) : yes({ value: y, done })).catch((e) => resume("throw", e, yes, no)); } catch (e) { no(e); } }, method = (k) => it[k] = (x) => new Promise((yes, no) => resume(k, x, yes, no)), it = {}; return generator = generator.apply(__this, __arguments), it[__knownSymbol("asyncIterator")] = () => it, method("next"), method("throw"), method("return"), it; }; var __yieldStar = (value) => { var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {}; if (obj == null) { obj = value[__knownSymbol("iterator")](); method = (k) => it[k] = (x) => obj[k](x); } else { obj = obj.call(value); method = (k) => it[k] = (v) => { if (isAwait) { isAwait = false; if (k === "throw") throw v; return v; } isAwait = true; return { done: false, value: new __await(new Promise((resolve) => { var x = obj[k](v); if (!(x instanceof Object)) __typeError("Object expected"); resolve(x); }), 1) }; }; } return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => { throw x; }, "return" in obj && method("return"), it; }; var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it); // ../../node_modules/.pnpm/property-expr@2.0.6/node_modules/property-expr/index.js var require_property_expr = __commonJS({ "../../node_modules/.pnpm/property-expr@2.0.6/node_modules/property-expr/index.js"(exports, module) { "use strict"; function Cache(maxSize) { this._maxSize = maxSize; this.clear(); } Cache.prototype.clear = function() { this._size = 0; this._values = /* @__PURE__ */ Object.create(null); }; Cache.prototype.get = function(key) { return this._values[key]; }; Cache.prototype.set = function(key, value) { this._size >= this._maxSize && this.clear(); if (!(key in this._values)) this._size++; return this._values[key] = value; }; var SPLIT_REGEX = /[^.^\]^[]+|(?=\[\]|\.\.)/g; var DIGIT_REGEX = /^\d+$/; var LEAD_DIGIT_REGEX = /^\d/; var SPEC_CHAR_REGEX = /[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g; var CLEAN_QUOTES_REGEX = /^\s*(['"]?)(.*?)(\1)\s*$/; var MAX_CACHE_SIZE = 512; var pathCache = new Cache(MAX_CACHE_SIZE); var setCache = new Cache(MAX_CACHE_SIZE); var getCache = new Cache(MAX_CACHE_SIZE); module.exports = { Cache, split: split2, normalizePath: normalizePath2, setter: function(path) { var parts = normalizePath2(path); return setCache.get(path) || setCache.set(path, function setter(obj, value) { var index = 0; var len = parts.length; var data = obj; while (index < len - 1) { var part = parts[index]; if (part === "__proto__" || part === "constructor" || part === "prototype") { return obj; } data = data[parts[index++]]; } data[parts[index]] = value; }); }, getter: function(path, safe) { var parts = normalizePath2(path); return getCache.get(path) || getCache.set(path, function getter2(data) { var index = 0, len = parts.length; while (index < len) { if (data != null || !safe) data = data[parts[index++]]; else return; } return data; }); }, join: function(segments) { return segments.reduce(function(path, part) { return path + (isQuoted(part) || DIGIT_REGEX.test(part) ? "[" + part + "]" : (path ? "." : "") + part); }, ""); }, forEach: function(path, cb, thisArg) { forEach3(Array.isArray(path) ? path : split2(path), cb, thisArg); } }; function normalizePath2(path) { return pathCache.get(path) || pathCache.set( path, split2(path).map(function(part) { return part.replace(CLEAN_QUOTES_REGEX, "$2"); }) ); } function split2(path) { return path.match(SPLIT_REGEX) || [""]; } function forEach3(parts, iter, thisArg) { var len = parts.length, part, idx, isArray2, isBracket; for (idx = 0; idx < len; idx++) { part = parts[idx]; if (part) { if (shouldBeQuoted(part)) { part = '"' + part + '"'; } isBracket = isQuoted(part); isArray2 = !isBracket && /^\d+$/.test(part); iter.call(thisArg, part, isBracket, isArray2, idx, parts); } } } function isQuoted(str) { return typeof str === "string" && str && ["'", '"'].indexOf(str.charAt(0)) !== -1; } function hasLeadingNumber(part) { return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX); } function hasSpecialChars(part) { return SPEC_CHAR_REGEX.test(part); } function shouldBeQuoted(part) { return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part)); } } }); // ../../node_modules/.pnpm/tiny-case@1.0.3/node_modules/tiny-case/index.js var require_tiny_case = __commonJS({ "../../node_modules/.pnpm/tiny-case@1.0.3/node_modules/tiny-case/index.js"(exports, module) { "use strict"; var reWords = /[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g; var words = (str) => str.match(reWords) || []; var upperFirst = (str) => str[0].toUpperCase() + str.slice(1); var join2 = (str, d) => words(str).join(d).toLowerCase(); var camelCase2 = (str) => words(str).reduce( (acc, next) => `${acc}${!acc ? next.toLowerCase() : next[0].toUpperCase() + next.slice(1).toLowerCase()}`, "" ); var pascalCase = (str) => upperFirst(camelCase2(str)); var snakeCase2 = (str) => join2(str, "_"); var kebabCase = (str) => join2(str, "-"); var sentenceCase = (str) => upperFirst(join2(str, " ")); var titleCase = (str) => words(str).map(upperFirst).join(" "); module.exports = { words, upperFirst, camelCase: camelCase2, pascalCase, snakeCase: snakeCase2, kebabCase, sentenceCase, titleCase }; } }); // ../../node_modules/.pnpm/toposort@2.0.2/node_modules/toposort/index.js var require_toposort = __commonJS({ "../../node_modules/.pnpm/toposort@2.0.2/node_modules/toposort/index.js"(exports, module) { "use strict"; module.exports = function(edges) { return toposort2(uniqueNodes(edges), edges); }; module.exports.array = toposort2; function toposort2(nodes, edges) { var cursor = nodes.length, sorted = new Array(cursor), visited = {}, i = cursor, outgoingEdges = makeOutgoingEdges(edges), nodesHash = makeNodesHash(nodes); edges.forEach(function(edge) { if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) { throw new Error("Unknown node. There is an unknown node in the supplied edges."); } }); while (i--) { if (!visited[i]) visit(nodes[i], i, /* @__PURE__ */ new Set()); } return sorted; function visit(node, i2, predecessors) { if (predecessors.has(node)) { var nodeRep; try { nodeRep = ", node was:" + JSON.stringify(node); } catch (e) { nodeRep = ""; } throw new Error("Cyclic dependency" + nodeRep); } if (!nodesHash.has(node)) { throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: " + JSON.stringify(node)); } if (visited[i2]) return; visited[i2] = true; var outgoing = outgoingEdges.get(node) || /* @__PURE__ */ new Set(); outgoing = Array.from(outgoing); if (i2 = outgoing.length) { predecessors.add(node); do { var child = outgoing[--i2]; visit(child, nodesHash.get(child), predecessors); } while (i2); predecessors.delete(node); } sorted[--cursor] = node; } } function uniqueNodes(arr) { var res = /* @__PURE__ */ new Set(); for (var i = 0, len = arr.length; i < len; i++) { var edge = arr[i]; res.add(edge[0]); res.add(edge[1]); } return Array.from(res); } function makeOutgoingEdges(arr) { var edges = /* @__PURE__ */ new Map(); for (var i = 0, len = arr.length; i < len; i++) { var edge = arr[i]; if (!edges.has(edge[0])) edges.set(edge[0], /* @__PURE__ */ new Set()); if (!edges.has(edge[1])) edges.set(edge[1], /* @__PURE__ */ new Set()); edges.get(edge[0]).add(edge[1]); } return edges; } function makeNodesHash(arr) { var res = /* @__PURE__ */ new Map(); for (var i = 0, len = arr.length; i < len; i++) { res.set(arr[i], i); } return res; } } }); // ../../node_modules/.pnpm/ipaddr.js@2.2.0/node_modules/ipaddr.js/lib/ipaddr.js var require_ipaddr = __commonJS({ "../../node_modules/.pnpm/ipaddr.js@2.2.0/node_modules/ipaddr.js/lib/ipaddr.js"(exports, module) { "use strict"; (function(root) { "use strict"; const ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; const ipv4Regexes = { fourOctet: new RegExp(`^${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}$`, "i"), threeOctet: new RegExp(`^${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}$`, "i"), twoOctet: new RegExp(`^${ipv4Part}\\.${ipv4Part}$`, "i"), longValue: new RegExp(`^${ipv4Part}$`, "i") }; const octalRegex = new RegExp(`^0[0-7]+$`, "i"); const hexRegex = new RegExp(`^0x[a-f0-9]+$`, "i"); const zoneIndex = "%[0-9a-z]{1,}"; const ipv6Part = "(?:[0-9a-f]+::?)+"; const ipv6Regexes = { zoneIndex: new RegExp(zoneIndex, "i"), "native": new RegExp(`^(::)?(${ipv6Part})?([0-9a-f]+)?(::)?(${zoneIndex})?$`, "i"), deprecatedTransitional: new RegExp(`^(?:::)(${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}(${zoneIndex})?)$`, "i"), transitional: new RegExp(`^((?:${ipv6Part})|(?:::)(?:${ipv6Part})?)${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}\\.${ipv4Part}(${zoneIndex})?$`, "i") }; function expandIPv6(string2, parts) { if (string2.indexOf("::") !== string2.lastIndexOf("::")) { return null; } let colonCount = 0; let lastColon = -1; let zoneId = (string2.match(ipv6Regexes.zoneIndex) || [])[0]; let replacement, replacementCount; if (zoneId) { zoneId = zoneId.substring(1); string2 = string2.replace(/%.+$/, ""); } while ((lastColon = string2.indexOf(":", lastColon + 1)) >= 0) { colonCount++; } if (string2.substr(0, 2) === "::") { colonCount--; } if (string2.substr(-2, 2) === "::") { colonCount--; } if (colonCount > parts) { return null; } replacementCount = parts - colonCount; replacement = ":"; while (replacementCount--) { replacement += "0:"; } string2 = string2.replace("::", replacement); if (string2[0] === ":") { string2 = string2.slice(1); } if (string2[string2.length - 1] === ":") { string2 = string2.slice(0, -1); } parts = function() { const ref = string2.split(":"); const results = []; for (let i = 0; i < ref.length; i++) { results.push(parseInt(ref[i], 16)); } return results; }(); return { parts, zoneId }; } function matchCIDR(first, second, partSize, cidrBits) { if (first.length !== second.length) { throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); } let part = 0; let shift; while (cidrBits > 0) { shift = partSize - cidrBits; if (shift < 0) { shift = 0; } if (first[part] >> shift !== second[part] >> shift) { return false; } cidrBits -= partSize; part += 1; } return true; } function parseIntAuto(string2) { if (hexRegex.test(string2)) { return parseInt(string2, 16); } if (string2[0] === "0" && !isNaN(parseInt(string2[1], 10))) { if (octalRegex.test(string2)) { return parseInt(string2, 8); } throw new Error(`ipaddr: cannot parse ${string2} as octal`); } return parseInt(string2, 10); } function padPart(part, length) { while (part.length < length) { part = `0${part}`; } return part; } const ipaddr4 = {}; ipaddr4.IPv4 = function() { function IPv42(octets) { if (octets.length !== 4) { throw new Error("ipaddr: ipv4 octet count should be 4"); } let i, octet; for (i = 0; i < octets.length; i++) { octet = octets[i]; if (!(0 <= octet && octet <= 255)) { throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); } } this.octets = octets; } IPv42.prototype.SpecialRanges = { unspecified: [[new IPv42([0, 0, 0, 0]), 8]], broadcast: [[new IPv42([255, 255, 255, 255]), 32]], // RFC3171 multicast: [[new IPv42([224, 0, 0, 0]), 4]], // RFC3927 linkLocal: [[new IPv42([169, 254, 0, 0]), 16]], // RFC5735 loopback: [[new IPv42([127, 0, 0, 0]), 8]], // RFC6598 carrierGradeNat: [[new IPv42([100, 64, 0, 0]), 10]], // RFC1918 "private": [ [new IPv42([10, 0, 0, 0]), 8], [new IPv42([172, 16, 0, 0]), 12], [new IPv42([192, 168, 0, 0]), 16] ], // Reserved and testing-only ranges; RFCs 5735, 5737, 2544, 1700 reserved: [ [new IPv42([192, 0, 0, 0]), 24], [new IPv42([192, 0, 2, 0]), 24], [new IPv42([192, 88, 99, 0]), 24], [new IPv42([198, 18, 0, 0]), 15], [new IPv42([198, 51, 100, 0]), 24], [new IPv42([203, 0, 113, 0]), 24], [new IPv42([240, 0, 0, 0]), 4] ], // RFC7534, RFC7535 as112: [ [new IPv42([192, 175, 48, 0]), 24], [new IPv42([192, 31, 196, 0]), 24] ], // RFC7450 amt: [ [new IPv42([192, 52, 193, 0]), 24] ] }; IPv42.prototype.kind = function() { return "ipv4"; }; IPv42.prototype.match = function(other, cidrRange) { let ref; if (cidrRange === void 0) { ref = other; other = ref[0]; cidrRange = ref[1]; } if (other.kind() !== "ipv4") { throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); } return matchCIDR(this.octets, other.octets, 8, cidrRange); }; IPv42.prototype.prefixLengthFromSubnetMask = function() { let cidr = 0; let stop = false; const zerotable = { 0: 8, 128: 7, 192: 6, 224: 5, 240: 4, 248: 3, 252: 2, 254: 1, 255: 0 }; let i, octet, zeros; for (i = 3; i >= 0; i -= 1) { octet = this.octets[i]; if (octet in zerotable) { zeros = zerotable[octet]; if (stop && zeros !== 0) { return null; } if (zeros !== 8) { stop = true; } cidr += zeros; } else { return null; } } return 32 - cidr; }; IPv42.prototype.range = function() { return ipaddr4.subnetMatch(this, this.SpecialRanges); }; IPv42.prototype.toByteArray = function() { return this.octets.slice(0); }; IPv42.prototype.toIPv4MappedAddress = function() { return ipaddr4.IPv6.parse(`::ffff:${this.toString()}`); }; IPv42.prototype.toNormalizedString = function() { return this.toString(); }; IPv42.prototype.toString = function() { return this.octets.join("."); }; return IPv42; }(); ipaddr4.IPv4.broadcastAddressFromCIDR = function(string2) { try { const cidr = this.parseCIDR(string2); const ipInterfaceOctets = cidr[0].toByteArray(); const subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); const octets = []; let i = 0; while (i < 4) { octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); i++; } return new this(octets); } catch (e) { throw new Error("ipaddr: the address does not have IPv4 CIDR format"); } }; ipaddr4.IPv4.isIPv4 = function(string2) { return this.parser(string2) !== null; }; ipaddr4.IPv4.isValid = function(string2) { try { new this(this.parser(string2)); return true; } catch (e) { return false; } }; ipaddr4.IPv4.isValidCIDR = function(string2) { try { this.parseCIDR(string2); return true; } catch (e) { return false; } }; ipaddr4.IPv4.isValidFourPartDecimal = function(string2) { if (ipaddr4.IPv4.isValid(string2) && string2.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) { return true; } else { return false; } }; ipaddr4.IPv4.networkAddressFromCIDR = function(string2) { let cidr, i, ipInterfaceOctets, octets, subnetMaskOctets; try { cidr = this.parseCIDR(string2); ipInterfaceOctets = cidr[0].toByteArray(); subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); octets = []; i = 0; while (i < 4) { octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); i++; } return new this(octets); } catch (e) { throw new Error("ipaddr: the address does not have IPv4 CIDR format"); } }; ipaddr4.IPv4.parse = function(string2) { const parts = this.parser(string2); if (parts === null) { throw new Error("ipaddr: string is not formatted like an IPv4 Address"); } return new this(parts); }; ipaddr4.IPv4.parseCIDR = function(string2) { let match; if (match = string2.match(/^(.+)\/(\d+)$/)) { const maskLength = parseInt(match[2]); if (maskLength >= 0 && maskLength <= 32) { const parsed = [this.parse(match[1]), maskLength]; Object.defineProperty(parsed, "toString", { value: function() { return this.join("/"); } }); return parsed; } } throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); }; ipaddr4.IPv4.parser = function(string2) { let match, part, value; if (match = string2.match(ipv4Regexes.fourOctet)) { return function() { const ref = match.slice(1, 6); const results = []; for (let i = 0; i < ref.length; i++) { part = ref[i]; results.push(parseIntAuto(part)); } return results; }(); } else if (match = string2.match(ipv4Regexes.longValue)) { value = parseIntAuto(match[1]); if (value > 4294967295 || value < 0) { throw new Error("ipaddr: address outside defined range"); } return function() { const results = []; let shift; for (shift = 0; shift <= 24; shift += 8) { results.push(value >> shift & 255); } return results; }().reverse(); } else if (match = string2.match(ipv4Regexes.twoOctet)) { return function() { const ref = match.slice(1, 4); const results = []; value = parseIntAuto(ref[1]); if (value > 16777215 || value < 0) { throw new Error("ipaddr: address outside defined range"); } results.push(parseIntAuto(ref[0])); results.push(value >> 16 & 255); results.push(value >> 8 & 255); results.push(value & 255); return results; }(); } else if (match = string2.match(ipv4Regexes.threeOctet)) { return function() { const ref = match.slice(1, 5); const results = []; value = parseIntAuto(ref[2]); if (value > 65535 || value < 0) { throw new Error("ipaddr: address outside defined range"); } results.push(parseIntAuto(ref[0])); results.push(parseIntAuto(ref[1])); results.push(value >> 8 & 255); results.push(value & 255); return results; }(); } else { return null; } }; ipaddr4.IPv4.subnetMaskFromPrefixLength = function(prefix) { prefix = parseInt(prefix); if (prefix < 0 || prefix > 32) { throw new Error("ipaddr: invalid IPv4 prefix length"); } const octets = [0, 0, 0, 0]; let j = 0; const filledOctetCount = Math.floor(prefix / 8); while (j < filledOctetCount) { octets[j] = 255; j++; } if (filledOctetCount < 4) { octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8; } return new this(octets); }; ipaddr4.IPv6 = function() { function IPv62(parts, zoneId) { let i, part; if (parts.length === 16) { this.parts = []; for (i = 0; i <= 14; i += 2) { this.parts.push(parts[i] << 8 | parts[i + 1]); } } else if (parts.length === 8) { this.parts = parts; } else { throw new Error("ipaddr: ipv6 part count should be 8 or 16"); } for (i = 0; i < this.parts.length; i++) { part = this.parts[i]; if (!(0 <= part && part <= 65535)) { throw new Error("ipaddr: ipv6 part should fit in 16 bits"); } } if (zoneId) { this.zoneId = zoneId; } } IPv62.prototype.SpecialRanges = { // RFC4291, here and after unspecified: [new IPv62([0, 0, 0, 0, 0, 0, 0, 0]), 128], linkLocal: [new IPv62([65152, 0, 0, 0, 0, 0, 0, 0]), 10], multicast: [new IPv62([65280, 0, 0, 0, 0, 0, 0, 0]), 8], loopback: [new IPv62([0, 0, 0, 0, 0, 0, 0, 1]), 128], uniqueLocal: [new IPv62([64512, 0, 0, 0, 0, 0, 0, 0]), 7], ipv4Mapped: [new IPv62([0, 0, 0, 0, 0, 65535, 0, 0]), 96], // RFC6666 discard: [new IPv62([256, 0, 0, 0, 0, 0, 0, 0]), 64], // RFC6145 rfc6145: [new IPv62([0, 0, 0, 0, 65535, 0, 0, 0]), 96], // RFC6052 rfc6052: [new IPv62([100, 65435, 0, 0, 0, 0, 0, 0]), 96], // RFC3056 "6to4": [new IPv62([8194, 0, 0, 0, 0, 0, 0, 0]), 16], // RFC6052, RFC6146 teredo: [new IPv62([8193, 0, 0, 0, 0, 0, 0, 0]), 32], // RFC5180 benchmarking: [new IPv62([8193, 2, 0, 0, 0, 0, 0, 0]), 48], // RFC7450 amt: [new IPv62([8193, 3, 0, 0, 0, 0, 0, 0]), 32], as112v6: [ [new IPv62([8193, 4, 274, 0, 0, 0, 0, 0]), 48], [new IPv62([9760, 79, 32768, 0, 0, 0, 0, 0]), 48] ], deprecated: [new IPv62([8193, 16, 0, 0, 0, 0, 0, 0]), 28], orchid2: [new IPv62([8193, 32, 0, 0, 0, 0, 0, 0]), 28], droneRemoteIdProtocolEntityTags: [new IPv62([8193, 48, 0, 0, 0, 0, 0, 0]), 28], reserved: [ // RFC3849 [new IPv62([8193, 0, 0, 0, 0, 0, 0, 0]), 23], // RFC2928 [new IPv62([8193, 3512, 0, 0, 0, 0, 0, 0]), 32] ] }; IPv62.prototype.isIPv4MappedAddress = function() { return this.range() === "ipv4Mapped"; }; IPv62.prototype.kind = function() { return "ipv6"; }; IPv62.prototype.match = function(other, cidrRange) { let ref; if (cidrRange === void 0) { ref = other; other = ref[0]; cidrRange = ref[1]; } if (other.kind() !== "ipv6") { throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); } return matchCIDR(this.parts, other.parts, 16, cidrRange); }; IPv62.prototype.prefixLengthFromSubnetMask = function() { let cidr = 0; let stop = false; const zerotable = { 0: 16, 32768: 15, 49152: 14, 57344: 13, 61440: 12, 63488: 11, 64512: 10, 65024: 9, 65280: 8, 65408: 7, 65472: 6, 65504: 5, 65520: 4, 65528: 3, 65532: 2, 65534: 1, 65535: 0 }; let part, zeros; for (let i = 7; i >= 0; i -= 1) { part = this.parts[i]; if (part in zerotable) { zeros = zerotable[part]; if (stop && zeros !== 0) { return null; } if (zeros !== 16) { stop = true; } cidr += zeros; } else { return null; } } return 128 - cidr; }; IPv62.prototype.range = function() { return ipaddr4.subnetMatch(this, this.SpecialRanges); }; IPv62.prototype.toByteArray = function() { let part; const bytes = []; const ref = this.parts; for (let i = 0; i < ref.length; i++) { part = ref[i]; bytes.push(part >> 8); bytes.push(part & 255); } return bytes; }; IPv62.prototype.toFixedLengthString = function() { const addr = function() { const results = []; for (let i = 0; i < this.parts.length; i++) { results.push(padPart(this.parts[i].toString(16), 4)); } return results; }.call(this).join(":"); let suffix = ""; if (this.zoneId) { suffix = `%${this.zoneId}`; } return addr + suffix; }; IPv62.prototype.toIPv4Address = function() { if (!this.isIPv4MappedAddress()) { throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); } const ref = this.parts.slice(-2); const high = ref[0]; const low = ref[1]; return new ipaddr4.IPv4([high >> 8, high & 255, low >> 8, low & 255]); }; IPv62.prototype.toNormalizedString = function() { const addr = function() { const results = []; for (let i = 0; i < this.parts.length; i++) { results.push(this.parts[i].toString(16)); } return results; }.call(this).join(":"); let suffix = ""; if (this.zoneId) { suffix = `%${this.zoneId}`; } return addr + suffix; }; IPv62.prototype.toRFC5952String = function() { const regex = /((^|:)(0(:|$)){2,})/g; const string2 = this.toNormalizedString(); let bestMatchIndex = 0; let bestMatchLength = -1; let match; while (match = regex.exec(string2)) { if (match[0].length > bestMatchLength) { bestMatchIndex = match.index; bestMatchLength = match[0].length; } } if (bestMatchLength < 0) { return string2; } return `${string2.substring(0, bestMatchIndex)}::${string2.substring(bestMatchIndex + bestMatchLength)}`; }; IPv62.prototype.toString = function() { return this.toRFC5952String(); }; return IPv62; }(); ipaddr4.IPv6.broadcastAddressFromCIDR = function(string2) { try { const cidr = this.parseCIDR(string2); const ipInterfaceOctets = cidr[0].toByteArray(); const subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); const octets = []; let i = 0; while (i < 16) { octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); i++; } return new this(octets); } catch (e) { throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${e})`); } }; ipaddr4.IPv6.isIPv6 = function(string2) { return this.parser(string2) !== null; }; ipaddr4.IPv6.isValid = function(string2) { if (typeof string2 === "string" && string2.indexOf(":") === -1) { return false; } try { const addr = this.parser(string2); new this(addr.parts, addr.zoneId); return true; } catch (e) { return false; } }; ipaddr4.IPv6.isValidCIDR = function(string2) { if (typeof string2 === "string" && string2.indexOf(":") === -1) { return false; } try { this.parseCIDR(string2); return true; } catch (e) { return false; } }; ipaddr4.IPv6.networkAddressFromCIDR = function(string2) { let cidr, i, ipInterfaceOctets, octets, subnetMaskOctets; try { cidr = this.parseCIDR(string2); ipInterfaceOctets = cidr[0].toByteArray(); subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); octets = []; i = 0; while (i < 16) { octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); i++; } return new this(octets); } catch (e) { throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${e})`); } }; ipaddr4.IPv6.parse = function(string2) { const addr = this.parser(string2); if (addr.parts === null) { throw new Error("ipaddr: string is not formatted like an IPv6 Address"); } return new this(addr.parts, addr.zoneId); }; ipaddr4.IPv6.parseCIDR = function(string2) { let maskLength, match, parsed; if (match = string2.match(/^(.+)\/(\d+)$/)) { maskLength = parseInt(match[2]); if (maskLength >= 0 && maskLength <= 128) { parsed = [this.parse(match[1]), maskLength]; Object.defineProperty(parsed, "toString", { value: function() { return this.join("/"); } }); return parsed; } } throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); }; ipaddr4.IPv6.parser = function(string2) { let addr, i, match, octet, octets, zoneId; if (match = string2.match(ipv6Regexes.deprecatedTransitional)) { return this.parser(`::ffff:${match[1]}`); } if (ipv6Regexes.native.test(string2)) { return expandIPv6(string2, 8); } if (match = string2.match(ipv6Regexes.transitional)) { zoneId = match[6] || ""; addr = match[1]; if (!match[1].endsWith("::")) { addr = addr.slice(0, -1); } addr = expandIPv6(addr + zoneId, 6); if (addr.parts) { octets = [ parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5]) ]; for (i = 0; i < octets.length; i++) { octet = octets[i]; if (!(0 <= octet && octet <= 255)) { return null; } } addr.parts.push(octets[0] << 8 | octets[1]); addr.parts.push(octets[2] << 8 | octets[3]); return { parts: addr.parts, zoneId: addr.zoneId }; } } return null; }; ipaddr4.IPv6.subnetMaskFromPrefixLength = function(prefix) { prefix = parseInt(prefix); if (prefix < 0 || prefix > 128) { throw new Error("ipaddr: invalid IPv6 prefix length"); } const octets = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; let j = 0; const filledOctetCount = Math.floor(prefix / 8); while (j < filledOctetCount) { octets[j] = 255; j++; } if (filledOctetCount < 16) { octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8; } return new this(octets); }; ipaddr4.fromByteArray = function(bytes) { const length = bytes.length; if (length === 4) { return new ipaddr4.IPv4(bytes); } else if (length === 16) { return new ipaddr4.IPv6(bytes); } else { throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address"); } }; ipaddr4.isValid = function(string2) { return ipaddr4.IPv6.isValid(string2) || ipaddr4.IPv4.isValid(string2); }; ipaddr4.isValidCIDR = function(string2) { return ipaddr4.IPv6.isValidCIDR(string2) || ipaddr4.IPv4.isValidCIDR(string2); }; ipaddr4.parse = function(string2) { if (ipaddr4.IPv6.isValid(string2)) { return ipaddr4.IPv6.parse(string2); } else if (ipaddr4.IPv4.isValid(string2)) { return ipaddr4.IPv4.parse(string2); } else { throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); } }; ipaddr4.parseCIDR = function(string2) { try { return ipaddr4.IPv6.parseCIDR(string2); } catch (e) { try { return ipaddr4.IPv4.parseCIDR(string2); } catch (e2) { throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); } } }; ipaddr4.process = function(string2) { const addr = this.parse(string2); if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) { return addr.toIPv4Address(); } else { return addr; } }; ipaddr4.subnetMatch = function(address, rangeList, defaultName) { let i, rangeName, rangeSubnets, subnet; if (defaultName === void 0 || defaultName === null) { defaultName = "unicast"; } for (rangeName in rangeList) { if (Object.prototype.hasOwnProperty.call(rangeList, rangeName)) { rangeSubnets = rangeList[rangeName]; if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { rangeSubnets = [rangeSubnets]; } for (i = 0; i < rangeSubnets.length; i++) { subnet = rangeSubnets[i]; if (address.kind() === subnet[0].kind() && address.match.apply(address, subnet)) { return rangeName; } } } } return defaultName; }; if (typeof module !== "undefined" && module.exports) { module.exports = ipaddr4; } else { root.ipaddr = ipaddr4; } })(exports); } }); // ../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js var require_delayed_stream = __commonJS({ "../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js"(exports, module) { "use strict"; var Stream = __require("stream").Stream; var util3 = __require("util"); module.exports = DelayedStream; function DelayedStream() { this.source = null; this.dataSize = 0; this.maxDataSize = 1024 * 1024; this.pauseStream = true; this._maxDataSizeExceeded = false; this._released = false; this._bufferedEvents = []; } util3.inherits(DelayedStream, Stream); DelayedStream.create = function(source, options) { var delayedStream = new this(); options = options || {}; for (var option in options) { delayedStream[option] = options[option]; } delayedStream.source = source; var realEmit = source.emit; source.emit = function() { delayedStream._handleEmit(arguments); return realEmit.apply(source, arguments); }; source.on("error", function() { }); if (delayedStream.pauseStream) { source.pause(); } return delayedStream; }; Object.defineProperty(DelayedStream.prototype, "readable", { configurable: true, enumerable: true, get: function() { return this.source.readable; } }); DelayedStream.prototype.setEncoding = function() { return this.source.setEncoding.apply(this.source, arguments); }; DelayedStream.prototype.resume = function() { if (!this._released) { this.release(); } this.source.resume(); }; DelayedStream.prototype.pause = function() { this.source.pause(); }; DelayedStream.prototype.release = function() { this._released = true; this._bufferedEvents.forEach(function(args) { this.emit.apply(this, args); }.bind(this)); this._bufferedEvents = []; }; DelayedStream.prototype.pipe = function() { var r = Stream.prototype.pipe.apply(this, arguments); this.resume(); return r; }; DelayedStream.prototype._handleEmit = function(args) { if (this._released) { this.emit.apply(this, args); return; } if (args[0] === "data") { this.dataSize += args[1].length; this._checkIfMaxDataSizeExceeded(); } this._bufferedEvents.push(args); }; DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { if (this._maxDataSizeExceeded) { return; } if (this.dataSize <= this.maxDataSize) { return; } this._maxDataSizeExceeded = true; var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded."; this.emit("error", new Error(message)); }; } }); // ../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js var require_combined_stream = __commonJS({ "../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js"(exports, module) { "use strict"; var util3 = __require("util"); var Stream = __require("stream").Stream; var DelayedStream = require_delayed_stream(); module.exports = CombinedStream; function CombinedStream() { this.writable = false; this.readable = true; this.dataSize = 0; this.maxDataSize = 2 * 1024 * 1024; this.pauseStreams = true; this._released = false; this._streams = []; this._currentStream = null; this._insideLoop = false; this._pendingNext = false; } util3.inherits(CombinedStream, Stream); CombinedStream.create = function(options) { var combinedStream = new this(); options = options || {}; for (var option in options) { combinedStream[option] = options[option]; } return combinedStream; }; CombinedStream.isStreamLike = function(stream4) { return typeof stream4 !== "function" && typeof stream4 !== "string" && typeof stream4 !== "boolean" && typeof stream4 !== "number" && !Buffer.isBuffer(stream4); }; CombinedStream.prototype.append = function(stream4) { var isStreamLike = CombinedStream.isStreamLike(stream4); if (isStreamLike) { if (!(stream4 instanceof DelayedStream)) { var newStream = DelayedStream.create(stream4, { maxDataSize: Infinity, pauseStream: this.pauseStreams }); stream4.on("data", this._checkDataSize.bind(this)); stream4 = newStream; } this._handleErrors(stream4); if (this.pauseStreams) { stream4.pause(); } } this._streams.push(stream4); return this; }; CombinedStream.prototype.pipe = function(dest, options) { Stream.prototype.pipe.call(this, dest, options); this.resum