@oomol-lab/open-flow 0.1.0-beta.74 → 0.1.0-beta.76
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 +3 -1
- package/dist/browser/{ContentIcon-CUQHjQIw.js → ContentIcon-Cm1hbVzW.js} +4 -3
- package/dist/browser/{FlowCanvas-Dtf8_cQp.js → FlowCanvas-NzKtla_c.js} +62 -62
- package/dist/browser/{createResourceDialog-DI9pL-Yr.js → createResourceDialog-BgdedQqu.js} +3 -3
- package/dist/browser/{dialog-BYJGvItc.js → dialog-aSElFFw2.js} +322 -26
- package/dist/browser/{exportSvg-BOoy7-Db.js → exportSvg-Dcz4HTo_.js} +2 -2
- package/dist/browser/{flowChanges-RL-H4CjD.js → flowChanges-NZyS7HSp.js} +490 -438
- package/dist/browser/{flowWorkspace-BkDsETj0.js → flowWorkspace-Bl0SDehy.js} +499 -61
- package/dist/browser/preview.css +696 -825
- package/dist/browser/preview.js +1399 -717
- package/dist/browser/theme.css +114 -262
- package/dist/browser/{tooltip-wZJRB9oP.js → tooltip-3XMK9jkr.js} +1 -1
- package/dist/browser/{typeScriptSession-CSRwWmZm.js → typeScriptSession-C9sBGOKZ.js} +1 -1
- package/dist/browser/ui.css +354 -460
- package/dist/browser/ui.js +1 -1
- package/dist/browser/workbench.css +696 -825
- package/dist/browser/workbench.js +13 -7
- package/dist/browser/{workbenchSelect-BcWPWGzw.js → workbenchSelect-DBGP7Y4Z.js} +2 -2
- package/dist/command/index.js +41 -43
- package/dist/common/authoring.d.ts +5 -5
- package/dist/common/authoringExamples.d.ts +3 -2
- package/dist/common/authoringSchema.d.ts +70 -4
- package/dist/common/connector-proxy.d.ts +1 -1
- package/dist/common/control-api-conformance.js +250 -138
- package/dist/common/control-api.d.ts +3 -2
- package/dist/common/control-api.js +246 -134
- package/dist/common/control-requests.d.ts +3 -3
- package/dist/common/control-requests.js +353 -79
- package/dist/common/cron-trigger.d.ts +2 -1
- package/dist/common/decision.d.ts +4 -4
- package/dist/common/decision.js +5 -2
- package/dist/common/engine-contract.d.ts +6 -1
- package/dist/common/event-source-definition.d.ts +1 -1
- package/dist/common/event-source-view.d.ts +22 -0
- package/dist/common/event-source.d.ts +1 -1
- package/dist/common/event-source.js +24 -65
- package/dist/common/event-sources.d.ts +0 -21
- package/dist/common/flow-authoring.js +90 -19
- package/dist/common/flow-change-schema.d.ts +9 -1
- package/dist/common/flow-change.d.ts +7 -201
- package/dist/common/flow-change.js +96 -23
- package/dist/common/flow-encoding.js +89 -21
- package/dist/common/flow-graph.d.ts +2 -1
- package/dist/common/flow-input-value.d.ts +1 -1
- package/dist/common/flow-model.d.ts +121 -0
- package/dist/common/flow-notifications.d.ts +1 -1
- package/dist/common/flow-retry.d.ts +3 -5
- package/dist/common/flow-semantics.js +816 -586
- package/dist/common/flow-workflowReferences.d.ts +8 -0
- package/dist/common/flowInspection.d.ts +1 -1
- package/dist/common/http-hosts.d.ts +6 -0
- package/dist/common/http-request.d.ts +164 -0
- package/dist/common/http-request.js +5272 -0
- package/dist/common/integration-trigger.d.ts +2 -1
- package/dist/common/mcp.d.ts +3 -3
- package/dist/common/mcp.js +248 -136
- package/dist/common/openapi.d.ts +4 -4
- package/dist/common/openapi.js +4 -1
- package/dist/common/poll-trigger.d.ts +2 -1
- package/dist/common/run-events.js +11 -9
- package/dist/common/runtime-contract.d.ts +23 -1
- package/dist/common/runtime-contract.js +607 -72
- package/dist/common/runtime-nodejs-compat.d.ts +44 -0
- package/dist/common/runtime-nodejs-compat.js +5870 -0
- package/dist/common/scheduler-checkpoint.d.ts +1 -1
- package/dist/common/scheduler-node-execution.d.ts +1 -1
- package/dist/common/scheduler.d.ts +2 -2
- package/dist/common/scheduler.js +95 -25
- package/dist/common/trigger-catalog.d.ts +1 -7
- package/dist/common/trigger-config-options.d.ts +1 -1
- package/dist/common/trigger-config.d.ts +1 -1
- package/dist/common/trigger-contract.d.ts +2 -1
- package/dist/common/trigger-localization.d.ts +8 -2
- package/dist/common/trigger-model.d.ts +101 -0
- package/dist/common/webhook-response.d.ts +1 -3
- package/dist/common/webhook-trigger.d.ts +3 -1
- package/dist/common/webhook-trigger.js +12 -11
- package/dist/common/workflow.d.ts +3 -12
- package/dist/common/workflow.js +25 -23
- package/dist/index.d.ts +41 -14
- package/package.json +9 -1
- package/skills/open-flow/references/flow-authoring.md +1 -0
- package/skills/open-flow/references/flow-n8n-conversion.md +19 -15
- package/src/base/common/json.ts +1 -1
- package/src/connector/common/proxy.ts +1 -1
- package/src/control/common/api.ts +7 -5
- package/src/control/common/authoring.ts +14 -3
- package/src/control/common/authoringExamples.ts +8 -0
- package/src/control/common/authoringSchema.ts +38 -25
- package/src/control/common/authoringTools.ts +1 -1
- package/src/control/common/conformance.ts +1 -1
- package/src/control/common/connectorDecoders.ts +1 -1
- package/src/control/common/eventSources.ts +2 -29
- package/src/control/common/triggerCatalog.ts +1 -8
- package/src/decision/common/decision.ts +15 -7
- package/src/event-source/common/definition.ts +1 -1
- package/src/event-source/common/index.ts +1 -1
- package/src/event-source/common/view.ts +20 -0
- package/src/execution/common/checkpoint.ts +1 -1
- package/src/execution/common/events.ts +3 -0
- package/src/execution/common/node-execution.ts +5 -3
- package/src/execution/common/scheduler.ts +2 -1
- package/src/flow/common/change.ts +59 -192
- package/src/flow/common/changeSchema.ts +39 -5
- package/src/flow/common/connectionUsage.ts +1 -1
- package/src/flow/common/graph.ts +10 -4
- package/src/flow/common/inputValue.ts +1 -1
- package/src/flow/common/model.ts +130 -0
- package/src/flow/common/modules.ts +1 -1
- package/src/flow/common/portChanges.ts +1 -1
- package/src/flow/common/retry.ts +3 -5
- package/src/flow/common/semantics.ts +71 -7
- package/src/flow/common/webhookResponse.ts +4 -8
- package/src/flow/common/workflowReferences.ts +31 -0
- package/src/http/common/authBindings.ts +9 -0
- package/src/http/common/headers.ts +5 -0
- package/src/http/common/hosts.ts +13 -0
- package/src/http/common/httpRequest.ts +266 -0
- package/src/openapi/common/openapi.ts +9 -5
- package/src/{execution → runtime}/common/engineContract.ts +24 -15
- package/src/runtime/common/nodejsCompat.ts +275 -0
- package/src/runtime/common/nodejsGuest.generated.json +47 -0
- package/src/runtime/common/runtime.ts +1138 -0
- package/src/trigger/common/config.ts +1 -1
- package/src/trigger/common/configOptions.ts +1 -1
- package/src/trigger/common/contract.ts +2 -1
- package/src/trigger/common/cron.ts +2 -1
- package/src/trigger/common/integration.ts +2 -1
- package/src/trigger/common/model.ts +87 -0
- package/src/trigger/common/poll.ts +2 -1
- package/src/trigger/common/webhook.ts +7 -4
- package/src/trigger/providers/fieldDescriptions.ts +1 -1
- package/src/trigger/providers/localization.ts +9 -2
- package/src/trigger/providers/remote.ts +1 -1
- package/src/types/index.ts +44 -15
- package/src/workflow/common/workflow.ts +3 -44
- package/src/execution/common/runtime.ts +0 -563
- package/src/openapi/common/authBindings.ts +0 -12
- /package/src/{control → connector}/common/providerIconSprite.ts +0 -0
package/dist/browser/preview.js
CHANGED
|
@@ -14547,7 +14547,7 @@ function end_default() {
|
|
|
14547
14547
|
}
|
|
14548
14548
|
//#endregion
|
|
14549
14549
|
//#region ../../node_modules/.bun/d3-transition@3.0.1+ddb27bb92657a88b/node_modules/d3-transition/src/transition/index.js
|
|
14550
|
-
var id$
|
|
14550
|
+
var id$3 = 0;
|
|
14551
14551
|
function Transition(groups, parents, name, id) {
|
|
14552
14552
|
this._groups = groups;
|
|
14553
14553
|
this._parents = parents;
|
|
@@ -14558,7 +14558,7 @@ function transition(name) {
|
|
|
14558
14558
|
return selection().transition(name);
|
|
14559
14559
|
}
|
|
14560
14560
|
function newId() {
|
|
14561
|
-
return ++id$
|
|
14561
|
+
return ++id$3;
|
|
14562
14562
|
}
|
|
14563
14563
|
var selection_prototype = selection.prototype;
|
|
14564
14564
|
Transition.prototype = transition.prototype = {
|
|
@@ -32316,7 +32316,7 @@ var ContentIcon_module_default = {
|
|
|
32316
32316
|
sprite: "ContentIcon_sprite_4e5d2"
|
|
32317
32317
|
};
|
|
32318
32318
|
//#endregion
|
|
32319
|
-
//#region src/
|
|
32319
|
+
//#region src/connector/common/providerIconSprite.ts
|
|
32320
32320
|
/** Optional artwork must never make an otherwise usable catalog unavailable. */
|
|
32321
32321
|
function providerIconAppearance(metadata, position) {
|
|
32322
32322
|
if (!metadata || typeof metadata != "object" || !position || typeof position != "object") return {};
|
|
@@ -32409,7 +32409,8 @@ var extra_icon_default = {
|
|
|
32409
32409
|
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><rect width=\"8\" height=\"8\" x=\"3\" y=\"3\" rx=\"2\"/><path d=\"M7 11v4a2 2 0 0 0 2 2h4\"/><rect width=\"8\" height=\"8\" x=\"13\" y=\"13\" rx=\"2\"/></g>",
|
|
32410
32410
|
"width": 24,
|
|
32411
32411
|
"height": 24
|
|
32412
|
-
}
|
|
32412
|
+
},
|
|
32413
|
+
"globe": { "body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a14.5 14.5 0 0 0 0 20a14.5 14.5 0 0 0 0-20M2 12h20\"/></g>" }
|
|
32413
32414
|
},
|
|
32414
32415
|
"width": 24,
|
|
32415
32416
|
"height": 24
|
|
@@ -36625,33 +36626,33 @@ function IconStack({ icons, count, limit = 3, size = "default", countClassName }
|
|
|
36625
36626
|
});
|
|
36626
36627
|
}
|
|
36627
36628
|
var CanvasCard_module_default = {
|
|
36628
|
-
card: "
|
|
36629
|
-
value: "
|
|
36630
|
-
preview: "
|
|
36631
|
-
comment: "
|
|
36632
|
-
selected: "
|
|
36633
|
-
problem: "
|
|
36634
|
-
runningBeam: "
|
|
36635
|
-
"running-beam": "CanvasCard_running-
|
|
36636
|
-
header: "
|
|
36637
|
-
icon: "
|
|
36638
|
-
identity: "
|
|
36639
|
-
indicator: "
|
|
36640
|
-
warning: "
|
|
36641
|
-
danger: "
|
|
36642
|
-
content: "
|
|
36643
|
-
footer: "
|
|
36644
|
-
afterPreview: "
|
|
36645
|
-
branches: "
|
|
36646
|
-
collapse: "
|
|
36647
|
-
collapseInner: "
|
|
36648
|
-
compactIdentity: "
|
|
36649
|
-
compact: "
|
|
36650
|
-
withBody: "
|
|
36651
|
-
compactContent: "
|
|
36652
|
-
singleContent: "
|
|
36653
|
-
subtitle: "
|
|
36654
|
-
fill: "
|
|
36629
|
+
card: "CanvasCard_card_77a06",
|
|
36630
|
+
value: "CanvasCard_value_77a06",
|
|
36631
|
+
preview: "CanvasCard_preview_77a06",
|
|
36632
|
+
comment: "CanvasCard_comment_77a06",
|
|
36633
|
+
selected: "CanvasCard_selected_77a06",
|
|
36634
|
+
problem: "CanvasCard_problem_77a06",
|
|
36635
|
+
runningBeam: "CanvasCard_runningBeam_77a06",
|
|
36636
|
+
"running-beam": "CanvasCard_running-beam_77a06",
|
|
36637
|
+
header: "CanvasCard_header_77a06",
|
|
36638
|
+
icon: "CanvasCard_icon_77a06",
|
|
36639
|
+
identity: "CanvasCard_identity_77a06",
|
|
36640
|
+
indicator: "CanvasCard_indicator_77a06",
|
|
36641
|
+
warning: "CanvasCard_warning_77a06",
|
|
36642
|
+
danger: "CanvasCard_danger_77a06",
|
|
36643
|
+
content: "CanvasCard_content_77a06",
|
|
36644
|
+
footer: "CanvasCard_footer_77a06",
|
|
36645
|
+
afterPreview: "CanvasCard_afterPreview_77a06",
|
|
36646
|
+
branches: "CanvasCard_branches_77a06",
|
|
36647
|
+
collapse: "CanvasCard_collapse_77a06",
|
|
36648
|
+
collapseInner: "CanvasCard_collapseInner_77a06",
|
|
36649
|
+
compactIdentity: "CanvasCard_compactIdentity_77a06",
|
|
36650
|
+
compact: "CanvasCard_compact_77a06",
|
|
36651
|
+
withBody: "CanvasCard_withBody_77a06",
|
|
36652
|
+
compactContent: "CanvasCard_compactContent_77a06",
|
|
36653
|
+
singleContent: "CanvasCard_singleContent_77a06",
|
|
36654
|
+
subtitle: "CanvasCard_subtitle_77a06",
|
|
36655
|
+
fill: "CanvasCard_fill_77a06"
|
|
36655
36656
|
};
|
|
36656
36657
|
//#endregion
|
|
36657
36658
|
//#region src/ui/browser/hooks.ts
|
|
@@ -39013,7 +39014,7 @@ var buttonVariants = cva("nodrag group/button relative inline-flex shrink-0 item
|
|
|
39013
39014
|
"default": "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
39014
39015
|
"outline": "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_50%,transparent))]",
|
|
39015
39016
|
"field": "border-input bg-[var(--ui-control-background,var(--ui-muted))] focus-visible:border-input",
|
|
39016
|
-
"secondary": "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
39017
|
+
"secondary": "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--ui-secondary),var(--ui-foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
39017
39018
|
"ghost": "hover:bg-[var(--ui-control-hover-background,var(--ui-muted))] hover:text-foreground aria-current:bg-[var(--ui-control-hover-background,var(--ui-muted))] aria-current:text-foreground aria-expanded:bg-[var(--ui-control-hover-background,var(--ui-muted))] aria-expanded:text-foreground dark:hover:bg-[var(--ui-control-hover-background,var(--ui-muted))]",
|
|
39018
39019
|
"destructive-ghost": "text-destructive hover:bg-destructive/10 hover:text-destructive dark:hover:bg-destructive/20",
|
|
39019
39020
|
"disclosure": "bg-clip-border text-muted-foreground hover:bg-[var(--ui-control-hover-background,var(--ui-muted))] hover:text-foreground active:bg-[var(--ui-control-hover-background,var(--ui-muted))]",
|
|
@@ -43321,18 +43322,18 @@ function CommentResizeButton({ store }) {
|
|
|
43321
43322
|
});
|
|
43322
43323
|
}
|
|
43323
43324
|
var NodeHead_module_default = {
|
|
43324
|
-
container: "
|
|
43325
|
-
title: "
|
|
43326
|
-
connection: "
|
|
43327
|
-
menu: "
|
|
43328
|
-
menuButton: "
|
|
43329
|
-
commentIcon: "
|
|
43330
|
-
errorIcon: "
|
|
43331
|
-
blockSettings: "
|
|
43332
|
-
floatBar: "
|
|
43333
|
-
floatBarButton: "
|
|
43334
|
-
nodeIcon: "
|
|
43335
|
-
action: "
|
|
43325
|
+
container: "NodeHead_container_e9871",
|
|
43326
|
+
title: "NodeHead_title_e9871",
|
|
43327
|
+
connection: "NodeHead_connection_e9871",
|
|
43328
|
+
menu: "NodeHead_menu_e9871",
|
|
43329
|
+
menuButton: "NodeHead_menuButton_e9871",
|
|
43330
|
+
commentIcon: "NodeHead_commentIcon_e9871",
|
|
43331
|
+
errorIcon: "NodeHead_errorIcon_e9871",
|
|
43332
|
+
blockSettings: "NodeHead_blockSettings_e9871",
|
|
43333
|
+
floatBar: "NodeHead_floatBar_e9871",
|
|
43334
|
+
floatBarButton: "NodeHead_floatBarButton_e9871",
|
|
43335
|
+
nodeIcon: "NodeHead_nodeIcon_e9871",
|
|
43336
|
+
action: "NodeHead_action_e9871"
|
|
43336
43337
|
};
|
|
43337
43338
|
var input_module_default = {
|
|
43338
43339
|
input: "input_input_b8701",
|
|
@@ -46516,27 +46517,27 @@ var fitViewOptions = {
|
|
|
46516
46517
|
maxZoom: 1
|
|
46517
46518
|
};
|
|
46518
46519
|
var ReactFlowContainer_module_default = {
|
|
46519
|
-
container: "
|
|
46520
|
-
flow: "
|
|
46521
|
-
contextMenu: "
|
|
46522
|
-
movingLayout: "
|
|
46523
|
-
layoutPending: "
|
|
46524
|
-
dock: "
|
|
46525
|
-
viewDock: "
|
|
46526
|
-
expandedViewControls: "
|
|
46527
|
-
viewOptionButtons: "
|
|
46528
|
-
compactViewControls: "
|
|
46529
|
-
createDock: "
|
|
46530
|
-
zoomValue: "
|
|
46531
|
-
interactiveModeTrigger: "
|
|
46532
|
-
interactiveModePanel: "
|
|
46533
|
-
interactiveModeChoices: "
|
|
46534
|
-
interactiveModeChoice: "
|
|
46535
|
-
dockActions: "
|
|
46536
|
-
miniMap: "
|
|
46537
|
-
viewOptions: "
|
|
46538
|
-
viewOptionsClip: "
|
|
46539
|
-
viewSeparator: "
|
|
46520
|
+
container: "ReactFlowContainer_container_b3d0e",
|
|
46521
|
+
flow: "ReactFlowContainer_flow_b3d0e",
|
|
46522
|
+
contextMenu: "ReactFlowContainer_contextMenu_b3d0e",
|
|
46523
|
+
movingLayout: "ReactFlowContainer_movingLayout_b3d0e",
|
|
46524
|
+
layoutPending: "ReactFlowContainer_layoutPending_b3d0e",
|
|
46525
|
+
dock: "ReactFlowContainer_dock_b3d0e",
|
|
46526
|
+
viewDock: "ReactFlowContainer_viewDock_b3d0e",
|
|
46527
|
+
expandedViewControls: "ReactFlowContainer_expandedViewControls_b3d0e",
|
|
46528
|
+
viewOptionButtons: "ReactFlowContainer_viewOptionButtons_b3d0e",
|
|
46529
|
+
compactViewControls: "ReactFlowContainer_compactViewControls_b3d0e",
|
|
46530
|
+
createDock: "ReactFlowContainer_createDock_b3d0e",
|
|
46531
|
+
zoomValue: "ReactFlowContainer_zoomValue_b3d0e",
|
|
46532
|
+
interactiveModeTrigger: "ReactFlowContainer_interactiveModeTrigger_b3d0e",
|
|
46533
|
+
interactiveModePanel: "ReactFlowContainer_interactiveModePanel_b3d0e",
|
|
46534
|
+
interactiveModeChoices: "ReactFlowContainer_interactiveModeChoices_b3d0e",
|
|
46535
|
+
interactiveModeChoice: "ReactFlowContainer_interactiveModeChoice_b3d0e",
|
|
46536
|
+
dockActions: "ReactFlowContainer_dockActions_b3d0e",
|
|
46537
|
+
miniMap: "ReactFlowContainer_miniMap_b3d0e",
|
|
46538
|
+
viewOptions: "ReactFlowContainer_viewOptions_b3d0e",
|
|
46539
|
+
viewOptionsClip: "ReactFlowContainer_viewOptionsClip_b3d0e",
|
|
46540
|
+
viewSeparator: "ReactFlowContainer_viewSeparator_b3d0e"
|
|
46540
46541
|
};
|
|
46541
46542
|
//#endregion
|
|
46542
46543
|
//#region src/canvas/browser/addItemDrag.ts
|
|
@@ -51885,7 +51886,7 @@ var ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => {
|
|
|
51885
51886
|
return required$1(ZodNonOptional, this, args[0]);
|
|
51886
51887
|
}
|
|
51887
51888
|
});
|
|
51888
|
-
function object$
|
|
51889
|
+
function object$2(shape, params) {
|
|
51889
51890
|
return new ZodObject({
|
|
51890
51891
|
type: "object",
|
|
51891
51892
|
shape: shape ?? {},
|
|
@@ -53786,15 +53787,6 @@ function FlowCanvasView(props) {
|
|
|
53786
53787
|
}, props.identity);
|
|
53787
53788
|
}
|
|
53788
53789
|
//#endregion
|
|
53789
|
-
//#region src/openapi/common/authBindings.ts
|
|
53790
|
-
/** Never allow credentials to enter a Revision as literal node inputs. */
|
|
53791
|
-
function assertOpenApiAuthBindings(document) {
|
|
53792
|
-
for (const node of Object.values(document.graph.nodes)) {
|
|
53793
|
-
if (node.kind != "task" || !("executor" in node.task) || node.task.executor.kind != "openapi") continue;
|
|
53794
|
-
for (const [handle, mapping] of Object.entries(node.inputs)) if (handle.startsWith("auth.") && mapping.kind == "value") throw new TypeError("OpenAPI authentication accepts deployment variables and upstream outputs only.");
|
|
53795
|
-
}
|
|
53796
|
-
}
|
|
53797
|
-
//#endregion
|
|
53798
53790
|
//#region src/flow/common/inputValue.ts
|
|
53799
53791
|
/** An explicit clear suppresses the default; absent mappings still inherit it. */
|
|
53800
53792
|
function inputValue(mapping, fallback) {
|
|
@@ -57763,6 +57755,11 @@ function variableInputCompatible(jsonSchema) {
|
|
|
57763
57755
|
}).kind == "compatible";
|
|
57764
57756
|
return compareSchemas({ type: "string" }, jsonSchema).kind == "compatible";
|
|
57765
57757
|
}
|
|
57758
|
+
//#endregion
|
|
57759
|
+
//#region src/decision/common/decision.ts
|
|
57760
|
+
function isDecisionExecutor(executor) {
|
|
57761
|
+
return executor.kind === "decision";
|
|
57762
|
+
}
|
|
57766
57763
|
var decisionLimits = {
|
|
57767
57764
|
choice: 255,
|
|
57768
57765
|
score: 10
|
|
@@ -57785,7 +57782,7 @@ function limitDecisionQuestions(questions) {
|
|
|
57785
57782
|
}
|
|
57786
57783
|
/** Loading an oversized task also updates its previously generated output schemas. */
|
|
57787
57784
|
function limitDecisionTask(task) {
|
|
57788
|
-
if (task.executor
|
|
57785
|
+
if (!isDecisionExecutor(task.executor)) return task;
|
|
57789
57786
|
const original = task.executor.questions;
|
|
57790
57787
|
const questions = limitDecisionQuestions(original);
|
|
57791
57788
|
if (questions === original) return task;
|
|
@@ -57908,6 +57905,206 @@ function decisionTask(questions = [defaultDecisionQuestion()], name = "AI Decisi
|
|
|
57908
57905
|
outputs
|
|
57909
57906
|
};
|
|
57910
57907
|
}
|
|
57908
|
+
//#endregion
|
|
57909
|
+
//#region src/http/common/authBindings.ts
|
|
57910
|
+
/** Never allow credentials to enter a Revision as literal inputs of an OpenAPI or HTTP request node. */
|
|
57911
|
+
function assertHttpAuthBindings(inputs) {
|
|
57912
|
+
for (const [handle, mapping] of Object.entries(inputs)) if (handle.startsWith("auth.") && mapping.kind == "value") throw new TypeError("HTTP authentication accepts deployment variables and upstream outputs only.");
|
|
57913
|
+
}
|
|
57914
|
+
//#endregion
|
|
57915
|
+
//#region src/http/common/hosts.ts
|
|
57916
|
+
/** Hosts of a Code `http` Capability: lowercase DNS names or IPv4 addresses; `*.example.com` matches subdomains only. */
|
|
57917
|
+
var httpHostPattern = /^(?:\*\.)?(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
57918
|
+
/** Wildcards must name a registrable suffix, so `*.com` is rejected. */
|
|
57919
|
+
function isHttpHost(value) {
|
|
57920
|
+
return httpHostPattern.test(value) && (!value.startsWith("*.") || value.slice(2).includes("."));
|
|
57921
|
+
}
|
|
57922
|
+
//#endregion
|
|
57923
|
+
//#region src/http/common/headers.ts
|
|
57924
|
+
/** Header names are case-insensitive; never silently combine duplicate business fields. */
|
|
57925
|
+
function httpHeaderNameIssue(name, names) {
|
|
57926
|
+
if (!/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(name)) return "invalid";
|
|
57927
|
+
if (names.some((candidate) => candidate.toLowerCase() === name.toLowerCase())) return "duplicate";
|
|
57928
|
+
}
|
|
57929
|
+
//#endregion
|
|
57930
|
+
//#region src/http/common/httpRequest.ts
|
|
57931
|
+
var parameterSchema = strictObject({
|
|
57932
|
+
mode: _enum(["fields", "object"]).default("fields"),
|
|
57933
|
+
names: array(string$1()).default([])
|
|
57934
|
+
});
|
|
57935
|
+
var httpRequestConfigSchema = strictObject({
|
|
57936
|
+
method: _enum([
|
|
57937
|
+
"GET",
|
|
57938
|
+
"POST",
|
|
57939
|
+
"PUT",
|
|
57940
|
+
"PATCH",
|
|
57941
|
+
"DELETE",
|
|
57942
|
+
"HEAD",
|
|
57943
|
+
"OPTIONS"
|
|
57944
|
+
]).default("GET"),
|
|
57945
|
+
query: parameterSchema.default({
|
|
57946
|
+
mode: "fields",
|
|
57947
|
+
names: []
|
|
57948
|
+
}),
|
|
57949
|
+
headers: parameterSchema.default({
|
|
57950
|
+
mode: "fields",
|
|
57951
|
+
names: []
|
|
57952
|
+
}),
|
|
57953
|
+
bodyFormat: _enum([
|
|
57954
|
+
"none",
|
|
57955
|
+
"json",
|
|
57956
|
+
"text",
|
|
57957
|
+
"form"
|
|
57958
|
+
]).default("none"),
|
|
57959
|
+
authentication: union$1([
|
|
57960
|
+
strictObject({ type: literal("none") }),
|
|
57961
|
+
strictObject({ type: _enum(["bearer", "basic"]) }),
|
|
57962
|
+
strictObject({
|
|
57963
|
+
type: literal("apiKey"),
|
|
57964
|
+
name: string$1(),
|
|
57965
|
+
in: _enum(["header", "query"])
|
|
57966
|
+
})
|
|
57967
|
+
]).default({ type: "none" }),
|
|
57968
|
+
responseFormat: _enum([
|
|
57969
|
+
"auto",
|
|
57970
|
+
"json",
|
|
57971
|
+
"text"
|
|
57972
|
+
]).default("auto"),
|
|
57973
|
+
statusPolicy: _enum(["success", "all"]).default("success")
|
|
57974
|
+
});
|
|
57975
|
+
var httpRequestExecutorSchema = httpRequestConfigSchema.extend({ kind: literal("http-request") });
|
|
57976
|
+
var scalarSchema = { type: [
|
|
57977
|
+
"string",
|
|
57978
|
+
"number",
|
|
57979
|
+
"boolean"
|
|
57980
|
+
] };
|
|
57981
|
+
var queryValueSchema = { anyOf: [scalarSchema, {
|
|
57982
|
+
type: "array",
|
|
57983
|
+
items: scalarSchema
|
|
57984
|
+
}] };
|
|
57985
|
+
var httpHeaderSchema = {
|
|
57986
|
+
type: "object",
|
|
57987
|
+
additionalProperties: { type: "string" }
|
|
57988
|
+
};
|
|
57989
|
+
var httpQuerySchema = {
|
|
57990
|
+
type: "object",
|
|
57991
|
+
additionalProperties: queryValueSchema
|
|
57992
|
+
};
|
|
57993
|
+
function httpAuthHandles(config) {
|
|
57994
|
+
return config.authentication.type == "none" ? [] : config.authentication.type == "basic" ? ["auth.username", "auth.password"] : ["auth.token"];
|
|
57995
|
+
}
|
|
57996
|
+
function retain(ports, old) {
|
|
57997
|
+
const remaining = new Map(ports.map((port) => [port.handle, port]));
|
|
57998
|
+
return [...old.flatMap((item) => {
|
|
57999
|
+
if ("group" in item) return [item];
|
|
58000
|
+
const next = remaining.get(item.handle);
|
|
58001
|
+
if (next == null) return [];
|
|
58002
|
+
remaining.delete(item.handle);
|
|
58003
|
+
return [dequal$1(item.jsonSchema, next.jsonSchema) && item.nullable == next.nullable ? item : next];
|
|
58004
|
+
}), ...remaining.values()];
|
|
58005
|
+
}
|
|
58006
|
+
function httpRequestTask(config = httpRequestConfigSchema.parse({}), name = "HTTP Request", previous) {
|
|
58007
|
+
const inputs = [{
|
|
58008
|
+
handle: "url",
|
|
58009
|
+
jsonSchema: { type: "string" },
|
|
58010
|
+
nullable: false
|
|
58011
|
+
}];
|
|
58012
|
+
for (const group of ["query", "headers"]) if (config[group].mode == "object") inputs.push({
|
|
58013
|
+
handle: group,
|
|
58014
|
+
jsonSchema: group == "query" ? httpQuerySchema : httpHeaderSchema,
|
|
58015
|
+
nullable: true
|
|
58016
|
+
});
|
|
58017
|
+
else for (const parameterName of config[group].names.filter((value) => value.trim())) inputs.push({
|
|
58018
|
+
handle: `${group == "query" ? "query" : "header"}.${parameterName}`,
|
|
58019
|
+
jsonSchema: group == "query" ? queryValueSchema : { type: "string" },
|
|
58020
|
+
nullable: true
|
|
58021
|
+
});
|
|
58022
|
+
if (config.bodyFormat != "none") inputs.push({
|
|
58023
|
+
handle: "body",
|
|
58024
|
+
jsonSchema: config.bodyFormat == "json" ? {} : config.bodyFormat == "text" ? { type: "string" } : httpQuerySchema,
|
|
58025
|
+
nullable: config.bodyFormat == "json"
|
|
58026
|
+
});
|
|
58027
|
+
inputs.push(...httpAuthHandles(config).map((handle) => ({
|
|
58028
|
+
handle,
|
|
58029
|
+
jsonSchema: { type: "string" },
|
|
58030
|
+
nullable: false
|
|
58031
|
+
})));
|
|
58032
|
+
const outputs = [
|
|
58033
|
+
{
|
|
58034
|
+
handle: "body",
|
|
58035
|
+
jsonSchema: config.responseFormat == "text" ? { type: "string" } : {},
|
|
58036
|
+
nullable: true
|
|
58037
|
+
},
|
|
58038
|
+
{
|
|
58039
|
+
handle: "statusCode",
|
|
58040
|
+
jsonSchema: { type: "integer" },
|
|
58041
|
+
nullable: false
|
|
58042
|
+
},
|
|
58043
|
+
{
|
|
58044
|
+
handle: "headers",
|
|
58045
|
+
jsonSchema: httpHeaderSchema,
|
|
58046
|
+
nullable: false
|
|
58047
|
+
}
|
|
58048
|
+
];
|
|
58049
|
+
return {
|
|
58050
|
+
name,
|
|
58051
|
+
executor: {
|
|
58052
|
+
...config,
|
|
58053
|
+
kind: "http-request"
|
|
58054
|
+
},
|
|
58055
|
+
inputs: retain(inputs, previous?.inputs ?? []),
|
|
58056
|
+
outputs: retain(outputs, previous?.outputs ?? [])
|
|
58057
|
+
};
|
|
58058
|
+
}
|
|
58059
|
+
function httpRequestIssues(config) {
|
|
58060
|
+
const issues = [];
|
|
58061
|
+
if (["GET", "HEAD"].includes(config.method) && config.bodyFormat != "none") issues.push({
|
|
58062
|
+
field: "bodyFormat",
|
|
58063
|
+
code: "bodyUnsupported",
|
|
58064
|
+
message: "GET and HEAD do not support a request body."
|
|
58065
|
+
});
|
|
58066
|
+
for (const group of ["query", "headers"]) {
|
|
58067
|
+
if (config[group].mode != "fields") continue;
|
|
58068
|
+
const seen = /* @__PURE__ */ new Set();
|
|
58069
|
+
for (const [index, name] of config[group].names.entries()) {
|
|
58070
|
+
const key = group == "headers" ? name.toLowerCase() : name;
|
|
58071
|
+
if (!name.trim() || seen.has(key)) issues.push({
|
|
58072
|
+
field: group,
|
|
58073
|
+
index,
|
|
58074
|
+
code: "parameterNamesInvalid",
|
|
58075
|
+
message: "Parameter names must be nonempty and unique."
|
|
58076
|
+
});
|
|
58077
|
+
seen.add(key);
|
|
58078
|
+
if (group == "headers" && httpHeaderNameIssue(name, []) === "invalid") issues.push({
|
|
58079
|
+
field: group,
|
|
58080
|
+
index,
|
|
58081
|
+
code: "headerNameInvalid",
|
|
58082
|
+
message: "Invalid HTTP header name."
|
|
58083
|
+
});
|
|
58084
|
+
}
|
|
58085
|
+
}
|
|
58086
|
+
const auth = config.authentication;
|
|
58087
|
+
if (auth.type != "none") {
|
|
58088
|
+
const group = auth.type == "apiKey" && auth.in == "query" ? "query" : "headers";
|
|
58089
|
+
const name = auth.type == "apiKey" ? auth.name : "authorization";
|
|
58090
|
+
if (!name.trim()) issues.push({
|
|
58091
|
+
field: "authentication",
|
|
58092
|
+
code: "keyNameRequired",
|
|
58093
|
+
message: "API Key requires a name."
|
|
58094
|
+
});
|
|
58095
|
+
if (group == "headers" && name.trim() && httpHeaderNameIssue(name, []) === "invalid") issues.push({
|
|
58096
|
+
field: "authentication",
|
|
58097
|
+
code: "headerNameInvalid",
|
|
58098
|
+
message: "Invalid authentication header name."
|
|
58099
|
+
});
|
|
58100
|
+
if (config[group].mode == "fields" && config[group].names.some((item) => group == "headers" ? item.toLowerCase() == name.toLowerCase() : item == name)) issues.push({
|
|
58101
|
+
field: "authentication",
|
|
58102
|
+
code: "authConflict",
|
|
58103
|
+
message: "Authentication conflicts with a request parameter."
|
|
58104
|
+
});
|
|
58105
|
+
}
|
|
58106
|
+
return issues;
|
|
58107
|
+
}
|
|
57911
58108
|
function checkJsonDepth(value, depth = 0) {
|
|
57912
58109
|
if (depth > 64) throw new TypeError("Value exceeds the maximum JSON depth.");
|
|
57913
58110
|
if (value != null && typeof value == "object") for (const child of Object.values(value)) checkJsonDepth(child, depth + 1);
|
|
@@ -57918,6 +58115,7 @@ var retryNodeTypes = [
|
|
|
57918
58115
|
"code",
|
|
57919
58116
|
"connector",
|
|
57920
58117
|
"openapi",
|
|
58118
|
+
"http-request",
|
|
57921
58119
|
"llm",
|
|
57922
58120
|
"decision"
|
|
57923
58121
|
];
|
|
@@ -57940,11 +58138,11 @@ function supportsNodeRetry(node) {
|
|
|
57940
58138
|
}
|
|
57941
58139
|
//#endregion
|
|
57942
58140
|
//#region src/flow/common/triggerScheduleSchema.ts
|
|
57943
|
-
var triggerScheduleSchema = array(union$1([object$
|
|
58141
|
+
var triggerScheduleSchema = array(union$1([object$2({
|
|
57944
58142
|
type: literal("cron"),
|
|
57945
58143
|
expression: string$1(),
|
|
57946
58144
|
timezone: string$1()
|
|
57947
|
-
}), object$
|
|
58145
|
+
}), object$2({
|
|
57948
58146
|
type: literal("every"),
|
|
57949
58147
|
unit: _enum([
|
|
57950
58148
|
"day",
|
|
@@ -58027,11 +58225,6 @@ function workflowOutputsPort(outputs) {
|
|
|
58027
58225
|
nullable: false
|
|
58028
58226
|
};
|
|
58029
58227
|
}
|
|
58030
|
-
/** Header names are case-insensitive; never silently combine duplicate business fields. */
|
|
58031
|
-
function webhookHeaderNameIssue(name, names) {
|
|
58032
|
-
if (!/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(name)) return "invalid";
|
|
58033
|
-
if (names.some((candidate) => candidate.toLowerCase() === name.toLowerCase())) return "duplicate";
|
|
58034
|
-
}
|
|
58035
58228
|
/** Fixed inputs belong to the node, not author-supplied definitions. */
|
|
58036
58229
|
var webhookResponseInputs = [
|
|
58037
58230
|
{
|
|
@@ -58057,7 +58250,7 @@ var text = string$1();
|
|
|
58057
58250
|
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
58058
58251
|
var json$3 = json$4();
|
|
58059
58252
|
var strings = array(text);
|
|
58060
|
-
var port = object$
|
|
58253
|
+
var port = object$2({
|
|
58061
58254
|
description: text.optional(),
|
|
58062
58255
|
jsonSchema: json$3,
|
|
58063
58256
|
nullable: boolean(),
|
|
@@ -58065,25 +58258,25 @@ var port = object$1({
|
|
|
58065
58258
|
});
|
|
58066
58259
|
var workflowInputDefs = array(port.strict());
|
|
58067
58260
|
var input = port.extend({ value: json$3.optional() });
|
|
58068
|
-
var group$1 = object$
|
|
58261
|
+
var group$1 = object$2({
|
|
58069
58262
|
collapsed: boolean().optional(),
|
|
58070
58263
|
group: text
|
|
58071
58264
|
});
|
|
58072
|
-
var source = union$1([object$
|
|
58265
|
+
var source = union$1([object$2({
|
|
58073
58266
|
kind: literal("node"),
|
|
58074
58267
|
nodeId: text,
|
|
58075
58268
|
output: text,
|
|
58076
58269
|
system: literal(true).optional(),
|
|
58077
58270
|
field: text.optional()
|
|
58078
|
-
}), object$
|
|
58271
|
+
}), object$2({
|
|
58079
58272
|
kind: literal("binding"),
|
|
58080
58273
|
bindingId: text
|
|
58081
58274
|
})]);
|
|
58082
|
-
var fixedInput = union$1([object$
|
|
58275
|
+
var fixedInput = union$1([object$2({ kind: literal("unset") }), object$2({
|
|
58083
58276
|
kind: literal("value"),
|
|
58084
58277
|
value: json$3
|
|
58085
58278
|
})]);
|
|
58086
|
-
var mapping = union$1([fixedInput, object$
|
|
58279
|
+
var mapping = union$1([fixedInput, object$2({
|
|
58087
58280
|
kind: literal("sources"),
|
|
58088
58281
|
sources: array(source)
|
|
58089
58282
|
})]);
|
|
@@ -58132,21 +58325,29 @@ var workflowCapabilitySchema = strictObject({
|
|
|
58132
58325
|
inputs: array(port),
|
|
58133
58326
|
outputs: array(port).nullable()
|
|
58134
58327
|
});
|
|
58135
|
-
var
|
|
58136
|
-
|
|
58328
|
+
var httpCapabilitySchema = strictObject({
|
|
58329
|
+
kind: literal("http"),
|
|
58330
|
+
hosts: array(text.refine(isHttpHost, "Use a lowercase host name or IPv4 address, optionally prefixed by \"*.\" for subdomains.")).min(1).max(20).describe("Hosts Code may call with context.fetch. \"*.example.com\" matches subdomains only.")
|
|
58331
|
+
});
|
|
58332
|
+
var capability = union$1([
|
|
58333
|
+
connectorCapabilitySchema,
|
|
58334
|
+
workflowCapabilitySchema,
|
|
58335
|
+
httpCapabilitySchema
|
|
58336
|
+
]);
|
|
58337
|
+
var inline = object$2({
|
|
58137
58338
|
...ports,
|
|
58138
58339
|
name: text,
|
|
58139
58340
|
moduleId: text,
|
|
58140
58341
|
capabilities: array(capability).optional()
|
|
58141
58342
|
});
|
|
58142
|
-
var agentValue = union$1([object$
|
|
58343
|
+
var agentValue = union$1([object$2({
|
|
58143
58344
|
kind: literal("value"),
|
|
58144
58345
|
value: json$3
|
|
58145
|
-
}), object$
|
|
58346
|
+
}), object$2({
|
|
58146
58347
|
kind: literal("input"),
|
|
58147
58348
|
input: text
|
|
58148
58349
|
})]);
|
|
58149
|
-
var agentInput = union$1([agentValue, object$
|
|
58350
|
+
var agentInput = union$1([agentValue, object$2({ kind: literal("model") })]);
|
|
58150
58351
|
var agentToolFields = {
|
|
58151
58352
|
id: text,
|
|
58152
58353
|
name: text,
|
|
@@ -58154,7 +58355,7 @@ var agentToolFields = {
|
|
|
58154
58355
|
approval: boolean(),
|
|
58155
58356
|
inputs: array(input.extend({ source: agentInput }))
|
|
58156
58357
|
};
|
|
58157
|
-
var connectorAgentToolSchema = object$
|
|
58358
|
+
var connectorAgentToolSchema = object$2({
|
|
58158
58359
|
...agentToolFields,
|
|
58159
58360
|
kind: literal("connector").optional(),
|
|
58160
58361
|
action: text,
|
|
@@ -58187,24 +58388,24 @@ var decisionQuestion = discriminatedUnion("type", [
|
|
|
58187
58388
|
criteria: strings
|
|
58188
58389
|
})
|
|
58189
58390
|
]);
|
|
58190
|
-
var managedFields = object$
|
|
58391
|
+
var managedFields = object$2({
|
|
58191
58392
|
...ports,
|
|
58192
58393
|
name: text,
|
|
58193
58394
|
executor: union$1([
|
|
58194
|
-
object$
|
|
58395
|
+
object$2({
|
|
58195
58396
|
kind: literal("connector"),
|
|
58196
58397
|
action: text,
|
|
58197
58398
|
connectionId: actionConnection.optional(),
|
|
58198
58399
|
outputMode: literal("value").optional()
|
|
58199
58400
|
}),
|
|
58200
|
-
object$
|
|
58401
|
+
object$2({
|
|
58201
58402
|
kind: literal("openapi"),
|
|
58202
58403
|
sourceUrl: text,
|
|
58203
58404
|
method: text,
|
|
58204
58405
|
path: text,
|
|
58205
58406
|
serverUrl: text,
|
|
58206
58407
|
document: json$3,
|
|
58207
|
-
auth: array(object$
|
|
58408
|
+
auth: array(object$2({
|
|
58208
58409
|
id: text,
|
|
58209
58410
|
type: _enum([
|
|
58210
58411
|
"bearer",
|
|
@@ -58219,18 +58420,18 @@ var managedFields = object$1({
|
|
|
58219
58420
|
kind: literal("decision"),
|
|
58220
58421
|
questions: array(decisionQuestion)
|
|
58221
58422
|
}),
|
|
58222
|
-
object$
|
|
58423
|
+
object$2({
|
|
58223
58424
|
kind: literal("llm"),
|
|
58224
58425
|
mode: _enum(["chat", "json"])
|
|
58225
58426
|
}),
|
|
58226
|
-
object$
|
|
58427
|
+
object$2({
|
|
58227
58428
|
kind: literal("agent"),
|
|
58228
58429
|
code: boolean().optional(),
|
|
58229
58430
|
model: text,
|
|
58230
58431
|
prompt: text,
|
|
58231
58432
|
maxRounds: number(),
|
|
58232
58433
|
tools: array(union$1([workflowAgentToolSchema, connectorAgentToolSchema])),
|
|
58233
|
-
notification: object$
|
|
58434
|
+
notification: object$2({
|
|
58234
58435
|
action: text,
|
|
58235
58436
|
connectionId: actionConnection.optional(),
|
|
58236
58437
|
inputDefinitions: array(input),
|
|
@@ -58242,24 +58443,25 @@ var managedFields = object$1({
|
|
|
58242
58443
|
kind: literal("workflow"),
|
|
58243
58444
|
flowId: text,
|
|
58244
58445
|
revisionId: text
|
|
58245
|
-
})
|
|
58446
|
+
}),
|
|
58447
|
+
httpRequestExecutorSchema
|
|
58246
58448
|
])
|
|
58247
58449
|
});
|
|
58248
58450
|
var managed = managedFields.transform(limitDecisionTask);
|
|
58249
|
-
var operand$1 = union$1([object$
|
|
58451
|
+
var operand$1 = union$1([object$2({
|
|
58250
58452
|
kind: literal("value"),
|
|
58251
58453
|
value: json$3.optional(),
|
|
58252
58454
|
jsonSchema: json$3.optional()
|
|
58253
|
-
}), object$
|
|
58455
|
+
}), object$2({
|
|
58254
58456
|
kind: literal("source"),
|
|
58255
58457
|
source
|
|
58256
58458
|
})]);
|
|
58257
58459
|
var condition = {
|
|
58258
58460
|
matchMode: _enum(["first", "all"]),
|
|
58259
|
-
cases: array(object$
|
|
58461
|
+
cases: array(object$2({
|
|
58260
58462
|
description: text.optional(),
|
|
58261
58463
|
output: text,
|
|
58262
|
-
groups: array(object$
|
|
58464
|
+
groups: array(object$2({ expressions: array(object$2({
|
|
58263
58465
|
left: operand$1,
|
|
58264
58466
|
operator: _enum([
|
|
58265
58467
|
"!=",
|
|
@@ -58291,7 +58493,7 @@ var wait = {
|
|
|
58291
58493
|
inputDefinitions: array(input),
|
|
58292
58494
|
prompt: text
|
|
58293
58495
|
};
|
|
58294
|
-
var webhookOptions = object$
|
|
58496
|
+
var webhookOptions = object$2({
|
|
58295
58497
|
allowedMethods: never().optional(),
|
|
58296
58498
|
allowedOrigins: strings.optional(),
|
|
58297
58499
|
noResponseBody: never().optional(),
|
|
@@ -58329,8 +58531,8 @@ var definition = {
|
|
|
58329
58531
|
outputs: array(port).refine((definitions) => new Set(definitions.map((output) => output.handle)).size === definitions.length, "Duplicate Trigger output handle."),
|
|
58330
58532
|
provider: text
|
|
58331
58533
|
};
|
|
58332
|
-
var endpoint = object$
|
|
58333
|
-
body: object$
|
|
58534
|
+
var endpoint = object$2({
|
|
58535
|
+
body: object$2({
|
|
58334
58536
|
allowArray: boolean(),
|
|
58335
58537
|
allowEmpty: boolean(),
|
|
58336
58538
|
formats: array(_enum([
|
|
@@ -58379,19 +58581,19 @@ var node = union$1([
|
|
|
58379
58581
|
outputDefs: array(port.strict()),
|
|
58380
58582
|
outputMappings: inputs
|
|
58381
58583
|
}).omit({ inputs: true }),
|
|
58382
|
-
object$
|
|
58584
|
+
object$2({
|
|
58383
58585
|
...base,
|
|
58384
58586
|
inputs: record$3(text, never()),
|
|
58385
58587
|
kind: literal("condition"),
|
|
58386
58588
|
...condition
|
|
58387
58589
|
}),
|
|
58388
|
-
object$
|
|
58590
|
+
object$2({
|
|
58389
58591
|
...base,
|
|
58390
58592
|
inputs: unknown().transform(() => ({})).default({}),
|
|
58391
58593
|
kind: literal("value"),
|
|
58392
58594
|
values: array(input)
|
|
58393
58595
|
}),
|
|
58394
|
-
object$
|
|
58596
|
+
object$2({
|
|
58395
58597
|
...base,
|
|
58396
58598
|
kind: literal("task"),
|
|
58397
58599
|
task: union$1([inline, managed]),
|
|
@@ -58408,7 +58610,7 @@ var node = union$1([
|
|
|
58408
58610
|
...wait,
|
|
58409
58611
|
autoContinue: waitAutoContinueDraftSchema.optional()
|
|
58410
58612
|
}).omit({ timeoutMs: true }),
|
|
58411
|
-
object$
|
|
58613
|
+
object$2({
|
|
58412
58614
|
...trigger,
|
|
58413
58615
|
kind: literal("manual")
|
|
58414
58616
|
}),
|
|
@@ -58422,33 +58624,33 @@ var node = union$1([
|
|
|
58422
58624
|
kind: literal("error"),
|
|
58423
58625
|
sourceFlowIds: sourceFlowIds.optional()
|
|
58424
58626
|
}),
|
|
58425
|
-
object$
|
|
58627
|
+
object$2({
|
|
58426
58628
|
...trigger,
|
|
58427
58629
|
kind: literal("webhook"),
|
|
58428
58630
|
...webhook
|
|
58429
58631
|
}),
|
|
58430
|
-
object$
|
|
58632
|
+
object$2({
|
|
58431
58633
|
...trigger,
|
|
58432
58634
|
kind: literal("cron"),
|
|
58433
58635
|
cronTimes: triggerScheduleSchema
|
|
58434
58636
|
}),
|
|
58435
|
-
object$
|
|
58637
|
+
object$2({
|
|
58436
58638
|
...trigger,
|
|
58437
58639
|
kind: literal("poll"),
|
|
58438
58640
|
connectionId: text.min(1).optional(),
|
|
58439
58641
|
config: record$3(text, fixedInput),
|
|
58440
|
-
definition: object$
|
|
58642
|
+
definition: object$2({
|
|
58441
58643
|
...definition,
|
|
58442
58644
|
type: literal("poll")
|
|
58443
58645
|
}),
|
|
58444
58646
|
pollTimes: triggerScheduleSchema
|
|
58445
58647
|
}),
|
|
58446
|
-
object$
|
|
58648
|
+
object$2({
|
|
58447
58649
|
...trigger,
|
|
58448
58650
|
kind: literal("integration"),
|
|
58449
58651
|
connectionId: text.min(1).optional(),
|
|
58450
58652
|
config: record$3(text, fixedInput),
|
|
58451
|
-
definition: object$
|
|
58653
|
+
definition: object$2({
|
|
58452
58654
|
...definition,
|
|
58453
58655
|
type: literal("integration"),
|
|
58454
58656
|
endpoint
|
|
@@ -58475,7 +58677,7 @@ var authoringDefinitionSchemas = {
|
|
|
58475
58677
|
notification: true
|
|
58476
58678
|
}).strict()
|
|
58477
58679
|
};
|
|
58478
|
-
var edge = object$
|
|
58680
|
+
var edge = object$2({
|
|
58479
58681
|
source: text,
|
|
58480
58682
|
target: text,
|
|
58481
58683
|
sourceHandle: text.optional()
|
|
@@ -58484,24 +58686,24 @@ var at = {
|
|
|
58484
58686
|
nodeId: text,
|
|
58485
58687
|
target: never().optional()
|
|
58486
58688
|
};
|
|
58487
|
-
var graph = object$
|
|
58689
|
+
var graph = object$2({
|
|
58488
58690
|
nodes: record$3(text, node),
|
|
58489
58691
|
edges: array(edge).default([])
|
|
58490
58692
|
});
|
|
58491
|
-
var binding$1 = object$
|
|
58693
|
+
var binding$1 = object$2({
|
|
58492
58694
|
kind: literal("variable"),
|
|
58493
58695
|
target: text
|
|
58494
58696
|
});
|
|
58495
|
-
var module$1 = object$
|
|
58697
|
+
var module$1 = object$2({
|
|
58496
58698
|
name: text,
|
|
58497
58699
|
imports: strings,
|
|
58498
58700
|
source: text
|
|
58499
58701
|
});
|
|
58500
|
-
var document$1 = preprocess(normalizeDocument, object$
|
|
58702
|
+
var document$1 = preprocess(normalizeDocument, object$2({
|
|
58501
58703
|
bindings: record$3(text, binding$1),
|
|
58502
58704
|
graph
|
|
58503
58705
|
}));
|
|
58504
|
-
var revision = object$
|
|
58706
|
+
var revision = object$2({
|
|
58505
58707
|
modelVersion: union$1([
|
|
58506
58708
|
literal(2),
|
|
58507
58709
|
literal(4),
|
|
@@ -58511,7 +58713,8 @@ var revision = object$1({
|
|
|
58511
58713
|
literal(8),
|
|
58512
58714
|
literal(9),
|
|
58513
58715
|
literal(10),
|
|
58514
|
-
literal(11)
|
|
58716
|
+
literal(11),
|
|
58717
|
+
literal(12)
|
|
58515
58718
|
]),
|
|
58516
58719
|
document: document$1,
|
|
58517
58720
|
modules: record$3(text, module$1)
|
|
@@ -58542,7 +58745,7 @@ function decodeRevisionContent(value) {
|
|
|
58542
58745
|
checkJsonDepth(value);
|
|
58543
58746
|
const content = revision.parse(value);
|
|
58544
58747
|
checkModelVersion(content);
|
|
58545
|
-
|
|
58748
|
+
assertDocumentHttpAuthBindings(content.document);
|
|
58546
58749
|
return content;
|
|
58547
58750
|
}
|
|
58548
58751
|
var shapes = {
|
|
@@ -58580,21 +58783,21 @@ var shapes = {
|
|
|
58580
58783
|
},
|
|
58581
58784
|
"graph.node.delete": at,
|
|
58582
58785
|
"graph.node.field.set": union$1([
|
|
58583
|
-
object$
|
|
58786
|
+
object$2({
|
|
58584
58787
|
...at,
|
|
58585
58788
|
kind: literal("graph.node.field.set"),
|
|
58586
58789
|
field: literal("retry"),
|
|
58587
58790
|
before: retryConfigurationSchema.optional(),
|
|
58588
58791
|
value: retryConfigurationSchema.optional()
|
|
58589
58792
|
}),
|
|
58590
|
-
object$
|
|
58793
|
+
object$2({
|
|
58591
58794
|
...at,
|
|
58592
58795
|
kind: literal("graph.node.field.set"),
|
|
58593
58796
|
field: literal("connectionId"),
|
|
58594
58797
|
before: text.min(1).optional(),
|
|
58595
58798
|
value: text.min(1).optional()
|
|
58596
58799
|
}),
|
|
58597
|
-
object$
|
|
58800
|
+
object$2({
|
|
58598
58801
|
...at,
|
|
58599
58802
|
kind: literal("graph.node.field.set"),
|
|
58600
58803
|
field: _enum([
|
|
@@ -58606,14 +58809,14 @@ var shapes = {
|
|
|
58606
58809
|
before: text.optional(),
|
|
58607
58810
|
value: text.optional()
|
|
58608
58811
|
}),
|
|
58609
|
-
object$
|
|
58812
|
+
object$2({
|
|
58610
58813
|
...at,
|
|
58611
58814
|
kind: literal("graph.node.field.set"),
|
|
58612
58815
|
field: literal("maxExecutions"),
|
|
58613
58816
|
before: number().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),
|
|
58614
58817
|
value: number().int().positive().max(Number.MAX_SAFE_INTEGER).optional()
|
|
58615
58818
|
}),
|
|
58616
|
-
object$
|
|
58819
|
+
object$2({
|
|
58617
58820
|
...at,
|
|
58618
58821
|
kind: literal("graph.node.field.set"),
|
|
58619
58822
|
field: literal("timeoutMs"),
|
|
@@ -58634,8 +58837,8 @@ var shapes = {
|
|
|
58634
58837
|
},
|
|
58635
58838
|
"graph.node.condition.set": {
|
|
58636
58839
|
...at,
|
|
58637
|
-
before: object$
|
|
58638
|
-
value: object$
|
|
58840
|
+
before: object$2(condition),
|
|
58841
|
+
value: object$2(condition)
|
|
58639
58842
|
},
|
|
58640
58843
|
"graph.node.values.set": {
|
|
58641
58844
|
...at,
|
|
@@ -58655,13 +58858,13 @@ var shapes = {
|
|
|
58655
58858
|
},
|
|
58656
58859
|
"graph.node.webhook.set": {
|
|
58657
58860
|
...at,
|
|
58658
|
-
before: object$
|
|
58659
|
-
value: object$
|
|
58861
|
+
before: object$2(webhook),
|
|
58862
|
+
value: object$2(webhook)
|
|
58660
58863
|
},
|
|
58661
58864
|
"graph.node.task.ports.set": {
|
|
58662
58865
|
...at,
|
|
58663
|
-
before: object$
|
|
58664
|
-
value: object$
|
|
58866
|
+
before: object$2(ports),
|
|
58867
|
+
value: object$2(ports)
|
|
58665
58868
|
},
|
|
58666
58869
|
"graph.node.task.name.set": {
|
|
58667
58870
|
...at,
|
|
@@ -58707,11 +58910,13 @@ var shapes = {
|
|
|
58707
58910
|
value: union$1([inline, managed])
|
|
58708
58911
|
}
|
|
58709
58912
|
};
|
|
58710
|
-
array(union$1([...new Map(Object.entries(shapes).map(([kind, shape]) => [kind, shape instanceof ZodType ? shape : object$
|
|
58913
|
+
array(union$1([...new Map(Object.entries(shapes).map(([kind, shape]) => [kind, shape instanceof ZodType ? shape : object$2({
|
|
58711
58914
|
kind: literal(kind),
|
|
58712
58915
|
...shape
|
|
58713
58916
|
})])).values()])).min(1);
|
|
58714
58917
|
function checkModelVersion(content) {
|
|
58918
|
+
if (content.modelVersion < 12 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "moduleId" in candidateNode.task && candidateNode.task.capabilities?.some((item) => item.kind == "http"))) throw new TypeError("Code HTTP access requires Flow model version 12.");
|
|
58919
|
+
if (content.modelVersion < 11 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "executor" in candidateNode.task && candidateNode.task.executor.kind == "http-request")) throw new TypeError("HTTP Request requires Flow model version 11.");
|
|
58715
58920
|
if (content.modelVersion < 11 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && ("moduleId" in candidateNode.task ? candidateNode.task.capabilities?.some((item) => item.kind == "workflow") : candidateNode.task.executor.kind == "agent" && candidateNode.task.executor.tools.some((item) => item.kind == "workflow")))) throw new TypeError("Workflow tools require Flow model version 11.");
|
|
58716
58921
|
if (content.modelVersion < 10 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "webhook" && (candidateNode.options?.responseBody != null || candidateNode.options?.responseStatusCodeOutput != null || candidateNode.options?.responseHeadersSource != null || candidateNode.options?.responseHeaderOutputs != null))) throw new TypeError("Dynamic Webhook responses require Flow model version 10.");
|
|
58717
58922
|
if (content.modelVersion < 9 && Object.values(content.document.graph.nodes).some((candidateNode) => "retry" in candidateNode && candidateNode.retry != null)) throw new TypeError("Node retries require Flow model version 9.");
|
|
@@ -58726,6 +58931,9 @@ function checkModelVersion(content) {
|
|
|
58726
58931
|
if (content.modelVersion < 6 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "executor" in candidateNode.task)) throw new TypeError("Node-owned managed Tasks require Flow model version 6.");
|
|
58727
58932
|
if (content.modelVersion < 5 && Object.values(content.document.graph.nodes).some((itemNode) => itemNode.kind == "error")) throw new TypeError("Error workflows require Flow model version 5.");
|
|
58728
58933
|
}
|
|
58934
|
+
function assertDocumentHttpAuthBindings(content) {
|
|
58935
|
+
for (const graphNode of Object.values(content.graph.nodes)) if (graphNode.kind == "task" && "executor" in graphNode.task && ["openapi", "http-request"].includes(graphNode.task.executor.kind)) assertHttpAuthBindings(graphNode.inputs);
|
|
58936
|
+
}
|
|
58729
58937
|
var conditionOperators = [
|
|
58730
58938
|
"==",
|
|
58731
58939
|
"!=",
|
|
@@ -58886,10 +59094,12 @@ function nodeSystemOutputPorts(node) {
|
|
|
58886
59094
|
} } : {};
|
|
58887
59095
|
}
|
|
58888
59096
|
//#endregion
|
|
58889
|
-
//#region src/flow/common/
|
|
59097
|
+
//#region src/flow/common/model.ts
|
|
58890
59098
|
function portsByHandle(ports) {
|
|
58891
59099
|
return Object.fromEntries(ports.flatMap((port) => "handle" in port ? [[port.handle, port]] : []));
|
|
58892
59100
|
}
|
|
59101
|
+
//#endregion
|
|
59102
|
+
//#region src/flow/common/change.ts
|
|
58893
59103
|
var workflowToolNamePattern = /^[A-Za-z][A-Za-z0-9_-]{0,63}$/;
|
|
58894
59104
|
function workflowToolNameIssue(name, otherNames = []) {
|
|
58895
59105
|
if (!workflowToolNamePattern.test(name)) return "invalid";
|
|
@@ -59223,7 +59433,7 @@ function webhookResponseDiagnostics(graph, triggerId, path = `/document/graph/no
|
|
|
59223
59433
|
if (headersSource == null) for (const [headers, location] of [[options.responseHeaders, `${path}/options/responseHeaders`], [headerOutputs, headersPath]]) {
|
|
59224
59434
|
const names = [];
|
|
59225
59435
|
for (const name of Object.keys(headers ?? {})) {
|
|
59226
|
-
if (
|
|
59436
|
+
if (httpHeaderNameIssue(name, names) != null) diagnostics.push(graphDiagnostic("trigger.webhook-response-header-name", "Use valid, unique HTTP header names.", location));
|
|
59227
59437
|
names.push(name);
|
|
59228
59438
|
}
|
|
59229
59439
|
}
|
|
@@ -59494,9 +59704,9 @@ function checkInputSources(graph, target, handle, sources) {
|
|
|
59494
59704
|
};
|
|
59495
59705
|
}
|
|
59496
59706
|
/** Enumerate structurally available outputs while retaining their compatibility with one input. */
|
|
59497
|
-
function inputSourceCandidates(graph, target, handle) {
|
|
59707
|
+
function inputSourceCandidates(graph, target, handle, inputPort) {
|
|
59498
59708
|
const targetNode = graph.nodes[target];
|
|
59499
|
-
const input = targetNode == null ? void 0 : nodeInputPorts(targetNode)[handle];
|
|
59709
|
+
const input = inputPort ?? (targetNode == null ? void 0 : nodeInputPorts(targetNode)[handle]);
|
|
59500
59710
|
if (input == null) return {};
|
|
59501
59711
|
const analysis = graphPaths(graph);
|
|
59502
59712
|
return Object.fromEntries([...analysis.ancestors.get(target) ?? []].flatMap((nodeId) => {
|
|
@@ -59550,7 +59760,7 @@ var methods = [
|
|
|
59550
59760
|
"patch",
|
|
59551
59761
|
"trace"
|
|
59552
59762
|
];
|
|
59553
|
-
function object(value) {
|
|
59763
|
+
function object$1(value) {
|
|
59554
59764
|
if (value == null || typeof value != "object" || Array.isArray(value)) throw new Error("Expected an OpenAPI object.");
|
|
59555
59765
|
return value;
|
|
59556
59766
|
}
|
|
@@ -59560,30 +59770,30 @@ function httpUrl(value, base) {
|
|
|
59560
59770
|
return url.href;
|
|
59561
59771
|
}
|
|
59562
59772
|
function parseOpenApi(value) {
|
|
59563
|
-
const doc = object(value);
|
|
59773
|
+
const doc = object$1(value);
|
|
59564
59774
|
if (typeof doc.openapi != "string" || !/^3\.[01]\.\d+$/.test(doc.openapi)) throw new Error("Only OpenAPI 3.0 and 3.1 JSON documents are supported.");
|
|
59565
|
-
object(doc.paths);
|
|
59775
|
+
object$1(doc.paths);
|
|
59566
59776
|
return doc;
|
|
59567
59777
|
}
|
|
59568
59778
|
function pointer(doc, ref) {
|
|
59569
59779
|
if (!ref.startsWith("#/")) throw new Error("External OpenAPI references are not supported.");
|
|
59570
59780
|
let value = doc;
|
|
59571
59781
|
for (const key of decodeURIComponent(ref.slice(2)).split("/").map((part) => part.replace(/~1/g, "/").replace(/~0/g, "~"))) {
|
|
59572
|
-
const source = object(value);
|
|
59782
|
+
const source = object$1(value);
|
|
59573
59783
|
if (!Object.hasOwn(source, key)) throw new Error("An OpenAPI reference is missing.");
|
|
59574
59784
|
value = source[key];
|
|
59575
59785
|
}
|
|
59576
59786
|
return value;
|
|
59577
59787
|
}
|
|
59578
59788
|
function resolved(doc, value) {
|
|
59579
|
-
let result = object(value);
|
|
59789
|
+
let result = object$1(value);
|
|
59580
59790
|
const seen = /* @__PURE__ */ new Set();
|
|
59581
59791
|
while (typeof result.$ref == "string") {
|
|
59582
59792
|
if (seen.has(result.$ref)) throw new Error("Circular non-schema reference is unsupported.");
|
|
59583
59793
|
seen.add(result.$ref);
|
|
59584
59794
|
const { $ref, ...siblings } = result;
|
|
59585
59795
|
result = {
|
|
59586
|
-
...object(pointer(doc, $ref)),
|
|
59796
|
+
...object$1(pointer(doc, $ref)),
|
|
59587
59797
|
...siblings
|
|
59588
59798
|
};
|
|
59589
59799
|
}
|
|
@@ -59591,10 +59801,10 @@ function resolved(doc, value) {
|
|
|
59591
59801
|
}
|
|
59592
59802
|
function listOperations(documentValue) {
|
|
59593
59803
|
const doc = parseOpenApi(documentValue);
|
|
59594
|
-
return Object.entries(object(doc.paths)).flatMap(([path, value]) => {
|
|
59804
|
+
return Object.entries(object$1(doc.paths)).flatMap(([path, value]) => {
|
|
59595
59805
|
const item = resolved(doc, value);
|
|
59596
59806
|
return methods.filter((method) => item[method] != null).map((method) => {
|
|
59597
|
-
const op = object(item[method]);
|
|
59807
|
+
const op = object$1(item[method]);
|
|
59598
59808
|
return {
|
|
59599
59809
|
method,
|
|
59600
59810
|
path,
|
|
@@ -59605,11 +59815,11 @@ function listOperations(documentValue) {
|
|
|
59605
59815
|
});
|
|
59606
59816
|
}
|
|
59607
59817
|
function operation(doc, path, method) {
|
|
59608
|
-
const item = resolved(doc, object(doc.paths)[path]);
|
|
59818
|
+
const item = resolved(doc, object$1(doc.paths)[path]);
|
|
59609
59819
|
if (!methods.includes(method) || item[method] == null) throw new Error("The selected operation is no longer available.");
|
|
59610
59820
|
return {
|
|
59611
59821
|
item,
|
|
59612
|
-
op: object(item[method])
|
|
59822
|
+
op: object$1(item[method])
|
|
59613
59823
|
};
|
|
59614
59824
|
}
|
|
59615
59825
|
function servers(value, path, method) {
|
|
@@ -59617,11 +59827,11 @@ function servers(value, path, method) {
|
|
|
59617
59827
|
const { item, op } = operation(doc, path, method);
|
|
59618
59828
|
const entries = op.servers ?? item.servers ?? doc.servers;
|
|
59619
59829
|
if (!Array.isArray(entries) || entries.length == 0) return [{ url: "/" }];
|
|
59620
|
-
return entries.map(object);
|
|
59830
|
+
return entries.map(object$1);
|
|
59621
59831
|
}
|
|
59622
59832
|
function serverAddress(server, sourceUrl, variables = {}) {
|
|
59623
59833
|
return httpUrl(String(server.url).replace(/\{([^}]+)\}/g, (_, name) => {
|
|
59624
|
-
const definition = object(object(server.variables)[name]);
|
|
59834
|
+
const definition = object$1(object$1(server.variables)[name]);
|
|
59625
59835
|
const value = variables[name] ?? definition.default;
|
|
59626
59836
|
if (typeof value != "string" || Array.isArray(definition.enum) && !definition.enum.includes(value)) throw new Error("A server variable is invalid.");
|
|
59627
59837
|
return value;
|
|
@@ -59637,14 +59847,14 @@ function securityOptions(value, path, method) {
|
|
|
59637
59847
|
auth: []
|
|
59638
59848
|
}];
|
|
59639
59849
|
return requirements.map((entry) => {
|
|
59640
|
-
const names = Object.keys(object(entry));
|
|
59850
|
+
const names = Object.keys(object$1(entry));
|
|
59641
59851
|
const label = names.join(" + ") || "None";
|
|
59642
59852
|
try {
|
|
59643
59853
|
if (!names.length) return {
|
|
59644
59854
|
label,
|
|
59645
59855
|
auth: []
|
|
59646
59856
|
};
|
|
59647
|
-
const schemes = object(object(doc.components).securitySchemes);
|
|
59857
|
+
const schemes = object$1(object$1(doc.components).securitySchemes);
|
|
59648
59858
|
return {
|
|
59649
59859
|
label,
|
|
59650
59860
|
auth: names.map((id) => {
|
|
@@ -59697,7 +59907,7 @@ function snapshot$7(documentValue, path, method) {
|
|
|
59697
59907
|
let target = result;
|
|
59698
59908
|
for (const key of keys.slice(0, -1)) {
|
|
59699
59909
|
if (!Object.hasOwn(target, key)) target[key] = {};
|
|
59700
|
-
target = object(target[key]);
|
|
59910
|
+
target = object$1(target[key]);
|
|
59701
59911
|
}
|
|
59702
59912
|
target[keys.at(-1)] = structuredClone(value);
|
|
59703
59913
|
visit(value);
|
|
@@ -59708,7 +59918,7 @@ function snapshot$7(documentValue, path, method) {
|
|
|
59708
59918
|
value.forEach(visit);
|
|
59709
59919
|
return;
|
|
59710
59920
|
}
|
|
59711
|
-
if (typeof object(value).$ref == "string") copy(object(value).$ref);
|
|
59921
|
+
if (typeof object$1(value).$ref == "string") copy(object$1(value).$ref);
|
|
59712
59922
|
for (const [key, child] of Object.entries(value)) if (![
|
|
59713
59923
|
"example",
|
|
59714
59924
|
"examples",
|
|
@@ -59716,7 +59926,7 @@ function snapshot$7(documentValue, path, method) {
|
|
|
59716
59926
|
].includes(key)) visit(child);
|
|
59717
59927
|
}
|
|
59718
59928
|
visit(result);
|
|
59719
|
-
for (const entry of security) for (const name of Object.keys(object(entry))) copy(`#/components/securitySchemes/${name.replace(/~/g, "~0").replace(/\//g, "~1")}`);
|
|
59929
|
+
for (const entry of security) for (const name of Object.keys(object$1(entry))) copy(`#/components/securitySchemes/${name.replace(/~/g, "~0").replace(/\//g, "~1")}`);
|
|
59720
59930
|
return structuredClone(result);
|
|
59721
59931
|
}
|
|
59722
59932
|
function schema$2(doc, schemaValue) {
|
|
@@ -59724,7 +59934,7 @@ function schema$2(doc, schemaValue) {
|
|
|
59724
59934
|
const ids = /* @__PURE__ */ new Map();
|
|
59725
59935
|
function convert(value) {
|
|
59726
59936
|
if (typeof value == "boolean") return value;
|
|
59727
|
-
const source = object(value);
|
|
59937
|
+
const source = object$1(value);
|
|
59728
59938
|
if (source.format == "binary" || source.$dynamicRef != null || source.$id != null) throw new Error("Binary and dynamically scoped schemas are unsupported.");
|
|
59729
59939
|
const result = {};
|
|
59730
59940
|
for (const [key, child] of Object.entries(source)) {
|
|
@@ -59750,7 +59960,7 @@ function schema$2(doc, schemaValue) {
|
|
|
59750
59960
|
"$defs",
|
|
59751
59961
|
"definitions",
|
|
59752
59962
|
"dependentSchemas"
|
|
59753
|
-
].includes(key)) result[key] = Object.fromEntries(Object.entries(object(child)).map(([name, childSchema]) => [name, convert(childSchema)]));
|
|
59963
|
+
].includes(key)) result[key] = Object.fromEntries(Object.entries(object$1(child)).map(([name, childSchema]) => [name, convert(childSchema)]));
|
|
59754
59964
|
else if ([
|
|
59755
59965
|
"allOf",
|
|
59756
59966
|
"anyOf",
|
|
@@ -59785,21 +59995,24 @@ function schema$2(doc, schemaValue) {
|
|
|
59785
59995
|
return result;
|
|
59786
59996
|
}
|
|
59787
59997
|
let converted = convert(schemaValue);
|
|
59788
|
-
if (typeof converted == "object" && converted != null && typeof object(converted).$ref == "string") {
|
|
59789
|
-
const id = String(object(converted).$ref).slice(8);
|
|
59790
|
-
const { $ref: _ref, ...siblings } = object(converted);
|
|
59998
|
+
if (typeof converted == "object" && converted != null && typeof object$1(converted).$ref == "string") {
|
|
59999
|
+
const id = String(object$1(converted).$ref).slice(8);
|
|
60000
|
+
const { $ref: _ref, ...siblings } = object$1(converted);
|
|
59791
60001
|
converted = {
|
|
59792
|
-
...object(defs[id]),
|
|
60002
|
+
...object$1(defs[id]),
|
|
59793
60003
|
...siblings
|
|
59794
60004
|
};
|
|
59795
60005
|
}
|
|
59796
60006
|
if (typeof converted == "boolean") return converted;
|
|
59797
60007
|
return {
|
|
59798
60008
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
59799
|
-
...object(converted),
|
|
60009
|
+
...object$1(converted),
|
|
59800
60010
|
...Object.keys(defs).length ? { $defs: defs } : {}
|
|
59801
60011
|
};
|
|
59802
60012
|
}
|
|
60013
|
+
function isOpenApiExecutor(executor) {
|
|
60014
|
+
return executor.kind == "openapi";
|
|
60015
|
+
}
|
|
59803
60016
|
function parameters(config) {
|
|
59804
60017
|
const doc = parseOpenApi(config.document);
|
|
59805
60018
|
const { item, op } = operation(doc, config.path, config.method);
|
|
@@ -59819,12 +60032,12 @@ function parameters(config) {
|
|
|
59819
60032
|
}
|
|
59820
60033
|
function jsonContent(doc, value) {
|
|
59821
60034
|
const content = resolved(doc, value);
|
|
59822
|
-
const media = object(content.content);
|
|
60035
|
+
const media = object$1(content.content);
|
|
59823
60036
|
const mediaType = media["application/json"] != null ? "application/json" : Object.keys(media).find((key) => /^application\/.+\+json$/.test(key));
|
|
59824
60037
|
const json = mediaType == null ? void 0 : media[mediaType];
|
|
59825
60038
|
if (json == null) throw new Error("Only JSON request and response bodies are supported.");
|
|
59826
60039
|
return {
|
|
59827
|
-
schema: schema$2(doc, object(json).schema ?? {}),
|
|
60040
|
+
schema: schema$2(doc, object$1(json).schema ?? {}),
|
|
59828
60041
|
required: content.required === true,
|
|
59829
60042
|
mediaType
|
|
59830
60043
|
};
|
|
@@ -59844,7 +60057,7 @@ function openApiTask(config, name = "OpenAPI") {
|
|
|
59844
60057
|
const params = parameters(config);
|
|
59845
60058
|
const inputs = params.map((p) => {
|
|
59846
60059
|
const jsonSchema = schema$2(doc, p.schema ?? {});
|
|
59847
|
-
const defaultValue = typeof jsonSchema == "boolean" ? void 0 : object(jsonSchema).default;
|
|
60060
|
+
const defaultValue = typeof jsonSchema == "boolean" ? void 0 : object$1(jsonSchema).default;
|
|
59848
60061
|
return {
|
|
59849
60062
|
handle: `${p.in}.${p.name}`,
|
|
59850
60063
|
jsonSchema,
|
|
@@ -59874,14 +60087,14 @@ function openApiTask(config, name = "OpenAPI") {
|
|
|
59874
60087
|
jsonSchema: { type: "string" },
|
|
59875
60088
|
nullable: false
|
|
59876
60089
|
})));
|
|
59877
|
-
const responses = object(op.responses);
|
|
60090
|
+
const responses = object$1(op.responses);
|
|
59878
60091
|
const schemas = [];
|
|
59879
60092
|
for (const [status, response] of Object.entries(responses)) if (/^2\d\d$|^2XX$/.test(status) || status == "default") {
|
|
59880
60093
|
const r = resolved(doc, response);
|
|
59881
60094
|
if (r.content == null) schemas.push({ type: "null" });
|
|
59882
60095
|
else {
|
|
59883
60096
|
jsonContent(doc, r);
|
|
59884
|
-
for (const [mediaType, media] of Object.entries(object(r.content))) if (/^application\/(json|.+\+json)$/.test(mediaType)) schemas.push(schema$2(doc, object(media).schema ?? {}));
|
|
60097
|
+
for (const [mediaType, media] of Object.entries(object$1(r.content))) if (/^application\/(json|.+\+json)$/.test(mediaType)) schemas.push(schema$2(doc, object$1(media).schema ?? {}));
|
|
59885
60098
|
}
|
|
59886
60099
|
}
|
|
59887
60100
|
if (!schemas.length) throw new Error("A successful JSON response definition is required.");
|
|
@@ -59921,7 +60134,7 @@ function inlineSchema(value, index) {
|
|
|
59921
60134
|
}
|
|
59922
60135
|
/** The canvas validator and property panel share the same configuration contract. */
|
|
59923
60136
|
function openApiFieldIssues(task) {
|
|
59924
|
-
if (task.executor
|
|
60137
|
+
if (!isOpenApiExecutor(task.executor)) return [];
|
|
59925
60138
|
const config = task.executor;
|
|
59926
60139
|
let field = "sourceUrl";
|
|
59927
60140
|
try {
|
|
@@ -59974,128 +60187,77 @@ function selectOperation(value, sourceUrl, path, method) {
|
|
|
59974
60187
|
return config;
|
|
59975
60188
|
}
|
|
59976
60189
|
//#endregion
|
|
59977
|
-
//#region src/
|
|
59978
|
-
|
|
59979
|
-
|
|
59980
|
-
|
|
59981
|
-
|
|
59982
|
-
|
|
59983
|
-
}
|
|
59984
|
-
|
|
59985
|
-
|
|
59986
|
-
|
|
59987
|
-
|
|
59988
|
-
|
|
59989
|
-
|
|
59990
|
-
|
|
59991
|
-
|
|
59992
|
-
|
|
59993
|
-
|
|
59994
|
-
|
|
59995
|
-
|
|
59996
|
-
|
|
59997
|
-
|
|
59998
|
-
|
|
59999
|
-
|
|
60000
|
-
|
|
60001
|
-
|
|
60002
|
-
|
|
60003
|
-
|
|
60004
|
-
|
|
60005
|
-
|
|
60006
|
-
|
|
60007
|
-
|
|
60008
|
-
|
|
60009
|
-
|
|
60010
|
-
|
|
60011
|
-
|
|
60012
|
-
|
|
60013
|
-
|
|
60014
|
-
|
|
60015
|
-
|
|
60016
|
-
|
|
60017
|
-
|
|
60018
|
-
|
|
60019
|
-
|
|
60020
|
-
|
|
60021
|
-
|
|
60022
|
-
|
|
60190
|
+
//#region src/runtime/common/engineContract.ts
|
|
60191
|
+
/** v9 is a single contract: the Node compatibility builtins, `context.fetch`, and no `context.egress`. */
|
|
60192
|
+
var currentEngineContract = "open-flow-engine/v9";
|
|
60193
|
+
/** The published v8 Node compatibility contract, retained for existing Publications and Runs. */
|
|
60194
|
+
var nodejsEngineContract = "open-flow-engine/v8/nodejs-compat-v1";
|
|
60195
|
+
var platformSource = (contract) => `export const engineContract = ${JSON.stringify(contract)}
|
|
60196
|
+
export function identity(value) { return value }
|
|
60197
|
+
`;
|
|
60198
|
+
var v8Contract = {
|
|
60199
|
+
workflowTools: true,
|
|
60200
|
+
httpRequests: true,
|
|
60201
|
+
waitAutoContinue: true,
|
|
60202
|
+
webhookResponses: true,
|
|
60203
|
+
platformExports: /* @__PURE__ */ new Set(["engineContract", "identity"]),
|
|
60204
|
+
platformModule: "open-flow:platform",
|
|
60205
|
+
platformSource: platformSource("open-flow-engine/v8")
|
|
60206
|
+
};
|
|
60207
|
+
var nodejsContract = {
|
|
60208
|
+
...v8Contract,
|
|
60209
|
+
builtinModules: new Set([
|
|
60210
|
+
"assert",
|
|
60211
|
+
"assert/strict",
|
|
60212
|
+
"buffer",
|
|
60213
|
+
"console",
|
|
60214
|
+
"constants",
|
|
60215
|
+
"crypto",
|
|
60216
|
+
"events",
|
|
60217
|
+
"fs",
|
|
60218
|
+
"fs/promises",
|
|
60219
|
+
"os",
|
|
60220
|
+
"path",
|
|
60221
|
+
"path/posix",
|
|
60222
|
+
"process",
|
|
60223
|
+
"punycode",
|
|
60224
|
+
"querystring",
|
|
60225
|
+
"stream",
|
|
60226
|
+
"stream/promises",
|
|
60227
|
+
"stream/web",
|
|
60228
|
+
"string_decoder",
|
|
60229
|
+
"timers",
|
|
60230
|
+
"timers/promises",
|
|
60231
|
+
"url",
|
|
60232
|
+
"util",
|
|
60233
|
+
"zlib"
|
|
60234
|
+
].flatMap((name) => [name, `node:${name}`])),
|
|
60235
|
+
platformSource: platformSource(nodejsEngineContract)
|
|
60236
|
+
};
|
|
60237
|
+
var currentContract = {
|
|
60238
|
+
...nodejsContract,
|
|
60239
|
+
codeFetch: true,
|
|
60240
|
+
platformSource: platformSource(currentEngineContract)
|
|
60241
|
+
};
|
|
60242
|
+
function findEngineContract(contract) {
|
|
60243
|
+
if (contract == "open-flow-engine/v9") return currentContract;
|
|
60244
|
+
if (contract == "open-flow-engine/v8") return v8Contract;
|
|
60245
|
+
if (contract == "open-flow-engine/v8/nodejs-compat-v1") return nodejsContract;
|
|
60246
|
+
if (contract == "open-flow-engine/v7" || contract == "open-flow-engine/v7/nodejs-compat-v1") return {
|
|
60247
|
+
...contract.endsWith("/nodejs-compat-v1") ? nodejsContract : v8Contract,
|
|
60248
|
+
workflowTools: false,
|
|
60249
|
+
httpRequests: false,
|
|
60250
|
+
platformSource: platformSource(contract)
|
|
60251
|
+
};
|
|
60252
|
+
if (contract == "open-flow-engine/v6" || contract == "open-flow-engine/v6/nodejs-compat-v1") return {
|
|
60253
|
+
...contract == "open-flow-engine/v6" ? v8Contract : nodejsContract,
|
|
60254
|
+
workflowTools: false,
|
|
60255
|
+
httpRequests: false,
|
|
60256
|
+
waitAutoContinue: false,
|
|
60257
|
+
webhookResponses: false,
|
|
60258
|
+
platformSource: platformSource(contract)
|
|
60023
60259
|
};
|
|
60024
60260
|
}
|
|
60025
|
-
function workflowTask(contract, name = contract.name) {
|
|
60026
|
-
return {
|
|
60027
|
-
name,
|
|
60028
|
-
executor: {
|
|
60029
|
-
kind: "workflow",
|
|
60030
|
-
flowId: contract.flowId,
|
|
60031
|
-
revisionId: contract.revisionId
|
|
60032
|
-
},
|
|
60033
|
-
inputs: contract.inputs,
|
|
60034
|
-
outputs: contract.outputs ?? []
|
|
60035
|
-
};
|
|
60036
|
-
}
|
|
60037
|
-
object$1({
|
|
60038
|
-
version: literal(1),
|
|
60039
|
-
direction: _enum(["incoming", "outgoing"]),
|
|
60040
|
-
total: int().nonnegative(),
|
|
60041
|
-
nextOffset: int().nonnegative().optional(),
|
|
60042
|
-
references: array(object$1({
|
|
60043
|
-
flowId: string$1(),
|
|
60044
|
-
name: string$1().nullable(),
|
|
60045
|
-
available: boolean(),
|
|
60046
|
-
draft: boolean(),
|
|
60047
|
-
live: object$1({
|
|
60048
|
-
publicationId: string$1(),
|
|
60049
|
-
enabled: boolean()
|
|
60050
|
-
}).nullable()
|
|
60051
|
-
}))
|
|
60052
|
-
});
|
|
60053
|
-
function workflowCapability(name, target) {
|
|
60054
|
-
return {
|
|
60055
|
-
kind: "workflow",
|
|
60056
|
-
name,
|
|
60057
|
-
flowId: target.flowId,
|
|
60058
|
-
revisionId: "inputs" in target ? target.revisionId : "",
|
|
60059
|
-
inputs: "inputs" in target ? target.inputs : [],
|
|
60060
|
-
outputs: "inputs" in target ? target.outputs : null
|
|
60061
|
-
};
|
|
60062
|
-
}
|
|
60063
|
-
function workflowAgentTool(id, name, target, previous) {
|
|
60064
|
-
const capability = workflowCapability(name, target);
|
|
60065
|
-
return {
|
|
60066
|
-
...capability,
|
|
60067
|
-
id,
|
|
60068
|
-
description: previous?.description ?? target.name,
|
|
60069
|
-
approval: previous?.approval ?? false,
|
|
60070
|
-
inputs: capability.inputs.map((port) => Object.assign({}, port, { source: previous?.inputs.find((old) => old.handle == port.handle)?.source ?? { kind: "model" } }))
|
|
60071
|
-
};
|
|
60072
|
-
}
|
|
60073
|
-
`${JSON.stringify("open-flow-engine/v8")}`, new Set([
|
|
60074
|
-
"assert",
|
|
60075
|
-
"assert/strict",
|
|
60076
|
-
"buffer",
|
|
60077
|
-
"console",
|
|
60078
|
-
"constants",
|
|
60079
|
-
"crypto",
|
|
60080
|
-
"events",
|
|
60081
|
-
"fs",
|
|
60082
|
-
"fs/promises",
|
|
60083
|
-
"os",
|
|
60084
|
-
"path",
|
|
60085
|
-
"path/posix",
|
|
60086
|
-
"process",
|
|
60087
|
-
"punycode",
|
|
60088
|
-
"querystring",
|
|
60089
|
-
"stream",
|
|
60090
|
-
"stream/promises",
|
|
60091
|
-
"stream/web",
|
|
60092
|
-
"string_decoder",
|
|
60093
|
-
"timers",
|
|
60094
|
-
"timers/promises",
|
|
60095
|
-
"url",
|
|
60096
|
-
"util",
|
|
60097
|
-
"zlib"
|
|
60098
|
-
].flatMap((name) => [name, `node:${name}`])), `${JSON.stringify("open-flow-engine/v8/nodejs-compat-v1")}`;
|
|
60099
60261
|
//#endregion
|
|
60100
60262
|
//#region src/flow/common/agent.ts
|
|
60101
60263
|
var schema$1 = lazy$1(() => union$1([boolean(), strictObject({
|
|
@@ -69908,6 +70070,7 @@ function nodeIcon(node) {
|
|
|
69908
70070
|
if ("moduleId" in task) return ":carbon:code:";
|
|
69909
70071
|
if (task.executor.kind == "decision") return ":carbon:ml-model-reference:";
|
|
69910
70072
|
if (task.executor.kind == "workflow") return ":lucide-light:workflow:";
|
|
70073
|
+
if (task.executor.kind == "http-request") return ":lucide-light:globe:";
|
|
69911
70074
|
if (task.executor.kind == "openapi") return ":logos:openapi-icon:";
|
|
69912
70075
|
return task.executor.kind == "connector" ? ":carbon:connection-signal:" : ":carbon:machine-learning-model:";
|
|
69913
70076
|
}
|
|
@@ -70168,6 +70331,7 @@ function executorName(task, providerName, t) {
|
|
|
70168
70331
|
if (task.executor.kind == "agent") return t?.("addNode.agent") ?? "AI Agent";
|
|
70169
70332
|
if (task.executor.kind == "decision") return t?.("addNode.decision") ?? "AI Decision";
|
|
70170
70333
|
if (task.executor.kind == "workflow") return t?.("addNode.workflow") ?? "Call Workflow";
|
|
70334
|
+
if (task.executor.kind == "http-request") return `${t?.("httpRequest.title") ?? "HTTP Request"} · ${task.executor.method}`;
|
|
70171
70335
|
if (task.executor.kind == "openapi") return "OpenAPI";
|
|
70172
70336
|
if (task.executor.kind == "llm") return t?.("designer.executorLlm") ?? "LLM";
|
|
70173
70337
|
return `${t?.("designer.executorConnector") ?? "Connector"} · ${providerName ?? task.executor.action.split(".")[0]}`;
|
|
@@ -71408,9 +71572,9 @@ function CommentInspector({ title, content, disabled = false, readOnly, dark, on
|
|
|
71408
71572
|
}),
|
|
71409
71573
|
/* @__PURE__ */ jsx(TabsContent, {
|
|
71410
71574
|
value: "preview",
|
|
71411
|
-
className: "flex min-h-0 flex-1 flex-col rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-[var(--
|
|
71575
|
+
className: "flex min-h-0 flex-1 flex-col rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-[var(--_open-flow-comment-border)] bg-[var(--_open-flow-comment-surface)] p-2",
|
|
71412
71576
|
children: /* @__PURE__ */ jsx("div", {
|
|
71413
|
-
className: "min-h-0 flex-1 overflow-auto rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-[color-mix(in_srgb,var(--
|
|
71577
|
+
className: "min-h-0 flex-1 overflow-auto rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-[color-mix(in_srgb,var(--_open-flow-comment-border)_45%,transparent)] bg-[var(--_open-flow-comment-content)] p-3",
|
|
71414
71578
|
children: /* @__PURE__ */ jsx("div", {
|
|
71415
71579
|
className: "markdown-body min-w-0",
|
|
71416
71580
|
onDoubleClick: () => setSource(true),
|
|
@@ -72178,44 +72342,44 @@ var Input = m$4.forwardRef(function Input({ className, type, controlSize = "defa
|
|
|
72178
72342
|
});
|
|
72179
72343
|
});
|
|
72180
72344
|
var valueEditor_module_default = {
|
|
72181
|
-
root: "
|
|
72182
|
-
errorAnchor: "
|
|
72183
|
-
body: "
|
|
72184
|
-
valueTools: "
|
|
72185
|
-
options: "
|
|
72186
|
-
toolbar: "
|
|
72187
|
-
presence: "
|
|
72188
|
-
actions: "
|
|
72189
|
-
collection: "
|
|
72190
|
-
fieldName: "
|
|
72191
|
-
fieldType: "
|
|
72192
|
-
json: "
|
|
72193
|
-
description: "
|
|
72194
|
-
error: "
|
|
72195
|
-
summary: "
|
|
72196
|
-
summaryError: "
|
|
72197
|
-
srOnly: "
|
|
72198
|
-
option: "
|
|
72199
|
-
header: "
|
|
72200
|
-
leadingControl: "
|
|
72201
|
-
toggleControl: "
|
|
72202
|
-
valueAddon: "
|
|
72203
|
-
summaryText: "
|
|
72204
|
-
clearValue: "
|
|
72205
|
-
resetValue: "
|
|
72206
|
-
unsetValue: "
|
|
72207
|
-
arrayIndex: "
|
|
72208
|
-
nullValue: "
|
|
72209
|
-
nullChip: "
|
|
72210
|
-
collectionActions: "
|
|
72211
|
-
emptyObjectContent: "
|
|
72212
|
-
emptyObjectConstraint: "
|
|
72213
|
-
jsonCode: "
|
|
72214
|
-
emptyString: "
|
|
72215
|
-
booleanControl: "
|
|
72216
|
-
booleanIndicator: "
|
|
72217
|
-
objectNotice: "
|
|
72218
|
-
valuePrefix: "
|
|
72345
|
+
root: "valueEditor_root_4a4f1",
|
|
72346
|
+
errorAnchor: "valueEditor_errorAnchor_4a4f1",
|
|
72347
|
+
body: "valueEditor_body_4a4f1",
|
|
72348
|
+
valueTools: "valueEditor_valueTools_4a4f1",
|
|
72349
|
+
options: "valueEditor_options_4a4f1",
|
|
72350
|
+
toolbar: "valueEditor_toolbar_4a4f1",
|
|
72351
|
+
presence: "valueEditor_presence_4a4f1",
|
|
72352
|
+
actions: "valueEditor_actions_4a4f1",
|
|
72353
|
+
collection: "valueEditor_collection_4a4f1",
|
|
72354
|
+
fieldName: "valueEditor_fieldName_4a4f1",
|
|
72355
|
+
fieldType: "valueEditor_fieldType_4a4f1",
|
|
72356
|
+
json: "valueEditor_json_4a4f1",
|
|
72357
|
+
description: "valueEditor_description_4a4f1",
|
|
72358
|
+
error: "valueEditor_error_4a4f1",
|
|
72359
|
+
summary: "valueEditor_summary_4a4f1",
|
|
72360
|
+
summaryError: "valueEditor_summaryError_4a4f1",
|
|
72361
|
+
srOnly: "valueEditor_srOnly_4a4f1",
|
|
72362
|
+
option: "valueEditor_option_4a4f1",
|
|
72363
|
+
header: "valueEditor_header_4a4f1",
|
|
72364
|
+
leadingControl: "valueEditor_leadingControl_4a4f1",
|
|
72365
|
+
toggleControl: "valueEditor_toggleControl_4a4f1",
|
|
72366
|
+
valueAddon: "valueEditor_valueAddon_4a4f1",
|
|
72367
|
+
summaryText: "valueEditor_summaryText_4a4f1",
|
|
72368
|
+
clearValue: "valueEditor_clearValue_4a4f1",
|
|
72369
|
+
resetValue: "valueEditor_resetValue_4a4f1",
|
|
72370
|
+
unsetValue: "valueEditor_unsetValue_4a4f1",
|
|
72371
|
+
arrayIndex: "valueEditor_arrayIndex_4a4f1",
|
|
72372
|
+
nullValue: "valueEditor_nullValue_4a4f1",
|
|
72373
|
+
nullChip: "valueEditor_nullChip_4a4f1",
|
|
72374
|
+
collectionActions: "valueEditor_collectionActions_4a4f1",
|
|
72375
|
+
emptyObjectContent: "valueEditor_emptyObjectContent_4a4f1",
|
|
72376
|
+
emptyObjectConstraint: "valueEditor_emptyObjectConstraint_4a4f1",
|
|
72377
|
+
jsonCode: "valueEditor_jsonCode_4a4f1",
|
|
72378
|
+
emptyString: "valueEditor_emptyString_4a4f1",
|
|
72379
|
+
booleanControl: "valueEditor_booleanControl_4a4f1",
|
|
72380
|
+
booleanIndicator: "valueEditor_booleanIndicator_4a4f1",
|
|
72381
|
+
objectNotice: "valueEditor_objectNotice_4a4f1",
|
|
72382
|
+
valuePrefix: "valueEditor_valuePrefix_4a4f1"
|
|
72219
72383
|
};
|
|
72220
72384
|
//#endregion
|
|
72221
72385
|
//#region src/form/browser/fieldControl.tsx
|
|
@@ -72225,6 +72389,7 @@ function ValueEditorFeedback({ children, error }) {
|
|
|
72225
72389
|
const errorId = error == null ? void 0 : `${id}-error`;
|
|
72226
72390
|
return /* @__PURE__ */ jsxs("div", {
|
|
72227
72391
|
className: valueEditor_module_default.errorAnchor,
|
|
72392
|
+
"data-feedback": error != null || void 0,
|
|
72228
72393
|
children: [children(errorId), error != null && /* @__PURE__ */ jsx("div", {
|
|
72229
72394
|
id: errorId,
|
|
72230
72395
|
className: valueEditor_module_default.error,
|
|
@@ -72522,6 +72687,103 @@ function Switch({ className, size = "default", ...props }) {
|
|
|
72522
72687
|
});
|
|
72523
72688
|
}
|
|
72524
72689
|
//#endregion
|
|
72690
|
+
//#region src/workflow/common/workflow.ts
|
|
72691
|
+
var portSchema = object$2({
|
|
72692
|
+
handle: string$1().min(1),
|
|
72693
|
+
jsonSchema: json$4(),
|
|
72694
|
+
nullable: boolean(),
|
|
72695
|
+
description: string$1().optional()
|
|
72696
|
+
});
|
|
72697
|
+
strictObject({
|
|
72698
|
+
inputs: array(portSchema).nullable(),
|
|
72699
|
+
outputs: array(portSchema).nullable()
|
|
72700
|
+
});
|
|
72701
|
+
function comparablePorts(value) {
|
|
72702
|
+
return value == null ? null : value.map(({ handle, jsonSchema, nullable }) => ({
|
|
72703
|
+
handle,
|
|
72704
|
+
jsonSchema,
|
|
72705
|
+
nullable
|
|
72706
|
+
})).toSorted((a, b) => a.handle < b.handle ? -1 : a.handle > b.handle ? 1 : 0);
|
|
72707
|
+
}
|
|
72708
|
+
function sameWorkflowInterface(left, right) {
|
|
72709
|
+
return dequal$1(comparablePorts(left.inputs), comparablePorts(right.inputs)) && dequal$1(comparablePorts(left.outputs), comparablePorts(right.outputs));
|
|
72710
|
+
}
|
|
72711
|
+
object$2({
|
|
72712
|
+
version: literal(1),
|
|
72713
|
+
flowId: string$1().min(1),
|
|
72714
|
+
name: string$1(),
|
|
72715
|
+
revisionId: string$1().min(1),
|
|
72716
|
+
publicationId: string$1().min(1),
|
|
72717
|
+
inputs: array(portSchema),
|
|
72718
|
+
outputs: array(portSchema).nullable()
|
|
72719
|
+
});
|
|
72720
|
+
function workflowCandidateGroup(candidate) {
|
|
72721
|
+
return candidate.problem == null ? "published" : candidate.problem == "missing-start" ? "missingStart" : "other";
|
|
72722
|
+
}
|
|
72723
|
+
/** A selected target is durable even before its callable interface is available. */
|
|
72724
|
+
function workflowSelectionTask(candidate, contract, previous) {
|
|
72725
|
+
if (contract != null) return workflowTask(contract, candidate.name);
|
|
72726
|
+
if (previous?.executor.kind == "workflow" && previous.executor.flowId == candidate.flowId) return previous;
|
|
72727
|
+
return {
|
|
72728
|
+
name: candidate.name,
|
|
72729
|
+
inputs: [],
|
|
72730
|
+
outputs: [],
|
|
72731
|
+
executor: {
|
|
72732
|
+
kind: "workflow",
|
|
72733
|
+
flowId: candidate.flowId,
|
|
72734
|
+
revisionId: ""
|
|
72735
|
+
}
|
|
72736
|
+
};
|
|
72737
|
+
}
|
|
72738
|
+
function workflowTask(contract, name = contract.name) {
|
|
72739
|
+
return {
|
|
72740
|
+
name,
|
|
72741
|
+
executor: {
|
|
72742
|
+
kind: "workflow",
|
|
72743
|
+
flowId: contract.flowId,
|
|
72744
|
+
revisionId: contract.revisionId
|
|
72745
|
+
},
|
|
72746
|
+
inputs: contract.inputs,
|
|
72747
|
+
outputs: contract.outputs ?? []
|
|
72748
|
+
};
|
|
72749
|
+
}
|
|
72750
|
+
object$2({
|
|
72751
|
+
version: literal(1),
|
|
72752
|
+
direction: _enum(["incoming", "outgoing"]),
|
|
72753
|
+
total: int().nonnegative(),
|
|
72754
|
+
nextOffset: int().nonnegative().optional(),
|
|
72755
|
+
references: array(object$2({
|
|
72756
|
+
flowId: string$1(),
|
|
72757
|
+
name: string$1().nullable(),
|
|
72758
|
+
available: boolean(),
|
|
72759
|
+
draft: boolean(),
|
|
72760
|
+
live: object$2({
|
|
72761
|
+
publicationId: string$1(),
|
|
72762
|
+
enabled: boolean()
|
|
72763
|
+
}).nullable()
|
|
72764
|
+
}))
|
|
72765
|
+
});
|
|
72766
|
+
function workflowCapability(name, target) {
|
|
72767
|
+
return {
|
|
72768
|
+
kind: "workflow",
|
|
72769
|
+
name,
|
|
72770
|
+
flowId: target.flowId,
|
|
72771
|
+
revisionId: "inputs" in target ? target.revisionId : "",
|
|
72772
|
+
inputs: "inputs" in target ? target.inputs : [],
|
|
72773
|
+
outputs: "inputs" in target ? target.outputs : null
|
|
72774
|
+
};
|
|
72775
|
+
}
|
|
72776
|
+
function workflowAgentTool(id, name, target, previous) {
|
|
72777
|
+
const capability = workflowCapability(name, target);
|
|
72778
|
+
return {
|
|
72779
|
+
...capability,
|
|
72780
|
+
id,
|
|
72781
|
+
description: previous?.description ?? target.name,
|
|
72782
|
+
approval: previous?.approval ?? false,
|
|
72783
|
+
inputs: capability.inputs.map((port) => Object.assign({}, port, { source: previous?.inputs.find((old) => old.handle == port.handle)?.source ?? { kind: "model" } }))
|
|
72784
|
+
};
|
|
72785
|
+
}
|
|
72786
|
+
//#endregion
|
|
72525
72787
|
//#region src/control/common/errors.ts
|
|
72526
72788
|
var controlErrorCode = {
|
|
72527
72789
|
authenticationRequired: "authentication.required",
|
|
@@ -72631,9 +72893,9 @@ var authoringOpenApiSchema = strictObject({
|
|
|
72631
72893
|
});
|
|
72632
72894
|
//#endregion
|
|
72633
72895
|
//#region src/control/common/authoringSchema.ts
|
|
72634
|
-
var id$
|
|
72896
|
+
var id$2 = string$1().min(1);
|
|
72635
72897
|
var json$1 = json$4();
|
|
72636
|
-
var patch = record$3(id$
|
|
72898
|
+
var patch = record$3(id$2, json$1);
|
|
72637
72899
|
var type$3 = _enum([
|
|
72638
72900
|
"start",
|
|
72639
72901
|
"outputs",
|
|
@@ -72650,16 +72912,17 @@ var type$3 = _enum([
|
|
|
72650
72912
|
"llm",
|
|
72651
72913
|
"decision",
|
|
72652
72914
|
"openapi",
|
|
72915
|
+
"http-request",
|
|
72653
72916
|
"condition",
|
|
72654
72917
|
"value",
|
|
72655
72918
|
"wait",
|
|
72656
72919
|
"approval"
|
|
72657
72920
|
]);
|
|
72658
|
-
var referenceSchema = id$
|
|
72921
|
+
var referenceSchema = id$2.describe("An existing node reference returned by read/search, or $alias for a preceding node.add in this edit batch. For node.add.as \"step\", reference \"$step\", never bare \"step\". Aliases are local to one batch.");
|
|
72659
72922
|
var output = strictObject({
|
|
72660
72923
|
kind: literal("output"),
|
|
72661
72924
|
node: referenceSchema,
|
|
72662
|
-
port: id$
|
|
72925
|
+
port: id$2.optional().describe("Omit for a node with one output. For multiple outputs, choose a name from node details."),
|
|
72663
72926
|
field: string$1().optional()
|
|
72664
72927
|
});
|
|
72665
72928
|
var system = strictObject({
|
|
@@ -72670,7 +72933,7 @@ var system = strictObject({
|
|
|
72670
72933
|
});
|
|
72671
72934
|
var variable = strictObject({
|
|
72672
72935
|
kind: literal("variable"),
|
|
72673
|
-
name: id$
|
|
72936
|
+
name: id$2
|
|
72674
72937
|
});
|
|
72675
72938
|
var authoringSourceSchema = union$1([
|
|
72676
72939
|
output,
|
|
@@ -72701,7 +72964,7 @@ var operand = union$1([
|
|
|
72701
72964
|
system,
|
|
72702
72965
|
variable
|
|
72703
72966
|
]);
|
|
72704
|
-
var toolSources = record$3(id$
|
|
72967
|
+
var toolSources = record$3(id$2, agentToolFields.inputs.element.shape.source).optional().describe("Tool input sources by name. The platform resolves types from the selected Action or workflow. New inputs default to model-provided; omitted existing sources are preserved.");
|
|
72705
72968
|
var agentTool$1 = union$1([workflowAgentToolSchema.omit({
|
|
72706
72969
|
id: true,
|
|
72707
72970
|
inputs: true,
|
|
@@ -72711,20 +72974,24 @@ var agentTool$1 = union$1([workflowAgentToolSchema.omit({
|
|
|
72711
72974
|
id: true,
|
|
72712
72975
|
inputs: true
|
|
72713
72976
|
}).extend({ inputs: toolSources }).strict()]);
|
|
72714
|
-
var authoringCapabilities = array(union$1([
|
|
72715
|
-
|
|
72716
|
-
|
|
72717
|
-
|
|
72718
|
-
|
|
72977
|
+
var authoringCapabilities = array(union$1([
|
|
72978
|
+
connectorCapabilitySchema,
|
|
72979
|
+
strictObject({
|
|
72980
|
+
kind: literal("workflow"),
|
|
72981
|
+
name: id$2,
|
|
72982
|
+
flowId: id$2
|
|
72983
|
+
}),
|
|
72984
|
+
httpCapabilitySchema
|
|
72985
|
+
]));
|
|
72719
72986
|
var notification = strictObject({
|
|
72720
72987
|
...authoringDefinitionSchemas.connector.shape,
|
|
72721
|
-
messageHandle: id$
|
|
72722
|
-
inputs: record$3(id$
|
|
72988
|
+
messageHandle: id$2,
|
|
72989
|
+
inputs: record$3(id$2, union$1([strictObject({
|
|
72723
72990
|
kind: literal("value"),
|
|
72724
72991
|
value: json$1
|
|
72725
72992
|
}), strictObject({
|
|
72726
72993
|
kind: literal("input"),
|
|
72727
|
-
input: id$
|
|
72994
|
+
input: id$2
|
|
72728
72995
|
})]))
|
|
72729
72996
|
});
|
|
72730
72997
|
var field = strictObject({
|
|
@@ -72732,14 +72999,14 @@ var field = strictObject({
|
|
|
72732
72999
|
nullable: boolean().optional(),
|
|
72733
73000
|
description: string$1().optional()
|
|
72734
73001
|
});
|
|
72735
|
-
var inputFields = record$3(id$
|
|
72736
|
-
var flowInputFields = record$3(id$
|
|
73002
|
+
var inputFields = record$3(id$2, field.extend({ default: json$1.optional() })).describe("Optional business input constraints by name. A binding to a new Code, Agent, LLM, Wait or Approval input automatically declares an input accepting any JSON. Existing constraints are preserved. Omitted schema accepts any JSON; omitted nullable is true. Use default for inherited values; input.set supplies data.");
|
|
73003
|
+
var flowInputFields = record$3(id$2, field).describe("Workflow input definitions by name. Omitted schema accepts any JSON; omitted nullable is true. No defaults. Supply call values as trigger.outputs.");
|
|
72737
73004
|
var flowOutputFields = flowInputFields.describe("Workflow output definitions by name. Omitted schema accepts any JSON; omitted nullable is true. No defaults. Set values on the Outputs node with input.set or node.add.inputs.");
|
|
72738
|
-
record$3(id$
|
|
73005
|
+
record$3(id$2, field.extend({
|
|
72739
73006
|
schema: json$1,
|
|
72740
73007
|
nullable: boolean()
|
|
72741
73008
|
}));
|
|
72742
|
-
var outputFields = record$3(id$
|
|
73009
|
+
var outputFields = record$3(id$2, field).describe("Code return fields by name. Omitted schema accepts any JSON; omitted nullable is true.");
|
|
72743
73010
|
var expression = strictObject({
|
|
72744
73011
|
left: operand,
|
|
72745
73012
|
operator: authoringDefinitionSchemas.condition.shape.cases.element.shape.groups.element.shape.expressions.element.shape.operator,
|
|
@@ -72753,20 +73020,20 @@ var when = union$1([
|
|
|
72753
73020
|
]);
|
|
72754
73021
|
var authoringConfigurations = {
|
|
72755
73022
|
"webhook-response": strictObject({}),
|
|
72756
|
-
"workflow": strictObject({ flowId: id$
|
|
73023
|
+
"workflow": strictObject({ flowId: id$2 }),
|
|
72757
73024
|
"start": strictObject({ inputDefs: flowInputFields.default({}) }),
|
|
72758
73025
|
"outputs": strictObject({ outputDefs: flowOutputFields.default({}) }),
|
|
72759
|
-
"error": strictObject({ sourceFlowIds: array(id$
|
|
73026
|
+
"error": strictObject({ sourceFlowIds: array(id$2).optional() }),
|
|
72760
73027
|
"webhook": authoringDefinitionSchemas.webhook.omit({ bodyFields: true }).extend({ body: inputFields }).strict(),
|
|
72761
73028
|
"cron": strictObject({ schedule: authoringDefinitionSchemas.schedule }),
|
|
72762
73029
|
"poll": strictObject({
|
|
72763
|
-
key: id$
|
|
72764
|
-
connectionId: id$
|
|
73030
|
+
key: id$2,
|
|
73031
|
+
connectionId: id$2.optional(),
|
|
72765
73032
|
schedule: authoringDefinitionSchemas.schedule
|
|
72766
73033
|
}),
|
|
72767
73034
|
"integration": strictObject({
|
|
72768
|
-
key: id$
|
|
72769
|
-
connectionId: id$
|
|
73035
|
+
key: id$2,
|
|
73036
|
+
connectionId: id$2.optional()
|
|
72770
73037
|
}),
|
|
72771
73038
|
"code": strictObject({
|
|
72772
73039
|
inputs: inputFields,
|
|
@@ -72775,6 +73042,7 @@ var authoringConfigurations = {
|
|
|
72775
73042
|
}),
|
|
72776
73043
|
"connector": authoringDefinitionSchemas.connector.omit({ outputMode: true }).strict(),
|
|
72777
73044
|
"openapi": authoringOpenApiSchema,
|
|
73045
|
+
"http-request": httpRequestConfigSchema,
|
|
72778
73046
|
"agent": authoringDefinitionSchemas.agent.omit({
|
|
72779
73047
|
prompt: true,
|
|
72780
73048
|
tools: true
|
|
@@ -72789,7 +73057,7 @@ var authoringConfigurations = {
|
|
|
72789
73057
|
"condition": strictObject({
|
|
72790
73058
|
match: _enum(["first", "all"]),
|
|
72791
73059
|
branches: array(strictObject({
|
|
72792
|
-
name: id$
|
|
73060
|
+
name: id$2,
|
|
72793
73061
|
description: string$1().optional(),
|
|
72794
73062
|
when
|
|
72795
73063
|
}))
|
|
@@ -72806,7 +73074,7 @@ var authoringConfigurations = {
|
|
|
72806
73074
|
};
|
|
72807
73075
|
var updates = strictObject({
|
|
72808
73076
|
onError: _enum(["stop", "error"]).optional(),
|
|
72809
|
-
name: id$
|
|
73077
|
+
name: id$2.optional(),
|
|
72810
73078
|
description: string$1().optional(),
|
|
72811
73079
|
icon: string$1().optional(),
|
|
72812
73080
|
maxExecutions: int().positive().optional(),
|
|
@@ -72817,13 +73085,13 @@ var updates = strictObject({
|
|
|
72817
73085
|
var authoringEditSchema = discriminatedUnion("op", [
|
|
72818
73086
|
strictObject({
|
|
72819
73087
|
op: literal("node.add"),
|
|
72820
|
-
as: id$
|
|
73088
|
+
as: id$2.regex(/^[A-Za-z][\w-]*$/).describe("Unique batch-local alias without the $ prefix. Later edits must reference this new node as $alias; the bare alias is not its node ID."),
|
|
72821
73089
|
type: type$3,
|
|
72822
|
-
name: id$
|
|
73090
|
+
name: id$2,
|
|
72823
73091
|
onError: _enum(["stop", "error"]).optional(),
|
|
72824
73092
|
retry: retryConfigurationSchema.optional(),
|
|
72825
73093
|
config: patch.optional(),
|
|
72826
|
-
inputs: record$3(id$
|
|
73094
|
+
inputs: record$3(id$2, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
|
|
72827
73095
|
code: string$1().optional(),
|
|
72828
73096
|
prompt: string$1().optional()
|
|
72829
73097
|
}),
|
|
@@ -72831,12 +73099,12 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
72831
73099
|
op: literal("node.update"),
|
|
72832
73100
|
node: referenceSchema,
|
|
72833
73101
|
set: updates.optional(),
|
|
72834
|
-
clear: array(array(id$
|
|
73102
|
+
clear: array(array(id$2).min(1)).optional()
|
|
72835
73103
|
}),
|
|
72836
73104
|
strictObject({
|
|
72837
73105
|
op: literal("node.refresh"),
|
|
72838
73106
|
node: referenceSchema,
|
|
72839
|
-
tool: id$
|
|
73107
|
+
tool: id$2.optional().describe("Name of a workflow tool on an Agent or Code node. Omit for a Call Workflow node.")
|
|
72840
73108
|
}),
|
|
72841
73109
|
strictObject({
|
|
72842
73110
|
op: literal("node.remove"),
|
|
@@ -72845,20 +73113,20 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
72845
73113
|
strictObject({
|
|
72846
73114
|
op: literal("input.set"),
|
|
72847
73115
|
node: referenceSchema,
|
|
72848
|
-
input: id$
|
|
73116
|
+
input: id$2,
|
|
72849
73117
|
source: authoringSourceSchema
|
|
72850
73118
|
}),
|
|
72851
73119
|
strictObject({
|
|
72852
73120
|
op: _enum(["edge.connect", "edge.disconnect"]),
|
|
72853
73121
|
source: referenceSchema,
|
|
72854
73122
|
target: referenceSchema,
|
|
72855
|
-
branch: id$
|
|
73123
|
+
branch: id$2.optional()
|
|
72856
73124
|
}),
|
|
72857
73125
|
strictObject({
|
|
72858
73126
|
op: literal("text.edit"),
|
|
72859
73127
|
node: referenceSchema,
|
|
72860
73128
|
field: _enum(["code", "prompt"]),
|
|
72861
|
-
oldText: id$
|
|
73129
|
+
oldText: id$2,
|
|
72862
73130
|
newText: string$1()
|
|
72863
73131
|
}),
|
|
72864
73132
|
strictObject({
|
|
@@ -72869,15 +73137,15 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
72869
73137
|
})
|
|
72870
73138
|
]);
|
|
72871
73139
|
strictObject({
|
|
72872
|
-
baseRevision: id$
|
|
72873
|
-
requestId: id$
|
|
73140
|
+
baseRevision: id$2,
|
|
73141
|
+
requestId: id$2.max(256),
|
|
72874
73142
|
edits: array(authoringEditSchema).min(1).max(1e3)
|
|
72875
73143
|
});
|
|
72876
73144
|
strictObject({
|
|
72877
|
-
revision: id$
|
|
72878
|
-
nodes: array(id$
|
|
73145
|
+
revision: id$2.optional().describe("Fixed revision from a previous read; omit to read the current draft."),
|
|
73146
|
+
nodes: array(id$2).min(1).max(100).optional().describe("Node references to read in one batch. Mutually exclusive with text. Long texts return metadata."),
|
|
72879
73147
|
text: strictObject({
|
|
72880
|
-
node: id$
|
|
73148
|
+
node: id$2,
|
|
72881
73149
|
field: _enum(["code", "prompt"]),
|
|
72882
73150
|
start: int().positive().default(1),
|
|
72883
73151
|
lines: int().min(1).max(200).default(80)
|
|
@@ -72886,44 +73154,45 @@ strictObject({
|
|
|
72886
73154
|
not: { required: ["nodes", "text"] },
|
|
72887
73155
|
description: "Omit nodes and text for an outline; provide nodes for details, or text for an excerpt."
|
|
72888
73156
|
});
|
|
72889
|
-
strictObject({ revisionId: id$
|
|
73157
|
+
strictObject({ revisionId: id$2 });
|
|
72890
73158
|
strictObject({
|
|
72891
|
-
revision: id$
|
|
72892
|
-
query: id$
|
|
73159
|
+
revision: id$2.optional(),
|
|
73160
|
+
query: id$2.max(1e3),
|
|
72893
73161
|
type: type$3.optional(),
|
|
72894
73162
|
offset: int().nonnegative().default(0),
|
|
72895
73163
|
limit: int().min(1).max(100).default(20)
|
|
72896
73164
|
});
|
|
72897
73165
|
strictObject({
|
|
72898
73166
|
type: type$3.optional(),
|
|
72899
|
-
action: id$
|
|
73167
|
+
action: id$2.optional()
|
|
72900
73168
|
}).refine((v) => v.type == null || v.action == null, "Choose type or action.");
|
|
72901
|
-
|
|
72902
|
-
|
|
73169
|
+
`${[...findEngineContract(currentEngineContract).builtinModules].filter((name) => !name.startsWith("node:")).join(", ")}`;
|
|
73170
|
+
var authoringDiagnosticSchema = object$2({
|
|
73171
|
+
code: id$2,
|
|
72903
73172
|
message: string$1(),
|
|
72904
|
-
nodes: array(id$
|
|
73173
|
+
nodes: array(id$2),
|
|
72905
73174
|
field: string$1().optional(),
|
|
72906
73175
|
line: number().optional(),
|
|
72907
73176
|
column: number().optional()
|
|
72908
73177
|
});
|
|
72909
|
-
object$
|
|
72910
|
-
flowId: id$
|
|
72911
|
-
revisionId: id$
|
|
73178
|
+
object$2({
|
|
73179
|
+
flowId: id$2,
|
|
73180
|
+
revisionId: id$2,
|
|
72912
73181
|
valid: boolean(),
|
|
72913
73182
|
diagnostics: array(authoringDiagnosticSchema),
|
|
72914
73183
|
version: literal(1)
|
|
72915
73184
|
});
|
|
72916
|
-
object$
|
|
72917
|
-
flowId: id$
|
|
73185
|
+
object$2({
|
|
73186
|
+
flowId: id$2,
|
|
72918
73187
|
saved: literal(true),
|
|
72919
|
-
revision: id$
|
|
72920
|
-
nodes: record$3(id$
|
|
72921
|
-
changes: array(object$
|
|
73188
|
+
revision: id$2,
|
|
73189
|
+
nodes: record$3(id$2, id$2),
|
|
73190
|
+
changes: array(object$2({
|
|
72922
73191
|
index: int(),
|
|
72923
|
-
op: id$
|
|
72924
|
-
node: id$
|
|
73192
|
+
op: id$2,
|
|
73193
|
+
node: id$2.optional()
|
|
72925
73194
|
})),
|
|
72926
|
-
validation: object$
|
|
73195
|
+
validation: object$2({
|
|
72927
73196
|
status: _enum([
|
|
72928
73197
|
"valid",
|
|
72929
73198
|
"invalid",
|
|
@@ -72933,23 +73202,23 @@ object$1({
|
|
|
72933
73202
|
}),
|
|
72934
73203
|
version: literal(1)
|
|
72935
73204
|
});
|
|
72936
|
-
object$
|
|
72937
|
-
flowId: id$
|
|
72938
|
-
revision: id$
|
|
72939
|
-
data: object$
|
|
73205
|
+
object$2({
|
|
73206
|
+
flowId: id$2,
|
|
73207
|
+
revision: id$2,
|
|
73208
|
+
data: object$2({
|
|
72940
73209
|
nodes: array(record$3(string$1(), json$1)).optional(),
|
|
72941
73210
|
edges: array(json$1).optional(),
|
|
72942
73211
|
text: record$3(string$1(), json$1).optional()
|
|
72943
73212
|
}),
|
|
72944
73213
|
version: literal(1)
|
|
72945
73214
|
});
|
|
72946
|
-
object$
|
|
72947
|
-
flowId: id$
|
|
72948
|
-
revision: id$
|
|
72949
|
-
data: object$
|
|
72950
|
-
matches: array(object$
|
|
72951
|
-
node: id$
|
|
72952
|
-
field: id$
|
|
73215
|
+
object$2({
|
|
73216
|
+
flowId: id$2,
|
|
73217
|
+
revision: id$2,
|
|
73218
|
+
data: object$2({
|
|
73219
|
+
matches: array(object$2({
|
|
73220
|
+
node: id$2.optional(),
|
|
73221
|
+
field: id$2,
|
|
72953
73222
|
line: int().optional(),
|
|
72954
73223
|
excerpt: string$1()
|
|
72955
73224
|
})),
|
|
@@ -73022,48 +73291,48 @@ var metadata = {
|
|
|
73022
73291
|
var binding = unknown().transform(triggerBinding);
|
|
73023
73292
|
var provider = {
|
|
73024
73293
|
provider: string$1().min(1),
|
|
73025
|
-
inputs: record$3(string$1(), discriminatedUnion("kind", [object$
|
|
73294
|
+
inputs: record$3(string$1(), discriminatedUnion("kind", [object$2({
|
|
73026
73295
|
kind: literal("value"),
|
|
73027
73296
|
value: json$4()
|
|
73028
|
-
}), object$
|
|
73297
|
+
}), object$2({ kind: literal("unset") })]))
|
|
73029
73298
|
};
|
|
73030
73299
|
discriminatedUnion("type", [
|
|
73031
|
-
object$
|
|
73300
|
+
object$2({
|
|
73032
73301
|
...metadata,
|
|
73033
73302
|
type: literal("start"),
|
|
73034
73303
|
config: authoringConfigurations.start
|
|
73035
73304
|
}),
|
|
73036
|
-
object$
|
|
73305
|
+
object$2({
|
|
73037
73306
|
...metadata,
|
|
73038
73307
|
type: literal("manual"),
|
|
73039
|
-
config: object$
|
|
73308
|
+
config: object$2({})
|
|
73040
73309
|
}),
|
|
73041
|
-
object$
|
|
73310
|
+
object$2({
|
|
73042
73311
|
...metadata,
|
|
73043
73312
|
type: literal("webhook"),
|
|
73044
73313
|
config: authoringConfigurations.webhook,
|
|
73045
73314
|
binding
|
|
73046
73315
|
}),
|
|
73047
|
-
object$
|
|
73316
|
+
object$2({
|
|
73048
73317
|
...metadata,
|
|
73049
73318
|
type: literal("cron"),
|
|
73050
73319
|
config: authoringConfigurations.cron,
|
|
73051
73320
|
binding
|
|
73052
73321
|
}),
|
|
73053
|
-
object$
|
|
73322
|
+
object$2({
|
|
73054
73323
|
...metadata,
|
|
73055
73324
|
type: literal("error"),
|
|
73056
73325
|
config: authoringConfigurations.error,
|
|
73057
73326
|
binding
|
|
73058
73327
|
}),
|
|
73059
|
-
object$
|
|
73328
|
+
object$2({
|
|
73060
73329
|
...metadata,
|
|
73061
73330
|
...provider,
|
|
73062
73331
|
type: literal("poll"),
|
|
73063
73332
|
config: authoringConfigurations.poll,
|
|
73064
73333
|
binding
|
|
73065
73334
|
}),
|
|
73066
|
-
object$
|
|
73335
|
+
object$2({
|
|
73067
73336
|
...metadata,
|
|
73068
73337
|
...provider,
|
|
73069
73338
|
type: literal("integration"),
|
|
@@ -73076,11 +73345,35 @@ discriminatedUnion("kind", [strictObject({ kind: literal("admin-delegation") }),
|
|
|
73076
73345
|
ruleId: string$1().min(1).nullable()
|
|
73077
73346
|
})]);
|
|
73078
73347
|
//#endregion
|
|
73348
|
+
//#region src/event-source/common/view.ts
|
|
73349
|
+
var id$1 = string$1().min(1).max(256);
|
|
73350
|
+
/** Public projection of a source that Connector validates and Open Flow exposes unchanged. */
|
|
73351
|
+
var eventSourceViewSchema = object$2({
|
|
73352
|
+
appId: id$1.nullable(),
|
|
73353
|
+
workspaceId: id$1.optional(),
|
|
73354
|
+
installationId: id$1.optional(),
|
|
73355
|
+
organizationId: id$1.optional(),
|
|
73356
|
+
projectId: id$1.optional(),
|
|
73357
|
+
projectKey: id$1.optional(),
|
|
73358
|
+
subscriptionStatus: _enum([
|
|
73359
|
+
"idle",
|
|
73360
|
+
"pending",
|
|
73361
|
+
"ready",
|
|
73362
|
+
"error"
|
|
73363
|
+
]).optional(),
|
|
73364
|
+
lastError: string$1().optional(),
|
|
73365
|
+
signingSecretConfigured: boolean().optional(),
|
|
73366
|
+
manageSubscriptions: boolean().nullable(),
|
|
73367
|
+
verificationTokenConfigured: boolean().nullable(),
|
|
73368
|
+
encryptKeyConfigured: boolean().nullable(),
|
|
73369
|
+
verifiedAt: string$1().nullable()
|
|
73370
|
+
});
|
|
73371
|
+
//#endregion
|
|
73079
73372
|
//#region src/control/common/eventSources.ts
|
|
73080
73373
|
var id = string$1().min(1).max(256);
|
|
73081
73374
|
var eventType = string$1().regex(/^[a-z][a-z0-9_.:]{0,127}$/);
|
|
73082
73375
|
var name$1 = string$1().trim().min(1).max(128);
|
|
73083
|
-
object$
|
|
73376
|
+
object$2({
|
|
73084
73377
|
version: literal(1),
|
|
73085
73378
|
sourceId: id,
|
|
73086
73379
|
revision: int().positive(),
|
|
@@ -73095,50 +73388,19 @@ object$1({
|
|
|
73095
73388
|
"fireflies",
|
|
73096
73389
|
"jira"
|
|
73097
73390
|
]),
|
|
73098
|
-
|
|
73099
|
-
workspaceId: id.optional(),
|
|
73100
|
-
installationId: id.optional(),
|
|
73101
|
-
organizationId: id.optional(),
|
|
73102
|
-
projectId: id.optional(),
|
|
73103
|
-
projectKey: id.optional(),
|
|
73104
|
-
subscriptionStatus: _enum([
|
|
73105
|
-
"idle",
|
|
73106
|
-
"pending",
|
|
73107
|
-
"ready",
|
|
73108
|
-
"error"
|
|
73109
|
-
]).optional(),
|
|
73110
|
-
lastError: string$1().optional(),
|
|
73111
|
-
signingSecretConfigured: boolean().optional(),
|
|
73391
|
+
...eventSourceViewSchema.shape,
|
|
73112
73392
|
connectionId: id,
|
|
73113
73393
|
teamId: id.nullable(),
|
|
73114
73394
|
enabled: boolean(),
|
|
73115
73395
|
eventTypes: array(eventType),
|
|
73116
|
-
manageSubscriptions: boolean().nullable(),
|
|
73117
|
-
verificationTokenConfigured: boolean().nullable(),
|
|
73118
|
-
encryptKeyConfigured: boolean().nullable(),
|
|
73119
73396
|
endpointUrl: string$1().nullable(),
|
|
73120
|
-
verifiedAt: string$1().nullable(),
|
|
73121
73397
|
lastReceivedAt: string$1().nullable(),
|
|
73122
73398
|
updatedAt: string$1(),
|
|
73123
|
-
consumers: array(object$
|
|
73399
|
+
consumers: array(object$2({
|
|
73124
73400
|
flowId: id,
|
|
73125
73401
|
flowName: string$1(),
|
|
73126
73402
|
triggerNodeId: id
|
|
73127
73403
|
}))
|
|
73128
|
-
}).pick({
|
|
73129
|
-
appId: true,
|
|
73130
|
-
workspaceId: true,
|
|
73131
|
-
installationId: true,
|
|
73132
|
-
organizationId: true,
|
|
73133
|
-
projectId: true,
|
|
73134
|
-
projectKey: true,
|
|
73135
|
-
subscriptionStatus: true,
|
|
73136
|
-
lastError: true,
|
|
73137
|
-
signingSecretConfigured: true,
|
|
73138
|
-
manageSubscriptions: true,
|
|
73139
|
-
verificationTokenConfigured: true,
|
|
73140
|
-
encryptKeyConfigured: true,
|
|
73141
|
-
verifiedAt: true
|
|
73142
73404
|
});
|
|
73143
73405
|
strictObject({
|
|
73144
73406
|
pointer: string$1().max(4096).default(""),
|
|
@@ -73149,7 +73411,7 @@ strictObject({
|
|
|
73149
73411
|
//#endregion
|
|
73150
73412
|
//#region src/control/common/results.ts
|
|
73151
73413
|
var json = json$4();
|
|
73152
|
-
var entry = object$
|
|
73414
|
+
var entry = object$2({
|
|
73153
73415
|
pointer: string$1(),
|
|
73154
73416
|
type: _enum([
|
|
73155
73417
|
"object",
|
|
@@ -73168,17 +73430,17 @@ var page$1 = entry.extend({
|
|
|
73168
73430
|
nextOffset: number().int().positive().optional(),
|
|
73169
73431
|
entries: array(entry).optional()
|
|
73170
73432
|
});
|
|
73171
|
-
var result = object$
|
|
73433
|
+
var result = object$2({
|
|
73172
73434
|
resultId: string$1().min(1),
|
|
73173
73435
|
callId: string$1().min(1),
|
|
73174
73436
|
toolId: string$1().min(1),
|
|
73175
73437
|
source: discriminatedUnion("kind", [
|
|
73176
|
-
object$
|
|
73438
|
+
object$2({
|
|
73177
73439
|
kind: literal("connector"),
|
|
73178
73440
|
action: string$1().min(1)
|
|
73179
73441
|
}),
|
|
73180
|
-
object$
|
|
73181
|
-
object$
|
|
73442
|
+
object$2({ kind: literal("code") }),
|
|
73443
|
+
object$2({
|
|
73182
73444
|
kind: literal("workflow"),
|
|
73183
73445
|
flowId: string$1().min(1)
|
|
73184
73446
|
})
|
|
@@ -73187,13 +73449,13 @@ var result = object$1({
|
|
|
73187
73449
|
digest: string$1().regex(/^[a-f0-9]{64}$/),
|
|
73188
73450
|
createdAt: string$1().datetime()
|
|
73189
73451
|
});
|
|
73190
|
-
object$
|
|
73452
|
+
object$2({
|
|
73191
73453
|
version: literal(1),
|
|
73192
73454
|
runId: string$1(),
|
|
73193
73455
|
results: array(result),
|
|
73194
73456
|
nextAfter: string$1().optional()
|
|
73195
73457
|
});
|
|
73196
|
-
object$
|
|
73458
|
+
object$2({
|
|
73197
73459
|
version: literal(1),
|
|
73198
73460
|
runId: string$1(),
|
|
73199
73461
|
result,
|
|
@@ -102366,8 +102628,9 @@ function FieldValueEditor(suppliedProps) {
|
|
|
102366
102628
|
});
|
|
102367
102629
|
const firstName = objectFieldNames(schema, value)[0];
|
|
102368
102630
|
const firstSchema = firstName == null ? void 0 : objectValue(source.properties)?.[firstName] ?? source.additionalProperties ?? {};
|
|
102631
|
+
const firstEditorSchema = !definitionEditable && editorComponent(firstSchema) === "json" ? defaultValueEditorSchema(firstSchema) : firstSchema;
|
|
102369
102632
|
const firstValue = firstName == null ? void 0 : objectValue(value)?.[firstName];
|
|
102370
|
-
const childMarker = type === "array" ? array.length > 0 : firstName != null && (sorting && props.onDefinitionChange != null || fieldValueShape(
|
|
102633
|
+
const childMarker = type === "array" ? array.length > 0 : firstName != null && (sorting && props.onDefinitionChange != null || fieldValueShape(firstEditorSchema, firstValue, {
|
|
102371
102634
|
objectChild: true,
|
|
102372
102635
|
depth: depth + 1
|
|
102373
102636
|
}).expandable);
|
|
@@ -102378,6 +102641,7 @@ function FieldValueEditor(suppliedProps) {
|
|
|
102378
102641
|
id: `${id}-body`,
|
|
102379
102642
|
className: valueEditor_module_default.body,
|
|
102380
102643
|
"data-value-body": true,
|
|
102644
|
+
"data-feedback": anchor === "body" && messages.length > 0 || void 0,
|
|
102381
102645
|
hidden: compactValue && expandable && !expanded || expandable && !hasExpandedContent,
|
|
102382
102646
|
children: [
|
|
102383
102647
|
!showUnset && !compactValue && valueEditable && presence !== "value" && /* @__PURE__ */ jsx("span", {
|
|
@@ -102508,6 +102772,7 @@ function FieldValueEditor(suppliedProps) {
|
|
|
102508
102772
|
"aria-label": label,
|
|
102509
102773
|
"aria-describedby": messages.length ? `${id}-error` : void 0,
|
|
102510
102774
|
ref: setContainer,
|
|
102775
|
+
"data-summary-feedback": anchor === "summary" && messages.length > 0 || void 0,
|
|
102511
102776
|
"data-inline": props.hideOptions && !hasHeader || void 0,
|
|
102512
102777
|
"data-compact": props.compact || void 0,
|
|
102513
102778
|
"data-value-tools": canReset || canClear || canToggleJson || inlineExpansion && hasExpandedContent || void 0,
|
|
@@ -103149,7 +103414,7 @@ function EditableAgentSettingsProvider({ children, task, nodeId, store, connecto
|
|
|
103149
103414
|
return false;
|
|
103150
103415
|
}
|
|
103151
103416
|
const decoded = decodeRevisionContent({
|
|
103152
|
-
modelVersion:
|
|
103417
|
+
modelVersion: 12,
|
|
103153
103418
|
modules: {},
|
|
103154
103419
|
document: {
|
|
103155
103420
|
bindings: {},
|
|
@@ -103630,7 +103895,7 @@ function CodeEditor({ ariaDescribedBy, ariaLabel, diagnostics, disabled, errorLa
|
|
|
103630
103895
|
darkMode.current = darkMode$;
|
|
103631
103896
|
setFailed(false);
|
|
103632
103897
|
setLoading(true);
|
|
103633
|
-
const extension = import("./typeScriptSession-
|
|
103898
|
+
const extension = import("./typeScriptSession-C9sBGOKZ.js").then(({ loadTypeScriptExtension }) => loadTypeScriptExtension(uri, typingRef.current, () => prepareCompletionRef.current?.())).catch(() => void 0);
|
|
103634
103899
|
claimEditor(uri).then((nextRelease) => {
|
|
103635
103900
|
release = nextRelease;
|
|
103636
103901
|
if (disposed) {
|
|
@@ -103717,7 +103982,7 @@ function CodeEditor({ ariaDescribedBy, ariaLabel, diagnostics, disabled, errorLa
|
|
|
103717
103982
|
editor.current?.updateOptions({ ariaDescribedBy });
|
|
103718
103983
|
}, [ariaDescribedBy]);
|
|
103719
103984
|
useEffect(() => {
|
|
103720
|
-
import("./typeScriptSession-
|
|
103985
|
+
import("./typeScriptSession-C9sBGOKZ.js").then(({ updateTypeScriptTyping }) => updateTypeScriptTyping(uri, typing)).catch(noop);
|
|
103721
103986
|
}, [typing, uri]);
|
|
103722
103987
|
useEffect(() => {
|
|
103723
103988
|
if (location != null) editor.current?.revealPosition?.(location.line, location.column);
|
|
@@ -103741,6 +104006,59 @@ function CodeEditor({ ariaDescribedBy, ariaLabel, diagnostics, disabled, errorLa
|
|
|
103741
104006
|
});
|
|
103742
104007
|
}
|
|
103743
104008
|
//#endregion
|
|
104009
|
+
//#region src/workbench/browser/runtime/editor/codeHttpHosts.tsx
|
|
104010
|
+
/** Edits the hosts of a Code `http` Capability, one per line; an empty list removes the Capability. */
|
|
104011
|
+
function CodeHttpHosts({ disabled, hosts, onSave }) {
|
|
104012
|
+
const t = useTranslate();
|
|
104013
|
+
const id = useId();
|
|
104014
|
+
const saved = hosts.join("\n");
|
|
104015
|
+
const [draft, setDraft] = useState(saved);
|
|
104016
|
+
const [error, setError] = useState();
|
|
104017
|
+
useEffect(() => {
|
|
104018
|
+
setDraft(saved);
|
|
104019
|
+
setError(void 0);
|
|
104020
|
+
}, [saved]);
|
|
104021
|
+
const commit = async () => {
|
|
104022
|
+
const next = [...new Set(draft.split(/[\s,]+/).flatMap((host) => host == "" ? [] : [host.toLowerCase()]))];
|
|
104023
|
+
const invalid = next.find((host) => !isHttpHost(host));
|
|
104024
|
+
if (invalid != null) return setError(t("inspector.task.httpHostsInvalid", { host: invalid }));
|
|
104025
|
+
if (next.length > 20) return setError(t("inspector.task.httpHostsLimit", { count: 20 }));
|
|
104026
|
+
setError(void 0);
|
|
104027
|
+
if (dequal(next, hosts)) setDraft(saved);
|
|
104028
|
+
else await onSave(next);
|
|
104029
|
+
};
|
|
104030
|
+
return /* @__PURE__ */ jsxs(Field, {
|
|
104031
|
+
"data-inspector-section": "code-http",
|
|
104032
|
+
children: [
|
|
104033
|
+
/* @__PURE__ */ jsx(FieldLabel, {
|
|
104034
|
+
className: "text-xs font-normal",
|
|
104035
|
+
htmlFor: `${id}-hosts`,
|
|
104036
|
+
children: t("inspector.task.httpHosts")
|
|
104037
|
+
}),
|
|
104038
|
+
/* @__PURE__ */ jsx(ValueEditorFeedback, {
|
|
104039
|
+
error,
|
|
104040
|
+
children: (errorId) => /* @__PURE__ */ jsx(Textarea, {
|
|
104041
|
+
"aria-describedby": [`${id}-hint`, errorId].filter(Boolean).join(" "),
|
|
104042
|
+
"aria-invalid": error != null || void 0,
|
|
104043
|
+
className: "min-h-14 font-mono text-xs",
|
|
104044
|
+
disabled,
|
|
104045
|
+
id: `${id}-hosts`,
|
|
104046
|
+
onBlur: () => void commit(),
|
|
104047
|
+
onChange: (event) => setDraft(event.target.value),
|
|
104048
|
+
placeholder: "api.example.com",
|
|
104049
|
+
rows: 2,
|
|
104050
|
+
spellCheck: false,
|
|
104051
|
+
value: draft
|
|
104052
|
+
})
|
|
104053
|
+
}),
|
|
104054
|
+
/* @__PURE__ */ jsx(FieldDescription, {
|
|
104055
|
+
id: `${id}-hint`,
|
|
104056
|
+
children: t("inspector.task.httpHostsHint")
|
|
104057
|
+
})
|
|
104058
|
+
]
|
|
104059
|
+
});
|
|
104060
|
+
}
|
|
104061
|
+
//#endregion
|
|
103744
104062
|
//#region src/workbench/browser/runtime/editor/generateTyping.ts
|
|
103745
104063
|
function generateTyping(language, inputsDef, outputsDef) {
|
|
103746
104064
|
if (language === "typescript") return genTypeScript(inputsDef, outputsDef) + "\n";
|
|
@@ -104063,7 +104381,12 @@ function EditableCodeTaskSection({ connectorAccess, connectorCandidates, connect
|
|
|
104063
104381
|
setPending(true);
|
|
104064
104382
|
try {
|
|
104065
104383
|
const connectorCapabilities = value === permission && task != null && "moduleId" in task ? (task.capabilities ?? []).filter((item) => item.kind == "connector") : value == null ? [] : [value];
|
|
104066
|
-
|
|
104384
|
+
const http = task != null && "moduleId" in task ? (task.capabilities ?? []).filter((item) => item.kind == "http") : [];
|
|
104385
|
+
if (!await store.nodes.setCodeActions(selection.id, [
|
|
104386
|
+
...connectorCapabilities,
|
|
104387
|
+
...workflows,
|
|
104388
|
+
...http
|
|
104389
|
+
])) return false;
|
|
104067
104390
|
setPermission(value);
|
|
104068
104391
|
return true;
|
|
104069
104392
|
} catch (cause) {
|
|
@@ -104098,6 +104421,19 @@ function EditableCodeTaskSection({ connectorAccess, connectorCandidates, connect
|
|
|
104098
104421
|
children: t("inspector.task.missing")
|
|
104099
104422
|
});
|
|
104100
104423
|
if (!("moduleId" in task)) return null;
|
|
104424
|
+
const httpHosts = (task.capabilities ?? []).find((item) => item.kind == "http")?.hosts ?? [];
|
|
104425
|
+
const saveHttpHosts = async (hosts) => {
|
|
104426
|
+
try {
|
|
104427
|
+
const others = (task.capabilities ?? []).filter((item) => item.kind != "http");
|
|
104428
|
+
return await store.nodes.setCodeActions(selection.id, hosts.length == 0 ? others : [...others, {
|
|
104429
|
+
kind: "http",
|
|
104430
|
+
hosts
|
|
104431
|
+
}]);
|
|
104432
|
+
} catch (cause) {
|
|
104433
|
+
store.notify(errorNotice(cause, t));
|
|
104434
|
+
return false;
|
|
104435
|
+
}
|
|
104436
|
+
};
|
|
104101
104437
|
const selectedActions = permission?.mode == "independent" ? permission.actions : [];
|
|
104102
104438
|
const selectedTools = [...selectedActions, ...(task.capabilities ?? []).filter((item) => item.kind == "workflow")];
|
|
104103
104439
|
const summary = actionSummary(selectedTools, hintedCatalog, providers.data ?? []);
|
|
@@ -104109,7 +104445,7 @@ function EditableCodeTaskSection({ connectorAccess, connectorCandidates, connect
|
|
|
104109
104445
|
const catalog = accountCatalogs[action.serviceId];
|
|
104110
104446
|
return catalog != null && catalog.byId.get(entry.connectionId)?.status !== "active";
|
|
104111
104447
|
});
|
|
104112
|
-
const typingFor = (shared) => codeTyping(task, permission == null ? task.capabilities : [permission, ...(task.capabilities ?? []).filter((item) => item.kind
|
|
104448
|
+
const typingFor = (shared) => codeTyping(task, permission == null ? task.capabilities : [permission, ...(task.capabilities ?? []).filter((item) => item.kind != "connector")], permission?.mode == "shared" ? shared : {
|
|
104113
104449
|
...hintedCatalog,
|
|
104114
104450
|
...shared
|
|
104115
104451
|
}, providerIds);
|
|
@@ -104187,6 +104523,11 @@ function EditableCodeTaskSection({ connectorAccess, connectorCandidates, connect
|
|
|
104187
104523
|
children: loadError ?? completionError
|
|
104188
104524
|
})]
|
|
104189
104525
|
}),
|
|
104526
|
+
/* @__PURE__ */ jsx(CodeHttpHosts, {
|
|
104527
|
+
disabled: disabled || pending,
|
|
104528
|
+
hosts: httpHosts,
|
|
104529
|
+
onSave: saveHttpHosts
|
|
104530
|
+
}),
|
|
104190
104531
|
/* @__PURE__ */ jsx(ValueEditorFeedback, {
|
|
104191
104532
|
error: moduleDiagnostics.length > 0 ? moduleDiagnostics.map((diagnostic) => /* @__PURE__ */ jsx("div", { children: diagnosticMessage(diagnostic, t) }, `${diagnostic.path}:${diagnostic.line}:${diagnostic.column}:${diagnostic.code}`)) : void 0,
|
|
104192
104533
|
children: (errorId) => /* @__PURE__ */ jsx(CodeEditor, {
|
|
@@ -108482,7 +108823,7 @@ var resources = {
|
|
|
108482
108823
|
"exportSvgFailed": "Could not export the SVG image. Please try again.",
|
|
108483
108824
|
"importInvalid": "Invalid or unsupported workflow file."
|
|
108484
108825
|
},
|
|
108485
|
-
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Node outline\",\"backToOutline\":\"Back to node outline\",\"emptyOutline\":\"No nodes yet\",\"triggers\":\"Triggers\",\"nodes\":\"Nodes\",\"multipleSelected\":\"{{count}} nodes selected\",\"account\":{\"contactAdmin\":\"You do not have permission to perform this operation. Contact an administrator.\",\"accessTitle\":\"Access permissions\",\"manageFlowAccess\":\"Connections available to Code\",\"configureAccess\":\"Choose an account\",\"manageAccount\":\"Manage accounts\",\"required\":\"Account connection required\",\"addAccount\":\"Add account\",\"manage\":\"Manage\",\"authorizationPending\":\"Finish authorization in the Connection page, then return here to refresh this account.\",\"chooseAccount\":\"Choose an account\",\"deferred\":\"Not configured for now\",\"clearDeferred\":\"Clear selection\",\"noAccounts\":\"No accounts available\",\"connectBeforeRun\":\"Connect {{service}} before this block can run or be published.\",\"connectService\":\"Connect {{service}}\",\"connection\":\"Connection\",\"loading\":\"Loading connections…\",\"oomolBuiltIn\":\"OOMOL Built-in\",\"missing\":\"The account selected for this node is unavailable. Choose another account or manage connections.\",\"refreshFailed\":\"Connections could not be refreshed.\",\"retry\":\"Retry\",\"status\":{\"disconnected\":\"This Connection is disconnected. Reconnect it or choose another account.\",\"error\":\"This Connection has an error. Repair it or choose another account.\",\"reauth_required\":\"This Connection needs authorization again. Reconnect it or choose another account.\"},\"statusUnavailable\":\"Connection status is unavailable for {{action}}.\",\"teamDefault\":\"Team default\",\"title\":\"Account\",\"unavailable\":\"unavailable\"},\"close\":\"Close inspector\",\"configurationRequired\":\"Configuration required\",\"diagnostics\":\"Diagnostics\",\"errors\":{\"jsonObject\":\"{{label}} must be a JSON object.\",\"portDefinitions\":\"Enter valid port definitions.\"},\"node\":{\"nameDuplicate\":\"A node with this name already exists in this graph.\",\"nameEmpty\":\"Node name cannot be empty.\",\"timeout\":\"Timeout (ms)\",\"maxExecutions\":\"Node execution limit\",\"maxExecutionsError\":\"Node execution limit must be a positive integer.\",\"timeoutError\":\"Timeout must be a positive integer in milliseconds.\",\"title\":\"Node settings\",\"description\":\"Purpose\",\"describe\":\"Describe what this step does.\",\"icon\":\"Icon\",\"name\":\"Title\",\"retry\":\"Retry on error\",\"retryCount\":\"Up to {{count}} retries\",\"retryInterval\":\"Retry interval\",\"retryError\":\"Use an interval of 1–60 whole seconds.\",\"retryHint\":\"The retry count is the number of additional attempts after the first execution. Retries repeat the entire node and may repeat external operations. The timeout includes all attempts and intervals.\",\"retryNone\":\"No retries\",\"retrySeconds\":\"seconds\",\"retryHelp\":\"About retries\",\"retryOnce\":\"Retry once\",\"onError\":\"On failure\",\"onErrorStop\":\"Stop workflow\",\"onErrorOutput\":\"Output to error port\",\"onErrorHelp\":\"About failure handling\",\"onErrorHint\":\"After retries fail, write the error to the system error output and continue along existing connections. On success, error is null. Cancellation, timeouts, resource limits and indeterminate outcomes still stop execution.\",\"systemOutputs\":\"System outputs\",\"systemError\":\"Error information (system)\",\"errorFields\":{\"error\":\"Error information when the node fails; null on success.\",\"code\":\"A code identifying the type of error.\",\"message\":\"A description of the error, with sensitive content redacted.\",\"nodeId\":\"The ID of the node that failed.\",\"nodeName\":\"The node name at the time of failure.\",\"runId\":\"The ID of this workflow run.\",\"executionId\":\"The ID of this node execution, shared across its retry attempts.\"}},\"selectNode\":\"Select one Draft node to inspect and edit it.\",\"locateNode\":\"Locate this node on the canvas\",\"task\":{\"sharedPermissions\":\"Use Flow shared permission group\",\"sharedPermissionsHint\":\"Use all Actions authorized by the Flow permission group. No need to add them to this node.\",\"addAction\":\"Add Action\",\"removeAction\":\"Remove Action\",\"actionAccount\":\"Account\",\"chooseAccount\":\"Choose an account\",\"permissionSaveFailed\":\"Could not save Code permissions. Retry the change.\",\"chatText\":\"Chat text\",\"connectorAction\":\"Connector action\",\"definition\":\"Task definition\",\"discardCode\":\"Discard changes\",\"editorLoading\":\"Loading editor…\",\"editorUnavailable\":\"The code editor couldn’t be loaded.\",\"inputPorts\":\"Input ports\",\"javascriptModule\":\"Code\",\"missing\":\"The referenced Task does not exist.\",\"outputPorts\":\"Output ports\",\"responseMode\":\"Response mode\",\"source\":\"Source\",\"structuredJson\":\"Structured JSON\",\"retrySave\":\"Retry save\",\"additionalInputs\":\"Additional inputs\"},\"wait\":{\"approval\":\"Approve or reject\",\"changeNotification\":\"Change\",\"continue\":\"Continue\",\"mode\":\"Resolution\",\"inputsLoading\":\"Loading notification parameters…\",\"pendingDescription\":\"The pending output fires once when waiting begins and provides confirmation links and related data. Connect it to send a message or run other steps.\",\"prompt\":\"Prompt\",\"promptError\":\"Prompt must contain 1 to 1,000 characters.\",\"autoContinue\":\"Automatic continuation\",\"autoOff\":\"Off\",\"autoAfter\":\"After a duration\",\"autoAt\":\"At a specific time\",\"autoSeconds\":\"Duration (seconds)\",\"autoDate\":\"Date and time\",\"autoInvalid\":\"Enter a positive duration or a valid date and time.\",\"autoDescription\":\"You can continue manually before the scheduled time.\"},\"title\":\"Inspector\",\"sources\":{\"loading\":\"Loading input sources…\",\"loadFailed\":\"Could not load input sources. Reopen the menu to retry.\",\"checkFailed\":\"Could not check this source.\",\"select\":\"Select input source\",\"title\":\"Input source\",\"sourceMissing\":\"The original input source no longer exists. Choose again.\",\"outputMissing\":\"“{{output}}” could not be found in “{{source}}”. Choose again.\",\"wholeObject\":\"Whole object\",\"fieldMissing\":\"Field {{field}} is no longer declared in “{{output}}”. Choose again.\",\"notReady\":\"“{{source}} {{handle}}” may not have a value when this step runs.\",\"sourceConflict\":\"These fields may have values at the same time: {{sources}}. Only one can be used here.\",\"incompatibleRight\":\"The right value type is incompatible with this comparison.\",\"incompatible\":\"Mismatch\",\"unverified\":\"Unverified\",\"schemaIncompatible\":\"The data format does not match.\",\"schemaPathIncompatible\":\"The data format of “{{path}}” does not match.\",\"schemaCompareFailed\":\"Could not check the data format. Check the JSON Schema.\",\"binaryIncompatible\":\"Binary data cannot be used here.\",\"artifactIncompatible\":\"File data cannot be used here.\",\"nullableIncompatible\":\"A value is required, but the selected field may be empty.\",\"typeIncompatible\":\"Expected {{target}}, but the selected field is {{source}}.\",\"propertyTypeIncompatible\":\"“{{path}}” must be {{target}}, but it is {{source}}.\",\"requiredIncompatible\":\"The required property “{{property}}” may be missing.\",\"enumIncompatible\":\"Some possible values are not accepted: {{values}}.\",\"constIncompatible\":\"Only {{target}} is accepted, but the selected field is always {{source}}.\",\"constraintSubject\":\"“{{path}}” \",\"minLength\":\"{{subject}}must contain at least {{value}} characters.\",\"maxLength\":\"{{subject}}must contain at most {{value}} characters.\",\"pattern\":\"{{subject}}must match {{value}}.\",\"minimum\":\"{{subject}}cannot be less than {{value}}.\",\"exclusiveMinimum\":\"{{subject}}must be greater than {{value}}.\",\"maximum\":\"{{subject}}cannot be greater than {{value}}.\",\"exclusiveMaximum\":\"{{subject}}must be less than {{value}}.\",\"multipleOf\":\"{{subject}}must be a multiple of {{value}}.\",\"minItems\":\"{{subject}}must contain at least {{value}} items.\",\"maxItems\":\"{{subject}}must contain at most {{value}} items.\",\"minProperties\":\"{{subject}}must contain at least {{value}} properties.\",\"maxProperties\":\"{{subject}}must contain at most {{value}} properties.\",\"integer\":\"Integer\",\"unknownType\":\"unknown type\",\"typeSeparator\":\" or \"},\"actions\":{\"flowAccess\":\"Available services\",\"flowAccessHint\":\"Manage connections shared by all Code nodes in this Flow\",\"chooseConnection\":\"Choose a {{provider}} connection\",\"connectionDescription\":\"The connection is inserted into this call. Flow provider access still controls whether it may be used.\",\"title\":\"Actions available to this code\",\"search\":\"Search actions\",\"description\":\"Choose the actions and accounts this code can use.\",\"empty\":\"No matching actions.\",\"remove\":\"Remove\",\"default\":\"Default account\",\"defaultHint\":\"Used when the call does not specify an account.\",\"removeAction\":\"Remove action\",\"explicit\":\"Choose explicitly in code\",\"connect\":\"Connect account\",\"refresh\":\"Refresh accounts\",\"aliases\":\"Update saved aliases\",\"add\":\"Add action\",\"cancel\":\"Cancel\",\"loading\":\"Searching…\",\"needsAccount\":\"Connect an account\",\"accounts\":\"{{count}} accounts\",\"public\":\"No account needed\",\"allowed\":\"Allowed accounts\",\"unavailable\":\"Unavailable\",\"details\":\"Connection details\",\"example\":\"Call example\",\"syntax\":\"Call syntax\",\"nested\":\"Provider method\",\"fullId\":\"Full ID\",\"copy\":\"Copy\",\"copied\":\"Copied\",\"copyError\":\"Copy failed. Select the code and copy it manually.\",\"introDescription\":\"Add actions as needed to call external apps through {{context}}.\",\"insertAction\":\"Insert code\",\"chooseAccounts\":\"Manage accounts\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Preview\"},\"ports\":{\"reorder\":\"Reorder {{name}}\",\"reorderHint\":\"Drag to reorder within the group, or use Up / Down while focused.\",\"moved\":\"{{name}} moved to position {{position}}.\",\"groupSettings\":\"Group settings\",\"connected\":\"Connected\",\"sort\":\"Sort\",\"finishSorting\":\"Done sorting\",\"inputsTitle\":\"Inputs\",\"requiredInputs\":\"Required\",\"optionalInputs\":\"Optional\",\"noInputs\":\"This node does not require input data.\",\"noOutputs\":\"This node does not provide output data.\",\"outputsTitle\":\"Outputs\",\"valuesTitle\":\"Values\",\"columnHandle\":\"Handle\",\"columnName\":\"Name\",\"columnType\":\"Type\",\"columnValue\":\"Value\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"The scheduled time that triggered this run, in ISO 8601 format.\"},\"webhook\":{\"headers\":\"The headers received with this Webhook request.\",\"query\":\"The URL query parameters received with this Webhook request.\",\"body\":\"The body received with this Webhook request.\",\"webhookUrl\":\"The Webhook URL that received this request, without query parameters.\"}},\"startParametersTitle\":\"Start parameters\"}}"),
|
|
108826
|
+
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Node outline\",\"backToOutline\":\"Back to node outline\",\"emptyOutline\":\"No nodes yet\",\"triggers\":\"Triggers\",\"nodes\":\"Nodes\",\"multipleSelected\":\"{{count}} nodes selected\",\"account\":{\"contactAdmin\":\"You do not have permission to perform this operation. Contact an administrator.\",\"accessTitle\":\"Access permissions\",\"manageFlowAccess\":\"Connections available to Code\",\"configureAccess\":\"Choose an account\",\"manageAccount\":\"Manage accounts\",\"required\":\"Account connection required\",\"addAccount\":\"Add account\",\"manage\":\"Manage\",\"authorizationPending\":\"Finish authorization in the Connection page, then return here to refresh this account.\",\"chooseAccount\":\"Choose an account\",\"deferred\":\"Not configured for now\",\"clearDeferred\":\"Clear selection\",\"noAccounts\":\"No accounts available\",\"connectBeforeRun\":\"Connect {{service}} before this block can run or be published.\",\"connectService\":\"Connect {{service}}\",\"connection\":\"Connection\",\"loading\":\"Loading connections…\",\"oomolBuiltIn\":\"OOMOL Built-in\",\"missing\":\"The account selected for this node is unavailable. Choose another account or manage connections.\",\"refreshFailed\":\"Connections could not be refreshed.\",\"retry\":\"Retry\",\"status\":{\"disconnected\":\"This Connection is disconnected. Reconnect it or choose another account.\",\"error\":\"This Connection has an error. Repair it or choose another account.\",\"reauth_required\":\"This Connection needs authorization again. Reconnect it or choose another account.\"},\"statusUnavailable\":\"Connection status is unavailable for {{action}}.\",\"teamDefault\":\"Team default\",\"title\":\"Account\",\"unavailable\":\"unavailable\"},\"close\":\"Close inspector\",\"configurationRequired\":\"Configuration required\",\"diagnostics\":\"Diagnostics\",\"errors\":{\"jsonObject\":\"{{label}} must be a JSON object.\",\"portDefinitions\":\"Enter valid port definitions.\"},\"node\":{\"nameDuplicate\":\"A node with this name already exists in this graph.\",\"nameEmpty\":\"Node name cannot be empty.\",\"timeout\":\"Timeout (ms)\",\"maxExecutions\":\"Node execution limit\",\"maxExecutionsError\":\"Node execution limit must be a positive integer.\",\"timeoutError\":\"Timeout must be a positive integer in milliseconds.\",\"title\":\"Node settings\",\"description\":\"Purpose\",\"describe\":\"Describe what this step does.\",\"icon\":\"Icon\",\"name\":\"Title\",\"retry\":\"Retry on error\",\"retryCount\":\"Up to {{count}} retries\",\"retryInterval\":\"Retry interval\",\"retryError\":\"Use an interval of 1–60 whole seconds.\",\"retryHint\":\"The retry count is the number of additional attempts after the first execution. Retries repeat the entire node and may repeat external operations. The timeout includes all attempts and intervals.\",\"retryNone\":\"No retries\",\"retrySeconds\":\"seconds\",\"retryHelp\":\"About retries\",\"retryOnce\":\"Retry once\",\"onError\":\"On failure\",\"onErrorStop\":\"Stop workflow\",\"onErrorOutput\":\"Output to error port\",\"onErrorHelp\":\"About failure handling\",\"onErrorHint\":\"After retries fail, write the error to the system error output and continue along existing connections. On success, error is null. Cancellation, timeouts, resource limits and indeterminate outcomes still stop execution.\",\"systemOutputs\":\"System outputs\",\"systemError\":\"Error information (system)\",\"errorFields\":{\"error\":\"Error information when the node fails; null on success.\",\"code\":\"A code identifying the type of error.\",\"message\":\"A description of the error, with sensitive content redacted.\",\"nodeId\":\"The ID of the node that failed.\",\"nodeName\":\"The node name at the time of failure.\",\"runId\":\"The ID of this workflow run.\",\"executionId\":\"The ID of this node execution, shared across its retry attempts.\"}},\"selectNode\":\"Select one Draft node to inspect and edit it.\",\"locateNode\":\"Locate this node on the canvas\",\"task\":{\"sharedPermissions\":\"Use Flow shared permission group\",\"sharedPermissionsHint\":\"Use all Actions authorized by the Flow permission group. No need to add them to this node.\",\"httpHosts\":\"HTTP hosts\",\"httpHostsHint\":\"Hosts Code may call with context.fetch, one per line. *.example.com matches subdomains.\",\"httpHostsInvalid\":\"\\\"{{host}}\\\" is not a valid host. Use a host name such as api.example.com.\",\"httpHostsLimit\":\"Declare at most {{count}} hosts.\",\"addAction\":\"Add Action\",\"removeAction\":\"Remove Action\",\"actionAccount\":\"Account\",\"chooseAccount\":\"Choose an account\",\"permissionSaveFailed\":\"Could not save Code permissions. Retry the change.\",\"chatText\":\"Chat text\",\"connectorAction\":\"Connector action\",\"definition\":\"Task definition\",\"discardCode\":\"Discard changes\",\"editorLoading\":\"Loading editor…\",\"editorUnavailable\":\"The code editor couldn’t be loaded.\",\"inputPorts\":\"Input ports\",\"javascriptModule\":\"Code\",\"missing\":\"The referenced Task does not exist.\",\"outputPorts\":\"Output ports\",\"responseMode\":\"Response mode\",\"source\":\"Source\",\"structuredJson\":\"Structured JSON\",\"retrySave\":\"Retry save\",\"additionalInputs\":\"Additional inputs\"},\"wait\":{\"approval\":\"Approve or reject\",\"changeNotification\":\"Change\",\"continue\":\"Continue\",\"mode\":\"Resolution\",\"inputsLoading\":\"Loading notification parameters…\",\"pendingDescription\":\"The pending output fires once when waiting begins and provides confirmation links and related data. Connect it to send a message or run other steps.\",\"prompt\":\"Prompt\",\"promptError\":\"Prompt must contain 1 to 1,000 characters.\",\"autoContinue\":\"Automatic continuation\",\"autoOff\":\"Off\",\"autoAfter\":\"After a duration\",\"autoAt\":\"At a specific time\",\"autoSeconds\":\"Duration (seconds)\",\"autoDate\":\"Date and time\",\"autoInvalid\":\"Enter a positive duration or a valid date and time.\",\"autoDescription\":\"You can continue manually before the scheduled time.\"},\"title\":\"Inspector\",\"sources\":{\"loading\":\"Loading input sources…\",\"loadFailed\":\"Could not load input sources. Reopen the menu to retry.\",\"checkFailed\":\"Could not check this source.\",\"select\":\"Select input source\",\"title\":\"Input source\",\"sourceMissing\":\"The original input source no longer exists. Choose again.\",\"outputMissing\":\"“{{output}}” could not be found in “{{source}}”. Choose again.\",\"wholeObject\":\"Whole object\",\"fieldMissing\":\"Field {{field}} is no longer declared in “{{output}}”. Choose again.\",\"notReady\":\"“{{source}} {{handle}}” may not have a value when this step runs.\",\"sourceConflict\":\"These fields may have values at the same time: {{sources}}. Only one can be used here.\",\"incompatibleRight\":\"The right value type is incompatible with this comparison.\",\"incompatible\":\"Mismatch\",\"unverified\":\"Unverified\",\"schemaIncompatible\":\"The data format does not match.\",\"schemaPathIncompatible\":\"The data format of “{{path}}” does not match.\",\"schemaCompareFailed\":\"Could not check the data format. Check the JSON Schema.\",\"binaryIncompatible\":\"Binary data cannot be used here.\",\"artifactIncompatible\":\"File data cannot be used here.\",\"nullableIncompatible\":\"A value is required, but the selected field may be empty.\",\"typeIncompatible\":\"Expected {{target}}, but the selected field is {{source}}.\",\"propertyTypeIncompatible\":\"“{{path}}” must be {{target}}, but it is {{source}}.\",\"requiredIncompatible\":\"The required property “{{property}}” may be missing.\",\"enumIncompatible\":\"Some possible values are not accepted: {{values}}.\",\"constIncompatible\":\"Only {{target}} is accepted, but the selected field is always {{source}}.\",\"constraintSubject\":\"“{{path}}” \",\"minLength\":\"{{subject}}must contain at least {{value}} characters.\",\"maxLength\":\"{{subject}}must contain at most {{value}} characters.\",\"pattern\":\"{{subject}}must match {{value}}.\",\"minimum\":\"{{subject}}cannot be less than {{value}}.\",\"exclusiveMinimum\":\"{{subject}}must be greater than {{value}}.\",\"maximum\":\"{{subject}}cannot be greater than {{value}}.\",\"exclusiveMaximum\":\"{{subject}}must be less than {{value}}.\",\"multipleOf\":\"{{subject}}must be a multiple of {{value}}.\",\"minItems\":\"{{subject}}must contain at least {{value}} items.\",\"maxItems\":\"{{subject}}must contain at most {{value}} items.\",\"minProperties\":\"{{subject}}must contain at least {{value}} properties.\",\"maxProperties\":\"{{subject}}must contain at most {{value}} properties.\",\"integer\":\"Integer\",\"unknownType\":\"unknown type\",\"typeSeparator\":\" or \"},\"actions\":{\"flowAccess\":\"Available services\",\"flowAccessHint\":\"Manage connections shared by all Code nodes in this Flow\",\"chooseConnection\":\"Choose a {{provider}} connection\",\"connectionDescription\":\"The connection is inserted into this call. Flow provider access still controls whether it may be used.\",\"title\":\"Actions available to this code\",\"search\":\"Search actions\",\"description\":\"Choose the actions and accounts this code can use.\",\"empty\":\"No matching actions.\",\"remove\":\"Remove\",\"default\":\"Default account\",\"defaultHint\":\"Used when the call does not specify an account.\",\"removeAction\":\"Remove action\",\"explicit\":\"Choose explicitly in code\",\"connect\":\"Connect account\",\"refresh\":\"Refresh accounts\",\"aliases\":\"Update saved aliases\",\"add\":\"Add action\",\"cancel\":\"Cancel\",\"loading\":\"Searching…\",\"needsAccount\":\"Connect an account\",\"accounts\":\"{{count}} accounts\",\"public\":\"No account needed\",\"allowed\":\"Allowed accounts\",\"unavailable\":\"Unavailable\",\"details\":\"Connection details\",\"example\":\"Call example\",\"syntax\":\"Call syntax\",\"nested\":\"Provider method\",\"fullId\":\"Full ID\",\"copy\":\"Copy\",\"copied\":\"Copied\",\"copyError\":\"Copy failed. Select the code and copy it manually.\",\"introDescription\":\"Add actions as needed to call external apps through {{context}}.\",\"insertAction\":\"Insert code\",\"chooseAccounts\":\"Manage accounts\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Preview\"},\"ports\":{\"reorder\":\"Reorder {{name}}\",\"reorderHint\":\"Drag to reorder within the group, or use Up / Down while focused.\",\"moved\":\"{{name}} moved to position {{position}}.\",\"groupSettings\":\"Group settings\",\"connected\":\"Connected\",\"sort\":\"Sort\",\"finishSorting\":\"Done sorting\",\"inputsTitle\":\"Inputs\",\"requiredInputs\":\"Required\",\"optionalInputs\":\"Optional\",\"noInputs\":\"This node does not require input data.\",\"noOutputs\":\"This node does not provide output data.\",\"outputsTitle\":\"Outputs\",\"valuesTitle\":\"Values\",\"columnHandle\":\"Handle\",\"columnName\":\"Name\",\"columnType\":\"Type\",\"columnValue\":\"Value\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"The scheduled time that triggered this run, in ISO 8601 format.\"},\"webhook\":{\"headers\":\"The headers received with this Webhook request.\",\"query\":\"The URL query parameters received with this Webhook request.\",\"body\":\"The body received with this Webhook request.\",\"webhookUrl\":\"The Webhook URL that received this request, without query parameters.\"}},\"startParametersTitle\":\"Start parameters\"}}"),
|
|
108486
108827
|
language: { "label": "Language" },
|
|
108487
108828
|
notice: {
|
|
108488
108829
|
"connectorUnconfigured": "Connector is not configured for this deployment.",
|
|
@@ -109500,6 +109841,38 @@ var resources = {
|
|
|
109500
109841
|
"aliasInvalid": "Use a unique call name of 1–64 characters, starting with a letter and containing only letters, numbers, underscores or hyphens.",
|
|
109501
109842
|
"connector": "Connector",
|
|
109502
109843
|
"workflow": "Workflow"
|
|
109844
|
+
},
|
|
109845
|
+
httpRequest: {
|
|
109846
|
+
"title": "HTTP Request",
|
|
109847
|
+
"description": "Send an HTTP request and use its response in the workflow.",
|
|
109848
|
+
"method": "Method",
|
|
109849
|
+
"query": "Query parameters",
|
|
109850
|
+
"headers": "Request headers",
|
|
109851
|
+
"bodyFormat": "Request body format",
|
|
109852
|
+
"none": "None",
|
|
109853
|
+
"text": "Text",
|
|
109854
|
+
"authentication": "Authentication",
|
|
109855
|
+
"location": "Location",
|
|
109856
|
+
"keyName": "Key name",
|
|
109857
|
+
"responseFormat": "Response format",
|
|
109858
|
+
"auto": "Auto",
|
|
109859
|
+
"statusPolicy": "Accepted status codes",
|
|
109860
|
+
"success": "2xx",
|
|
109861
|
+
"all": "All status codes",
|
|
109862
|
+
"saveFailed": "Unable to save request settings.",
|
|
109863
|
+
"retry": "Retry",
|
|
109864
|
+
"bodyUnsupported": "GET and HEAD do not support a request body.",
|
|
109865
|
+
"parameterNamesInvalid": "Parameter names must be nonempty and unique.",
|
|
109866
|
+
"headerNameInvalid": "Invalid HTTP header name.",
|
|
109867
|
+
"keyNameRequired": "Enter an API Key name.",
|
|
109868
|
+
"authConflict": "Authentication conflicts with a request parameter.",
|
|
109869
|
+
"body": "Request body",
|
|
109870
|
+
"username": "Username",
|
|
109871
|
+
"password": "Password",
|
|
109872
|
+
"keyValue": "Key value",
|
|
109873
|
+
"responseOutputs": "Response outputs",
|
|
109874
|
+
"authenticationType": "Type",
|
|
109875
|
+
"responseSettings": "Response settings"
|
|
109503
109876
|
}
|
|
109504
109877
|
},
|
|
109505
109878
|
"zh-CN": {
|
|
@@ -109819,6 +110192,10 @@ var resources = {
|
|
|
109819
110192
|
"task": {
|
|
109820
110193
|
"sharedPermissions": "使用 Flow 共享权限组",
|
|
109821
110194
|
"sharedPermissionsHint": "直接使用 Flow 共享权限组已授权的全部 Actions,无需逐个添加。",
|
|
110195
|
+
"httpHosts": "HTTP 主机",
|
|
110196
|
+
"httpHostsHint": "Code 可通过 context.fetch 访问的主机,每行一个。*.example.com 匹配其子域名。",
|
|
110197
|
+
"httpHostsInvalid": "“{{host}}”不是有效的主机,请填写 api.example.com 这样的主机名。",
|
|
110198
|
+
"httpHostsLimit": "最多声明 {{count}} 个主机。",
|
|
109822
110199
|
"addAction": "添加 Action",
|
|
109823
110200
|
"removeAction": "移除 Action",
|
|
109824
110201
|
"actionAccount": "账号",
|
|
@@ -110991,6 +111368,38 @@ var resources = {
|
|
|
110991
111368
|
"aliasInvalid": "调用名称不能重复,长度为 1–64 个字符,以英文字母开头,仅包含英文字母、数字、下划线或连字符。",
|
|
110992
111369
|
"connector": "连接器",
|
|
110993
111370
|
"workflow": "工作流"
|
|
111371
|
+
},
|
|
111372
|
+
httpRequest: {
|
|
111373
|
+
"title": "HTTP 请求",
|
|
111374
|
+
"description": "发送 HTTP 请求,在工作流中使用响应数据。",
|
|
111375
|
+
"method": "请求方法",
|
|
111376
|
+
"query": "查询参数",
|
|
111377
|
+
"headers": "请求头",
|
|
111378
|
+
"bodyFormat": "请求体格式",
|
|
111379
|
+
"none": "无",
|
|
111380
|
+
"text": "文本",
|
|
111381
|
+
"authentication": "认证",
|
|
111382
|
+
"location": "位置",
|
|
111383
|
+
"keyName": "密钥名称",
|
|
111384
|
+
"responseFormat": "响应格式",
|
|
111385
|
+
"auto": "自动",
|
|
111386
|
+
"statusPolicy": "接受的状态码",
|
|
111387
|
+
"success": "2xx",
|
|
111388
|
+
"all": "所有状态码",
|
|
111389
|
+
"saveFailed": "无法保存请求配置。",
|
|
111390
|
+
"retry": "重试",
|
|
111391
|
+
"bodyUnsupported": "GET 和 HEAD 不支持请求体。",
|
|
111392
|
+
"parameterNamesInvalid": "参数名称不能为空或重复。",
|
|
111393
|
+
"headerNameInvalid": "HTTP 请求头名称无效。",
|
|
111394
|
+
"keyNameRequired": "请填写 API Key 名称。",
|
|
111395
|
+
"authConflict": "认证与请求参数冲突。",
|
|
111396
|
+
"body": "请求体",
|
|
111397
|
+
"username": "用户名",
|
|
111398
|
+
"password": "密码",
|
|
111399
|
+
"keyValue": "密钥值",
|
|
111400
|
+
"responseOutputs": "响应输出",
|
|
111401
|
+
"authenticationType": "认证方式",
|
|
111402
|
+
"responseSettings": "响应配置"
|
|
110994
111403
|
}
|
|
110995
111404
|
},
|
|
110996
111405
|
"zh-TW": {
|
|
@@ -111221,250 +111630,7 @@ var resources = {
|
|
|
111221
111630
|
"exportSvgFailed": "SVG 圖片匯出失敗,請重試。",
|
|
111222
111631
|
"importInvalid": "檔案損壞或工作流格式不受支援。"
|
|
111223
111632
|
},
|
|
111224
|
-
inspector: {
|
|
111225
|
-
"outline": "節點大綱",
|
|
111226
|
-
"backToOutline": "返回節點大綱",
|
|
111227
|
-
"emptyOutline": "暫無節點",
|
|
111228
|
-
"triggers": "觸發器",
|
|
111229
|
-
"nodes": "節點",
|
|
111230
|
-
"multipleSelected": "已選擇 {{count}} 個節點",
|
|
111231
|
-
"account": {
|
|
111232
|
-
"contactAdmin": "你沒有執行此操作的權限,請聯絡管理員。",
|
|
111233
|
-
"accessTitle": "存取權限",
|
|
111234
|
-
"manageFlowAccess": "Code 允許使用的連線",
|
|
111235
|
-
"configureAccess": "選擇可用帳號",
|
|
111236
|
-
"manageAccount": "管理帳號",
|
|
111237
|
-
"required": "待連線帳號",
|
|
111238
|
-
"addAccount": "新增帳號",
|
|
111239
|
-
"manage": "管理",
|
|
111240
|
-
"authorizationPending": "請在 Connection 頁面完成授權,再回到這裡重新整理這個帳號。",
|
|
111241
|
-
"chooseAccount": "選擇帳號",
|
|
111242
|
-
"deferred": "暫不設定",
|
|
111243
|
-
"clearDeferred": "清除選擇",
|
|
111244
|
-
"noAccounts": "暫無可用帳號",
|
|
111245
|
-
"connectBeforeRun": "請先連接 {{service}},這個節點才能執行或發布。",
|
|
111246
|
-
"connectService": "連接 {{service}}",
|
|
111247
|
-
"connection": "Connection",
|
|
111248
|
-
"loading": "正在載入 Connection…",
|
|
111249
|
-
"oomolBuiltIn": "OOMOL 內建帳號",
|
|
111250
|
-
"missing": "此節點選擇的帳號目前無法使用,請選擇其他帳號或管理帳號。",
|
|
111251
|
-
"refreshFailed": "無法重新整理 Connection。",
|
|
111252
|
-
"retry": "重試",
|
|
111253
|
-
"status": {
|
|
111254
|
-
"disconnected": "這個 Connection 已中斷。請重新連接或選擇其他帳號。",
|
|
111255
|
-
"error": "這個 Connection 發生錯誤。請修復它或選擇其他帳號。",
|
|
111256
|
-
"reauth_required": "這個 Connection 需要重新授權。請重新連接或選擇其他帳號。"
|
|
111257
|
-
},
|
|
111258
|
-
"statusUnavailable": "無法取得 {{action}} 的 Connection 狀態。",
|
|
111259
|
-
"teamDefault": "團隊預設",
|
|
111260
|
-
"title": "帳號",
|
|
111261
|
-
"unavailable": "無法使用"
|
|
111262
|
-
},
|
|
111263
|
-
"close": "關閉檢查器",
|
|
111264
|
-
"configurationRequired": "尚未完成設定",
|
|
111265
|
-
"diagnostics": "診斷",
|
|
111266
|
-
"errors": {
|
|
111267
|
-
"jsonObject": "{{label}} 必須是 JSON 物件。",
|
|
111268
|
-
"portDefinitions": "請輸入有效的埠定義。"
|
|
111269
|
-
},
|
|
111270
|
-
"node": {
|
|
111271
|
-
"nameDuplicate": "目前圖中已存在同名節點。",
|
|
111272
|
-
"nameEmpty": "節點名稱不能為空。",
|
|
111273
|
-
"timeout": "逾時時間(毫秒)",
|
|
111274
|
-
"maxExecutions": "節點執行上限",
|
|
111275
|
-
"maxExecutionsError": "節點執行上限必須是正整數。",
|
|
111276
|
-
"timeoutError": "逾時時間必須是以毫秒為單位的正整數。",
|
|
111277
|
-
"title": "節點設定",
|
|
111278
|
-
"description": "用途說明",
|
|
111279
|
-
"describe": "描述這個步驟要完成什麼。",
|
|
111280
|
-
"icon": "圖示",
|
|
111281
|
-
"name": "標題",
|
|
111282
|
-
"retry": "失敗重試",
|
|
111283
|
-
"retryCount": "最多重試 {{count}} 次",
|
|
111284
|
-
"retryInterval": "重試間隔",
|
|
111285
|
-
"retryError": "間隔須為 1~60 整數秒。",
|
|
111286
|
-
"retryHint": "重試次數是首次執行失敗後的追加次數。重試會重新執行整個節點,可能重複外部操作。逾時包含全部嘗試和等待間隔。",
|
|
111287
|
-
"retryNone": "不重試",
|
|
111288
|
-
"retrySeconds": "秒",
|
|
111289
|
-
"retryHelp": "重試說明",
|
|
111290
|
-
"retryOnce": "最多重試 1 次",
|
|
111291
|
-
"onError": "失敗處理",
|
|
111292
|
-
"onErrorStop": "終止工作流程",
|
|
111293
|
-
"onErrorOutput": "輸出至 error 連接埠",
|
|
111294
|
-
"onErrorHelp": "失敗處理說明",
|
|
111295
|
-
"onErrorHint": "重試後仍失敗時,將錯誤寫入系統 error 並沿現有連線繼續。成功時 error 為 null。取消、逾時、資源限制及結果不確定仍終止工作流程。",
|
|
111296
|
-
"systemOutputs": "系統輸出",
|
|
111297
|
-
"systemError": "錯誤資訊(系統)",
|
|
111298
|
-
"errorFields": {
|
|
111299
|
-
"error": "節點失敗時的錯誤資訊;成功時為 null。",
|
|
111300
|
-
"code": "用於識別錯誤類型的錯誤碼。",
|
|
111301
|
-
"message": "錯誤的說明資訊,敏感內容已遮蔽。",
|
|
111302
|
-
"nodeId": "發生錯誤的節點 ID。",
|
|
111303
|
-
"nodeName": "發生錯誤時的節點名稱。",
|
|
111304
|
-
"runId": "本次工作流程執行的 ID。",
|
|
111305
|
-
"executionId": "本次節點執行的 ID,多次重試共用此 ID。"
|
|
111306
|
-
}
|
|
111307
|
-
},
|
|
111308
|
-
"selectNode": "選取一個草稿節點即可檢視並編輯它。",
|
|
111309
|
-
"locateNode": "在畫布上定位此節點",
|
|
111310
|
-
"task": {
|
|
111311
|
-
"sharedPermissions": "使用 Flow 共用權限群組",
|
|
111312
|
-
"sharedPermissionsHint": "直接使用 Flow 共用權限群組已授權的所有 Actions,無需逐一新增。",
|
|
111313
|
-
"addAction": "新增 Action",
|
|
111314
|
-
"removeAction": "移除 Action",
|
|
111315
|
-
"actionAccount": "帳號",
|
|
111316
|
-
"chooseAccount": "選擇帳號",
|
|
111317
|
-
"permissionSaveFailed": "無法儲存 Code 權限,請重試。",
|
|
111318
|
-
"chatText": "對話文字",
|
|
111319
|
-
"connectorAction": "Connector 操作",
|
|
111320
|
-
"definition": "任務定義",
|
|
111321
|
-
"discardCode": "放棄變更",
|
|
111322
|
-
"editorLoading": "正在載入編輯器…",
|
|
111323
|
-
"editorUnavailable": "無法載入程式碼編輯器。",
|
|
111324
|
-
"inputPorts": "輸入埠",
|
|
111325
|
-
"javascriptModule": "程式碼",
|
|
111326
|
-
"missing": "引用的任務不存在。",
|
|
111327
|
-
"outputPorts": "輸出埠",
|
|
111328
|
-
"responseMode": "回應模式",
|
|
111329
|
-
"source": "原始碼",
|
|
111330
|
-
"structuredJson": "結構化 JSON",
|
|
111331
|
-
"retrySave": "重試儲存",
|
|
111332
|
-
"additionalInputs": "附加輸入"
|
|
111333
|
-
},
|
|
111334
|
-
"wait": {
|
|
111335
|
-
"approval": "通過或拒絕",
|
|
111336
|
-
"changeNotification": "更換",
|
|
111337
|
-
"continue": "繼續",
|
|
111338
|
-
"mode": "處理方式",
|
|
111339
|
-
"inputsLoading": "正在載入通知參數…",
|
|
111340
|
-
"pendingDescription": "待確認出口在開始等待時觸發一次,提供確認連結及相關資料。連接此出口可傳送訊息或執行其他步驟。",
|
|
111341
|
-
"prompt": "提示",
|
|
111342
|
-
"promptError": "提示必須包含 1 到 1,000 個字元。",
|
|
111343
|
-
"autoContinue": "自動繼續",
|
|
111344
|
-
"autoOff": "關閉",
|
|
111345
|
-
"autoAfter": "等待一段時間",
|
|
111346
|
-
"autoAt": "到指定時間",
|
|
111347
|
-
"autoSeconds": "等待時長(秒)",
|
|
111348
|
-
"autoDate": "日期和時間",
|
|
111349
|
-
"autoInvalid": "請輸入正數時長或有效的日期和時間。",
|
|
111350
|
-
"autoDescription": "可提前手動繼續。"
|
|
111351
|
-
},
|
|
111352
|
-
"title": "檢查器",
|
|
111353
|
-
"sources": {
|
|
111354
|
-
"loading": "正在載入輸入來源…",
|
|
111355
|
-
"loadFailed": "無法載入輸入來源,請重新開啟選單重試。",
|
|
111356
|
-
"checkFailed": "無法檢查此來源。",
|
|
111357
|
-
"select": "選擇輸入來源",
|
|
111358
|
-
"title": "輸入來源",
|
|
111359
|
-
"sourceMissing": "原輸入來源已不存在,請重新選擇。",
|
|
111360
|
-
"outputMissing": "「{{source}}」中找不到「{{output}}」,請重新選擇。",
|
|
111361
|
-
"wholeObject": "整個物件",
|
|
111362
|
-
"fieldMissing": "「{{output}}」中已不再宣告欄位 {{field}},請重新選擇。",
|
|
111363
|
-
"notReady": "執行到這裡時,「{{source}} {{handle}}」可能還沒有值。",
|
|
111364
|
-
"sourceConflict": "這些欄位可能同時有值:{{sources}}。這裡只能取一個。",
|
|
111365
|
-
"incompatibleRight": "右值類型不符合此比較的要求。",
|
|
111366
|
-
"incompatible": "不相容",
|
|
111367
|
-
"unverified": "無法驗證",
|
|
111368
|
-
"schemaIncompatible": "資料格式不符。",
|
|
111369
|
-
"schemaPathIncompatible": "「{{path}}」的資料格式不符。",
|
|
111370
|
-
"schemaCompareFailed": "無法檢查資料格式,請檢查 JSON Schema。",
|
|
111371
|
-
"binaryIncompatible": "不能使用二進位資料。",
|
|
111372
|
-
"artifactIncompatible": "不能使用檔案資料。",
|
|
111373
|
-
"nullableIncompatible": "不能為空,但所選欄位可能為空。",
|
|
111374
|
-
"typeIncompatible": "需要{{target}},但所選欄位是{{source}}。",
|
|
111375
|
-
"propertyTypeIncompatible": "「{{path}}」需要{{target}},實際是{{source}}。",
|
|
111376
|
-
"requiredIncompatible": "不一定包含必填屬性「{{property}}」。",
|
|
111377
|
-
"enumIncompatible": "可能出現不接受的值:{{values}}。",
|
|
111378
|
-
"constIncompatible": "只接受 {{target}},所選欄位固定為 {{source}}。",
|
|
111379
|
-
"constraintSubject": "「{{path}}」",
|
|
111380
|
-
"minLength": "{{subject}}至少需要 {{value}} 個字元。",
|
|
111381
|
-
"maxLength": "{{subject}}最多接受 {{value}} 個字元。",
|
|
111382
|
-
"pattern": "{{subject}}文字格式應符合 {{value}}。",
|
|
111383
|
-
"minimum": "{{subject}}不能小於 {{value}}。",
|
|
111384
|
-
"exclusiveMinimum": "{{subject}}必須大於 {{value}}。",
|
|
111385
|
-
"maximum": "{{subject}}不能大於 {{value}}。",
|
|
111386
|
-
"exclusiveMaximum": "{{subject}}必須小於 {{value}}。",
|
|
111387
|
-
"multipleOf": "{{subject}}必須是 {{value}} 的倍數。",
|
|
111388
|
-
"minItems": "{{subject}}至少需要 {{value}} 項。",
|
|
111389
|
-
"maxItems": "{{subject}}最多接受 {{value}} 項。",
|
|
111390
|
-
"minProperties": "{{subject}}至少需要 {{value}} 個屬性。",
|
|
111391
|
-
"maxProperties": "{{subject}}最多接受 {{value}} 個屬性。",
|
|
111392
|
-
"integer": "整數",
|
|
111393
|
-
"unknownType": "未知類型",
|
|
111394
|
-
"typeSeparator": "或"
|
|
111395
|
-
},
|
|
111396
|
-
"actions": {
|
|
111397
|
-
"flowAccess": "可用服務",
|
|
111398
|
-
"flowAccessHint": "管理此 Flow 中所有 Code 節點共用的連線",
|
|
111399
|
-
"chooseConnection": "選擇 {{provider}} Connection",
|
|
111400
|
-
"connectionDescription": "Connection 將寫入這次呼叫;是否允許使用仍由 Flow Provider Access 決定。",
|
|
111401
|
-
"title": "程式碼可呼叫的動作",
|
|
111402
|
-
"search": "搜尋應用程式或動作…",
|
|
111403
|
-
"description": "搜尋並新增這段程式碼需要呼叫的動作。",
|
|
111404
|
-
"empty": "沒有符合的 Action。",
|
|
111405
|
-
"remove": "移除",
|
|
111406
|
-
"default": "預設帳號",
|
|
111407
|
-
"defaultHint": "呼叫時未指定帳號,將使用此帳號。",
|
|
111408
|
-
"removeAction": "移除動作",
|
|
111409
|
-
"explicit": "在程式碼中明確選擇",
|
|
111410
|
-
"connect": "連接帳號",
|
|
111411
|
-
"refresh": "重新整理帳號",
|
|
111412
|
-
"aliases": "同步帳號別名",
|
|
111413
|
-
"add": "新增動作",
|
|
111414
|
-
"cancel": "取消",
|
|
111415
|
-
"loading": "搜尋中…",
|
|
111416
|
-
"needsAccount": "待連接帳號",
|
|
111417
|
-
"accounts": "{{count}} 個帳號",
|
|
111418
|
-
"public": "無需帳號",
|
|
111419
|
-
"allowed": "可用帳號",
|
|
111420
|
-
"unavailable": "無法使用",
|
|
111421
|
-
"details": "帳號詳情",
|
|
111422
|
-
"example": "呼叫範例",
|
|
111423
|
-
"syntax": "呼叫寫法",
|
|
111424
|
-
"nested": "分層寫法",
|
|
111425
|
-
"fullId": "完整 ID",
|
|
111426
|
-
"copy": "複製",
|
|
111427
|
-
"copied": "已複製",
|
|
111428
|
-
"copyError": "複製失敗,請選取範例程式碼手動複製。",
|
|
111429
|
-
"introDescription": "依需求新增動作,透過 {{context}} 呼叫外部應用程式。",
|
|
111430
|
-
"insertAction": "插入程式碼",
|
|
111431
|
-
"chooseAccounts": "管理帳號"
|
|
111432
|
-
},
|
|
111433
|
-
"comment": {
|
|
111434
|
-
"markdown": "Markdown",
|
|
111435
|
-
"preview": "預覽"
|
|
111436
|
-
},
|
|
111437
|
-
"ports": {
|
|
111438
|
-
"reorder": "調整 {{name}} 的順序",
|
|
111439
|
-
"reorderHint": "拖動調整組內順序,或聚焦後使用上、下方向鍵。",
|
|
111440
|
-
"moved": "{{name}} 已移至第 {{position}} 位。",
|
|
111441
|
-
"groupSettings": "群組設定",
|
|
111442
|
-
"connected": "已連接",
|
|
111443
|
-
"sort": "排序",
|
|
111444
|
-
"finishSorting": "完成排序",
|
|
111445
|
-
"inputsTitle": "輸入",
|
|
111446
|
-
"requiredInputs": "必填",
|
|
111447
|
-
"optionalInputs": "選填",
|
|
111448
|
-
"noInputs": "此節點不需要輸入資料",
|
|
111449
|
-
"noOutputs": "此節點不提供輸出資料",
|
|
111450
|
-
"outputsTitle": "輸出",
|
|
111451
|
-
"valuesTitle": "資料",
|
|
111452
|
-
"columnHandle": "Handle",
|
|
111453
|
-
"columnName": "名稱",
|
|
111454
|
-
"columnType": "類型",
|
|
111455
|
-
"columnValue": "值",
|
|
111456
|
-
"builtIn": {
|
|
111457
|
-
"cron": { "scheduledAt": "本次執行的排程觸發時間,採用 ISO 8601 格式。" },
|
|
111458
|
-
"webhook": {
|
|
111459
|
-
"headers": "此 Webhook 請求攜帶的請求標頭。",
|
|
111460
|
-
"query": "此 Webhook 請求攜帶的 URL 查詢參數。",
|
|
111461
|
-
"body": "此 Webhook 請求攜帶的請求本文。",
|
|
111462
|
-
"webhookUrl": "接收此次請求的 Webhook URL,不含查詢參數。"
|
|
111463
|
-
}
|
|
111464
|
-
},
|
|
111465
|
-
"startParametersTitle": "啟動參數"
|
|
111466
|
-
}
|
|
111467
|
-
},
|
|
111633
|
+
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"節點大綱\",\"backToOutline\":\"返回節點大綱\",\"emptyOutline\":\"暫無節點\",\"triggers\":\"觸發器\",\"nodes\":\"節點\",\"multipleSelected\":\"已選擇 {{count}} 個節點\",\"account\":{\"contactAdmin\":\"你沒有執行此操作的權限,請聯絡管理員。\",\"accessTitle\":\"存取權限\",\"manageFlowAccess\":\"Code 允許使用的連線\",\"configureAccess\":\"選擇可用帳號\",\"manageAccount\":\"管理帳號\",\"required\":\"待連線帳號\",\"addAccount\":\"新增帳號\",\"manage\":\"管理\",\"authorizationPending\":\"請在 Connection 頁面完成授權,再回到這裡重新整理這個帳號。\",\"chooseAccount\":\"選擇帳號\",\"deferred\":\"暫不設定\",\"clearDeferred\":\"清除選擇\",\"noAccounts\":\"暫無可用帳號\",\"connectBeforeRun\":\"請先連接 {{service}},這個節點才能執行或發布。\",\"connectService\":\"連接 {{service}}\",\"connection\":\"Connection\",\"loading\":\"正在載入 Connection…\",\"oomolBuiltIn\":\"OOMOL 內建帳號\",\"missing\":\"此節點選擇的帳號目前無法使用,請選擇其他帳號或管理帳號。\",\"refreshFailed\":\"無法重新整理 Connection。\",\"retry\":\"重試\",\"status\":{\"disconnected\":\"這個 Connection 已中斷。請重新連接或選擇其他帳號。\",\"error\":\"這個 Connection 發生錯誤。請修復它或選擇其他帳號。\",\"reauth_required\":\"這個 Connection 需要重新授權。請重新連接或選擇其他帳號。\"},\"statusUnavailable\":\"無法取得 {{action}} 的 Connection 狀態。\",\"teamDefault\":\"團隊預設\",\"title\":\"帳號\",\"unavailable\":\"無法使用\"},\"close\":\"關閉檢查器\",\"configurationRequired\":\"尚未完成設定\",\"diagnostics\":\"診斷\",\"errors\":{\"jsonObject\":\"{{label}} 必須是 JSON 物件。\",\"portDefinitions\":\"請輸入有效的埠定義。\"},\"node\":{\"nameDuplicate\":\"目前圖中已存在同名節點。\",\"nameEmpty\":\"節點名稱不能為空。\",\"timeout\":\"逾時時間(毫秒)\",\"maxExecutions\":\"節點執行上限\",\"maxExecutionsError\":\"節點執行上限必須是正整數。\",\"timeoutError\":\"逾時時間必須是以毫秒為單位的正整數。\",\"title\":\"節點設定\",\"description\":\"用途說明\",\"describe\":\"描述這個步驟要完成什麼。\",\"icon\":\"圖示\",\"name\":\"標題\",\"retry\":\"失敗重試\",\"retryCount\":\"最多重試 {{count}} 次\",\"retryInterval\":\"重試間隔\",\"retryError\":\"間隔須為 1~60 整數秒。\",\"retryHint\":\"重試次數是首次執行失敗後的追加次數。重試會重新執行整個節點,可能重複外部操作。逾時包含全部嘗試和等待間隔。\",\"retryNone\":\"不重試\",\"retrySeconds\":\"秒\",\"retryHelp\":\"重試說明\",\"retryOnce\":\"最多重試 1 次\",\"onError\":\"失敗處理\",\"onErrorStop\":\"終止工作流程\",\"onErrorOutput\":\"輸出至 error 連接埠\",\"onErrorHelp\":\"失敗處理說明\",\"onErrorHint\":\"重試後仍失敗時,將錯誤寫入系統 error 並沿現有連線繼續。成功時 error 為 null。取消、逾時、資源限制及結果不確定仍終止工作流程。\",\"systemOutputs\":\"系統輸出\",\"systemError\":\"錯誤資訊(系統)\",\"errorFields\":{\"error\":\"節點失敗時的錯誤資訊;成功時為 null。\",\"code\":\"用於識別錯誤類型的錯誤碼。\",\"message\":\"錯誤的說明資訊,敏感內容已遮蔽。\",\"nodeId\":\"發生錯誤的節點 ID。\",\"nodeName\":\"發生錯誤時的節點名稱。\",\"runId\":\"本次工作流程執行的 ID。\",\"executionId\":\"本次節點執行的 ID,多次重試共用此 ID。\"}},\"selectNode\":\"選取一個草稿節點即可檢視並編輯它。\",\"locateNode\":\"在畫布上定位此節點\",\"task\":{\"sharedPermissions\":\"使用 Flow 共用權限群組\",\"sharedPermissionsHint\":\"直接使用 Flow 共用權限群組已授權的所有 Actions,無需逐一新增。\",\"httpHosts\":\"HTTP 主機\",\"httpHostsHint\":\"Code 可透過 context.fetch 存取的主機,每行一個。*.example.com 符合其子網域。\",\"httpHostsInvalid\":\"「{{host}}」不是有效的主機,請填寫 api.example.com 這類主機名稱。\",\"httpHostsLimit\":\"最多宣告 {{count}} 個主機。\",\"addAction\":\"新增 Action\",\"removeAction\":\"移除 Action\",\"actionAccount\":\"帳號\",\"chooseAccount\":\"選擇帳號\",\"permissionSaveFailed\":\"無法儲存 Code 權限,請重試。\",\"chatText\":\"對話文字\",\"connectorAction\":\"Connector 操作\",\"definition\":\"任務定義\",\"discardCode\":\"放棄變更\",\"editorLoading\":\"正在載入編輯器…\",\"editorUnavailable\":\"無法載入程式碼編輯器。\",\"inputPorts\":\"輸入埠\",\"javascriptModule\":\"程式碼\",\"missing\":\"引用的任務不存在。\",\"outputPorts\":\"輸出埠\",\"responseMode\":\"回應模式\",\"source\":\"原始碼\",\"structuredJson\":\"結構化 JSON\",\"retrySave\":\"重試儲存\",\"additionalInputs\":\"附加輸入\"},\"wait\":{\"approval\":\"通過或拒絕\",\"changeNotification\":\"更換\",\"continue\":\"繼續\",\"mode\":\"處理方式\",\"inputsLoading\":\"正在載入通知參數…\",\"pendingDescription\":\"待確認出口在開始等待時觸發一次,提供確認連結及相關資料。連接此出口可傳送訊息或執行其他步驟。\",\"prompt\":\"提示\",\"promptError\":\"提示必須包含 1 到 1,000 個字元。\",\"autoContinue\":\"自動繼續\",\"autoOff\":\"關閉\",\"autoAfter\":\"等待一段時間\",\"autoAt\":\"到指定時間\",\"autoSeconds\":\"等待時長(秒)\",\"autoDate\":\"日期和時間\",\"autoInvalid\":\"請輸入正數時長或有效的日期和時間。\",\"autoDescription\":\"可提前手動繼續。\"},\"title\":\"檢查器\",\"sources\":{\"loading\":\"正在載入輸入來源…\",\"loadFailed\":\"無法載入輸入來源,請重新開啟選單重試。\",\"checkFailed\":\"無法檢查此來源。\",\"select\":\"選擇輸入來源\",\"title\":\"輸入來源\",\"sourceMissing\":\"原輸入來源已不存在,請重新選擇。\",\"outputMissing\":\"「{{source}}」中找不到「{{output}}」,請重新選擇。\",\"wholeObject\":\"整個物件\",\"fieldMissing\":\"「{{output}}」中已不再宣告欄位 {{field}},請重新選擇。\",\"notReady\":\"執行到這裡時,「{{source}} {{handle}}」可能還沒有值。\",\"sourceConflict\":\"這些欄位可能同時有值:{{sources}}。這裡只能取一個。\",\"incompatibleRight\":\"右值類型不符合此比較的要求。\",\"incompatible\":\"不相容\",\"unverified\":\"無法驗證\",\"schemaIncompatible\":\"資料格式不符。\",\"schemaPathIncompatible\":\"「{{path}}」的資料格式不符。\",\"schemaCompareFailed\":\"無法檢查資料格式,請檢查 JSON Schema。\",\"binaryIncompatible\":\"不能使用二進位資料。\",\"artifactIncompatible\":\"不能使用檔案資料。\",\"nullableIncompatible\":\"不能為空,但所選欄位可能為空。\",\"typeIncompatible\":\"需要{{target}},但所選欄位是{{source}}。\",\"propertyTypeIncompatible\":\"「{{path}}」需要{{target}},實際是{{source}}。\",\"requiredIncompatible\":\"不一定包含必填屬性「{{property}}」。\",\"enumIncompatible\":\"可能出現不接受的值:{{values}}。\",\"constIncompatible\":\"只接受 {{target}},所選欄位固定為 {{source}}。\",\"constraintSubject\":\"「{{path}}」\",\"minLength\":\"{{subject}}至少需要 {{value}} 個字元。\",\"maxLength\":\"{{subject}}最多接受 {{value}} 個字元。\",\"pattern\":\"{{subject}}文字格式應符合 {{value}}。\",\"minimum\":\"{{subject}}不能小於 {{value}}。\",\"exclusiveMinimum\":\"{{subject}}必須大於 {{value}}。\",\"maximum\":\"{{subject}}不能大於 {{value}}。\",\"exclusiveMaximum\":\"{{subject}}必須小於 {{value}}。\",\"multipleOf\":\"{{subject}}必須是 {{value}} 的倍數。\",\"minItems\":\"{{subject}}至少需要 {{value}} 項。\",\"maxItems\":\"{{subject}}最多接受 {{value}} 項。\",\"minProperties\":\"{{subject}}至少需要 {{value}} 個屬性。\",\"maxProperties\":\"{{subject}}最多接受 {{value}} 個屬性。\",\"integer\":\"整數\",\"unknownType\":\"未知類型\",\"typeSeparator\":\"或\"},\"actions\":{\"flowAccess\":\"可用服務\",\"flowAccessHint\":\"管理此 Flow 中所有 Code 節點共用的連線\",\"chooseConnection\":\"選擇 {{provider}} Connection\",\"connectionDescription\":\"Connection 將寫入這次呼叫;是否允許使用仍由 Flow Provider Access 決定。\",\"title\":\"程式碼可呼叫的動作\",\"search\":\"搜尋應用程式或動作…\",\"description\":\"搜尋並新增這段程式碼需要呼叫的動作。\",\"empty\":\"沒有符合的 Action。\",\"remove\":\"移除\",\"default\":\"預設帳號\",\"defaultHint\":\"呼叫時未指定帳號,將使用此帳號。\",\"removeAction\":\"移除動作\",\"explicit\":\"在程式碼中明確選擇\",\"connect\":\"連接帳號\",\"refresh\":\"重新整理帳號\",\"aliases\":\"同步帳號別名\",\"add\":\"新增動作\",\"cancel\":\"取消\",\"loading\":\"搜尋中…\",\"needsAccount\":\"待連接帳號\",\"accounts\":\"{{count}} 個帳號\",\"public\":\"無需帳號\",\"allowed\":\"可用帳號\",\"unavailable\":\"無法使用\",\"details\":\"帳號詳情\",\"example\":\"呼叫範例\",\"syntax\":\"呼叫寫法\",\"nested\":\"分層寫法\",\"fullId\":\"完整 ID\",\"copy\":\"複製\",\"copied\":\"已複製\",\"copyError\":\"複製失敗,請選取範例程式碼手動複製。\",\"introDescription\":\"依需求新增動作,透過 {{context}} 呼叫外部應用程式。\",\"insertAction\":\"插入程式碼\",\"chooseAccounts\":\"管理帳號\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"預覽\"},\"ports\":{\"reorder\":\"調整 {{name}} 的順序\",\"reorderHint\":\"拖動調整組內順序,或聚焦後使用上、下方向鍵。\",\"moved\":\"{{name}} 已移至第 {{position}} 位。\",\"groupSettings\":\"群組設定\",\"connected\":\"已連接\",\"sort\":\"排序\",\"finishSorting\":\"完成排序\",\"inputsTitle\":\"輸入\",\"requiredInputs\":\"必填\",\"optionalInputs\":\"選填\",\"noInputs\":\"此節點不需要輸入資料\",\"noOutputs\":\"此節點不提供輸出資料\",\"outputsTitle\":\"輸出\",\"valuesTitle\":\"資料\",\"columnHandle\":\"Handle\",\"columnName\":\"名稱\",\"columnType\":\"類型\",\"columnValue\":\"值\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"本次執行的排程觸發時間,採用 ISO 8601 格式。\"},\"webhook\":{\"headers\":\"此 Webhook 請求攜帶的請求標頭。\",\"query\":\"此 Webhook 請求攜帶的 URL 查詢參數。\",\"body\":\"此 Webhook 請求攜帶的請求本文。\",\"webhookUrl\":\"接收此次請求的 Webhook URL,不含查詢參數。\"}},\"startParametersTitle\":\"啟動參數\"}}"),
|
|
111468
111634
|
language: { "label": "語言" },
|
|
111469
111635
|
notice: {
|
|
111470
111636
|
"connectorUnconfigured": "目前部署尚未設定 Connector。",
|
|
@@ -112482,6 +112648,38 @@ var resources = {
|
|
|
112482
112648
|
"aliasInvalid": "呼叫名稱不能重複,長度為 1–64 個字元,以英文字母開頭,僅包含英文字母、數字、底線或連字號。",
|
|
112483
112649
|
"connector": "連接器",
|
|
112484
112650
|
"workflow": "工作流程"
|
|
112651
|
+
},
|
|
112652
|
+
httpRequest: {
|
|
112653
|
+
"title": "HTTP 請求",
|
|
112654
|
+
"description": "傳送 HTTP 請求,在工作流程中使用回應資料。",
|
|
112655
|
+
"method": "請求方法",
|
|
112656
|
+
"query": "查詢參數",
|
|
112657
|
+
"headers": "請求標頭",
|
|
112658
|
+
"bodyFormat": "請求本文格式",
|
|
112659
|
+
"none": "無",
|
|
112660
|
+
"text": "文字",
|
|
112661
|
+
"authentication": "驗證",
|
|
112662
|
+
"location": "位置",
|
|
112663
|
+
"keyName": "金鑰名稱",
|
|
112664
|
+
"responseFormat": "回應格式",
|
|
112665
|
+
"auto": "自動",
|
|
112666
|
+
"statusPolicy": "接受的狀態碼",
|
|
112667
|
+
"success": "2xx",
|
|
112668
|
+
"all": "所有狀態碼",
|
|
112669
|
+
"saveFailed": "無法儲存請求設定。",
|
|
112670
|
+
"retry": "重試",
|
|
112671
|
+
"bodyUnsupported": "GET 和 HEAD 不支援請求本文。",
|
|
112672
|
+
"parameterNamesInvalid": "參數名稱不可為空或重複。",
|
|
112673
|
+
"headerNameInvalid": "HTTP 請求標頭名稱無效。",
|
|
112674
|
+
"keyNameRequired": "請填寫 API Key 名稱。",
|
|
112675
|
+
"authConflict": "驗證與請求參數衝突。",
|
|
112676
|
+
"body": "請求本文",
|
|
112677
|
+
"username": "使用者名稱",
|
|
112678
|
+
"password": "密碼",
|
|
112679
|
+
"keyValue": "金鑰值",
|
|
112680
|
+
"responseOutputs": "回應輸出",
|
|
112681
|
+
"authenticationType": "驗證方式",
|
|
112682
|
+
"responseSettings": "回應設定"
|
|
112485
112683
|
}
|
|
112486
112684
|
},
|
|
112487
112685
|
"ja": {
|
|
@@ -112712,7 +112910,7 @@ var resources = {
|
|
|
112712
112910
|
"exportSvgFailed": "SVG 画像をエクスポートできませんでした。もう一度お試しください。",
|
|
112713
112911
|
"importInvalid": "無効または未対応のワークフローファイルです。"
|
|
112714
112912
|
},
|
|
112715
|
-
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"ノード一覧\",\"backToOutline\":\"ノード一覧に戻る\",\"emptyOutline\":\"ノードはまだありません\",\"triggers\":\"トリガー\",\"nodes\":\"ノード\",\"multipleSelected\":\"{{count}} 個のノードを選択中\",\"account\":{\"contactAdmin\":\"この操作を実行する権限がありません。管理者にお問い合わせください。\",\"accessTitle\":\"アクセス権限\",\"manageFlowAccess\":\"Code で使用できる接続\",\"configureAccess\":\"アカウントを選択\",\"manageAccount\":\"アカウントを管理\",\"required\":\"アカウント接続が必要\",\"addAccount\":\"アカウントを追加\",\"manage\":\"管理\",\"authorizationPending\":\"Connection ページで認証を完了してください。ここに戻ると、このアカウントが更新されます。\",\"chooseAccount\":\"アカウントを選択\",\"deferred\":\"今は設定しない\",\"clearDeferred\":\"選択をクリア\",\"noAccounts\":\"利用可能なアカウントがありません\",\"connectBeforeRun\":\"このノードを実行または公開するには、先に {{service}} を接続してください。\",\"connectService\":\"{{service}} を接続\",\"connection\":\"Connection\",\"loading\":\"Connection を読み込み中…\",\"oomolBuiltIn\":\"OOMOL 組み込みアカウント\",\"missing\":\"このノードで選択されたアカウントは現在利用できません。別のアカウントを選択するか、アカウントを管理してください。\",\"refreshFailed\":\"Connection を更新できませんでした。\",\"retry\":\"再試行\",\"status\":{\"disconnected\":\"この Connection は切断されています。再接続するか、別のアカウントを選択してください。\",\"error\":\"この Connection にエラーがあります。修復するか、別のアカウントを選択してください。\",\"reauth_required\":\"この Connection は再認証が必要です。再接続するか、別のアカウントを選択してください。\"},\"statusUnavailable\":\"{{action}} の Connection 状態を取得できません。\",\"teamDefault\":\"チームのデフォルト\",\"title\":\"アカウント\",\"unavailable\":\"利用不可\"},\"close\":\"インスペクターを閉じる\",\"configurationRequired\":\"設定が必要\",\"diagnostics\":\"診断\",\"errors\":{\"jsonObject\":\"{{label}} は JSON オブジェクトである必要があります。\",\"portDefinitions\":\"有効なポート定義を入力してください。\"},\"node\":{\"nameDuplicate\":\"このグラフには同じ名前のノードが既に存在します。\",\"nameEmpty\":\"ノード名を空にすることはできません。\",\"timeout\":\"タイムアウト(ミリ秒)\",\"maxExecutions\":\"ノード実行上限\",\"maxExecutionsError\":\"ノード実行上限は正の整数で指定してください。\",\"timeoutError\":\"タイムアウトはミリ秒単位の正の整数で指定してください。\",\"title\":\"ノード設定\",\"description\":\"目的\",\"describe\":\"このステップの目的を記述します。\",\"icon\":\"アイコン\",\"name\":\"タイトル\",\"retry\":\"失敗時の再試行\",\"retryCount\":\"最大 {{count}} 回再試行\",\"retryInterval\":\"再試行の間隔\",\"retryError\":\"間隔は 1~60 の整数秒で指定してください。\",\"retryHint\":\"再試行回数は、初回の実行に失敗した後に追加する試行の回数です。再試行はノード全体を再実行するため、外部操作が重複する場合があります。タイムアウトには全試行と待機時間を含みます。\",\"retryNone\":\"再試行しない\",\"retrySeconds\":\"秒\",\"retryHelp\":\"再試行について\",\"retryOnce\":\"最大 1 回再試行\",\"onError\":\"失敗時の処理\",\"onErrorStop\":\"ワークフローを停止\",\"onErrorOutput\":\"error ポートに出力\",\"onErrorHelp\":\"失敗時の処理について\",\"onErrorHint\":\"再試行後も失敗した場合、システム error にエラーを出力して既存の接続で続行します。成功時は null です。キャンセル、タイムアウト、リソース制限、結果不明の場合は停止します。\",\"systemOutputs\":\"システム出力\",\"systemError\":\"エラー情報(システム)\",\"errorFields\":{\"error\":\"ノードが失敗した場合のエラー情報。成功時は null です。\",\"code\":\"エラーの種類を識別するコード。\",\"message\":\"機密情報をマスクしたエラーの説明。\",\"nodeId\":\"エラーが発生したノードの ID。\",\"nodeName\":\"エラー発生時のノード名。\",\"runId\":\"今回のワークフロー実行の ID。\",\"executionId\":\"今回のノード実行の ID。再試行でも同じ ID を使用します。\"}},\"selectNode\":\"ドラフトのノードを 1 つ選択すると、内容を確認して編集できます。\",\"locateNode\":\"キャンバス上でこのノードを表示\",\"task\":{\"sharedPermissions\":\"Flow の共有権限グループを使用\",\"sharedPermissionsHint\":\"Flow の共有権限グループで許可されたすべての Action を使用します。個別の追加は不要です。\",\"addAction\":\"Action を追加\",\"removeAction\":\"Action を削除\",\"actionAccount\":\"アカウント\",\"chooseAccount\":\"アカウントを選択\",\"permissionSaveFailed\":\"Code の権限を保存できませんでした。再試行してください。\",\"chatText\":\"チャットテキスト\",\"connectorAction\":\"Connector アクション\",\"definition\":\"タスク定義\",\"discardCode\":\"変更を破棄\",\"editorLoading\":\"エディターを読み込み中…\",\"editorUnavailable\":\"コードエディターを読み込めませんでした。\",\"inputPorts\":\"入力ポート\",\"javascriptModule\":\"コード\",\"missing\":\"参照しているタスクが存在しません。\",\"outputPorts\":\"出力ポート\",\"responseMode\":\"応答モード\",\"source\":\"ソースコード\",\"structuredJson\":\"構造化 JSON\",\"retrySave\":\"保存を再試行\",\"additionalInputs\":\"追加入力\"},\"wait\":{\"approval\":\"承認または拒否\",\"changeNotification\":\"変更\",\"continue\":\"続行\",\"mode\":\"処理方法\",\"inputsLoading\":\"通知パラメーターを読み込んでいます…\",\"pendingDescription\":\"確認待ち出力は待機開始時に一度だけ発火し、確認リンクと関連データを提供します。接続先でメッセージの送信や他のステップを実行できます。\",\"prompt\":\"プロンプト\",\"promptError\":\"プロンプトは1〜1,000文字で入力してください。\",\"autoContinue\":\"自動続行\",\"autoOff\":\"オフ\",\"autoAfter\":\"一定時間後\",\"autoAt\":\"指定日時\",\"autoSeconds\":\"待機時間(秒)\",\"autoDate\":\"日時\",\"autoInvalid\":\"正の待機時間または有効な日時を入力してください。\",\"autoDescription\":\"予定時刻前に手動で続行できます。\"},\"title\":\"インスペクター\",\"sources\":{\"loading\":\"入力元を読み込み中…\",\"loadFailed\":\"入力元を読み込めません。メニューを開き直してください。\",\"checkFailed\":\"このソースを確認できませんでした。\",\"select\":\"入力元を選択\",\"title\":\"入力元\",\"sourceMissing\":\"元の入力元は存在しません。選択し直してください。\",\"outputMissing\":\"「{{source}}」に「{{output}}」が見つかりません。選択し直してください。\",\"wholeObject\":\"オブジェクト全体\",\"fieldMissing\":\"「{{output}}」にフィールド {{field}} が宣言されていません。選択し直してください。\",\"notReady\":\"ここを実行するとき、「{{source}} {{handle}}」にまだ値がない可能性があります。\",\"sourceConflict\":\"同時に値を持つ可能性があります:{{sources}}。ここでは 1 つだけ使用できます。\",\"incompatibleRight\":\"右辺の値の型はこの比較に対応していません。\",\"incompatible\":\"非互換\",\"unverified\":\"未検証\",\"schemaIncompatible\":\"データ形式が一致しません。\",\"schemaPathIncompatible\":\"「{{path}}」のデータ形式が一致しません。\",\"schemaCompareFailed\":\"データ形式を確認できません。JSON Schema を確認してください。\",\"binaryIncompatible\":\"バイナリデータは使用できません。\",\"artifactIncompatible\":\"ファイルデータは使用できません。\",\"nullableIncompatible\":\"値が必要ですが、選択したフィールドは空になる可能性があります。\",\"typeIncompatible\":\"{{target}}が必要ですが、選択したフィールドは{{source}}です。\",\"propertyTypeIncompatible\":\"「{{path}}」は{{target}}である必要がありますが、実際は{{source}}です。\",\"requiredIncompatible\":\"必須プロパティ「{{property}}」がない可能性があります。\",\"enumIncompatible\":\"使用できない値が含まれる可能性があります:{{values}}。\",\"constIncompatible\":\"{{target}}のみ使用できますが、選択したフィールドは常に {{source}} です。\",\"constraintSubject\":\"「{{path}}」は\",\"minLength\":\"{{subject}}少なくとも {{value}} 文字必要です。\",\"maxLength\":\"{{subject}}最大 {{value}} 文字です。\",\"pattern\":\"{{subject}}{{value}} に一致する必要があります。\",\"minimum\":\"{{subject}}{{value}} 未満にできません。\",\"exclusiveMinimum\":\"{{subject}}{{value}} より大きい必要があります。\",\"maximum\":\"{{subject}}{{value}} を超えられません。\",\"exclusiveMaximum\":\"{{subject}}{{value}} より小さい必要があります。\",\"multipleOf\":\"{{subject}}{{value}} の倍数である必要があります。\",\"minItems\":\"{{subject}}少なくとも {{value}} 項必要です。\",\"maxItems\":\"{{subject}}最大 {{value}} 項です。\",\"minProperties\":\"{{subject}}少なくとも {{value}} 個のプロパティが必要です。\",\"maxProperties\":\"{{subject}}最大 {{value}} 個のプロパティです。\",\"integer\":\"整数\",\"unknownType\":\"不明な型\",\"typeSeparator\":\"または\"},\"actions\":{\"flowAccess\":\"利用可能なサービス\",\"flowAccessHint\":\"この Flow のすべての Code ノードで共有する接続を管理\",\"chooseConnection\":\"{{provider}} Connection を選択\",\"connectionDescription\":\"Connection はこの呼び出しに挿入されます。使用可否は引き続き Flow Provider Access によって制御されます。\",\"title\":\"このコードから呼び出せるアクション\",\"search\":\"Action を検索\",\"description\":\"このコードで使用する Action とアカウントを選択します。\",\"empty\":\"一致する Action はありません。\",\"remove\":\"削除\",\"default\":\"既定のアカウント\",\"defaultHint\":\"呼び出し時にアカウントを指定しない場合に使用します。\",\"removeAction\":\"アクションを削除\",\"explicit\":\"コード内で明示的に選択\",\"connect\":\"アカウントを接続\",\"refresh\":\"アカウントを更新\",\"aliases\":\"保存済みの別名を更新\",\"add\":\"アクションを追加\",\"cancel\":\"キャンセル\",\"loading\":\"検索中…\",\"needsAccount\":\"アカウントを接続\",\"accounts\":\"{{count}} アカウント\",\"public\":\"アカウント不要\",\"allowed\":\"使用するアカウント\",\"unavailable\":\"利用不可\",\"details\":\"接続の詳細\",\"example\":\"呼び出し例\",\"syntax\":\"呼び出し形式\",\"nested\":\"プロバイダー形式\",\"fullId\":\"完全な ID\",\"copy\":\"コピー\",\"copied\":\"コピー済み\",\"copyError\":\"コピーできませんでした。コードを選択して手動でコピーしてください。\",\"introDescription\":\"必要に応じてアクションを追加し、{{context}} から外部アプリを呼び出せます。\",\"insertAction\":\"コードを挿入\",\"chooseAccounts\":\"アカウントを管理\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"プレビュー\"},\"ports\":{\"reorder\":\"{{name}} の順序を変更\",\"reorderHint\":\"ドラッグでグループ内の順序を変更。フォーカス時は上下キーでも移動できます。\",\"moved\":\"{{name}} を {{position}} 番目に移動しました。\",\"groupSettings\":\"グループ設定\",\"connected\":\"接続済み\",\"sort\":\"並べ替え\",\"finishSorting\":\"並べ替えを完了\",\"inputsTitle\":\"入力\",\"requiredInputs\":\"必須\",\"optionalInputs\":\"任意\",\"noInputs\":\"このノードには入力データが必要ありません。\",\"noOutputs\":\"このノードは出力データを提供しません。\",\"outputsTitle\":\"出力\",\"valuesTitle\":\"値\",\"columnHandle\":\"Handle\",\"columnName\":\"名前\",\"columnType\":\"型\",\"columnValue\":\"値\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"この実行をトリガーした予定時刻(ISO 8601 形式)です。\"},\"webhook\":{\"headers\":\"この Webhook リクエストで受信したリクエストヘッダーです。\",\"query\":\"この Webhook リクエストで受信した URL クエリパラメーターです。\",\"body\":\"この Webhook リクエストで受信したリクエストボディです。\",\"webhookUrl\":\"このリクエストを受信した Webhook URL(クエリパラメーターを除く)です。\"}},\"startParametersTitle\":\"開始パラメーター\"}}"),
|
|
112913
|
+
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"ノード一覧\",\"backToOutline\":\"ノード一覧に戻る\",\"emptyOutline\":\"ノードはまだありません\",\"triggers\":\"トリガー\",\"nodes\":\"ノード\",\"multipleSelected\":\"{{count}} 個のノードを選択中\",\"account\":{\"contactAdmin\":\"この操作を実行する権限がありません。管理者にお問い合わせください。\",\"accessTitle\":\"アクセス権限\",\"manageFlowAccess\":\"Code で使用できる接続\",\"configureAccess\":\"アカウントを選択\",\"manageAccount\":\"アカウントを管理\",\"required\":\"アカウント接続が必要\",\"addAccount\":\"アカウントを追加\",\"manage\":\"管理\",\"authorizationPending\":\"Connection ページで認証を完了してください。ここに戻ると、このアカウントが更新されます。\",\"chooseAccount\":\"アカウントを選択\",\"deferred\":\"今は設定しない\",\"clearDeferred\":\"選択をクリア\",\"noAccounts\":\"利用可能なアカウントがありません\",\"connectBeforeRun\":\"このノードを実行または公開するには、先に {{service}} を接続してください。\",\"connectService\":\"{{service}} を接続\",\"connection\":\"Connection\",\"loading\":\"Connection を読み込み中…\",\"oomolBuiltIn\":\"OOMOL 組み込みアカウント\",\"missing\":\"このノードで選択されたアカウントは現在利用できません。別のアカウントを選択するか、アカウントを管理してください。\",\"refreshFailed\":\"Connection を更新できませんでした。\",\"retry\":\"再試行\",\"status\":{\"disconnected\":\"この Connection は切断されています。再接続するか、別のアカウントを選択してください。\",\"error\":\"この Connection にエラーがあります。修復するか、別のアカウントを選択してください。\",\"reauth_required\":\"この Connection は再認証が必要です。再接続するか、別のアカウントを選択してください。\"},\"statusUnavailable\":\"{{action}} の Connection 状態を取得できません。\",\"teamDefault\":\"チームのデフォルト\",\"title\":\"アカウント\",\"unavailable\":\"利用不可\"},\"close\":\"インスペクターを閉じる\",\"configurationRequired\":\"設定が必要\",\"diagnostics\":\"診断\",\"errors\":{\"jsonObject\":\"{{label}} は JSON オブジェクトである必要があります。\",\"portDefinitions\":\"有効なポート定義を入力してください。\"},\"node\":{\"nameDuplicate\":\"このグラフには同じ名前のノードが既に存在します。\",\"nameEmpty\":\"ノード名を空にすることはできません。\",\"timeout\":\"タイムアウト(ミリ秒)\",\"maxExecutions\":\"ノード実行上限\",\"maxExecutionsError\":\"ノード実行上限は正の整数で指定してください。\",\"timeoutError\":\"タイムアウトはミリ秒単位の正の整数で指定してください。\",\"title\":\"ノード設定\",\"description\":\"目的\",\"describe\":\"このステップの目的を記述します。\",\"icon\":\"アイコン\",\"name\":\"タイトル\",\"retry\":\"失敗時の再試行\",\"retryCount\":\"最大 {{count}} 回再試行\",\"retryInterval\":\"再試行の間隔\",\"retryError\":\"間隔は 1~60 の整数秒で指定してください。\",\"retryHint\":\"再試行回数は、初回の実行に失敗した後に追加する試行の回数です。再試行はノード全体を再実行するため、外部操作が重複する場合があります。タイムアウトには全試行と待機時間を含みます。\",\"retryNone\":\"再試行しない\",\"retrySeconds\":\"秒\",\"retryHelp\":\"再試行について\",\"retryOnce\":\"最大 1 回再試行\",\"onError\":\"失敗時の処理\",\"onErrorStop\":\"ワークフローを停止\",\"onErrorOutput\":\"error ポートに出力\",\"onErrorHelp\":\"失敗時の処理について\",\"onErrorHint\":\"再試行後も失敗した場合、システム error にエラーを出力して既存の接続で続行します。成功時は null です。キャンセル、タイムアウト、リソース制限、結果不明の場合は停止します。\",\"systemOutputs\":\"システム出力\",\"systemError\":\"エラー情報(システム)\",\"errorFields\":{\"error\":\"ノードが失敗した場合のエラー情報。成功時は null です。\",\"code\":\"エラーの種類を識別するコード。\",\"message\":\"機密情報をマスクしたエラーの説明。\",\"nodeId\":\"エラーが発生したノードの ID。\",\"nodeName\":\"エラー発生時のノード名。\",\"runId\":\"今回のワークフロー実行の ID。\",\"executionId\":\"今回のノード実行の ID。再試行でも同じ ID を使用します。\"}},\"selectNode\":\"ドラフトのノードを 1 つ選択すると、内容を確認して編集できます。\",\"locateNode\":\"キャンバス上でこのノードを表示\",\"task\":{\"sharedPermissions\":\"Flow の共有権限グループを使用\",\"sharedPermissionsHint\":\"Flow の共有権限グループで許可されたすべての Action を使用します。個別の追加は不要です。\",\"httpHosts\":\"HTTP ホスト\",\"httpHostsHint\":\"Code が context.fetch で呼び出せるホストを 1 行に 1 つ入力します。*.example.com はサブドメインに一致します。\",\"httpHostsInvalid\":\"「{{host}}」は有効なホストではありません。api.example.com のようなホスト名を入力してください。\",\"httpHostsLimit\":\"宣言できるホストは最大 {{count}} 個です。\",\"addAction\":\"Action を追加\",\"removeAction\":\"Action を削除\",\"actionAccount\":\"アカウント\",\"chooseAccount\":\"アカウントを選択\",\"permissionSaveFailed\":\"Code の権限を保存できませんでした。再試行してください。\",\"chatText\":\"チャットテキスト\",\"connectorAction\":\"Connector アクション\",\"definition\":\"タスク定義\",\"discardCode\":\"変更を破棄\",\"editorLoading\":\"エディターを読み込み中…\",\"editorUnavailable\":\"コードエディターを読み込めませんでした。\",\"inputPorts\":\"入力ポート\",\"javascriptModule\":\"コード\",\"missing\":\"参照しているタスクが存在しません。\",\"outputPorts\":\"出力ポート\",\"responseMode\":\"応答モード\",\"source\":\"ソースコード\",\"structuredJson\":\"構造化 JSON\",\"retrySave\":\"保存を再試行\",\"additionalInputs\":\"追加入力\"},\"wait\":{\"approval\":\"承認または拒否\",\"changeNotification\":\"変更\",\"continue\":\"続行\",\"mode\":\"処理方法\",\"inputsLoading\":\"通知パラメーターを読み込んでいます…\",\"pendingDescription\":\"確認待ち出力は待機開始時に一度だけ発火し、確認リンクと関連データを提供します。接続先でメッセージの送信や他のステップを実行できます。\",\"prompt\":\"プロンプト\",\"promptError\":\"プロンプトは1〜1,000文字で入力してください。\",\"autoContinue\":\"自動続行\",\"autoOff\":\"オフ\",\"autoAfter\":\"一定時間後\",\"autoAt\":\"指定日時\",\"autoSeconds\":\"待機時間(秒)\",\"autoDate\":\"日時\",\"autoInvalid\":\"正の待機時間または有効な日時を入力してください。\",\"autoDescription\":\"予定時刻前に手動で続行できます。\"},\"title\":\"インスペクター\",\"sources\":{\"loading\":\"入力元を読み込み中…\",\"loadFailed\":\"入力元を読み込めません。メニューを開き直してください。\",\"checkFailed\":\"このソースを確認できませんでした。\",\"select\":\"入力元を選択\",\"title\":\"入力元\",\"sourceMissing\":\"元の入力元は存在しません。選択し直してください。\",\"outputMissing\":\"「{{source}}」に「{{output}}」が見つかりません。選択し直してください。\",\"wholeObject\":\"オブジェクト全体\",\"fieldMissing\":\"「{{output}}」にフィールド {{field}} が宣言されていません。選択し直してください。\",\"notReady\":\"ここを実行するとき、「{{source}} {{handle}}」にまだ値がない可能性があります。\",\"sourceConflict\":\"同時に値を持つ可能性があります:{{sources}}。ここでは 1 つだけ使用できます。\",\"incompatibleRight\":\"右辺の値の型はこの比較に対応していません。\",\"incompatible\":\"非互換\",\"unverified\":\"未検証\",\"schemaIncompatible\":\"データ形式が一致しません。\",\"schemaPathIncompatible\":\"「{{path}}」のデータ形式が一致しません。\",\"schemaCompareFailed\":\"データ形式を確認できません。JSON Schema を確認してください。\",\"binaryIncompatible\":\"バイナリデータは使用できません。\",\"artifactIncompatible\":\"ファイルデータは使用できません。\",\"nullableIncompatible\":\"値が必要ですが、選択したフィールドは空になる可能性があります。\",\"typeIncompatible\":\"{{target}}が必要ですが、選択したフィールドは{{source}}です。\",\"propertyTypeIncompatible\":\"「{{path}}」は{{target}}である必要がありますが、実際は{{source}}です。\",\"requiredIncompatible\":\"必須プロパティ「{{property}}」がない可能性があります。\",\"enumIncompatible\":\"使用できない値が含まれる可能性があります:{{values}}。\",\"constIncompatible\":\"{{target}}のみ使用できますが、選択したフィールドは常に {{source}} です。\",\"constraintSubject\":\"「{{path}}」は\",\"minLength\":\"{{subject}}少なくとも {{value}} 文字必要です。\",\"maxLength\":\"{{subject}}最大 {{value}} 文字です。\",\"pattern\":\"{{subject}}{{value}} に一致する必要があります。\",\"minimum\":\"{{subject}}{{value}} 未満にできません。\",\"exclusiveMinimum\":\"{{subject}}{{value}} より大きい必要があります。\",\"maximum\":\"{{subject}}{{value}} を超えられません。\",\"exclusiveMaximum\":\"{{subject}}{{value}} より小さい必要があります。\",\"multipleOf\":\"{{subject}}{{value}} の倍数である必要があります。\",\"minItems\":\"{{subject}}少なくとも {{value}} 項必要です。\",\"maxItems\":\"{{subject}}最大 {{value}} 項です。\",\"minProperties\":\"{{subject}}少なくとも {{value}} 個のプロパティが必要です。\",\"maxProperties\":\"{{subject}}最大 {{value}} 個のプロパティです。\",\"integer\":\"整数\",\"unknownType\":\"不明な型\",\"typeSeparator\":\"または\"},\"actions\":{\"flowAccess\":\"利用可能なサービス\",\"flowAccessHint\":\"この Flow のすべての Code ノードで共有する接続を管理\",\"chooseConnection\":\"{{provider}} Connection を選択\",\"connectionDescription\":\"Connection はこの呼び出しに挿入されます。使用可否は引き続き Flow Provider Access によって制御されます。\",\"title\":\"このコードから呼び出せるアクション\",\"search\":\"Action を検索\",\"description\":\"このコードで使用する Action とアカウントを選択します。\",\"empty\":\"一致する Action はありません。\",\"remove\":\"削除\",\"default\":\"既定のアカウント\",\"defaultHint\":\"呼び出し時にアカウントを指定しない場合に使用します。\",\"removeAction\":\"アクションを削除\",\"explicit\":\"コード内で明示的に選択\",\"connect\":\"アカウントを接続\",\"refresh\":\"アカウントを更新\",\"aliases\":\"保存済みの別名を更新\",\"add\":\"アクションを追加\",\"cancel\":\"キャンセル\",\"loading\":\"検索中…\",\"needsAccount\":\"アカウントを接続\",\"accounts\":\"{{count}} アカウント\",\"public\":\"アカウント不要\",\"allowed\":\"使用するアカウント\",\"unavailable\":\"利用不可\",\"details\":\"接続の詳細\",\"example\":\"呼び出し例\",\"syntax\":\"呼び出し形式\",\"nested\":\"プロバイダー形式\",\"fullId\":\"完全な ID\",\"copy\":\"コピー\",\"copied\":\"コピー済み\",\"copyError\":\"コピーできませんでした。コードを選択して手動でコピーしてください。\",\"introDescription\":\"必要に応じてアクションを追加し、{{context}} から外部アプリを呼び出せます。\",\"insertAction\":\"コードを挿入\",\"chooseAccounts\":\"アカウントを管理\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"プレビュー\"},\"ports\":{\"reorder\":\"{{name}} の順序を変更\",\"reorderHint\":\"ドラッグでグループ内の順序を変更。フォーカス時は上下キーでも移動できます。\",\"moved\":\"{{name}} を {{position}} 番目に移動しました。\",\"groupSettings\":\"グループ設定\",\"connected\":\"接続済み\",\"sort\":\"並べ替え\",\"finishSorting\":\"並べ替えを完了\",\"inputsTitle\":\"入力\",\"requiredInputs\":\"必須\",\"optionalInputs\":\"任意\",\"noInputs\":\"このノードには入力データが必要ありません。\",\"noOutputs\":\"このノードは出力データを提供しません。\",\"outputsTitle\":\"出力\",\"valuesTitle\":\"値\",\"columnHandle\":\"Handle\",\"columnName\":\"名前\",\"columnType\":\"型\",\"columnValue\":\"値\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"この実行をトリガーした予定時刻(ISO 8601 形式)です。\"},\"webhook\":{\"headers\":\"この Webhook リクエストで受信したリクエストヘッダーです。\",\"query\":\"この Webhook リクエストで受信した URL クエリパラメーターです。\",\"body\":\"この Webhook リクエストで受信したリクエストボディです。\",\"webhookUrl\":\"このリクエストを受信した Webhook URL(クエリパラメーターを除く)です。\"}},\"startParametersTitle\":\"開始パラメーター\"}}"),
|
|
112716
112914
|
language: { "label": "言語" },
|
|
112717
112915
|
notice: {
|
|
112718
112916
|
"connectorUnconfigured": "このデプロイには Connector が設定されていません。",
|
|
@@ -113730,6 +113928,38 @@ var resources = {
|
|
|
113730
113928
|
"aliasInvalid": "呼び出し名は重複しない1~64文字で、英字で始まり、英数字、アンダースコア、ハイフンのみを使用してください。",
|
|
113731
113929
|
"connector": "コネクター",
|
|
113732
113930
|
"workflow": "ワークフロー"
|
|
113931
|
+
},
|
|
113932
|
+
httpRequest: {
|
|
113933
|
+
"title": "HTTP リクエスト",
|
|
113934
|
+
"description": "HTTP リクエストを送信し、ワークフローでレスポンスを使用します。",
|
|
113935
|
+
"method": "メソッド",
|
|
113936
|
+
"query": "クエリパラメーター",
|
|
113937
|
+
"headers": "リクエストヘッダー",
|
|
113938
|
+
"bodyFormat": "リクエスト本文形式",
|
|
113939
|
+
"none": "なし",
|
|
113940
|
+
"text": "テキスト",
|
|
113941
|
+
"authentication": "認証",
|
|
113942
|
+
"location": "位置",
|
|
113943
|
+
"keyName": "キー名",
|
|
113944
|
+
"responseFormat": "レスポンス形式",
|
|
113945
|
+
"auto": "自動",
|
|
113946
|
+
"statusPolicy": "成功とするステータスコード",
|
|
113947
|
+
"success": "2xx",
|
|
113948
|
+
"all": "すべてのコード",
|
|
113949
|
+
"saveFailed": "リクエスト設定を保存できません。",
|
|
113950
|
+
"retry": "再試行",
|
|
113951
|
+
"bodyUnsupported": "GET と HEAD は本文をサポートしていません。",
|
|
113952
|
+
"parameterNamesInvalid": "パラメーター名は空白や重複にできません。",
|
|
113953
|
+
"headerNameInvalid": "HTTP ヘッダー名が無効です。",
|
|
113954
|
+
"keyNameRequired": "API キー名を入力してください。",
|
|
113955
|
+
"authConflict": "認証とリクエストパラメーターが競合しています。",
|
|
113956
|
+
"body": "リクエスト本文",
|
|
113957
|
+
"username": "ユーザー名",
|
|
113958
|
+
"password": "パスワード",
|
|
113959
|
+
"keyValue": "キーの値",
|
|
113960
|
+
"responseOutputs": "レスポンス出力",
|
|
113961
|
+
"authenticationType": "認証方式",
|
|
113962
|
+
"responseSettings": "レスポンス設定"
|
|
113733
113963
|
}
|
|
113734
113964
|
},
|
|
113735
113965
|
"ko": {
|
|
@@ -113960,7 +114190,7 @@ var resources = {
|
|
|
113960
114190
|
"exportSvgFailed": "SVG 이미지를 내보내지 못했습니다. 다시 시도해 주세요.",
|
|
113961
114191
|
"importInvalid": "잘못되었거나 지원하지 않는 워크플로 파일입니다."
|
|
113962
114192
|
},
|
|
113963
|
-
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"노드 목록\",\"backToOutline\":\"노드 목록으로 돌아가기\",\"emptyOutline\":\"아직 노드가 없습니다\",\"triggers\":\"트리거\",\"nodes\":\"노드\",\"multipleSelected\":\"노드 {{count}}개 선택됨\",\"account\":{\"contactAdmin\":\"이 작업을 실행할 권한이 없습니다. 관리자에게 문의하세요.\",\"accessTitle\":\"접근 권한\",\"manageFlowAccess\":\"Code에서 사용할 수 있는 연결\",\"configureAccess\":\"계정 선택\",\"manageAccount\":\"계정 관리\",\"required\":\"계정 연결 필요\",\"addAccount\":\"계정 추가\",\"manage\":\"관리\",\"authorizationPending\":\"Connection 페이지에서 인증을 마친 뒤 여기로 돌아와 이 계정을 새로 고치세요.\",\"chooseAccount\":\"계정 선택\",\"deferred\":\"지금은 설정하지 않음\",\"clearDeferred\":\"선택 지우기\",\"noAccounts\":\"사용 가능한 계정이 없습니다\",\"connectBeforeRun\":\"이 블록을 실행하거나 게시하려면 먼저 {{service}}에 연결하세요.\",\"connectService\":\"{{service}} 연결\",\"connection\":\"Connection\",\"loading\":\"Connection 불러오는 중…\",\"oomolBuiltIn\":\"OOMOL 기본 제공 계정\",\"missing\":\"이 노드에서 선택한 계정을 현재 사용할 수 없습니다. 다른 계정을 선택하거나 계정을 관리하세요.\",\"refreshFailed\":\"Connection을 새로 고치지 못했습니다.\",\"retry\":\"다시 시도\",\"status\":{\"disconnected\":\"이 Connection은 연결이 끊어졌습니다. 다시 연결하거나 다른 계정을 선택하세요.\",\"error\":\"이 Connection에 오류가 있습니다. 문제를 해결하거나 다른 계정을 선택하세요.\",\"reauth_required\":\"이 Connection은 다시 인증해야 합니다. 다시 연결하거나 다른 계정을 선택하세요.\"},\"statusUnavailable\":\"{{action}}의 Connection 상태를 확인할 수 없습니다.\",\"teamDefault\":\"팀 기본값\",\"title\":\"계정\",\"unavailable\":\"사용할 수 없음\"},\"close\":\"인스펙터 닫기\",\"configurationRequired\":\"설정 필요\",\"diagnostics\":\"진단\",\"errors\":{\"jsonObject\":\"{{label}} 값은 JSON 객체여야 합니다.\",\"portDefinitions\":\"올바른 포트 정의를 입력하세요.\"},\"node\":{\"nameDuplicate\":\"이 그래프에 같은 이름의 노드가 이미 있습니다.\",\"nameEmpty\":\"노드 이름은 비워 둘 수 없습니다.\",\"timeout\":\"제한 시간(ms)\",\"maxExecutions\":\"노드 실행 한도\",\"maxExecutionsError\":\"노드 실행 한도는 양의 정수여야 합니다.\",\"timeoutError\":\"제한 시간은 밀리초 단위의 양의 정수여야 합니다.\",\"title\":\"노드 설정\",\"description\":\"목적\",\"describe\":\"이 단계의 목적을 설명하세요.\",\"icon\":\"아이콘\",\"name\":\"제목\",\"retry\":\"실패 시 재시도\",\"retryCount\":\"최대 {{count}}회 재시도\",\"retryInterval\":\"재시도 간격\",\"retryError\":\"간격은 1~60초의 정수로 입력하세요.\",\"retryHint\":\"재시도 횟수는 최초 실행 실패 후 추가로 시도하는 횟수입니다. 노드 전체를 다시 실행하므로 외부 작업이 중복될 수 있습니다. 제한 시간에는 모든 시도와 대기 시간이 포함됩니다.\",\"retryNone\":\"재시도 안 함\",\"retrySeconds\":\"초\",\"retryHelp\":\"재시도 안내\",\"retryOnce\":\"최대 1회 재시도\",\"onError\":\"실패 처리\",\"onErrorStop\":\"워크플로 중지\",\"onErrorOutput\":\"error 포트로 출력\",\"onErrorHelp\":\"실패 처리 안내\",\"onErrorHint\":\"재시도 후에도 실패하면 시스템 error에 오류를 기록하고 기존 연결을 따라 계속합니다. 성공 시 null입니다. 취소, 시간 초과, 리소스 제한 및 결과 불명 상태는 실행을 중지합니다.\",\"systemOutputs\":\"시스템 출력\",\"systemError\":\"오류 정보(시스템)\",\"errorFields\":{\"error\":\"노드 실패 시 오류 정보입니다. 성공 시 null입니다.\",\"code\":\"오류 유형을 식별하는 코드입니다.\",\"message\":\"민감한 내용이 가려진 오류 설명입니다.\",\"nodeId\":\"오류가 발생한 노드의 ID입니다.\",\"nodeName\":\"오류 발생 시점의 노드 이름입니다.\",\"runId\":\"이번 워크플로 실행의 ID입니다.\",\"executionId\":\"이번 노드 실행의 ID입니다. 재시도에서도 같은 ID를 사용합니다.\"}},\"selectNode\":\"확인하고 편집할 초안 노드를 하나 선택하세요.\",\"locateNode\":\"캔버스에서 이 노드 위치 보기\",\"task\":{\"sharedPermissions\":\"Flow 공유 권한 그룹 사용\",\"sharedPermissionsHint\":\"Flow 공유 권한 그룹에서 승인한 모든 Action을 사용합니다. 개별적으로 추가할 필요가 없습니다.\",\"addAction\":\"Action 추가\",\"removeAction\":\"Action 제거\",\"actionAccount\":\"계정\",\"chooseAccount\":\"계정 선택\",\"permissionSaveFailed\":\"Code 권한을 저장하지 못했습니다. 다시 시도하세요.\",\"chatText\":\"대화 텍스트\",\"connectorAction\":\"Connector 액션\",\"definition\":\"태스크 정의\",\"discardCode\":\"변경 사항 버리기\",\"editorLoading\":\"편집기 불러오는 중…\",\"editorUnavailable\":\"코드 편집기를 불러오지 못했습니다.\",\"inputPorts\":\"입력 포트\",\"javascriptModule\":\"코드\",\"missing\":\"참조된 태스크가 존재하지 않습니다.\",\"outputPorts\":\"출력 포트\",\"responseMode\":\"응답 모드\",\"source\":\"소스\",\"structuredJson\":\"구조화된 JSON\",\"retrySave\":\"저장 재시도\",\"additionalInputs\":\"추가 입력\"},\"wait\":{\"approval\":\"승인 또는 거부\",\"changeNotification\":\"변경\",\"continue\":\"계속\",\"mode\":\"처리 방식\",\"inputsLoading\":\"알림 매개변수를 불러오는 중…\",\"pendingDescription\":\"확인 대기 출력은 대기가 시작될 때 한 번 실행되어 확인 링크와 관련 데이터를 제공합니다. 연결하여 메시지를 보내거나 다른 단계를 실행할 수 있습니다.\",\"prompt\":\"프롬프트\",\"promptError\":\"프롬프트는 1~1,000자여야 합니다.\",\"autoContinue\":\"자동 계속\",\"autoOff\":\"끄기\",\"autoAfter\":\"일정 시간 후\",\"autoAt\":\"지정 시간에\",\"autoSeconds\":\"대기 시간(초)\",\"autoDate\":\"날짜 및 시간\",\"autoInvalid\":\"양수 대기 시간 또는 유효한 날짜와 시간을 입력하세요.\",\"autoDescription\":\"예정 시간 전에 수동으로 계속할 수 있습니다.\"},\"title\":\"인스펙터\",\"sources\":{\"loading\":\"입력 소스 불러오는 중…\",\"loadFailed\":\"입력 소스를 불러올 수 없습니다. 메뉴를 다시 열어 주세요.\",\"checkFailed\":\"이 소스를 확인할 수 없습니다.\",\"select\":\"입력 소스 선택\",\"title\":\"입력 소스\",\"sourceMissing\":\"기존 입력 소스가 더 이상 존재하지 않습니다. 다시 선택하세요.\",\"outputMissing\":\"“{{source}}”에서 “{{output}}”을(를) 찾을 수 없습니다. 다시 선택하세요.\",\"wholeObject\":\"전체 객체\",\"fieldMissing\":\"“{{output}}”에 {{field}} 필드가 선언되어 있지 않습니다. 다시 선택하세요.\",\"notReady\":\"여기까지 실행될 때 “{{source}} {{handle}}”에 아직 값이 없을 수 있습니다.\",\"sourceConflict\":\"다음 필드에 값이 동시에 있을 수 있습니다: {{sources}}. 여기서는 하나만 사용할 수 있습니다.\",\"incompatibleRight\":\"오른쪽 값의 형식이 이 비교와 호환되지 않습니다.\",\"incompatible\":\"호환되지 않음\",\"unverified\":\"확인되지 않음\",\"schemaIncompatible\":\"데이터 형식이 일치하지 않습니다.\",\"schemaPathIncompatible\":\"“{{path}}”의 데이터 형식이 일치하지 않습니다.\",\"schemaCompareFailed\":\"데이터 형식을 확인할 수 없습니다. JSON Schema를 확인하세요.\",\"binaryIncompatible\":\"바이너리 데이터는 사용할 수 없습니다.\",\"artifactIncompatible\":\"파일 데이터는 사용할 수 없습니다.\",\"nullableIncompatible\":\"값이 필요하지만 선택한 필드는 비어 있을 수 있습니다.\",\"typeIncompatible\":\"{{target}}이(가) 필요하지만 선택한 필드는 {{source}}입니다.\",\"propertyTypeIncompatible\":\"“{{path}}”은(는) {{target}}이어야 하지만 실제로는 {{source}}입니다.\",\"requiredIncompatible\":\"필수 속성 “{{property}}”이(가) 없을 수 있습니다.\",\"enumIncompatible\":\"허용되지 않는 값이 포함될 수 있습니다: {{values}}.\",\"constIncompatible\":\"{{target}}만 허용되지만 선택한 필드는 항상 {{source}}입니다.\",\"constraintSubject\":\"“{{path}}”은(는) \",\"minLength\":\"{{subject}}최소 {{value}}자여야 합니다.\",\"maxLength\":\"{{subject}}최대 {{value}}자여야 합니다.\",\"pattern\":\"{{subject}}{{value}} 형식과 일치해야 합니다.\",\"minimum\":\"{{subject}}{{value}}보다 작을 수 없습니다.\",\"exclusiveMinimum\":\"{{subject}}{{value}}보다 커야 합니다.\",\"maximum\":\"{{subject}}{{value}}보다 클 수 없습니다.\",\"exclusiveMaximum\":\"{{subject}}{{value}}보다 작아야 합니다.\",\"multipleOf\":\"{{subject}}{{value}}의 배수여야 합니다.\",\"minItems\":\"{{subject}}최소 {{value}}개 항목이 필요합니다.\",\"maxItems\":\"{{subject}}최대 {{value}}개 항목을 허용합니다.\",\"minProperties\":\"{{subject}}최소 {{value}}개 속성이 필요합니다.\",\"maxProperties\":\"{{subject}}최대 {{value}}개 속성을 허용합니다.\",\"integer\":\"정수\",\"unknownType\":\"알 수 없는 유형\",\"typeSeparator\":\" 또는 \"},\"actions\":{\"flowAccess\":\"사용 가능한 서비스\",\"flowAccessHint\":\"이 Flow의 모든 Code 노드가 공유하는 연결 관리\",\"chooseConnection\":\"{{provider}} Connection 선택\",\"connectionDescription\":\"Connection이 이 호출에 삽입됩니다. 사용 가능 여부는 계속 Flow Provider Access에서 제어합니다.\",\"title\":\"이 코드에서 호출할 수 있는 작업\",\"search\":\"Action 검색\",\"description\":\"이 코드에서 사용할 Action과 계정을 선택하세요.\",\"empty\":\"일치하는 Action이 없습니다.\",\"remove\":\"제거\",\"default\":\"기본 계정\",\"defaultHint\":\"호출 시 계정을 지정하지 않으면 이 계정을 사용합니다.\",\"removeAction\":\"액션 제거\",\"explicit\":\"코드에서 명시적으로 선택\",\"connect\":\"계정 연결\",\"refresh\":\"계정 새로 고침\",\"aliases\":\"저장된 별칭 업데이트\",\"add\":\"액션 추가\",\"cancel\":\"취소\",\"loading\":\"검색 중…\",\"needsAccount\":\"계정 연결 필요\",\"accounts\":\"계정 {{count}}개\",\"public\":\"계정 불필요\",\"allowed\":\"사용할 계정\",\"unavailable\":\"사용 불가\",\"details\":\"연결 세부 정보\",\"example\":\"호출 예제\",\"syntax\":\"호출 형식\",\"nested\":\"계층형\",\"fullId\":\"전체 ID\",\"copy\":\"복사\",\"copied\":\"복사됨\",\"copyError\":\"복사하지 못했습니다. 코드를 선택하여 직접 복사하세요.\",\"introDescription\":\"필요한 작업을 추가하고 {{context}}로 외부 앱을 호출하세요.\",\"insertAction\":\"코드 삽입\",\"chooseAccounts\":\"계정 관리\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"미리보기\"},\"ports\":{\"reorder\":\"{{name}} 순서 변경\",\"reorderHint\":\"그룹 안에서 드래그하거나 포커스 후 위 / 아래 키로 순서를 변경하세요.\",\"moved\":\"{{name}}이(가) {{position}}번째로 이동했습니다.\",\"groupSettings\":\"그룹 설정\",\"connected\":\"연결됨\",\"sort\":\"순서 변경\",\"finishSorting\":\"순서 변경 완료\",\"inputsTitle\":\"입력\",\"requiredInputs\":\"필수\",\"optionalInputs\":\"선택\",\"noInputs\":\"이 노드에는 입력 데이터가 필요하지 않습니다.\",\"noOutputs\":\"이 노드는 출력 데이터를 제공하지 않습니다.\",\"outputsTitle\":\"출력\",\"valuesTitle\":\"값\",\"columnHandle\":\"Handle\",\"columnName\":\"이름\",\"columnType\":\"유형\",\"columnValue\":\"값\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"이 실행을 트리거한 예약 시간이며 ISO 8601 형식입니다.\"},\"webhook\":{\"headers\":\"이 Webhook 요청과 함께 수신된 요청 헤더입니다.\",\"query\":\"이 Webhook 요청과 함께 수신된 URL 쿼리 매개변수입니다.\",\"body\":\"이 Webhook 요청과 함께 수신된 요청 본문입니다.\",\"webhookUrl\":\"이 요청을 수신한 Webhook URL이며 쿼리 매개변수는 포함하지 않습니다.\"}},\"startParametersTitle\":\"시작 매개변수\"}}"),
|
|
114193
|
+
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"노드 목록\",\"backToOutline\":\"노드 목록으로 돌아가기\",\"emptyOutline\":\"아직 노드가 없습니다\",\"triggers\":\"트리거\",\"nodes\":\"노드\",\"multipleSelected\":\"노드 {{count}}개 선택됨\",\"account\":{\"contactAdmin\":\"이 작업을 실행할 권한이 없습니다. 관리자에게 문의하세요.\",\"accessTitle\":\"접근 권한\",\"manageFlowAccess\":\"Code에서 사용할 수 있는 연결\",\"configureAccess\":\"계정 선택\",\"manageAccount\":\"계정 관리\",\"required\":\"계정 연결 필요\",\"addAccount\":\"계정 추가\",\"manage\":\"관리\",\"authorizationPending\":\"Connection 페이지에서 인증을 마친 뒤 여기로 돌아와 이 계정을 새로 고치세요.\",\"chooseAccount\":\"계정 선택\",\"deferred\":\"지금은 설정하지 않음\",\"clearDeferred\":\"선택 지우기\",\"noAccounts\":\"사용 가능한 계정이 없습니다\",\"connectBeforeRun\":\"이 블록을 실행하거나 게시하려면 먼저 {{service}}에 연결하세요.\",\"connectService\":\"{{service}} 연결\",\"connection\":\"Connection\",\"loading\":\"Connection 불러오는 중…\",\"oomolBuiltIn\":\"OOMOL 기본 제공 계정\",\"missing\":\"이 노드에서 선택한 계정을 현재 사용할 수 없습니다. 다른 계정을 선택하거나 계정을 관리하세요.\",\"refreshFailed\":\"Connection을 새로 고치지 못했습니다.\",\"retry\":\"다시 시도\",\"status\":{\"disconnected\":\"이 Connection은 연결이 끊어졌습니다. 다시 연결하거나 다른 계정을 선택하세요.\",\"error\":\"이 Connection에 오류가 있습니다. 문제를 해결하거나 다른 계정을 선택하세요.\",\"reauth_required\":\"이 Connection은 다시 인증해야 합니다. 다시 연결하거나 다른 계정을 선택하세요.\"},\"statusUnavailable\":\"{{action}}의 Connection 상태를 확인할 수 없습니다.\",\"teamDefault\":\"팀 기본값\",\"title\":\"계정\",\"unavailable\":\"사용할 수 없음\"},\"close\":\"인스펙터 닫기\",\"configurationRequired\":\"설정 필요\",\"diagnostics\":\"진단\",\"errors\":{\"jsonObject\":\"{{label}} 값은 JSON 객체여야 합니다.\",\"portDefinitions\":\"올바른 포트 정의를 입력하세요.\"},\"node\":{\"nameDuplicate\":\"이 그래프에 같은 이름의 노드가 이미 있습니다.\",\"nameEmpty\":\"노드 이름은 비워 둘 수 없습니다.\",\"timeout\":\"제한 시간(ms)\",\"maxExecutions\":\"노드 실행 한도\",\"maxExecutionsError\":\"노드 실행 한도는 양의 정수여야 합니다.\",\"timeoutError\":\"제한 시간은 밀리초 단위의 양의 정수여야 합니다.\",\"title\":\"노드 설정\",\"description\":\"목적\",\"describe\":\"이 단계의 목적을 설명하세요.\",\"icon\":\"아이콘\",\"name\":\"제목\",\"retry\":\"실패 시 재시도\",\"retryCount\":\"최대 {{count}}회 재시도\",\"retryInterval\":\"재시도 간격\",\"retryError\":\"간격은 1~60초의 정수로 입력하세요.\",\"retryHint\":\"재시도 횟수는 최초 실행 실패 후 추가로 시도하는 횟수입니다. 노드 전체를 다시 실행하므로 외부 작업이 중복될 수 있습니다. 제한 시간에는 모든 시도와 대기 시간이 포함됩니다.\",\"retryNone\":\"재시도 안 함\",\"retrySeconds\":\"초\",\"retryHelp\":\"재시도 안내\",\"retryOnce\":\"최대 1회 재시도\",\"onError\":\"실패 처리\",\"onErrorStop\":\"워크플로 중지\",\"onErrorOutput\":\"error 포트로 출력\",\"onErrorHelp\":\"실패 처리 안내\",\"onErrorHint\":\"재시도 후에도 실패하면 시스템 error에 오류를 기록하고 기존 연결을 따라 계속합니다. 성공 시 null입니다. 취소, 시간 초과, 리소스 제한 및 결과 불명 상태는 실행을 중지합니다.\",\"systemOutputs\":\"시스템 출력\",\"systemError\":\"오류 정보(시스템)\",\"errorFields\":{\"error\":\"노드 실패 시 오류 정보입니다. 성공 시 null입니다.\",\"code\":\"오류 유형을 식별하는 코드입니다.\",\"message\":\"민감한 내용이 가려진 오류 설명입니다.\",\"nodeId\":\"오류가 발생한 노드의 ID입니다.\",\"nodeName\":\"오류 발생 시점의 노드 이름입니다.\",\"runId\":\"이번 워크플로 실행의 ID입니다.\",\"executionId\":\"이번 노드 실행의 ID입니다. 재시도에서도 같은 ID를 사용합니다.\"}},\"selectNode\":\"확인하고 편집할 초안 노드를 하나 선택하세요.\",\"locateNode\":\"캔버스에서 이 노드 위치 보기\",\"task\":{\"sharedPermissions\":\"Flow 공유 권한 그룹 사용\",\"sharedPermissionsHint\":\"Flow 공유 권한 그룹에서 승인한 모든 Action을 사용합니다. 개별적으로 추가할 필요가 없습니다.\",\"httpHosts\":\"HTTP 호스트\",\"httpHostsHint\":\"Code가 context.fetch로 호출할 수 있는 호스트를 한 줄에 하나씩 입력합니다. *.example.com은 하위 도메인과 일치합니다.\",\"httpHostsInvalid\":\"\\\"{{host}}\\\"은(는) 올바른 호스트가 아닙니다. api.example.com 같은 호스트 이름을 입력하세요.\",\"httpHostsLimit\":\"호스트는 최대 {{count}}개까지 선언할 수 있습니다.\",\"addAction\":\"Action 추가\",\"removeAction\":\"Action 제거\",\"actionAccount\":\"계정\",\"chooseAccount\":\"계정 선택\",\"permissionSaveFailed\":\"Code 권한을 저장하지 못했습니다. 다시 시도하세요.\",\"chatText\":\"대화 텍스트\",\"connectorAction\":\"Connector 액션\",\"definition\":\"태스크 정의\",\"discardCode\":\"변경 사항 버리기\",\"editorLoading\":\"편집기 불러오는 중…\",\"editorUnavailable\":\"코드 편집기를 불러오지 못했습니다.\",\"inputPorts\":\"입력 포트\",\"javascriptModule\":\"코드\",\"missing\":\"참조된 태스크가 존재하지 않습니다.\",\"outputPorts\":\"출력 포트\",\"responseMode\":\"응답 모드\",\"source\":\"소스\",\"structuredJson\":\"구조화된 JSON\",\"retrySave\":\"저장 재시도\",\"additionalInputs\":\"추가 입력\"},\"wait\":{\"approval\":\"승인 또는 거부\",\"changeNotification\":\"변경\",\"continue\":\"계속\",\"mode\":\"처리 방식\",\"inputsLoading\":\"알림 매개변수를 불러오는 중…\",\"pendingDescription\":\"확인 대기 출력은 대기가 시작될 때 한 번 실행되어 확인 링크와 관련 데이터를 제공합니다. 연결하여 메시지를 보내거나 다른 단계를 실행할 수 있습니다.\",\"prompt\":\"프롬프트\",\"promptError\":\"프롬프트는 1~1,000자여야 합니다.\",\"autoContinue\":\"자동 계속\",\"autoOff\":\"끄기\",\"autoAfter\":\"일정 시간 후\",\"autoAt\":\"지정 시간에\",\"autoSeconds\":\"대기 시간(초)\",\"autoDate\":\"날짜 및 시간\",\"autoInvalid\":\"양수 대기 시간 또는 유효한 날짜와 시간을 입력하세요.\",\"autoDescription\":\"예정 시간 전에 수동으로 계속할 수 있습니다.\"},\"title\":\"인스펙터\",\"sources\":{\"loading\":\"입력 소스 불러오는 중…\",\"loadFailed\":\"입력 소스를 불러올 수 없습니다. 메뉴를 다시 열어 주세요.\",\"checkFailed\":\"이 소스를 확인할 수 없습니다.\",\"select\":\"입력 소스 선택\",\"title\":\"입력 소스\",\"sourceMissing\":\"기존 입력 소스가 더 이상 존재하지 않습니다. 다시 선택하세요.\",\"outputMissing\":\"“{{source}}”에서 “{{output}}”을(를) 찾을 수 없습니다. 다시 선택하세요.\",\"wholeObject\":\"전체 객체\",\"fieldMissing\":\"“{{output}}”에 {{field}} 필드가 선언되어 있지 않습니다. 다시 선택하세요.\",\"notReady\":\"여기까지 실행될 때 “{{source}} {{handle}}”에 아직 값이 없을 수 있습니다.\",\"sourceConflict\":\"다음 필드에 값이 동시에 있을 수 있습니다: {{sources}}. 여기서는 하나만 사용할 수 있습니다.\",\"incompatibleRight\":\"오른쪽 값의 형식이 이 비교와 호환되지 않습니다.\",\"incompatible\":\"호환되지 않음\",\"unverified\":\"확인되지 않음\",\"schemaIncompatible\":\"데이터 형식이 일치하지 않습니다.\",\"schemaPathIncompatible\":\"“{{path}}”의 데이터 형식이 일치하지 않습니다.\",\"schemaCompareFailed\":\"데이터 형식을 확인할 수 없습니다. JSON Schema를 확인하세요.\",\"binaryIncompatible\":\"바이너리 데이터는 사용할 수 없습니다.\",\"artifactIncompatible\":\"파일 데이터는 사용할 수 없습니다.\",\"nullableIncompatible\":\"값이 필요하지만 선택한 필드는 비어 있을 수 있습니다.\",\"typeIncompatible\":\"{{target}}이(가) 필요하지만 선택한 필드는 {{source}}입니다.\",\"propertyTypeIncompatible\":\"“{{path}}”은(는) {{target}}이어야 하지만 실제로는 {{source}}입니다.\",\"requiredIncompatible\":\"필수 속성 “{{property}}”이(가) 없을 수 있습니다.\",\"enumIncompatible\":\"허용되지 않는 값이 포함될 수 있습니다: {{values}}.\",\"constIncompatible\":\"{{target}}만 허용되지만 선택한 필드는 항상 {{source}}입니다.\",\"constraintSubject\":\"“{{path}}”은(는) \",\"minLength\":\"{{subject}}최소 {{value}}자여야 합니다.\",\"maxLength\":\"{{subject}}최대 {{value}}자여야 합니다.\",\"pattern\":\"{{subject}}{{value}} 형식과 일치해야 합니다.\",\"minimum\":\"{{subject}}{{value}}보다 작을 수 없습니다.\",\"exclusiveMinimum\":\"{{subject}}{{value}}보다 커야 합니다.\",\"maximum\":\"{{subject}}{{value}}보다 클 수 없습니다.\",\"exclusiveMaximum\":\"{{subject}}{{value}}보다 작아야 합니다.\",\"multipleOf\":\"{{subject}}{{value}}의 배수여야 합니다.\",\"minItems\":\"{{subject}}최소 {{value}}개 항목이 필요합니다.\",\"maxItems\":\"{{subject}}최대 {{value}}개 항목을 허용합니다.\",\"minProperties\":\"{{subject}}최소 {{value}}개 속성이 필요합니다.\",\"maxProperties\":\"{{subject}}최대 {{value}}개 속성을 허용합니다.\",\"integer\":\"정수\",\"unknownType\":\"알 수 없는 유형\",\"typeSeparator\":\" 또는 \"},\"actions\":{\"flowAccess\":\"사용 가능한 서비스\",\"flowAccessHint\":\"이 Flow의 모든 Code 노드가 공유하는 연결 관리\",\"chooseConnection\":\"{{provider}} Connection 선택\",\"connectionDescription\":\"Connection이 이 호출에 삽입됩니다. 사용 가능 여부는 계속 Flow Provider Access에서 제어합니다.\",\"title\":\"이 코드에서 호출할 수 있는 작업\",\"search\":\"Action 검색\",\"description\":\"이 코드에서 사용할 Action과 계정을 선택하세요.\",\"empty\":\"일치하는 Action이 없습니다.\",\"remove\":\"제거\",\"default\":\"기본 계정\",\"defaultHint\":\"호출 시 계정을 지정하지 않으면 이 계정을 사용합니다.\",\"removeAction\":\"액션 제거\",\"explicit\":\"코드에서 명시적으로 선택\",\"connect\":\"계정 연결\",\"refresh\":\"계정 새로 고침\",\"aliases\":\"저장된 별칭 업데이트\",\"add\":\"액션 추가\",\"cancel\":\"취소\",\"loading\":\"검색 중…\",\"needsAccount\":\"계정 연결 필요\",\"accounts\":\"계정 {{count}}개\",\"public\":\"계정 불필요\",\"allowed\":\"사용할 계정\",\"unavailable\":\"사용 불가\",\"details\":\"연결 세부 정보\",\"example\":\"호출 예제\",\"syntax\":\"호출 형식\",\"nested\":\"계층형\",\"fullId\":\"전체 ID\",\"copy\":\"복사\",\"copied\":\"복사됨\",\"copyError\":\"복사하지 못했습니다. 코드를 선택하여 직접 복사하세요.\",\"introDescription\":\"필요한 작업을 추가하고 {{context}}로 외부 앱을 호출하세요.\",\"insertAction\":\"코드 삽입\",\"chooseAccounts\":\"계정 관리\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"미리보기\"},\"ports\":{\"reorder\":\"{{name}} 순서 변경\",\"reorderHint\":\"그룹 안에서 드래그하거나 포커스 후 위 / 아래 키로 순서를 변경하세요.\",\"moved\":\"{{name}}이(가) {{position}}번째로 이동했습니다.\",\"groupSettings\":\"그룹 설정\",\"connected\":\"연결됨\",\"sort\":\"순서 변경\",\"finishSorting\":\"순서 변경 완료\",\"inputsTitle\":\"입력\",\"requiredInputs\":\"필수\",\"optionalInputs\":\"선택\",\"noInputs\":\"이 노드에는 입력 데이터가 필요하지 않습니다.\",\"noOutputs\":\"이 노드는 출력 데이터를 제공하지 않습니다.\",\"outputsTitle\":\"출력\",\"valuesTitle\":\"값\",\"columnHandle\":\"Handle\",\"columnName\":\"이름\",\"columnType\":\"유형\",\"columnValue\":\"값\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"이 실행을 트리거한 예약 시간이며 ISO 8601 형식입니다.\"},\"webhook\":{\"headers\":\"이 Webhook 요청과 함께 수신된 요청 헤더입니다.\",\"query\":\"이 Webhook 요청과 함께 수신된 URL 쿼리 매개변수입니다.\",\"body\":\"이 Webhook 요청과 함께 수신된 요청 본문입니다.\",\"webhookUrl\":\"이 요청을 수신한 Webhook URL이며 쿼리 매개변수는 포함하지 않습니다.\"}},\"startParametersTitle\":\"시작 매개변수\"}}"),
|
|
113964
114194
|
language: { "label": "언어" },
|
|
113965
114195
|
notice: {
|
|
113966
114196
|
"connectorUnconfigured": "이 배포에는 Connector가 구성되어 있지 않습니다.",
|
|
@@ -114978,6 +115208,38 @@ var resources = {
|
|
|
114978
115208
|
"aliasInvalid": "호출 이름은 중복 없이 1–64자로 지정하고, 영문자로 시작하여 영문자, 숫자, 밑줄 또는 하이픈만 사용하세요.",
|
|
114979
115209
|
"connector": "커넥터",
|
|
114980
115210
|
"workflow": "워크플로"
|
|
115211
|
+
},
|
|
115212
|
+
httpRequest: {
|
|
115213
|
+
"title": "HTTP 요청",
|
|
115214
|
+
"description": "HTTP 요청을 보내고 워크플로에서 응답을 사용합니다.",
|
|
115215
|
+
"method": "메서드",
|
|
115216
|
+
"query": "쿼리 매개변수",
|
|
115217
|
+
"headers": "요청 헤더",
|
|
115218
|
+
"bodyFormat": "요청 본문 형식",
|
|
115219
|
+
"none": "없음",
|
|
115220
|
+
"text": "텍스트",
|
|
115221
|
+
"authentication": "인증",
|
|
115222
|
+
"location": "위치",
|
|
115223
|
+
"keyName": "키 이름",
|
|
115224
|
+
"responseFormat": "응답 형식",
|
|
115225
|
+
"auto": "자동",
|
|
115226
|
+
"statusPolicy": "허용 상태 코드",
|
|
115227
|
+
"success": "2xx",
|
|
115228
|
+
"all": "모든 코드",
|
|
115229
|
+
"saveFailed": "요청 설정을 저장할 수 없습니다.",
|
|
115230
|
+
"retry": "다시 시도",
|
|
115231
|
+
"bodyUnsupported": "GET과 HEAD는 본문을 지원하지 않습니다.",
|
|
115232
|
+
"parameterNamesInvalid": "매개변수 이름은 비어 있거나 중복될 수 없습니다.",
|
|
115233
|
+
"headerNameInvalid": "HTTP 헤더 이름이 잘못되었습니다.",
|
|
115234
|
+
"keyNameRequired": "API 키 이름을 입력하세요.",
|
|
115235
|
+
"authConflict": "인증과 요청 매개변수가 충돌합니다.",
|
|
115236
|
+
"body": "요청 본문",
|
|
115237
|
+
"username": "사용자 이름",
|
|
115238
|
+
"password": "비밀번호",
|
|
115239
|
+
"keyValue": "키 값",
|
|
115240
|
+
"responseOutputs": "응답 출력",
|
|
115241
|
+
"authenticationType": "인증 방식",
|
|
115242
|
+
"responseSettings": "응답 설정"
|
|
114981
115243
|
}
|
|
114982
115244
|
},
|
|
114983
115245
|
"ru": {
|
|
@@ -115208,7 +115470,7 @@ var resources = {
|
|
|
115208
115470
|
"exportSvgFailed": "Не удалось экспортировать изображение SVG. Повторите попытку.",
|
|
115209
115471
|
"importInvalid": "Некорректный или неподдерживаемый файл процесса."
|
|
115210
115472
|
},
|
|
115211
|
-
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Список узлов\",\"backToOutline\":\"Вернуться к списку узлов\",\"emptyOutline\":\"Узлов пока нет\",\"triggers\":\"Триггеры\",\"nodes\":\"Узлы\",\"multipleSelected\":\"Выбрано узлов: {{count}}\",\"account\":{\"contactAdmin\":\"У вас нет прав для выполнения этой операции. Обратитесь к администратору.\",\"accessTitle\":\"Права доступа\",\"manageFlowAccess\":\"Подключения, доступные Code\",\"configureAccess\":\"Выбрать аккаунт\",\"manageAccount\":\"Управление аккаунтами\",\"required\":\"Требуется подключение аккаунта\",\"addAccount\":\"Добавить аккаунт\",\"manage\":\"Управление\",\"authorizationPending\":\"Завершите авторизацию на странице Connection, затем вернитесь сюда, чтобы обновить этот аккаунт.\",\"chooseAccount\":\"Выберите аккаунт\",\"deferred\":\"Пока не настраивать\",\"clearDeferred\":\"Сбросить выбор\",\"noAccounts\":\"Нет доступных аккаунтов\",\"connectBeforeRun\":\"Подключите {{service}}, чтобы этот узел можно было запускать и публиковать.\",\"connectService\":\"Подключить {{service}}\",\"connection\":\"Connection\",\"loading\":\"Загрузка Connection…\",\"oomolBuiltIn\":\"Встроенный аккаунт OOMOL\",\"missing\":\"Выбранный для этого узла аккаунт недоступен. Выберите другой аккаунт или откройте управление подключениями.\",\"refreshFailed\":\"Не удалось обновить Connection.\",\"retry\":\"Повторить\",\"status\":{\"disconnected\":\"Этот Connection отключён. Подключите его заново или выберите другой аккаунт.\",\"error\":\"В этом Connection ошибка. Исправьте её или выберите другой аккаунт.\",\"reauth_required\":\"Этому Connection нужна повторная авторизация. Подключите его заново или выберите другой аккаунт.\"},\"statusUnavailable\":\"Статус Connection недоступен для {{action}}.\",\"teamDefault\":\"По умолчанию для команды\",\"title\":\"Аккаунт\",\"unavailable\":\"недоступно\"},\"close\":\"Закрыть инспектор\",\"configurationRequired\":\"Требуется настройка\",\"diagnostics\":\"Диагностика\",\"errors\":{\"jsonObject\":\"{{label}} должен быть JSON-объектом.\",\"portDefinitions\":\"Введите корректные определения портов.\"},\"node\":{\"nameDuplicate\":\"Узел с таким именем уже существует в этом графе.\",\"nameEmpty\":\"Имя узла не может быть пустым.\",\"timeout\":\"Время ожидания (мс)\",\"maxExecutions\":\"Лимит выполнений узла\",\"maxExecutionsError\":\"Лимит выполнений узла должен быть положительным целым числом.\",\"timeoutError\":\"Время ожидания должно быть положительным целым числом в миллисекундах.\",\"title\":\"Настройки узла\",\"description\":\"Назначение\",\"describe\":\"Опишите назначение этого шага.\",\"icon\":\"Значок\",\"name\":\"Заголовок\",\"retry\":\"Повторять при ошибке\",\"retryCount\":\"До {{count}} повторов\",\"retryInterval\":\"Интервал повторов\",\"retryError\":\"Укажите целый интервал от 1 до 60 секунд.\",\"retryHint\":\"Число повторов означает дополнительные попытки после неудачной первой попытки. Повтор запускает весь узел заново и может повторить внешние операции. Тайм-аут включает все попытки и интервалы.\",\"retryNone\":\"Без повторов\",\"retrySeconds\":\"сек.\",\"retryHelp\":\"О повторах\",\"retryOnce\":\"Не более 1 повтора\",\"onError\":\"При ошибке\",\"onErrorStop\":\"Остановить процесс\",\"onErrorOutput\":\"Вывод в порт error\",\"onErrorHelp\":\"Обработка ошибок\",\"onErrorHint\":\"После неудачных повторов записать ошибку в системный выход error и продолжить по существующим связям. При успехе error равен null. Отмена, тайм-ауты, ограничения ресурсов и неопределённые результаты останавливают выполнение.\",\"systemOutputs\":\"Системные выходы\",\"systemError\":\"Ошибка (системная)\",\"errorFields\":{\"error\":\"Информация об ошибке узла; при успешном выполнении — null.\",\"code\":\"Код, определяющий тип ошибки.\",\"message\":\"Описание ошибки со скрытыми конфиденциальными данными.\",\"nodeId\":\"Идентификатор узла, в котором произошла ошибка.\",\"nodeName\":\"Имя узла на момент ошибки.\",\"runId\":\"Идентификатор этого запуска рабочего процесса.\",\"executionId\":\"Идентификатор этого выполнения узла, общий для всех повторных попыток.\"}},\"selectNode\":\"Выберите один узел черновика, чтобы просмотреть и изменить его.\",\"locateNode\":\"Найти этот узел на холсте\",\"task\":{\"sharedPermissions\":\"Использовать общую группу разрешений Flow\",\"sharedPermissionsHint\":\"Используйте все Actions, разрешённые общей группой Flow. Добавлять их в узел по отдельности не нужно.\",\"addAction\":\"Добавить Action\",\"removeAction\":\"Удалить Action\",\"actionAccount\":\"Аккаунт\",\"chooseAccount\":\"Выбрать аккаунт\",\"permissionSaveFailed\":\"Не удалось сохранить разрешения Code. Повторите попытку.\",\"chatText\":\"Текст чата\",\"connectorAction\":\"Действие Connector\",\"definition\":\"Определение задачи\",\"discardCode\":\"Отменить изменения\",\"editorLoading\":\"Загрузка редактора…\",\"editorUnavailable\":\"Не удалось загрузить редактор кода.\",\"inputPorts\":\"Входные порты\",\"javascriptModule\":\"Код\",\"missing\":\"Указанная задача не существует.\",\"outputPorts\":\"Выходные порты\",\"responseMode\":\"Режим ответа\",\"source\":\"Исходный код\",\"structuredJson\":\"Структурированный JSON\",\"retrySave\":\"Повторить сохранение\",\"additionalInputs\":\"Дополнительные входы\"},\"wait\":{\"approval\":\"Одобрить или отклонить\",\"changeNotification\":\"Изменить\",\"continue\":\"Продолжить\",\"mode\":\"Обработка\",\"inputsLoading\":\"Загрузка параметров уведомления…\",\"pendingDescription\":\"Выход ожидания срабатывает один раз при начале ожидания и передаёт ссылки подтверждения и связанные данные. Подключите его для отправки сообщения или выполнения других шагов.\",\"prompt\":\"Запрос\",\"promptError\":\"Запрос должен содержать от 1 до 1 000 символов.\",\"autoContinue\":\"Автоматическое продолжение\",\"autoOff\":\"Выключено\",\"autoAfter\":\"Через интервал\",\"autoAt\":\"В указанное время\",\"autoSeconds\":\"Длительность (секунды)\",\"autoDate\":\"Дата и время\",\"autoInvalid\":\"Введите положительную длительность или корректные дату и время.\",\"autoDescription\":\"До указанного времени можно продолжить вручную.\"},\"title\":\"Инспектор\",\"sources\":{\"loading\":\"Загрузка источников входных данных…\",\"loadFailed\":\"Не удалось загрузить источники входных данных. Откройте меню ещё раз.\",\"checkFailed\":\"Не удалось проверить этот источник.\",\"select\":\"Выбрать источник входных данных\",\"title\":\"Источник входных данных\",\"sourceMissing\":\"Исходный источник входных данных больше не существует. Выберите другой.\",\"outputMissing\":\"«{{output}}» не найден в «{{source}}». Выберите снова.\",\"wholeObject\":\"Весь объект\",\"fieldMissing\":\"Поле {{field}} больше не объявлено в «{{output}}». Выберите снова.\",\"notReady\":\"К моменту выполнения этого шага у «{{source}} {{handle}}» может ещё не быть значения.\",\"sourceConflict\":\"Эти поля могут иметь значения одновременно: {{sources}}. Здесь можно использовать только одно.\",\"incompatibleRight\":\"Тип правого значения несовместим с этим сравнением.\",\"incompatible\":\"Несовместимо\",\"unverified\":\"Не проверено\",\"schemaIncompatible\":\"Формат данных не совпадает.\",\"schemaPathIncompatible\":\"Формат данных «{{path}}» не совпадает.\",\"schemaCompareFailed\":\"Не удалось проверить формат данных. Проверьте схему JSON.\",\"binaryIncompatible\":\"Двоичные данные здесь использовать нельзя.\",\"artifactIncompatible\":\"Файловые данные здесь использовать нельзя.\",\"nullableIncompatible\":\"Требуется значение, но выбранное поле может быть пустым.\",\"typeIncompatible\":\"Ожидается {{target}}, но выбранное поле имеет тип {{source}}.\",\"propertyTypeIncompatible\":\"«{{path}}» должно иметь тип {{target}}, но имеет тип {{source}}.\",\"requiredIncompatible\":\"Обязательное свойство «{{property}}» может отсутствовать.\",\"enumIncompatible\":\"Некоторые возможные значения не принимаются: {{values}}.\",\"constIncompatible\":\"Принимается только {{target}}, но выбранное поле всегда равно {{source}}.\",\"constraintSubject\":\"«{{path}}» \",\"minLength\":\"{{subject}}должно содержать не менее {{value}} символов.\",\"maxLength\":\"{{subject}}должно содержать не более {{value}} символов.\",\"pattern\":\"{{subject}}должно соответствовать {{value}}.\",\"minimum\":\"{{subject}}не может быть меньше {{value}}.\",\"exclusiveMinimum\":\"{{subject}}должно быть больше {{value}}.\",\"maximum\":\"{{subject}}не может быть больше {{value}}.\",\"exclusiveMaximum\":\"{{subject}}должно быть меньше {{value}}.\",\"multipleOf\":\"{{subject}}должно быть кратно {{value}}.\",\"minItems\":\"{{subject}}должно содержать не менее {{value}} элементов.\",\"maxItems\":\"{{subject}}должно содержать не более {{value}} элементов.\",\"minProperties\":\"{{subject}}должно содержать не менее {{value}} свойств.\",\"maxProperties\":\"{{subject}}должно содержать не более {{value}} свойств.\",\"integer\":\"Целое число\",\"unknownType\":\"неизвестный тип\",\"typeSeparator\":\" или \"},\"actions\":{\"flowAccess\":\"Доступные сервисы\",\"flowAccessHint\":\"Управлять подключениями, общими для всех узлов Code в этом Flow\",\"chooseConnection\":\"Выбрать подключение {{provider}}\",\"connectionDescription\":\"Подключение будет вставлено в этот вызов. Возможность его использования по-прежнему контролирует Flow Provider Access.\",\"title\":\"Действия, доступные коду\",\"search\":\"Поиск действий\",\"description\":\"Выберите действия и аккаунты, доступные этому коду.\",\"empty\":\"Подходящих действий нет.\",\"remove\":\"Удалить\",\"default\":\"Аккаунт по умолчанию\",\"defaultHint\":\"Используется, если при вызове не указан аккаунт.\",\"removeAction\":\"Удалить действие\",\"explicit\":\"Выбирать явно в коде\",\"connect\":\"Подключить аккаунт\",\"refresh\":\"Обновить аккаунты\",\"aliases\":\"Обновить сохранённые псевдонимы\",\"add\":\"Добавить действие\",\"cancel\":\"Отмена\",\"loading\":\"Поиск…\",\"needsAccount\":\"Подключите аккаунт\",\"accounts\":\"Аккаунты: {{count}}\",\"public\":\"Без аккаунта\",\"allowed\":\"Разрешённые аккаунты\",\"unavailable\":\"Недоступен\",\"details\":\"Данные подключений\",\"example\":\"Пример вызова\",\"syntax\":\"Синтаксис вызова\",\"nested\":\"Через провайдера\",\"fullId\":\"Полный ID\",\"copy\":\"Копировать\",\"copied\":\"Скопировано\",\"copyError\":\"Не удалось скопировать. Выделите код и скопируйте вручную.\",\"introDescription\":\"При необходимости добавьте действия для вызова внешних приложений через {{context}}.\",\"insertAction\":\"Вставить код\",\"chooseAccounts\":\"Управление аккаунтами\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Предпросмотр\"},\"ports\":{\"reorder\":\"Изменить порядок {{name}}\",\"reorderHint\":\"Перетащите внутри группы или используйте стрелки вверх / вниз при фокусе.\",\"moved\":\"{{name}} перемещён на позицию {{position}}.\",\"groupSettings\":\"Настройки группы\",\"connected\":\"Подключено\",\"sort\":\"Изменить порядок\",\"finishSorting\":\"Готово\",\"inputsTitle\":\"Входы\",\"requiredInputs\":\"Обязательные\",\"optionalInputs\":\"Необязательные\",\"noInputs\":\"Этому узлу не требуются входные данные.\",\"noOutputs\":\"Этот узел не предоставляет выходных данных.\",\"outputsTitle\":\"Выходы\",\"valuesTitle\":\"Значения\",\"columnHandle\":\"Handle\",\"columnName\":\"Имя\",\"columnType\":\"Тип\",\"columnValue\":\"Значение\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"Запланированное время этого запуска в формате ISO 8601.\"},\"webhook\":{\"headers\":\"Заголовки, полученные с этим Webhook-запросом.\",\"query\":\"Параметры URL-запроса, полученные с этим Webhook-запросом.\",\"body\":\"Тело, полученное с этим Webhook-запросом.\",\"webhookUrl\":\"URL Webhook, получивший этот запрос, без параметров запроса.\"}},\"startParametersTitle\":\"Параметры запуска\"}}"),
|
|
115473
|
+
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Список узлов\",\"backToOutline\":\"Вернуться к списку узлов\",\"emptyOutline\":\"Узлов пока нет\",\"triggers\":\"Триггеры\",\"nodes\":\"Узлы\",\"multipleSelected\":\"Выбрано узлов: {{count}}\",\"account\":{\"contactAdmin\":\"У вас нет прав для выполнения этой операции. Обратитесь к администратору.\",\"accessTitle\":\"Права доступа\",\"manageFlowAccess\":\"Подключения, доступные Code\",\"configureAccess\":\"Выбрать аккаунт\",\"manageAccount\":\"Управление аккаунтами\",\"required\":\"Требуется подключение аккаунта\",\"addAccount\":\"Добавить аккаунт\",\"manage\":\"Управление\",\"authorizationPending\":\"Завершите авторизацию на странице Connection, затем вернитесь сюда, чтобы обновить этот аккаунт.\",\"chooseAccount\":\"Выберите аккаунт\",\"deferred\":\"Пока не настраивать\",\"clearDeferred\":\"Сбросить выбор\",\"noAccounts\":\"Нет доступных аккаунтов\",\"connectBeforeRun\":\"Подключите {{service}}, чтобы этот узел можно было запускать и публиковать.\",\"connectService\":\"Подключить {{service}}\",\"connection\":\"Connection\",\"loading\":\"Загрузка Connection…\",\"oomolBuiltIn\":\"Встроенный аккаунт OOMOL\",\"missing\":\"Выбранный для этого узла аккаунт недоступен. Выберите другой аккаунт или откройте управление подключениями.\",\"refreshFailed\":\"Не удалось обновить Connection.\",\"retry\":\"Повторить\",\"status\":{\"disconnected\":\"Этот Connection отключён. Подключите его заново или выберите другой аккаунт.\",\"error\":\"В этом Connection ошибка. Исправьте её или выберите другой аккаунт.\",\"reauth_required\":\"Этому Connection нужна повторная авторизация. Подключите его заново или выберите другой аккаунт.\"},\"statusUnavailable\":\"Статус Connection недоступен для {{action}}.\",\"teamDefault\":\"По умолчанию для команды\",\"title\":\"Аккаунт\",\"unavailable\":\"недоступно\"},\"close\":\"Закрыть инспектор\",\"configurationRequired\":\"Требуется настройка\",\"diagnostics\":\"Диагностика\",\"errors\":{\"jsonObject\":\"{{label}} должен быть JSON-объектом.\",\"portDefinitions\":\"Введите корректные определения портов.\"},\"node\":{\"nameDuplicate\":\"Узел с таким именем уже существует в этом графе.\",\"nameEmpty\":\"Имя узла не может быть пустым.\",\"timeout\":\"Время ожидания (мс)\",\"maxExecutions\":\"Лимит выполнений узла\",\"maxExecutionsError\":\"Лимит выполнений узла должен быть положительным целым числом.\",\"timeoutError\":\"Время ожидания должно быть положительным целым числом в миллисекундах.\",\"title\":\"Настройки узла\",\"description\":\"Назначение\",\"describe\":\"Опишите назначение этого шага.\",\"icon\":\"Значок\",\"name\":\"Заголовок\",\"retry\":\"Повторять при ошибке\",\"retryCount\":\"До {{count}} повторов\",\"retryInterval\":\"Интервал повторов\",\"retryError\":\"Укажите целый интервал от 1 до 60 секунд.\",\"retryHint\":\"Число повторов означает дополнительные попытки после неудачной первой попытки. Повтор запускает весь узел заново и может повторить внешние операции. Тайм-аут включает все попытки и интервалы.\",\"retryNone\":\"Без повторов\",\"retrySeconds\":\"сек.\",\"retryHelp\":\"О повторах\",\"retryOnce\":\"Не более 1 повтора\",\"onError\":\"При ошибке\",\"onErrorStop\":\"Остановить процесс\",\"onErrorOutput\":\"Вывод в порт error\",\"onErrorHelp\":\"Обработка ошибок\",\"onErrorHint\":\"После неудачных повторов записать ошибку в системный выход error и продолжить по существующим связям. При успехе error равен null. Отмена, тайм-ауты, ограничения ресурсов и неопределённые результаты останавливают выполнение.\",\"systemOutputs\":\"Системные выходы\",\"systemError\":\"Ошибка (системная)\",\"errorFields\":{\"error\":\"Информация об ошибке узла; при успешном выполнении — null.\",\"code\":\"Код, определяющий тип ошибки.\",\"message\":\"Описание ошибки со скрытыми конфиденциальными данными.\",\"nodeId\":\"Идентификатор узла, в котором произошла ошибка.\",\"nodeName\":\"Имя узла на момент ошибки.\",\"runId\":\"Идентификатор этого запуска рабочего процесса.\",\"executionId\":\"Идентификатор этого выполнения узла, общий для всех повторных попыток.\"}},\"selectNode\":\"Выберите один узел черновика, чтобы просмотреть и изменить его.\",\"locateNode\":\"Найти этот узел на холсте\",\"task\":{\"sharedPermissions\":\"Использовать общую группу разрешений Flow\",\"sharedPermissionsHint\":\"Используйте все Actions, разрешённые общей группой Flow. Добавлять их в узел по отдельности не нужно.\",\"httpHosts\":\"HTTP-хосты\",\"httpHostsHint\":\"Хосты, к которым Code может обращаться через context.fetch, по одному в строке. *.example.com соответствует поддоменам.\",\"httpHostsInvalid\":\"«{{host}}» — недопустимый хост. Укажите имя хоста, например api.example.com.\",\"httpHostsLimit\":\"Можно объявить не более {{count}} хостов.\",\"addAction\":\"Добавить Action\",\"removeAction\":\"Удалить Action\",\"actionAccount\":\"Аккаунт\",\"chooseAccount\":\"Выбрать аккаунт\",\"permissionSaveFailed\":\"Не удалось сохранить разрешения Code. Повторите попытку.\",\"chatText\":\"Текст чата\",\"connectorAction\":\"Действие Connector\",\"definition\":\"Определение задачи\",\"discardCode\":\"Отменить изменения\",\"editorLoading\":\"Загрузка редактора…\",\"editorUnavailable\":\"Не удалось загрузить редактор кода.\",\"inputPorts\":\"Входные порты\",\"javascriptModule\":\"Код\",\"missing\":\"Указанная задача не существует.\",\"outputPorts\":\"Выходные порты\",\"responseMode\":\"Режим ответа\",\"source\":\"Исходный код\",\"structuredJson\":\"Структурированный JSON\",\"retrySave\":\"Повторить сохранение\",\"additionalInputs\":\"Дополнительные входы\"},\"wait\":{\"approval\":\"Одобрить или отклонить\",\"changeNotification\":\"Изменить\",\"continue\":\"Продолжить\",\"mode\":\"Обработка\",\"inputsLoading\":\"Загрузка параметров уведомления…\",\"pendingDescription\":\"Выход ожидания срабатывает один раз при начале ожидания и передаёт ссылки подтверждения и связанные данные. Подключите его для отправки сообщения или выполнения других шагов.\",\"prompt\":\"Запрос\",\"promptError\":\"Запрос должен содержать от 1 до 1 000 символов.\",\"autoContinue\":\"Автоматическое продолжение\",\"autoOff\":\"Выключено\",\"autoAfter\":\"Через интервал\",\"autoAt\":\"В указанное время\",\"autoSeconds\":\"Длительность (секунды)\",\"autoDate\":\"Дата и время\",\"autoInvalid\":\"Введите положительную длительность или корректные дату и время.\",\"autoDescription\":\"До указанного времени можно продолжить вручную.\"},\"title\":\"Инспектор\",\"sources\":{\"loading\":\"Загрузка источников входных данных…\",\"loadFailed\":\"Не удалось загрузить источники входных данных. Откройте меню ещё раз.\",\"checkFailed\":\"Не удалось проверить этот источник.\",\"select\":\"Выбрать источник входных данных\",\"title\":\"Источник входных данных\",\"sourceMissing\":\"Исходный источник входных данных больше не существует. Выберите другой.\",\"outputMissing\":\"«{{output}}» не найден в «{{source}}». Выберите снова.\",\"wholeObject\":\"Весь объект\",\"fieldMissing\":\"Поле {{field}} больше не объявлено в «{{output}}». Выберите снова.\",\"notReady\":\"К моменту выполнения этого шага у «{{source}} {{handle}}» может ещё не быть значения.\",\"sourceConflict\":\"Эти поля могут иметь значения одновременно: {{sources}}. Здесь можно использовать только одно.\",\"incompatibleRight\":\"Тип правого значения несовместим с этим сравнением.\",\"incompatible\":\"Несовместимо\",\"unverified\":\"Не проверено\",\"schemaIncompatible\":\"Формат данных не совпадает.\",\"schemaPathIncompatible\":\"Формат данных «{{path}}» не совпадает.\",\"schemaCompareFailed\":\"Не удалось проверить формат данных. Проверьте схему JSON.\",\"binaryIncompatible\":\"Двоичные данные здесь использовать нельзя.\",\"artifactIncompatible\":\"Файловые данные здесь использовать нельзя.\",\"nullableIncompatible\":\"Требуется значение, но выбранное поле может быть пустым.\",\"typeIncompatible\":\"Ожидается {{target}}, но выбранное поле имеет тип {{source}}.\",\"propertyTypeIncompatible\":\"«{{path}}» должно иметь тип {{target}}, но имеет тип {{source}}.\",\"requiredIncompatible\":\"Обязательное свойство «{{property}}» может отсутствовать.\",\"enumIncompatible\":\"Некоторые возможные значения не принимаются: {{values}}.\",\"constIncompatible\":\"Принимается только {{target}}, но выбранное поле всегда равно {{source}}.\",\"constraintSubject\":\"«{{path}}» \",\"minLength\":\"{{subject}}должно содержать не менее {{value}} символов.\",\"maxLength\":\"{{subject}}должно содержать не более {{value}} символов.\",\"pattern\":\"{{subject}}должно соответствовать {{value}}.\",\"minimum\":\"{{subject}}не может быть меньше {{value}}.\",\"exclusiveMinimum\":\"{{subject}}должно быть больше {{value}}.\",\"maximum\":\"{{subject}}не может быть больше {{value}}.\",\"exclusiveMaximum\":\"{{subject}}должно быть меньше {{value}}.\",\"multipleOf\":\"{{subject}}должно быть кратно {{value}}.\",\"minItems\":\"{{subject}}должно содержать не менее {{value}} элементов.\",\"maxItems\":\"{{subject}}должно содержать не более {{value}} элементов.\",\"minProperties\":\"{{subject}}должно содержать не менее {{value}} свойств.\",\"maxProperties\":\"{{subject}}должно содержать не более {{value}} свойств.\",\"integer\":\"Целое число\",\"unknownType\":\"неизвестный тип\",\"typeSeparator\":\" или \"},\"actions\":{\"flowAccess\":\"Доступные сервисы\",\"flowAccessHint\":\"Управлять подключениями, общими для всех узлов Code в этом Flow\",\"chooseConnection\":\"Выбрать подключение {{provider}}\",\"connectionDescription\":\"Подключение будет вставлено в этот вызов. Возможность его использования по-прежнему контролирует Flow Provider Access.\",\"title\":\"Действия, доступные коду\",\"search\":\"Поиск действий\",\"description\":\"Выберите действия и аккаунты, доступные этому коду.\",\"empty\":\"Подходящих действий нет.\",\"remove\":\"Удалить\",\"default\":\"Аккаунт по умолчанию\",\"defaultHint\":\"Используется, если при вызове не указан аккаунт.\",\"removeAction\":\"Удалить действие\",\"explicit\":\"Выбирать явно в коде\",\"connect\":\"Подключить аккаунт\",\"refresh\":\"Обновить аккаунты\",\"aliases\":\"Обновить сохранённые псевдонимы\",\"add\":\"Добавить действие\",\"cancel\":\"Отмена\",\"loading\":\"Поиск…\",\"needsAccount\":\"Подключите аккаунт\",\"accounts\":\"Аккаунты: {{count}}\",\"public\":\"Без аккаунта\",\"allowed\":\"Разрешённые аккаунты\",\"unavailable\":\"Недоступен\",\"details\":\"Данные подключений\",\"example\":\"Пример вызова\",\"syntax\":\"Синтаксис вызова\",\"nested\":\"Через провайдера\",\"fullId\":\"Полный ID\",\"copy\":\"Копировать\",\"copied\":\"Скопировано\",\"copyError\":\"Не удалось скопировать. Выделите код и скопируйте вручную.\",\"introDescription\":\"При необходимости добавьте действия для вызова внешних приложений через {{context}}.\",\"insertAction\":\"Вставить код\",\"chooseAccounts\":\"Управление аккаунтами\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Предпросмотр\"},\"ports\":{\"reorder\":\"Изменить порядок {{name}}\",\"reorderHint\":\"Перетащите внутри группы или используйте стрелки вверх / вниз при фокусе.\",\"moved\":\"{{name}} перемещён на позицию {{position}}.\",\"groupSettings\":\"Настройки группы\",\"connected\":\"Подключено\",\"sort\":\"Изменить порядок\",\"finishSorting\":\"Готово\",\"inputsTitle\":\"Входы\",\"requiredInputs\":\"Обязательные\",\"optionalInputs\":\"Необязательные\",\"noInputs\":\"Этому узлу не требуются входные данные.\",\"noOutputs\":\"Этот узел не предоставляет выходных данных.\",\"outputsTitle\":\"Выходы\",\"valuesTitle\":\"Значения\",\"columnHandle\":\"Handle\",\"columnName\":\"Имя\",\"columnType\":\"Тип\",\"columnValue\":\"Значение\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"Запланированное время этого запуска в формате ISO 8601.\"},\"webhook\":{\"headers\":\"Заголовки, полученные с этим Webhook-запросом.\",\"query\":\"Параметры URL-запроса, полученные с этим Webhook-запросом.\",\"body\":\"Тело, полученное с этим Webhook-запросом.\",\"webhookUrl\":\"URL Webhook, получивший этот запрос, без параметров запроса.\"}},\"startParametersTitle\":\"Параметры запуска\"}}"),
|
|
115212
115474
|
language: { "label": "Язык" },
|
|
115213
115475
|
notice: {
|
|
115214
115476
|
"connectorUnconfigured": "Для этого развертывания Connector не настроен.",
|
|
@@ -116226,6 +116488,38 @@ var resources = {
|
|
|
116226
116488
|
"aliasInvalid": "Укажите уникальное имя вызова длиной 1–64 символа, начинающееся с латинской буквы и содержащее только латинские буквы, цифры, подчёркивания или дефисы.",
|
|
116227
116489
|
"connector": "Коннектор",
|
|
116228
116490
|
"workflow": "Рабочий процесс"
|
|
116491
|
+
},
|
|
116492
|
+
httpRequest: {
|
|
116493
|
+
"title": "HTTP-запрос",
|
|
116494
|
+
"description": "Отправить HTTP-запрос и использовать ответ в рабочем процессе.",
|
|
116495
|
+
"method": "Метод",
|
|
116496
|
+
"query": "Параметры запроса",
|
|
116497
|
+
"headers": "Заголовки запроса",
|
|
116498
|
+
"bodyFormat": "Формат тела запроса",
|
|
116499
|
+
"none": "Нет",
|
|
116500
|
+
"text": "Текст",
|
|
116501
|
+
"authentication": "Аутентификация",
|
|
116502
|
+
"location": "Расположение",
|
|
116503
|
+
"keyName": "Имя ключа",
|
|
116504
|
+
"responseFormat": "Формат ответа",
|
|
116505
|
+
"auto": "Автоматически",
|
|
116506
|
+
"statusPolicy": "Допустимые коды состояния",
|
|
116507
|
+
"success": "2xx",
|
|
116508
|
+
"all": "Все коды",
|
|
116509
|
+
"saveFailed": "Не удалось сохранить настройки запроса.",
|
|
116510
|
+
"retry": "Повторить",
|
|
116511
|
+
"bodyUnsupported": "GET и HEAD не поддерживают тело запроса.",
|
|
116512
|
+
"parameterNamesInvalid": "Имена параметров должны быть непустыми и уникальными.",
|
|
116513
|
+
"headerNameInvalid": "Недопустимое имя HTTP-заголовка.",
|
|
116514
|
+
"keyNameRequired": "Введите имя ключа API.",
|
|
116515
|
+
"authConflict": "Аутентификация конфликтует с параметром запроса.",
|
|
116516
|
+
"body": "Тело запроса",
|
|
116517
|
+
"username": "Имя пользователя",
|
|
116518
|
+
"password": "Пароль",
|
|
116519
|
+
"keyValue": "Значение ключа",
|
|
116520
|
+
"responseOutputs": "Выходы ответа",
|
|
116521
|
+
"authenticationType": "Тип",
|
|
116522
|
+
"responseSettings": "Настройки ответа"
|
|
116229
116523
|
}
|
|
116230
116524
|
},
|
|
116231
116525
|
"fr": {
|
|
@@ -116456,7 +116750,7 @@ var resources = {
|
|
|
116456
116750
|
"exportSvgFailed": "Impossible d’exporter l’image SVG. Veuillez réessayer.",
|
|
116457
116751
|
"importInvalid": "Fichier de workflow invalide ou non pris en charge."
|
|
116458
116752
|
},
|
|
116459
|
-
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Liste des nœuds\",\"backToOutline\":\"Retour à la liste des nœuds\",\"emptyOutline\":\"Aucun nœud pour le moment\",\"triggers\":\"Déclencheurs\",\"nodes\":\"Nœuds\",\"multipleSelected\":\"{{count}} nœuds sélectionnés\",\"account\":{\"contactAdmin\":\"Vous n’avez pas l’autorisation d’effectuer cette opération. Contactez un administrateur.\",\"accessTitle\":\"Autorisations d’accès\",\"manageFlowAccess\":\"Connexions disponibles pour Code\",\"configureAccess\":\"Choisir un compte\",\"manageAccount\":\"Gérer les comptes\",\"required\":\"Compte à connecter\",\"addAccount\":\"Ajouter un compte\",\"manage\":\"Gérer\",\"authorizationPending\":\"Terminez l'autorisation sur la page Connection, puis revenez ici pour actualiser ce compte.\",\"chooseAccount\":\"Choisir un compte\",\"deferred\":\"Ne pas configurer maintenant\",\"clearDeferred\":\"Effacer la sélection\",\"noAccounts\":\"Aucun compte disponible\",\"connectBeforeRun\":\"Connectez {{service}} pour que ce bloc puisse être exécuté ou publié.\",\"connectService\":\"Connecter {{service}}\",\"connection\":\"Connection\",\"loading\":\"Chargement des Connections…\",\"oomolBuiltIn\":\"Compte intégré OOMOL\",\"missing\":\"Le compte sélectionné pour ce nœud est indisponible. Choisissez un autre compte ou gérez les connexions.\",\"refreshFailed\":\"Impossible d'actualiser les Connections.\",\"retry\":\"Réessayer\",\"status\":{\"disconnected\":\"Cette Connection est déconnectée. Reconnectez-la ou choisissez un autre compte.\",\"error\":\"Cette Connection présente une erreur. Réparez-la ou choisissez un autre compte.\",\"reauth_required\":\"Cette Connection doit être autorisée à nouveau. Reconnectez-la ou choisissez un autre compte.\"},\"statusUnavailable\":\"Le statut de la Connection est indisponible pour {{action}}.\",\"teamDefault\":\"Par défaut de l'équipe\",\"title\":\"Compte\",\"unavailable\":\"indisponible\"},\"close\":\"Fermer l'inspecteur\",\"configurationRequired\":\"Configuration requise\",\"diagnostics\":\"Diagnostics\",\"errors\":{\"jsonObject\":\"{{label}} doit être un objet JSON.\",\"portDefinitions\":\"Saisissez des définitions de ports valides.\"},\"node\":{\"nameDuplicate\":\"Un nœud portant ce nom existe déjà dans ce graphe.\",\"nameEmpty\":\"Le nom du nœud ne peut pas être vide.\",\"timeout\":\"Délai d'expiration (ms)\",\"maxExecutions\":\"Limite d’exécutions du nœud\",\"maxExecutionsError\":\"La limite d’exécutions du nœud doit être un entier positif.\",\"timeoutError\":\"Le délai d'expiration doit être un entier positif exprimé en millisecondes.\",\"title\":\"Paramètres du nœud\",\"description\":\"Objectif\",\"describe\":\"Décrivez le rôle de cette étape.\",\"icon\":\"Icône\",\"name\":\"Titre\",\"retry\":\"Réessayer en cas d’erreur\",\"retryCount\":\"Nouvelles tentatives : {{count}} max.\",\"retryInterval\":\"Intervalle\",\"retryError\":\"Indiquez un intervalle entier de 1 à 60 secondes.\",\"retryHint\":\"Le nombre de nouvelles tentatives s’ajoute à la première exécution en cas d’échec. Chaque tentative réexécute le nœud entier et peut répéter des opérations externes. Le délai maximal inclut toutes les tentatives et les intervalles.\",\"retryNone\":\"Aucune nouvelle tentative\",\"retrySeconds\":\"secondes\",\"retryHelp\":\"À propos des nouvelles tentatives\",\"retryOnce\":\"Une nouvelle tentative max.\",\"onError\":\"En cas d’échec\",\"onErrorStop\":\"Arrêter le workflow\",\"onErrorOutput\":\"Sortir vers le port error\",\"onErrorHelp\":\"Gestion des échecs\",\"onErrorHint\":\"Après les nouvelles tentatives, placer l’erreur dans la sortie système error et continuer par les connexions existantes. En cas de succès, error vaut null. Annulation, délais, limites de ressources et résultats indéterminés arrêtent toujours l’exécution.\",\"systemOutputs\":\"Sorties système\",\"systemError\":\"Erreur (système)\",\"errorFields\":{\"error\":\"Informations sur l’erreur en cas d’échec du nœud ; null en cas de réussite.\",\"code\":\"Code identifiant le type d’erreur.\",\"message\":\"Description de l’erreur, avec les informations sensibles masquées.\",\"nodeId\":\"Identifiant du nœud ayant échoué.\",\"nodeName\":\"Nom du nœud au moment de l’échec.\",\"runId\":\"Identifiant de cette exécution du workflow.\",\"executionId\":\"Identifiant de cette exécution du nœud, commun à toutes ses tentatives.\"}},\"selectNode\":\"Sélectionnez un nœud du Brouillon pour l'inspecter et le modifier.\",\"locateNode\":\"Localiser ce nœud sur le canevas\",\"task\":{\"sharedPermissions\":\"Utiliser le groupe d’autorisations partagé du Flow\",\"sharedPermissionsHint\":\"Utilisez toutes les Actions autorisées par le groupe du Flow, sans les ajouter à ce nœud.\",\"addAction\":\"Ajouter une action\",\"removeAction\":\"Supprimer l’action\",\"actionAccount\":\"Compte\",\"chooseAccount\":\"Choisir un compte\",\"permissionSaveFailed\":\"Impossible d’enregistrer les autorisations Code. Réessayez.\",\"chatText\":\"Texte de conversation\",\"connectorAction\":\"Action Connector\",\"definition\":\"Définition de la tâche\",\"discardCode\":\"Abandonner les modifications\",\"editorLoading\":\"Chargement de l'éditeur…\",\"editorUnavailable\":\"Impossible de charger l'éditeur de code.\",\"inputPorts\":\"Ports d'entrée\",\"javascriptModule\":\"Code\",\"missing\":\"La tâche référencée n'existe pas.\",\"outputPorts\":\"Ports de sortie\",\"responseMode\":\"Mode de réponse\",\"source\":\"Source\",\"structuredJson\":\"JSON structuré\",\"retrySave\":\"Réessayer\",\"additionalInputs\":\"Entrées supplémentaires\"},\"wait\":{\"approval\":\"Approuver ou refuser\",\"changeNotification\":\"Changer\",\"continue\":\"Continuer\",\"mode\":\"Traitement\",\"inputsLoading\":\"Chargement des paramètres de notification…\",\"pendingDescription\":\"La sortie en attente se déclenche une fois au début de l’attente et fournit les liens de confirmation et les données associées. Reliez-la pour envoyer un message ou exécuter d’autres étapes.\",\"prompt\":\"Invite\",\"promptError\":\"L’invite doit contenir entre 1 et 1 000 caractères.\",\"autoContinue\":\"Reprise automatique\",\"autoOff\":\"Désactivée\",\"autoAfter\":\"Après une durée\",\"autoAt\":\"À une date précise\",\"autoSeconds\":\"Durée (secondes)\",\"autoDate\":\"Date et heure\",\"autoInvalid\":\"Saisissez une durée positive ou une date et une heure valides.\",\"autoDescription\":\"Vous pouvez reprendre manuellement avant l’heure prévue.\"},\"title\":\"Inspecteur\",\"sources\":{\"loading\":\"Chargement des sources d’entrée…\",\"loadFailed\":\"Impossible de charger les sources d’entrée. Rouvrez le menu pour réessayer.\",\"checkFailed\":\"Impossible de vérifier cette source.\",\"select\":\"Sélectionner la source d’entrée\",\"title\":\"Source d’entrée\",\"sourceMissing\":\"La source d’entrée d’origine n’existe plus. Choisissez-en une autre.\",\"outputMissing\":\"« {{output}} » est introuvable dans « {{source}} ». Choisissez à nouveau.\",\"wholeObject\":\"Objet entier\",\"fieldMissing\":\"Le champ {{field}} n’est plus déclaré dans « {{output}} ». Choisissez à nouveau.\",\"notReady\":\"« {{source}} {{handle}} » peut ne pas avoir de valeur lors de cette étape.\",\"sourceConflict\":\"Ces champs peuvent avoir une valeur en même temps : {{sources}}. Un seul peut être utilisé ici.\",\"incompatibleRight\":\"Le type de la valeur de droite est incompatible avec cette comparaison.\",\"incompatible\":\"Incompatible\",\"unverified\":\"Non vérifié\",\"schemaIncompatible\":\"Le format des données ne correspond pas.\",\"schemaPathIncompatible\":\"Le format de « {{path}} » ne correspond pas.\",\"schemaCompareFailed\":\"Impossible de vérifier le format. Vérifiez le schéma JSON.\",\"binaryIncompatible\":\"Les données binaires ne peuvent pas être utilisées ici.\",\"artifactIncompatible\":\"Les données de fichier ne peuvent pas être utilisées ici.\",\"nullableIncompatible\":\"Une valeur est requise, mais le champ sélectionné peut être vide.\",\"typeIncompatible\":\"Le type attendu est {{target}}, mais le champ sélectionné est de type {{source}}.\",\"propertyTypeIncompatible\":\"« {{path}} » doit être de type {{target}}, mais est de type {{source}}.\",\"requiredIncompatible\":\"La propriété requise « {{property}} » peut être absente.\",\"enumIncompatible\":\"Certaines valeurs possibles ne sont pas acceptées : {{values}}.\",\"constIncompatible\":\"Seul {{target}} est accepté, mais le champ sélectionné vaut toujours {{source}}.\",\"constraintSubject\":\"« {{path}} » \",\"minLength\":\"{{subject}}doit contenir au moins {{value}} caractères.\",\"maxLength\":\"{{subject}}doit contenir au plus {{value}} caractères.\",\"pattern\":\"{{subject}}doit correspondre à {{value}}.\",\"minimum\":\"{{subject}}ne peut pas être inférieur à {{value}}.\",\"exclusiveMinimum\":\"{{subject}}doit être supérieur à {{value}}.\",\"maximum\":\"{{subject}}ne peut pas être supérieur à {{value}}.\",\"exclusiveMaximum\":\"{{subject}}doit être inférieur à {{value}}.\",\"multipleOf\":\"{{subject}}doit être un multiple de {{value}}.\",\"minItems\":\"{{subject}}doit contenir au moins {{value}} éléments.\",\"maxItems\":\"{{subject}}doit contenir au plus {{value}} éléments.\",\"minProperties\":\"{{subject}}doit contenir au moins {{value}} propriétés.\",\"maxProperties\":\"{{subject}}doit contenir au plus {{value}} propriétés.\",\"integer\":\"Entier\",\"unknownType\":\"type inconnu\",\"typeSeparator\":\" ou \"},\"actions\":{\"flowAccess\":\"Services disponibles\",\"flowAccessHint\":\"Gérer les connexions partagées par tous les nœuds Code de ce Flow\",\"chooseConnection\":\"Choisir une connexion {{provider}}\",\"connectionDescription\":\"La connexion est insérée dans cet appel. L’accès Provider du Flow détermine toujours si elle peut être utilisée.\",\"title\":\"Actions accessibles au code\",\"search\":\"Rechercher des actions\",\"description\":\"Choisissez les actions et les comptes autorisés pour ce code.\",\"empty\":\"Aucune action correspondante.\",\"remove\":\"Retirer\",\"default\":\"Compte par défaut\",\"defaultHint\":\"Compte utilisé si aucun compte n’est précisé lors de l’appel.\",\"removeAction\":\"Retirer l’action\",\"explicit\":\"Choisir explicitement dans le code\",\"connect\":\"Connecter un compte\",\"refresh\":\"Actualiser les comptes\",\"aliases\":\"Mettre à jour les alias enregistrés\",\"add\":\"Ajouter une action\",\"cancel\":\"Annuler\",\"loading\":\"Recherche…\",\"needsAccount\":\"Connecter un compte\",\"accounts\":\"{{count}} comptes\",\"public\":\"Sans compte\",\"allowed\":\"Comptes autorisés\",\"unavailable\":\"Indisponible\",\"details\":\"Détails des connexions\",\"example\":\"Exemple d’appel\",\"syntax\":\"Syntaxe d’appel\",\"nested\":\"Par fournisseur\",\"fullId\":\"ID complet\",\"copy\":\"Copier\",\"copied\":\"Copié\",\"copyError\":\"Échec de la copie. Sélectionnez le code pour le copier manuellement.\",\"introDescription\":\"Ajoutez des actions au besoin pour appeler des applications externes via {{context}}.\",\"insertAction\":\"Insérer le code\",\"chooseAccounts\":\"Gérer les comptes\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Aperçu\"},\"ports\":{\"reorder\":\"Réordonner {{name}}\",\"reorderHint\":\"Glissez dans le groupe ou utilisez les flèches haut / bas au clavier.\",\"moved\":\"{{name}} déplacé en position {{position}}.\",\"groupSettings\":\"Paramètres du groupe\",\"connected\":\"Connecté\",\"sort\":\"Réordonner\",\"finishSorting\":\"Terminer\",\"inputsTitle\":\"Entrées\",\"requiredInputs\":\"Obligatoires\",\"optionalInputs\":\"Facultatifs\",\"noInputs\":\"Ce nœud ne nécessite pas de données d’entrée.\",\"noOutputs\":\"Ce nœud ne fournit pas de données de sortie.\",\"outputsTitle\":\"Sorties\",\"valuesTitle\":\"Valeurs\",\"columnHandle\":\"Handle\",\"columnName\":\"Nom\",\"columnType\":\"Type\",\"columnValue\":\"Valeur\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"Heure planifiée ayant déclenché cette exécution, au format ISO 8601.\"},\"webhook\":{\"headers\":\"Les en-têtes reçus avec cette requête Webhook.\",\"query\":\"Les paramètres de requête URL reçus avec cette requête Webhook.\",\"body\":\"Le corps reçu avec cette requête Webhook.\",\"webhookUrl\":\"L’URL Webhook ayant reçu cette requête, sans les paramètres de requête.\"}},\"startParametersTitle\":\"Paramètres de démarrage\"}}"),
|
|
116753
|
+
inspector: /* @__PURE__ */ JSON.parse("{\"outline\":\"Liste des nœuds\",\"backToOutline\":\"Retour à la liste des nœuds\",\"emptyOutline\":\"Aucun nœud pour le moment\",\"triggers\":\"Déclencheurs\",\"nodes\":\"Nœuds\",\"multipleSelected\":\"{{count}} nœuds sélectionnés\",\"account\":{\"contactAdmin\":\"Vous n’avez pas l’autorisation d’effectuer cette opération. Contactez un administrateur.\",\"accessTitle\":\"Autorisations d’accès\",\"manageFlowAccess\":\"Connexions disponibles pour Code\",\"configureAccess\":\"Choisir un compte\",\"manageAccount\":\"Gérer les comptes\",\"required\":\"Compte à connecter\",\"addAccount\":\"Ajouter un compte\",\"manage\":\"Gérer\",\"authorizationPending\":\"Terminez l'autorisation sur la page Connection, puis revenez ici pour actualiser ce compte.\",\"chooseAccount\":\"Choisir un compte\",\"deferred\":\"Ne pas configurer maintenant\",\"clearDeferred\":\"Effacer la sélection\",\"noAccounts\":\"Aucun compte disponible\",\"connectBeforeRun\":\"Connectez {{service}} pour que ce bloc puisse être exécuté ou publié.\",\"connectService\":\"Connecter {{service}}\",\"connection\":\"Connection\",\"loading\":\"Chargement des Connections…\",\"oomolBuiltIn\":\"Compte intégré OOMOL\",\"missing\":\"Le compte sélectionné pour ce nœud est indisponible. Choisissez un autre compte ou gérez les connexions.\",\"refreshFailed\":\"Impossible d'actualiser les Connections.\",\"retry\":\"Réessayer\",\"status\":{\"disconnected\":\"Cette Connection est déconnectée. Reconnectez-la ou choisissez un autre compte.\",\"error\":\"Cette Connection présente une erreur. Réparez-la ou choisissez un autre compte.\",\"reauth_required\":\"Cette Connection doit être autorisée à nouveau. Reconnectez-la ou choisissez un autre compte.\"},\"statusUnavailable\":\"Le statut de la Connection est indisponible pour {{action}}.\",\"teamDefault\":\"Par défaut de l'équipe\",\"title\":\"Compte\",\"unavailable\":\"indisponible\"},\"close\":\"Fermer l'inspecteur\",\"configurationRequired\":\"Configuration requise\",\"diagnostics\":\"Diagnostics\",\"errors\":{\"jsonObject\":\"{{label}} doit être un objet JSON.\",\"portDefinitions\":\"Saisissez des définitions de ports valides.\"},\"node\":{\"nameDuplicate\":\"Un nœud portant ce nom existe déjà dans ce graphe.\",\"nameEmpty\":\"Le nom du nœud ne peut pas être vide.\",\"timeout\":\"Délai d'expiration (ms)\",\"maxExecutions\":\"Limite d’exécutions du nœud\",\"maxExecutionsError\":\"La limite d’exécutions du nœud doit être un entier positif.\",\"timeoutError\":\"Le délai d'expiration doit être un entier positif exprimé en millisecondes.\",\"title\":\"Paramètres du nœud\",\"description\":\"Objectif\",\"describe\":\"Décrivez le rôle de cette étape.\",\"icon\":\"Icône\",\"name\":\"Titre\",\"retry\":\"Réessayer en cas d’erreur\",\"retryCount\":\"Nouvelles tentatives : {{count}} max.\",\"retryInterval\":\"Intervalle\",\"retryError\":\"Indiquez un intervalle entier de 1 à 60 secondes.\",\"retryHint\":\"Le nombre de nouvelles tentatives s’ajoute à la première exécution en cas d’échec. Chaque tentative réexécute le nœud entier et peut répéter des opérations externes. Le délai maximal inclut toutes les tentatives et les intervalles.\",\"retryNone\":\"Aucune nouvelle tentative\",\"retrySeconds\":\"secondes\",\"retryHelp\":\"À propos des nouvelles tentatives\",\"retryOnce\":\"Une nouvelle tentative max.\",\"onError\":\"En cas d’échec\",\"onErrorStop\":\"Arrêter le workflow\",\"onErrorOutput\":\"Sortir vers le port error\",\"onErrorHelp\":\"Gestion des échecs\",\"onErrorHint\":\"Après les nouvelles tentatives, placer l’erreur dans la sortie système error et continuer par les connexions existantes. En cas de succès, error vaut null. Annulation, délais, limites de ressources et résultats indéterminés arrêtent toujours l’exécution.\",\"systemOutputs\":\"Sorties système\",\"systemError\":\"Erreur (système)\",\"errorFields\":{\"error\":\"Informations sur l’erreur en cas d’échec du nœud ; null en cas de réussite.\",\"code\":\"Code identifiant le type d’erreur.\",\"message\":\"Description de l’erreur, avec les informations sensibles masquées.\",\"nodeId\":\"Identifiant du nœud ayant échoué.\",\"nodeName\":\"Nom du nœud au moment de l’échec.\",\"runId\":\"Identifiant de cette exécution du workflow.\",\"executionId\":\"Identifiant de cette exécution du nœud, commun à toutes ses tentatives.\"}},\"selectNode\":\"Sélectionnez un nœud du Brouillon pour l'inspecter et le modifier.\",\"locateNode\":\"Localiser ce nœud sur le canevas\",\"task\":{\"sharedPermissions\":\"Utiliser le groupe d’autorisations partagé du Flow\",\"sharedPermissionsHint\":\"Utilisez toutes les Actions autorisées par le groupe du Flow, sans les ajouter à ce nœud.\",\"httpHosts\":\"Hôtes HTTP\",\"httpHostsHint\":\"Hôtes que Code peut appeler avec context.fetch, un par ligne. *.example.com correspond aux sous-domaines.\",\"httpHostsInvalid\":\"« {{host}} » n’est pas un hôte valide. Utilisez un nom d’hôte comme api.example.com.\",\"httpHostsLimit\":\"Déclarez au plus {{count}} hôtes.\",\"addAction\":\"Ajouter une action\",\"removeAction\":\"Supprimer l’action\",\"actionAccount\":\"Compte\",\"chooseAccount\":\"Choisir un compte\",\"permissionSaveFailed\":\"Impossible d’enregistrer les autorisations Code. Réessayez.\",\"chatText\":\"Texte de conversation\",\"connectorAction\":\"Action Connector\",\"definition\":\"Définition de la tâche\",\"discardCode\":\"Abandonner les modifications\",\"editorLoading\":\"Chargement de l'éditeur…\",\"editorUnavailable\":\"Impossible de charger l'éditeur de code.\",\"inputPorts\":\"Ports d'entrée\",\"javascriptModule\":\"Code\",\"missing\":\"La tâche référencée n'existe pas.\",\"outputPorts\":\"Ports de sortie\",\"responseMode\":\"Mode de réponse\",\"source\":\"Source\",\"structuredJson\":\"JSON structuré\",\"retrySave\":\"Réessayer\",\"additionalInputs\":\"Entrées supplémentaires\"},\"wait\":{\"approval\":\"Approuver ou refuser\",\"changeNotification\":\"Changer\",\"continue\":\"Continuer\",\"mode\":\"Traitement\",\"inputsLoading\":\"Chargement des paramètres de notification…\",\"pendingDescription\":\"La sortie en attente se déclenche une fois au début de l’attente et fournit les liens de confirmation et les données associées. Reliez-la pour envoyer un message ou exécuter d’autres étapes.\",\"prompt\":\"Invite\",\"promptError\":\"L’invite doit contenir entre 1 et 1 000 caractères.\",\"autoContinue\":\"Reprise automatique\",\"autoOff\":\"Désactivée\",\"autoAfter\":\"Après une durée\",\"autoAt\":\"À une date précise\",\"autoSeconds\":\"Durée (secondes)\",\"autoDate\":\"Date et heure\",\"autoInvalid\":\"Saisissez une durée positive ou une date et une heure valides.\",\"autoDescription\":\"Vous pouvez reprendre manuellement avant l’heure prévue.\"},\"title\":\"Inspecteur\",\"sources\":{\"loading\":\"Chargement des sources d’entrée…\",\"loadFailed\":\"Impossible de charger les sources d’entrée. Rouvrez le menu pour réessayer.\",\"checkFailed\":\"Impossible de vérifier cette source.\",\"select\":\"Sélectionner la source d’entrée\",\"title\":\"Source d’entrée\",\"sourceMissing\":\"La source d’entrée d’origine n’existe plus. Choisissez-en une autre.\",\"outputMissing\":\"« {{output}} » est introuvable dans « {{source}} ». Choisissez à nouveau.\",\"wholeObject\":\"Objet entier\",\"fieldMissing\":\"Le champ {{field}} n’est plus déclaré dans « {{output}} ». Choisissez à nouveau.\",\"notReady\":\"« {{source}} {{handle}} » peut ne pas avoir de valeur lors de cette étape.\",\"sourceConflict\":\"Ces champs peuvent avoir une valeur en même temps : {{sources}}. Un seul peut être utilisé ici.\",\"incompatibleRight\":\"Le type de la valeur de droite est incompatible avec cette comparaison.\",\"incompatible\":\"Incompatible\",\"unverified\":\"Non vérifié\",\"schemaIncompatible\":\"Le format des données ne correspond pas.\",\"schemaPathIncompatible\":\"Le format de « {{path}} » ne correspond pas.\",\"schemaCompareFailed\":\"Impossible de vérifier le format. Vérifiez le schéma JSON.\",\"binaryIncompatible\":\"Les données binaires ne peuvent pas être utilisées ici.\",\"artifactIncompatible\":\"Les données de fichier ne peuvent pas être utilisées ici.\",\"nullableIncompatible\":\"Une valeur est requise, mais le champ sélectionné peut être vide.\",\"typeIncompatible\":\"Le type attendu est {{target}}, mais le champ sélectionné est de type {{source}}.\",\"propertyTypeIncompatible\":\"« {{path}} » doit être de type {{target}}, mais est de type {{source}}.\",\"requiredIncompatible\":\"La propriété requise « {{property}} » peut être absente.\",\"enumIncompatible\":\"Certaines valeurs possibles ne sont pas acceptées : {{values}}.\",\"constIncompatible\":\"Seul {{target}} est accepté, mais le champ sélectionné vaut toujours {{source}}.\",\"constraintSubject\":\"« {{path}} » \",\"minLength\":\"{{subject}}doit contenir au moins {{value}} caractères.\",\"maxLength\":\"{{subject}}doit contenir au plus {{value}} caractères.\",\"pattern\":\"{{subject}}doit correspondre à {{value}}.\",\"minimum\":\"{{subject}}ne peut pas être inférieur à {{value}}.\",\"exclusiveMinimum\":\"{{subject}}doit être supérieur à {{value}}.\",\"maximum\":\"{{subject}}ne peut pas être supérieur à {{value}}.\",\"exclusiveMaximum\":\"{{subject}}doit être inférieur à {{value}}.\",\"multipleOf\":\"{{subject}}doit être un multiple de {{value}}.\",\"minItems\":\"{{subject}}doit contenir au moins {{value}} éléments.\",\"maxItems\":\"{{subject}}doit contenir au plus {{value}} éléments.\",\"minProperties\":\"{{subject}}doit contenir au moins {{value}} propriétés.\",\"maxProperties\":\"{{subject}}doit contenir au plus {{value}} propriétés.\",\"integer\":\"Entier\",\"unknownType\":\"type inconnu\",\"typeSeparator\":\" ou \"},\"actions\":{\"flowAccess\":\"Services disponibles\",\"flowAccessHint\":\"Gérer les connexions partagées par tous les nœuds Code de ce Flow\",\"chooseConnection\":\"Choisir une connexion {{provider}}\",\"connectionDescription\":\"La connexion est insérée dans cet appel. L’accès Provider du Flow détermine toujours si elle peut être utilisée.\",\"title\":\"Actions accessibles au code\",\"search\":\"Rechercher des actions\",\"description\":\"Choisissez les actions et les comptes autorisés pour ce code.\",\"empty\":\"Aucune action correspondante.\",\"remove\":\"Retirer\",\"default\":\"Compte par défaut\",\"defaultHint\":\"Compte utilisé si aucun compte n’est précisé lors de l’appel.\",\"removeAction\":\"Retirer l’action\",\"explicit\":\"Choisir explicitement dans le code\",\"connect\":\"Connecter un compte\",\"refresh\":\"Actualiser les comptes\",\"aliases\":\"Mettre à jour les alias enregistrés\",\"add\":\"Ajouter une action\",\"cancel\":\"Annuler\",\"loading\":\"Recherche…\",\"needsAccount\":\"Connecter un compte\",\"accounts\":\"{{count}} comptes\",\"public\":\"Sans compte\",\"allowed\":\"Comptes autorisés\",\"unavailable\":\"Indisponible\",\"details\":\"Détails des connexions\",\"example\":\"Exemple d’appel\",\"syntax\":\"Syntaxe d’appel\",\"nested\":\"Par fournisseur\",\"fullId\":\"ID complet\",\"copy\":\"Copier\",\"copied\":\"Copié\",\"copyError\":\"Échec de la copie. Sélectionnez le code pour le copier manuellement.\",\"introDescription\":\"Ajoutez des actions au besoin pour appeler des applications externes via {{context}}.\",\"insertAction\":\"Insérer le code\",\"chooseAccounts\":\"Gérer les comptes\"},\"comment\":{\"markdown\":\"Markdown\",\"preview\":\"Aperçu\"},\"ports\":{\"reorder\":\"Réordonner {{name}}\",\"reorderHint\":\"Glissez dans le groupe ou utilisez les flèches haut / bas au clavier.\",\"moved\":\"{{name}} déplacé en position {{position}}.\",\"groupSettings\":\"Paramètres du groupe\",\"connected\":\"Connecté\",\"sort\":\"Réordonner\",\"finishSorting\":\"Terminer\",\"inputsTitle\":\"Entrées\",\"requiredInputs\":\"Obligatoires\",\"optionalInputs\":\"Facultatifs\",\"noInputs\":\"Ce nœud ne nécessite pas de données d’entrée.\",\"noOutputs\":\"Ce nœud ne fournit pas de données de sortie.\",\"outputsTitle\":\"Sorties\",\"valuesTitle\":\"Valeurs\",\"columnHandle\":\"Handle\",\"columnName\":\"Nom\",\"columnType\":\"Type\",\"columnValue\":\"Valeur\",\"builtIn\":{\"cron\":{\"scheduledAt\":\"Heure planifiée ayant déclenché cette exécution, au format ISO 8601.\"},\"webhook\":{\"headers\":\"Les en-têtes reçus avec cette requête Webhook.\",\"query\":\"Les paramètres de requête URL reçus avec cette requête Webhook.\",\"body\":\"Le corps reçu avec cette requête Webhook.\",\"webhookUrl\":\"L’URL Webhook ayant reçu cette requête, sans les paramètres de requête.\"}},\"startParametersTitle\":\"Paramètres de démarrage\"}}"),
|
|
116460
116754
|
language: { "label": "Langue" },
|
|
116461
116755
|
notice: {
|
|
116462
116756
|
"connectorUnconfigured": "Le Connector n’est pas configuré pour ce déploiement.",
|
|
@@ -117474,6 +117768,38 @@ var resources = {
|
|
|
117474
117768
|
"aliasInvalid": "Utilisez un nom d’appel unique de 1 à 64 caractères, commençant par une lettre et contenant uniquement des lettres ASCII, chiffres, tirets ou traits de soulignement.",
|
|
117475
117769
|
"connector": "Connecteur",
|
|
117476
117770
|
"workflow": "Workflow"
|
|
117771
|
+
},
|
|
117772
|
+
httpRequest: {
|
|
117773
|
+
"title": "Requête HTTP",
|
|
117774
|
+
"description": "Envoyer une requête HTTP et utiliser sa réponse dans le workflow.",
|
|
117775
|
+
"method": "Méthode",
|
|
117776
|
+
"query": "Paramètres de requête",
|
|
117777
|
+
"headers": "En-têtes de requête",
|
|
117778
|
+
"bodyFormat": "Format du corps de la requête",
|
|
117779
|
+
"none": "Aucun",
|
|
117780
|
+
"text": "Texte",
|
|
117781
|
+
"authentication": "Authentification",
|
|
117782
|
+
"location": "Emplacement",
|
|
117783
|
+
"keyName": "Nom de la clé",
|
|
117784
|
+
"responseFormat": "Format de réponse",
|
|
117785
|
+
"auto": "Automatique",
|
|
117786
|
+
"statusPolicy": "Codes de statut acceptés",
|
|
117787
|
+
"success": "2xx",
|
|
117788
|
+
"all": "Tous les codes",
|
|
117789
|
+
"saveFailed": "Impossible d’enregistrer la configuration.",
|
|
117790
|
+
"retry": "Réessayer",
|
|
117791
|
+
"bodyUnsupported": "GET et HEAD ne prennent pas en charge de corps.",
|
|
117792
|
+
"parameterNamesInvalid": "Les noms doivent être uniques et non vides.",
|
|
117793
|
+
"headerNameInvalid": "Nom d’en-tête HTTP invalide.",
|
|
117794
|
+
"keyNameRequired": "Saisissez un nom de clé API.",
|
|
117795
|
+
"authConflict": "L’authentification est en conflit avec un paramètre.",
|
|
117796
|
+
"body": "Corps de la requête",
|
|
117797
|
+
"username": "Nom d’utilisateur",
|
|
117798
|
+
"password": "Mot de passe",
|
|
117799
|
+
"keyValue": "Valeur de la clé",
|
|
117800
|
+
"responseOutputs": "Sorties de réponse",
|
|
117801
|
+
"authenticationType": "Type",
|
|
117802
|
+
"responseSettings": "Paramètres de réponse"
|
|
117477
117803
|
}
|
|
117478
117804
|
}
|
|
117479
117805
|
};
|
|
@@ -119724,6 +120050,278 @@ function GeneralSettings({ title, children, disabled = false, readOnly = false,
|
|
|
119724
120050
|
}, nodeId);
|
|
119725
120051
|
}
|
|
119726
120052
|
//#endregion
|
|
120053
|
+
//#region src/workbench/browser/runtime/editor/httpParameterEditor.tsx
|
|
120054
|
+
var expanded$2 = () => true;
|
|
120055
|
+
var object = (value) => value != null && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
120056
|
+
function HttpParameterEditor({ group, task, entries, disabled, readOnly, variables, renderSource, onEdit }) {
|
|
120057
|
+
const t = useTranslate();
|
|
120058
|
+
if (task.executor.kind !== "http-request") return null;
|
|
120059
|
+
const parameters = task.executor[group];
|
|
120060
|
+
const root = parameters.mode === "object" ? entries[group] : void 0;
|
|
120061
|
+
const label = t(`httpRequest.${group}`);
|
|
120062
|
+
const schema = group === "query" ? httpQuerySchema : httpHeaderSchema;
|
|
120063
|
+
const handle = (name) => `${group === "query" ? "query" : "header"}.${name}`;
|
|
120064
|
+
const values = parameters.mode === "fields" ? Object.fromEntries(parameters.names.map((name) => {
|
|
120065
|
+
const value = entries[handle(name)]?.value;
|
|
120066
|
+
return [name, value === void 0 ? "" : value];
|
|
120067
|
+
})) : object(root?.value);
|
|
120068
|
+
const input = (port, entry, name) => {
|
|
120069
|
+
const upstream = renderSource(port.handle, port);
|
|
120070
|
+
return {
|
|
120071
|
+
embedded: true,
|
|
120072
|
+
definition: port,
|
|
120073
|
+
variables,
|
|
120074
|
+
disabled,
|
|
120075
|
+
readOnly,
|
|
120076
|
+
variableName: entry?.variableName,
|
|
120077
|
+
connected: entry?.connected ?? false,
|
|
120078
|
+
upstream: upstream == null ? void 0 : {
|
|
120079
|
+
...upstream,
|
|
120080
|
+
onChange: (source) => onEdit({
|
|
120081
|
+
kind: "source",
|
|
120082
|
+
source: {
|
|
120083
|
+
kind: "node",
|
|
120084
|
+
...source
|
|
120085
|
+
},
|
|
120086
|
+
field: name,
|
|
120087
|
+
fields: values
|
|
120088
|
+
})
|
|
120089
|
+
},
|
|
120090
|
+
onVariable: (next) => {
|
|
120091
|
+
if (next == null) onEdit({
|
|
120092
|
+
kind: "fields",
|
|
120093
|
+
value: name == null ? {} : {
|
|
120094
|
+
...values,
|
|
120095
|
+
[name]: ""
|
|
120096
|
+
},
|
|
120097
|
+
field: name
|
|
120098
|
+
});
|
|
120099
|
+
else onEdit({
|
|
120100
|
+
kind: "variable",
|
|
120101
|
+
name: next,
|
|
120102
|
+
field: name,
|
|
120103
|
+
fields: values
|
|
120104
|
+
});
|
|
120105
|
+
}
|
|
120106
|
+
};
|
|
120107
|
+
};
|
|
120108
|
+
return /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, { children: label }), /* @__PURE__ */ jsx(FieldTable, {
|
|
120109
|
+
standalone: true,
|
|
120110
|
+
layout: "values",
|
|
120111
|
+
typeColumn: false,
|
|
120112
|
+
columnHeadings: false,
|
|
120113
|
+
actionSlots: 2,
|
|
120114
|
+
children: /* @__PURE__ */ jsx(NodeInputValue, {
|
|
120115
|
+
...input({
|
|
120116
|
+
handle: group,
|
|
120117
|
+
jsonSchema: schema,
|
|
120118
|
+
nullable: true
|
|
120119
|
+
}, root),
|
|
120120
|
+
label,
|
|
120121
|
+
value: values,
|
|
120122
|
+
onValue: (next) => onEdit({
|
|
120123
|
+
kind: "fields",
|
|
120124
|
+
value: object(next)
|
|
120125
|
+
}),
|
|
120126
|
+
presentation: {
|
|
120127
|
+
valueOnly: true,
|
|
120128
|
+
hideOptions: true,
|
|
120129
|
+
hideValueTools: true,
|
|
120130
|
+
hideChildTypes: true,
|
|
120131
|
+
expansionPolicy: expanded$2,
|
|
120132
|
+
validateObjectFieldName: (name, current) => group === "query" ? !!name.trim() && (name === current || !Object.hasOwn(values, name)) : httpHeaderNameIssue(name, Object.keys(values).filter((key) => key !== current)) == null,
|
|
120133
|
+
renderObjectField: (name, props) => /* @__PURE__ */ jsx(NodeInputValue, {
|
|
120134
|
+
...input({
|
|
120135
|
+
handle: handle(name),
|
|
120136
|
+
jsonSchema: props.schema,
|
|
120137
|
+
nullable: true
|
|
120138
|
+
}, parameters.mode === "fields" ? entries[handle(name)] : void 0, name),
|
|
120139
|
+
label: props.label,
|
|
120140
|
+
value: parameters.mode === "fields" ? entries[handle(name)]?.value : values[name],
|
|
120141
|
+
presentation: props,
|
|
120142
|
+
onValue: (value) => onEdit({
|
|
120143
|
+
kind: "fields",
|
|
120144
|
+
value: {
|
|
120145
|
+
...values,
|
|
120146
|
+
[name]: value ?? null
|
|
120147
|
+
},
|
|
120148
|
+
field: name
|
|
120149
|
+
})
|
|
120150
|
+
})
|
|
120151
|
+
}
|
|
120152
|
+
})
|
|
120153
|
+
})] });
|
|
120154
|
+
}
|
|
120155
|
+
//#endregion
|
|
120156
|
+
//#region src/workbench/browser/runtime/editor/httpRequestSection.tsx
|
|
120157
|
+
function HttpRequestSection({ task, disabled, onSave, parameters, input }) {
|
|
120158
|
+
const t = useTranslate();
|
|
120159
|
+
const id = useId();
|
|
120160
|
+
const saveRef = useRef(onSave);
|
|
120161
|
+
saveRef.current = onSave;
|
|
120162
|
+
const taskRef = useRef(task);
|
|
120163
|
+
taskRef.current = task;
|
|
120164
|
+
const [changes] = useState(() => new TaskExecutorChanges(task.executor, (before, next) => {
|
|
120165
|
+
if (before.kind != "http-request" || next.kind != "http-request") return Promise.resolve(false);
|
|
120166
|
+
const current = taskRef.current;
|
|
120167
|
+
if (current.executor.kind !== "http-request") return Promise.resolve(false);
|
|
120168
|
+
const merged = { ...current.executor };
|
|
120169
|
+
for (const key of [
|
|
120170
|
+
"method",
|
|
120171
|
+
"authentication",
|
|
120172
|
+
"bodyFormat",
|
|
120173
|
+
"responseFormat",
|
|
120174
|
+
"statusPolicy"
|
|
120175
|
+
]) if (!dequal$1(before[key], next[key])) Object.assign(merged, { [key]: next[key] });
|
|
120176
|
+
return saveRef.current(current, httpRequestTask(merged, current.name, current));
|
|
120177
|
+
}));
|
|
120178
|
+
const [config, setConfig] = useState(changes.value);
|
|
120179
|
+
const [failed, setFailed] = useState(false);
|
|
120180
|
+
useEffect(() => {
|
|
120181
|
+
changes.sync(task.executor);
|
|
120182
|
+
setConfig(changes.value);
|
|
120183
|
+
}, [changes, task.executor]);
|
|
120184
|
+
if (config.kind != "http-request") return null;
|
|
120185
|
+
const issues = httpRequestIssues(config);
|
|
120186
|
+
const error = (field, index) => {
|
|
120187
|
+
const messages = issues.filter((issue) => issue.field === field && issue.index === index).map((issue) => t(`httpRequest.${issue.code}`));
|
|
120188
|
+
return messages.length ? [...new Set(messages)].join(" ") : void 0;
|
|
120189
|
+
};
|
|
120190
|
+
async function save() {
|
|
120191
|
+
try {
|
|
120192
|
+
setFailed(!await changes.save());
|
|
120193
|
+
} catch {
|
|
120194
|
+
setFailed(true);
|
|
120195
|
+
}
|
|
120196
|
+
}
|
|
120197
|
+
function update(patch) {
|
|
120198
|
+
if (disabled || changes.value.kind != "http-request") return;
|
|
120199
|
+
changes.value = {
|
|
120200
|
+
...changes.value,
|
|
120201
|
+
...patch
|
|
120202
|
+
};
|
|
120203
|
+
setConfig(changes.value);
|
|
120204
|
+
save();
|
|
120205
|
+
}
|
|
120206
|
+
const select = (key, value, options, change, fieldLabel = t(`httpRequest.${key}`)) => /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
120207
|
+
htmlFor: `${id}-${key}`,
|
|
120208
|
+
children: fieldLabel
|
|
120209
|
+
}), /* @__PURE__ */ jsx(ValueEditorFeedback, {
|
|
120210
|
+
error: key === "authentication" && config.authentication.type === "apiKey" ? void 0 : error(key),
|
|
120211
|
+
children: (errorId) => /* @__PURE__ */ jsx(NativeSelect, {
|
|
120212
|
+
className: "w-full",
|
|
120213
|
+
id: `${id}-${key}`,
|
|
120214
|
+
value,
|
|
120215
|
+
disabled,
|
|
120216
|
+
"aria-invalid": !!errorId,
|
|
120217
|
+
"aria-describedby": errorId,
|
|
120218
|
+
onChange: (event) => change(event.target.value),
|
|
120219
|
+
children: options.map(([optionValue, label]) => /* @__PURE__ */ jsx(NativeSelectOption, {
|
|
120220
|
+
value: optionValue,
|
|
120221
|
+
children: label
|
|
120222
|
+
}, optionValue))
|
|
120223
|
+
})
|
|
120224
|
+
})] }, key);
|
|
120225
|
+
const auth = config.authentication;
|
|
120226
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
120227
|
+
/* @__PURE__ */ jsx(InspectorSection, {
|
|
120228
|
+
title: t("httpRequest.title"),
|
|
120229
|
+
"data-inspector-section": "task",
|
|
120230
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
120231
|
+
className: "node-settings flex flex-col gap-3",
|
|
120232
|
+
"data-value-editor-scope": true,
|
|
120233
|
+
children: [
|
|
120234
|
+
input("url", "URL"),
|
|
120235
|
+
select("method", config.method, [
|
|
120236
|
+
"GET",
|
|
120237
|
+
"POST",
|
|
120238
|
+
"PUT",
|
|
120239
|
+
"PATCH",
|
|
120240
|
+
"DELETE",
|
|
120241
|
+
"HEAD",
|
|
120242
|
+
"OPTIONS"
|
|
120243
|
+
].map((value) => [value, value]), (method) => update({ method })),
|
|
120244
|
+
parameters,
|
|
120245
|
+
select("bodyFormat", config.bodyFormat, [
|
|
120246
|
+
["none", t("httpRequest.none")],
|
|
120247
|
+
["json", "JSON"],
|
|
120248
|
+
["text", t("httpRequest.text")],
|
|
120249
|
+
["form", "URL-encoded"]
|
|
120250
|
+
], (bodyFormat) => update({ bodyFormat })),
|
|
120251
|
+
config.bodyFormat !== "none" && input("body", t("httpRequest.body"))
|
|
120252
|
+
]
|
|
120253
|
+
})
|
|
120254
|
+
}),
|
|
120255
|
+
/* @__PURE__ */ jsx(InspectorSection, {
|
|
120256
|
+
title: t("httpRequest.authentication"),
|
|
120257
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
120258
|
+
className: "node-settings flex flex-col gap-3",
|
|
120259
|
+
"data-value-editor-scope": true,
|
|
120260
|
+
children: [
|
|
120261
|
+
select("authentication", auth.type, [
|
|
120262
|
+
["none", t("httpRequest.none")],
|
|
120263
|
+
["bearer", "Bearer"],
|
|
120264
|
+
["basic", "Basic"],
|
|
120265
|
+
["apiKey", "API Key"]
|
|
120266
|
+
], (type) => update({ authentication: type == "apiKey" ? {
|
|
120267
|
+
type,
|
|
120268
|
+
name: "X-API-Key",
|
|
120269
|
+
in: "header"
|
|
120270
|
+
} : { type } }), t("httpRequest.authenticationType")),
|
|
120271
|
+
auth.type == "apiKey" && /* @__PURE__ */ jsxs(Fragment$1, { children: [select("location", auth.in, [["header", "Header"], ["query", "Query"]], (location) => update({ authentication: {
|
|
120272
|
+
...auth,
|
|
120273
|
+
in: location
|
|
120274
|
+
} })), /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
120275
|
+
htmlFor: `${id}-keyName`,
|
|
120276
|
+
children: t("httpRequest.keyName")
|
|
120277
|
+
}), /* @__PURE__ */ jsx(ValueEditorFeedback, {
|
|
120278
|
+
error: error("authentication"),
|
|
120279
|
+
children: (errorId) => /* @__PURE__ */ jsx(Input, {
|
|
120280
|
+
id: `${id}-keyName`,
|
|
120281
|
+
value: auth.name,
|
|
120282
|
+
"aria-invalid": !!errorId,
|
|
120283
|
+
"aria-describedby": errorId,
|
|
120284
|
+
readOnly: disabled,
|
|
120285
|
+
onChange: (event) => update({ authentication: {
|
|
120286
|
+
...auth,
|
|
120287
|
+
name: event.target.value
|
|
120288
|
+
} })
|
|
120289
|
+
})
|
|
120290
|
+
})] })] }),
|
|
120291
|
+
auth.type === "basic" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [input("auth.username", t("httpRequest.username")), input("auth.password", t("httpRequest.password"))] }) : auth.type !== "none" ? input("auth.token", auth.type === "apiKey" ? t("httpRequest.keyValue") : "Token") : null
|
|
120292
|
+
]
|
|
120293
|
+
})
|
|
120294
|
+
}),
|
|
120295
|
+
/* @__PURE__ */ jsx(InspectorSection, {
|
|
120296
|
+
title: t("httpRequest.responseSettings"),
|
|
120297
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
120298
|
+
className: "node-settings flex flex-col gap-3",
|
|
120299
|
+
"data-value-editor-scope": true,
|
|
120300
|
+
children: [
|
|
120301
|
+
select("responseFormat", config.responseFormat, [
|
|
120302
|
+
["auto", t("httpRequest.auto")],
|
|
120303
|
+
["json", "JSON"],
|
|
120304
|
+
["text", t("httpRequest.text")]
|
|
120305
|
+
], (responseFormat) => update({ responseFormat })),
|
|
120306
|
+
select("statusPolicy", config.statusPolicy, [["success", t("httpRequest.success")], ["all", t("httpRequest.all")]], (statusPolicy) => update({ statusPolicy })),
|
|
120307
|
+
failed && /* @__PURE__ */ jsx(ValueEditorFeedback, {
|
|
120308
|
+
error: t("httpRequest.saveFailed"),
|
|
120309
|
+
children: (errorId) => /* @__PURE__ */ jsx(Button$1, {
|
|
120310
|
+
variant: "outline",
|
|
120311
|
+
size: "field",
|
|
120312
|
+
"aria-invalid": true,
|
|
120313
|
+
"aria-describedby": errorId,
|
|
120314
|
+
disabled,
|
|
120315
|
+
onClick: () => void save(),
|
|
120316
|
+
children: t("httpRequest.retry")
|
|
120317
|
+
})
|
|
120318
|
+
})
|
|
120319
|
+
]
|
|
120320
|
+
})
|
|
120321
|
+
})
|
|
120322
|
+
] });
|
|
120323
|
+
}
|
|
120324
|
+
//#endregion
|
|
119727
120325
|
//#region src/workbench/browser/runtime/editor/leinaBotSelect.tsx
|
|
119728
120326
|
function LeinaBotSelect({ source, flowId, value, disabled, onChange }) {
|
|
119729
120327
|
const t = useTranslate();
|
|
@@ -120555,9 +121153,9 @@ function OpenApiSection({ task, disabled, load, onSave, credentials }) {
|
|
|
120555
121153
|
})]
|
|
120556
121154
|
})]
|
|
120557
121155
|
})
|
|
120558
|
-
})] }), selectedServer != null && Object.entries(object(selectedServer.variables ?? {})).map(([name, definition]) => /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, { children: name }), /* @__PURE__ */ jsx(Input, {
|
|
121156
|
+
})] }), selectedServer != null && Object.entries(object$1(selectedServer.variables ?? {})).map(([name, definition]) => /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, { children: name }), /* @__PURE__ */ jsx(Input, {
|
|
120559
121157
|
"aria-label": name,
|
|
120560
|
-
value: serverVariables[name] ?? String(object(definition).default ?? ""),
|
|
121158
|
+
value: serverVariables[name] ?? String(object$1(definition).default ?? ""),
|
|
120561
121159
|
disabled,
|
|
120562
121160
|
onChange: (event) => setServerVariables({
|
|
120563
121161
|
...serverVariables,
|
|
@@ -121738,7 +122336,7 @@ function WebhookHeadersEditor({ options, outputs, disabled, readOnly, sourceDisa
|
|
|
121738
122336
|
onDraftIssue: ignoreDraft,
|
|
121739
122337
|
valueAddon: source(),
|
|
121740
122338
|
editor: whole == null ? void 0 : selected(whole.output, issue("/responseHeadersSource")),
|
|
121741
|
-
validateObjectFieldName: (name, current) =>
|
|
122339
|
+
validateObjectFieldName: (name, current) => httpHeaderNameIssue(name, Object.keys(headers).filter((candidate) => candidate !== current)) == null,
|
|
121742
122340
|
renderObjectField: (name, props) => {
|
|
121743
122341
|
const reference = binding(name);
|
|
121744
122342
|
return /* @__PURE__ */ jsx(FieldValueEditor, {
|
|
@@ -122241,7 +122839,7 @@ function WebhookResponseEditor({ entries, disabled, readOnly, variables, renderS
|
|
|
122241
122839
|
hideValueTools: true,
|
|
122242
122840
|
hideChildTypes: true,
|
|
122243
122841
|
expansionPolicy: expanded,
|
|
122244
|
-
validateObjectFieldName: (next, current) =>
|
|
122842
|
+
validateObjectFieldName: (next, current) => httpHeaderNameIssue(next, Object.keys(value != null && typeof value === "object" && !Array.isArray(value) ? value : {}).filter((key) => key !== current)) == null
|
|
122245
122843
|
} : { hideOptions: true }
|
|
122246
122844
|
});
|
|
122247
122845
|
return /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, { children: label }), headers ? /* @__PURE__ */ jsx(FieldTable, {
|
|
@@ -122268,7 +122866,7 @@ function inspectorIcon(node) {
|
|
|
122268
122866
|
if (node?.kind == "task" && node.definition != null && "executor" in node.definition) {
|
|
122269
122867
|
if (node.definition.executor.kind == "decision") return "decision";
|
|
122270
122868
|
if (node.definition.executor.kind == "workflow") return "flow";
|
|
122271
|
-
if (node.definition.executor.kind == "openapi") return "task";
|
|
122869
|
+
if (node.definition.executor.kind == "openapi" || node.definition.executor.kind == "http-request") return "task";
|
|
122272
122870
|
return node.definition.executor.kind == "connector" ? "connection" : "llm";
|
|
122273
122871
|
}
|
|
122274
122872
|
return "task";
|
|
@@ -122301,6 +122899,7 @@ function nodePurposePlaceholder(selection, t, action, displays) {
|
|
|
122301
122899
|
case "agent": return t("addNode.agentDescription");
|
|
122302
122900
|
case "decision": return t("decision.description");
|
|
122303
122901
|
case "workflow": return t("workflow.description");
|
|
122902
|
+
case "http-request": return t("httpRequest.description");
|
|
122304
122903
|
case "openapi": return t("openapi.description");
|
|
122305
122904
|
case "connector": return action?.description;
|
|
122306
122905
|
case "llm": return t(definition.executor.mode == "json" ? "addNode.llmStructuredDescription" : "addNode.llmChatDescription");
|
|
@@ -122308,7 +122907,7 @@ function nodePurposePlaceholder(selection, t, action, displays) {
|
|
|
122308
122907
|
}
|
|
122309
122908
|
}
|
|
122310
122909
|
}
|
|
122311
|
-
function inputUpstreamSources({ revision, sourceNodeIcons, selection, store, handleName, t, triggerDisplays }) {
|
|
122910
|
+
function inputUpstreamSources({ revision, sourceNodeIcons, selection, store, handleName, port, t, triggerDisplays }) {
|
|
122312
122911
|
const graph = revision.graph();
|
|
122313
122912
|
const mapping = revision.inputMappings(selection.node)[handleName];
|
|
122314
122913
|
const sources = mapping?.kind == "sources" ? mapping.sources.filter((source) => source.kind == "node") : [];
|
|
@@ -122327,7 +122926,10 @@ function inputUpstreamSources({ revision, sourceNodeIcons, selection, store, han
|
|
|
122327
122926
|
check: void 0
|
|
122328
122927
|
};
|
|
122329
122928
|
}),
|
|
122330
|
-
query: revision.inputSource(selection.id, handleName)
|
|
122929
|
+
query: port == null ? revision.inputSource(selection.id, handleName) : {
|
|
122930
|
+
...revision.inputSource(selection.id, handleName),
|
|
122931
|
+
candidates: () => inputSourceCandidates(graph, selection.id, handleName, port)
|
|
122932
|
+
},
|
|
122331
122933
|
groups: [],
|
|
122332
122934
|
describeGroups: (candidates) => Object.entries(candidates).map(([nodeId, outputs]) => {
|
|
122333
122935
|
const node = graph.nodes[nodeId];
|
|
@@ -122370,6 +122972,7 @@ function NodeInspector({ onAddWorkflowOutputs, onAddResponseNode, webhookDeploym
|
|
|
122370
122972
|
const task = selection?.kind == "task" ? selection.definition : void 0;
|
|
122371
122973
|
const isAgent = task != null && "executor" in task && task.executor.kind == "agent";
|
|
122372
122974
|
const isDecision = task != null && "executor" in task && task.executor.kind == "decision";
|
|
122975
|
+
const isHttpRequest = task != null && "executor" in task && task.executor.kind == "http-request";
|
|
122373
122976
|
const isOpenApi = task != null && "executor" in task && task.executor.kind == "openapi";
|
|
122374
122977
|
const unconfiguredWorkflow = task != null && "executor" in task && task.executor.kind == "workflow" && !task.executor.flowId;
|
|
122375
122978
|
const unconfiguredOpenApi = task != null && "executor" in task && task.executor.kind == "openapi" && !task.executor.path;
|
|
@@ -122643,6 +123246,84 @@ function NodeInspector({ onAddWorkflowOutputs, onAddResponseNode, webhookDeploym
|
|
|
122643
123246
|
actions: workflowActions,
|
|
122644
123247
|
list: (signal) => store.listWorkflowTargets(signal)
|
|
122645
123248
|
}, `workflow:${selection?.id}`),
|
|
123249
|
+
isHttpRequest && task != null && "executor" in task && /* @__PURE__ */ jsx(HttpRequestSection, {
|
|
123250
|
+
task,
|
|
123251
|
+
disabled,
|
|
123252
|
+
input: (handle, label) => {
|
|
123253
|
+
if (selection?.kind !== "task") return null;
|
|
123254
|
+
const definition = task.inputs.find((port) => "handle" in port && port.handle === handle);
|
|
123255
|
+
if (definition == null) return null;
|
|
123256
|
+
const mapping = revision.inputMappings(selection.node)[handle];
|
|
123257
|
+
const source = mapping?.kind === "sources" ? mapping.sources.find((item) => item.kind === "binding") : void 0;
|
|
123258
|
+
const binding = source?.kind === "binding" ? revision.binding(source.bindingId) : void 0;
|
|
123259
|
+
return /* @__PURE__ */ jsxs(Field, { children: [/* @__PURE__ */ jsx(FieldLabel, { children: label }), /* @__PURE__ */ jsx(NodeInputValue, {
|
|
123260
|
+
embedded: true,
|
|
123261
|
+
definition,
|
|
123262
|
+
label,
|
|
123263
|
+
presentation: {
|
|
123264
|
+
compact: true,
|
|
123265
|
+
hideOptions: true
|
|
123266
|
+
},
|
|
123267
|
+
sourceOnly: handle.startsWith("auth."),
|
|
123268
|
+
readOnly,
|
|
123269
|
+
disabled,
|
|
123270
|
+
value: inputValue(mapping, definition.value),
|
|
123271
|
+
connected: mapping?.kind === "sources" && binding?.kind !== "variable",
|
|
123272
|
+
variableName: binding?.kind === "variable" ? binding.target : void 0,
|
|
123273
|
+
upstream: inputUpstreamSources({
|
|
123274
|
+
revision,
|
|
123275
|
+
sourceNodeIcons,
|
|
123276
|
+
selection,
|
|
123277
|
+
store,
|
|
123278
|
+
handleName: handle,
|
|
123279
|
+
t,
|
|
123280
|
+
triggerDisplays
|
|
123281
|
+
}),
|
|
123282
|
+
variables,
|
|
123283
|
+
onValue: (value, deletion) => {
|
|
123284
|
+
store?.nodes.setInputValue(selection.id, handle, value, deletion);
|
|
123285
|
+
},
|
|
123286
|
+
onVariable: (name) => {
|
|
123287
|
+
store?.nodes.setInputVariable(selection.id, handle, name);
|
|
123288
|
+
}
|
|
123289
|
+
})] }, handle);
|
|
123290
|
+
},
|
|
123291
|
+
parameters: selection?.kind === "task" && ["query", "headers"].map((group) => /* @__PURE__ */ jsx(HttpParameterEditor, {
|
|
123292
|
+
group,
|
|
123293
|
+
task,
|
|
123294
|
+
entries: Object.fromEntries(Object.entries(revision.inputMappings(selection.node)).map(([handle, mapping]) => {
|
|
123295
|
+
const source = mapping.kind === "sources" ? mapping.sources.find((item) => item.kind === "binding") : void 0;
|
|
123296
|
+
const binding = source?.kind === "binding" ? revision.binding(source.bindingId) : void 0;
|
|
123297
|
+
return [handle, {
|
|
123298
|
+
value: inputValue(mapping, void 0),
|
|
123299
|
+
connected: mapping.kind === "sources" && binding?.kind !== "variable",
|
|
123300
|
+
variableName: binding?.kind === "variable" ? binding.target : void 0
|
|
123301
|
+
}];
|
|
123302
|
+
})),
|
|
123303
|
+
variables,
|
|
123304
|
+
disabled,
|
|
123305
|
+
readOnly,
|
|
123306
|
+
renderSource: (handleName, port) => inputUpstreamSources({
|
|
123307
|
+
revision,
|
|
123308
|
+
sourceNodeIcons,
|
|
123309
|
+
selection,
|
|
123310
|
+
store,
|
|
123311
|
+
handleName,
|
|
123312
|
+
port,
|
|
123313
|
+
t,
|
|
123314
|
+
triggerDisplays
|
|
123315
|
+
}),
|
|
123316
|
+
onEdit: (edit) => {
|
|
123317
|
+
store?.nodes.saveHttpParameters(selection.id, group, edit);
|
|
123318
|
+
}
|
|
123319
|
+
}, group)),
|
|
123320
|
+
onSave: (before, value) => store?.nodes.saveTaskSettings(selection.id, {
|
|
123321
|
+
kind: "http-request",
|
|
123322
|
+
name: task.name,
|
|
123323
|
+
before,
|
|
123324
|
+
task: value
|
|
123325
|
+
}) ?? Promise.resolve(false)
|
|
123326
|
+
}, `http:${selection?.id}`),
|
|
122646
123327
|
isOpenApi && task != null && "executor" in task && /* @__PURE__ */ jsx(OpenApiSection, {
|
|
122647
123328
|
task,
|
|
122648
123329
|
credentials: (onInvalidChange) => selection?.kind === "task" && task.inputs.filter((port) => "handle" in port && port.handle.startsWith("auth.")).map((definition) => {
|
|
@@ -122691,7 +123372,7 @@ function NodeInspector({ onAddWorkflowOutputs, onAddResponseNode, webhookDeploym
|
|
|
122691
123372
|
task: value
|
|
122692
123373
|
}) ?? Promise.resolve(false)
|
|
122693
123374
|
}, `openapi:${selection?.id}`),
|
|
122694
|
-
!unconfiguredOpenApi && !unconfiguredWorkflow && (selection?.kind === "outputs" || selection?.kind === "approval" || selection?.kind === "wait" || selection?.kind === "task") && (() => {
|
|
123375
|
+
!isHttpRequest && !unconfiguredOpenApi && !unconfiguredWorkflow && (selection?.kind === "outputs" || selection?.kind === "approval" || selection?.kind === "wait" || selection?.kind === "task") && (() => {
|
|
122695
123376
|
const definitions = selection.kind === "outputs" ? [...selection.node.outputDefs] : selection.kind === "task" ? [...selection.definition?.inputs ?? []] : [...selection.node.inputDefinitions];
|
|
122696
123377
|
const handles = new Set(definitions.flatMap((definition) => "handle" in definition ? [definition.handle] : []));
|
|
122697
123378
|
for (const handle of Object.keys(revision.inputMappings(selection.node))) if (!handles.has(handle) && !(selection.kind === "task" && selection.node.additionalInputs?.some((port) => port.handle === handle))) definitions.push({
|
|
@@ -122710,6 +123391,7 @@ function NodeInspector({ onAddWorkflowOutputs, onAddResponseNode, webhookDeploym
|
|
|
122710
123391
|
const binding = source?.kind === "binding" ? revision.binding(source.bindingId) : void 0;
|
|
122711
123392
|
return {
|
|
122712
123393
|
definition,
|
|
123394
|
+
sourceOnly: isHttpRequest && definition.handle.startsWith("auth."),
|
|
122713
123395
|
editor: !readOnly && connectors != null && connector?.action == "leina.send_notification" && definition.handle == "leinaId" && mapping?.kind != "sources" ? /* @__PURE__ */ jsx(LeinaBotSelect, {
|
|
122714
123396
|
source: connectors,
|
|
122715
123397
|
flowId: revision.revision.flowId,
|
|
@@ -122857,7 +123539,7 @@ function NodeInspector({ onAddWorkflowOutputs, onAddResponseNode, webhookDeploym
|
|
|
122857
123539
|
readOnly,
|
|
122858
123540
|
groups: true,
|
|
122859
123541
|
layout: "ports",
|
|
122860
|
-
title: t("inspector.ports.outputsTitle"),
|
|
123542
|
+
title: t(isHttpRequest ? "httpRequest.responseOutputs" : "inspector.ports.outputsTitle"),
|
|
122861
123543
|
output: true,
|
|
122862
123544
|
values: presentDecisionOutputs(selection.definition, t),
|
|
122863
123545
|
disabled: disabled || !("moduleId" in selection.node.task || isAgent),
|