@ever-works/activepieces-plugin 1.0.11 → 1.0.13

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 CHANGED
@@ -1193,6 +1193,9 @@ var FLEET_LINK_CONTROL_TYPES = [
1193
1193
  var CONTROL_TYPES = new Set(FLEET_LINK_CONTROL_TYPES);
1194
1194
  var KIND_JSON = FLEET_LINK_FRAME_KINDS.JSON;
1195
1195
  var utf8Encoder = new TextEncoder();
1196
+ var FLEET_LINK_VIEWER_SLOW_BUFFER_BYTES = 8 * 1024 * 1024;
1197
+ var FLEET_LINK_VIEWER_MAX_BUFFER_BYTES = 32 * 1024 * 1024;
1198
+ var FLEET_LINK_VIEWER_FRAME_KINDS = [FLEET_LINK_FRAME_KINDS.ACK];
1196
1199
  var FLEET_MODEL_USAGE_LIMIT_FALLBACK_MS = 60 * 60 * 1e3;
1197
1200
  var FLEET_MODEL_USAGE_LIMIT_MIN_MS = 60 * 1e3;
1198
1201
  var FLEET_MODEL_USAGE_LIMIT_MAX_MS = 8 * 24 * 60 * 60 * 1e3;
@@ -2658,6 +2661,7 @@ function isSafeWebhookUrl(rawUrl) {
2658
2661
  if (host.startsWith("[") && host.endsWith("]")) {
2659
2662
  host = host.slice(1, -1);
2660
2663
  }
2664
+ host = host.replace(/\.+$/, "");
2661
2665
  if (CLOUD_METADATA_HOSTNAMES.has(host)) {
2662
2666
  return false;
2663
2667
  }
@@ -2687,23 +2691,69 @@ function isPrivateIPv4(ip) {
2687
2691
  if (a === 172 && b >= 16 && b <= 31) return true;
2688
2692
  if (a === 192 && b === 168) return true;
2689
2693
  if (a === 192 && b === 0 && parts[2] === 0) return true;
2694
+ if (a === 198 && (b === 18 || b === 19)) return true;
2695
+ if (a === 192 && b === 0 && parts[2] === 2) return true;
2696
+ if (a === 198 && b === 51 && parts[2] === 100) return true;
2697
+ if (a === 203 && b === 0 && parts[2] === 113) return true;
2690
2698
  if (a === 100 && b >= 64 && b <= 127) return true;
2691
2699
  if (a >= 224) return true;
2692
2700
  return false;
2693
2701
  }
2694
- function isPrivateIPv6(ip) {
2695
- const lower = ip.toLowerCase();
2696
- if (lower === "::1" || lower === "::") return true;
2697
- if (lower.startsWith("fc") || lower.startsWith("fd")) return true;
2698
- const firstHextet = lower.split(":", 1)[0];
2699
- if (/^[0-9a-f]{1,4}$/.test(firstHextet)) {
2700
- const group0 = parseInt(firstHextet, 16);
2701
- if ((group0 & 65472) === 65152) return true;
2702
- }
2703
- if (lower.startsWith("::ffff:")) {
2704
- const v4 = lower.slice("::ffff:".length);
2705
- if ((0, import_net.isIP)(v4) === 4) return isPrivateIPv4(v4);
2702
+ function parseIPv6Groups(ip) {
2703
+ let text = ip.trim().toLowerCase();
2704
+ const zone = text.indexOf("%");
2705
+ if (zone >= 0) text = text.slice(0, zone);
2706
+ if ((0, import_net.isIP)(text) !== 6) return null;
2707
+ const lastColon = text.lastIndexOf(":");
2708
+ const tail = text.slice(lastColon + 1);
2709
+ if (tail.includes(".")) {
2710
+ if ((0, import_net.isIP)(tail) !== 4) return null;
2711
+ const [a, b, c, d] = tail.split(".").map((part) => Number(part));
2712
+ text = `${text.slice(0, lastColon + 1)}${(a << 8 | b).toString(16)}:${(c << 8 | d).toString(16)}`;
2713
+ }
2714
+ const halves = text.split("::");
2715
+ if (halves.length > 2) return null;
2716
+ const head = halves[0] ? halves[0].split(":") : [];
2717
+ const rest = halves.length === 2 && halves[1] ? halves[1].split(":") : [];
2718
+ const fill = halves.length === 2 ? 8 - head.length - rest.length : 0;
2719
+ if (fill < 0) return null;
2720
+ const groups = [...head, ...new Array(fill).fill("0"), ...rest].map((group) => parseInt(group, 16));
2721
+ if (groups.length !== 8 || groups.some((group) => Number.isNaN(group) || group < 0 || group > 65535)) {
2722
+ return null;
2706
2723
  }
2724
+ return groups;
2725
+ }
2726
+ function ipv4FromGroups(high, low) {
2727
+ return `${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`;
2728
+ }
2729
+ function embeddedIPv4(ip) {
2730
+ const g = parseIPv6Groups(ip);
2731
+ if (!g) return null;
2732
+ const zeros = (from, to) => g.slice(from, to).every((group) => group === 0);
2733
+ if (zeros(0, 5) && g[5] === 65535) return ipv4FromGroups(g[6], g[7]);
2734
+ if (zeros(0, 4) && g[4] === 65535 && g[5] === 0) return ipv4FromGroups(g[6], g[7]);
2735
+ if (zeros(0, 6) && (g[6] !== 0 || g[7] > 1)) return ipv4FromGroups(g[6], g[7]);
2736
+ if (g[0] === 100 && g[1] === 65435 && zeros(2, 6)) return ipv4FromGroups(g[6], g[7]);
2737
+ if (g[0] === 8194) return ipv4FromGroups(g[1], g[2]);
2738
+ if (g[0] === 8193 && g[1] === 0) return ipv4FromGroups(g[6] ^ 65535, g[7] ^ 65535);
2739
+ return null;
2740
+ }
2741
+ function isPrivateIPv6(ip) {
2742
+ const g = parseIPv6Groups(ip);
2743
+ if (!g) {
2744
+ const lower = ip.toLowerCase();
2745
+ return lower === "::1" || lower === "::" || lower.startsWith("fc") || lower.startsWith("fd");
2746
+ }
2747
+ if (g.every((group) => group === 0)) return true;
2748
+ if (g.slice(0, 7).every((group) => group === 0) && g[7] === 1) return true;
2749
+ if ((g[0] & 65024) === 64512) return true;
2750
+ if ((g[0] & 65472) === 65152) return true;
2751
+ if ((g[0] & 65472) === 65216) return true;
2752
+ if ((g[0] & 65280) === 65280) return true;
2753
+ if (g[0] === 8193 && g[1] === 3512) return true;
2754
+ if (g[0] === 100 && g[1] === 65435 && g[2] === 1) return true;
2755
+ const v4 = embeddedIPv4(ip);
2756
+ if (v4 && isPrivateIPv4(v4)) return true;
2707
2757
  return false;
2708
2758
  }
2709
2759
 
package/dist/index.js CHANGED
@@ -1166,6 +1166,9 @@ var FLEET_LINK_CONTROL_TYPES = [
1166
1166
  var CONTROL_TYPES = new Set(FLEET_LINK_CONTROL_TYPES);
1167
1167
  var KIND_JSON = FLEET_LINK_FRAME_KINDS.JSON;
1168
1168
  var utf8Encoder = new TextEncoder();
1169
+ var FLEET_LINK_VIEWER_SLOW_BUFFER_BYTES = 8 * 1024 * 1024;
1170
+ var FLEET_LINK_VIEWER_MAX_BUFFER_BYTES = 32 * 1024 * 1024;
1171
+ var FLEET_LINK_VIEWER_FRAME_KINDS = [FLEET_LINK_FRAME_KINDS.ACK];
1169
1172
  var FLEET_MODEL_USAGE_LIMIT_FALLBACK_MS = 60 * 60 * 1e3;
1170
1173
  var FLEET_MODEL_USAGE_LIMIT_MIN_MS = 60 * 1e3;
1171
1174
  var FLEET_MODEL_USAGE_LIMIT_MAX_MS = 8 * 24 * 60 * 60 * 1e3;
@@ -2631,6 +2634,7 @@ function isSafeWebhookUrl(rawUrl) {
2631
2634
  if (host.startsWith("[") && host.endsWith("]")) {
2632
2635
  host = host.slice(1, -1);
2633
2636
  }
2637
+ host = host.replace(/\.+$/, "");
2634
2638
  if (CLOUD_METADATA_HOSTNAMES.has(host)) {
2635
2639
  return false;
2636
2640
  }
@@ -2660,23 +2664,69 @@ function isPrivateIPv4(ip) {
2660
2664
  if (a === 172 && b >= 16 && b <= 31) return true;
2661
2665
  if (a === 192 && b === 168) return true;
2662
2666
  if (a === 192 && b === 0 && parts[2] === 0) return true;
2667
+ if (a === 198 && (b === 18 || b === 19)) return true;
2668
+ if (a === 192 && b === 0 && parts[2] === 2) return true;
2669
+ if (a === 198 && b === 51 && parts[2] === 100) return true;
2670
+ if (a === 203 && b === 0 && parts[2] === 113) return true;
2663
2671
  if (a === 100 && b >= 64 && b <= 127) return true;
2664
2672
  if (a >= 224) return true;
2665
2673
  return false;
2666
2674
  }
2667
- function isPrivateIPv6(ip) {
2668
- const lower = ip.toLowerCase();
2669
- if (lower === "::1" || lower === "::") return true;
2670
- if (lower.startsWith("fc") || lower.startsWith("fd")) return true;
2671
- const firstHextet = lower.split(":", 1)[0];
2672
- if (/^[0-9a-f]{1,4}$/.test(firstHextet)) {
2673
- const group0 = parseInt(firstHextet, 16);
2674
- if ((group0 & 65472) === 65152) return true;
2675
- }
2676
- if (lower.startsWith("::ffff:")) {
2677
- const v4 = lower.slice("::ffff:".length);
2678
- if (isIP(v4) === 4) return isPrivateIPv4(v4);
2675
+ function parseIPv6Groups(ip) {
2676
+ let text = ip.trim().toLowerCase();
2677
+ const zone = text.indexOf("%");
2678
+ if (zone >= 0) text = text.slice(0, zone);
2679
+ if (isIP(text) !== 6) return null;
2680
+ const lastColon = text.lastIndexOf(":");
2681
+ const tail = text.slice(lastColon + 1);
2682
+ if (tail.includes(".")) {
2683
+ if (isIP(tail) !== 4) return null;
2684
+ const [a, b, c, d] = tail.split(".").map((part) => Number(part));
2685
+ text = `${text.slice(0, lastColon + 1)}${(a << 8 | b).toString(16)}:${(c << 8 | d).toString(16)}`;
2686
+ }
2687
+ const halves = text.split("::");
2688
+ if (halves.length > 2) return null;
2689
+ const head = halves[0] ? halves[0].split(":") : [];
2690
+ const rest = halves.length === 2 && halves[1] ? halves[1].split(":") : [];
2691
+ const fill = halves.length === 2 ? 8 - head.length - rest.length : 0;
2692
+ if (fill < 0) return null;
2693
+ const groups = [...head, ...new Array(fill).fill("0"), ...rest].map((group) => parseInt(group, 16));
2694
+ if (groups.length !== 8 || groups.some((group) => Number.isNaN(group) || group < 0 || group > 65535)) {
2695
+ return null;
2679
2696
  }
2697
+ return groups;
2698
+ }
2699
+ function ipv4FromGroups(high, low) {
2700
+ return `${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`;
2701
+ }
2702
+ function embeddedIPv4(ip) {
2703
+ const g = parseIPv6Groups(ip);
2704
+ if (!g) return null;
2705
+ const zeros = (from, to) => g.slice(from, to).every((group) => group === 0);
2706
+ if (zeros(0, 5) && g[5] === 65535) return ipv4FromGroups(g[6], g[7]);
2707
+ if (zeros(0, 4) && g[4] === 65535 && g[5] === 0) return ipv4FromGroups(g[6], g[7]);
2708
+ if (zeros(0, 6) && (g[6] !== 0 || g[7] > 1)) return ipv4FromGroups(g[6], g[7]);
2709
+ if (g[0] === 100 && g[1] === 65435 && zeros(2, 6)) return ipv4FromGroups(g[6], g[7]);
2710
+ if (g[0] === 8194) return ipv4FromGroups(g[1], g[2]);
2711
+ if (g[0] === 8193 && g[1] === 0) return ipv4FromGroups(g[6] ^ 65535, g[7] ^ 65535);
2712
+ return null;
2713
+ }
2714
+ function isPrivateIPv6(ip) {
2715
+ const g = parseIPv6Groups(ip);
2716
+ if (!g) {
2717
+ const lower = ip.toLowerCase();
2718
+ return lower === "::1" || lower === "::" || lower.startsWith("fc") || lower.startsWith("fd");
2719
+ }
2720
+ if (g.every((group) => group === 0)) return true;
2721
+ if (g.slice(0, 7).every((group) => group === 0) && g[7] === 1) return true;
2722
+ if ((g[0] & 65024) === 64512) return true;
2723
+ if ((g[0] & 65472) === 65152) return true;
2724
+ if ((g[0] & 65472) === 65216) return true;
2725
+ if ((g[0] & 65280) === 65280) return true;
2726
+ if (g[0] === 8193 && g[1] === 3512) return true;
2727
+ if (g[0] === 100 && g[1] === 65435 && g[2] === 1) return true;
2728
+ const v4 = embeddedIPv4(ip);
2729
+ if (v4 && isPrivateIPv4(v4)) return true;
2680
2730
  return false;
2681
2731
  }
2682
2732
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ever-works/activepieces-plugin",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
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.8"
36
+ "@ever-works/plugin": "^1.2.9"
37
37
  },
38
38
  "devDependencies": {
39
- "@ever-works/plugin": "^1.2.8",
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:9239f14d8e4b7ddd3dbf095113bfb205cf825b1013d3a52b0fa0499ff8f9b04c",
80
- "commit": "efd11a2282ea3e514e93f754b9b008543a7cff60",
81
- "source": "https://github.com/ever-works/ever-works/tree/efd11a2282ea3e514e93f754b9b008543a7cff60/packages/plugins/activepieces"
79
+ "contentHash": "sha256:9d1d9bb6947b46ca73a46e598902d7dd964dc50c1462ebef87010284837e6d00",
80
+ "commit": "cb5c30537ba743d2dc5a4875693fcb517591e001",
81
+ "source": "https://github.com/ever-works/ever-works/tree/cb5c30537ba743d2dc5a4875693fcb517591e001/packages/plugins/activepieces"
82
82
  }
83
83
  }