@oomol-lab/open-flow 0.1.0-beta.61 → 0.1.0-beta.62

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.
@@ -10752,6 +10752,10 @@ svg.react-flow__connectionline {
10752
10752
  font-weight: 500;
10753
10753
  }
10754
10754
 
10755
+ .open-flow-workbench .trigger-binding-state.neutral {
10756
+ color: var(--ui-muted-foreground);
10757
+ }
10758
+
10755
10759
  .open-flow-workbench .trigger-binding-state.success {
10756
10760
  color: var(--success-foreground);
10757
10761
  }
@@ -10815,26 +10819,6 @@ svg.react-flow__connectionline {
10815
10819
  display: grid;
10816
10820
  }
10817
10821
 
10818
- .open-flow-workbench .trigger-webhook code {
10819
- min-width: 0;
10820
- color: var(--ui-foreground);
10821
- overflow-wrap: anywhere;
10822
- flex: 1;
10823
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
10824
- font-size: 12px;
10825
- }
10826
-
10827
- .open-flow-workbench .trigger-webhook > div {
10828
- align-items: center;
10829
- gap: 8px;
10830
- min-width: 0;
10831
- display: flex;
10832
- }
10833
-
10834
- .open-flow-workbench .trigger-webhook [data-slot="button"] {
10835
- flex: none;
10836
- }
10837
-
10838
10822
  .open-flow-workbench .trigger-binding-detail-sections {
10839
10823
  border-top: 1px solid var(--ui-border);
10840
10824
  grid-template-columns: minmax(0, 1fr);
@@ -1,7 +1,7 @@
1
- import { $ as RunStore, $n as setInputSources, B as CacheResource, Bn as providerIconAppearance, Bt as EmptyHeader, Ct as Popover, F as feishuResourceKind, Fn as allConnectorConnectionsQuery, Ft as InputGroupAddon, Gt as DropdownMenuContent, H as resourceData, Ht as EmptyTitle, I as supportsFeishuChatFilter, It as InputGroupInput, J as providerIcon, L as combineSources, Ln as decodeTriggerCatalog, Lt as Empty, M as addNodeIntent, Mn as errorNotice, N as deriveAddNodeOptions, Nn as WorkbenchClient, Ot as PopoverTitle, Pn as randomId, Pt as InputGroup, Qn as setConnectorConnection, Rn as connection, Rt as EmptyContent, St as followWorkbenchLink, U as resourceValue, Ut as DropdownMenu, Vt as EmptyMedia, W as designerGraph, Xn as resetInputValues, Yn as repairNodeNames, Zn as setCodeActions, Zt as DropdownMenuSeparator, _ as updateValue, _r as ApiError, _t as setComment, a as nameCreatedNodes, at as deriveInspectorDiagnostics, bt as setNodePositions, c as updateCondition, cr as triggerOutputDefinitions, d as updateNodeName, dt as connectionCatalog, er as setTriggerConnection, f as updateNodeSettings, fr as inputValue, ft as canvasPresentationChange, g as updateTaskPorts, gn as EventSourcesPage, gr as string, gt as restoreCanvasPresentation, h as updateTaskAdditionalInputs, hn as Badge, hr as record, ht as removeComments, i as deleteSelection, ir as replaceSource, it as Latest, l as updateNodeDescription, lr as isJsonObject, m as updateTask, mr as jsonValue, mt as flowPresentation, nr as updateTriggerSchedule, nt as revisionView, o as setInputValue, ot as diagnosticItems, p as updateResolution, pr as invalidResponse, pt as commentIds, qt as DropdownMenuItem, r as applyFlowChanges, rr as imports, rt as flowResourceReferences, s as setInputVariable, sr as sampleErrorOutputs, t as addNode, tn as DropdownMenuTrigger, tr as updateTriggerConfig, u as updateNodeIcon, ut as actionWithConnections, v as updateWebhook, vr as controlErrorCode, vt as setFlowViewport, wt as PopoverContent, xr as IconThemeContext, xt as IdTooltip, yn as createI18n, yt as setNodeContentHidden, z as scopedValue, zn as connectorActionMetadata, zt as EmptyDescription } from "./flowChanges-DSA0FxxN.js";
1
+ import { $ as RunStore, $n as connection, $t as DropdownMenuContent, At as followWorkbenchLink, B as CacheResource, Bn as errorNotice, Cn as Badge, Ct as setCodeActions, Dn as createI18n, Dt as updateTriggerConfig, Et as setTriggerConnection, F as feishuResourceKind, Gn as decodeTriggerCatalog, Gt as Empty, H as resourceData, Hn as randomId, Ht as InputGroup, I as supportsFeishuChatFilter, It as PopoverTitle, J as providerIcon, Jn as sampleErrorOutputs, Jt as EmptyHeader, Kt as EmptyContent, L as combineSources, M as addNodeIntent, Mt as PopoverContent, N as deriveAddNodeOptions, Ot as updateTriggerSchedule, St as resetInputValues, Tt as setInputSources, U as resourceValue, Un as allConnectorConnectionsQuery, Ut as InputGroupAddon, Vn as WorkbenchClient, W as designerGraph, Wt as InputGroupInput, Xn as isJsonObject, Xt as EmptyTitle, Yn as triggerOutputDefinitions, Yt as EmptyMedia, Zt as DropdownMenu, _ as updateValue, _t as setComment, a as nameCreatedNodes, an as DropdownMenuSeparator, at as deriveInspectorDiagnostics, bt as setNodePositions, c as updateCondition, d as updateNodeName, dr as invalidResponse, dt as connectionCatalog, er as connectorActionMetadata, f as updateNodeSettings, fr as jsonValue, ft as canvasPresentationChange, g as updateTaskPorts, gr as controlErrorCode, gt as restoreCanvasPresentation, h as updateTaskAdditionalInputs, hr as ApiError, ht as removeComments, i as deleteSelection, it as Latest, jt as Popover, kt as IdTooltip, l as updateNodeDescription, ln as DropdownMenuTrigger, m as updateTask, mr as string, mt as flowPresentation, nt as revisionView, o as setInputValue, ot as diagnosticItems, p as updateResolution, pr as record, pt as commentIds, qt as EmptyDescription, r as applyFlowChanges, rt as flowResourceReferences, s as setInputVariable, t as addNode, tn as DropdownMenuItem, tr as providerIconAppearance, u as updateNodeIcon, ur as inputValue, ut as actionWithConnections, v as updateWebhook, vt as setFlowViewport, wn as EventSourcesPage, wt as setConnectorConnection, xt as repairNodeNames, yr as IconThemeContext, yt as setNodeContentHidden, z as scopedValue } from "./flowChanges-CzYIVevI.js";
2
2
  import { a as derive, i as compute, l as val } from "./dist-bO8nvHFH.js";
3
3
  import { a as toPlainObject, c as useLang, l as useTranslate, o as I18nProvider, u as useVal } from "./dist-BFmpkX4P.js";
4
- import { E as FieldLabel, J as nodeInputMappings, L as FlowChangeError, R as applyFlowChanges$1, S as Field, T as FieldGroup, W as resourceNameIssue, a as DialogDescription, bi as cn, c as DialogTitle, d as TooltipContent, i as DialogContent, n as Dialog, o as DialogFooter, or as Input, p as TooltipTrigger, q as mapConditionSources, r as DialogClose, s as DialogHeader, t as Icon, u as Tooltip, vi as Button, w as FieldError, x as Spinner, yt as dequal$1 } from "./icons-DVJvrj1H.js";
4
+ import { B as applyFlowChanges$1, E as FieldLabel, K as resourceNameIssue, S as Field, T as FieldGroup, X as nodeInputMappings, Y as mapConditionSources, a as DialogDescription, c as DialogTitle, d as TooltipContent, i as DialogContent, n as Dialog, o as DialogFooter, p as TooltipTrigger, r as DialogClose, rt as dequal$1, s as DialogHeader, sr as Input, t as Icon, u as Tooltip, w as FieldError, x as Spinner, xi as cn, yi as Button, z as FlowChangeError } from "./icons-CajfDpy_.js";
5
5
  import { c as isUiLanguage, d as uiLanguages, l as resolveUiLanguage, u as uiLanguageNames } from "./value-DL_poNiC.js";
6
6
  import { Suspense, lazy, useEffect, useRef, useState } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -184,7 +184,7 @@ function Skeleton({ className, ...props }) {
184
184
  }
185
185
  //#endregion
186
186
  //#region src/workbench/browser/runtime/shell/resourceBrowser.tsx
187
- var CreateResourceDialog = lazy(() => import("./createResourceDialog-D71fO68i.js"));
187
+ var CreateResourceDialog = lazy(() => import("./createResourceDialog-DZgJsr3e.js"));
188
188
  var flowIdTooltipAlignOffset = 44;
189
189
  var renamePopoverAlignOffset = -12;
190
190
  var renamePopoverVerticalShift = 8;
@@ -925,6 +925,36 @@ function disconnect(content, edge) {
925
925
  kind: "graph.edge.disconnect"
926
926
  }];
