@octaviaflow/core 3.1.0-beta.69 → 3.1.0-beta.70

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.
@@ -1 +1 @@
1
- {"version":3,"file":"HttpActionPanel.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/HttpActionPanel/HttpActionPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,SAAS,EAAiD,MAAM,OAAO,CAAC;AAsBtF,OAAO,EAQL,KAAK,gBAAgB,EAMrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAOzB,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yDAAyD;IACzD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2BD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,WAAW,EACX,kBAA0B,EAC1B,aAAa,EACb,SAAS,GACV,EAAE,oBAAoB,2CA8pCtB"}
1
+ {"version":3,"file":"HttpActionPanel.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/HttpActionPanel/HttpActionPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,SAAS,EAAiD,MAAM,OAAO,CAAC;AAsBtF,OAAO,EAQL,KAAK,gBAAgB,EAMrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAOzB,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yDAAyD;IACzD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2BD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,WAAW,EACX,kBAA0B,EAC1B,aAAa,EACb,SAAS,GACV,EAAE,oBAAoB,2CAgtCtB"}
package/dist/workflow.cjs CHANGED
@@ -6543,6 +6543,7 @@ function HttpActionPanel({
6543
6543
  const [curlError, setCurlError] = (0, import_react42.useState)();
6544
6544
  const [copiedCurl, setCopiedCurl] = (0, import_react42.useState)(false);
6545
6545
  const [copiedResult, setCopiedResult] = (0, import_react42.useState)(false);
6546
+ const [copiedSection, setCopiedSection] = (0, import_react42.useState)(null);
6546
6547
  const applyCurl = () => {
6547
6548
  const patch = parseCurl(curlText);
6548
6549
  if (!patch) {
@@ -6591,6 +6592,28 @@ function HttpActionPanel({
6591
6592
  } catch {
6592
6593
  }
6593
6594
  };
6595
+ const copySection = async (text, key) => {
6596
+ try {
6597
+ await navigator.clipboard?.writeText(text);
6598
+ setCopiedSection(key);
6599
+ setTimeout(() => setCopiedSection(null), 1600);
6600
+ } catch {
6601
+ }
6602
+ };
6603
+ const sectionCopyButton = (text, key, label) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
6604
+ Button,
6605
+ {
6606
+ variant: "ghost",
6607
+ size: "sm",
6608
+ "aria-label": copiedSection === key ? `${label} copied` : `Copy ${label}`,
6609
+ leftIcon: copiedSection === key ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons12.CheckmarkIcon, { size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons12.CopyIcon, { size: "sm" }),
6610
+ className: cn(copiedSection === key && "ods-http-panel__copy-done"),
6611
+ onClick: (e) => {
6612
+ e.stopPropagation();
6613
+ void copySection(text, key);
6614
+ }
6615
+ }
6616
+ );
6594
6617
  const validateUrl = (nextUrl, nextBase, hasConnection) => {
6595
6618
  if (!nextUrl && !nextBase && !hasConnection) {
6596
6619
  setUrlError("URL is required");
@@ -7528,6 +7551,7 @@ function HttpActionPanel({
7528
7551
  }
7529
7552
  ),
7530
7553
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("code", { className: "ods-http-panel__console-url", children: connectionId ? `${selectedConnection?.name ?? connectionId} \xB7 ${url || "\u2014"}` : fullUrl || "\u2014" }),
7554
+ sectionCopyButton(fullUrl || url, "url", "request URL"),
7531
7555
  preview.phase === "success" && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
7532
7556
  Button,
7533
7557
  {
@@ -7585,7 +7609,14 @@ function HttpActionPanel({
7585
7609
  {
7586
7610
  id: "res-headers",
7587
7611
  label: "Response headers",
7588
- trailing: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Badge, { size: "sm", variant: "neutral", children: Object.keys(preview.response.headers).length }),
7612
+ trailing: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
7613
+ sectionCopyButton(
7614
+ Object.entries(preview.response.headers).map(([k, v]) => `${k}: ${v}`).join("\n"),
7615
+ "res-headers",
7616
+ "response headers"
7617
+ ),
7618
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Badge, { size: "sm", variant: "neutral", children: Object.keys(preview.response.headers).length })
7619
+ ] }),
7589
7620
  content: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "ods-http-panel__res-headers", children: Object.entries(preview.response.headers).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ods-http-panel__res-header", children: [
7590
7621
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "ods-http-panel__res-header-key", children: k }),
7591
7622
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "ods-http-panel__res-header-val", children: v })
@@ -7594,7 +7625,14 @@ function HttpActionPanel({
7594
7625
  {
7595
7626
  id: "res-body",
7596
7627
  label: "Response body",
7597
- trailing: !preview.response.ok ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Badge, { size: "sm", variant: "error", children: "Error" }) : null,
7628
+ trailing: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
7629
+ sectionCopyButton(
7630
+ typeof preview.response.body === "object" ? JSON.stringify(preview.response.body, null, 2) : String(preview.response.bodyRaw ?? preview.response.body ?? ""),
7631
+ "res-body",
7632
+ "response body"
7633
+ ),
7634
+ !preview.response.ok && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Badge, { size: "sm", variant: "error", children: "Error" })
7635
+ ] }),
7598
7636
  content: (
7599
7637
  // Size guard: the tree view renders recursively (no
7600
7638
  // virtualization) — very large bodies fall back to text.