@huanban/rulego-editor-core 1.3.18 → 1.4.0
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/README.md +153 -2
- package/assets/images/discovery-dark.svg +1 -0
- package/assets/images/discovery.svg +1 -0
- package/assets/images/nacos-dark.svg +1 -0
- package/assets/images/nacos.svg +1 -0
- package/assets/theme-icons/ant-blue/discovery-dark.svg +1 -0
- package/assets/theme-icons/ant-blue/discovery.svg +1 -0
- package/assets/theme-icons/ant-blue/nacos-dark.svg +1 -0
- package/assets/theme-icons/ant-blue/nacos.svg +1 -0
- package/assets/theme-icons/apple/discovery-dark.svg +1 -0
- package/assets/theme-icons/apple/discovery.svg +1 -0
- package/assets/theme-icons/apple/nacos-dark.svg +1 -0
- package/assets/theme-icons/apple/nacos.svg +1 -0
- package/assets/theme-icons/colorful/discovery-dark.svg +1 -0
- package/assets/theme-icons/colorful/discovery.svg +1 -0
- package/assets/theme-icons/colorful/nacos-dark.svg +1 -0
- package/assets/theme-icons/colorful/nacos.svg +1 -0
- package/assets/theme-icons/dark/discovery-dark.svg +1 -0
- package/assets/theme-icons/dark/discovery.svg +1 -0
- package/assets/theme-icons/dark/nacos-dark.svg +1 -0
- package/assets/theme-icons/dark/nacos.svg +1 -0
- package/assets/theme-icons/default/discovery-dark.svg +1 -0
- package/assets/theme-icons/default/discovery.svg +1 -0
- package/assets/theme-icons/default/nacos-dark.svg +1 -0
- package/assets/theme-icons/default/nacos.svg +1 -0
- package/assets/theme-icons/elegant/discovery-dark.svg +1 -0
- package/assets/theme-icons/elegant/discovery.svg +1 -0
- package/assets/theme-icons/elegant/nacos-dark.svg +1 -0
- package/assets/theme-icons/elegant/nacos.svg +1 -0
- package/assets/theme-icons/github/discovery-dark.svg +1 -0
- package/assets/theme-icons/github/discovery.svg +1 -0
- package/assets/theme-icons/github/nacos-dark.svg +1 -0
- package/assets/theme-icons/github/nacos.svg +1 -0
- package/assets/theme-icons/icon-theme-manifest.json +30 -14
- package/assets/theme-icons/icon-theme-overview.svg +1599 -1287
- package/assets/theme-icons/material/discovery-dark.svg +1 -0
- package/assets/theme-icons/material/discovery.svg +1 -0
- package/assets/theme-icons/material/nacos-dark.svg +1 -0
- package/assets/theme-icons/material/nacos.svg +1 -0
- package/assets/theme-icons/modern/discovery-dark.svg +1 -0
- package/assets/theme-icons/modern/discovery.svg +1 -0
- package/assets/theme-icons/modern/nacos-dark.svg +1 -0
- package/assets/theme-icons/modern/nacos.svg +1 -0
- package/assets/theme-icons/nature/discovery-dark.svg +1 -0
- package/assets/theme-icons/nature/discovery.svg +1 -0
- package/assets/theme-icons/nature/nacos-dark.svg +1 -0
- package/assets/theme-icons/nature/nacos.svg +1 -0
- package/assets/theme-icons/tailwind/discovery-dark.svg +1 -0
- package/assets/theme-icons/tailwind/discovery.svg +1 -0
- package/assets/theme-icons/tailwind/nacos-dark.svg +1 -0
- package/assets/theme-icons/tailwind/nacos.svg +1 -0
- package/assets/theme-icons/tech/discovery-dark.svg +1 -0
- package/assets/theme-icons/tech/discovery.svg +1 -0
- package/assets/theme-icons/tech/nacos-dark.svg +1 -0
- package/assets/theme-icons/tech/nacos.svg +1 -0
- package/assets/theme-icons/vscode/discovery-dark.svg +1 -0
- package/assets/theme-icons/vscode/discovery.svg +1 -0
- package/assets/theme-icons/vscode/nacos-dark.svg +1 -0
- package/assets/theme-icons/vscode/nacos.svg +1 -0
- package/dist/ai/copilot-markdown.d.ts +40 -0
- package/dist/ai/copilot-transport.d.ts +39 -0
- package/dist/api/AIManager.d.ts +5 -4
- package/dist/api/ApiProvider.d.ts +17 -69
- package/dist/api/ComponentCatalogCache.d.ts +27 -0
- package/dist/api/DebugSocketClient.d.ts +18 -25
- package/dist/api/RuleChainAPI.d.ts +24 -145
- package/dist/api/StreamParser.d.ts +0 -10
- package/dist/api/index.d.ts +4 -14
- package/dist/api/response-utils.d.ts +4 -22
- package/dist/api/types.d.ts +44 -179
- package/dist/chunks/editor-core-code-editor-CRki2wA_.js +512 -0
- package/dist/chunks/editor-core-default-components-BjF65lar.js +9448 -0
- package/dist/chunks/editor-core-dialogs-CkFLaC8Q.js +17176 -0
- package/dist/chunks/editor-core-icons-BqeFofNA.js +668 -0
- package/dist/chunks/editor-core-json-diff-RHsPeX-w.js +199 -0
- package/dist/chunks/editor-core-locales-i6o28vm2.js +4159 -0
- package/dist/chunks/editor-core-node-patches-BJTT3TuX.js +8060 -0
- package/dist/chunks/editor-core-node-views-BOaPVdmN.js +1288 -0
- package/dist/chunks/editor-core-property-drawers-lLsBIoCa.js +8035 -0
- package/dist/chunks/editor-core-standalone-CHXk3ukc.js +11270 -0
- package/dist/chunks/editor-core-styles-C1TbLgCK.js +8841 -0
- package/dist/chunks/vendor-logicflow-core-runtime-Cp6IBEjB.js +217 -0
- package/dist/chunks/vendor-logicflow-shared-C7YynLDn.js +4 -0
- package/dist/chunks/xlsx-BopDBbWb.js +24176 -0
- package/dist/core/ActionRegistry.d.ts +47 -0
- package/dist/core/AutoLayout.d.ts +1 -48
- package/dist/core/ComponentDocService.d.ts +28 -0
- package/dist/core/ComponentRegistry.d.ts +1 -125
- package/dist/core/DataAdapter.d.ts +4 -89
- package/dist/core/DiagnosticService.d.ts +15 -0
- package/dist/core/EditorCore.d.ts +22 -212
- package/dist/core/EditorWorkspace.d.ts +111 -0
- package/dist/core/EventBus.d.ts +0 -86
- package/dist/core/ExplorerTreeStore.d.ts +43 -0
- package/dist/core/FieldCapabilityRegistry.d.ts +16 -0
- package/dist/core/FieldChangeRegistry.d.ts +48 -0
- package/dist/core/HistoryManager.d.ts +0 -123
- package/dist/core/I18nManager.d.ts +0 -120
- package/dist/core/Optimizations.d.ts +0 -14
- package/dist/core/OptionSourceRegistry.d.ts +38 -0
- package/dist/core/RuleChainChatManager.d.ts +0 -37
- package/dist/core/RuleChainValidator.d.ts +0 -79
- package/dist/core/StateStore.d.ts +4 -140
- package/dist/core/ThemeManager.d.ts +0 -141
- package/dist/core/ValidationEngine.d.ts +0 -103
- package/dist/core/component-palette.d.ts +20 -0
- package/dist/core/component-payload.d.ts +0 -9
- package/dist/core/connection-status.d.ts +77 -0
- package/dist/core/context-menu-position.d.ts +27 -0
- package/dist/core/cron-schedule.d.ts +85 -0
- package/dist/core/debug-panel.d.ts +6 -0
- package/dist/core/editor-capabilities.d.ts +95 -0
- package/dist/core/editor-dock.d.ts +100 -0
- package/dist/core/editor-panel.d.ts +68 -0
- package/dist/core/explorer-tree.d.ts +27 -0
- package/dist/core/field-protocol.d.ts +32 -0
- package/dist/core/foundation-tokens.d.ts +38 -0
- package/dist/core/graph-operations.d.ts +34 -0
- package/dist/core/hover-tools.d.ts +26 -0
- package/dist/core/index.d.ts +68 -16
- package/dist/core/infer-run-input.d.ts +11 -0
- package/dist/core/key-value-editor.d.ts +6 -0
- package/dist/core/overlay-layers.d.ts +28 -0
- package/dist/core/recent-components.d.ts +51 -0
- package/dist/core/run-guard.d.ts +7 -0
- package/dist/core/runtime-field-dictionary.d.ts +68 -0
- package/dist/core/runtime-limits.d.ts +0 -5
- package/dist/core/save-conflict.d.ts +4 -0
- package/dist/core/server-status.d.ts +34 -0
- package/dist/core/simple-array.d.ts +4 -0
- package/dist/core/table-protocol.d.ts +36 -0
- package/dist/core/table-spreadsheet.d.ts +3 -0
- package/dist/core/test-cases.d.ts +54 -0
- package/dist/core/toolbar-icons.d.ts +4 -0
- package/dist/core/topology-rules.d.ts +17 -0
- package/dist/core/virtual-window.d.ts +20 -0
- package/dist/core/workspace-tab-actions.d.ts +13 -0
- package/dist/defaults/components.d.ts +0 -9
- package/dist/defaults/index.d.ts +0 -15
- package/dist/defaults/locale-en-US.d.ts +0 -24
- package/dist/defaults/locale-zh-CN.d.ts +0 -39
- package/dist/defaults/official-component-fallbacks.d.ts +0 -8
- package/dist/extensions/ClipboardExtension.d.ts +0 -23
- package/dist/extensions/KeyboardExtension.d.ts +0 -17
- package/dist/extensions/MenuExtension.d.ts +0 -23
- package/dist/iconRegistry.d.ts +0 -22
- package/dist/index.cjs +11320 -0
- package/dist/index.d.ts +25 -47
- package/dist/index.esm.js +1123 -99614
- package/dist/index.umd.js +3380 -1471
- package/dist/models/BaseNodeModel.d.ts +0 -32
- package/dist/models/index.d.ts +0 -1
- package/dist/nodes/AgentOrchestrationNode.d.ts +0 -24
- package/dist/nodes/GroupNode.d.ts +0 -38
- package/dist/nodes/HeadlessHtmlNode.d.ts +0 -16
- package/dist/nodes/SwitchNode.d.ts +0 -22
- package/dist/nodes/UnknownNodeModel.d.ts +0 -19
- package/dist/standalone/HuanbanRulegoEditor.d.ts +202 -401
- package/dist/standalone/ai-model-policy.d.ts +0 -1
- package/dist/standalone/ai-providers.d.ts +0 -1
- package/dist/standalone/auth-fetch.d.ts +2 -46
- package/dist/standalone/browser-assets.d.ts +0 -8
- package/dist/standalone/canvas-view.d.ts +6 -0
- package/dist/standalone/code-editor-language-loaders.d.ts +2 -0
- package/dist/standalone/code-editor-language-loaders.legacy.d.ts +7 -0
- package/dist/standalone/code-editor.d.ts +3 -87
- package/dist/standalone/connection-status-binding.d.ts +8 -0
- package/dist/standalone/custom-nodes.d.ts +0 -26
- package/dist/standalone/drawer-unsaved-guard.d.ts +2 -9
- package/dist/standalone/edge-label-quick-editor.d.ts +2 -0
- package/dist/standalone/editor-actions.d.ts +4 -0
- package/dist/standalone/editor-chain-info.d.ts +5 -38
- package/dist/standalone/editor-context-menu.d.ts +0 -21
- package/dist/standalone/editor-debug-ws.d.ts +37 -145
- package/dist/standalone/editor-delete.d.ts +0 -1
- package/dist/standalone/editor-dialogs.d.ts +16 -66
- package/dist/standalone/editor-events.d.ts +0 -27
- package/dist/standalone/editor-overlays.d.ts +14 -0
- package/dist/standalone/editor-property-drawers.d.ts +13 -71
- package/dist/standalone/editor-route-settings.d.ts +7 -55
- package/dist/standalone/editor-sidebar.d.ts +0 -18
- package/dist/standalone/editor-styles.d.ts +0 -11
- package/dist/standalone/editor-toast.d.ts +1 -2
- package/dist/standalone/editor-toolbar.d.ts +5 -80
- package/dist/standalone/editor-tour.d.ts +7 -0
- package/dist/standalone/editor-trace-overlay.d.ts +0 -5
- package/dist/standalone/full-json-dialog.d.ts +5 -1
- package/dist/standalone/group-node.d.ts +1 -51
- package/dist/standalone/icon-utils.d.ts +0 -20
- package/dist/standalone/index.d.ts +10 -7
- package/dist/standalone/json-diff.d.ts +0 -1
- package/dist/standalone/keyboard-events.d.ts +0 -1
- package/dist/standalone/layout-scheduler.d.ts +0 -6
- package/dist/standalone/lifecycle.d.ts +0 -5
- package/dist/standalone/logger.d.ts +0 -32
- package/dist/standalone/models-dev-catalog.d.ts +0 -1
- package/dist/standalone/node-copy.d.ts +7 -4
- package/dist/standalone/node-definitions.d.ts +0 -63
- package/dist/standalone/node-identity.d.ts +0 -1
- package/dist/standalone/node-theme.d.ts +8 -0
- package/dist/standalone/node-views-data.d.ts +0 -20
- package/dist/standalone/official-node-view-patches.d.ts +1 -14
- package/dist/standalone/outline-style.d.ts +7 -0
- package/dist/standalone/run-history-format.d.ts +0 -1
- package/dist/standalone/security-utils.d.ts +1 -5
- package/dist/standalone/shared-node-manager.d.ts +31 -0
- package/dist/standalone/themes.d.ts +0 -48
- package/dist/tools/tool-editor.d.ts +0 -1
- package/dist/types/component.d.ts +105 -87
- package/dist/types/editor.d.ts +16 -169
- package/dist/types/events.d.ts +30 -107
- package/dist/types/index.d.ts +3 -10
- package/dist/types/rule-chain.d.ts +0 -90
- package/dist/utils/GraphUtils.d.ts +0 -10
- package/dist/utils/helpers.d.ts +0 -80
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/pinyin-search.d.ts +0 -57
- package/dist/utils/relation-utils.d.ts +0 -1
- package/dist/utils/textUtils.d.ts +0 -12
- package/dist/version.d.ts +2 -3
- package/dist/xlsx-qn1xoUuv.cjs +105 -0
- package/package.json +19 -5
- package/vite-chunks.d.ts +11 -0
- package/vite-chunks.mjs +120 -0
- package/dist/index.cjs.js +0 -9515
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { create as A } from "jsondiffpatch";
|
|
2
|
+
const y = 800, $ = 1600, S = 12e5, w = A({
|
|
3
|
+
objectHash(n) {
|
|
4
|
+
const t = n, o = t.id;
|
|
5
|
+
if (typeof o == "string" && o.trim()) return `${String(t.type || "item")}:${o}`;
|
|
6
|
+
const r = t.fromId, e = t.toId;
|
|
7
|
+
if (typeof r == "string" && r || typeof e == "string" && e)
|
|
8
|
+
return `edge:${String(r || "")}->${String(e || "")}:${String(t.type || "")}`;
|
|
9
|
+
},
|
|
10
|
+
arrays: {
|
|
11
|
+
detectMove: !0,
|
|
12
|
+
includeValueOnMove: !1
|
|
13
|
+
},
|
|
14
|
+
cloneDiffValues: !0
|
|
15
|
+
});
|
|
16
|
+
function g(n, t = /* @__PURE__ */ new WeakSet()) {
|
|
17
|
+
if (n === null || typeof n != "object") return n;
|
|
18
|
+
if (t.has(n)) return "[Circular]";
|
|
19
|
+
if (t.add(n), Array.isArray(n)) return n.map((e) => g(e, t));
|
|
20
|
+
const o = n, r = {};
|
|
21
|
+
return Object.keys(o).sort().forEach((e) => {
|
|
22
|
+
const a = g(o[e], t);
|
|
23
|
+
a !== void 0 && (r[e] = a);
|
|
24
|
+
}), r;
|
|
25
|
+
}
|
|
26
|
+
function p(n) {
|
|
27
|
+
return JSON.stringify(g(n), null, 2) ?? "undefined";
|
|
28
|
+
}
|
|
29
|
+
function J(n) {
|
|
30
|
+
if (!n) return null;
|
|
31
|
+
try {
|
|
32
|
+
return JSON.parse(n);
|
|
33
|
+
} catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function v(n, t) {
|
|
38
|
+
return p(n) === p(t);
|
|
39
|
+
}
|
|
40
|
+
function I(n) {
|
|
41
|
+
return !!n && typeof n == "object" && !Array.isArray(n);
|
|
42
|
+
}
|
|
43
|
+
function k(n) {
|
|
44
|
+
if (!I(n)) return "";
|
|
45
|
+
const t = n.id;
|
|
46
|
+
if (typeof t == "string" && t.trim()) return `id:${t}`;
|
|
47
|
+
const o = n.fromId, r = n.toId, e = n.type;
|
|
48
|
+
return typeof o == "string" && o || typeof r == "string" && r ? `edge:${String(o || "")}->${String(r || "")}:${String(e || "")}` : "";
|
|
49
|
+
}
|
|
50
|
+
function N(n) {
|
|
51
|
+
return /^[A-Za-z_$][\w$]*$/.test(n) ? `.${n}` : `[${JSON.stringify(n)}]`;
|
|
52
|
+
}
|
|
53
|
+
function m(n, t, o = "$", r = []) {
|
|
54
|
+
if (r.length >= y || v(n, t)) return r;
|
|
55
|
+
if (Array.isArray(n) && Array.isArray(t)) {
|
|
56
|
+
if (n.concat(t).every((i) => k(i))) {
|
|
57
|
+
const i = new Map(n.map((s) => [k(s), s])), d = new Map(t.map((s) => [k(s), s]));
|
|
58
|
+
return Array.from(/* @__PURE__ */ new Set([...i.keys(), ...d.keys()])).sort().forEach((s) => {
|
|
59
|
+
if (r.length >= y) return;
|
|
60
|
+
const f = `${o}[${s}]`;
|
|
61
|
+
i.has(s) ? d.has(s) ? m(i.get(s), d.get(s), f, r) : r.push({ path: f, kind: "removed", before: i.get(s), after: void 0 }) : r.push({ path: f, kind: "added", before: void 0, after: d.get(s) });
|
|
62
|
+
}), r;
|
|
63
|
+
}
|
|
64
|
+
const a = Math.max(n.length, t.length);
|
|
65
|
+
for (let i = 0; i < a && r.length < y; i += 1) {
|
|
66
|
+
const d = `${o}[${i}]`;
|
|
67
|
+
i >= n.length ? r.push({ path: d, kind: "added", before: void 0, after: t[i] }) : i >= t.length ? r.push({ path: d, kind: "removed", before: n[i], after: void 0 }) : m(n[i], t[i], d, r);
|
|
68
|
+
}
|
|
69
|
+
return r;
|
|
70
|
+
}
|
|
71
|
+
return I(n) && I(t) ? (Array.from(/* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(t)])).sort().forEach((a) => {
|
|
72
|
+
if (r.length >= y) return;
|
|
73
|
+
const i = `${o}${N(a)}`;
|
|
74
|
+
Object.prototype.hasOwnProperty.call(n, a) ? Object.prototype.hasOwnProperty.call(t, a) ? m(n[a], t[a], i, r) : r.push({ path: i, kind: "removed", before: n[a], after: void 0 }) : r.push({ path: i, kind: "added", before: void 0, after: t[a] });
|
|
75
|
+
}), r) : (r.push({ path: o, kind: "changed", before: n, after: t }), r);
|
|
76
|
+
}
|
|
77
|
+
function L(n) {
|
|
78
|
+
if (n === void 0) return "";
|
|
79
|
+
const t = typeof n == "string" ? n : p(n);
|
|
80
|
+
return t.length > 1200 ? `${t.slice(0, 1200)}
|
|
81
|
+
...` : t;
|
|
82
|
+
}
|
|
83
|
+
function O(n, t) {
|
|
84
|
+
n.push({ kind: "hunk", marker: "@@", text: t });
|
|
85
|
+
}
|
|
86
|
+
function j(n, t) {
|
|
87
|
+
const o = [
|
|
88
|
+
{ kind: "meta", marker: "---", text: "last-loaded-or-saved.rulechain.json" },
|
|
89
|
+
{ kind: "meta", marker: "+++", text: "current-canvas.rulechain.json" },
|
|
90
|
+
{ kind: "hunk", marker: "@@", text: "@@ large JSON diff, showing removed then added preview @@" }
|
|
91
|
+
];
|
|
92
|
+
let r = 1, e = 1;
|
|
93
|
+
for (const a of n.slice(0, Math.floor(($ - 4) / 2)))
|
|
94
|
+
o.push({ kind: "removed", oldLine: r++, marker: "-", text: a });
|
|
95
|
+
for (const a of t.slice(0, Math.floor(($ - 4) / 2)))
|
|
96
|
+
o.push({ kind: "added", newLine: e++, marker: "+", text: a });
|
|
97
|
+
return O(o, "@@ diff output truncated for large JSON @@"), { lines: o, truncated: !0 };
|
|
98
|
+
}
|
|
99
|
+
function E(n, t) {
|
|
100
|
+
const o = n.length, r = t.length, e = Array.from({ length: o + 1 }, () => new Uint32Array(r + 1));
|
|
101
|
+
for (let f = o - 1; f >= 0; f -= 1)
|
|
102
|
+
for (let u = r - 1; u >= 0; u -= 1)
|
|
103
|
+
e[f][u] = n[f] === t[u] ? e[f + 1][u + 1] + 1 : Math.max(e[f + 1][u], e[f][u + 1]);
|
|
104
|
+
const a = [
|
|
105
|
+
{ kind: "meta", marker: "---", text: "last-loaded-or-saved.rulechain.json" },
|
|
106
|
+
{ kind: "meta", marker: "+++", text: "current-canvas.rulechain.json" },
|
|
107
|
+
{ kind: "hunk", marker: "@@", text: `@@ -1,${o} +1,${r} @@` }
|
|
108
|
+
];
|
|
109
|
+
let i = 0, d = 0, c = 1, s = 1;
|
|
110
|
+
for (; i < o && d < r; )
|
|
111
|
+
n[i] === t[d] ? (a.push({ kind: "context", oldLine: c++, newLine: s++, marker: " ", text: n[i] }), i += 1, d += 1) : e[i + 1][d] >= e[i][d + 1] ? (a.push({ kind: "removed", oldLine: c++, marker: "-", text: n[i] }), i += 1) : (a.push({ kind: "added", newLine: s++, marker: "+", text: t[d] }), d += 1);
|
|
112
|
+
for (; i < o; )
|
|
113
|
+
a.push({ kind: "removed", oldLine: c++, marker: "-", text: n[i++] });
|
|
114
|
+
for (; d < r; )
|
|
115
|
+
a.push({ kind: "added", newLine: s++, marker: "+", text: t[d++] });
|
|
116
|
+
return a;
|
|
117
|
+
}
|
|
118
|
+
function M(n, t) {
|
|
119
|
+
if (n === t)
|
|
120
|
+
return {
|
|
121
|
+
lines: [
|
|
122
|
+
{ kind: "meta", marker: "---", text: "last-loaded-or-saved.rulechain.json" },
|
|
123
|
+
{ kind: "meta", marker: "+++", text: "current-canvas.rulechain.json" },
|
|
124
|
+
{ kind: "hunk", marker: "@@", text: "@@ no changes @@" }
|
|
125
|
+
],
|
|
126
|
+
truncated: !1
|
|
127
|
+
};
|
|
128
|
+
const o = n.split(`
|
|
129
|
+
`), r = t.split(`
|
|
130
|
+
`);
|
|
131
|
+
if (o.length * r.length > S)
|
|
132
|
+
return j(o, r);
|
|
133
|
+
const e = E(o, r);
|
|
134
|
+
return e.length <= $ ? { lines: e, truncated: !1 } : {
|
|
135
|
+
lines: e.slice(0, $).concat({
|
|
136
|
+
kind: "hunk",
|
|
137
|
+
marker: "@@",
|
|
138
|
+
text: "@@ diff output truncated @@"
|
|
139
|
+
}),
|
|
140
|
+
truncated: !0
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function C(n, t) {
|
|
144
|
+
const o = g(n), r = g(t), e = p(o), a = p(r), i = w.diff(o, r), d = m(o, r), c = M(e, a);
|
|
145
|
+
return {
|
|
146
|
+
beforeJson: e,
|
|
147
|
+
afterJson: a,
|
|
148
|
+
delta: i,
|
|
149
|
+
deltaJson: p(i || {}),
|
|
150
|
+
entries: d,
|
|
151
|
+
unifiedDiff: c.lines,
|
|
152
|
+
hasChanges: !!i || e !== a || d.length > 0,
|
|
153
|
+
truncated: c.truncated || d.length >= y
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function h(n, t, o) {
|
|
157
|
+
(typeof n != "string" || n.trim() === "") && o.push(`${t} 必须是非空字符串`);
|
|
158
|
+
}
|
|
159
|
+
function l(n, t, o) {
|
|
160
|
+
return !n || typeof n != "object" || Array.isArray(n) ? (o.push(`${t} 必须是对象`), !1) : !0;
|
|
161
|
+
}
|
|
162
|
+
function x(n, t, o, r) {
|
|
163
|
+
n.forEach((e, a) => {
|
|
164
|
+
const i = `${t}[${a}]`;
|
|
165
|
+
l(e, i, r) && (h(e.id, `${i}.id`, r), h(e.type, `${i}.type`, r), typeof e.id == "string" && e.id.trim() && (o.has(e.id) && r.push(`${i}.id 与其他节点重复: ${e.id}`), o.add(e.id)), !(e.configuration !== void 0 && e.configuration !== null && !l(e.configuration, `${i}.configuration`, r)) && e.additionalInfo !== void 0 && e.additionalInfo !== null && l(e.additionalInfo, `${i}.additionalInfo`, r));
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
function P(n) {
|
|
169
|
+
const t = [];
|
|
170
|
+
let o = "";
|
|
171
|
+
try {
|
|
172
|
+
o = JSON.stringify(n), JSON.parse(o);
|
|
173
|
+
} catch (e) {
|
|
174
|
+
return t.push((e == null ? void 0 : e.message) || "JSON 序列化或解析失败"), { valid: !1, errors: t };
|
|
175
|
+
}
|
|
176
|
+
if (!l(n, "$", t)) return { valid: !1, errors: t, jsonString: o };
|
|
177
|
+
const r = n;
|
|
178
|
+
if (l(r.ruleChain, "$.ruleChain", t) && h(r.ruleChain.id, "$.ruleChain.id", t), l(r.metadata, "$.metadata", t)) {
|
|
179
|
+
const e = r.metadata;
|
|
180
|
+
Array.isArray(e.nodes) || t.push("$.metadata.nodes 必须是数组"), Array.isArray(e.connections) || t.push("$.metadata.connections 必须是数组"), e.endpoints !== void 0 && !Array.isArray(e.endpoints) && t.push("$.metadata.endpoints 必须是数组");
|
|
181
|
+
const a = /* @__PURE__ */ new Set();
|
|
182
|
+
if (Array.isArray(e.nodes) && x(e.nodes, "$.metadata.nodes", a, t), Array.isArray(e.endpoints) && x(e.endpoints, "$.metadata.endpoints", a, t), Array.isArray(e.connections) && e.connections.forEach((i, d) => {
|
|
183
|
+
const c = `$.metadata.connections[${d}]`;
|
|
184
|
+
l(i, c, t) && (h(i.fromId, `${c}.fromId`, t), h(i.toId, `${c}.toId`, t), h(i.type, `${c}.type`, t));
|
|
185
|
+
}), e.firstNodeIndex !== void 0) {
|
|
186
|
+
const i = e.firstNodeIndex, d = Array.isArray(e.nodes) ? e.nodes.length : 0;
|
|
187
|
+
!(d === 0 && i === 0) && (!Number.isInteger(i) || Number(i) < 0 || Number(i) >= d) && t.push("$.metadata.firstNodeIndex 必须指向 metadata.nodes 中的有效下标");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return { valid: t.length === 0, errors: t, jsonString: o };
|
|
191
|
+
}
|
|
192
|
+
export {
|
|
193
|
+
y as M,
|
|
194
|
+
C as c,
|
|
195
|
+
L as f,
|
|
196
|
+
J as p,
|
|
197
|
+
p as s,
|
|
198
|
+
P as v
|
|
199
|
+
};
|