927
927
  }
928
+ //#endregion
929
+ //#region src/flow/common/moduleChanges.ts
930
+ async function imports(source) {
931
+ try {
932
+ const { parse } = await import("./lib-Dws05GHj.js").then((n) => n.t);
933
+ const program = parse(source, {
934
+ errorRecovery: true,
935
+ sourceType: "module"
936
+ }).program;
937
+ const dependencies = /* @__PURE__ */ new Set();
938
+ for (const statement of program.body) {
939
+ if (statement.type != "ImportDeclaration") continue;
940
+ const match = /^\.\/(.+)\.mjs$/.exec(statement.source.value);
941
+ if (match?.[1] != null) dependencies.add(match[1]);
942
+ }
943
+ return [...dependencies].toSorted();
944
+ } catch {
945
+ return [];
946
+ }
947
+ }
948
+ function replaceSource(moduleId, beforeSource, beforeImports, source, moduleImports) {
949
+ return [{
950
+ beforeImports,
951
+ beforeSource,
952
+ imports: moduleImports,
953
+ kind: "module.source.replace",
954
+ moduleId,
955
+ source
956
+ }];
957
+ }
928
958
  var createAuthoringId = customAlphabet("23456789abcdefghjkmnpqrstuvwxyz", 10);
929
959
  //#endregion
