treege 3.0.0-beta.9 → 3.0.0-beta.91
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/LICENSE +18 -12
- package/README.md +598 -79
- package/dist/DefaultSubmitButton-NeSDqyzv.js +1909 -0
- package/dist/ThemeContext-CPsC8QIP.js +1008 -0
- package/dist/editor/components/input/ComboboxWithCreate.d.ts +2 -1
- package/dist/editor/components/styles/EditorStyles.d.ts +2 -0
- package/dist/editor/constants/defaultNode.d.ts +1 -1
- package/dist/editor/constants/edgeTypes.d.ts +3 -2
- package/dist/editor/constants/inputTypeIcons.d.ts +3 -0
- package/dist/editor/constants/nodeSpacing.d.ts +25 -0
- package/dist/editor/constants/nodeTypes.d.ts +4 -5
- package/dist/editor/context/OpenApiContext.d.ts +79 -0
- package/dist/editor/context/TreegeEditorRuntimeProvider.d.ts +78 -0
- package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +1 -1
- package/dist/editor/features/TreegeEditor/controls/MiniMapControl.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/dialogs/AuthorizeDialog.d.ts +20 -0
- package/dist/editor/features/TreegeEditor/dialogs/ChangeNodeTypeDialog.d.ts +2 -0
- package/dist/editor/features/TreegeEditor/dialogs/DeleteNodeDialog.d.ts +2 -0
- package/dist/editor/features/TreegeEditor/dialogs/HeadersDialog.d.ts +19 -0
- package/dist/editor/features/TreegeEditor/dialogs/OpenApiDialog.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/edges/ConditionalEdge.d.ts +2 -2
- package/dist/editor/features/TreegeEditor/edges/DefaultEdge.d.ts +3 -0
- package/dist/editor/features/TreegeEditor/forms/HttpConfigForm.d.ts +4 -1
- package/dist/editor/features/TreegeEditor/forms/JsonTemplateEditor.d.ts +13 -0
- package/dist/editor/features/TreegeEditor/forms/OptionsMappingFields.d.ts +34 -0
- package/dist/editor/features/TreegeEditor/forms/OptionsSourceForm.d.ts +7 -0
- package/dist/editor/features/TreegeEditor/forms/SensitiveHeaderWarning.d.ts +13 -0
- package/dist/editor/features/TreegeEditor/forms/SubmitConfigForm.d.ts +7 -0
- package/dist/editor/features/TreegeEditor/inputs/ApiUrlCombobox.d.ts +20 -0
- package/dist/editor/features/TreegeEditor/inputs/ComboboxPattern.d.ts +2 -1
- package/dist/editor/features/TreegeEditor/inputs/DefaultFileValueField.d.ts +14 -0
- package/dist/editor/features/TreegeEditor/inputs/OptionImageField.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/inputs/SelectNodeGroup.d.ts +22 -1
- package/dist/editor/features/TreegeEditor/inputs/TranslatableInput.d.ts +20 -0
- package/dist/editor/features/TreegeEditor/layout/AutoLayout.d.ts +15 -0
- package/dist/editor/features/TreegeEditor/listeners/FlowChangeEmitter.d.ts +19 -0
- package/dist/editor/features/TreegeEditor/nodes/TreegeNode.d.ts +5 -0
- package/dist/editor/features/TreegeEditor/nodes/components/BottomHandleDropdown.d.ts +25 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeGroupBadge.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeImage.d.ts +5 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeImageButton.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeInputPreview.d.ts +12 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeLabelInput.d.ts +10 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeMoreMenu.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeRequiredButton.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeStackOrderButtons.d.ts +6 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeTypeBadge.d.ts +7 -0
- package/dist/editor/features/TreegeEditor/nodes/components/NodeTypePickerMenuContent.d.ts +12 -0
- package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +4 -2
- package/dist/editor/features/TreegeEditor/panel/AIGeneratorDialog.d.ts +16 -0
- package/dist/editor/features/TreegeEditor/panel/ActionsPanel.d.ts +7 -2
- package/dist/editor/features/TreegeEditor/panel/MultiSelectionPanel.d.ts +7 -0
- package/dist/editor/hooks/useAvailableParentFields.d.ts +13 -0
- package/dist/editor/hooks/useFlowActions.d.ts +6 -2
- package/dist/editor/hooks/useFlowConnections.d.ts +14 -0
- package/dist/editor/hooks/useFlowContent.d.ts +16 -0
- package/dist/editor/hooks/useHistoryStore.d.ts +26 -0
- package/dist/editor/hooks/useIsStackedEdge.d.ts +8 -0
- package/dist/editor/hooks/useKeyValueRows.d.ts +15 -0
- package/dist/editor/hooks/useNodesSelection.d.ts +5 -5
- package/dist/editor/hooks/useStackPosition.d.ts +14 -0
- package/dist/editor/hooks/useTranslate.d.ts +1 -1
- package/dist/editor/hooks/useUndoRedo.d.ts +31 -0
- package/dist/editor/types/ai.d.ts +65 -0
- package/dist/editor/types/editor.d.ts +106 -10
- package/dist/editor/types/openapi.d.ts +106 -0
- package/dist/editor/utils/aiFlowGenerator.d.ts +5 -0
- package/dist/editor/utils/cleanEmptyData.d.ts +18 -0
- package/dist/editor/utils/cleanNodeConfig.d.ts +5 -0
- package/dist/editor/utils/dagreLayout.d.ts +8 -0
- package/dist/editor/utils/edge.d.ts +50 -0
- package/dist/editor/utils/groupColor.d.ts +14 -0
- package/dist/editor/utils/image.d.ts +7 -0
- package/dist/editor/utils/inputTypeIcon.d.ts +6 -0
- package/dist/editor/utils/jsonBindTarget.d.ts +15 -0
- package/dist/editor/utils/openApiPayload.d.ts +12 -0
- package/dist/editor/utils/openapi.d.ts +35 -0
- package/dist/editor/utils/sensitiveHeaders.d.ts +20 -0
- package/dist/editor/utils/stackPositionIndex.d.ts +9 -0
- package/dist/editor-DJbNgLSF.js +6485 -0
- package/dist/editor.js +3 -7
- package/dist/main.js +6 -52
- package/dist/renderer/context/TreegeRenderRuntimeProvider.d.ts +135 -0
- package/dist/renderer/context/TreegeRendererProvider.d.ts +15 -0
- package/dist/renderer/context/TreegeViewerProvider.d.ts +28 -0
- package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +19 -11
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -7
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputLabel.d.ts +10 -0
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputWrapper.d.ts +9 -0
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +20 -15
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultLoadingSkeleton.d.ts +8 -0
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultStep.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +9 -7
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper.d.ts +11 -0
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +8 -7
- package/dist/renderer/features/TreegeRenderer/native/components/DependencyHint.d.ts +15 -0
- package/dist/renderer/features/TreegeRenderer/native/components/OptionItemContent.d.ts +17 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSubmitInput.d.ts +11 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +97 -24
- package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultFormWrapper.d.ts +3 -2
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultInputLabel.d.ts +9 -0
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultInputWrapper.d.ts +9 -0
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultLoadingSkeleton.d.ts +7 -0
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultStep.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +5 -1
- package/dist/renderer/features/TreegeRenderer/web/components/DependencyHint.d.ts +22 -0
- package/dist/renderer/features/TreegeRenderer/web/components/OptionItemContent.d.ts +17 -0
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSubmitInput.d.ts +11 -0
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/styles/RendererStyles.d.ts +2 -0
- package/dist/renderer/features/TreegeViewer/utils/viewerFields.d.ts +102 -0
- package/dist/renderer/features/TreegeViewer/web/TreegeViewer.d.ts +94 -0
- package/dist/renderer/hooks/useInputOptions.d.ts +28 -0
- package/dist/renderer/hooks/useRenderNode.d.ts +62 -0
- package/dist/renderer/hooks/useSubmitHandler.d.ts +37 -0
- package/dist/renderer/hooks/useTranslate.d.ts +7 -5
- package/dist/renderer/index.d.ts +10 -2
- package/dist/renderer/index.native.d.ts +20 -0
- package/dist/renderer/types/renderer.d.ts +332 -49
- package/dist/renderer/utils/extraPayload.d.ts +21 -0
- package/dist/renderer/utils/file.d.ts +24 -10
- package/dist/renderer/utils/flow.d.ts +1 -18
- package/dist/renderer/utils/form.d.ts +54 -2
- package/dist/renderer/utils/http.d.ts +177 -0
- package/dist/renderer/utils/jsonTemplate.d.ts +30 -0
- package/dist/renderer/utils/node.d.ts +29 -1
- package/dist/renderer/utils/sanitize.d.ts +85 -0
- package/dist/renderer/utils/sanitize.native.d.ts +69 -0
- package/dist/renderer/utils/step.d.ts +27 -0
- package/dist/renderer/utils/submit.d.ts +50 -0
- package/dist/renderer/utils/templateDependencies.d.ts +17 -0
- package/dist/renderer-CNbSt_QW.js +446 -0
- package/dist/renderer-native.d.ts +2 -0
- package/dist/renderer-native.js +3696 -0
- package/dist/renderer.js +5 -45
- package/dist/shared/components/ui/badge.d.ts +2 -2
- package/dist/shared/components/ui/button.d.ts +3 -3
- package/dist/shared/components/ui/collapsible.d.ts +1 -1
- package/dist/shared/components/ui/command.d.ts +1 -1
- package/dist/shared/components/ui/dropdown-menu.d.ts +1 -1
- package/dist/shared/components/ui/field.d.ts +24 -0
- package/dist/shared/components/ui/form.d.ts +1 -1
- package/dist/shared/components/ui/item.d.ts +23 -0
- package/dist/shared/components/ui/popover.d.ts +10 -2
- package/dist/shared/components/ui/select.d.ts +3 -1
- package/dist/shared/components/ui/sheet.d.ts +1 -1
- package/dist/shared/components/ui/skeleton.d.ts +3 -0
- package/dist/shared/components/ui/toggle-group.d.ts +7 -0
- package/dist/shared/components/ui/toggle.d.ts +9 -0
- package/dist/shared/components/ui/tooltip.d.ts +1 -1
- package/dist/shared/constants/colors.d.ts +45 -0
- package/dist/shared/constants/inputType.d.ts +6 -0
- package/dist/shared/constants/node.d.ts +0 -1
- package/dist/shared/context/PortalContainerContext.d.ts +5 -0
- package/dist/shared/context/ThemeContext.d.ts +2 -0
- package/dist/shared/context/ThemeContext.native.d.ts +22 -0
- package/dist/shared/hooks/useMediaQuery.d.ts +12 -0
- package/dist/shared/hooks/useThemeColors.d.ts +37 -0
- package/dist/shared/locales/ar.json.d.ts +259 -19
- package/dist/shared/locales/de.json.d.ts +260 -20
- package/dist/shared/locales/en.json.d.ts +261 -21
- package/dist/shared/locales/es.json.d.ts +260 -20
- package/dist/shared/locales/fr.json.d.ts +260 -20
- package/dist/shared/locales/it.json.d.ts +260 -20
- package/dist/shared/locales/pt.json.d.ts +260 -20
- package/dist/shared/types/edge.d.ts +6 -0
- package/dist/shared/types/file.d.ts +14 -0
- package/dist/shared/types/node.d.ts +155 -19
- package/dist/shared/utils/httpRecord.d.ts +20 -0
- package/dist/shared/utils/inputTypeGuards.d.ts +7 -0
- package/dist/shared/utils/nodeTypeGuards.d.ts +1 -6
- package/dist/shared/utils/normalizeLabel.d.ts +22 -0
- package/dist/shared/utils/translations.d.ts +21 -1
- package/dist/useRenderNode-CG466pNk.js +538 -0
- package/package.json +54 -22
- package/dist/ThemeContext-BIvs8Kw-.js +0 -758
- package/dist/TreegeEditor-Lv5Tn9_F.js +0 -2152
- package/dist/TreegeRenderer-BVaqgInZ.js +0 -1405
- package/dist/editor/context/TreegeEditorContext.d.ts +0 -12
- package/dist/editor/features/TreegeEditor/forms/FlowNodeForm.d.ts +0 -2
- package/dist/editor/features/TreegeEditor/inputs/SelectInputType.d.ts +0 -7
- package/dist/editor/features/TreegeEditor/nodes/FlowNode.d.ts +0 -6
- package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +0 -6
- package/dist/editor/features/TreegeEditor/nodes/InputNode.d.ts +0 -6
- package/dist/editor/features/TreegeEditor/nodes/UINode.d.ts +0 -6
- package/dist/editor/hooks/useEdgesSelection.d.ts +0 -11
- package/dist/renderer/context/TreegeConfigContext.d.ts +0 -39
- package/dist/renderer/context/TreegeRendererContext.d.ts +0 -25
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +0 -7
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultGroup.d.ts +0 -6
- /package/dist/editor/components/{data-display/logo.d.ts → branding/Logo.d.ts} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Flow } from '../../shared/types/node';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a copy of `data` keeping only the entries that carry information:
|
|
4
|
+
* everything that is neither empty (see `isEmptyValue`) nor a redundant field
|
|
5
|
+
* default (see `DEFAULT_DATA_VALUES`). Meaningful falsy values like `false` and
|
|
6
|
+
* `0` are kept. Used before persisting an input node's form so toggling a single
|
|
7
|
+
* field doesn't flood the node — and the exported JSON — with empty defaults.
|
|
8
|
+
*/
|
|
9
|
+
export declare const cleanEmptyData: (data: Record<string, unknown>) => Record<string, unknown>;
|
|
10
|
+
/**
|
|
11
|
+
* Returns a copy of the flow trimmed for export: every node's `data` is cleaned
|
|
12
|
+
* of empty values and field defaults (see `cleanEmptyData`), and transient
|
|
13
|
+
* editor UI state is dropped — nodes lose `selected`/`dragging`/`measured` and
|
|
14
|
+
* edges lose `selected`, all of which xyflow recomputes on mount. The input flow
|
|
15
|
+
* is never mutated, so the live editor canvas keeps its values — only the
|
|
16
|
+
* exported/saved artifact is trimmed, mirroring `stripSensitiveHeadersFromFlow`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const cleanFlowData: (flow: Flow) => Flow;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Edge, Node } from '@xyflow/react';
|
|
2
|
+
export type LayoutDirection = "TB" | "LR";
|
|
3
|
+
export interface LayoutOptions {
|
|
4
|
+
direction?: LayoutDirection;
|
|
5
|
+
horizontalSpacing?: number;
|
|
6
|
+
verticalSpacing?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const getLayoutedElements: (nodes: Node[], edges: Edge[], options?: LayoutOptions) => Node[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Edge, Node } from '@xyflow/react';
|
|
2
|
+
/**
|
|
3
|
+
* Whether an edge from `source` to `target` already exists in the set.
|
|
4
|
+
* Used to reject duplicate connections.
|
|
5
|
+
*/
|
|
6
|
+
export declare const edgeExists: (edges: Edge[], source: string, target: string) => boolean;
|
|
7
|
+
type LeafNode = Pick<Node, "id" | "position" | "parentId">;
|
|
8
|
+
interface BuildConvergenceOptions {
|
|
9
|
+
/** ID for the new common node. */
|
|
10
|
+
commonNodeId: string;
|
|
11
|
+
/** Base node template the common node is spread from (e.g. DEFAULT_NODE). */
|
|
12
|
+
baseNode: Partial<Node>;
|
|
13
|
+
/** Measured node height, used to place the common node below both leaves. */
|
|
14
|
+
nodeHeight: number;
|
|
15
|
+
/** Vertical gap between the leaves and the common node. */
|
|
16
|
+
verticalSpacing: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build the common node that converges two leaves, plus the two edges wiring
|
|
20
|
+
* each leaf to it (`source → common`, `target → common`). The node is centered
|
|
21
|
+
* horizontally between the leaves and placed one row below the lower one. It
|
|
22
|
+
* inherits the group only when both leaves share the same `parentId`.
|
|
23
|
+
*
|
|
24
|
+
* Pure and deterministic — the caller supplies the new node id, base template
|
|
25
|
+
* and measured dimensions — so it can be unit-tested without React Flow.
|
|
26
|
+
*/
|
|
27
|
+
export declare const buildConvergence: (sourceNode: LeafNode, targetNode: LeafNode, { commonNodeId, baseNode, nodeHeight, verticalSpacing }: BuildConvergenceOptions) => {
|
|
28
|
+
node: Node;
|
|
29
|
+
edges: Edge[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Whether adding an edge `source` → `target` would introduce a cycle, i.e.
|
|
33
|
+
* `target` can already reach `source` by following outgoing edges. BFS from
|
|
34
|
+
* `target` over the existing edges; returns true as soon as `source` is found.
|
|
35
|
+
*/
|
|
36
|
+
export declare const wouldCreateCycle: (edges: Edge[], source: string, target: string) => boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Re-normalize outgoing edges from a set of affected parent nodes: if a parent
|
|
39
|
+
* now has a single remaining child, convert its outgoing edge back to a
|
|
40
|
+
* "default" type and drop condition-specific data fields.
|
|
41
|
+
*
|
|
42
|
+
* Used after edge or node deletions to keep conditional edges in sync with the
|
|
43
|
+
* presence of siblings.
|
|
44
|
+
*
|
|
45
|
+
* @param edges - The edges remaining after deletion
|
|
46
|
+
* @param affectedParents - Source node IDs whose children changed
|
|
47
|
+
* @returns A new edges array with affected edges normalized
|
|
48
|
+
*/
|
|
49
|
+
export declare const normalizeConditionalEdges: (edges: Edge[], affectedParents: Set<string>) => Edge[];
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic color for a group, derived from its id.
|
|
3
|
+
*
|
|
4
|
+
* Why HSL + inline style (rather than a Tailwind class):
|
|
5
|
+
* Tailwind purges classes at build time and can't synthesize `bg-{color}`
|
|
6
|
+
* from a runtime hash. Picking from a fixed palette would cap the number of
|
|
7
|
+
* distinguishable groups; HSL with a hashed hue gives effectively unlimited
|
|
8
|
+
* distinct, stable colors with no Tailwind-side configuration.
|
|
9
|
+
*
|
|
10
|
+
* Saturation/lightness are fixed (65% / 45%) so every group lands in the
|
|
11
|
+
* same readable, mid-contrast band on both light and dark themes — only the
|
|
12
|
+
* hue varies between groups.
|
|
13
|
+
*/
|
|
14
|
+
export declare const getGroupColor: (groupId?: string) => string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const MAX_IMAGE_INPUT_BYTES: number;
|
|
2
|
+
/**
|
|
3
|
+
* Converts an image file to a resized JPEG base64 data URL.
|
|
4
|
+
* Rejects files that are not images or exceed MAX_IMAGE_INPUT_BYTES.
|
|
5
|
+
* Dimensions are capped at MAX_DIMENSION × MAX_DIMENSION to keep the JSON small.
|
|
6
|
+
*/
|
|
7
|
+
export declare const imageFileToOptimizedDataUrl: (file: File) => Promise<string>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EditorState } from '@codemirror/state';
|
|
2
|
+
export interface JsonBindTarget {
|
|
3
|
+
/** Start offset of the key/value node to replace. */
|
|
4
|
+
from: number;
|
|
5
|
+
/** End offset of the key/value node to replace. */
|
|
6
|
+
to: number;
|
|
7
|
+
/** Whether the node is already a `{{token}}` (so the menu can offer "unbind"). */
|
|
8
|
+
isToken: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Find the JSON key or value node under `pos`, so a click there can bind a
|
|
12
|
+
* field. Returns the range to replace and whether it is already a token, or
|
|
13
|
+
* `null` when `pos` is not on a key/value (e.g. on punctuation/whitespace).
|
|
14
|
+
*/
|
|
15
|
+
export declare const findJsonBindTargetAt: (state: EditorState, pos: number) => JsonBindTarget | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ApiRouteMethod, OpenApiDocument, OpenApiSchema } from '../types/openapi';
|
|
2
|
+
/**
|
|
3
|
+
* Find the JSON request-body schema for the route matching `url` + `method`,
|
|
4
|
+
* or `undefined` when the route has no JSON request body.
|
|
5
|
+
*/
|
|
6
|
+
export declare const findRouteRequestSchema: (doc: OpenApiDocument, url: string, method: ApiRouteMethod) => OpenApiSchema | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Build a JSON skeleton from a schema: uses `example`/`default`/`enum` when
|
|
9
|
+
* present, otherwise a typed placeholder (`""`, `0`, `false`, `{}`, `[…]`).
|
|
10
|
+
* `$ref`s are resolved against `components.schemas`; cyclic refs are cut off.
|
|
11
|
+
*/
|
|
12
|
+
export declare const buildPayloadSkeleton: (doc: OpenApiDocument, schema: OpenApiSchema | undefined, seenRefs?: Set<string>) => unknown;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ApiRoute, OpenApiDocument, OpenApiSecurityScheme } from '../types/openapi';
|
|
2
|
+
/**
|
|
3
|
+
* Type guard validating that `value` is a usable OpenAPI 3.x document.
|
|
4
|
+
* Rejects 2.0 (Swagger) since we don't support it.
|
|
5
|
+
*/
|
|
6
|
+
export declare const isOpenApi3Document: (value: unknown) => value is OpenApiDocument;
|
|
7
|
+
/**
|
|
8
|
+
* Load an OpenAPI document from either a remote URL or a raw JSON string.
|
|
9
|
+
* Throws when the input is empty, unreachable, malformed JSON, or not an
|
|
10
|
+
* OpenAPI 3.x document.
|
|
11
|
+
*/
|
|
12
|
+
export declare const loadOpenApiDocument: (input: string) => Promise<OpenApiDocument>;
|
|
13
|
+
/**
|
|
14
|
+
* Flatten every (method, path) tuple defined in the document, preserving
|
|
15
|
+
* the path declaration order.
|
|
16
|
+
*/
|
|
17
|
+
export declare const extractApiRoutes: (doc: OpenApiDocument) => ApiRoute[];
|
|
18
|
+
/** Returns the first declared server URL (with any trailing slash trimmed). */
|
|
19
|
+
export declare const getBaseUrl: (doc: OpenApiDocument) => string;
|
|
20
|
+
/** Resolve a path to a full URL using the document's first server. */
|
|
21
|
+
export declare const resolveRouteUrl: (doc: OpenApiDocument, path: string) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Extract every supported security scheme from the document. Schemes other
|
|
24
|
+
* than `http+bearer` and `apiKey-in-header` are silently dropped — they're
|
|
25
|
+
* out of MVP scope.
|
|
26
|
+
*/
|
|
27
|
+
export declare const extractSecuritySchemes: (doc: OpenApiDocument) => Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
scheme: OpenApiSecurityScheme;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve a `tokenUrl` (which the OpenAPI spec sometimes leaves relative)
|
|
33
|
+
* against the document's first declared server URL.
|
|
34
|
+
*/
|
|
35
|
+
export declare const resolveTokenUrl: (tokenUrl: string, doc: OpenApiDocument) => string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Flow } from '../../shared/types/node';
|
|
2
|
+
import { KeyValueEntry } from '../../shared/utils/httpRecord';
|
|
3
|
+
/** True when a header key is known to carry credentials/secrets. */
|
|
4
|
+
export declare const isSensitiveHeaderKey: (key: string) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* True when the editor rows contain a sensitive header with a non-empty value.
|
|
7
|
+
* Operates on the form's working rows (which may still hold empty keys) rather
|
|
8
|
+
* than the serialized record, so the warning shows as soon as the user types.
|
|
9
|
+
*/
|
|
10
|
+
export declare const hasSensitiveHeader: (headers?: KeyValueEntry[]) => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Returns a copy of the flow with all credential-bearing field-level headers
|
|
13
|
+
* removed from every node's httpConfig/optionsSource/submitConfig, plus the
|
|
14
|
+
* number of headers stripped. The input flow is never mutated, so the live
|
|
15
|
+
* editor canvas keeps its values — only the exported/saved artifact is cleaned.
|
|
16
|
+
*/
|
|
17
|
+
export declare const stripSensitiveHeadersFromFlow: (flow: Flow) => {
|
|
18
|
+
flow: Flow;
|
|
19
|
+
strippedCount: number;
|
|
20
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Edge } from '@xyflow/react';
|
|
2
|
+
export type StackPosition = "single" | "first" | "middle" | "last";
|
|
3
|
+
/**
|
|
4
|
+
* Memoizes the positions map keyed by the edges array reference. React Flow
|
|
5
|
+
* keeps that reference stable between unrelated updates (drag, selection, …),
|
|
6
|
+
* so selectors that read from this map effectively perform a Map lookup
|
|
7
|
+
* outside of edge mutations.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getPositions: (edges: Edge[]) => Map<string, StackPosition>;
|