@synergenius/flow-weaver 0.9.2 → 0.9.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/cli/flow-weaver.mjs +770 -308
- package/dist/constants.d.ts +6 -0
- package/dist/constants.js +22 -0
- package/dist/diagram/geometry.js +4 -1
- package/dist/diagram/html-viewer.js +6 -6
- package/dist/diagram/theme.d.ts +2 -0
- package/dist/diagram/theme.js +5 -0
- package/dist/editor-completions/annotationValues.js +8 -0
- package/dist/friendly-errors.js +92 -0
- package/dist/jsdoc-parser.js +71 -3
- package/dist/validator.d.ts +6 -0
- package/dist/validator.js +200 -2
- package/package.json +3 -2
package/dist/cli/flow-weaver.mjs
CHANGED
|
@@ -9498,7 +9498,7 @@ function isScopedMandatoryPort(portName) {
|
|
|
9498
9498
|
function isControlFlowPort(portName) {
|
|
9499
9499
|
return isExecutePort(portName) || isSuccessPort(portName) || isFailurePort(portName);
|
|
9500
9500
|
}
|
|
9501
|
-
var RESERVED_NODE_NAMES, RESERVED_PORT_NAMES, SCOPED_PORT_NAMES, EXECUTION_STRATEGIES;
|
|
9501
|
+
var RESERVED_NODE_NAMES, RESERVED_PORT_NAMES, SCOPED_PORT_NAMES, EXECUTION_STRATEGIES, VALID_NODE_COLORS, KNOWN_NODETYPE_TAGS, KNOWN_WORKFLOW_TAGS, KNOWN_PATTERN_TAGS, STANDARD_JSDOC_TAGS;
|
|
9502
9502
|
var init_constants = __esm({
|
|
9503
9503
|
"src/constants.ts"() {
|
|
9504
9504
|
"use strict";
|
|
@@ -9524,6 +9524,169 @@ var init_constants = __esm({
|
|
|
9524
9524
|
DISJUNCTION: "DISJUNCTION",
|
|
9525
9525
|
CUSTOM: "CUSTOM"
|
|
9526
9526
|
};
|
|
9527
|
+
VALID_NODE_COLORS = [
|
|
9528
|
+
"blue",
|
|
9529
|
+
"purple",
|
|
9530
|
+
"cyan",
|
|
9531
|
+
"orange",
|
|
9532
|
+
"pink",
|
|
9533
|
+
"green",
|
|
9534
|
+
"red",
|
|
9535
|
+
"yellow",
|
|
9536
|
+
"teal"
|
|
9537
|
+
];
|
|
9538
|
+
KNOWN_NODETYPE_TAGS = /* @__PURE__ */ new Set([
|
|
9539
|
+
"flowWeaver",
|
|
9540
|
+
"name",
|
|
9541
|
+
"label",
|
|
9542
|
+
"description",
|
|
9543
|
+
"color",
|
|
9544
|
+
"icon",
|
|
9545
|
+
"tag",
|
|
9546
|
+
"executeWhen",
|
|
9547
|
+
"scope",
|
|
9548
|
+
"expression",
|
|
9549
|
+
"pullExecution",
|
|
9550
|
+
"input",
|
|
9551
|
+
"output",
|
|
9552
|
+
"step"
|
|
9553
|
+
]);
|
|
9554
|
+
KNOWN_WORKFLOW_TAGS = /* @__PURE__ */ new Set([
|
|
9555
|
+
"flowWeaver",
|
|
9556
|
+
"name",
|
|
9557
|
+
"fwImport",
|
|
9558
|
+
"description",
|
|
9559
|
+
"strictTypes",
|
|
9560
|
+
"autoConnect",
|
|
9561
|
+
"node",
|
|
9562
|
+
"position",
|
|
9563
|
+
"connect",
|
|
9564
|
+
"scope",
|
|
9565
|
+
"map",
|
|
9566
|
+
"path",
|
|
9567
|
+
"fanOut",
|
|
9568
|
+
"fanIn",
|
|
9569
|
+
"coerce",
|
|
9570
|
+
"trigger",
|
|
9571
|
+
"cancelOn",
|
|
9572
|
+
"retries",
|
|
9573
|
+
"timeout",
|
|
9574
|
+
"throttle",
|
|
9575
|
+
"param",
|
|
9576
|
+
"return",
|
|
9577
|
+
"returns"
|
|
9578
|
+
]);
|
|
9579
|
+
KNOWN_PATTERN_TAGS = /* @__PURE__ */ new Set([
|
|
9580
|
+
"flowWeaver",
|
|
9581
|
+
"name",
|
|
9582
|
+
"description",
|
|
9583
|
+
"node",
|
|
9584
|
+
"position",
|
|
9585
|
+
"connect",
|
|
9586
|
+
"port"
|
|
9587
|
+
]);
|
|
9588
|
+
STANDARD_JSDOC_TAGS = /* @__PURE__ */ new Set([
|
|
9589
|
+
"example",
|
|
9590
|
+
"see",
|
|
9591
|
+
"deprecated",
|
|
9592
|
+
"type",
|
|
9593
|
+
"typedef",
|
|
9594
|
+
"template",
|
|
9595
|
+
"link",
|
|
9596
|
+
"since",
|
|
9597
|
+
"version",
|
|
9598
|
+
"author"
|
|
9599
|
+
]);
|
|
9600
|
+
}
|
|
9601
|
+
});
|
|
9602
|
+
|
|
9603
|
+
// src/type-mappings.ts
|
|
9604
|
+
function mapToTypeScript(portType, tsType) {
|
|
9605
|
+
const mapping = PORT_TYPE_MAPPINGS[portType];
|
|
9606
|
+
if (!mapping) {
|
|
9607
|
+
console.warn(`Unknown port type: ${portType}, defaulting to 'unknown'`);
|
|
9608
|
+
return "unknown";
|
|
9609
|
+
}
|
|
9610
|
+
if (tsType && (portType === "OBJECT" || portType === "ANY" || portType === "ARRAY" || portType === "FUNCTION")) {
|
|
9611
|
+
return tsType;
|
|
9612
|
+
}
|
|
9613
|
+
return mapping.typescript;
|
|
9614
|
+
}
|
|
9615
|
+
function isValidPortType(type2) {
|
|
9616
|
+
return type2 in PORT_TYPE_MAPPINGS;
|
|
9617
|
+
}
|
|
9618
|
+
function inferDataTypeFromTS(tsType) {
|
|
9619
|
+
const normalized = tsType.trim();
|
|
9620
|
+
if (normalized === "string") return "STRING";
|
|
9621
|
+
if (normalized === "number") return "NUMBER";
|
|
9622
|
+
if (normalized === "boolean") return "BOOLEAN";
|
|
9623
|
+
if (normalized === "any" || normalized === "unknown" || normalized === "never") {
|
|
9624
|
+
return "ANY";
|
|
9625
|
+
}
|
|
9626
|
+
if (normalized === "void" || normalized === "undefined" || normalized === "null") {
|
|
9627
|
+
return "ANY";
|
|
9628
|
+
}
|
|
9629
|
+
if (normalized.endsWith("[]") || normalized.startsWith("Array<") || normalized.startsWith("ReadonlyArray<")) {
|
|
9630
|
+
return "ARRAY";
|
|
9631
|
+
}
|
|
9632
|
+
if (normalized.includes("=>") || normalized === "Function" || normalized.startsWith("(")) {
|
|
9633
|
+
return "FUNCTION";
|
|
9634
|
+
}
|
|
9635
|
+
if (normalized.startsWith("Promise<") && normalized.endsWith(">")) {
|
|
9636
|
+
const inner = normalized.slice(8, -1);
|
|
9637
|
+
return inferDataTypeFromTS(inner);
|
|
9638
|
+
}
|
|
9639
|
+
if (normalized.includes("|")) {
|
|
9640
|
+
const parts2 = normalized.split("|").map((p) => p.trim());
|
|
9641
|
+
const nonNullParts = parts2.filter((p) => p !== "undefined" && p !== "null");
|
|
9642
|
+
if (nonNullParts.length === 1) {
|
|
9643
|
+
return inferDataTypeFromTS(nonNullParts[0]);
|
|
9644
|
+
}
|
|
9645
|
+
return "ANY";
|
|
9646
|
+
}
|
|
9647
|
+
if (normalized.includes("&")) {
|
|
9648
|
+
return "OBJECT";
|
|
9649
|
+
}
|
|
9650
|
+
return "OBJECT";
|
|
9651
|
+
}
|
|
9652
|
+
var PORT_TYPE_MAPPINGS;
|
|
9653
|
+
var init_type_mappings = __esm({
|
|
9654
|
+
"src/type-mappings.ts"() {
|
|
9655
|
+
"use strict";
|
|
9656
|
+
PORT_TYPE_MAPPINGS = {
|
|
9657
|
+
STRING: {
|
|
9658
|
+
typescript: "string",
|
|
9659
|
+
description: "Text value"
|
|
9660
|
+
},
|
|
9661
|
+
NUMBER: {
|
|
9662
|
+
typescript: "number",
|
|
9663
|
+
description: "Numeric value"
|
|
9664
|
+
},
|
|
9665
|
+
BOOLEAN: {
|
|
9666
|
+
typescript: "boolean",
|
|
9667
|
+
description: "True or false value"
|
|
9668
|
+
},
|
|
9669
|
+
ARRAY: {
|
|
9670
|
+
typescript: "unknown[]",
|
|
9671
|
+
description: "Array of values"
|
|
9672
|
+
},
|
|
9673
|
+
OBJECT: {
|
|
9674
|
+
typescript: "Record<string, unknown>",
|
|
9675
|
+
description: "Object with properties"
|
|
9676
|
+
},
|
|
9677
|
+
FUNCTION: {
|
|
9678
|
+
typescript: "(...args: unknown[]) => unknown",
|
|
9679
|
+
description: "Function or callback"
|
|
9680
|
+
},
|
|
9681
|
+
ANY: {
|
|
9682
|
+
typescript: "unknown",
|
|
9683
|
+
description: "Any type of value"
|
|
9684
|
+
},
|
|
9685
|
+
STEP: {
|
|
9686
|
+
typescript: "boolean",
|
|
9687
|
+
description: "Control flow signal (boolean in public API)"
|
|
9688
|
+
}
|
|
9689
|
+
};
|
|
9527
9690
|
}
|
|
9528
9691
|
});
|
|
9529
9692
|
|
|
@@ -11869,6 +12032,236 @@ var init_type_checker = __esm({
|
|
|
11869
12032
|
}
|
|
11870
12033
|
});
|
|
11871
12034
|
|
|
12035
|
+
// src/diagram/theme.ts
|
|
12036
|
+
function getTheme(name) {
|
|
12037
|
+
return name === "light" ? LIGHT_PALETTE : DARK_PALETTE;
|
|
12038
|
+
}
|
|
12039
|
+
function getPortColor(dataType, isFailure, theme = "dark") {
|
|
12040
|
+
if (isFailure) return theme === "dark" ? DARK_FAILURE_COLOR : LIGHT_FAILURE_COLOR;
|
|
12041
|
+
const colors2 = theme === "dark" ? DARK_PORT_COLORS : LIGHT_PORT_COLORS;
|
|
12042
|
+
return colors2[dataType] ?? colors2.ANY;
|
|
12043
|
+
}
|
|
12044
|
+
function getPortRingColor(dataType, isFailure, theme = "dark") {
|
|
12045
|
+
const color = getPortColor(dataType, isFailure, theme);
|
|
12046
|
+
return darkenHex(color, 0.4);
|
|
12047
|
+
}
|
|
12048
|
+
function darkenHex(hex, amount) {
|
|
12049
|
+
const r = parseInt(hex.slice(1, 3), 16);
|
|
12050
|
+
const g = parseInt(hex.slice(3, 5), 16);
|
|
12051
|
+
const b = parseInt(hex.slice(5, 7), 16);
|
|
12052
|
+
const nr = Math.round(r * (1 - amount));
|
|
12053
|
+
const ng = Math.round(g * (1 - amount));
|
|
12054
|
+
const nb = Math.round(b * (1 - amount));
|
|
12055
|
+
return `#${nr.toString(16).padStart(2, "0")}${ng.toString(16).padStart(2, "0")}${nb.toString(16).padStart(2, "0")}`;
|
|
12056
|
+
}
|
|
12057
|
+
var DARK_PORT_COLORS, LIGHT_PORT_COLORS, DARK_FAILURE_COLOR, LIGHT_FAILURE_COLOR, NODE_VARIANT_COLORS, DARK_PALETTE, LIGHT_PALETTE, TYPE_ABBREVIATIONS, NODE_ICON_PATHS, VALID_NODE_ICONS;
|
|
12058
|
+
var init_theme = __esm({
|
|
12059
|
+
"src/diagram/theme.ts"() {
|
|
12060
|
+
"use strict";
|
|
12061
|
+
DARK_PORT_COLORS = {
|
|
12062
|
+
STEP: "#10e15a",
|
|
12063
|
+
// green-dark-shade-1
|
|
12064
|
+
STRING: "#5e9eff",
|
|
12065
|
+
// blue-dark-shade-1
|
|
12066
|
+
NUMBER: "#ffbd30",
|
|
12067
|
+
// yellow-dark-shade-1
|
|
12068
|
+
BOOLEAN: "#ff52da",
|
|
12069
|
+
// pink-dark-shade-1
|
|
12070
|
+
OBJECT: "#b36bff",
|
|
12071
|
+
// purple-dark-shade-1
|
|
12072
|
+
ARRAY: "#ff8133",
|
|
12073
|
+
// orange-dark-shade-1
|
|
12074
|
+
FUNCTION: "#e9916a",
|
|
12075
|
+
// brown-dark-shade-1
|
|
12076
|
+
ANY: "#6fe5dc"
|
|
12077
|
+
// cyan-dark-shade-1
|
|
12078
|
+
};
|
|
12079
|
+
LIGHT_PORT_COLORS = {
|
|
12080
|
+
STEP: "#0ec850",
|
|
12081
|
+
// green-shade-2
|
|
12082
|
+
STRING: "#548ce3",
|
|
12083
|
+
// blue-shade-2
|
|
12084
|
+
NUMBER: "#e3a82b",
|
|
12085
|
+
// yellow-shade-2
|
|
12086
|
+
BOOLEAN: "#e349c2",
|
|
12087
|
+
// pink-shade-2
|
|
12088
|
+
OBJECT: "#9f5fe3",
|
|
12089
|
+
// purple-shade-2
|
|
12090
|
+
ARRAY: "#e3732d",
|
|
12091
|
+
// orange-shade-2
|
|
12092
|
+
FUNCTION: "#cf815e",
|
|
12093
|
+
// brown-shade-2
|
|
12094
|
+
ANY: "#63ccc4"
|
|
12095
|
+
// cyan-shade-2
|
|
12096
|
+
};
|
|
12097
|
+
DARK_FAILURE_COLOR = "#ff4f4f";
|
|
12098
|
+
LIGHT_FAILURE_COLOR = "#e34646";
|
|
12099
|
+
NODE_VARIANT_COLORS = {
|
|
12100
|
+
blue: { border: "#548ce3", darkBorder: "#5e9eff" },
|
|
12101
|
+
// blue-shade-2 / blue-dark-shade-1
|
|
12102
|
+
purple: { border: "#9f5fe3", darkBorder: "#b36bff" },
|
|
12103
|
+
// purple-shade-2 / purple-dark-shade-1
|
|
12104
|
+
cyan: { border: "#63ccc4", darkBorder: "#6fe5dc" },
|
|
12105
|
+
// cyan-shade-2 / cyan-dark-shade-1
|
|
12106
|
+
orange: { border: "#e3732d", darkBorder: "#ff8133" },
|
|
12107
|
+
// orange-shade-2 / orange-dark-shade-1
|
|
12108
|
+
pink: { border: "#e349c2", darkBorder: "#ff52da" },
|
|
12109
|
+
// pink-shade-2 / pink-dark-shade-1
|
|
12110
|
+
green: { border: "#0ec850", darkBorder: "#10e15a" },
|
|
12111
|
+
// green-shade-2 / green-dark-shade-1
|
|
12112
|
+
red: { border: "#e34646", darkBorder: "#ff4f4f" },
|
|
12113
|
+
// red-shade-2 / red-dark-shade-1
|
|
12114
|
+
yellow: { border: "#e3a82b", darkBorder: "#ffbd30" },
|
|
12115
|
+
// yellow-shade-2 / yellow-dark-shade-1
|
|
12116
|
+
teal: { border: "#3db0a8", darkBorder: "#4dc7be" }
|
|
12117
|
+
// teal-shade-2 / teal-dark-shade-1
|
|
12118
|
+
};
|
|
12119
|
+
DARK_PALETTE = {
|
|
12120
|
+
background: "#202139",
|
|
12121
|
+
// color-brand-subtle-bg = primary-dark-extended-shade-95
|
|
12122
|
+
nodeFill: "#1a1a2e",
|
|
12123
|
+
// color-surface-main = dark-shade-100
|
|
12124
|
+
nodeStroke: "#767682",
|
|
12125
|
+
// color-border-default = dark-shade-60
|
|
12126
|
+
labelColor: "#a4beff",
|
|
12127
|
+
// secondary-dark-base (node label text)
|
|
12128
|
+
sublabelColor: "#babac0",
|
|
12129
|
+
// color-text-subtle = dark-shade-30
|
|
12130
|
+
connectionColor: "#5f5f6d",
|
|
12131
|
+
// color-border-subtle = dark-shade-70
|
|
12132
|
+
dotColor: "#8e9eff",
|
|
12133
|
+
// color-background-dots = primary-dark-tint-1
|
|
12134
|
+
labelBadgeFill: "#252538",
|
|
12135
|
+
// color-surface-low = dark-shade-95
|
|
12136
|
+
labelBadgeBorder: "#313143",
|
|
12137
|
+
// color-surface-lowest = dark-shade-90
|
|
12138
|
+
nodeIconColor: "#a4beff",
|
|
12139
|
+
// secondary-dark-base (matches label color)
|
|
12140
|
+
scopeAreaStroke: "#5f5f6d"
|
|
12141
|
+
// color-border-subtle = dark-shade-70
|
|
12142
|
+
};
|
|
12143
|
+
LIGHT_PALETTE = {
|
|
12144
|
+
background: "#f6f7ff",
|
|
12145
|
+
// color-brand-subtle-bg = primary-extended-tint-95
|
|
12146
|
+
nodeFill: "#ffffff",
|
|
12147
|
+
// color-surface-main = white
|
|
12148
|
+
nodeStroke: "#cccccc",
|
|
12149
|
+
// color-border-default ≈ shade-20
|
|
12150
|
+
labelColor: "#223354",
|
|
12151
|
+
// secondary-base (light)
|
|
12152
|
+
sublabelColor: "#808080",
|
|
12153
|
+
// shade-50
|
|
12154
|
+
connectionColor: "#b3b3b3",
|
|
12155
|
+
// shade-30
|
|
12156
|
+
dotColor: "#5468ff",
|
|
12157
|
+
// color-background-dots = primary-shade-1
|
|
12158
|
+
labelBadgeFill: "#ffffff",
|
|
12159
|
+
// surface-main — 80% opacity applied in renderer
|
|
12160
|
+
labelBadgeBorder: "#e6e6e6",
|
|
12161
|
+
// shade-10
|
|
12162
|
+
nodeIconColor: "#5468ff",
|
|
12163
|
+
// primary-base (light)
|
|
12164
|
+
scopeAreaStroke: "#cccccc"
|
|
12165
|
+
// color-border-default
|
|
12166
|
+
};
|
|
12167
|
+
TYPE_ABBREVIATIONS = {
|
|
12168
|
+
STEP: "STP",
|
|
12169
|
+
STRING: "STR",
|
|
12170
|
+
NUMBER: "NUM",
|
|
12171
|
+
BOOLEAN: "BOOL",
|
|
12172
|
+
OBJECT: "OBJ",
|
|
12173
|
+
ARRAY: "ARR",
|
|
12174
|
+
FUNCTION: "FN",
|
|
12175
|
+
ANY: "ANY"
|
|
12176
|
+
};
|
|
12177
|
+
NODE_ICON_PATHS = {
|
|
12178
|
+
// ---- Virtual node icons ----
|
|
12179
|
+
startNode: "M314.02-192v-582l457.22 291-457.22 291Zm68.13-291Zm0 166.93L644.93-483 382.15-649.93v333.86Z",
|
|
12180
|
+
exitNode: "M302.15-657.85v355.7-355.7Zm-68.13 423.83v-492.2h492.2v492.2h-492.2Zm68.13-68.13h355.7v-355.7h-355.7v355.7Z",
|
|
12181
|
+
// ---- Default / structural ----
|
|
12182
|
+
code: "M317.37-236.26 71.39-482l247.98-247.98 48.98 48.74-199 199 197 197-48.98 48.98Zm323.26 2.24-48.74-48.74 199-199-197-197 48.74-48.98L888.61-482 640.63-234.02Z",
|
|
12183
|
+
flow: "M115.93-115.93v-188.14h157.83l173.61-173.6v-143.74q-35.74-12.79-58.59-42.23-22.85-29.43-22.85-66.36 0-47.53 33.31-80.8 33.3-33.27 80.88-33.27 47.57 0 80.76 33.27 33.19 33.27 33.19 80.8 0 36.93-22.85 66.36-22.85 29.44-58.59 42.23v143.74l173.85 173.6h157.59v188.14H655.93v-121.5L480-413.37 304.07-237.43v121.5H115.93Z",
|
|
12184
|
+
// ---- AI & ML ----
|
|
12185
|
+
psychology: "M234.74-74.74v-174.87q-57-52.72-88.5-122.93-31.5-70.22-31.5-147.46 0-152.29 106.5-258.9 106.5-106.6 258.65-106.6 126.78 0 224.72 74.82 97.93 74.81 127.65 194.48l55.24 219.44q4.48 16.15-5.7 29.09-10.17 12.93-27.13 12.93H765.5v131.87q0 28.35-19.96 48.24t-48.41 19.89H605.5v80h-68.37v-148.13h160v-200h113.28l-44.04-176.41q-24-95.81-104.28-156.83-80.29-61.02-181.98-61.02-123.86 0-210.55 85.74-86.69 85.75-86.69 208.98 0 63.62 26.08 121.25 26.09 57.63 73.96 102.01l19.96 18.92v205.49h-68.13Zm262.02-371.19ZM449-374h60l3-44q12-2 22.5-8.46 10.49-6.46 18.52-14.54l41.74 14L623-475l-30-24q5-14 5-29t-5-29l30-24-28.24-48-41.71 14q-8.3-7.69-19.15-13.85-10.86-6.15-21.88-9.15L509-682h-60l-3 44q-11 3-21.83 9.15-10.84 6.16-19.12 13.85l-41.57-14L335-581l30 24q-5 14-5 29t5 29l-30 24 28.48 48 41.57-14q8.01 8.08 18.48 14.54Q434-420 446-418l3 44Zm30.12-84q-29.12 0-49.62-20.38-20.5-20.38-20.5-49.5t20.38-49.62q20.38-20.5 49.5-20.5t49.62 20.38q20.5 20.38 20.5 49.5t-20.38 49.62q-20.38 20.5-49.5 20.5Z",
|
|
12186
|
+
smartToy: "M141.5-376q-45 0-76-31.21T34.5-483q0-44.58 31.21-75.79Q96.92-590 141.5-590v-128.5q0-24 18-42t42-18H373q0-45 31.21-76t75.79-31q44.58 0 75.79 31.21Q587-823.08 587-778.5h171.5q24 0 42 18t18 42V-590q45 0 76 31.21t31 75.79q0 44.58-31.21 75.79Q863.08-376 818.5-376v201.5q0 24-18 42t-42 18h-557q-24 0-42-18t-18-42V-376Zm203.17-101.43q17.24 0 29.1-12.1 11.86-12.09 11.86-29.46 0-17.36-12.09-29.22-12.1-11.86-29.34-11.86-17.24 0-29.22 12.08Q303-535.92 303-518.4q0 17.25 12.21 29.11 12.22 11.86 29.46 11.86Zm271.13 0q17.24 0 29.22-12.1Q657-501.62 657-518.99q0-17.36-12.21-29.22-12.22-11.86-29.46-11.86-17.24 0-29.1 12.08-11.86 12.07-11.86 29.59 0 17.25 12.09 29.11 12.1 11.86 29.34 11.86ZM314.63-285h330.74v-62.63H314.63V-285Zm-105 102.37h540.74v-527.74H209.63v527.74ZM480-447Z",
|
|
12187
|
+
autoAwesome: "M352.39-107.15 307-253.85l-148.85-44.54 148.85-44.78L352.39-490l45.15 147.43L544.63-298.4l-147.09 44.56-45.15 146.69Zm370-290.85-28.52-92.39-94.24-28.24 94.24-28.48 28.52-92.15 28.28 92.15 94.72 28.48-94.72 28.24-28.28 92.39ZM192.15-502.52l-17.76-58.52-58.52-18.72 58.52-17.48 17.76-59.24 18.48 59.24 58.52 17.48-58.52 18.72-18.48 58.52Z",
|
|
12188
|
+
modelTraining: "M198.35-197.15q-42.92-50.15-66.37-111.69-23.46-61.53-23.46-131.16 0-152.63 106.08-260.24 106.07-107.61 259.42-110 9.76 0 20.02.5t17.79 1.5l-80.29-80.28 43.92-44.15L641.2-766.93 475.46-600.96l-44.68-44.67 92.24-92.24q-11-2-25.88-3-14.88-1-22.64-1-125.24 1.91-211.42 89.75-86.19 87.84-86.19 212.12 0 50.28 16.88 102.36 16.88 52.07 53.56 91.75l-48.98 48.74Zm242.69-5.44q0-21.71-15.47-44.31-15.48-22.6-33.58-46.2-18.1-23.6-33.46-49.81-15.36-26.22-15.36-55.18 0-56.67 40.2-96.75 40.2-40.07 96.63-40.07 56.67 0 96.75 40.07 40.08 40.08 40.08 96.75 0 28.96-15.36 55.18-15.36 26.21-33.46 49.81t-33.46 46.2q-15.35 22.6-15.35 44.31h-78.16Zm-2 92.87v-51.67h82.16v51.67h-82.16Zm322.61-87.43-47.74-47.74q30.72-36.96 50.08-86.68 19.36-49.71 19.36-108.43 0-63.37-25.59-121.2-25.59-57.82-77.72-102.82l49.98-49.74q55.85 50.48 88.65 120.74 32.81 70.26 32.81 153.02 0 70.11-23.46 131.4-23.45 61.3-66.37 111.45Z",
|
|
12189
|
+
science: "M197.37-117.37v-65.26h208v-98.74h-15q-81.48-.96-137.24-57.67-55.76-56.72-55.76-137.96 0-60.28 34.04-109.8 34.05-49.53 89.85-70.72 3.52-40.24 34.04-66.44 30.53-26.19 71.29-25.11l-20.76-58.28 43.63-15.75-14-37.44 71.5-25.68 14.24 37 42.15-14.95 116.82 305.28-45.39 15.96 14 37-69.26 24.91-14.48-37-45.15 17.19-25-67.28q-14.52 15.57-33.82 22.47-19.31 6.9-41.21 6.14-26.62-.52-49.58-15.28-22.95-14.76-36.43-38.48-32.61 16.52-51.92 47.93-19.3 31.41-19.3 68.33 0 54.46 37.96 92.41 37.95 37.96 92.41 37.96h349.63v65.26h-232v98.74h252v65.26H197.37ZM556-572l53-19-80-206-53 19 80 206Zm-130.18-23q21.18 0 35.68-14.32 14.5-14.33 14.5-35.5 0-21.18-14.32-35.68-14.33-14.5-35.5-14.5-21.18 0-35.68 14.32-14.5 14.33-14.5 35.5 0 21.18 14.32 35.68 14.33 14.5 35.5 14.5ZM556-572Zm-130-75Zm2 0Z",
|
|
12190
|
+
biotech: "m573.85-153.3-47.74-47.74L634-308.93l-107.89-107.9 47.74-47.74 107.89 107.9 108.13-107.9 47.74 47.74-108.13 107.9 108.13 107.89-47.74 47.74-108.13-107.9-107.89 107.9Zm84.43-374.96L510.3-676l47.98-47.74 100 99 179-179.24L885.02-755 658.28-528.26ZM74.98-285.93v-68.14h364.06v68.14H74.98Zm0-320v-68.14h364.06v68.14H74.98Z",
|
|
12191
|
+
// ---- Data & storage ----
|
|
12192
|
+
database: "M480.11-114.02q-153.74 0-259.91-48.18Q114.02-210.37 114.02-280v-400q0-68.56 107.18-117.39 107.17-48.83 258.75-48.83 151.34 0 258.8 48.83Q846.22-748.56 846.22-680v400q0 69.63-106.31 117.8-106.3 48.18-259.8 48.18ZM480-608.24q85.84 0 175.94-26.38T772.76-694q-27.72-32-118.1-58.88-90.38-26.88-174.78-26.88-87.4 0-176.28 26T186.48-694q28.24 35 115.96 60.38 87.72 25.38 177.56 25.38Zm-1 213.76q41.76 0 83.43-4.62 41.68-4.62 79.98-13.74 38.3-9.12 73.47-22.36 35.16-13.23 63.88-29.47v-147.11q-29.48 16-64.6 29-35.12 13-73.88 21.88-38.76 8.88-79.52 13.76-40.76 4.88-82.85 4.88-41.6 0-83.33-4.88-41.72-4.88-80.17-13.88t-73.07-21.88q-34.62-12.88-61.86-28.88v147.11q27 16.24 61.24 29.35 34.24 13.12 72.74 22.36 38.5 9.24 80.29 13.86 41.8 4.62 84.25 4.62Zm1 214q47.52.24 98.04-8.14 50.53-8.38 93.03-22.26t72.23-31Q773.04-259 779.76-277v-119.74q-28.48 16.24-63.36 28.98-34.88 12.74-73.42 21.74-38.55 9-79.86 13.5t-84.12 4.5q-42.69 0-84.48-4.62-41.8-4.62-80.18-13.62-38.38-9-72.5-21.74-34.12-12.74-61.36-28.74v120.73q5.72 17.01 34.95 34.39 29.24 17.38 72.12 30.88 42.88 13.5 93.41 21.88 50.52 8.38 99.04 8.38Z",
|
|
12193
|
+
dataObject: "M573.59-154.02v-67.89H685.7q21.89 0 37.14-15.13 15.25-15.12 15.25-37.5v-94.5q0-37.24 22.5-66.6 22.5-29.36 57.98-40.44v-7.84q-35.48-10.08-57.98-39.94t-22.5-67.1v-94.74q0-22.14-15.13-37.26-15.12-15.13-37.26-15.13H573.59v-68.13h118.08q47.8 0 81.17 33.46 33.38 33.46 33.38 81.33v94.5q0 22.44 14.97 37.53 14.97 15.1 37.42 15.1h27.61v128.6h-27.61q-22.45 0-37.42 15.13-14.97 15.13-14.97 37.27v94.73q0 47.99-33.46 81.27-33.46 33.28-81.09 33.28H573.59Zm-305.26 0q-47.92 0-81.11-33.28-33.2-33.28-33.2-81.27v-94.73q0-22.14-15.12-37.27-15.13-15.13-37.27-15.13H74.02v-128.6h27.61q22.14 0 37.27-15.1 15.12-15.09 15.12-37.53v-94.5q0-47.87 33.28-81.33t81.03-33.46h118.08v68.13H274.54q-21.89 0-37.26 15.13-15.37 15.12-15.37 37.26v94.74q0 37.24-22.5 67.1-22.5 29.86-57.74 39.94v7.84q35.24 11.08 57.74 40.44t22.5 66.6v94.5q0 22.38 15.25 37.5 15.24 15.13 37.38 15.13h111.87v67.89H268.33Z",
|
|
12194
|
+
tableChart: "M777.85-115.02h-595.7q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-594.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v594.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27Zm-595.7-523.5h595.7v-139.33h-595.7v139.33Zm128.81 60H182.15v395.37h128.81v-395.37Zm338.08 0v395.37h128.81v-395.37H649.04Zm-60 0H370.96v395.37h218.08v-395.37Z",
|
|
12195
|
+
token: "M480-73.78 114.5-282.89v-405.46L480-886.22l365.5 197.87v405.46L480-73.78ZM365.52-581.35q23.24-22.76 52.86-37.02Q448-632.63 480-632.63q32 0 61.62 14.26 29.62 14.26 52.86 37.02L741.5-668 480-806.89 218.5-668l147.02 86.65Zm81.85 410.57v-160.31q-52.24-14.24-86.12-54.83-33.88-40.6-33.88-94.08 0-10.76 1.38-21.9 1.38-11.14 5.14-21.67l-151.26-89.89v290.79l264.74 151.89ZM480-392.63q36.8 0 62.09-25.28 25.28-25.29 25.28-62.09 0-36.8-25.28-62.09-25.29-25.28-62.09-25.28-36.8 0-62.09 25.28-25.28 25.29-25.28 62.09 0 36.8 25.28 62.09 25.29 25.28 62.09 25.28Zm32.63 221.85 264.74-151.89v-290.79l-151.02 89.89q3.52 10.53 4.9 21.67 1.38 11.14 1.38 21.9 0 53.48-33.88 94.08-33.88 40.59-86.12 54.83v160.31Z",
|
|
12196
|
+
storage: "M111.87-146.13v-159.24h736.5v159.24h-736.5Zm68.13-42.3h74.63v-74.87H180v74.87Zm-68.13-466.2v-159.24h736.5v159.24h-736.5Zm68.13-42.3h74.63v-74.87H180v74.87ZM111.87-400.5v-159h736.5v159h-736.5ZM180-442.57h74.63v-74.86H180v74.86Z",
|
|
12197
|
+
memory: "M239-399h313v-60H239v60Zm0-130h480v-60H239v60Zm0-130h480v-60H239v60ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z",
|
|
12198
|
+
// ---- Cloud & network ----
|
|
12199
|
+
api: "M480-369.26 369.26-480 480-590.74 590.74-480 480-369.26Zm-85-304.28-86.83-86.83L480-931.96l171.83 171.59L565-673.54l-85-85-85 85ZM199.87-308.17 28.04-480l171.83-171.83L286.46-565l-85 85 85 85-86.59 86.83Zm560.5 0L673.54-395l85-85-85-85 86.83-86.83L931.96-480 760.37-308.17ZM480-28.04 308.17-199.87 395-286.46l85 85 85-85 86.83 86.59L480-28.04Z",
|
|
12200
|
+
webhook: "M270.1-115.93q-79.9 0-137.03-57.17-57.14-57.17-57.14-136.83 0-68.5 40.2-120.06 40.2-51.55 105.3-67.55v65.63q-36.67 14-59.77 47.11-23.09 33.11-23.09 74.88 0 54.16 38.4 92.76 38.4 38.59 92.97 38.59 54.78 0 93.14-38.41 38.35-38.42 38.35-93.02v-31.43h247.09q8.36-9 19.25-14.5 10.9-5.5 22.23-5.5 21.76 0 36.6 14.83 14.83 14.84 14.83 36.49 0 20.84-14.83 36.19-14.84 15.35-36.6 15.35-11.33 0-22.23-5.5-10.89-5.5-19.25-14.5H462.18q-14.83 70.2-68.21 116.42-53.39 46.22-123.87 46.22Zm419.9 0q-48.48 0-90.29-22.24-41.82-22.24-68.54-60.4h89.59q14.95 10 32.75 15 17.79 5 36.49 5 54.8 0 93.12-38.4 38.31-38.4 38.31-92.97 0-54.78-38.31-93.14-38.32-38.35-93.12-38.35-19.72 0-36.2 4.85-16.47 4.86-31.53 14.1L494.04-638.8q-20.24-4.24-32.86-18.03-12.61-13.78-12.61-33.19 0-21.44 15.35-36.43 15.35-14.98 36.07-14.98 21.73 0 36.59 14.92 14.85 14.93 14.85 36.55 0 3.96-.5 7.34t-2.5 10.38l100.61 172.17q10.76-2 22.02-3t18.94-1q80.69 0 137.38 56.54t56.69 137.61q0 79.59-56.69 136.79-56.69 57.2-137.38 57.2ZM270.11-258.57q-20.84 0-36.19-15.31-15.35-15.32-15.35-36.12 0-18.58 12.61-32.39 12.62-13.81 31.86-18.81l108.85-183.17q-30.96-29.24-48.46-66.95-17.5-37.71-17.5-78.7 0-80.78 57.22-137.41 57.21-56.64 136.93-56.64 77.72 0 133.85 53.69 56.14 53.69 60.14 130.38h-62.64q-3-51.72-40.89-86.58-37.89-34.85-90.46-34.85-54.56 0-93.04 38.31-38.47 38.32-38.47 93.04 0 42.9 25.09 76.71 25.1 33.8 63.82 47.8L317.43-328.8q2 5.97 3 10.4 1 4.44 1 8.36 0 20.84-14.83 36.16-14.84 15.31-36.49 15.31Z",
|
|
12201
|
+
cloudSync: "M167.48-156.41v-62.63h124.26q-64-48.72-100.14-109.22t-36.14-148.5q0-102.98 61.63-191.22T391.54-789.5v70.13q-71 24.57-119.36 91.21-48.35 66.64-48.35 151.4 0 62.95 26.9 114.94 26.9 51.99 87.47 91.28V-390h62.63v233.59H167.48Zm436.59 5.98q-52.14 0-88.82-36.62-36.68-36.61-36.68-88.92 0-49.41 33.59-85.6 33.6-36.19 82.56-39.39 17.95-36.24 52.29-58.36 34.34-22.11 77.07-22.11 54.94 0 94.85 34.85 39.92 34.86 47.68 85.62h2q42.48 1.44 71.84 32.28 29.35 30.83 29.35 71.79 0 44-30.78 75.23-30.79 31.23-74.95 31.23h-260ZM732.18-520q-11.01-50.28-37.33-91.45-26.32-41.18-69.81-78.01V-570h-62.87v-233.59h233.59v62.63H670.5q49 41.96 85.99 101.46Q793.48-580 801.54-520h-69.36ZM604.07-215.93h260q17 0 28.5-11.5t11.5-28.5q0-16.77-11.5-28.39-11.5-11.61-28.5-11.61h-50v-30q0-37.77-26-63.89-26-26.11-64-26.11-37.77 0-63.89 24.5-26.11 24.5-26.11 55.5h-30q-25 0-42.5 17.5t-17.5 42.5q0 25 17.5 42.5t42.5 17.5Zm120-100Z",
|
|
12202
|
+
cloudUpload: "M250.48-154.02q-88.47 0-152.23-63.6-63.75-63.6-63.75-151.9 0-79.44 49.74-140.73 49.74-61.29 128.93-73.77 20.96-97.72 95.96-159.46 75-61.74 172.94-61.74 113.89 0 191.58 81.74 77.7 81.74 79.61 196.46v24q72.72.15 122.48 49.89 49.76 49.75 49.76 124.61 0 71.61-51.79 123.05-51.8 51.45-123.19 51.45H516.93q-27.58 0-47.97-20.39t-20.39-47.74v-247l-84.2 84.43-44.91-44.67L480-590.17l160.78 160.78-45.15 44.67-84.2-84.43v247h239.18q43.72 0 75.24-31.49 31.52-31.49 31.52-75.36 0-44.04-31.49-75.45-31.49-31.4-75.36-31.4h-65.15v-86.63q0-87.91-59.7-151.14-59.7-63.23-147.56-63.23-88.39 0-148.44 64.12-60.04 64.12-60.04 152.88h-21.15q-61.11 0-103.48 42.86-42.37 42.85-42.37 105.94 0 61.09 43.33 105 43.34 43.9 104.64 43.9h137.97v68.13H250.48ZM480-445.93Z",
|
|
12203
|
+
cloudDownload: "M251-154.02q-90.08 0-153.29-62.9Q34.5-279.83 34.5-369.86q0-80.73 50.86-140.61 50.86-59.88 127.9-72.36 15.87-83.52 82.39-148.14 66.52-64.62 151.76-64.62 25.94 0 45.48 14.58 19.54 14.58 19.54 39.01v293.52L594-530.52l44.91 44.91L481-327.46 323.09-485.61 368-530.52l81.57 82.04v-285.89q-84.33 12.2-132.14 75.98-47.8 63.78-47.8 138.54h-21.15q-60.11 0-102.98 42.36-42.87 42.36-42.87 106.45 0 64.32 44.23 106.61 44.23 42.28 104.14 42.28h500q43.73 0 75.05-31.25 31.32-31.26 31.32-75.6 0-44.04-31.4-75.45-31.4-31.4-75.35-31.4h-64.05v-85.67q0-67.16-32.07-115.3t-83.07-77.35v-73.61q81.96 29 131.18 101.24 49.22 72.24 50.65 160.71v24q72.48-.08 122.36 48.95 49.88 49.02 49.88 124.84 0 71.31-51.6 122.66-51.61 51.36-122.9 51.36H251Zm229-356.33Z",
|
|
12204
|
+
dns: "M286.88-724.17q-20.88 0-35.38 14.61-14.5 14.62-14.5 35.5 0 20.89 14.62 35.39t35.5 14.5q20.88 0 35.38-14.62 14.5-14.62 14.5-35.5 0-20.88-14.62-35.38-14.62-14.5-35.5-14.5Zm0 426.19q-20.88 0-35.38 14.62-14.5 14.62-14.5 35.5 0 20.88 14.62 35.38 14.62 14.5 35.5 14.5 20.88 0 35.38-14.62 14.5-14.61 14.5-35.5 0-20.88-14.62-35.38-14.62-14.5-35.5-14.5ZM152.09-852.39h654.82q17.83 0 28.57 10.81 10.74 10.82 10.74 29.05v271.31q0 19.56-10.74 32.79t-28.57 13.23H152.09q-16.86 0-27.47-13.23-10.6-13.23-10.6-32.79v-271.31q0-18.23 10.6-29.05 10.61-10.81 27.47-10.81Zm30.06 68.37v220.69h595.7v-220.69h-595.7ZM152.09-427.2h650.82q16.83 0 30.07 14.02 13.24 14.01 13.24 32.27v266.61q0 21.96-13.24 33.63Q819.74-69 802.91-69H157.09q-17.86 0-30.47-11.67-12.6-11.67-12.6-33.63v-266.61q0-18.26 10.6-32.27 10.61-14.02 27.47-14.02Zm30.06 68.37v221.46h595.7v-221.46h-595.7Zm0-425.19v220.69-220.69Zm0 425.19v221.46-221.46Z",
|
|
12205
|
+
router: "M182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-204q0-27.7 20.27-48.04 20.26-20.33 47.86-20.33h427.39v-163.33h68.37v163.33h99.7q27.7 0 48.03 20.33 20.34 20.34 20.34 48.04v204q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H182.15Zm0-68.13h595.46v-204H182.15v204Zm102.11-60q17.89 0 29.89-12.11 12-12.1 12-30 0-17.89-12.1-29.89-12.11-12-30-12-17.9 0-29.9 12.1-12 12.11-12 30 0 17.9 12.11 29.9 12.1 12 30 12Zm144.41 0q17.9 0 29.9-12.11 12-12.1 12-30 0-17.89-12.11-29.89t-30-12q-17.89 0-29.89 12.1-12 12.11-12 30 0 17.9 12.1 29.9 12.11 12 30 12Zm144.41 0q17.9 0 29.9-12.11 12-12.1 12-30 0-17.89-12.11-29.89-12.1-12-30-12-17.89 0-29.89 12.1-12 12.11-12 30 0 17.9 12.1 29.9 12.11 12 30 12Zm-9.71-425.81L520.7-710.6q24-24.27 55.14-38.51 31.15-14.24 67.77-14.24 36.61 0 67.76 14.24 31.15 14.24 55.39 38.48l-42.67 42.67q-14.24-13.76-35.41-23.14-21.16-9.38-44.57-9.38t-45.08 9.38q-21.66 9.38-35.66 23.14Zm-86.67-86.67-45.68-45.91q33-33.48 89.08-59.58 56.07-26.1 123.63-26.1 67.55 0 123.63 26.1 56.07 26.1 89.07 59.58l-45.67 45.91q-25.91-28.78-69.12-48.75-43.21-19.97-98.03-19.97-54.7 0-97.81 19.98-43.1 19.98-69.1 48.74ZM182.15-182.15v-204 204Z",
|
|
12206
|
+
http: "M36.89-358.57v-242.86h50.63v85h112.37v-85h50.63v242.86h-50.63v-107H87.52v107H36.89Zm313.48 0v-192h-81.2v-50.86h213.26v50.86h-81.19v192h-50.87Zm232.39 0v-192h-81.19v-50.86h213.5v50.86h-81.44v192h-50.87Zm150.72 0v-242.86h139.43q23.72 0 37.08 13.47 13.36 13.48 13.36 36.9v60.69q0 23.77-13.36 36.6-13.36 12.84-37.08 12.84h-88.56v82.36h-50.87Zm50.87-133h88.13v-59h-88.13v59Z",
|
|
12207
|
+
link: "M447.37-274.02H280q-85.66 0-145.82-60.16-60.16-60.15-60.16-145.75 0-85.59 60.16-145.94 60.16-60.35 145.82-60.35h167.37v68.37H280.1q-57.66 0-97.8 40.05-40.15 40.05-40.15 97.56 0 57.52 40.15 97.81 40.14 40.28 97.8 40.28h167.27v68.13ZM320.93-448.57v-62.86h318.14v62.86H320.93Zm191.7 174.55v-68.13H679.9q57.66 0 97.8-40.05 40.15-40.05 40.15-97.56 0-57.52-40.15-97.81-40.14-40.28-97.8-40.28H512.63v-68.37H680q85.58 0 145.9 60.33 60.32 60.33 60.32 145.93 0 85.59-60.32 145.76-60.32 60.18-145.9 60.18H512.63Z",
|
|
12208
|
+
// ---- Security & auth ----
|
|
12209
|
+
key: "M280.06-409.37q-29.02 0-49.85-20.78-20.84-20.77-20.84-49.79t20.78-49.85q20.77-20.84 49.79-20.84t49.85 20.78q20.84 20.77 20.84 49.79t-20.78 49.85q-20.77 20.84-49.79 20.84ZM280-234.5q-102.07 0-173.79-71.73Q34.5-377.96 34.5-480.06q0-102.09 71.71-173.77Q177.93-725.5 280-725.5q73.91 0 129.35 34.96 55.43 34.95 86.45 104.91h355.03L966.7-470 795.87-313.17l-88.24-64.48-87.76 63.76-75.96-60.48h-48.13q-25 60.72-79.89 100.29Q360.99-234.5 280-234.5Zm0-65.5q58.72 0 107.84-39.1 49.12-39.1 62.64-100.53h117.11l53.04 44.28 88-63 82 61.52 82.13-74.45-48.85-49.09H450.48q-11.28-56.96-59.67-98.29Q342.43-660 280-660q-75 0-127.5 52.5T100-480q0 75 52.5 127.5T280-300Z",
|
|
12210
|
+
shield: "M479.98-74.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-887.22l326.22 122.05V-523q0 154.1-91.82 283.32-91.82 129.23-234.42 164.9Zm.02-70.13q113.8-39.2 185.83-143.62 72.02-104.43 72.02-234.4v-194.4L480-814.61l-257.85 97.4v194.17q0 130.08 72.02 234.51Q366.2-184.11 480-144.91Zm0-334.85Z",
|
|
12211
|
+
vpnKey: "M280-234.5q-102.07 0-173.79-71.73Q34.5-377.96 34.5-480.06q0-102.09 71.71-173.77Q177.93-725.5 280-725.5q80.63 0 135.45 39.05 54.81 39.06 80.33 100.82H925.5v211.26h-106v137H628v-137H495.73q-25.47 61.76-80.28 100.82Q360.63-234.5 280-234.5Zm0-65.5q72.2 0 117.82-48.2 45.61-48.19 52.61-91.43H697.5v137H754v-137h106v-80.74H450.48q-7.05-43.24-52.66-91.43Q352.2-660 280-660q-75 0-127.5 52.5T100-480q0 75 52.5 127.5T280-300Zm-.06-109.37q30.26 0 50.47-20.28 20.22-20.27 20.22-50.29 0-30.26-20.16-50.47-20.16-20.22-50.41-20.22-30.02 0-50.35 20.16-20.34 20.16-20.34 50.41 0 30.02 20.28 50.35 20.27 20.34 50.29 20.34ZM280-480Z",
|
|
12212
|
+
verified: "m343.61-52.35-77.44-132.39-153.87-31.72 17.48-149.63L32.11-480l97.67-113.01-17.48-149.77 153.99-31.48 77.23-133.39 136.56 63 136.55-63 78.18 133.39 152.89 31.48-17.48 149.77L927.89-480l-97.67 113.91 17.48 149.63-152.87 31.72-78.2 132.39L480-115.3 343.61-52.35Zm30.28-89.28 106.08-44.9 109.07 44.9 66.53-99.28 116.04-29.76L759.85-389l80.04-91.02-80.04-93.02 11.76-118.29-116.04-27.76-68.44-99.28-107.09 44.87-109.08-44.87-66.46 99.34-115.87 27.6 11.52 118.39L120.11-480l80.04 91.04-11.52 120.4 115.83 27.59 69.43 99.34ZM480-480Zm-43 134.91L665.91-572l-47.15-42.91-181.76 180-94.76-99.24L294.09-487 437-345.09Z",
|
|
12213
|
+
security: "M479.98-73.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-886.22l326.22 122.05V-522q0 154.1-91.82 283.32-91.82 129.23-234.42 164.9Zm.02-70.13q104.8-35.96 173.82-128.39 69.01-92.44 81.03-207.73H480v-332.58l-257.85 96.4V-522q0 11.76.5 20.5t2.48 21.5H480v336.09Z",
|
|
12214
|
+
policy: "M480-73.78q-142.58-35.67-234.28-164.87-91.7-129.2-91.7-283.27v-242.26L480-886.22l326.22 122.05V-522q0 80.87-22.94 158.57-22.93 77.69-76.93 143.69l-144.31-138.3q-18.76 10.52-39.68 17.28Q501.44-334 480-334q-62 0-105.5-43T331-482.5q0-62.5 43.5-106T480-632q62 0 105.5 43.5T629-482q0 20.76-5.7 41.52t-18.34 37.28l85.61 81.85q24-42.52 35.64-94.66 11.64-52.14 11.64-105.94v-196.86L480-812.61l-257.85 93.92v196.65q0 130.08 72.02 234.51Q366.2-183.11 480.2-143.91q27.6-7.76 67.67-31.81 40.06-24.04 62.87-46.32l48.22 48.74q-35.24 32-84.22 60.38Q525.76-84.54 480-73.78Zm.24-322.85q35.56 0 60.85-24.81 25.28-24.82 25.28-61.09t-25.52-61.56q-25.52-25.28-61.09-25.28-35.56 0-60.85 25.31-25.28 25.32-25.28 61.59t25.52 61.06q25.52 24.78 61.09 24.78Zm2.35-82.83Z",
|
|
12215
|
+
adminPanelSettings: "M691.24-270q26 0 44.12-19 18.12-19 18.12-44.88 0-25.88-18.24-44T691.36-396q-26.12 0-45 18.12t-18.88 44q0 25.88 18.88 44.88 18.88 19 44.88 19Zm-1.26 125q33.5 0 60.35-13.88t46.15-39.88q-26.24-14-52.24-21.12Q718.23-227 690.4-227q-27.92 0-54.54 7.12-26.62 7.12-51.62 21.12 19 26 45.45 39.88Q656.15-145 689.98-145ZM480-73.78q-140.58-32.67-233.28-158.97-92.7-126.29-92.7-289.29v-243.14L480-887.22l326.22 122.15v277.66q-16.15-8.92-34-15.4-17.85-6.47-34.37-8.67v-206.05L480-812.61l-257.85 95v195.51q0 76.58 24.62 140.22t62.5 111.42q37.88 47.79 83.16 79.07 45.29 31.28 86.61 44.56 6.24 14.87 19.92 32.15 13.67 17.27 24.78 26.22-10.44 5.72-21.87 8.58-11.44 2.86-21.87 6.1ZM692.5-80Q615-80 560-135.5T505-267q0-78.43 54.99-133.72Q614.98-456 693-456q77 0 132.5 55.28Q881-345.43 881-267q0 76-55.5 131.5T692.5-80ZM480-479.72Z",
|
|
12216
|
+
// ---- Logic & flow ----
|
|
12217
|
+
altRoute: "M445.93-74.02v-194.26q0-46.81-15.04-78.64-15.04-31.84-49-65.56l48.74-48.74q12.04 10.52 26.07 28.81 14.02 18.28 23.3 33.08 16.52-24.8 32.54-43.56 16.03-18.76 31.5-31.76 60.87-47.48 86.13-114.46 25.26-66.98 19.03-167.32l-90 90-47.74-47.74L683.5-886.22l172.04 172.05-47.74 47.74-90-90q4.29 121.45-24.62 194.43-28.9 72.98-103.88 139.8-45.91 41.2-60.57 74.8-14.66 33.6-14.66 79.12v194.26h-68.14ZM248.67-627.87q-4-17.52-6.74-52.14-2.73-34.62-.73-75.42l-88.77 89-47.97-47.74L276.5-886.22l171.8 172.05-47.73 47.74-89.77-90q-2.23 36.56-1.23 64.34 1 27.79 5.23 48.07l-66.13 16.15Zm87.83 171.96q-17.96-18.48-38.93-47.86-20.98-29.38-32.22-62.47l68.08-17.39q8.53 22.85 23.17 44.65 14.64 21.81 27.4 35.33l-47.5 47.74Z",
|
|
12218
|
+
callSplit: "M447.93-154.02v-310.31L222.15-690.11v117.26h-68.13v-233.37h233.13v68.37H270.89l245.18 245.18v338.65h-68.14Zm122.81-369.74L523-571.5l165.87-166.35H572.85v-68.37h233.37v233.37h-68.37v-117.02L570.74-523.76Z",
|
|
12219
|
+
callMerge: "m272-154.02-47.74-48.74L443.93-422.2v-292.47L326-596.74l-48.74-48.74L478-846.22l200.74 200.74L630-596.74 512.07-714.67v320.58L272-154.02Zm409.24 0-162-162 48.5-48.74 162 162-48.5 48.74Z",
|
|
12220
|
+
rule: "m573.85-153.3-47.74-47.74L634-308.93l-107.89-107.9 47.74-47.74 107.89 107.9 108.13-107.9 47.74 47.74-108.13 107.9 108.13 107.89-47.74 47.74-108.13-107.9-107.89 107.9Zm84.43-374.96L510.3-676l47.98-47.74 100 99 179-179.24L885.02-755 658.28-528.26ZM74.98-285.93v-68.14h364.06v68.14H74.98Zm0-320v-68.14h364.06v68.14H74.98Z",
|
|
12221
|
+
filterAlt: "M440-154.02q-19.39 0-32.68-13.3-13.3-13.29-13.3-32.68v-237.85L156.46-741.41q-16.39-20.11-4.84-42.46T188-806.22h584q24.83 0 36.38 22.35 11.55 22.35-4.6 42.46L566.22-437.85v239.76q0 18.92-12.7 31.49-12.69 12.58-31.61 12.58H440Zm40-285.57 235.46-298.26H244.78L480-439.59Zm0 0Z",
|
|
12222
|
+
repeat: "M278.33-73.78 114.02-238.33l164.31-164.3 46.54 48.3-82.89 82.9h457.78v-160h66.46v226.45H241.98l82.89 82.65-46.54 48.55Zm-84.31-453.11v-226.46h524.24L635.37-836l46.54-48.54L846.22-720 681.91-555.46 635.37-604l82.89-82.89H260.48v160h-66.46Z",
|
|
12223
|
+
sort: "M114.02-227.8v-68.13h249.09v68.13H114.02Zm0-218.13v-68.14h490.52v68.14H114.02Zm0-218.14v-67.89h732.2v67.89h-732.2Z",
|
|
12224
|
+
// ---- Actions & status ----
|
|
12225
|
+
bolt: "M454-315.15 278.39-516.76l48.98-48.5L445.93-446.7v-359.52h68.14v359.52l118.56-118.56 48.98 48.5L480-315.15ZM222.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-143h68.13v143h515.7v-143h68.37v143q0 27.58-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Z",
|
|
12226
|
+
build: "M704.04-120.11 442.93-382.98q-22.52 7.76-44.76 12.4-22.24 4.65-46.8 4.65-99.48 0-168.99-69.39-69.51-69.38-69.51-168.11 0-31.48 8.76-62.43 8.75-30.94 23.67-57.4l146.28 146.19 91.92-86-150.2-150.19q25.68-15.16 56.64-24.42 30.95-9.25 61.43-9.25 101.36 0 172.31 71.02t70.95 172.48q0 23.57-4.64 46.18-4.64 22.62-12.4 45.62L839.7-250.76q12.67 12.78 12.67 30.42t-12.67 30.23l-76 70q-12.32 12.44-29.77 12.44t-29.89-12.44Zm31.83-60.82 40-40-278.5-278.5q16-21 24-49.5t8-54.5q0-75-55.5-127t-126.5-53l98.89 100.89q10.2 10.37 9.7 24.69-.5 14.33-10.7 24.52L318.48-514.54q-10.8 9.43-24.9 9.43-14.1 0-23.32-9.43l-94.89-93.89q3 77 54.67 127t121.33 50q25 0 53-8t49-24l282.5 282.5ZM476.24-482.57Z",
|
|
12227
|
+
rocketLaunch: "m188.91-556.74 101.7 43.33q17.28-33.85 36.71-67.18 19.42-33.32 40.98-63.89l-76.37-15.28-103.02 103.02Zm156.39 84.11 131.33 131.56q58.44-27.43 107.48-59.59 49.04-32.17 79.8-62.93 80.05-80.28 117.81-163.84Q819.48-711 823.2-819.2q-108.2 3.72-191.77 41.48-83.56 37.76-163.6 117.81-30.76 30.76-62.93 79.8-32.16 49.04-59.6 107.48Zm231.16-99.59q-19.76-19.76-19.76-48.66 0-28.9 19.76-48.66 19.76-19.53 48.54-19.53 28.78 0 48.54 19.53 19.53 19.76 19.53 48.66 0 28.9-19.53 48.66Q653.78-552.7 625-552.7q-28.78 0-48.54-19.52ZM560.5-184.91l103.26-103.02-15.28-76.37q-30.57 21.56-63.89 41.1-33.33 19.55-67.18 36.59l43.09 101.7Zm331.26-702.61q8.52 143.17-35.08 257.09-43.59 113.91-142.11 212.67-1.48 1.24-2.96 2.84-1.48 1.59-2.72 2.83l22 110.48q3.48 17.15-1.74 33.19-5.22 16.03-17.65 28.46L537.87-65.33l-88.83-206.84-172.87-172.87-206.84-88.83L244.2-707.5q12.43-12.43 28.34-17.65 15.92-5.22 33.07-1.74l110.48 22q1.24-1.24 2.71-2.1 1.48-.86 2.96-2.1 98.76-99 212.79-142.98 114.04-43.97 257.21-35.45ZM141.59-324.04q36.91-36.92 89.56-37.3 52.65-.38 89.33 36.3 36.43 36.43 36.05 89.2-.38 52.77-37.05 89.45-27.68 27.67-85.64 45.63-57.97 17.96-168.64 32 14.04-110.67 31.5-169.26 17.45-58.59 44.89-86.02Zm47.98 48.74q-13.77 14.76-23.93 44.84-10.16 30.09-18.16 78.66 48.56-8 78.65-18.41 30.09-10.4 44.61-24.16 18.28-16.04 18.54-40.35.26-24.3-16.78-42.58-18.28-17.05-42.59-16.55-24.3.5-40.34 18.55Z",
|
|
12228
|
+
send: "M114.5-154.26v-651.48L887.17-480 114.5-154.26ZM180-255.63 717.3-480 180-707.37v162.74L424.63-480 180-417.37v161.74Zm0 0v-451.74 451.74Z",
|
|
12229
|
+
sync: "M167.48-156.41v-62.63H291.5l-12.61-10.33q-64.24-52.2-93.84-112.55-29.59-60.36-29.59-135.08 0-108.87 65.37-195.04 65.37-86.18 170.71-117.46v70.13q-75.24 27.57-121.47 94.59-46.24 67.02-46.24 147.78 0 62.04 23.14 107.71 23.14 45.66 62.66 79.18l28.57 19.57V-390h62.63v233.59H167.48Zm401.98-13.09v-71.13q76.24-27.57 121.47-94.59 45.24-67.02 45.24-147.78 0-47.04-23.26-95.71-23.26-48.66-60.3-86.18l-27.57-24.57V-570h-62.87v-233.59h233.59v62.63H670.5l12.85 12.33q60.48 56.48 90.83 121.2 30.36 64.71 30.36 124.43 0 108.87-64.87 195.54-64.87 86.68-170.21 117.96Z",
|
|
12230
|
+
refresh: "M479.28-154.02q-135.39 0-230.68-95.3-95.3-95.29-95.3-230.62 0-135.33 95.3-230.81 95.29-95.47 230.68-95.47 86.44 0 151.73 35.03 65.29 35.04 113.06 96.36v-131.39h62.86v262.85H543.85V-606h167.04q-38.24-59.04-96.28-95.45-58.04-36.4-135.33-36.4-108.1 0-182.97 74.86-74.88 74.86-74.88 182.95 0 108.08 74.88 182.99 74.87 74.9 182.98 74.9q81.8 0 150.2-46.9 68.4-46.91 95.64-123.95h70.37q-29.24 107.39-116.97 173.18-87.74 65.8-199.25 65.8Z",
|
|
12231
|
+
// ---- Communication ----
|
|
12232
|
+
notifications: "M154.02-194.02v-68.13h77.85v-298.02q0-86.08 50.34-154.77 50.33-68.69 133.72-86.41v-20.56q0-26.8 18.69-45.55 18.69-18.76 45.38-18.76t45.38 18.76q18.69 18.75 18.69 45.55v20.56q83.39 17.48 133.84 86.25 50.46 68.77 50.46 154.93v298.02h77.85v68.13h-652.2ZM480-501.04Zm.12 429.17q-33.83 0-57.93-24.13t-24.1-58.02h164.06q0 33.95-24.15 58.05-24.15 24.1-57.88 24.1ZM300-262.15h360v-298.02q0-74.76-52.5-127.38Q555-740.17 480-740.17t-127.5 52.62Q300-634.93 300-560.17v298.02Z",
|
|
12233
|
+
email: "M154.02-194.02v-62.63h625.96v62.63H154.02Zm0-218.13v-68.14h625.96v68.14H154.02Zm0-218.14v-67.89h732.2v67.89h-732.2Z",
|
|
12234
|
+
campaign: "M732.63-447.37v-65.26H891v65.26H732.63Zm55.74 292.87-127.7-95.02 39.35-52.31 127.46 94.79-39.11 52.54Zm-85.35-504.67-39.35-52.31 124.7-94.02 39.11 52.3-124.46 94.03ZM199-194.02v-160h-64.5q-27.38-.96-46.44-20.87T69-422.15v-115.7q0-28.2 20.08-48.28 20.09-20.09 48.29-20.09H313.3l207.9-124.54v501.52L313.3-354.02h-44.97v160H199Zm253.83-155.57v-260.82l-121.85 72.56H137.37v115.7h193.61l121.85 72.56Zm108.37 9.57v-280.2q29.63 24.72 47.56 61.01 17.94 36.3 17.94 79.21t-17.89 79.18q-17.89 36.27-47.61 60.8ZM295.22-480Z",
|
|
12235
|
+
// ---- Scheduling ----
|
|
12236
|
+
event: "M596.82-220Q556-220 528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28ZM182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v615.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7V-570h-595.7v427.85Zm0-487.85h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630Z",
|
|
12237
|
+
schedule: "m624.37-286.04 49.06-48.59-157.8-158.86v-198.55h-65.26v224.89l174 181.11ZM480.03-74.02q-83.46 0-157.51-31.95-74.05-31.94-129.32-87.21-55.28-55.26-87.23-129.3-31.95-74.03-31.95-157.49 0-83.46 32-157.54 32-74.07 87.2-129.27 55.2-55.2 129.25-87.32 74.05-32.12 157.53-32.12t157.53 32.12q74.05 32.12 129.25 87.32 55.2 55.2 87.32 129.25 32.12 74.05 32.12 157.53T854.1-322.47q-32.12 74.05-87.32 129.25-55.2 55.2-129.24 87.2t-157.51 32Zm.12 337.85q139.16 0 238.57-99.17 99.4-99.16 99.4-238.56t-99.37-238.69Q619.11-817.85 480-817.85q-139.28 0-238.57 99.26-99.28 99.25-99.28 238.59 0 139.52 99.28 238.68 99.28 99.17 238.45 99.17Z",
|
|
12238
|
+
timer: "M354.5-860v-65.5h251v65.5h-251Zm92.87 452.02h65.26v-230.48h-65.26v230.48ZM479.94-70q-75.49 0-142.05-28.94-66.56-28.94-116.36-78.7-49.79-49.75-78.65-116.29-28.86-66.54-28.86-142.01 0-75.47 28.88-142.04 28.88-66.56 78.68-116.4 49.79-49.84 116.35-78.83Q404.5-802.2 480-802.2q67.48 0 127.08 22.5 59.59 22.5 105.83 62.74l53.16-53.15 46.3 46.07-53.15 53.15q36.24 40.48 61.62 97.96 25.38 57.47 25.38 136.95 0 75.52-28.96 142.11-28.95 66.59-78.78 116.31T622.04-98.92Q555.43-70 479.94-70Zm.02-68.37q124.32 0 211.11-86.62 86.78-86.62 86.78-210.95 0-124.32-86.74-211.1-86.75-86.79-211.07-86.79t-211.11 86.75q-86.78 86.74-86.78 211.06 0 124.32 86.74 210.99 86.75 86.66 211.07 86.66Zm.04-296.61Z",
|
|
12239
|
+
// ---- General tools ----
|
|
12240
|
+
terminal: "M795.76-114.3 531.33-378.5q-29.76 25.26-69.6 39.41-39.84 14.16-85.16 14.16-109.84 0-185.96-76.2Q114.5-477.33 114.5-585t76.2-183.87q76.19-76.2 184.37-76.2 108.17 0 183.86 76.2 75.7 76.2 75.7 184.02 0 43.33-13.64 82.97t-40.92 74.4L845.5-164.04l-49.74 49.74ZM375.65-393.07q79.73 0 135.29-56.24Q566.5-505.55 566.5-585q0-79.45-55.6-135.69-55.59-56.24-135.25-56.24-80.49 0-136.76 56.24-56.26 56.24-56.26 135.69 0 79.45 56.23 135.69 56.23 56.24 136.79 56.24Z",
|
|
12241
|
+
settings: "M480.12-330q70.88 0 120.38-49.62t49.5-120.5q0-70.88-49.62-120.38T479.88-670Q409-670 359.5-620.38T310-499.88q0 70.88 49.62 120.38t120.5 49.5Zm-.3-61.83q-45.15 0-76.57-31.6-31.42-31.6-31.42-76.75t31.6-76.57q31.6-31.42 76.75-31.42t76.57 31.6q31.42 31.6 31.42 76.75t-31.6 76.57q-31.6 31.42-76.75 31.42ZM480-194.5q-147.91 0-267.35-84.67Q93.22-363.85 34.5-500q58.72-136.15 178.15-220.83Q332.09-805.5 480-805.5q147.91 0 267.35 84.67Q866.78-636.15 925.5-500q-58.72 136.15-178.15 220.83Q627.91-194.5 480-194.5Zm0-305.5Zm-.15 240q121 0 222.34-65.5Q803.52-391 856.52-500q-53-109-154.19-174.5Q601.15-740 480.15-740t-222.34 65.5Q156.48-609 102.48-500q54 109 155.19 174.5Q358.85-260 479.85-260Z",
|
|
12242
|
+
tune: "M425.57-114.5V-345h65.5v83h353v65.5h-353v82h-65.5Zm-309.64-82V-262h252.5v65.5h-252.5Zm187-168.87v-82h-187v-65.26h187v-84h65.5v231.26h-65.5Zm122.64-82v-65.26h418.5v65.26h-418.5Zm166-167.63v-230.5h65.5v82h187v65.5h-187v83h-65.5Zm-475.64-83v-65.5h418.5v65.5h-418.5Z",
|
|
12243
|
+
search: "M795.76-114.3 531.33-378.5q-29.76 25.26-69.6 39.41-39.84 14.16-85.16 14.16-109.84 0-185.96-76.2Q114.5-477.33 114.5-585t76.2-183.87q76.19-76.2 184.37-76.2 108.17 0 183.86 76.2 75.7 76.2 75.7 184.02 0 43.33-13.64 82.97t-40.92 74.4L845.5-164.04l-49.74 49.74ZM375.65-393.07q79.73 0 135.29-56.24Q566.5-505.55 566.5-585q0-79.45-55.6-135.69-55.59-56.24-135.25-56.24-80.49 0-136.76 56.24-56.26 56.24-56.26 135.69 0 79.45 56.23 135.69 56.23 56.24 136.79 56.24Z",
|
|
12244
|
+
save: "M846.22-685.63v503.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h503.48l160.59 160.59Zm-68.37 30.59L655.04-777.85H182.15v595.7h595.7v-472.89ZM479.76-247.15q43.24 0 73.74-30.27 30.5-30.26 30.5-73.5 0-43.23-30.26-73.73-30.27-30.5-73.5-30.5-43.24 0-73.74 30.26-30.5 30.27-30.5 73.5 0 43.24 30.26 73.74 30.27 30.5 73.5 30.5Zm-244.61-334.7h358v-143h-358v143Zm-53-73.19v472.89-595.7 122.81Z",
|
|
12245
|
+
upload: "M445.93-315.15v-359.52l-118.56 118.8-48.98-48.74L480-806.22l201.61 201.61-48.98 48.74-118.56-118.8v359.52h-68.14ZM222.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-143h68.13v143h515.7v-143h68.37v143q0 27.58-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Z",
|
|
12246
|
+
download: "M480-315.15 278.39-516.76l48.98-48.5L445.93-446.7v-359.52h68.14v359.52l118.56-118.56 48.98 48.5L480-315.15ZM222.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-143h68.13v143h515.7v-143h68.37v143q0 27.58-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Z",
|
|
12247
|
+
edit: "M181.91-182.15h44.24l459.81-458.81-43.76-44-460.29 459.05v43.76Zm-67.89 68.13V-253.5l574.52-573.76q8.24-8.48 19.81-13.22 11.56-4.74 24.11-4.74 11.47 0 22.95 4.74 11.48 4.74 21.2 12.98l51.89 51.17q9.24 9.72 13.48 21.32t4.24 23.31q0 11.72-4.74 23.7-4.74 11.98-12.98 20.46L253.74-114.02H114.02ZM775.17-732.7l-41.24-41.47 41.24 41.47ZM664.2-663.2l-22-21.76 43.76 44-21.76-22.24Z",
|
|
12248
|
+
delete: "M259.09-114.02q-28.45 0-48.41-19.89-19.96-19.89-19.96-48.24v-565.94h-45.07v-68.13h198.28v-34.3h271.9v34.3h198.52v68.13h-45.07v565.94q0 27.6-20.33 47.86-20.34 20.27-48.04 20.27H259.09Zm441.82-634.07H259.09v565.94h441.82v-565.94ZM363.89-266.24h64.07v-399h-64.07v399Zm168.15 0h64.31v-399h-64.31v399ZM259.09-748.09v565.94-565.94Z",
|
|
12249
|
+
// ---- Status ----
|
|
12250
|
+
checkCircle: "m420.52-294.41 285.63-285.63-50.78-50.03-234.85 234.85-117.85-117.85-49.78 50.03 167.63 168.63Zm59.51 220.39q-83.46 0-157.54-31.88-74.07-31.88-129.39-87.2-55.32-55.32-87.2-129.36-31.88-74.04-31.88-157.51 0-84.46 31.88-158.54 31.88-74.07 87.16-128.9 55.28-54.84 129.34-86.82 74.06-31.99 157.55-31.99 84.48 0 158.59 31.97 74.1 31.97 128.91 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.6 0 83.5-31.99 157.57-31.98 74.07-86.82 129.36-54.83 55.29-128.87 87.17-74.04 31.88-158.51 31.88Zm-.03-68.13q141.04 0 239.45-98.75 98.4-98.76 98.4-239.1 0-141.04-98.4-239.45-98.41-98.4-239.57-98.4-140.16 0-238.95 98.4-98.78 98.41-98.78 239.57 0 140.16 98.75 238.95 98.76 98.78 239.1 98.78ZM480-480Z",
|
|
12251
|
+
error: "M479.93-274.02q16.46 0 27.4-10.74 10.93-10.75 10.93-27.21t-10.86-27.52q-10.86-11.05-27.33-11.05-16.46 0-27.4 11.03-10.93 11.04-10.93 27.5 0 16.47 10.86 27.23 10.86 10.76 27.33 10.76Zm-31-158.74h68.14v-257.07h-68.14v257.07ZM480.3-74.02q-84.2 0-158.04-31.88-73.84-31.88-129.16-87.2-55.32-55.32-87.2-129.2-31.88-73.88-31.88-158.17 0-84.28 31.88-158.2 31.88-73.91 87.16-128.74 55.28-54.84 129.18-86.82 73.9-31.99 158.21-31.99 84.3 0 158.25 31.97 73.94 31.97 128.75 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.33 0 84.24-31.99 158.07-31.98 73.84-86.82 128.95-54.83 55.1-128.87 87.17Q564.5-74.02 480.3-74.02Zm.2-68.13q140.54 0 238.95-98.75 98.4-98.76 98.4-239.6 0-140.54-98.22-238.95-98.21-98.4-239.75-98.4-140.16 0-238.95 98.22-98.78 98.21-98.78 239.75 0 140.16 98.75 238.95 98.76 98.78 239.6 98.78ZM480-480Z",
|
|
12252
|
+
warning: "M34.74-116.89 480-886.22l445.26 769.33H34.74Zm113.8-65.74h662.92L480-754.98 148.54-182.63Zm335.64-54.85q12.96 0 21.87-9.08 8.91-9.09 8.91-22.05t-9.09-21.75q-9.08-8.79-22.05-8.79-12.96 0-21.87 8.96-8.91 8.97-8.91 21.93 0 12.96 9.09 21.87 9.08 8.91 22.05 8.91ZM454-348h60v-222.09h-60V-348Zm26-120.8Z",
|
|
12253
|
+
info: "M450.37-277.37h65.26V-520h-65.26v242.63ZM480-590.41q15.55 0 26.07-10.23 10.52-10.24 10.52-25.36 0-16.24-10.52-26.92-10.51-10.67-26.05-10.67-15.81 0-26.21 10.67-10.4 10.68-10.4 26.8 0 15.27 10.52 25.49 10.52 10.22 26.07 10.22Zm.3 516.39q-84.2 0-158.04-31.88-73.84-31.88-129.16-87.2-55.32-55.32-87.2-129.2-31.88-73.88-31.88-158.17 0-84.28 31.88-158.2 31.88-73.91 87.16-128.74 55.28-54.84 129.18-86.82 73.9-31.99 158.21-31.99 84.3 0 158.25 31.97 73.94 31.97 128.75 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.33 0 84.24-31.99 158.07-31.98 73.84-86.82 128.95-54.83 55.1-128.87 87.17Q564.5-74.02 480.3-74.02Zm.2-68.13q140.54 0 238.95-98.75 98.4-98.76 98.4-239.6 0-140.54-98.22-238.95-98.21-98.4-239.75-98.4-140.16 0-238.95 98.22-98.78 98.21-98.78 239.75 0 140.16 98.75 238.95 98.76 98.78 239.6 98.78ZM480-480Z",
|
|
12254
|
+
help: "M483.52-247q16.48 0 28.2-11.72 11.71-11.71 11.71-28.35 0-16.63-11.71-28.19-11.72-11.57-28.32-11.57t-28.19 11.55q-11.6 11.54-11.6 28.33 0 16.52 11.63 28.23Q466.87-247 483.52-247Zm-36.91-146h62.59q0-25.52 6.5-47.02 6.5-21.5 39.78-49.02 30.52-25.05 43.4-50.34 12.88-25.29 12.88-55.69 0-53.69-34.09-86.05t-91.19-32.36q-49.72 0-88.06 25.46-38.33 25.45-55.81 69.45l56.82 21.4q11.24-28.24 32.88-43.62 21.64-15.38 50.21-15.38 31.73 0 51.83 17.58 20.11 17.58 20.11 45.47 0 21.12-12.64 40.38-12.65 19.26-36.45 39.07-29.52 25.52-44.14 51.75-14.62 26.24-14.62 68.92Zm33.42 318.98q-83.46 0-157.54-31.88-74.07-31.88-129.39-87.2-55.32-55.32-87.2-129.36-31.88-74.04-31.88-157.51 0-84.46 31.88-158.54 31.88-74.07 87.16-128.9 55.28-54.84 129.34-86.82 74.06-31.99 157.55-31.99 84.48 0 158.59 31.97 74.1 31.97 128.91 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.6 0 83.5-31.99 157.57-31.98 74.07-86.82 129.36-54.83 55.29-128.87 87.17-74.04 31.88-158.51 31.88Zm-.03-68.13q141.04 0 239.45-98.75 98.4-98.76 98.4-239.1 0-141.04-98.4-239.45-98.41-98.4-239.57-98.4-140.16 0-238.95 98.4-98.78 98.41-98.78 239.57 0 140.16 98.75 238.95 98.76 98.78 239.1 98.78ZM480-480Z",
|
|
12255
|
+
visibility: "M480.12-330q70.88 0 120.38-49.62t49.5-120.5q0-70.88-49.62-120.38T479.88-670Q409-670 359.5-620.38T310-499.88q0 70.88 49.62 120.38t120.5 49.5Zm-.3-61.83q-45.15 0-76.57-31.6-31.42-31.6-31.42-76.75t31.6-76.57q31.6-31.42 76.75-31.42t76.57 31.6q31.42 31.6 31.42 76.75t-31.6 76.57q-31.6 31.42-76.75 31.42ZM480-194.5q-147.91 0-267.35-84.67Q93.22-363.85 34.5-500q58.72-136.15 178.15-220.83Q332.09-805.5 480-805.5q147.91 0 267.35 84.67Q866.78-636.15 925.5-500q-58.72 136.15-178.15 220.83Q627.91-194.5 480-194.5Zm0-305.5Zm-.15 240q121 0 222.34-65.5Q803.52-391 856.52-500q-53-109-154.19-174.5Q601.15-740 480.15-740t-222.34 65.5Q156.48-609 102.48-500q54 109 155.19 174.5Q358.85-260 479.85-260Z",
|
|
12256
|
+
// ---- Files ----
|
|
12257
|
+
folder: "M142.15-154.02q-27.6 0-47.86-20.77-20.27-20.76-20.27-47.36v-515.7q0-26.7 20.27-47.53 20.26-20.84 47.86-20.84h276.22L481-743.35h336.85q26.7 0 47.53 20.77 20.84 20.76 20.84 47.36v453.07q0 26.6-20.84 47.36-20.83 20.77-47.53 20.77h-675.7Zm0-68.13h675.7v-453.07h-365.2l-62.63-62.63H142.15v515.7Zm0 0v-515.7 515.7Z",
|
|
12258
|
+
description: "M319-249.52h322v-62.63H319v62.63Zm0-170h322v-62.63H319v62.63Zm-96.85 345.5q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z",
|
|
12259
|
+
attachFile: "M737.33-324.39q0 105.46-74.69 177.91-74.69 72.46-180.26 72.46-105.58 0-180.35-72.46-74.77-72.45-74.77-177.85v-383.82q0-74.63 53.41-126.35 53.42-51.72 127.75-51.72 74.34 0 127.69 51.72 53.35 51.72 53.35 126.35v363.82q0 43.66-31.56 74.62-31.55 30.97-75.81 30.97-44.26 0-75.61-30.64t-31.35-74.95v-370h66.46v370q0 16.05 11.97 27.59t29.2 11.54q17.24 0 28.74-11.5 11.5-11.51 11.5-27.63v-363.58q.24-47.35-33.38-79.6-33.62-32.25-81.35-32.25-47.74 0-81.14 32.19-33.41 32.19-33.41 79.42v383.82q.24 77.83 55.57 130.96 55.33 53.13 133.62 53.13 77.86 0 133.03-53.16 55.17-53.17 54.93-130.93v-396.93h66.46v396.87Z"
|
|
12260
|
+
};
|
|
12261
|
+
VALID_NODE_ICONS = Object.keys(NODE_ICON_PATHS);
|
|
12262
|
+
}
|
|
12263
|
+
});
|
|
12264
|
+
|
|
11872
12265
|
// src/validator.ts
|
|
11873
12266
|
var DOCS_BASE, ERROR_DOC_URLS, WorkflowValidator, validator;
|
|
11874
12267
|
var init_validator = __esm({
|
|
@@ -11878,6 +12271,8 @@ var init_validator = __esm({
|
|
|
11878
12271
|
init_string_distance();
|
|
11879
12272
|
init_signature_parser();
|
|
11880
12273
|
init_type_checker();
|
|
12274
|
+
init_type_mappings();
|
|
12275
|
+
init_theme();
|
|
11881
12276
|
DOCS_BASE = "https://docs.flowweaver.dev/reference";
|
|
11882
12277
|
ERROR_DOC_URLS = {
|
|
11883
12278
|
UNKNOWN_NODE_TYPE: `${DOCS_BASE}/concepts#node-registration`,
|
|
@@ -11998,9 +12393,11 @@ var init_validator = __esm({
|
|
|
11998
12393
|
});
|
|
11999
12394
|
this.validateStructure(workflow);
|
|
12000
12395
|
this.validateDuplicateNodeNames(workflow);
|
|
12396
|
+
this.validateDuplicateInstanceIds(workflow);
|
|
12001
12397
|
this.validateMutableBindings(workflow);
|
|
12002
12398
|
this.validateReservedNames(workflow, nodeTypeMap);
|
|
12003
12399
|
this.validateConnections(workflow, instanceMap);
|
|
12400
|
+
this.validateDuplicateConnections(workflow);
|
|
12004
12401
|
this.validateNodeReferences(workflow, instanceMap);
|
|
12005
12402
|
this.validateTypeCompatibility(workflow, instanceMap);
|
|
12006
12403
|
this.validateRequiredInputs(workflow, instanceMap);
|
|
@@ -12010,6 +12407,10 @@ var init_validator = __esm({
|
|
|
12010
12407
|
this.validateCycles(workflow);
|
|
12011
12408
|
this.validateMultipleInputConnections(workflow, instanceMap);
|
|
12012
12409
|
this.validateAnnotationSignatureConsistency(workflow);
|
|
12410
|
+
this.validateVisualAnnotations(workflow, instanceMap);
|
|
12411
|
+
this.validatePortTypes(workflow);
|
|
12412
|
+
this.validatePortConfigReferences(workflow, instanceMap);
|
|
12413
|
+
this.validateExecuteWhen(workflow);
|
|
12013
12414
|
this.validateScopeTopology(workflow, instanceMap);
|
|
12014
12415
|
const unknownTypeInstanceIds = new Set(
|
|
12015
12416
|
workflow.instances.filter((inst) => !nodeTypeMap.has(inst.nodeType)).map((inst) => inst.id)
|
|
@@ -12814,6 +13215,24 @@ Add '@param ${fromPort}' to the workflow JSDoc and include it in the params obje
|
|
|
12814
13215
|
* 2. Scoped input ports (callback returns) have connections from inner nodes
|
|
12815
13216
|
*/
|
|
12816
13217
|
validateScopeTopology(workflow, instanceMap) {
|
|
13218
|
+
if (workflow.scopes) {
|
|
13219
|
+
const instanceToScope = /* @__PURE__ */ new Map();
|
|
13220
|
+
for (const [scopeKey, childIds] of Object.entries(workflow.scopes)) {
|
|
13221
|
+
for (const childId of childIds) {
|
|
13222
|
+
const existing = instanceToScope.get(childId);
|
|
13223
|
+
if (existing && existing !== scopeKey) {
|
|
13224
|
+
this.errors.push({
|
|
13225
|
+
type: "error",
|
|
13226
|
+
code: "SCOPE_INCONSISTENT",
|
|
13227
|
+
message: `Instance "${childId}" appears in multiple scopes: "${existing}" and "${scopeKey}". A node can only belong to one scope.`,
|
|
13228
|
+
node: childId,
|
|
13229
|
+
location: this.getInstanceLocation(workflow, childId)
|
|
13230
|
+
});
|
|
13231
|
+
}
|
|
13232
|
+
instanceToScope.set(childId, scopeKey);
|
|
13233
|
+
}
|
|
13234
|
+
}
|
|
13235
|
+
}
|
|
12817
13236
|
for (const instance of workflow.instances) {
|
|
12818
13237
|
const nodeType = instanceMap.get(instance.id);
|
|
12819
13238
|
if (!nodeType) continue;
|
|
@@ -12856,7 +13275,16 @@ Add '@param ${fromPort}' to the workflow JSDoc and include it in the params obje
|
|
|
12856
13275
|
childIds.push(child.id);
|
|
12857
13276
|
}
|
|
12858
13277
|
}
|
|
12859
|
-
if (childIds.length === 0)
|
|
13278
|
+
if (childIds.length === 0) {
|
|
13279
|
+
this.warnings.push({
|
|
13280
|
+
type: "warning",
|
|
13281
|
+
code: "SCOPE_EMPTY",
|
|
13282
|
+
message: `Scope "${scopeName}" on node "${instance.id}" has no child nodes.`,
|
|
13283
|
+
node: instance.id,
|
|
13284
|
+
location: this.getInstanceLocation(workflow, instance.id)
|
|
13285
|
+
});
|
|
13286
|
+
continue;
|
|
13287
|
+
}
|
|
12860
13288
|
const scopedConnections = workflow.connections.filter(
|
|
12861
13289
|
(conn) => conn.from.scope === scopeName && conn.from.node === instance.id || conn.to.scope === scopeName && conn.to.node === instance.id || conn.from.scope === scopeName && childIds.includes(conn.from.node) || conn.to.scope === scopeName && childIds.includes(conn.to.node)
|
|
12862
13290
|
);
|
|
@@ -13025,6 +13453,164 @@ Add '@param ${fromPort}' to the workflow JSDoc and include it in the params obje
|
|
|
13025
13453
|
}
|
|
13026
13454
|
}
|
|
13027
13455
|
}
|
|
13456
|
+
// ── H: Duplicate instance IDs ──────────────────────────────────────────
|
|
13457
|
+
validateDuplicateInstanceIds(workflow) {
|
|
13458
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13459
|
+
for (const instance of workflow.instances) {
|
|
13460
|
+
if (seen.has(instance.id)) {
|
|
13461
|
+
this.errors.push({
|
|
13462
|
+
type: "error",
|
|
13463
|
+
code: "DUPLICATE_INSTANCE_ID",
|
|
13464
|
+
message: `Duplicate instance ID "${instance.id}" in workflow. Each @node must have a unique ID.`,
|
|
13465
|
+
node: instance.id,
|
|
13466
|
+
location: instance.sourceLocation
|
|
13467
|
+
});
|
|
13468
|
+
}
|
|
13469
|
+
seen.add(instance.id);
|
|
13470
|
+
}
|
|
13471
|
+
}
|
|
13472
|
+
// ── I: Duplicate connections ──────────────────────────────────────────
|
|
13473
|
+
validateDuplicateConnections(workflow) {
|
|
13474
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13475
|
+
for (const conn of workflow.connections) {
|
|
13476
|
+
const key = `${conn.from.node}.${conn.from.port}->${conn.to.node}.${conn.to.port}`;
|
|
13477
|
+
if (seen.has(key)) {
|
|
13478
|
+
this.errors.push({
|
|
13479
|
+
type: "error",
|
|
13480
|
+
code: "DUPLICATE_CONNECTION",
|
|
13481
|
+
message: `Duplicate connection: ${key}`,
|
|
13482
|
+
connection: conn,
|
|
13483
|
+
location: this.getConnectionLocation(conn)
|
|
13484
|
+
});
|
|
13485
|
+
}
|
|
13486
|
+
seen.add(key);
|
|
13487
|
+
}
|
|
13488
|
+
}
|
|
13489
|
+
// ── J+K: Visual annotation validation ────────────────────────────────
|
|
13490
|
+
validateVisualAnnotations(workflow, instanceMap) {
|
|
13491
|
+
const validColors = VALID_NODE_COLORS;
|
|
13492
|
+
const validIcons = VALID_NODE_ICONS;
|
|
13493
|
+
for (const nodeType of workflow.nodeTypes) {
|
|
13494
|
+
const color = nodeType.visuals?.color;
|
|
13495
|
+
const icon = nodeType.visuals?.icon;
|
|
13496
|
+
if (color && !validColors.includes(color)) {
|
|
13497
|
+
const suggestions = findClosestMatches(color, [...validColors]);
|
|
13498
|
+
const hint = suggestions.length > 0 ? ` Did you mean "${suggestions[0]}"?` : "";
|
|
13499
|
+
this.warnings.push({
|
|
13500
|
+
type: "warning",
|
|
13501
|
+
code: "INVALID_COLOR",
|
|
13502
|
+
message: `Node type "${nodeType.functionName}" has invalid color "${color}".${hint} Valid colors: ${validColors.join(", ")}.`,
|
|
13503
|
+
node: nodeType.functionName,
|
|
13504
|
+
location: nodeType.sourceLocation
|
|
13505
|
+
});
|
|
13506
|
+
}
|
|
13507
|
+
if (icon && !validIcons.includes(icon)) {
|
|
13508
|
+
const suggestions = findClosestMatches(icon, [...validIcons]);
|
|
13509
|
+
const hint = suggestions.length > 0 ? ` Did you mean "${suggestions[0]}"?` : "";
|
|
13510
|
+
this.warnings.push({
|
|
13511
|
+
type: "warning",
|
|
13512
|
+
code: "INVALID_ICON",
|
|
13513
|
+
message: `Node type "${nodeType.functionName}" has invalid icon "${icon}".${hint}`,
|
|
13514
|
+
node: nodeType.functionName,
|
|
13515
|
+
location: nodeType.sourceLocation
|
|
13516
|
+
});
|
|
13517
|
+
}
|
|
13518
|
+
}
|
|
13519
|
+
for (const instance of workflow.instances) {
|
|
13520
|
+
if (instance.config?.color && !validColors.includes(instance.config.color)) {
|
|
13521
|
+
const suggestions = findClosestMatches(instance.config.color, [...validColors]);
|
|
13522
|
+
const hint = suggestions.length > 0 ? ` Did you mean "${suggestions[0]}"?` : "";
|
|
13523
|
+
this.warnings.push({
|
|
13524
|
+
type: "warning",
|
|
13525
|
+
code: "INVALID_COLOR",
|
|
13526
|
+
message: `Instance "${instance.id}" has invalid color "${instance.config.color}".${hint} Valid colors: ${validColors.join(", ")}.`,
|
|
13527
|
+
node: instance.id,
|
|
13528
|
+
location: instance.sourceLocation
|
|
13529
|
+
});
|
|
13530
|
+
}
|
|
13531
|
+
if (instance.config?.icon && !validIcons.includes(instance.config.icon)) {
|
|
13532
|
+
const suggestions = findClosestMatches(instance.config.icon, [...validIcons]);
|
|
13533
|
+
const hint = suggestions.length > 0 ? ` Did you mean "${suggestions[0]}"?` : "";
|
|
13534
|
+
this.warnings.push({
|
|
13535
|
+
type: "warning",
|
|
13536
|
+
code: "INVALID_ICON",
|
|
13537
|
+
message: `Instance "${instance.id}" has invalid icon "${instance.config.icon}".${hint}`,
|
|
13538
|
+
node: instance.id,
|
|
13539
|
+
location: instance.sourceLocation
|
|
13540
|
+
});
|
|
13541
|
+
}
|
|
13542
|
+
}
|
|
13543
|
+
}
|
|
13544
|
+
// ── L: Port type validation ──────────────────────────────────────────
|
|
13545
|
+
validatePortTypes(workflow) {
|
|
13546
|
+
for (const nodeType of workflow.nodeTypes) {
|
|
13547
|
+
for (const [portName, portDef] of Object.entries(nodeType.inputs)) {
|
|
13548
|
+
if (!isValidPortType(portDef.dataType)) {
|
|
13549
|
+
this.warnings.push({
|
|
13550
|
+
type: "warning",
|
|
13551
|
+
code: "INVALID_PORT_TYPE",
|
|
13552
|
+
message: `Port "${portName}" on node type "${nodeType.functionName}" has invalid type "${portDef.dataType}".`,
|
|
13553
|
+
node: nodeType.functionName,
|
|
13554
|
+
location: nodeType.sourceLocation
|
|
13555
|
+
});
|
|
13556
|
+
}
|
|
13557
|
+
}
|
|
13558
|
+
for (const [portName, portDef] of Object.entries(nodeType.outputs)) {
|
|
13559
|
+
if (!isValidPortType(portDef.dataType)) {
|
|
13560
|
+
this.warnings.push({
|
|
13561
|
+
type: "warning",
|
|
13562
|
+
code: "INVALID_PORT_TYPE",
|
|
13563
|
+
message: `Port "${portName}" on node type "${nodeType.functionName}" has invalid type "${portDef.dataType}".`,
|
|
13564
|
+
node: nodeType.functionName,
|
|
13565
|
+
location: nodeType.sourceLocation
|
|
13566
|
+
});
|
|
13567
|
+
}
|
|
13568
|
+
}
|
|
13569
|
+
}
|
|
13570
|
+
}
|
|
13571
|
+
// ── M: portOrder/portLabel reference validation ──────────────────────
|
|
13572
|
+
validatePortConfigReferences(workflow, instanceMap) {
|
|
13573
|
+
for (const instance of workflow.instances) {
|
|
13574
|
+
const portConfigs = instance.config?.portConfigs;
|
|
13575
|
+
if (!portConfigs) continue;
|
|
13576
|
+
const nodeType = instanceMap.get(instance.id);
|
|
13577
|
+
if (!nodeType) continue;
|
|
13578
|
+
const allPorts = /* @__PURE__ */ new Set([
|
|
13579
|
+
...Object.keys(nodeType.inputs),
|
|
13580
|
+
...Object.keys(nodeType.outputs)
|
|
13581
|
+
]);
|
|
13582
|
+
for (const pc of portConfigs) {
|
|
13583
|
+
if (!allPorts.has(pc.portName)) {
|
|
13584
|
+
const suggestions = findClosestMatches(pc.portName, [...allPorts]);
|
|
13585
|
+
const hint = suggestions.length > 0 ? ` Did you mean "${suggestions[0]}"?` : "";
|
|
13586
|
+
this.warnings.push({
|
|
13587
|
+
type: "warning",
|
|
13588
|
+
code: "INVALID_PORT_CONFIG_REF",
|
|
13589
|
+
message: `Instance "${instance.id}" references port "${pc.portName}" in portConfig, but this port does not exist on node type "${instance.nodeType}".${hint}`,
|
|
13590
|
+
node: instance.id,
|
|
13591
|
+
location: instance.sourceLocation
|
|
13592
|
+
});
|
|
13593
|
+
}
|
|
13594
|
+
}
|
|
13595
|
+
}
|
|
13596
|
+
}
|
|
13597
|
+
// ── N: @executeWhen value validation ─────────────────────────────────
|
|
13598
|
+
validateExecuteWhen(workflow) {
|
|
13599
|
+
const validStrategies = Object.values(EXECUTION_STRATEGIES);
|
|
13600
|
+
for (const nodeType of workflow.nodeTypes) {
|
|
13601
|
+
if (nodeType.executeWhen && !validStrategies.includes(nodeType.executeWhen)) {
|
|
13602
|
+
const suggestions = findClosestMatches(nodeType.executeWhen, validStrategies);
|
|
13603
|
+
const hint = suggestions.length > 0 ? ` Did you mean "${suggestions[0]}"?` : "";
|
|
13604
|
+
this.warnings.push({
|
|
13605
|
+
type: "warning",
|
|
13606
|
+
code: "INVALID_EXECUTE_WHEN",
|
|
13607
|
+
message: `Node type "${nodeType.functionName}" has invalid @executeWhen value "${nodeType.executeWhen}".${hint} Valid values: ${validStrategies.join(", ")}.`,
|
|
13608
|
+
node: nodeType.functionName,
|
|
13609
|
+
location: nodeType.sourceLocation
|
|
13610
|
+
});
|
|
13611
|
+
}
|
|
13612
|
+
}
|
|
13613
|
+
}
|
|
13028
13614
|
/**
|
|
13029
13615
|
* Format a type for display in error messages.
|
|
13030
13616
|
* Prefers the structural TypeScript type when available, falling back to the enum name.
|
|
@@ -26942,86 +27528,8 @@ function hasBranching(workflow) {
|
|
|
26942
27528
|
});
|
|
26943
27529
|
}
|
|
26944
27530
|
|
|
26945
|
-
// src/
|
|
26946
|
-
|
|
26947
|
-
STRING: {
|
|
26948
|
-
typescript: "string",
|
|
26949
|
-
description: "Text value"
|
|
26950
|
-
},
|
|
26951
|
-
NUMBER: {
|
|
26952
|
-
typescript: "number",
|
|
26953
|
-
description: "Numeric value"
|
|
26954
|
-
},
|
|
26955
|
-
BOOLEAN: {
|
|
26956
|
-
typescript: "boolean",
|
|
26957
|
-
description: "True or false value"
|
|
26958
|
-
},
|
|
26959
|
-
ARRAY: {
|
|
26960
|
-
typescript: "unknown[]",
|
|
26961
|
-
description: "Array of values"
|
|
26962
|
-
},
|
|
26963
|
-
OBJECT: {
|
|
26964
|
-
typescript: "Record<string, unknown>",
|
|
26965
|
-
description: "Object with properties"
|
|
26966
|
-
},
|
|
26967
|
-
FUNCTION: {
|
|
26968
|
-
typescript: "(...args: unknown[]) => unknown",
|
|
26969
|
-
description: "Function or callback"
|
|
26970
|
-
},
|
|
26971
|
-
ANY: {
|
|
26972
|
-
typescript: "unknown",
|
|
26973
|
-
description: "Any type of value"
|
|
26974
|
-
},
|
|
26975
|
-
STEP: {
|
|
26976
|
-
typescript: "boolean",
|
|
26977
|
-
description: "Control flow signal (boolean in public API)"
|
|
26978
|
-
}
|
|
26979
|
-
};
|
|
26980
|
-
function mapToTypeScript(portType, tsType) {
|
|
26981
|
-
const mapping = PORT_TYPE_MAPPINGS[portType];
|
|
26982
|
-
if (!mapping) {
|
|
26983
|
-
console.warn(`Unknown port type: ${portType}, defaulting to 'unknown'`);
|
|
26984
|
-
return "unknown";
|
|
26985
|
-
}
|
|
26986
|
-
if (tsType && (portType === "OBJECT" || portType === "ANY" || portType === "ARRAY" || portType === "FUNCTION")) {
|
|
26987
|
-
return tsType;
|
|
26988
|
-
}
|
|
26989
|
-
return mapping.typescript;
|
|
26990
|
-
}
|
|
26991
|
-
function inferDataTypeFromTS(tsType) {
|
|
26992
|
-
const normalized = tsType.trim();
|
|
26993
|
-
if (normalized === "string") return "STRING";
|
|
26994
|
-
if (normalized === "number") return "NUMBER";
|
|
26995
|
-
if (normalized === "boolean") return "BOOLEAN";
|
|
26996
|
-
if (normalized === "any" || normalized === "unknown" || normalized === "never") {
|
|
26997
|
-
return "ANY";
|
|
26998
|
-
}
|
|
26999
|
-
if (normalized === "void" || normalized === "undefined" || normalized === "null") {
|
|
27000
|
-
return "ANY";
|
|
27001
|
-
}
|
|
27002
|
-
if (normalized.endsWith("[]") || normalized.startsWith("Array<") || normalized.startsWith("ReadonlyArray<")) {
|
|
27003
|
-
return "ARRAY";
|
|
27004
|
-
}
|
|
27005
|
-
if (normalized.includes("=>") || normalized === "Function" || normalized.startsWith("(")) {
|
|
27006
|
-
return "FUNCTION";
|
|
27007
|
-
}
|
|
27008
|
-
if (normalized.startsWith("Promise<") && normalized.endsWith(">")) {
|
|
27009
|
-
const inner = normalized.slice(8, -1);
|
|
27010
|
-
return inferDataTypeFromTS(inner);
|
|
27011
|
-
}
|
|
27012
|
-
if (normalized.includes("|")) {
|
|
27013
|
-
const parts2 = normalized.split("|").map((p) => p.trim());
|
|
27014
|
-
const nonNullParts = parts2.filter((p) => p !== "undefined" && p !== "null");
|
|
27015
|
-
if (nonNullParts.length === 1) {
|
|
27016
|
-
return inferDataTypeFromTS(nonNullParts[0]);
|
|
27017
|
-
}
|
|
27018
|
-
return "ANY";
|
|
27019
|
-
}
|
|
27020
|
-
if (normalized.includes("&")) {
|
|
27021
|
-
return "OBJECT";
|
|
27022
|
-
}
|
|
27023
|
-
return "OBJECT";
|
|
27024
|
-
}
|
|
27531
|
+
// src/generator/unified.ts
|
|
27532
|
+
init_type_mappings();
|
|
27025
27533
|
|
|
27026
27534
|
// src/generator/code-utils.ts
|
|
27027
27535
|
init_constants();
|
|
@@ -27284,6 +27792,7 @@ function computeParallelLevels(cfg, branchingNodes, scopedChildren) {
|
|
|
27284
27792
|
}
|
|
27285
27793
|
|
|
27286
27794
|
// src/generator/scope-function-generator.ts
|
|
27795
|
+
init_type_mappings();
|
|
27287
27796
|
function generateScopeFunctionClosure(scopeName, parentNodeId, parentNodeType, workflow, childInstances, isAsync2, production) {
|
|
27288
27797
|
const lines = [];
|
|
27289
27798
|
const scopedOutputPorts = [];
|
|
@@ -27539,6 +28048,7 @@ function generateScopeFunctionClosure(scopeName, parentNodeId, parentNodeType, w
|
|
|
27539
28048
|
}
|
|
27540
28049
|
|
|
27541
28050
|
// src/generator/code-utils.ts
|
|
28051
|
+
init_type_mappings();
|
|
27542
28052
|
function toValidIdentifier(nodeId) {
|
|
27543
28053
|
let sanitized = nodeId.replace(/[^a-zA-Z0-9_$]/g, "_");
|
|
27544
28054
|
if (/^[0-9]/.test(sanitized)) {
|
|
@@ -29451,6 +29961,7 @@ var bodyGenerator = new BodyGenerator();
|
|
|
29451
29961
|
|
|
29452
29962
|
// src/api/generate.ts
|
|
29453
29963
|
init_constants();
|
|
29964
|
+
init_type_mappings();
|
|
29454
29965
|
var import_source_map = __toESM(require_source_map(), 1);
|
|
29455
29966
|
|
|
29456
29967
|
// src/generated-branding.ts
|
|
@@ -30509,6 +31020,7 @@ function generateWorkflowFunction(workflow, production, allWorkflows, generatedW
|
|
|
30509
31020
|
init_constants();
|
|
30510
31021
|
|
|
30511
31022
|
// src/annotation-generator.ts
|
|
31023
|
+
init_type_mappings();
|
|
30512
31024
|
init_constants();
|
|
30513
31025
|
|
|
30514
31026
|
// src/utils/port-tag-utils.ts
|
|
@@ -32437,6 +32949,8 @@ import { createHash } from "node:crypto";
|
|
|
32437
32949
|
|
|
32438
32950
|
// src/jsdoc-parser.ts
|
|
32439
32951
|
init_constants();
|
|
32952
|
+
init_type_mappings();
|
|
32953
|
+
init_string_distance();
|
|
32440
32954
|
|
|
32441
32955
|
// node_modules/chevrotain/lib/src/version.js
|
|
32442
32956
|
var VERSION = "11.1.1";
|
|
@@ -44008,10 +44522,10 @@ var JSDocParser = class {
|
|
|
44008
44522
|
config2.description = comment.trim();
|
|
44009
44523
|
break;
|
|
44010
44524
|
case "color":
|
|
44011
|
-
config2.color = comment.trim();
|
|
44525
|
+
config2.color = comment.trim().replace(/^["']|["']$/g, "");
|
|
44012
44526
|
break;
|
|
44013
44527
|
case "icon":
|
|
44014
|
-
config2.icon = comment.trim();
|
|
44528
|
+
config2.icon = comment.trim().replace(/^["']|["']$/g, "");
|
|
44015
44529
|
break;
|
|
44016
44530
|
case "tag":
|
|
44017
44531
|
config2.tags = config2.tags || [];
|
|
@@ -44048,6 +44562,15 @@ var JSDocParser = class {
|
|
|
44048
44562
|
case "step":
|
|
44049
44563
|
this.parseStepTag(tag, config2, func, warnings);
|
|
44050
44564
|
break;
|
|
44565
|
+
default:
|
|
44566
|
+
if (tagName === "param" || tagName === "returns" || tagName === "return") {
|
|
44567
|
+
warnings.push(`@${tagName} is for workflows, not node types. Use @input/@output instead.`);
|
|
44568
|
+
} else if (!KNOWN_NODETYPE_TAGS.has(tagName) && !STANDARD_JSDOC_TAGS.has(tagName)) {
|
|
44569
|
+
const suggestions = findClosestMatches(tagName, [...KNOWN_NODETYPE_TAGS]);
|
|
44570
|
+
const hint = suggestions.length > 0 ? ` Did you mean @${suggestions[0]}?` : "";
|
|
44571
|
+
warnings.push(`Unknown annotation @${tagName} in nodeType block.${hint}`);
|
|
44572
|
+
}
|
|
44573
|
+
break;
|
|
44051
44574
|
}
|
|
44052
44575
|
});
|
|
44053
44576
|
return config2;
|
|
@@ -44153,6 +44676,17 @@ var JSDocParser = class {
|
|
|
44153
44676
|
case "returns":
|
|
44154
44677
|
this.parseReturnTag(tag, config2, func, warnings);
|
|
44155
44678
|
break;
|
|
44679
|
+
default:
|
|
44680
|
+
if (tagName === "color" || tagName === "icon" || tagName === "tag") {
|
|
44681
|
+
warnings.push(`@${tagName} is for node types, not workflows. Use it on @flowWeaver nodeType instead.`);
|
|
44682
|
+
} else if (tagName === "input" || tagName === "output" || tagName === "step") {
|
|
44683
|
+
warnings.push(`@${tagName} is for node types, not workflows. Use @param/@returns for workflows.`);
|
|
44684
|
+
} else if (!KNOWN_WORKFLOW_TAGS.has(tagName) && !STANDARD_JSDOC_TAGS.has(tagName)) {
|
|
44685
|
+
const suggestions = findClosestMatches(tagName, [...KNOWN_WORKFLOW_TAGS]);
|
|
44686
|
+
const hint = suggestions.length > 0 ? ` Did you mean @${suggestions[0]}?` : "";
|
|
44687
|
+
warnings.push(`Unknown annotation @${tagName} in workflow block.${hint}`);
|
|
44688
|
+
}
|
|
44689
|
+
break;
|
|
44156
44690
|
}
|
|
44157
44691
|
});
|
|
44158
44692
|
return config2;
|
|
@@ -44206,6 +44740,13 @@ var JSDocParser = class {
|
|
|
44206
44740
|
case "port":
|
|
44207
44741
|
this.parsePatternPortTag(tag, config2, warnings);
|
|
44208
44742
|
break;
|
|
44743
|
+
default:
|
|
44744
|
+
if (!KNOWN_PATTERN_TAGS.has(tagName) && !STANDARD_JSDOC_TAGS.has(tagName)) {
|
|
44745
|
+
const suggestions = findClosestMatches(tagName, [...KNOWN_PATTERN_TAGS]);
|
|
44746
|
+
const hint = suggestions.length > 0 ? ` Did you mean @${suggestions[0]}?` : "";
|
|
44747
|
+
warnings.push(`Unknown annotation @${tagName} in pattern block.${hint}`);
|
|
44748
|
+
}
|
|
44749
|
+
break;
|
|
44209
44750
|
}
|
|
44210
44751
|
});
|
|
44211
44752
|
if (config2.positions && config2.instances) {
|
|
@@ -44302,6 +44843,9 @@ var JSDocParser = class {
|
|
|
44302
44843
|
let tsType;
|
|
44303
44844
|
const isScopedStepInput = scope && isScopedMandatoryPort(name);
|
|
44304
44845
|
if (isExecutePort(name) || isScopedStepInput) {
|
|
44846
|
+
if (result.dataType && result.dataType !== "STEP") {
|
|
44847
|
+
warnings.push(`Port "${name}" is a reserved control port; type will always be STEP.`);
|
|
44848
|
+
}
|
|
44305
44849
|
type2 = "STEP";
|
|
44306
44850
|
} else if (scope) {
|
|
44307
44851
|
const scopeParam = func.getParameters().find((p) => p.getName() === scope);
|
|
@@ -44343,6 +44887,9 @@ var JSDocParser = class {
|
|
|
44343
44887
|
expression = label.substring("Expression:".length).trim();
|
|
44344
44888
|
label = void 0;
|
|
44345
44889
|
}
|
|
44890
|
+
if (config2.inputs.hasOwnProperty(name)) {
|
|
44891
|
+
warnings.push(`Duplicate @input "${name}". The second declaration will overwrite the first.`);
|
|
44892
|
+
}
|
|
44346
44893
|
config2.inputs[name] = {
|
|
44347
44894
|
type: type2,
|
|
44348
44895
|
defaultValue: defaultValue ? this.parseDefaultValue(defaultValue) : void 0,
|
|
@@ -44370,6 +44917,9 @@ var JSDocParser = class {
|
|
|
44370
44917
|
let tsType;
|
|
44371
44918
|
const isScopedStepOutput = scope && isScopedMandatoryPort(name);
|
|
44372
44919
|
if (isSuccessPort(name) || isFailurePort(name) || isScopedStepOutput) {
|
|
44920
|
+
if (result.dataType && result.dataType !== "STEP") {
|
|
44921
|
+
warnings.push(`Port "${name}" is a reserved control port; type will always be STEP.`);
|
|
44922
|
+
}
|
|
44373
44923
|
type2 = "STEP";
|
|
44374
44924
|
} else if (scope) {
|
|
44375
44925
|
const scopeParam = func.getParameters().find((p) => p.getName() === scope);
|
|
@@ -44408,6 +44958,9 @@ var JSDocParser = class {
|
|
|
44408
44958
|
type2 = "ANY";
|
|
44409
44959
|
}
|
|
44410
44960
|
}
|
|
44961
|
+
if (config2.outputs.hasOwnProperty(name)) {
|
|
44962
|
+
warnings.push(`Duplicate @output "${name}". The second declaration will overwrite the first.`);
|
|
44963
|
+
}
|
|
44411
44964
|
config2.outputs[name] = {
|
|
44412
44965
|
type: type2,
|
|
44413
44966
|
label: description?.trim(),
|
|
@@ -44460,9 +45013,14 @@ var JSDocParser = class {
|
|
|
44460
45013
|
const fieldMatch = returnTypeText.match(new RegExp(`${name}\\s*:\\s*([^;},]+)`));
|
|
44461
45014
|
if (fieldMatch) {
|
|
44462
45015
|
type2 = inferDataTypeFromTS(fieldMatch[1].trim());
|
|
45016
|
+
} else {
|
|
45017
|
+
warnings.push(`Could not infer type for @returns "${name}", defaulting to ANY.`);
|
|
44463
45018
|
}
|
|
44464
45019
|
}
|
|
44465
45020
|
config2.returnPorts = config2.returnPorts || {};
|
|
45021
|
+
if (config2.returnPorts.hasOwnProperty(name)) {
|
|
45022
|
+
warnings.push(`Duplicate @returns "${name}". The second declaration will overwrite the first.`);
|
|
45023
|
+
}
|
|
44466
45024
|
config2.returnPorts[name] = {
|
|
44467
45025
|
dataType: type2,
|
|
44468
45026
|
label: description?.trim(),
|
|
@@ -44496,10 +45054,15 @@ var JSDocParser = class {
|
|
|
44496
45054
|
const fieldMatch = paramTypeText.match(new RegExp(`${name}\\s*:\\s*([^;},]+)`));
|
|
44497
45055
|
if (fieldMatch) {
|
|
44498
45056
|
type2 = inferDataTypeFromTS(fieldMatch[1].trim());
|
|
45057
|
+
} else {
|
|
45058
|
+
warnings.push(`@param "${name}" does not match any field in the params object. Type defaults to ANY.`);
|
|
44499
45059
|
}
|
|
44500
45060
|
}
|
|
44501
45061
|
}
|
|
44502
45062
|
config2.startPorts = config2.startPorts || {};
|
|
45063
|
+
if (config2.startPorts.hasOwnProperty(name)) {
|
|
45064
|
+
warnings.push(`Duplicate @param "${name}". The second declaration will overwrite the first.`);
|
|
45065
|
+
}
|
|
44503
45066
|
config2.startPorts[name] = {
|
|
44504
45067
|
dataType: type2,
|
|
44505
45068
|
label: description?.trim(),
|
|
@@ -44862,6 +45425,9 @@ function assignImplicitPortOrders(ports) {
|
|
|
44862
45425
|
}
|
|
44863
45426
|
}
|
|
44864
45427
|
|
|
45428
|
+
// src/parser.ts
|
|
45429
|
+
init_type_mappings();
|
|
45430
|
+
|
|
44865
45431
|
// src/resolve-package-types.ts
|
|
44866
45432
|
import * as path4 from "node:path";
|
|
44867
45433
|
import * as fs4 from "node:fs";
|
|
@@ -44943,6 +45509,9 @@ function resolveInNodeModules(packageSpecifier, nmDir) {
|
|
|
44943
45509
|
return null;
|
|
44944
45510
|
}
|
|
44945
45511
|
|
|
45512
|
+
// src/npm-packages.ts
|
|
45513
|
+
init_type_mappings();
|
|
45514
|
+
|
|
44946
45515
|
// src/shared-project.ts
|
|
44947
45516
|
import { Project } from "ts-morph";
|
|
44948
45517
|
var sharedProject = null;
|
|
@@ -53623,6 +54192,98 @@ var errorMappers = {
|
|
|
53623
54192
|
fix: `Connect a STEP-type output (like onSuccess or onFailure) to Exit.${portName}. Don't connect data ports to control flow ports.`,
|
|
53624
54193
|
code: error2.code
|
|
53625
54194
|
};
|
|
54195
|
+
},
|
|
54196
|
+
// ── Annotation validation rules ──────────────────────────────────────
|
|
54197
|
+
DUPLICATE_INSTANCE_ID(error2) {
|
|
54198
|
+
const quoted = extractQuoted(error2.message);
|
|
54199
|
+
const instanceId = quoted[0] || error2.node || "unknown";
|
|
54200
|
+
return {
|
|
54201
|
+
title: "Duplicate Instance ID",
|
|
54202
|
+
explanation: `Two @node declarations use the same ID '${instanceId}'. Each node instance needs a unique ID within its workflow.`,
|
|
54203
|
+
fix: `Rename one of the '${instanceId}' instances to give it a unique ID.`,
|
|
54204
|
+
code: error2.code
|
|
54205
|
+
};
|
|
54206
|
+
},
|
|
54207
|
+
DUPLICATE_CONNECTION(error2) {
|
|
54208
|
+
return {
|
|
54209
|
+
title: "Duplicate Connection",
|
|
54210
|
+
explanation: `The same connection is declared twice. ${error2.message}`,
|
|
54211
|
+
fix: `Remove the duplicate @connect annotation.`,
|
|
54212
|
+
code: error2.code
|
|
54213
|
+
};
|
|
54214
|
+
},
|
|
54215
|
+
INVALID_COLOR(error2) {
|
|
54216
|
+
const quoted = extractQuoted(error2.message);
|
|
54217
|
+
const color = quoted[1] || quoted[0] || "unknown";
|
|
54218
|
+
return {
|
|
54219
|
+
title: "Invalid Color",
|
|
54220
|
+
explanation: `Color '${color}' is not a recognized node color. Check the spelling or use a valid color name.`,
|
|
54221
|
+
fix: `Use one of the valid colors: blue, purple, cyan, orange, pink, green, red, yellow, teal.`,
|
|
54222
|
+
code: error2.code
|
|
54223
|
+
};
|
|
54224
|
+
},
|
|
54225
|
+
INVALID_ICON(error2) {
|
|
54226
|
+
const quoted = extractQuoted(error2.message);
|
|
54227
|
+
const icon = quoted[1] || quoted[0] || "unknown";
|
|
54228
|
+
return {
|
|
54229
|
+
title: "Invalid Icon",
|
|
54230
|
+
explanation: `Icon '${icon}' is not a recognized node icon. Check the spelling.`,
|
|
54231
|
+
fix: `Use a valid icon name from the icon set (e.g., database, code, flow, psychology, send).`,
|
|
54232
|
+
code: error2.code
|
|
54233
|
+
};
|
|
54234
|
+
},
|
|
54235
|
+
INVALID_PORT_TYPE(error2) {
|
|
54236
|
+
const quoted = extractQuoted(error2.message);
|
|
54237
|
+
const portName = quoted[0] || "unknown";
|
|
54238
|
+
const typeName = quoted[2] || quoted[1] || "unknown";
|
|
54239
|
+
return {
|
|
54240
|
+
title: "Invalid Port Type",
|
|
54241
|
+
explanation: `Port '${portName}' has an unrecognized type '${typeName}'.`,
|
|
54242
|
+
fix: `Use a valid port type: STRING, NUMBER, BOOLEAN, ARRAY, OBJECT, FUNCTION, ANY, or STEP.`,
|
|
54243
|
+
code: error2.code
|
|
54244
|
+
};
|
|
54245
|
+
},
|
|
54246
|
+
INVALID_PORT_CONFIG_REF(error2) {
|
|
54247
|
+
const quoted = extractQuoted(error2.message);
|
|
54248
|
+
const instanceId = quoted[0] || error2.node || "unknown";
|
|
54249
|
+
const portName = quoted[1] || "unknown";
|
|
54250
|
+
return {
|
|
54251
|
+
title: "Invalid Port Config Reference",
|
|
54252
|
+
explanation: `Instance '${instanceId}' references port '${portName}' in a portOrder or portLabel annotation, but this port doesn't exist on the node type.`,
|
|
54253
|
+
fix: `Check the port name spelling, or remove the port configuration if the port was renamed or removed.`,
|
|
54254
|
+
code: error2.code
|
|
54255
|
+
};
|
|
54256
|
+
},
|
|
54257
|
+
INVALID_EXECUTE_WHEN(error2) {
|
|
54258
|
+
const quoted = extractQuoted(error2.message);
|
|
54259
|
+
const value2 = quoted[1] || quoted[0] || "unknown";
|
|
54260
|
+
return {
|
|
54261
|
+
title: "Invalid Execution Strategy",
|
|
54262
|
+
explanation: `@executeWhen value '${value2}' is not recognized.`,
|
|
54263
|
+
fix: `Use one of: CONJUNCTION (all inputs), DISJUNCTION (any input), or CUSTOM (custom logic).`,
|
|
54264
|
+
code: error2.code
|
|
54265
|
+
};
|
|
54266
|
+
},
|
|
54267
|
+
SCOPE_EMPTY(error2) {
|
|
54268
|
+
const quoted = extractQuoted(error2.message);
|
|
54269
|
+
const scopeName = quoted[0] || "unknown";
|
|
54270
|
+
const nodeName = quoted[1] || error2.node || "unknown";
|
|
54271
|
+
return {
|
|
54272
|
+
title: "Empty Scope",
|
|
54273
|
+
explanation: `Scope '${scopeName}' on node '${nodeName}' has no child nodes declared inside it. The scope won't iterate over anything.`,
|
|
54274
|
+
fix: `Add child nodes to the scope with @scope ${scopeName} [childId1, childId2], or remove the scope if it's not needed.`,
|
|
54275
|
+
code: error2.code
|
|
54276
|
+
};
|
|
54277
|
+
},
|
|
54278
|
+
SCOPE_INCONSISTENT(error2) {
|
|
54279
|
+
const quoted = extractQuoted(error2.message);
|
|
54280
|
+
const instanceId = quoted[0] || error2.node || "unknown";
|
|
54281
|
+
return {
|
|
54282
|
+
title: "Scope Conflict",
|
|
54283
|
+
explanation: `Instance '${instanceId}' is assigned to multiple scopes. A node can only belong to one scope at a time.`,
|
|
54284
|
+
fix: `Remove '${instanceId}' from one of the conflicting @scope declarations.`,
|
|
54285
|
+
code: error2.code
|
|
54286
|
+
};
|
|
53626
54287
|
}
|
|
53627
54288
|
};
|
|
53628
54289
|
function getFriendlyError(error2) {
|
|
@@ -58661,223 +59322,7 @@ import * as path12 from "path";
|
|
|
58661
59322
|
|
|
58662
59323
|
// src/diagram/geometry.ts
|
|
58663
59324
|
init_constants();
|
|
58664
|
-
|
|
58665
|
-
// src/diagram/theme.ts
|
|
58666
|
-
var DARK_PORT_COLORS = {
|
|
58667
|
-
STEP: "#10e15a",
|
|
58668
|
-
// green-dark-shade-1
|
|
58669
|
-
STRING: "#5e9eff",
|
|
58670
|
-
// blue-dark-shade-1
|
|
58671
|
-
NUMBER: "#ffbd30",
|
|
58672
|
-
// yellow-dark-shade-1
|
|
58673
|
-
BOOLEAN: "#ff52da",
|
|
58674
|
-
// pink-dark-shade-1
|
|
58675
|
-
OBJECT: "#b36bff",
|
|
58676
|
-
// purple-dark-shade-1
|
|
58677
|
-
ARRAY: "#ff8133",
|
|
58678
|
-
// orange-dark-shade-1
|
|
58679
|
-
FUNCTION: "#e9916a",
|
|
58680
|
-
// brown-dark-shade-1
|
|
58681
|
-
ANY: "#6fe5dc"
|
|
58682
|
-
// cyan-dark-shade-1
|
|
58683
|
-
};
|
|
58684
|
-
var LIGHT_PORT_COLORS = {
|
|
58685
|
-
STEP: "#0ec850",
|
|
58686
|
-
// green-shade-2
|
|
58687
|
-
STRING: "#548ce3",
|
|
58688
|
-
// blue-shade-2
|
|
58689
|
-
NUMBER: "#e3a82b",
|
|
58690
|
-
// yellow-shade-2
|
|
58691
|
-
BOOLEAN: "#e349c2",
|
|
58692
|
-
// pink-shade-2
|
|
58693
|
-
OBJECT: "#9f5fe3",
|
|
58694
|
-
// purple-shade-2
|
|
58695
|
-
ARRAY: "#e3732d",
|
|
58696
|
-
// orange-shade-2
|
|
58697
|
-
FUNCTION: "#cf815e",
|
|
58698
|
-
// brown-shade-2
|
|
58699
|
-
ANY: "#63ccc4"
|
|
58700
|
-
// cyan-shade-2
|
|
58701
|
-
};
|
|
58702
|
-
var DARK_FAILURE_COLOR = "#ff4f4f";
|
|
58703
|
-
var LIGHT_FAILURE_COLOR = "#e34646";
|
|
58704
|
-
var NODE_VARIANT_COLORS = {
|
|
58705
|
-
blue: { border: "#548ce3", darkBorder: "#5e9eff" },
|
|
58706
|
-
// blue-shade-2 / blue-dark-shade-1
|
|
58707
|
-
purple: { border: "#9f5fe3", darkBorder: "#b36bff" },
|
|
58708
|
-
// purple-shade-2 / purple-dark-shade-1
|
|
58709
|
-
cyan: { border: "#63ccc4", darkBorder: "#6fe5dc" },
|
|
58710
|
-
// cyan-shade-2 / cyan-dark-shade-1
|
|
58711
|
-
orange: { border: "#e3732d", darkBorder: "#ff8133" },
|
|
58712
|
-
// orange-shade-2 / orange-dark-shade-1
|
|
58713
|
-
pink: { border: "#e349c2", darkBorder: "#ff52da" },
|
|
58714
|
-
// pink-shade-2 / pink-dark-shade-1
|
|
58715
|
-
green: { border: "#0ec850", darkBorder: "#10e15a" }
|
|
58716
|
-
// green-shade-2 / green-dark-shade-1
|
|
58717
|
-
};
|
|
58718
|
-
var DARK_PALETTE = {
|
|
58719
|
-
background: "#202139",
|
|
58720
|
-
// color-brand-subtle-bg = primary-dark-extended-shade-95
|
|
58721
|
-
nodeFill: "#1a1a2e",
|
|
58722
|
-
// color-surface-main = dark-shade-100
|
|
58723
|
-
nodeStroke: "#767682",
|
|
58724
|
-
// color-border-default = dark-shade-60
|
|
58725
|
-
labelColor: "#a4beff",
|
|
58726
|
-
// secondary-dark-base (node label text)
|
|
58727
|
-
sublabelColor: "#babac0",
|
|
58728
|
-
// color-text-subtle = dark-shade-30
|
|
58729
|
-
connectionColor: "#5f5f6d",
|
|
58730
|
-
// color-border-subtle = dark-shade-70
|
|
58731
|
-
dotColor: "#8e9eff",
|
|
58732
|
-
// color-background-dots = primary-dark-tint-1
|
|
58733
|
-
labelBadgeFill: "#252538",
|
|
58734
|
-
// color-surface-low = dark-shade-95
|
|
58735
|
-
labelBadgeBorder: "#313143",
|
|
58736
|
-
// color-surface-lowest = dark-shade-90
|
|
58737
|
-
nodeIconColor: "#a4beff",
|
|
58738
|
-
// secondary-dark-base (matches label color)
|
|
58739
|
-
scopeAreaStroke: "#5f5f6d"
|
|
58740
|
-
// color-border-subtle = dark-shade-70
|
|
58741
|
-
};
|
|
58742
|
-
var LIGHT_PALETTE = {
|
|
58743
|
-
background: "#f6f7ff",
|
|
58744
|
-
// color-brand-subtle-bg = primary-extended-tint-95
|
|
58745
|
-
nodeFill: "#ffffff",
|
|
58746
|
-
// color-surface-main = white
|
|
58747
|
-
nodeStroke: "#cccccc",
|
|
58748
|
-
// color-border-default ≈ shade-20
|
|
58749
|
-
labelColor: "#223354",
|
|
58750
|
-
// secondary-base (light)
|
|
58751
|
-
sublabelColor: "#808080",
|
|
58752
|
-
// shade-50
|
|
58753
|
-
connectionColor: "#b3b3b3",
|
|
58754
|
-
// shade-30
|
|
58755
|
-
dotColor: "#5468ff",
|
|
58756
|
-
// color-background-dots = primary-shade-1
|
|
58757
|
-
labelBadgeFill: "#ffffff",
|
|
58758
|
-
// surface-main — 80% opacity applied in renderer
|
|
58759
|
-
labelBadgeBorder: "#e6e6e6",
|
|
58760
|
-
// shade-10
|
|
58761
|
-
nodeIconColor: "#5468ff",
|
|
58762
|
-
// primary-base (light)
|
|
58763
|
-
scopeAreaStroke: "#cccccc"
|
|
58764
|
-
// color-border-default
|
|
58765
|
-
};
|
|
58766
|
-
function getTheme(name) {
|
|
58767
|
-
return name === "light" ? LIGHT_PALETTE : DARK_PALETTE;
|
|
58768
|
-
}
|
|
58769
|
-
function getPortColor(dataType, isFailure, theme = "dark") {
|
|
58770
|
-
if (isFailure) return theme === "dark" ? DARK_FAILURE_COLOR : LIGHT_FAILURE_COLOR;
|
|
58771
|
-
const colors2 = theme === "dark" ? DARK_PORT_COLORS : LIGHT_PORT_COLORS;
|
|
58772
|
-
return colors2[dataType] ?? colors2.ANY;
|
|
58773
|
-
}
|
|
58774
|
-
function getPortRingColor(dataType, isFailure, theme = "dark") {
|
|
58775
|
-
const color = getPortColor(dataType, isFailure, theme);
|
|
58776
|
-
return darkenHex(color, 0.4);
|
|
58777
|
-
}
|
|
58778
|
-
var TYPE_ABBREVIATIONS = {
|
|
58779
|
-
STEP: "STP",
|
|
58780
|
-
STRING: "STR",
|
|
58781
|
-
NUMBER: "NUM",
|
|
58782
|
-
BOOLEAN: "BOOL",
|
|
58783
|
-
OBJECT: "OBJ",
|
|
58784
|
-
ARRAY: "ARR",
|
|
58785
|
-
FUNCTION: "FN",
|
|
58786
|
-
ANY: "ANY"
|
|
58787
|
-
};
|
|
58788
|
-
var NODE_ICON_PATHS = {
|
|
58789
|
-
// ---- Virtual node icons ----
|
|
58790
|
-
startNode: "M314.02-192v-582l457.22 291-457.22 291Zm68.13-291Zm0 166.93L644.93-483 382.15-649.93v333.86Z",
|
|
58791
|
-
exitNode: "M302.15-657.85v355.7-355.7Zm-68.13 423.83v-492.2h492.2v492.2h-492.2Zm68.13-68.13h355.7v-355.7h-355.7v355.7Z",
|
|
58792
|
-
// ---- Default / structural ----
|
|
58793
|
-
code: "M317.37-236.26 71.39-482l247.98-247.98 48.98 48.74-199 199 197 197-48.98 48.98Zm323.26 2.24-48.74-48.74 199-199-197-197 48.74-48.98L888.61-482 640.63-234.02Z",
|
|
58794
|
-
flow: "M115.93-115.93v-188.14h157.83l173.61-173.6v-143.74q-35.74-12.79-58.59-42.23-22.85-29.43-22.85-66.36 0-47.53 33.31-80.8 33.3-33.27 80.88-33.27 47.57 0 80.76 33.27 33.19 33.27 33.19 80.8 0 36.93-22.85 66.36-22.85 29.44-58.59 42.23v143.74l173.85 173.6h157.59v188.14H655.93v-121.5L480-413.37 304.07-237.43v121.5H115.93Z",
|
|
58795
|
-
// ---- AI & ML ----
|
|
58796
|
-
psychology: "M234.74-74.74v-174.87q-57-52.72-88.5-122.93-31.5-70.22-31.5-147.46 0-152.29 106.5-258.9 106.5-106.6 258.65-106.6 126.78 0 224.72 74.82 97.93 74.81 127.65 194.48l55.24 219.44q4.48 16.15-5.7 29.09-10.17 12.93-27.13 12.93H765.5v131.87q0 28.35-19.96 48.24t-48.41 19.89H605.5v80h-68.37v-148.13h160v-200h113.28l-44.04-176.41q-24-95.81-104.28-156.83-80.29-61.02-181.98-61.02-123.86 0-210.55 85.74-86.69 85.75-86.69 208.98 0 63.62 26.08 121.25 26.09 57.63 73.96 102.01l19.96 18.92v205.49h-68.13Zm262.02-371.19ZM449-374h60l3-44q12-2 22.5-8.46 10.49-6.46 18.52-14.54l41.74 14L623-475l-30-24q5-14 5-29t-5-29l30-24-28.24-48-41.71 14q-8.3-7.69-19.15-13.85-10.86-6.15-21.88-9.15L509-682h-60l-3 44q-11 3-21.83 9.15-10.84 6.16-19.12 13.85l-41.57-14L335-581l30 24q-5 14-5 29t5 29l-30 24 28.48 48 41.57-14q8.01 8.08 18.48 14.54Q434-420 446-418l3 44Zm30.12-84q-29.12 0-49.62-20.38-20.5-20.38-20.5-49.5t20.38-49.62q20.38-20.5 49.5-20.5t49.62 20.38q20.5 20.38 20.5 49.5t-20.38 49.62q-20.38 20.5-49.5 20.5Z",
|
|
58797
|
-
smartToy: "M141.5-376q-45 0-76-31.21T34.5-483q0-44.58 31.21-75.79Q96.92-590 141.5-590v-128.5q0-24 18-42t42-18H373q0-45 31.21-76t75.79-31q44.58 0 75.79 31.21Q587-823.08 587-778.5h171.5q24 0 42 18t18 42V-590q45 0 76 31.21t31 75.79q0 44.58-31.21 75.79Q863.08-376 818.5-376v201.5q0 24-18 42t-42 18h-557q-24 0-42-18t-18-42V-376Zm203.17-101.43q17.24 0 29.1-12.1 11.86-12.09 11.86-29.46 0-17.36-12.09-29.22-12.1-11.86-29.34-11.86-17.24 0-29.22 12.08Q303-535.92 303-518.4q0 17.25 12.21 29.11 12.22 11.86 29.46 11.86Zm271.13 0q17.24 0 29.22-12.1Q657-501.62 657-518.99q0-17.36-12.21-29.22-12.22-11.86-29.46-11.86-17.24 0-29.1 12.08-11.86 12.07-11.86 29.59 0 17.25 12.09 29.11 12.1 11.86 29.34 11.86ZM314.63-285h330.74v-62.63H314.63V-285Zm-105 102.37h540.74v-527.74H209.63v527.74ZM480-447Z",
|
|
58798
|
-
autoAwesome: "M352.39-107.15 307-253.85l-148.85-44.54 148.85-44.78L352.39-490l45.15 147.43L544.63-298.4l-147.09 44.56-45.15 146.69Zm370-290.85-28.52-92.39-94.24-28.24 94.24-28.48 28.52-92.15 28.28 92.15 94.72 28.48-94.72 28.24-28.28 92.39ZM192.15-502.52l-17.76-58.52-58.52-18.72 58.52-17.48 17.76-59.24 18.48 59.24 58.52 17.48-58.52 18.72-18.48 58.52Z",
|
|
58799
|
-
modelTraining: "M198.35-197.15q-42.92-50.15-66.37-111.69-23.46-61.53-23.46-131.16 0-152.63 106.08-260.24 106.07-107.61 259.42-110 9.76 0 20.02.5t17.79 1.5l-80.29-80.28 43.92-44.15L641.2-766.93 475.46-600.96l-44.68-44.67 92.24-92.24q-11-2-25.88-3-14.88-1-22.64-1-125.24 1.91-211.42 89.75-86.19 87.84-86.19 212.12 0 50.28 16.88 102.36 16.88 52.07 53.56 91.75l-48.98 48.74Zm242.69-5.44q0-21.71-15.47-44.31-15.48-22.6-33.58-46.2-18.1-23.6-33.46-49.81-15.36-26.22-15.36-55.18 0-56.67 40.2-96.75 40.2-40.07 96.63-40.07 56.67 0 96.75 40.07 40.08 40.08 40.08 96.75 0 28.96-15.36 55.18-15.36 26.21-33.46 49.81t-33.46 46.2q-15.35 22.6-15.35 44.31h-78.16Zm-2 92.87v-51.67h82.16v51.67h-82.16Zm322.61-87.43-47.74-47.74q30.72-36.96 50.08-86.68 19.36-49.71 19.36-108.43 0-63.37-25.59-121.2-25.59-57.82-77.72-102.82l49.98-49.74q55.85 50.48 88.65 120.74 32.81 70.26 32.81 153.02 0 70.11-23.46 131.4-23.45 61.3-66.37 111.45Z",
|
|
58800
|
-
science: "M197.37-117.37v-65.26h208v-98.74h-15q-81.48-.96-137.24-57.67-55.76-56.72-55.76-137.96 0-60.28 34.04-109.8 34.05-49.53 89.85-70.72 3.52-40.24 34.04-66.44 30.53-26.19 71.29-25.11l-20.76-58.28 43.63-15.75-14-37.44 71.5-25.68 14.24 37 42.15-14.95 116.82 305.28-45.39 15.96 14 37-69.26 24.91-14.48-37-45.15 17.19-25-67.28q-14.52 15.57-33.82 22.47-19.31 6.9-41.21 6.14-26.62-.52-49.58-15.28-22.95-14.76-36.43-38.48-32.61 16.52-51.92 47.93-19.3 31.41-19.3 68.33 0 54.46 37.96 92.41 37.95 37.96 92.41 37.96h349.63v65.26h-232v98.74h252v65.26H197.37ZM556-572l53-19-80-206-53 19 80 206Zm-130.18-23q21.18 0 35.68-14.32 14.5-14.33 14.5-35.5 0-21.18-14.32-35.68-14.33-14.5-35.5-14.5-21.18 0-35.68 14.32-14.5 14.33-14.5 35.5 0 21.18 14.32 35.68 14.33 14.5 35.5 14.5ZM556-572Zm-130-75Zm2 0Z",
|
|
58801
|
-
biotech: "m573.85-153.3-47.74-47.74L634-308.93l-107.89-107.9 47.74-47.74 107.89 107.9 108.13-107.9 47.74 47.74-108.13 107.9 108.13 107.89-47.74 47.74-108.13-107.9-107.89 107.9Zm84.43-374.96L510.3-676l47.98-47.74 100 99 179-179.24L885.02-755 658.28-528.26ZM74.98-285.93v-68.14h364.06v68.14H74.98Zm0-320v-68.14h364.06v68.14H74.98Z",
|
|
58802
|
-
// ---- Data & storage ----
|
|
58803
|
-
database: "M480.11-114.02q-153.74 0-259.91-48.18Q114.02-210.37 114.02-280v-400q0-68.56 107.18-117.39 107.17-48.83 258.75-48.83 151.34 0 258.8 48.83Q846.22-748.56 846.22-680v400q0 69.63-106.31 117.8-106.3 48.18-259.8 48.18ZM480-608.24q85.84 0 175.94-26.38T772.76-694q-27.72-32-118.1-58.88-90.38-26.88-174.78-26.88-87.4 0-176.28 26T186.48-694q28.24 35 115.96 60.38 87.72 25.38 177.56 25.38Zm-1 213.76q41.76 0 83.43-4.62 41.68-4.62 79.98-13.74 38.3-9.12 73.47-22.36 35.16-13.23 63.88-29.47v-147.11q-29.48 16-64.6 29-35.12 13-73.88 21.88-38.76 8.88-79.52 13.76-40.76 4.88-82.85 4.88-41.6 0-83.33-4.88-41.72-4.88-80.17-13.88t-73.07-21.88q-34.62-12.88-61.86-28.88v147.11q27 16.24 61.24 29.35 34.24 13.12 72.74 22.36 38.5 9.24 80.29 13.86 41.8 4.62 84.25 4.62Zm1 214q47.52.24 98.04-8.14 50.53-8.38 93.03-22.26t72.23-31Q773.04-259 779.76-277v-119.74q-28.48 16.24-63.36 28.98-34.88 12.74-73.42 21.74-38.55 9-79.86 13.5t-84.12 4.5q-42.69 0-84.48-4.62-41.8-4.62-80.18-13.62-38.38-9-72.5-21.74-34.12-12.74-61.36-28.74v120.73q5.72 17.01 34.95 34.39 29.24 17.38 72.12 30.88 42.88 13.5 93.41 21.88 50.52 8.38 99.04 8.38Z",
|
|
58804
|
-
dataObject: "M573.59-154.02v-67.89H685.7q21.89 0 37.14-15.13 15.25-15.12 15.25-37.5v-94.5q0-37.24 22.5-66.6 22.5-29.36 57.98-40.44v-7.84q-35.48-10.08-57.98-39.94t-22.5-67.1v-94.74q0-22.14-15.13-37.26-15.12-15.13-37.26-15.13H573.59v-68.13h118.08q47.8 0 81.17 33.46 33.38 33.46 33.38 81.33v94.5q0 22.44 14.97 37.53 14.97 15.1 37.42 15.1h27.61v128.6h-27.61q-22.45 0-37.42 15.13-14.97 15.13-14.97 37.27v94.73q0 47.99-33.46 81.27-33.46 33.28-81.09 33.28H573.59Zm-305.26 0q-47.92 0-81.11-33.28-33.2-33.28-33.2-81.27v-94.73q0-22.14-15.12-37.27-15.13-15.13-37.27-15.13H74.02v-128.6h27.61q22.14 0 37.27-15.1 15.12-15.09 15.12-37.53v-94.5q0-47.87 33.28-81.33t81.03-33.46h118.08v68.13H274.54q-21.89 0-37.26 15.13-15.37 15.12-15.37 37.26v94.74q0 37.24-22.5 67.1-22.5 29.86-57.74 39.94v7.84q35.24 11.08 57.74 40.44t22.5 66.6v94.5q0 22.38 15.25 37.5 15.24 15.13 37.38 15.13h111.87v67.89H268.33Z",
|
|
58805
|
-
tableChart: "M777.85-115.02h-595.7q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-594.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v594.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27Zm-595.7-523.5h595.7v-139.33h-595.7v139.33Zm128.81 60H182.15v395.37h128.81v-395.37Zm338.08 0v395.37h128.81v-395.37H649.04Zm-60 0H370.96v395.37h218.08v-395.37Z",
|
|
58806
|
-
token: "M480-73.78 114.5-282.89v-405.46L480-886.22l365.5 197.87v405.46L480-73.78ZM365.52-581.35q23.24-22.76 52.86-37.02Q448-632.63 480-632.63q32 0 61.62 14.26 29.62 14.26 52.86 37.02L741.5-668 480-806.89 218.5-668l147.02 86.65Zm81.85 410.57v-160.31q-52.24-14.24-86.12-54.83-33.88-40.6-33.88-94.08 0-10.76 1.38-21.9 1.38-11.14 5.14-21.67l-151.26-89.89v290.79l264.74 151.89ZM480-392.63q36.8 0 62.09-25.28 25.28-25.29 25.28-62.09 0-36.8-25.28-62.09-25.29-25.28-62.09-25.28-36.8 0-62.09 25.28-25.28 25.29-25.28 62.09 0 36.8 25.28 62.09 25.29 25.28 62.09 25.28Zm32.63 221.85 264.74-151.89v-290.79l-151.02 89.89q3.52 10.53 4.9 21.67 1.38 11.14 1.38 21.9 0 53.48-33.88 94.08-33.88 40.59-86.12 54.83v160.31Z",
|
|
58807
|
-
storage: "M111.87-146.13v-159.24h736.5v159.24h-736.5Zm68.13-42.3h74.63v-74.87H180v74.87Zm-68.13-466.2v-159.24h736.5v159.24h-736.5Zm68.13-42.3h74.63v-74.87H180v74.87ZM111.87-400.5v-159h736.5v159h-736.5ZM180-442.57h74.63v-74.86H180v74.86Z",
|
|
58808
|
-
memory: "M239-399h313v-60H239v60Zm0-130h480v-60H239v60Zm0-130h480v-60H239v60ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z",
|
|
58809
|
-
// ---- Cloud & network ----
|
|
58810
|
-
api: "M480-369.26 369.26-480 480-590.74 590.74-480 480-369.26Zm-85-304.28-86.83-86.83L480-931.96l171.83 171.59L565-673.54l-85-85-85 85ZM199.87-308.17 28.04-480l171.83-171.83L286.46-565l-85 85 85 85-86.59 86.83Zm560.5 0L673.54-395l85-85-85-85 86.83-86.83L931.96-480 760.37-308.17ZM480-28.04 308.17-199.87 395-286.46l85 85 85-85 86.83 86.59L480-28.04Z",
|
|
58811
|
-
webhook: "M270.1-115.93q-79.9 0-137.03-57.17-57.14-57.17-57.14-136.83 0-68.5 40.2-120.06 40.2-51.55 105.3-67.55v65.63q-36.67 14-59.77 47.11-23.09 33.11-23.09 74.88 0 54.16 38.4 92.76 38.4 38.59 92.97 38.59 54.78 0 93.14-38.41 38.35-38.42 38.35-93.02v-31.43h247.09q8.36-9 19.25-14.5 10.9-5.5 22.23-5.5 21.76 0 36.6 14.83 14.83 14.84 14.83 36.49 0 20.84-14.83 36.19-14.84 15.35-36.6 15.35-11.33 0-22.23-5.5-10.89-5.5-19.25-14.5H462.18q-14.83 70.2-68.21 116.42-53.39 46.22-123.87 46.22Zm419.9 0q-48.48 0-90.29-22.24-41.82-22.24-68.54-60.4h89.59q14.95 10 32.75 15 17.79 5 36.49 5 54.8 0 93.12-38.4 38.31-38.4 38.31-92.97 0-54.78-38.31-93.14-38.32-38.35-93.12-38.35-19.72 0-36.2 4.85-16.47 4.86-31.53 14.1L494.04-638.8q-20.24-4.24-32.86-18.03-12.61-13.78-12.61-33.19 0-21.44 15.35-36.43 15.35-14.98 36.07-14.98 21.73 0 36.59 14.92 14.85 14.93 14.85 36.55 0 3.96-.5 7.34t-2.5 10.38l100.61 172.17q10.76-2 22.02-3t18.94-1q80.69 0 137.38 56.54t56.69 137.61q0 79.59-56.69 136.79-56.69 57.2-137.38 57.2ZM270.11-258.57q-20.84 0-36.19-15.31-15.35-15.32-15.35-36.12 0-18.58 12.61-32.39 12.62-13.81 31.86-18.81l108.85-183.17q-30.96-29.24-48.46-66.95-17.5-37.71-17.5-78.7 0-80.78 57.22-137.41 57.21-56.64 136.93-56.64 77.72 0 133.85 53.69 56.14 53.69 60.14 130.38h-62.64q-3-51.72-40.89-86.58-37.89-34.85-90.46-34.85-54.56 0-93.04 38.31-38.47 38.32-38.47 93.04 0 42.9 25.09 76.71 25.1 33.8 63.82 47.8L317.43-328.8q2 5.97 3 10.4 1 4.44 1 8.36 0 20.84-14.83 36.16-14.84 15.31-36.49 15.31Z",
|
|
58812
|
-
cloudSync: "M167.48-156.41v-62.63h124.26q-64-48.72-100.14-109.22t-36.14-148.5q0-102.98 61.63-191.22T391.54-789.5v70.13q-71 24.57-119.36 91.21-48.35 66.64-48.35 151.4 0 62.95 26.9 114.94 26.9 51.99 87.47 91.28V-390h62.63v233.59H167.48Zm436.59 5.98q-52.14 0-88.82-36.62-36.68-36.61-36.68-88.92 0-49.41 33.59-85.6 33.6-36.19 82.56-39.39 17.95-36.24 52.29-58.36 34.34-22.11 77.07-22.11 54.94 0 94.85 34.85 39.92 34.86 47.68 85.62h2q42.48 1.44 71.84 32.28 29.35 30.83 29.35 71.79 0 44-30.78 75.23-30.79 31.23-74.95 31.23h-260ZM732.18-520q-11.01-50.28-37.33-91.45-26.32-41.18-69.81-78.01V-570h-62.87v-233.59h233.59v62.63H670.5q49 41.96 85.99 101.46Q793.48-580 801.54-520h-69.36ZM604.07-215.93h260q17 0 28.5-11.5t11.5-28.5q0-16.77-11.5-28.39-11.5-11.61-28.5-11.61h-50v-30q0-37.77-26-63.89-26-26.11-64-26.11-37.77 0-63.89 24.5-26.11 24.5-26.11 55.5h-30q-25 0-42.5 17.5t-17.5 42.5q0 25 17.5 42.5t42.5 17.5Zm120-100Z",
|
|
58813
|
-
cloudUpload: "M250.48-154.02q-88.47 0-152.23-63.6-63.75-63.6-63.75-151.9 0-79.44 49.74-140.73 49.74-61.29 128.93-73.77 20.96-97.72 95.96-159.46 75-61.74 172.94-61.74 113.89 0 191.58 81.74 77.7 81.74 79.61 196.46v24q72.72.15 122.48 49.89 49.76 49.75 49.76 124.61 0 71.61-51.79 123.05-51.8 51.45-123.19 51.45H516.93q-27.58 0-47.97-20.39t-20.39-47.74v-247l-84.2 84.43-44.91-44.67L480-590.17l160.78 160.78-45.15 44.67-84.2-84.43v247h239.18q43.72 0 75.24-31.49 31.52-31.49 31.52-75.36 0-44.04-31.49-75.45-31.49-31.4-75.36-31.4h-65.15v-86.63q0-87.91-59.7-151.14-59.7-63.23-147.56-63.23-88.39 0-148.44 64.12-60.04 64.12-60.04 152.88h-21.15q-61.11 0-103.48 42.86-42.37 42.85-42.37 105.94 0 61.09 43.33 105 43.34 43.9 104.64 43.9h137.97v68.13H250.48ZM480-445.93Z",
|
|
58814
|
-
cloudDownload: "M251-154.02q-90.08 0-153.29-62.9Q34.5-279.83 34.5-369.86q0-80.73 50.86-140.61 50.86-59.88 127.9-72.36 15.87-83.52 82.39-148.14 66.52-64.62 151.76-64.62 25.94 0 45.48 14.58 19.54 14.58 19.54 39.01v293.52L594-530.52l44.91 44.91L481-327.46 323.09-485.61 368-530.52l81.57 82.04v-285.89q-84.33 12.2-132.14 75.98-47.8 63.78-47.8 138.54h-21.15q-60.11 0-102.98 42.36-42.87 42.36-42.87 106.45 0 64.32 44.23 106.61 44.23 42.28 104.14 42.28h500q43.73 0 75.05-31.25 31.32-31.26 31.32-75.6 0-44.04-31.4-75.45-31.4-31.4-75.35-31.4h-64.05v-85.67q0-67.16-32.07-115.3t-83.07-77.35v-73.61q81.96 29 131.18 101.24 49.22 72.24 50.65 160.71v24q72.48-.08 122.36 48.95 49.88 49.02 49.88 124.84 0 71.31-51.6 122.66-51.61 51.36-122.9 51.36H251Zm229-356.33Z",
|
|
58815
|
-
dns: "M286.88-724.17q-20.88 0-35.38 14.61-14.5 14.62-14.5 35.5 0 20.89 14.62 35.39t35.5 14.5q20.88 0 35.38-14.62 14.5-14.62 14.5-35.5 0-20.88-14.62-35.38-14.62-14.5-35.5-14.5Zm0 426.19q-20.88 0-35.38 14.62-14.5 14.62-14.5 35.5 0 20.88 14.62 35.38 14.62 14.5 35.5 14.5 20.88 0 35.38-14.62 14.5-14.61 14.5-35.5 0-20.88-14.62-35.38-14.62-14.5-35.5-14.5ZM152.09-852.39h654.82q17.83 0 28.57 10.81 10.74 10.82 10.74 29.05v271.31q0 19.56-10.74 32.79t-28.57 13.23H152.09q-16.86 0-27.47-13.23-10.6-13.23-10.6-32.79v-271.31q0-18.23 10.6-29.05 10.61-10.81 27.47-10.81Zm30.06 68.37v220.69h595.7v-220.69h-595.7ZM152.09-427.2h650.82q16.83 0 30.07 14.02 13.24 14.01 13.24 32.27v266.61q0 21.96-13.24 33.63Q819.74-69 802.91-69H157.09q-17.86 0-30.47-11.67-12.6-11.67-12.6-33.63v-266.61q0-18.26 10.6-32.27 10.61-14.02 27.47-14.02Zm30.06 68.37v221.46h595.7v-221.46h-595.7Zm0-425.19v220.69-220.69Zm0 425.19v221.46-221.46Z",
|
|
58816
|
-
router: "M182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-204q0-27.7 20.27-48.04 20.26-20.33 47.86-20.33h427.39v-163.33h68.37v163.33h99.7q27.7 0 48.03 20.33 20.34 20.34 20.34 48.04v204q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H182.15Zm0-68.13h595.46v-204H182.15v204Zm102.11-60q17.89 0 29.89-12.11 12-12.1 12-30 0-17.89-12.1-29.89-12.11-12-30-12-17.9 0-29.9 12.1-12 12.11-12 30 0 17.9 12.11 29.9 12.1 12 30 12Zm144.41 0q17.9 0 29.9-12.11 12-12.1 12-30 0-17.89-12.11-29.89t-30-12q-17.89 0-29.89 12.1-12 12.11-12 30 0 17.9 12.1 29.9 12.11 12 30 12Zm144.41 0q17.9 0 29.9-12.11 12-12.1 12-30 0-17.89-12.11-29.89-12.1-12-30-12-17.89 0-29.89 12.1-12 12.11-12 30 0 17.9 12.1 29.9 12.11 12 30 12Zm-9.71-425.81L520.7-710.6q24-24.27 55.14-38.51 31.15-14.24 67.77-14.24 36.61 0 67.76 14.24 31.15 14.24 55.39 38.48l-42.67 42.67q-14.24-13.76-35.41-23.14-21.16-9.38-44.57-9.38t-45.08 9.38q-21.66 9.38-35.66 23.14Zm-86.67-86.67-45.68-45.91q33-33.48 89.08-59.58 56.07-26.1 123.63-26.1 67.55 0 123.63 26.1 56.07 26.1 89.07 59.58l-45.67 45.91q-25.91-28.78-69.12-48.75-43.21-19.97-98.03-19.97-54.7 0-97.81 19.98-43.1 19.98-69.1 48.74ZM182.15-182.15v-204 204Z",
|
|
58817
|
-
http: "M36.89-358.57v-242.86h50.63v85h112.37v-85h50.63v242.86h-50.63v-107H87.52v107H36.89Zm313.48 0v-192h-81.2v-50.86h213.26v50.86h-81.19v192h-50.87Zm232.39 0v-192h-81.19v-50.86h213.5v50.86h-81.44v192h-50.87Zm150.72 0v-242.86h139.43q23.72 0 37.08 13.47 13.36 13.48 13.36 36.9v60.69q0 23.77-13.36 36.6-13.36 12.84-37.08 12.84h-88.56v82.36h-50.87Zm50.87-133h88.13v-59h-88.13v59Z",
|
|
58818
|
-
link: "M447.37-274.02H280q-85.66 0-145.82-60.16-60.16-60.15-60.16-145.75 0-85.59 60.16-145.94 60.16-60.35 145.82-60.35h167.37v68.37H280.1q-57.66 0-97.8 40.05-40.15 40.05-40.15 97.56 0 57.52 40.15 97.81 40.14 40.28 97.8 40.28h167.27v68.13ZM320.93-448.57v-62.86h318.14v62.86H320.93Zm191.7 174.55v-68.13H679.9q57.66 0 97.8-40.05 40.15-40.05 40.15-97.56 0-57.52-40.15-97.81-40.14-40.28-97.8-40.28H512.63v-68.37H680q85.58 0 145.9 60.33 60.32 60.33 60.32 145.93 0 85.59-60.32 145.76-60.32 60.18-145.9 60.18H512.63Z",
|
|
58819
|
-
// ---- Security & auth ----
|
|
58820
|
-
key: "M280.06-409.37q-29.02 0-49.85-20.78-20.84-20.77-20.84-49.79t20.78-49.85q20.77-20.84 49.79-20.84t49.85 20.78q20.84 20.77 20.84 49.79t-20.78 49.85q-20.77 20.84-49.79 20.84ZM280-234.5q-102.07 0-173.79-71.73Q34.5-377.96 34.5-480.06q0-102.09 71.71-173.77Q177.93-725.5 280-725.5q73.91 0 129.35 34.96 55.43 34.95 86.45 104.91h355.03L966.7-470 795.87-313.17l-88.24-64.48-87.76 63.76-75.96-60.48h-48.13q-25 60.72-79.89 100.29Q360.99-234.5 280-234.5Zm0-65.5q58.72 0 107.84-39.1 49.12-39.1 62.64-100.53h117.11l53.04 44.28 88-63 82 61.52 82.13-74.45-48.85-49.09H450.48q-11.28-56.96-59.67-98.29Q342.43-660 280-660q-75 0-127.5 52.5T100-480q0 75 52.5 127.5T280-300Z",
|
|
58821
|
-
shield: "M479.98-74.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-887.22l326.22 122.05V-523q0 154.1-91.82 283.32-91.82 129.23-234.42 164.9Zm.02-70.13q113.8-39.2 185.83-143.62 72.02-104.43 72.02-234.4v-194.4L480-814.61l-257.85 97.4v194.17q0 130.08 72.02 234.51Q366.2-184.11 480-144.91Zm0-334.85Z",
|
|
58822
|
-
vpnKey: "M280-234.5q-102.07 0-173.79-71.73Q34.5-377.96 34.5-480.06q0-102.09 71.71-173.77Q177.93-725.5 280-725.5q80.63 0 135.45 39.05 54.81 39.06 80.33 100.82H925.5v211.26h-106v137H628v-137H495.73q-25.47 61.76-80.28 100.82Q360.63-234.5 280-234.5Zm0-65.5q72.2 0 117.82-48.2 45.61-48.19 52.61-91.43H697.5v137H754v-137h106v-80.74H450.48q-7.05-43.24-52.66-91.43Q352.2-660 280-660q-75 0-127.5 52.5T100-480q0 75 52.5 127.5T280-300Zm-.06-109.37q30.26 0 50.47-20.28 20.22-20.27 20.22-50.29 0-30.26-20.16-50.47-20.16-20.22-50.41-20.22-30.02 0-50.35 20.16-20.34 20.16-20.34 50.41 0 30.02 20.28 50.35 20.27 20.34 50.29 20.34ZM280-480Z",
|
|
58823
|
-
verified: "m343.61-52.35-77.44-132.39-153.87-31.72 17.48-149.63L32.11-480l97.67-113.01-17.48-149.77 153.99-31.48 77.23-133.39 136.56 63 136.55-63 78.18 133.39 152.89 31.48-17.48 149.77L927.89-480l-97.67 113.91 17.48 149.63-152.87 31.72-78.2 132.39L480-115.3 343.61-52.35Zm30.28-89.28 106.08-44.9 109.07 44.9 66.53-99.28 116.04-29.76L759.85-389l80.04-91.02-80.04-93.02 11.76-118.29-116.04-27.76-68.44-99.28-107.09 44.87-109.08-44.87-66.46 99.34-115.87 27.6 11.52 118.39L120.11-480l80.04 91.04-11.52 120.4 115.83 27.59 69.43 99.34ZM480-480Zm-43 134.91L665.91-572l-47.15-42.91-181.76 180-94.76-99.24L294.09-487 437-345.09Z",
|
|
58824
|
-
security: "M479.98-73.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-886.22l326.22 122.05V-522q0 154.1-91.82 283.32-91.82 129.23-234.42 164.9Zm.02-70.13q104.8-35.96 173.82-128.39 69.01-92.44 81.03-207.73H480v-332.58l-257.85 96.4V-522q0 11.76.5 20.5t2.48 21.5H480v336.09Z",
|
|
58825
|
-
policy: "M480-73.78q-142.58-35.67-234.28-164.87-91.7-129.2-91.7-283.27v-242.26L480-886.22l326.22 122.05V-522q0 80.87-22.94 158.57-22.93 77.69-76.93 143.69l-144.31-138.3q-18.76 10.52-39.68 17.28Q501.44-334 480-334q-62 0-105.5-43T331-482.5q0-62.5 43.5-106T480-632q62 0 105.5 43.5T629-482q0 20.76-5.7 41.52t-18.34 37.28l85.61 81.85q24-42.52 35.64-94.66 11.64-52.14 11.64-105.94v-196.86L480-812.61l-257.85 93.92v196.65q0 130.08 72.02 234.51Q366.2-183.11 480.2-143.91q27.6-7.76 67.67-31.81 40.06-24.04 62.87-46.32l48.22 48.74q-35.24 32-84.22 60.38Q525.76-84.54 480-73.78Zm.24-322.85q35.56 0 60.85-24.81 25.28-24.82 25.28-61.09t-25.52-61.56q-25.52-25.28-61.09-25.28-35.56 0-60.85 25.31-25.28 25.32-25.28 61.59t25.52 61.06q25.52 24.78 61.09 24.78Zm2.35-82.83Z",
|
|
58826
|
-
adminPanelSettings: "M691.24-270q26 0 44.12-19 18.12-19 18.12-44.88 0-25.88-18.24-44T691.36-396q-26.12 0-45 18.12t-18.88 44q0 25.88 18.88 44.88 18.88 19 44.88 19Zm-1.26 125q33.5 0 60.35-13.88t46.15-39.88q-26.24-14-52.24-21.12Q718.23-227 690.4-227q-27.92 0-54.54 7.12-26.62 7.12-51.62 21.12 19 26 45.45 39.88Q656.15-145 689.98-145ZM480-73.78q-140.58-32.67-233.28-158.97-92.7-126.29-92.7-289.29v-243.14L480-887.22l326.22 122.15v277.66q-16.15-8.92-34-15.4-17.85-6.47-34.37-8.67v-206.05L480-812.61l-257.85 95v195.51q0 76.58 24.62 140.22t62.5 111.42q37.88 47.79 83.16 79.07 45.29 31.28 86.61 44.56 6.24 14.87 19.92 32.15 13.67 17.27 24.78 26.22-10.44 5.72-21.87 8.58-11.44 2.86-21.87 6.1ZM692.5-80Q615-80 560-135.5T505-267q0-78.43 54.99-133.72Q614.98-456 693-456q77 0 132.5 55.28Q881-345.43 881-267q0 76-55.5 131.5T692.5-80ZM480-479.72Z",
|
|
58827
|
-
// ---- Logic & flow ----
|
|
58828
|
-
altRoute: "M445.93-74.02v-194.26q0-46.81-15.04-78.64-15.04-31.84-49-65.56l48.74-48.74q12.04 10.52 26.07 28.81 14.02 18.28 23.3 33.08 16.52-24.8 32.54-43.56 16.03-18.76 31.5-31.76 60.87-47.48 86.13-114.46 25.26-66.98 19.03-167.32l-90 90-47.74-47.74L683.5-886.22l172.04 172.05-47.74 47.74-90-90q4.29 121.45-24.62 194.43-28.9 72.98-103.88 139.8-45.91 41.2-60.57 74.8-14.66 33.6-14.66 79.12v194.26h-68.14ZM248.67-627.87q-4-17.52-6.74-52.14-2.73-34.62-.73-75.42l-88.77 89-47.97-47.74L276.5-886.22l171.8 172.05-47.73 47.74-89.77-90q-2.23 36.56-1.23 64.34 1 27.79 5.23 48.07l-66.13 16.15Zm87.83 171.96q-17.96-18.48-38.93-47.86-20.98-29.38-32.22-62.47l68.08-17.39q8.53 22.85 23.17 44.65 14.64 21.81 27.4 35.33l-47.5 47.74Z",
|
|
58829
|
-
callSplit: "M447.93-154.02v-310.31L222.15-690.11v117.26h-68.13v-233.37h233.13v68.37H270.89l245.18 245.18v338.65h-68.14Zm122.81-369.74L523-571.5l165.87-166.35H572.85v-68.37h233.37v233.37h-68.37v-117.02L570.74-523.76Z",
|
|
58830
|
-
callMerge: "m272-154.02-47.74-48.74L443.93-422.2v-292.47L326-596.74l-48.74-48.74L478-846.22l200.74 200.74L630-596.74 512.07-714.67v320.58L272-154.02Zm409.24 0-162-162 48.5-48.74 162 162-48.5 48.74Z",
|
|
58831
|
-
rule: "m573.85-153.3-47.74-47.74L634-308.93l-107.89-107.9 47.74-47.74 107.89 107.9 108.13-107.9 47.74 47.74-108.13 107.9 108.13 107.89-47.74 47.74-108.13-107.9-107.89 107.9Zm84.43-374.96L510.3-676l47.98-47.74 100 99 179-179.24L885.02-755 658.28-528.26ZM74.98-285.93v-68.14h364.06v68.14H74.98Zm0-320v-68.14h364.06v68.14H74.98Z",
|
|
58832
|
-
filterAlt: "M440-154.02q-19.39 0-32.68-13.3-13.3-13.29-13.3-32.68v-237.85L156.46-741.41q-16.39-20.11-4.84-42.46T188-806.22h584q24.83 0 36.38 22.35 11.55 22.35-4.6 42.46L566.22-437.85v239.76q0 18.92-12.7 31.49-12.69 12.58-31.61 12.58H440Zm40-285.57 235.46-298.26H244.78L480-439.59Zm0 0Z",
|
|
58833
|
-
repeat: "M278.33-73.78 114.02-238.33l164.31-164.3 46.54 48.3-82.89 82.9h457.78v-160h66.46v226.45H241.98l82.89 82.65-46.54 48.55Zm-84.31-453.11v-226.46h524.24L635.37-836l46.54-48.54L846.22-720 681.91-555.46 635.37-604l82.89-82.89H260.48v160h-66.46Z",
|
|
58834
|
-
sort: "M114.02-227.8v-68.13h249.09v68.13H114.02Zm0-218.13v-68.14h490.52v68.14H114.02Zm0-218.14v-67.89h732.2v67.89h-732.2Z",
|
|
58835
|
-
// ---- Actions & status ----
|
|
58836
|
-
bolt: "M454-315.15 278.39-516.76l48.98-48.5L445.93-446.7v-359.52h68.14v359.52l118.56-118.56 48.98 48.5L480-315.15ZM222.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-143h68.13v143h515.7v-143h68.37v143q0 27.58-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Z",
|
|
58837
|
-
build: "M704.04-120.11 442.93-382.98q-22.52 7.76-44.76 12.4-22.24 4.65-46.8 4.65-99.48 0-168.99-69.39-69.51-69.38-69.51-168.11 0-31.48 8.76-62.43 8.75-30.94 23.67-57.4l146.28 146.19 91.92-86-150.2-150.19q25.68-15.16 56.64-24.42 30.95-9.25 61.43-9.25 101.36 0 172.31 71.02t70.95 172.48q0 23.57-4.64 46.18-4.64 22.62-12.4 45.62L839.7-250.76q12.67 12.78 12.67 30.42t-12.67 30.23l-76 70q-12.32 12.44-29.77 12.44t-29.89-12.44Zm31.83-60.82 40-40-278.5-278.5q16-21 24-49.5t8-54.5q0-75-55.5-127t-126.5-53l98.89 100.89q10.2 10.37 9.7 24.69-.5 14.33-10.7 24.52L318.48-514.54q-10.8 9.43-24.9 9.43-14.1 0-23.32-9.43l-94.89-93.89q3 77 54.67 127t121.33 50q25 0 53-8t49-24l282.5 282.5ZM476.24-482.57Z",
|
|
58838
|
-
rocketLaunch: "m188.91-556.74 101.7 43.33q17.28-33.85 36.71-67.18 19.42-33.32 40.98-63.89l-76.37-15.28-103.02 103.02Zm156.39 84.11 131.33 131.56q58.44-27.43 107.48-59.59 49.04-32.17 79.8-62.93 80.05-80.28 117.81-163.84Q819.48-711 823.2-819.2q-108.2 3.72-191.77 41.48-83.56 37.76-163.6 117.81-30.76 30.76-62.93 79.8-32.16 49.04-59.6 107.48Zm231.16-99.59q-19.76-19.76-19.76-48.66 0-28.9 19.76-48.66 19.76-19.53 48.54-19.53 28.78 0 48.54 19.53 19.53 19.76 19.53 48.66 0 28.9-19.53 48.66Q653.78-552.7 625-552.7q-28.78 0-48.54-19.52ZM560.5-184.91l103.26-103.02-15.28-76.37q-30.57 21.56-63.89 41.1-33.33 19.55-67.18 36.59l43.09 101.7Zm331.26-702.61q8.52 143.17-35.08 257.09-43.59 113.91-142.11 212.67-1.48 1.24-2.96 2.84-1.48 1.59-2.72 2.83l22 110.48q3.48 17.15-1.74 33.19-5.22 16.03-17.65 28.46L537.87-65.33l-88.83-206.84-172.87-172.87-206.84-88.83L244.2-707.5q12.43-12.43 28.34-17.65 15.92-5.22 33.07-1.74l110.48 22q1.24-1.24 2.71-2.1 1.48-.86 2.96-2.1 98.76-99 212.79-142.98 114.04-43.97 257.21-35.45ZM141.59-324.04q36.91-36.92 89.56-37.3 52.65-.38 89.33 36.3 36.43 36.43 36.05 89.2-.38 52.77-37.05 89.45-27.68 27.67-85.64 45.63-57.97 17.96-168.64 32 14.04-110.67 31.5-169.26 17.45-58.59 44.89-86.02Zm47.98 48.74q-13.77 14.76-23.93 44.84-10.16 30.09-18.16 78.66 48.56-8 78.65-18.41 30.09-10.4 44.61-24.16 18.28-16.04 18.54-40.35.26-24.3-16.78-42.58-18.28-17.05-42.59-16.55-24.3.5-40.34 18.55Z",
|
|
58839
|
-
send: "M114.5-154.26v-651.48L887.17-480 114.5-154.26ZM180-255.63 717.3-480 180-707.37v162.74L424.63-480 180-417.37v161.74Zm0 0v-451.74 451.74Z",
|
|
58840
|
-
sync: "M167.48-156.41v-62.63H291.5l-12.61-10.33q-64.24-52.2-93.84-112.55-29.59-60.36-29.59-135.08 0-108.87 65.37-195.04 65.37-86.18 170.71-117.46v70.13q-75.24 27.57-121.47 94.59-46.24 67.02-46.24 147.78 0 62.04 23.14 107.71 23.14 45.66 62.66 79.18l28.57 19.57V-390h62.63v233.59H167.48Zm401.98-13.09v-71.13q76.24-27.57 121.47-94.59 45.24-67.02 45.24-147.78 0-47.04-23.26-95.71-23.26-48.66-60.3-86.18l-27.57-24.57V-570h-62.87v-233.59h233.59v62.63H670.5l12.85 12.33q60.48 56.48 90.83 121.2 30.36 64.71 30.36 124.43 0 108.87-64.87 195.54-64.87 86.68-170.21 117.96Z",
|
|
58841
|
-
refresh: "M479.28-154.02q-135.39 0-230.68-95.3-95.3-95.29-95.3-230.62 0-135.33 95.3-230.81 95.29-95.47 230.68-95.47 86.44 0 151.73 35.03 65.29 35.04 113.06 96.36v-131.39h62.86v262.85H543.85V-606h167.04q-38.24-59.04-96.28-95.45-58.04-36.4-135.33-36.4-108.1 0-182.97 74.86-74.88 74.86-74.88 182.95 0 108.08 74.88 182.99 74.87 74.9 182.98 74.9q81.8 0 150.2-46.9 68.4-46.91 95.64-123.95h70.37q-29.24 107.39-116.97 173.18-87.74 65.8-199.25 65.8Z",
|
|
58842
|
-
// ---- Communication ----
|
|
58843
|
-
notifications: "M154.02-194.02v-68.13h77.85v-298.02q0-86.08 50.34-154.77 50.33-68.69 133.72-86.41v-20.56q0-26.8 18.69-45.55 18.69-18.76 45.38-18.76t45.38 18.76q18.69 18.75 18.69 45.55v20.56q83.39 17.48 133.84 86.25 50.46 68.77 50.46 154.93v298.02h77.85v68.13h-652.2ZM480-501.04Zm.12 429.17q-33.83 0-57.93-24.13t-24.1-58.02h164.06q0 33.95-24.15 58.05-24.15 24.1-57.88 24.1ZM300-262.15h360v-298.02q0-74.76-52.5-127.38Q555-740.17 480-740.17t-127.5 52.62Q300-634.93 300-560.17v298.02Z",
|
|
58844
|
-
email: "M154.02-194.02v-62.63h625.96v62.63H154.02Zm0-218.13v-68.14h625.96v68.14H154.02Zm0-218.14v-67.89h732.2v67.89h-732.2Z",
|
|
58845
|
-
campaign: "M732.63-447.37v-65.26H891v65.26H732.63Zm55.74 292.87-127.7-95.02 39.35-52.31 127.46 94.79-39.11 52.54Zm-85.35-504.67-39.35-52.31 124.7-94.02 39.11 52.3-124.46 94.03ZM199-194.02v-160h-64.5q-27.38-.96-46.44-20.87T69-422.15v-115.7q0-28.2 20.08-48.28 20.09-20.09 48.29-20.09H313.3l207.9-124.54v501.52L313.3-354.02h-44.97v160H199Zm253.83-155.57v-260.82l-121.85 72.56H137.37v115.7h193.61l121.85 72.56Zm108.37 9.57v-280.2q29.63 24.72 47.56 61.01 17.94 36.3 17.94 79.21t-17.89 79.18q-17.89 36.27-47.61 60.8ZM295.22-480Z",
|
|
58846
|
-
// ---- Scheduling ----
|
|
58847
|
-
event: "M596.82-220Q556-220 528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28ZM182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v615.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7V-570h-595.7v427.85Zm0-487.85h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630Z",
|
|
58848
|
-
schedule: "m624.37-286.04 49.06-48.59-157.8-158.86v-198.55h-65.26v224.89l174 181.11ZM480.03-74.02q-83.46 0-157.51-31.95-74.05-31.94-129.32-87.21-55.28-55.26-87.23-129.3-31.95-74.03-31.95-157.49 0-83.46 32-157.54 32-74.07 87.2-129.27 55.2-55.2 129.25-87.32 74.05-32.12 157.53-32.12t157.53 32.12q74.05 32.12 129.25 87.32 55.2 55.2 87.32 129.25 32.12 74.05 32.12 157.53T854.1-322.47q-32.12 74.05-87.32 129.25-55.2 55.2-129.24 87.2t-157.51 32Zm.12 337.85q139.16 0 238.57-99.17 99.4-99.16 99.4-238.56t-99.37-238.69Q619.11-817.85 480-817.85q-139.28 0-238.57 99.26-99.28 99.25-99.28 238.59 0 139.52 99.28 238.68 99.28 99.17 238.45 99.17Z",
|
|
58849
|
-
timer: "M354.5-860v-65.5h251v65.5h-251Zm92.87 452.02h65.26v-230.48h-65.26v230.48ZM479.94-70q-75.49 0-142.05-28.94-66.56-28.94-116.36-78.7-49.79-49.75-78.65-116.29-28.86-66.54-28.86-142.01 0-75.47 28.88-142.04 28.88-66.56 78.68-116.4 49.79-49.84 116.35-78.83Q404.5-802.2 480-802.2q67.48 0 127.08 22.5 59.59 22.5 105.83 62.74l53.16-53.15 46.3 46.07-53.15 53.15q36.24 40.48 61.62 97.96 25.38 57.47 25.38 136.95 0 75.52-28.96 142.11-28.95 66.59-78.78 116.31T622.04-98.92Q555.43-70 479.94-70Zm.02-68.37q124.32 0 211.11-86.62 86.78-86.62 86.78-210.95 0-124.32-86.74-211.1-86.75-86.79-211.07-86.79t-211.11 86.75q-86.78 86.74-86.78 211.06 0 124.32 86.74 210.99 86.75 86.66 211.07 86.66Zm.04-296.61Z",
|
|
58850
|
-
// ---- General tools ----
|
|
58851
|
-
terminal: "M795.76-114.3 531.33-378.5q-29.76 25.26-69.6 39.41-39.84 14.16-85.16 14.16-109.84 0-185.96-76.2Q114.5-477.33 114.5-585t76.2-183.87q76.19-76.2 184.37-76.2 108.17 0 183.86 76.2 75.7 76.2 75.7 184.02 0 43.33-13.64 82.97t-40.92 74.4L845.5-164.04l-49.74 49.74ZM375.65-393.07q79.73 0 135.29-56.24Q566.5-505.55 566.5-585q0-79.45-55.6-135.69-55.59-56.24-135.25-56.24-80.49 0-136.76 56.24-56.26 56.24-56.26 135.69 0 79.45 56.23 135.69 56.23 56.24 136.79 56.24Z",
|
|
58852
|
-
settings: "M480.12-330q70.88 0 120.38-49.62t49.5-120.5q0-70.88-49.62-120.38T479.88-670Q409-670 359.5-620.38T310-499.88q0 70.88 49.62 120.38t120.5 49.5Zm-.3-61.83q-45.15 0-76.57-31.6-31.42-31.6-31.42-76.75t31.6-76.57q31.6-31.42 76.75-31.42t76.57 31.6q31.42 31.6 31.42 76.75t-31.6 76.57q-31.6 31.42-76.75 31.42ZM480-194.5q-147.91 0-267.35-84.67Q93.22-363.85 34.5-500q58.72-136.15 178.15-220.83Q332.09-805.5 480-805.5q147.91 0 267.35 84.67Q866.78-636.15 925.5-500q-58.72 136.15-178.15 220.83Q627.91-194.5 480-194.5Zm0-305.5Zm-.15 240q121 0 222.34-65.5Q803.52-391 856.52-500q-53-109-154.19-174.5Q601.15-740 480.15-740t-222.34 65.5Q156.48-609 102.48-500q54 109 155.19 174.5Q358.85-260 479.85-260Z",
|
|
58853
|
-
tune: "M425.57-114.5V-345h65.5v83h353v65.5h-353v82h-65.5Zm-309.64-82V-262h252.5v65.5h-252.5Zm187-168.87v-82h-187v-65.26h187v-84h65.5v231.26h-65.5Zm122.64-82v-65.26h418.5v65.26h-418.5Zm166-167.63v-230.5h65.5v82h187v65.5h-187v83h-65.5Zm-475.64-83v-65.5h418.5v65.5h-418.5Z",
|
|
58854
|
-
search: "M795.76-114.3 531.33-378.5q-29.76 25.26-69.6 39.41-39.84 14.16-85.16 14.16-109.84 0-185.96-76.2Q114.5-477.33 114.5-585t76.2-183.87q76.19-76.2 184.37-76.2 108.17 0 183.86 76.2 75.7 76.2 75.7 184.02 0 43.33-13.64 82.97t-40.92 74.4L845.5-164.04l-49.74 49.74ZM375.65-393.07q79.73 0 135.29-56.24Q566.5-505.55 566.5-585q0-79.45-55.6-135.69-55.59-56.24-135.25-56.24-80.49 0-136.76 56.24-56.26 56.24-56.26 135.69 0 79.45 56.23 135.69 56.23 56.24 136.79 56.24Z",
|
|
58855
|
-
save: "M846.22-685.63v503.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h503.48l160.59 160.59Zm-68.37 30.59L655.04-777.85H182.15v595.7h595.7v-472.89ZM479.76-247.15q43.24 0 73.74-30.27 30.5-30.26 30.5-73.5 0-43.23-30.26-73.73-30.27-30.5-73.5-30.5-43.24 0-73.74 30.26-30.5 30.27-30.5 73.5 0 43.24 30.26 73.74 30.27 30.5 73.5 30.5Zm-244.61-334.7h358v-143h-358v143Zm-53-73.19v472.89-595.7 122.81Z",
|
|
58856
|
-
upload: "M445.93-315.15v-359.52l-118.56 118.8-48.98-48.74L480-806.22l201.61 201.61-48.98 48.74-118.56-118.8v359.52h-68.14ZM222.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-143h68.13v143h515.7v-143h68.37v143q0 27.58-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Z",
|
|
58857
|
-
download: "M480-315.15 278.39-516.76l48.98-48.5L445.93-446.7v-359.52h68.14v359.52l118.56-118.56 48.98 48.5L480-315.15ZM222.15-154.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-143h68.13v143h515.7v-143h68.37v143q0 27.58-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Z",
|
|
58858
|
-
edit: "M181.91-182.15h44.24l459.81-458.81-43.76-44-460.29 459.05v43.76Zm-67.89 68.13V-253.5l574.52-573.76q8.24-8.48 19.81-13.22 11.56-4.74 24.11-4.74 11.47 0 22.95 4.74 11.48 4.74 21.2 12.98l51.89 51.17q9.24 9.72 13.48 21.32t4.24 23.31q0 11.72-4.74 23.7-4.74 11.98-12.98 20.46L253.74-114.02H114.02ZM775.17-732.7l-41.24-41.47 41.24 41.47ZM664.2-663.2l-22-21.76 43.76 44-21.76-22.24Z",
|
|
58859
|
-
delete: "M259.09-114.02q-28.45 0-48.41-19.89-19.96-19.89-19.96-48.24v-565.94h-45.07v-68.13h198.28v-34.3h271.9v34.3h198.52v68.13h-45.07v565.94q0 27.6-20.33 47.86-20.34 20.27-48.04 20.27H259.09Zm441.82-634.07H259.09v565.94h441.82v-565.94ZM363.89-266.24h64.07v-399h-64.07v399Zm168.15 0h64.31v-399h-64.31v399ZM259.09-748.09v565.94-565.94Z",
|
|
58860
|
-
// ---- Status ----
|
|
58861
|
-
checkCircle: "m420.52-294.41 285.63-285.63-50.78-50.03-234.85 234.85-117.85-117.85-49.78 50.03 167.63 168.63Zm59.51 220.39q-83.46 0-157.54-31.88-74.07-31.88-129.39-87.2-55.32-55.32-87.2-129.36-31.88-74.04-31.88-157.51 0-84.46 31.88-158.54 31.88-74.07 87.16-128.9 55.28-54.84 129.34-86.82 74.06-31.99 157.55-31.99 84.48 0 158.59 31.97 74.1 31.97 128.91 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.6 0 83.5-31.99 157.57-31.98 74.07-86.82 129.36-54.83 55.29-128.87 87.17-74.04 31.88-158.51 31.88Zm-.03-68.13q141.04 0 239.45-98.75 98.4-98.76 98.4-239.1 0-141.04-98.4-239.45-98.41-98.4-239.57-98.4-140.16 0-238.95 98.4-98.78 98.41-98.78 239.57 0 140.16 98.75 238.95 98.76 98.78 239.1 98.78ZM480-480Z",
|
|
58862
|
-
error: "M479.93-274.02q16.46 0 27.4-10.74 10.93-10.75 10.93-27.21t-10.86-27.52q-10.86-11.05-27.33-11.05-16.46 0-27.4 11.03-10.93 11.04-10.93 27.5 0 16.47 10.86 27.23 10.86 10.76 27.33 10.76Zm-31-158.74h68.14v-257.07h-68.14v257.07ZM480.3-74.02q-84.2 0-158.04-31.88-73.84-31.88-129.16-87.2-55.32-55.32-87.2-129.2-31.88-73.88-31.88-158.17 0-84.28 31.88-158.2 31.88-73.91 87.16-128.74 55.28-54.84 129.18-86.82 73.9-31.99 158.21-31.99 84.3 0 158.25 31.97 73.94 31.97 128.75 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.33 0 84.24-31.99 158.07-31.98 73.84-86.82 128.95-54.83 55.1-128.87 87.17Q564.5-74.02 480.3-74.02Zm.2-68.13q140.54 0 238.95-98.75 98.4-98.76 98.4-239.6 0-140.54-98.22-238.95-98.21-98.4-239.75-98.4-140.16 0-238.95 98.22-98.78 98.21-98.78 239.75 0 140.16 98.75 238.95 98.76 98.78 239.6 98.78ZM480-480Z",
|
|
58863
|
-
warning: "M34.74-116.89 480-886.22l445.26 769.33H34.74Zm113.8-65.74h662.92L480-754.98 148.54-182.63Zm335.64-54.85q12.96 0 21.87-9.08 8.91-9.09 8.91-22.05t-9.09-21.75q-9.08-8.79-22.05-8.79-12.96 0-21.87 8.96-8.91 8.97-8.91 21.93 0 12.96 9.09 21.87 9.08 8.91 22.05 8.91ZM454-348h60v-222.09h-60V-348Zm26-120.8Z",
|
|
58864
|
-
info: "M450.37-277.37h65.26V-520h-65.26v242.63ZM480-590.41q15.55 0 26.07-10.23 10.52-10.24 10.52-25.36 0-16.24-10.52-26.92-10.51-10.67-26.05-10.67-15.81 0-26.21 10.67-10.4 10.68-10.4 26.8 0 15.27 10.52 25.49 10.52 10.22 26.07 10.22Zm.3 516.39q-84.2 0-158.04-31.88-73.84-31.88-129.16-87.2-55.32-55.32-87.2-129.2-31.88-73.88-31.88-158.17 0-84.28 31.88-158.2 31.88-73.91 87.16-128.74 55.28-54.84 129.18-86.82 73.9-31.99 158.21-31.99 84.3 0 158.25 31.97 73.94 31.97 128.75 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.33 0 84.24-31.99 158.07-31.98 73.84-86.82 128.95-54.83 55.1-128.87 87.17Q564.5-74.02 480.3-74.02Zm.2-68.13q140.54 0 238.95-98.75 98.4-98.76 98.4-239.6 0-140.54-98.22-238.95-98.21-98.4-239.75-98.4-140.16 0-238.95 98.22-98.78 98.21-98.78 239.75 0 140.16 98.75 238.95 98.76 98.78 239.6 98.78ZM480-480Z",
|
|
58865
|
-
help: "M483.52-247q16.48 0 28.2-11.72 11.71-11.71 11.71-28.35 0-16.63-11.71-28.19-11.72-11.57-28.32-11.57t-28.19 11.55q-11.6 11.54-11.6 28.33 0 16.52 11.63 28.23Q466.87-247 483.52-247Zm-36.91-146h62.59q0-25.52 6.5-47.02 6.5-21.5 39.78-49.02 30.52-25.05 43.4-50.34 12.88-25.29 12.88-55.69 0-53.69-34.09-86.05t-91.19-32.36q-49.72 0-88.06 25.46-38.33 25.45-55.81 69.45l56.82 21.4q11.24-28.24 32.88-43.62 21.64-15.38 50.21-15.38 31.73 0 51.83 17.58 20.11 17.58 20.11 45.47 0 21.12-12.64 40.38-12.65 19.26-36.45 39.07-29.52 25.52-44.14 51.75-14.62 26.24-14.62 68.92Zm33.42 318.98q-83.46 0-157.54-31.88-74.07-31.88-129.39-87.2-55.32-55.32-87.2-129.36-31.88-74.04-31.88-157.51 0-84.46 31.88-158.54 31.88-74.07 87.16-128.9 55.28-54.84 129.34-86.82 74.06-31.99 157.55-31.99 84.48 0 158.59 31.97 74.1 31.97 128.91 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.6 0 83.5-31.99 157.57-31.98 74.07-86.82 129.36-54.83 55.29-128.87 87.17-74.04 31.88-158.51 31.88Zm-.03-68.13q141.04 0 239.45-98.75 98.4-98.76 98.4-239.1 0-141.04-98.4-239.45-98.41-98.4-239.57-98.4-140.16 0-238.95 98.4-98.78 98.41-98.78 239.57 0 140.16 98.75 238.95 98.76 98.78 239.1 98.78ZM480-480Z",
|
|
58866
|
-
visibility: "M480.12-330q70.88 0 120.38-49.62t49.5-120.5q0-70.88-49.62-120.38T479.88-670Q409-670 359.5-620.38T310-499.88q0 70.88 49.62 120.38t120.5 49.5Zm-.3-61.83q-45.15 0-76.57-31.6-31.42-31.6-31.42-76.75t31.6-76.57q31.6-31.42 76.75-31.42t76.57 31.6q31.42 31.6 31.42 76.75t-31.6 76.57q-31.6 31.42-76.75 31.42ZM480-194.5q-147.91 0-267.35-84.67Q93.22-363.85 34.5-500q58.72-136.15 178.15-220.83Q332.09-805.5 480-805.5q147.91 0 267.35 84.67Q866.78-636.15 925.5-500q-58.72 136.15-178.15 220.83Q627.91-194.5 480-194.5Zm0-305.5Zm-.15 240q121 0 222.34-65.5Q803.52-391 856.52-500q-53-109-154.19-174.5Q601.15-740 480.15-740t-222.34 65.5Q156.48-609 102.48-500q54 109 155.19 174.5Q358.85-260 479.85-260Z",
|
|
58867
|
-
// ---- Files ----
|
|
58868
|
-
folder: "M142.15-154.02q-27.6 0-47.86-20.77-20.27-20.76-20.27-47.36v-515.7q0-26.7 20.27-47.53 20.26-20.84 47.86-20.84h276.22L481-743.35h336.85q26.7 0 47.53 20.77 20.84 20.76 20.84 47.36v453.07q0 26.6-20.84 47.36-20.83 20.77-47.53 20.77h-675.7Zm0-68.13h675.7v-453.07h-365.2l-62.63-62.63H142.15v515.7Zm0 0v-515.7 515.7Z",
|
|
58869
|
-
description: "M319-249.52h322v-62.63H319v62.63Zm0-170h322v-62.63H319v62.63Zm-96.85 345.5q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z",
|
|
58870
|
-
attachFile: "M737.33-324.39q0 105.46-74.69 177.91-74.69 72.46-180.26 72.46-105.58 0-180.35-72.46-74.77-72.45-74.77-177.85v-383.82q0-74.63 53.41-126.35 53.42-51.72 127.75-51.72 74.34 0 127.69 51.72 53.35 51.72 53.35 126.35v363.82q0 43.66-31.56 74.62-31.55 30.97-75.81 30.97-44.26 0-75.61-30.64t-31.35-74.95v-370h66.46v370q0 16.05 11.97 27.59t29.2 11.54q17.24 0 28.74-11.5 11.5-11.51 11.5-27.63v-363.58q.24-47.35-33.38-79.6-33.62-32.25-81.35-32.25-47.74 0-81.14 32.19-33.41 32.19-33.41 79.42v383.82q.24 77.83 55.57 130.96 55.33 53.13 133.62 53.13 77.86 0 133.03-53.16 55.17-53.17 54.93-130.93v-396.93h66.46v396.87Z"
|
|
58871
|
-
};
|
|
58872
|
-
function darkenHex(hex, amount) {
|
|
58873
|
-
const r = parseInt(hex.slice(1, 3), 16);
|
|
58874
|
-
const g = parseInt(hex.slice(3, 5), 16);
|
|
58875
|
-
const b = parseInt(hex.slice(5, 7), 16);
|
|
58876
|
-
const nr = Math.round(r * (1 - amount));
|
|
58877
|
-
const ng = Math.round(g * (1 - amount));
|
|
58878
|
-
const nb = Math.round(b * (1 - amount));
|
|
58879
|
-
return `#${nr.toString(16).padStart(2, "0")}${ng.toString(16).padStart(2, "0")}${nb.toString(16).padStart(2, "0")}`;
|
|
58880
|
-
}
|
|
59325
|
+
init_theme();
|
|
58881
59326
|
|
|
58882
59327
|
// src/diagram/layout.ts
|
|
58883
59328
|
init_constants();
|
|
@@ -60117,6 +60562,20 @@ function assignUnpositionedNodes(layers, diagramNodes, explicitPositions) {
|
|
|
60117
60562
|
}
|
|
60118
60563
|
}
|
|
60119
60564
|
}
|
|
60565
|
+
function resolveHorizontalOverlaps(diagramNodes) {
|
|
60566
|
+
const nodes = [...diagramNodes.values()].sort((a, b) => a.x - b.x);
|
|
60567
|
+
for (let i = 1; i < nodes.length; i++) {
|
|
60568
|
+
const prev = nodes[i - 1];
|
|
60569
|
+
const curr = nodes[i];
|
|
60570
|
+
const prevRightExtent = maxPortLabelExtent(prev.outputs);
|
|
60571
|
+
const currLeftExtent = maxPortLabelExtent(curr.inputs);
|
|
60572
|
+
const minGap = Math.max(prevRightExtent + LABEL_CLEARANCE + currLeftExtent, MIN_EDGE_GAP);
|
|
60573
|
+
const actualGap = curr.x - (prev.x + prev.width);
|
|
60574
|
+
if (actualGap < minGap) {
|
|
60575
|
+
curr.x = prev.x + prev.width + minGap;
|
|
60576
|
+
}
|
|
60577
|
+
}
|
|
60578
|
+
}
|
|
60120
60579
|
function buildDiagramGraph(ast, options = {}) {
|
|
60121
60580
|
const themeName = options.theme ?? "dark";
|
|
60122
60581
|
const nodeTypeMap = /* @__PURE__ */ new Map();
|
|
@@ -60225,12 +60684,14 @@ function buildDiagramGraph(ast, options = {}) {
|
|
|
60225
60684
|
node.y = pos.y;
|
|
60226
60685
|
}
|
|
60227
60686
|
}
|
|
60687
|
+
resolveHorizontalOverlaps(diagramNodes);
|
|
60228
60688
|
} else if (nonePositioned) {
|
|
60229
60689
|
const { layers } = layoutWorkflow(ast);
|
|
60230
60690
|
assignLayerCoordinates(layers, diagramNodes);
|
|
60231
60691
|
} else {
|
|
60232
60692
|
const { layers } = layoutWorkflow(ast);
|
|
60233
60693
|
assignUnpositionedNodes(layers, diagramNodes, explicitPositions);
|
|
60694
|
+
resolveHorizontalOverlaps(diagramNodes);
|
|
60234
60695
|
}
|
|
60235
60696
|
for (const node of diagramNodes.values()) {
|
|
60236
60697
|
computePortPositions(node);
|
|
@@ -60512,6 +60973,7 @@ function maxPortLabelExtent(ports) {
|
|
|
60512
60973
|
}
|
|
60513
60974
|
|
|
60514
60975
|
// src/diagram/renderer.ts
|
|
60976
|
+
init_theme();
|
|
60515
60977
|
function escapeXml(str2) {
|
|
60516
60978
|
return str2.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
60517
60979
|
}
|
|
@@ -60786,10 +61248,10 @@ body {
|
|
|
60786
61248
|
.nodes > g:hover ~ .show-port-labels .port-label,
|
|
60787
61249
|
.nodes > g:hover ~ .show-port-labels .port-type-label { opacity: 1; }
|
|
60788
61250
|
|
|
60789
|
-
/* Connection hover & dimming */
|
|
60790
|
-
|
|
60791
|
-
|
|
60792
|
-
body.node-active
|
|
61251
|
+
/* Connection hover & dimming (attribute selector covers both main and scope connections) */
|
|
61252
|
+
path[data-source] { transition: opacity 0.2s ease, stroke-width 0.15s ease; }
|
|
61253
|
+
path[data-source]:hover { stroke-width: 4; cursor: pointer; }
|
|
61254
|
+
body.node-active path[data-source].dimmed { opacity: 0.15; }
|
|
60793
61255
|
|
|
60794
61256
|
/* Node hover glow */
|
|
60795
61257
|
.nodes g[data-node-id]:hover > rect:first-of-type { filter: brightness(1.08); }
|
|
@@ -60993,7 +61455,7 @@ body.node-active .connections path.dimmed { opacity: 0.15; }
|
|
|
60993
61455
|
|
|
60994
61456
|
// Build adjacency: portId \u2192 array of connected portIds
|
|
60995
61457
|
var portConnections = {};
|
|
60996
|
-
content.querySelectorAll('
|
|
61458
|
+
content.querySelectorAll('path[data-source]').forEach(function(p) {
|
|
60997
61459
|
var src = p.getAttribute('data-source');
|
|
60998
61460
|
var tgt = p.getAttribute('data-target');
|
|
60999
61461
|
if (!src || !tgt) return;
|
|
@@ -61090,7 +61552,7 @@ body.node-active .connections path.dimmed { opacity: 0.15; }
|
|
|
61090
61552
|
});
|
|
61091
61553
|
|
|
61092
61554
|
// Connected paths
|
|
61093
|
-
var allPaths = content.querySelectorAll('
|
|
61555
|
+
var allPaths = content.querySelectorAll('path[data-source]');
|
|
61094
61556
|
var connectedPaths = [];
|
|
61095
61557
|
var connectedNodes = new Set();
|
|
61096
61558
|
allPaths.forEach(function(p) {
|
|
@@ -95748,7 +96210,7 @@ function displayInstalledPackage(pkg) {
|
|
|
95748
96210
|
}
|
|
95749
96211
|
|
|
95750
96212
|
// src/cli/index.ts
|
|
95751
|
-
var version2 = true ? "0.9.
|
|
96213
|
+
var version2 = true ? "0.9.4" : "0.0.0-dev";
|
|
95752
96214
|
var program2 = new Command();
|
|
95753
96215
|
program2.name("flow-weaver").description("Flow Weaver Annotations - Compile and validate workflow files").version(version2, "-v, --version", "Output the current version");
|
|
95754
96216
|
program2.configureOutput({
|