930
960
  //#region src/workbench/browser/runtime/editor/triggerDiagnosticPresentation.ts
@@ -945,12 +975,15 @@ function presentTriggerDiagnostics(items, revision, displays, language, t) {
945
975
  }
946
976
  //#endregion
947
977
  //#region src/workbench/browser/runtime/publications/publicationStore.ts
978
+ var initialBindings = {
979
+ status: "idle",
980
+ bindings: []
981
+ };
948
982
  var initialState$6 = {
949
983
  activities: [],
950
984
  activitiesLoadFailed: false,
951
985
  activitiesLoading: false,
952
986
  activitiesLoadingMore: false,
953
- bindings: [],
954
987
  detailLoading: false,
955
988
  loaded: false,
956
989
  loadFailed: false,
@@ -971,6 +1004,8 @@ var PublicationStore = class {
971
1004
  #client;
972
1005
  #identity;
973
1006
  #i18n;
1007
+ #bindings = val(initialBindings);
1008
+ #bindingLoads = new Latest();
974
1009
  #loads = new Latest();
975
1010
  #operation = new Latest();
976
1011
  #preferences;
@@ -994,7 +1029,7 @@ var PublicationStore = class {
994
1029
  activitiesLoading: derive(this.#state, (state) => state.activitiesLoading),
995
1030
  activitiesLoadingMore: derive(this.#state, (state) => state.activitiesLoadingMore),
996
1031
  activitiesNextCursor: derive(this.#state, (state) => state.activitiesNextCursor),
997
- bindings: derive(this.#state, (state) => state.bindings),
1032
+ bindings: this.#bindings,
998
1033
  detail: derive(this.#state, (state) => state.detail),
999
1034
  detailLoading: derive(this.#state, (state) => state.detailLoading),
1000
1035
  live: derive(this.#state, (state) => state.live),
@@ -1015,6 +1050,7 @@ var PublicationStore = class {
1015
1050
  };
1016
1051
  }
1017
1052
  dispose() {
1053
+ this.#bindingLoads.invalidate();
1018
1054
  this.#loads.invalidate();
1019
1055
  this.#operation.invalidate();
1020
1056
  this.#stopObservation();
@@ -1024,6 +1060,8 @@ var PublicationStore = class {
1024
1060
  this.#state.dispose();
1025
1061
  }
1026
1062
  reset() {
1063
+ this.#bindingLoads.invalidate();
1064
+ this.#bindings.set(initialBindings);
1027
1065
  this.#loads.invalidate();
1028
1066
  this.#operation.invalidate();
1029
1067
  this.#stopObservation();
@@ -1055,11 +1093,11 @@ var PublicationStore = class {
1055
1093
  });
1056
1094
  try {
1057
1095
  const operation = warm ? state.operation : await this.#storedOperation(target);
1058
- const [live, page, bindings] = await this.#read(target);
1096
+ if (!current()) return;
1097
+ const [live, page] = await this.#read(target);
1059
1098
  if (!current()) return;
1060
1099
  this.#workspace.updateLive(live);
1061
1100
  this.#set({
1062
- bindings,
1063
1101
  live,
1064
1102
  loaded: true,
1065
1103
  loading: false,
@@ -1086,6 +1124,36 @@ var PublicationStore = class {
1086
1124
  this.#setNotice(errorNotice(error, this.#i18n.t));
1087
1125
  }
1088
1126
  }
1127
+ async loadBindings(flowId) {
1128
+ try {
1129
+ await this.#readBindings(flowId);
1130
+ } catch {}
1131
+ }
1132
+ async #readBindings(flowId, signal) {
1133
+ const previous = this.#bindings.value;
1134
+ const current = this.#bindingLoads.begin();
1135
+ this.#bindings.set({
1136
+ flowId,
1137
+ status: "loading",
1138
+ bindings: previous.flowId === flowId ? previous.bindings : []
1139
+ });
1140
+ try {
1141
+ const bindings = await this.#client.listFlowTriggerBindings(flowId, signal);
1142
+ if (!current()) return;
1143
+ this.#bindings.set({
1144
+ flowId,
1145
+ status: "loaded",
1146
+ bindings
1147
+ });
1148
+ } catch (error) {
1149
+ if (!current()) return;
1150
+ this.#bindings.set({
1151
+ ...this.#bindings.value,
1152
+ status: "failed"
1153
+ });
1154
+ throw error;
1155
+ }
1156
+ }
1089
1157
  async loadMore() {
1090
1158
  const { loadingMore, nextCursor, target } = this.#state.value;
1091
1159
  if (loadingMore || nextCursor == null || target == null) return;
@@ -1307,14 +1375,13 @@ var PublicationStore = class {
1307
1375
  }
1308
1376
  async #refresh(target, signal) {
1309
1377
  const current = this.#loads.begin();
1310
- const [live, page, bindings] = await this.#read(target, signal).catch((error) => {
1378
+ const [live, page] = await this.#read(target, signal).catch((error) => {
1311
1379
  if (current() && sameTarget(this.#state.value.target, target)) this.#set({ refreshing: false });
1312
1380
  throw error;
1313
1381
  });
1314
1382
  signal?.throwIfAborted();
1315
1383
  if (current()) this.#workspace.updateLive(live);
1316
1384
  if (current() && sameTarget(this.#state.value.target, target)) this.#set({
1317
- bindings,
1318
1385
  live,
1319
1386
  loaded: true,
1320
1387
  loadFailed: false,
@@ -1341,7 +1408,7 @@ var PublicationStore = class {
1341
1408
  includeTotal: true,
1342
1409
  limit: pageLimit$1
1343
1410
  }, signal),
1344
- this.#client.listFlowTriggerBindings(target.flowId, signal)
1411
+ this.#readBindings(target.flowId, signal)
1345
1412
  ]);
1346
1413
  }
1347
1414
  async #storedOperation(target) {
@@ -6726,7 +6793,7 @@ var WorkbenchStore = class {
6726
6793
  };
6727
6794
  //#endregion
6728
6795
  //#region src/workbench/browser/runtime/openFlowWorkbench.tsx
6729
- var FlowWorkspace = lazy(() => import("./flowWorkspace-0sUJ5JhQ.js"));
6796
+ var FlowWorkspace = lazy(() => import("./flowWorkspace-BgZaFKZm.js"));
6730
6797
  function OpenFlowSessionGate({ action, description, error, onSubmit, onTokenChange, pending = false, title, token, tokenLabel }) {
6731
6798
  const hasToken = token != null && tokenLabel != null && onTokenChange != null;
6732
6799
  const tokenValue = token ?? "";
@@ -1,4 +1,4 @@
1
- import { Ct as SelectGroup, Dt as SelectValue, Et as SelectTrigger, St as SelectContent, bi as cn, bt as Select, wt as SelectItem } from "./icons-DVJvrj1H.js";
1
+ import { Ct as SelectContent, Dt as SelectTrigger, Ot as SelectValue, Tt as SelectItem, wt as SelectGroup, xi as cn, xt as Select } from "./icons-CajfDpy_.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  //#region src/workbench/browser/runtime/shell/workbenchSelect.tsx
4
4
  function WorkbenchSelect({ ariaLabel, className, disabled = false, id, onValueChange, options, portalRoot, size, value, variant }) {