@ever-works/activepieces-plugin 1.0.11 → 1.0.12
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 +6 -6
package/dist/index.cjs
CHANGED
|
@@ -2658,6 +2658,7 @@ function isSafeWebhookUrl(rawUrl) {
|
|
|
2658
2658
|
if (host.startsWith("[") && host.endsWith("]")) {
|
|
2659
2659
|
host = host.slice(1, -1);
|
|
2660
2660
|
}
|
|
2661
|
+
host = host.replace(/\.+$/, "");
|
|
2661
2662
|
if (CLOUD_METADATA_HOSTNAMES.has(host)) {
|
|
2662
2663
|
return false;
|
|
2663
2664
|
}
|
|
@@ -2687,23 +2688,69 @@ function isPrivateIPv4(ip) {
|
|
|
2687
2688
|
if (a === 172 && b >= 16 && b <= 31) return true;
|
|
2688
2689
|
if (a === 192 && b === 168) return true;
|
|
2689
2690
|
if (a === 192 && b === 0 && parts[2] === 0) return true;
|
|
2691
|
+
if (a === 198 && (b === 18 || b === 19)) return true;
|
|
2692
|
+
if (a === 192 && b === 0 && parts[2] === 2) return true;
|
|
2693
|
+
if (a === 198 && b === 51 && parts[2] === 100) return true;
|
|
2694
|
+
if (a === 203 && b === 0 && parts[2] === 113) return true;
|
|
2690
2695
|
if (a === 100 && b >= 64 && b <= 127) return true;
|
|
2691
2696
|
if (a >= 224) return true;
|
|
2692
2697
|
return false;
|
|
2693
2698
|
}
|
|
2694
|
-
function
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
if (
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2699
|
+
function parseIPv6Groups(ip) {
|
|
2700
|
+
let text = ip.trim().toLowerCase();
|
|
2701
|
+
const zone = text.indexOf("%");
|
|
2702
|
+
if (zone >= 0) text = text.slice(0, zone);
|
|
2703
|
+
if ((0, import_net.isIP)(text) !== 6) return null;
|
|
2704
|
+
const lastColon = text.lastIndexOf(":");
|
|
2705
|
+
const tail = text.slice(lastColon + 1);
|
|
2706
|
+
if (tail.includes(".")) {
|
|
2707
|
+
if ((0, import_net.isIP)(tail) !== 4) return null;
|
|
2708
|
+
const [a, b, c, d] = tail.split(".").map((part) => Number(part));
|
|
2709
|
+
text = `${text.slice(0, lastColon + 1)}${(a << 8 | b).toString(16)}:${(c << 8 | d).toString(16)}`;
|
|
2710
|
+
}
|
|
2711
|
+
const halves = text.split("::");
|
|
2712
|
+
if (halves.length > 2) return null;
|
|
2713
|
+
const head = halves[0] ? halves[0].split(":") : [];
|
|
2714
|
+
const rest = halves.length === 2 && halves[1] ? halves[1].split(":") : [];
|
|
2715
|
+
const fill = halves.length === 2 ? 8 - head.length - rest.length : 0;
|
|
2716
|
+
if (fill < 0) return null;
|
|
2717
|
+
const groups = [...head, ...new Array(fill).fill("0"), ...rest].map((group) => parseInt(group, 16));
|
|
2718
|
+
if (groups.length !== 8 || groups.some((group) => Number.isNaN(group) || group < 0 || group > 65535)) {
|
|
2719
|
+
return null;
|
|
2706
2720
|
}
|
|
2721
|
+
return groups;
|
|
2722
|
+
}
|
|
2723
|
+
function ipv4FromGroups(high, low) {
|
|
2724
|
+
return `${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`;
|
|
2725
|
+
}
|
|
2726
|
+
function embeddedIPv4(ip) {
|
|
2727
|
+
const g = parseIPv6Groups(ip);
|
|
2728
|
+
if (!g) return null;
|
|
2729
|
+
const zeros = (from, to) => g.slice(from, to).every((group) => group === 0);
|
|
2730
|
+
if (zeros(0, 5) && g[5] === 65535) return ipv4FromGroups(g[6], g[7]);
|
|
2731
|
+
if (zeros(0, 4) && g[4] === 65535 && g[5] === 0) return ipv4FromGroups(g[6], g[7]);
|
|
2732
|
+
if (zeros(0, 6) && (g[6] !== 0 || g[7] > 1)) return ipv4FromGroups(g[6], g[7]);
|
|
2733
|
+
if (g[0] === 100 && g[1] === 65435 && zeros(2, 6)) return ipv4FromGroups(g[6], g[7]);
|
|
2734
|
+
if (g[0] === 8194) return ipv4FromGroups(g[1], g[2]);
|
|
2735
|
+
if (g[0] === 8193 && g[1] === 0) return ipv4FromGroups(g[6] ^ 65535, g[7] ^ 65535);
|
|
2736
|
+
return null;
|
|
2737
|
+
}
|
|
2738
|
+
function isPrivateIPv6(ip) {
|
|
2739
|
+
const g = parseIPv6Groups(ip);
|
|
2740
|
+
if (!g) {
|
|
2741
|
+
const lower = ip.toLowerCase();
|
|
2742
|
+
return lower === "::1" || lower === "::" || lower.startsWith("fc") || lower.startsWith("fd");
|
|
2743
|
+
}
|
|
2744
|
+
if (g.every((group) => group === 0)) return true;
|
|
2745
|
+
if (g.slice(0, 7).every((group) => group === 0) && g[7] === 1) return true;
|
|
2746
|
+
if ((g[0] & 65024) === 64512) return true;
|
|
2747
|
+
if ((g[0] & 65472) === 65152) return true;
|
|
2748
|
+
if ((g[0] & 65472) === 65216) return true;
|
|
2749
|
+
if ((g[0] & 65280) === 65280) return true;
|
|
2750
|
+
if (g[0] === 8193 && g[1] === 3512) return true;
|
|
2751
|
+
if (g[0] === 100 && g[1] === 65435 && g[2] === 1) return true;
|
|
2752
|
+
const v4 = embeddedIPv4(ip);
|
|
2753
|
+
if (v4 && isPrivateIPv4(v4)) return true;
|
|
2707
2754
|
return false;
|
|
2708
2755
|
}
|
|
2709
2756
|
|
package/dist/index.js
CHANGED
|
@@ -2631,6 +2631,7 @@ function isSafeWebhookUrl(rawUrl) {
|
|
|
2631
2631
|
if (host.startsWith("[") && host.endsWith("]")) {
|
|
2632
2632
|
host = host.slice(1, -1);
|
|
2633
2633
|
}
|
|
2634
|
+
host = host.replace(/\.+$/, "");
|
|
2634
2635
|
if (CLOUD_METADATA_HOSTNAMES.has(host)) {
|
|
2635
2636
|
return false;
|
|
2636
2637
|
}
|
|
@@ -2660,23 +2661,69 @@ function isPrivateIPv4(ip) {
|
|
|
2660
2661
|
if (a === 172 && b >= 16 && b <= 31) return true;
|
|
2661
2662
|
if (a === 192 && b === 168) return true;
|
|
2662
2663
|
if (a === 192 && b === 0 && parts[2] === 0) return true;
|
|
2664
|
+
if (a === 198 && (b === 18 || b === 19)) return true;
|
|
2665
|
+
if (a === 192 && b === 0 && parts[2] === 2) return true;
|
|
2666
|
+
if (a === 198 && b === 51 && parts[2] === 100) return true;
|
|
2667
|
+
if (a === 203 && b === 0 && parts[2] === 113) return true;
|
|
2663
2668
|
if (a === 100 && b >= 64 && b <= 127) return true;
|
|
2664
2669
|
if (a >= 224) return true;
|
|
2665
2670
|
return false;
|
|
2666
2671
|
}
|
|
2667
|
-
function
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
if (
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2672
|
+
function parseIPv6Groups(ip) {
|
|
2673
|
+
let text = ip.trim().toLowerCase();
|
|
2674
|
+
const zone = text.indexOf("%");
|
|
2675
|
+
if (zone >= 0) text = text.slice(0, zone);
|
|
2676
|
+
if (isIP(text) !== 6) return null;
|
|
2677
|
+
const lastColon = text.lastIndexOf(":");
|
|
2678
|
+
const tail = text.slice(lastColon + 1);
|
|
2679
|
+
if (tail.includes(".")) {
|
|
2680
|
+
if (isIP(tail) !== 4) return null;
|
|
2681
|
+
const [a, b, c, d] = tail.split(".").map((part) => Number(part));
|
|
2682
|
+
text = `${text.slice(0, lastColon + 1)}${(a << 8 | b).toString(16)}:${(c << 8 | d).toString(16)}`;
|
|
2683
|
+
}
|
|
2684
|
+
const halves = text.split("::");
|
|
2685
|
+
if (halves.length > 2) return null;
|
|
2686
|
+
const head = halves[0] ? halves[0].split(":") : [];
|
|
2687
|
+
const rest = halves.length === 2 && halves[1] ? halves[1].split(":") : [];
|
|
2688
|
+
const fill = halves.length === 2 ? 8 - head.length - rest.length : 0;
|
|
2689
|
+
if (fill < 0) return null;
|
|
2690
|
+
const groups = [...head, ...new Array(fill).fill("0"), ...rest].map((group) => parseInt(group, 16));
|
|
2691
|
+
if (groups.length !== 8 || groups.some((group) => Number.isNaN(group) || group < 0 || group > 65535)) {
|
|
2692
|
+
return null;
|
|
2679
2693
|
}
|
|
2694
|
+
return groups;
|
|
2695
|
+
}
|
|
2696
|
+
function ipv4FromGroups(high, low) {
|
|
2697
|
+
return `${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`;
|
|
2698
|
+
}
|
|
2699
|
+
function embeddedIPv4(ip) {
|
|
2700
|
+
const g = parseIPv6Groups(ip);
|
|
2701
|
+
if (!g) return null;
|
|
2702
|
+
const zeros = (from, to) => g.slice(from, to).every((group) => group === 0);
|
|
2703
|
+
if (zeros(0, 5) && g[5] === 65535) return ipv4FromGroups(g[6], g[7]);
|
|
2704
|
+
if (zeros(0, 4) && g[4] === 65535 && g[5] === 0) return ipv4FromGroups(g[6], g[7]);
|
|
2705
|
+
if (zeros(0, 6) && (g[6] !== 0 || g[7] > 1)) return ipv4FromGroups(g[6], g[7]);
|
|
2706
|
+
if (g[0] === 100 && g[1] === 65435 && zeros(2, 6)) return ipv4FromGroups(g[6], g[7]);
|
|
2707
|
+
if (g[0] === 8194) return ipv4FromGroups(g[1], g[2]);
|
|
2708
|
+
if (g[0] === 8193 && g[1] === 0) return ipv4FromGroups(g[6] ^ 65535, g[7] ^ 65535);
|
|
2709
|
+
return null;
|
|
2710
|
+
}
|
|
2711
|
+
function isPrivateIPv6(ip) {
|
|
2712
|
+
const g = parseIPv6Groups(ip);
|
|
2713
|
+
if (!g) {
|
|
2714
|
+
const lower = ip.toLowerCase();
|
|
2715
|
+
return lower === "::1" || lower === "::" || lower.startsWith("fc") || lower.startsWith("fd");
|
|
2716
|
+
}
|
|
2717
|
+
if (g.every((group) => group === 0)) return true;
|
|
2718
|
+
if (g.slice(0, 7).every((group) => group === 0) && g[7] === 1) return true;
|
|
2719
|
+
if ((g[0] & 65024) === 64512) return true;
|
|
2720
|
+
if ((g[0] & 65472) === 65152) return true;
|
|
2721
|
+
if ((g[0] & 65472) === 65216) return true;
|
|
2722
|
+
if ((g[0] & 65280) === 65280) return true;
|
|
2723
|
+
if (g[0] === 8193 && g[1] === 3512) return true;
|
|
2724
|
+
if (g[0] === 100 && g[1] === 65435 && g[2] === 1) return true;
|
|
2725
|
+
const v4 = embeddedIPv4(ip);
|
|
2726
|
+
if (v4 && isPrivateIPv4(v4)) return true;
|
|
2680
2727
|
return false;
|
|
2681
2728
|
}
|
|
2682
2729
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ever-works/activepieces-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Activepieces Automation Pipeline Plugin - Delegates Work generation steps to Activepieces flows",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Ever Co. LTD",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"test:coverage": "vitest run --coverage"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@ever-works/plugin": "^1.2.
|
|
36
|
+
"@ever-works/plugin": "^1.2.9"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@ever-works/plugin": "^1.2.
|
|
39
|
+
"@ever-works/plugin": "^1.2.9",
|
|
40
40
|
"@types/node": "^26.6.4",
|
|
41
41
|
"tsup": "^8.0.0",
|
|
42
42
|
"typescript": "^5.9.3",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"url": "https://github.com/ever-works/ever-works/issues"
|
|
77
77
|
},
|
|
78
78
|
"everworksRelease": {
|
|
79
|
-
"contentHash": "sha256:
|
|
80
|
-
"commit": "
|
|
81
|
-
"source": "https://github.com/ever-works/ever-works/tree/
|
|
79
|
+
"contentHash": "sha256:ab45e1abb88fc67ca4be7bfc1067bb433885299fb505a706779a0c7347d43834",
|
|
80
|
+
"commit": "5b5a17e1cdc02e06383d508a6424a863521fc3e0",
|
|
81
|
+
"source": "https://github.com/ever-works/ever-works/tree/5b5a17e1cdc02e06383d508a6424a863521fc3e0/packages/plugins/activepieces"
|
|
82
82
|
}
|
|
83
83
|
}
|