@ever-works/vllm-plugin 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +59 -12
- package/dist/index.js +59 -12
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -5019,6 +5019,7 @@ function isSafeWebhookUrl(rawUrl) {
|
|
|
5019
5019
|
if (host.startsWith("[") && host.endsWith("]")) {
|
|
5020
5020
|
host = host.slice(1, -1);
|
|
5021
5021
|
}
|
|
5022
|
+
host = host.replace(/\.+$/, "");
|
|
5022
5023
|
if (CLOUD_METADATA_HOSTNAMES.has(host)) {
|
|
5023
5024
|
return false;
|
|
5024
5025
|
}
|
|
@@ -5048,23 +5049,69 @@ function isPrivateIPv4(ip) {
|
|
|
5048
5049
|
if (a === 172 && b >= 16 && b <= 31) return true;
|
|
5049
5050
|
if (a === 192 && b === 168) return true;
|
|
5050
5051
|
if (a === 192 && b === 0 && parts[2] === 0) return true;
|
|
5052
|
+
if (a === 198 && (b === 18 || b === 19)) return true;
|
|
5053
|
+
if (a === 192 && b === 0 && parts[2] === 2) return true;
|
|
5054
|
+
if (a === 198 && b === 51 && parts[2] === 100) return true;
|
|
5055
|
+
if (a === 203 && b === 0 && parts[2] === 113) return true;
|
|
5051
5056
|
if (a === 100 && b >= 64 && b <= 127) return true;
|
|
5052
5057
|
if (a >= 224) return true;
|
|
5053
5058
|
return false;
|
|
5054
5059
|
}
|
|
5060
|
+
function parseIPv6Groups(ip) {
|
|
5061
|
+
let text = ip.trim().toLowerCase();
|
|
5062
|
+
const zone = text.indexOf("%");
|
|
5063
|
+
if (zone >= 0) text = text.slice(0, zone);
|
|
5064
|
+
if (net.isIP(text) !== 6) return null;
|
|
5065
|
+
const lastColon = text.lastIndexOf(":");
|
|
5066
|
+
const tail = text.slice(lastColon + 1);
|
|
5067
|
+
if (tail.includes(".")) {
|
|
5068
|
+
if (net.isIP(tail) !== 4) return null;
|
|
5069
|
+
const [a, b, c, d] = tail.split(".").map((part) => Number(part));
|
|
5070
|
+
text = `${text.slice(0, lastColon + 1)}${(a << 8 | b).toString(16)}:${(c << 8 | d).toString(16)}`;
|
|
5071
|
+
}
|
|
5072
|
+
const halves = text.split("::");
|
|
5073
|
+
if (halves.length > 2) return null;
|
|
5074
|
+
const head = halves[0] ? halves[0].split(":") : [];
|
|
5075
|
+
const rest = halves.length === 2 && halves[1] ? halves[1].split(":") : [];
|
|
5076
|
+
const fill = halves.length === 2 ? 8 - head.length - rest.length : 0;
|
|
5077
|
+
if (fill < 0) return null;
|
|
5078
|
+
const groups = [...head, ...new Array(fill).fill("0"), ...rest].map((group) => parseInt(group, 16));
|
|
5079
|
+
if (groups.length !== 8 || groups.some((group) => Number.isNaN(group) || group < 0 || group > 65535)) {
|
|
5080
|
+
return null;
|
|
5081
|
+
}
|
|
5082
|
+
return groups;
|
|
5083
|
+
}
|
|
5084
|
+
function ipv4FromGroups(high, low) {
|
|
5085
|
+
return `${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`;
|
|
5086
|
+
}
|
|
5087
|
+
function embeddedIPv4(ip) {
|
|
5088
|
+
const g = parseIPv6Groups(ip);
|
|
5089
|
+
if (!g) return null;
|
|
5090
|
+
const zeros = (from, to) => g.slice(from, to).every((group) => group === 0);
|
|
5091
|
+
if (zeros(0, 5) && g[5] === 65535) return ipv4FromGroups(g[6], g[7]);
|
|
5092
|
+
if (zeros(0, 4) && g[4] === 65535 && g[5] === 0) return ipv4FromGroups(g[6], g[7]);
|
|
5093
|
+
if (zeros(0, 6) && (g[6] !== 0 || g[7] > 1)) return ipv4FromGroups(g[6], g[7]);
|
|
5094
|
+
if (g[0] === 100 && g[1] === 65435 && zeros(2, 6)) return ipv4FromGroups(g[6], g[7]);
|
|
5095
|
+
if (g[0] === 8194) return ipv4FromGroups(g[1], g[2]);
|
|
5096
|
+
if (g[0] === 8193 && g[1] === 0) return ipv4FromGroups(g[6] ^ 65535, g[7] ^ 65535);
|
|
5097
|
+
return null;
|
|
5098
|
+
}
|
|
5055
5099
|
function isPrivateIPv6(ip) {
|
|
5056
|
-
const
|
|
5057
|
-
if (
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
if (
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5100
|
+
const g = parseIPv6Groups(ip);
|
|
5101
|
+
if (!g) {
|
|
5102
|
+
const lower = ip.toLowerCase();
|
|
5103
|
+
return lower === "::1" || lower === "::" || lower.startsWith("fc") || lower.startsWith("fd");
|
|
5104
|
+
}
|
|
5105
|
+
if (g.every((group) => group === 0)) return true;
|
|
5106
|
+
if (g.slice(0, 7).every((group) => group === 0) && g[7] === 1) return true;
|
|
5107
|
+
if ((g[0] & 65024) === 64512) return true;
|
|
5108
|
+
if ((g[0] & 65472) === 65152) return true;
|
|
5109
|
+
if ((g[0] & 65472) === 65216) return true;
|
|
5110
|
+
if ((g[0] & 65280) === 65280) return true;
|
|
5111
|
+
if (g[0] === 8193 && g[1] === 3512) return true;
|
|
5112
|
+
if (g[0] === 100 && g[1] === 65435 && g[2] === 1) return true;
|
|
5113
|
+
const v4 = embeddedIPv4(ip);
|
|
5114
|
+
if (v4 && isPrivateIPv4(v4)) return true;
|
|
5068
5115
|
return false;
|
|
5069
5116
|
}
|
|
5070
5117
|
var defaultDnsResolver = (hostname) => dns__namespace.promises.lookup(hostname, { all: true });
|
package/dist/index.js
CHANGED
|
@@ -4995,6 +4995,7 @@ function isSafeWebhookUrl(rawUrl) {
|
|
|
4995
4995
|
if (host.startsWith("[") && host.endsWith("]")) {
|
|
4996
4996
|
host = host.slice(1, -1);
|
|
4997
4997
|
}
|
|
4998
|
+
host = host.replace(/\.+$/, "");
|
|
4998
4999
|
if (CLOUD_METADATA_HOSTNAMES.has(host)) {
|
|
4999
5000
|
return false;
|
|
5000
5001
|
}
|
|
@@ -5024,23 +5025,69 @@ function isPrivateIPv4(ip) {
|
|
|
5024
5025
|
if (a === 172 && b >= 16 && b <= 31) return true;
|
|
5025
5026
|
if (a === 192 && b === 168) return true;
|
|
5026
5027
|
if (a === 192 && b === 0 && parts[2] === 0) return true;
|
|
5028
|
+
if (a === 198 && (b === 18 || b === 19)) return true;
|
|
5029
|
+
if (a === 192 && b === 0 && parts[2] === 2) return true;
|
|
5030
|
+
if (a === 198 && b === 51 && parts[2] === 100) return true;
|
|
5031
|
+
if (a === 203 && b === 0 && parts[2] === 113) return true;
|
|
5027
5032
|
if (a === 100 && b >= 64 && b <= 127) return true;
|
|
5028
5033
|
if (a >= 224) return true;
|
|
5029
5034
|
return false;
|
|
5030
5035
|
}
|
|
5036
|
+
function parseIPv6Groups(ip) {
|
|
5037
|
+
let text = ip.trim().toLowerCase();
|
|
5038
|
+
const zone = text.indexOf("%");
|
|
5039
|
+
if (zone >= 0) text = text.slice(0, zone);
|
|
5040
|
+
if (isIP(text) !== 6) return null;
|
|
5041
|
+
const lastColon = text.lastIndexOf(":");
|
|
5042
|
+
const tail = text.slice(lastColon + 1);
|
|
5043
|
+
if (tail.includes(".")) {
|
|
5044
|
+
if (isIP(tail) !== 4) return null;
|
|
5045
|
+
const [a, b, c, d] = tail.split(".").map((part) => Number(part));
|
|
5046
|
+
text = `${text.slice(0, lastColon + 1)}${(a << 8 | b).toString(16)}:${(c << 8 | d).toString(16)}`;
|
|
5047
|
+
}
|
|
5048
|
+
const halves = text.split("::");
|
|
5049
|
+
if (halves.length > 2) return null;
|
|
5050
|
+
const head = halves[0] ? halves[0].split(":") : [];
|
|
5051
|
+
const rest = halves.length === 2 && halves[1] ? halves[1].split(":") : [];
|
|
5052
|
+
const fill = halves.length === 2 ? 8 - head.length - rest.length : 0;
|
|
5053
|
+
if (fill < 0) return null;
|
|
5054
|
+
const groups = [...head, ...new Array(fill).fill("0"), ...rest].map((group) => parseInt(group, 16));
|
|
5055
|
+
if (groups.length !== 8 || groups.some((group) => Number.isNaN(group) || group < 0 || group > 65535)) {
|
|
5056
|
+
return null;
|
|
5057
|
+
}
|
|
5058
|
+
return groups;
|
|
5059
|
+
}
|
|
5060
|
+
function ipv4FromGroups(high, low) {
|
|
5061
|
+
return `${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`;
|
|
5062
|
+
}
|
|
5063
|
+
function embeddedIPv4(ip) {
|
|
5064
|
+
const g = parseIPv6Groups(ip);
|
|
5065
|
+
if (!g) return null;
|
|
5066
|
+
const zeros = (from, to) => g.slice(from, to).every((group) => group === 0);
|
|
5067
|
+
if (zeros(0, 5) && g[5] === 65535) return ipv4FromGroups(g[6], g[7]);
|
|
5068
|
+
if (zeros(0, 4) && g[4] === 65535 && g[5] === 0) return ipv4FromGroups(g[6], g[7]);
|
|
5069
|
+
if (zeros(0, 6) && (g[6] !== 0 || g[7] > 1)) return ipv4FromGroups(g[6], g[7]);
|
|
5070
|
+
if (g[0] === 100 && g[1] === 65435 && zeros(2, 6)) return ipv4FromGroups(g[6], g[7]);
|
|
5071
|
+
if (g[0] === 8194) return ipv4FromGroups(g[1], g[2]);
|
|
5072
|
+
if (g[0] === 8193 && g[1] === 0) return ipv4FromGroups(g[6] ^ 65535, g[7] ^ 65535);
|
|
5073
|
+
return null;
|
|
5074
|
+
}
|
|
5031
5075
|
function isPrivateIPv6(ip) {
|
|
5032
|
-
const
|
|
5033
|
-
if (
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
if (
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5076
|
+
const g = parseIPv6Groups(ip);
|
|
5077
|
+
if (!g) {
|
|
5078
|
+
const lower = ip.toLowerCase();
|
|
5079
|
+
return lower === "::1" || lower === "::" || lower.startsWith("fc") || lower.startsWith("fd");
|
|
5080
|
+
}
|
|
5081
|
+
if (g.every((group) => group === 0)) return true;
|
|
5082
|
+
if (g.slice(0, 7).every((group) => group === 0) && g[7] === 1) return true;
|
|
5083
|
+
if ((g[0] & 65024) === 64512) return true;
|
|
5084
|
+
if ((g[0] & 65472) === 65152) return true;
|
|
5085
|
+
if ((g[0] & 65472) === 65216) return true;
|
|
5086
|
+
if ((g[0] & 65280) === 65280) return true;
|
|
5087
|
+
if (g[0] === 8193 && g[1] === 3512) return true;
|
|
5088
|
+
if (g[0] === 100 && g[1] === 65435 && g[2] === 1) return true;
|
|
5089
|
+
const v4 = embeddedIPv4(ip);
|
|
5090
|
+
if (v4 && isPrivateIPv4(v4)) return true;
|
|
5044
5091
|
return false;
|
|
5045
5092
|
}
|
|
5046
5093
|
var defaultDnsResolver = (hostname) => dns.promises.lookup(hostname, { all: true });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ever-works/vllm-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "vLLM AI provider plugin for Ever Works platform",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Ever Co. LTD",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"test:watch": "vitest"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@ever-works/plugin": "^1.2.
|
|
35
|
+
"@ever-works/plugin": "^1.2.9",
|
|
36
36
|
"@langchain/openai": "^0.6.17",
|
|
37
37
|
"@langchain/core": "^0.3.80"
|
|
38
38
|
},
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"url": "https://github.com/ever-works/ever-works/issues"
|
|
72
72
|
},
|
|
73
73
|
"everworksRelease": {
|
|
74
|
-
"contentHash": "sha256:
|
|
75
|
-
"commit": "
|
|
76
|
-
"source": "https://github.com/ever-works/ever-works/tree/
|
|
74
|
+
"contentHash": "sha256:89fdb6e141b73de825cd21f8ae3abbc3f87c276788f9b715890bcd6de35546ef",
|
|
75
|
+
"commit": "5b5a17e1cdc02e06383d508a6424a863521fc3e0",
|
|
76
|
+
"source": "https://github.com/ever-works/ever-works/tree/5b5a17e1cdc02e06383d508a6424a863521fc3e0/packages/plugins/vllm"
|
|
77
77
|
}
|
|
78
78
|
}
|