@5minds/processcube_app_sdk 7.0.0-alpha.4 → 7.0.0-alpha.6
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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use server";import{DataModels as C}from"@5minds/processcube_engine_client";import{DataModels as b}from"@5minds/processcube_engine_client";import{getToken as p}from"next-auth/jwt";import{ResponseCookies as k}from"next/dist/compiled/@edge-runtime/cookies/index.js";import{cookies as a,headers as y}from"next/headers";async function i(){let e=await p({req:{cookies:await a(),headers:await y()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let s=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await a()).toString()}}),o=new k(s.headers);if(o.getAll().length){let d=!1;try{for(let c of o.getAll())(await a()).set(c.name,c.value,{...c})}catch{d=!0}if(e=await p({req:{cookies:d?o:await a(),headers:await y()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}import{EngineClient as T}from"@5minds/processcube_engine_client";var h=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",n=new T(h);async function r(){try{return i()}catch{return}}async function u(e){let t=await r();return(await n.processInstances.query({processInstanceId:e},{identity:t,includeXml:!0})).processInstances[0]}async function I(e,t={sortSettings:{sortBy:b.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await n.flowNodeInstances.query({processInstanceId:e},{...t,identity:t.identity??await r()})).flowNodeInstances}async function l(e){let t=await r();return(await n.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:t})).flowNodeInstances}async function f(e,t,s){let o=await r();await n.processInstances.retryProcessInstance(e,{flowNodeInstanceId:t,newStartToken:s,identity:o})}async function m(e){let t=await r();await n.processInstances.terminateProcessInstance(e,t)}async function w(...e){await n.manualTasks.finishManualTask(...e)}async function g(...e){await n.userTasks.finishUserTask(...e)}async function P(...e){await n.untypedTasks.finishTask(...e)}async function E(){try{return i()}catch{return}}var Q=async(e,t)=>{let s=await E();t==="bpmn:UserTask"?await g(e,{},s):t==="bpmn:ManualTask"?await w(e,s):t==="bpmn:Task"?await P(e,s):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${t}`)},z=async e=>{await m(e)},J=async(e,t,s)=>{await f(e,t,s)},K=async e=>u(e),V=async e=>I(e,{sortSettings:{sortBy:C.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),W=async e=>l(e);export{Q as finishTask,V as getFlowNodeInstances,K as getProcessInstance,W as getTriggeredFlowNodeInstances,J as retryProcess,z as terminateProcess};
|
package/build/client/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";var br=Object.create;var mo=Object.defineProperty;var xr=Object.getOwnPropertyDescriptor;var Ir=Object.getOwnPropertyNames;var Nr=Object.getPrototypeOf,Cr=Object.prototype.hasOwnProperty;var de=(e,o)=>()=>(e&&(o=e(e=0)),o);var Ut=(e,o)=>{for(var t in o)mo(e,t,{get:o[t],enumerable:!0})},Vt=(e,o,t,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of Ir(o))!Cr.call(e,r)&&r!==t&&mo(e,r,{get:()=>o[r],enumerable:!(s=xr(o,r))||s.enumerable});return e};var l=(e,o,t)=>(t=e!=null?br(Nr(e)):{},Vt(o||!e||!e.__esModule?mo(t,"default",{value:e,enumerable:!0}):t,e)),Fr=e=>Vt(mo({},"__esModule",{value:!0}),e);async function Yo(){let e=await(0,Mt.getToken)({req:{cookies:await(0,Ce.cookies)(),headers:await(0,Ce.headers)()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let t=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await(0,Ce.cookies)()).toString()}}),s=new Ms.ResponseCookies(t.headers);if(s.getAll().length){let r=!1;try{for(let a of s.getAll())(await(0,Ce.cookies)()).set(a.name,a.value,{...a})}catch{r=!0}if(e=await(0,Mt.getToken)({req:{cookies:r?s:await(0,Ce.cookies)(),headers:await(0,Ce.headers)()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}var Mt,Ms,Ce,Bt=de(()=>{Mt=require("next-auth/jwt"),Ms=require("next/dist/compiled/@edge-runtime/cookies"),Ce=require("next/headers")});var Bs,na,se,no=de(()=>{Bs=require("@5minds/processcube_engine_client"),na=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",se=new Bs.EngineClient(na)});async function io(){try{return Yo()}catch{return}}async function Ls(e){let o=await io();return(await se.processInstances.query({processInstanceId:e},{identity:o,includeXml:!0})).processInstances[0]}async function Us(e,o={sortSettings:{sortBy:Os.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await se.flowNodeInstances.query({processInstanceId:e},{...o,identity:o.identity??await io()})).flowNodeInstances}async function Vs(e){let o=await io();return(await se.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:o})).flowNodeInstances}async function _s(e,o,t){let s=await io();await se.processInstances.retryProcessInstance(e,{flowNodeInstanceId:o,newStartToken:t,identity:s})}async function As(e){let o=await io();await se.processInstances.terminateProcessInstance(e,o)}var Os,$s=de(()=>{Os=require("@5minds/processcube_engine_client");Bt();no()});var ia,Hs=de(()=>{ia=require("next/navigation")});var zs=de(()=>{});async function Rs(...e){await se.manualTasks.finishManualTask(...e)}var js=de(()=>{no()});async function Gs(...e){await se.userTasks.finishUserTask(...e)}var Js=de(()=>{no()});async function Ws(...e){await se.untypedTasks.finishTask(...e)}var qs=de(()=>{no()});var Xs=de(()=>{Hs();zs();js();Js();qs()});var qe={};Ut(qe,{finishTask:()=>pa,getFlowNodeInstances:()=>ua,getProcessInstance:()=>ma,getTriggeredFlowNodeInstances:()=>fa,retryProcess:()=>ca,terminateProcess:()=>la});async function da(){try{return Yo()}catch{return}}var Ys,pa,la,ca,ma,ua,fa,Xe=de(()=>{"use server";Ys=require("@5minds/processcube_engine_client");$s();Bt();Xs();pa=async(e,o)=>{let t=await da();o==="bpmn:UserTask"?await Gs(e,{},t):o==="bpmn:ManualTask"?await Rs(e,t):o==="bpmn:Task"?await Ws(e,t):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${o}`)},la=async e=>{await As(e)},ca=async(e,o,t)=>{await _s(e,o,t)},ma=async e=>Ls(e),ua=async e=>Us(e,{sortSettings:{sortBy:Ys.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),fa=async e=>Vs(e)});var ba={};Ut(ba,{BPMNViewer:()=>uo,BPMNViewerNextJS:()=>Er,BooleanFormField:()=>wo,BpmnViewerComponent:()=>Ft,CheckboxFormField:()=>yo,ColorFormField:()=>vo,ConfirmFormField:()=>xo,CustomFormField:()=>Io,DateFormField:()=>No,DatetimeLocalFormField:()=>Co,DecimalFormField:()=>Po,DiagramDocumentationInspector:()=>Le,DiagramDocumentationInspectorNextJS:()=>_r,DocumentationViewer:()=>fo,DropdownMenu:()=>Ar,DropdownMenuItem:()=>$r,DynamicLink:()=>Hr,DynamicUi:()=>Zr,DynamicUiComponent:()=>Tt,EmailFormField:()=>So,EnumFormField:()=>Do,FileFormField:()=>To,FlowNode:()=>ho,FormFieldComponentMap:()=>Dt,HeaderFormField:()=>Eo,HiddenFormField:()=>Mo,IntegerFormField:()=>Bo,MonthFormField:()=>Oo,ParagraphFormField:()=>_o,PasswordFormField:()=>Ao,ProcessInstanceInspector:()=>fr,ProcessInstanceInspectorNextJS:()=>wa,ProcessModelInspectorNextJS:()=>va,RadioFormField:()=>$o,RangeFormField:()=>Ho,SelectFormField:()=>zo,SplitterLayout:()=>Qe,StringFormField:()=>Ro,TelFormField:()=>jo,TextareaFormField:()=>Re,TimeFormField:()=>Go,UrlFormField:()=>Jo,WeekFormField:()=>Wo});module.exports=Fr(ba);var wl=require("client-only");var _t=l(require("bpmn-js/lib/Viewer"),1),At=l(require("bpmn-js/lib/features/outline"),1),$t=l(require("clsx"),1),Ht=l(require("diagram-js/lib/features/selection"),1),zt=l(require("diagram-js/lib/navigation/movecanvas"),1),Rt=l(require("diagram-js/lib/navigation/zoomscroll"),1),jt=l(require("next/dynamic"),1),te=l(require("react"),1);var Pr={canvas:{autoFocus:!0}},Sr={Critical:"rgb(255, 0, 0)",Warning:"rgb(255, 220, 0)",Stable:"rgb(50, 205, 50)"};function Dr(e,o){let t=(0,te.useRef)(null),s=(0,te.useRef)(new _t.default({bpmnRenderer:{defaultFillColor:"var(--asdk-bv-background-color)",defaultStrokeColor:"var(--asdk-bv-foreground-color)"},additionalModules:[Rt.default,zt.default,Ht.default,At.default],...Pr})),r=(0,te.useRef)({});return(0,te.useImperativeHandle)(o,()=>({getOverlays(){return s.current.get("overlays")},getElementRegistry(){return s.current.get("elementRegistry")},addMarker(a,n){s.current.get("canvas")?.addMarker(a,n)},removeMarker(a,n){s.current.get("canvas")?.removeMarker(a,n)},hasMarker(a,n){return s.current.get("canvas")?.hasMarker(a,n)},showHeatmap(a){let n=s.current.get("elementRegistry");if(n)for(let[i,d]of Object.entries(a)){let u=n.get(i);if(!u)continue;let p=n.getGraphics(u);if(!p)continue;let m=p.querySelector(".djs-visual > :first-child"),k=p.querySelector(".djs-visual > :nth-child(2)");if(!m)continue;let w=p.ownerSVGElement;if(!w)return;let h=`heatmap-gradient-${i}`,c=w.querySelector(`#${h}`);c&&c.remove();let v=w.querySelector("defs")||(()=>{let x=document.createElementNS("http://www.w3.org/2000/svg","defs");return w.insertBefore(x,w.firstChild),x})(),E=document.createElementNS("http://www.w3.org/2000/svg","radialGradient");E.setAttribute("id",h),E.setAttribute("cx","50%"),E.setAttribute("cy","50%"),E.setAttribute("r","90%"),E.setAttribute("fx","50%"),E.setAttribute("fy","50%");let z=Sr[d];[{offset:"0%",color:z},{offset:"50%",color:z},{offset:"100%",color:z}].forEach(({offset:x,color:ye})=>{let ne=document.createElementNS("http://www.w3.org/2000/svg","stop");ne.setAttribute("offset",x),ne.setAttribute("stop-color",ye),E.appendChild(ne)}),v.appendChild(E),m.classList.forEach(x=>{x.startsWith("heatmap-")&&m.classList.remove(x)}),k&&(k.style.fill="#1d1d1d"),m.classList.add(`heatmap-${d.toLowerCase()}`),m.style.fill=`url(#${h})`}},clearHeatmap(a){let n=s.current.get("elementRegistry");if(n)for(let i of a){let d=n.get(i);if(!d)continue;let u=n.getGraphics(d);if(!u)continue;let p=u.querySelector(".djs-visual > :first-child"),m=u.querySelector(".djs-visual > :nth-child(2)");if(p){if(p.classList.forEach(c=>{c.startsWith("heatmap-")&&p.classList.remove(c)}),m&&p){let c=p.style.stroke;m.style.fill=c}p.style.fill=r.current[i]||""}let k=u.ownerSVGElement;if(!k)continue;let w=`heatmap-gradient-${d.id}`,h=k.querySelector(`#${w}`);h&&h.remove()}}}),[s.current,t.current]),(0,te.useEffect)(()=>{if(!t.current)return;let a=s.current;a.attachTo(t.current);let n=a.get("canvas"),i=d=>{e.onSelectionChanged?.(d.newSelection)};return a.importXML(e.xml).then(()=>{let d=n.viewbox(),u={x:d.outer.width/2,y:d.outer.height/2};n.zoom("fit-viewport",u),e.onImportDone?.(),a.on("selection.changed",i);let p=a.get("elementRegistry");p.forEach(w=>{let h=p.getGraphics(w);if(!h)return;let c=h.querySelector(".djs-visual > :first-child");c&&(r.current[w.id]=c.style.fill||c.getAttribute("fill")||"")});let{preselectedElementIds:m}=e;if(!m||m.length===0)return;let k=p.filter(w=>m.includes(w.id)).sort((w,h)=>m.indexOf(w.id)-m.indexOf(h.id));a.get("selection").select(k??[])}).catch(d=>{console.error(`[@5minds/processcube_app_sdk:BPMNViewer] Error while importing BPMN XML: "${d.message}`)}),()=>{a.off("selection.changed",i),a.detach()}},[e.xml,e.preselectedElementIds]),te.default.createElement("div",{ref:t,className:(0,$t.default)("app-sdk-bpmn-viewer","app-sdk-h-full",e.className)})}var uo=(0,te.forwardRef)(Dr);function Tr(e){return te.default.createElement(uo,{...e,ref:e.viewerRef})}var Er=(0,jt.default)(()=>Promise.resolve(Tr),{ssr:!1});var ko=require("bpmn-js/lib/util/ModelUtil"),Kt=l(require("next/dynamic"),1),Zt=require("react"),F=l(require("react"),1),Oe=require("react-dom/server");var ft=l(require("react"),1),Gt=l(require("react-markdown"),1),Jt=l(require("rehype-autolink-headings"),1),Wt=l(require("rehype-raw"),1),qt=l(require("rehype-slug"),1),Xt=l(require("remark-gfm"),1);function fo(e){return ft.default.createElement("div",{className:"app-sdk-absolute app-sdk-w-full app-sdk-h-full app-sdk-overflow-y-auto app-sdk-scroll-p-4 app-sdk-scroll-smooth app-sdk-scroll-shadow"},ft.default.createElement(Gt.default,{remarkPlugins:[Xt.default],rehypePlugins:[Wt.default,qt.default,[Jt.default,{behavior:"wrap"}]],className:"app-sdk-markdown lg:app-sdk-mx-40 md:app-sdk-mx-20 app-sdk-mx-10"},e.documentation??""))}var ke=l(require("react"),1),Yt=4,Qe=class extends ke.default.Component{static defaultProps={customClassName:"",vertical:!1,percentage:!1,primaryIndex:0,primaryMinSize:0,secondaryDefaultSize:null,secondaryInitialSize:null,secondaryMinSize:0,onDragStart:null,onDragEnd:null,onSizeChanged:null,children:[]};container;splitter;constructor(o){super(o),this.handleResize=this.handleResize.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleTouchMove=this.handleTouchMove.bind(this),this.handleSplitterMouseDown=this.handleSplitterMouseDown.bind(this),this.handleSplitterDoubleClick=this.handleSplitterDoubleClick.bind(this),this.state={lastMouseDown:0,secondaryPaneSize:o.secondaryInitialSize||0,resizing:!1}}componentDidMount(){window.addEventListener("resize",this.handleResize),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("touchend",this.handleMouseUp),document.addEventListener("touchmove",this.handleTouchMove);let o;if(this.props.secondaryInitialSize!=null)o=this.props.secondaryInitialSize;else{let t=this.container.getBoundingClientRect(),s;this.splitter?s=this.splitter.getBoundingClientRect():s={width:Yt,height:Yt},o=this.getSecondaryPaneSize(t,s,{left:t.left+(t.width-s.width)/2,top:t.top+(t.height-s.height)/2},!1)}this.setSecondaryPaneSize(o)}componentDidUpdate(o,t){t.secondaryPaneSize!==this.state.secondaryPaneSize&&this.props.onSizeChanged&&this.props.onSizeChanged(this.state.secondaryPaneSize),t.resizing!==this.state.resizing&&(this.state.resizing?this.props.onDragStart&&this.props.onDragStart(t.secondaryPaneSize):this.props.onDragEnd&&this.props.onDragEnd(t.secondaryPaneSize,this.state.secondaryPaneSize))}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("touchend",this.handleMouseUp),document.removeEventListener("touchmove",this.handleTouchMove)}clearSelection(){if(document.body.createTextRange){let o=document.body.createTextRange();o.collapse(),o.select()}else if(window.getSelection){let o=window.getSelection();if(o==null)return;o.empty?o.empty():o.removeAllRanges&&o.removeAllRanges()}else document.selection&&document.selection.empty()}getSecondaryPaneSize(o,t,s,r){let a=0,n=0,i=0;this.props.vertical?(a=o.height,n=t.height,i=s.top-o.top):(a=o.width,n=t.width,i=s.left-o.left),r&&(i-=n/2),i<0?i=0:i>a-n&&(i=a-n);let d;this.props.primaryIndex===1?d=i:d=a-n-i;let u=a-n-d;return this.props.percentage&&(d=d*100/a,u=u*100/a,n=n*100/a,a=100),u<this.props.primaryMinSize?d=Math.max(d-(this.props.primaryMinSize-u),0):d<this.props.secondaryMinSize&&(d=Math.min(a-n-this.props.primaryMinSize,this.props.secondaryMinSize)),d}setSecondaryPaneSize(o){this.setState({secondaryPaneSize:o})}maximizeSecondaryPane(){if(this.props.percentage)this.setSecondaryPaneSize(100-this.props.primaryMinSize);else throw new Error("maximizeSecondaryPane() is only supported in SplitterLayout with prop `percentage`")}isReset(){let o=this.props.secondaryDefaultSize||this.props.secondaryMinSize;return this.state.secondaryPaneSize===o}reset(){let o=this.props.secondaryDefaultSize||this.props.secondaryMinSize;this.setSecondaryPaneSize(o)}handleResize(){if(this.splitter&&!this.props.percentage){let o=this.container.getBoundingClientRect(),t=this.splitter.getBoundingClientRect(),s=this.getSecondaryPaneSize(o,t,{left:t.left,top:t.top},!1);this.setState({secondaryPaneSize:s})}}handleMouseMove(o){if(this.state.resizing){let t=this.container.getBoundingClientRect(),s=this.splitter.getBoundingClientRect(),r=this.getSecondaryPaneSize(t,s,{left:o.clientX,top:o.clientY},!0);this.clearSelection(),this.setState({secondaryPaneSize:r})}}handleTouchMove(o){this.handleMouseMove(o.changedTouches[0])}handleSplitterMouseDown(o){o.preventDefault(),this.clearSelection(),this.setState({resizing:!0})}handleSplitterDoubleClick(){let o=this.props.secondaryDefaultSize||this.props.secondaryMinSize;this.state.secondaryPaneSize===o?this.setSecondaryPaneSize(Math.floor(o*1.5)):this.setSecondaryPaneSize(o)}handleMouseUp(){this.setState(o=>o.resizing?{resizing:!1}:null)}render(){let o="app-sdk-splitter-layout";this.props.customClassName&&(o+=` ${this.props.customClassName}`),this.props.vertical&&(o+=" app-sdk-splitter-layout-vertical"),this.state.resizing&&(o+=" layout-changing");let t=ke.default.Children.toArray(this.props.children).slice(0,2);t.length===0&&t.push(ke.default.createElement("div",null));let s=[],r=this.props.primaryIndex!==0&&this.props.primaryIndex!==1?0:this.props.primaryIndex;for(let a=0;a<t.length;++a){let n=!0,i;t.length>1&&a!==r&&(n=!1,i=this.state.secondaryPaneSize),s.push(ke.default.createElement(Mr,{vertical:this.props.vertical,percentage:this.props.percentage,primary:n,size:i},t[a]))}return ke.default.createElement("div",{className:o,ref:a=>{this.container=a}},s[0],s.length>1&&ke.default.createElement("div",{role:"separator",className:"app-sdk-layout-splitter"},ke.default.createElement("div",{className:"app-sdk-layout-splitter__inner",ref:a=>{this.splitter=a},onMouseDown:this.handleSplitterMouseDown,onTouchStart:this.handleSplitterMouseDown,onDoubleClick:this.handleSplitterDoubleClick})),s.length>1&&s[1])}};function Mr(e={vertical:!1,primary:!1,size:0,percentage:!1,children:[]}){let o=e.size||0,t=e.percentage?"%":"px",s="app-sdk-layout-pane",r={};return e.primary?s+=" app-sdk-layout-pane-primary":e.vertical?r.height=`${o}${t}`:r.width=`${o}${t}`,ke.default.createElement("div",{className:s,style:r},e.children)}var eo=30;function Br(e,o){let[t,s]=(0,F.useState)([]),r=(0,F.useRef)(null),a=(0,F.useRef)(null),[n,i]=(0,F.useState)([]),[d,u]=(0,F.useState)(!1),[p,m]=(0,F.useState)([]),[k,w]=(0,F.useState)(eo),h=(0,F.useRef)(!0);return(0,F.useEffect)(()=>{if(!window)return;let c=new URLSearchParams(window.location.search),v=c.getAll("selected");if(m(v),!c.has("splitterSize"))return;let E=parseFloat(c.get("splitterSize"));isNaN(E)||E===eo||(w(E),a.current?.setSecondaryPaneSize(E))},[]),(0,F.useEffect)(()=>{if(!d)return;let c=new URLSearchParams(window.location.search);k!==eo?c.set("splitterSize",k.toString()):c.delete("splitterSize"),c.delete("selected"),n.length>0&&n.forEach(z=>c.append("selected",z.id));let v=decodeURIComponent(window.location.hash.slice(1)),E=v.length>0?document.getElementById(v):null;window.history.replaceState(null,"",`?${c.toString()}${E?window.location.hash:""}`),window.location.hash&&(window.location.hash=window.location.hash),E?.scrollIntoView()},[n,k]),(0,F.useEffect)(()=>{if(!d)return;t.forEach(z=>z());let c=r.current?.getOverlays();r.current?.getElementRegistry()?.filter(Qt)?.forEach(z=>{c?.add(z.id,Ur(z))})},[d,e.showHeatmap,e.heatmapService,e.heatmapType]),(0,F.useEffect)(()=>{if(!e.heatmapService||!r.current||!d||!e.heatmapType)return;let c=e.showHeatmap===!0,v;h.current?(v=e.heatmapService.hasRuntimeEntry()?"runtime":"processcosts",h.current=!1):v=e.heatmapType,e.heatmapService.applyHeatmap(c,v,{viewer:r.current})},[d,e.showHeatmap,e.heatmapService,e.heatmapType]),(0,F.useEffect)(()=>{e.setSelectedElementIds?.(n.map(c=>c.id))},[n]),(0,F.useImperativeHandle)(o,()=>({bpmnViewerRef:{getElementRegistry(){return r.current?.getElementRegistry()},getOverlays(){return r.current?.getOverlays()},addMarker(c,v){r.current?.addMarker(c,v)},removeMarker(c,v){r.current?.removeMarker(c,v)},hasMarker(c,v){return r.current?.hasMarker(c,v)},showHeatmap(c){r.current?.showHeatmap(c)},clearHeatmap(c){r.current?.clearHeatmap(c)},onImportDone(c){d?c():s(v=>[...v,c])}}}),[r.current]),F.default.createElement(Qe,{ref:a,vertical:!0,percentage:!0,secondaryInitialSize:eo,secondaryDefaultSize:eo,onDragEnd:(c,v)=>w(Math.round(v))},F.default.createElement(uo,{ref:r,xml:e.xml,preselectedElementIds:p,onSelectionChanged:c=>i([...c]),onImportDone:()=>u(!0)}),F.default.createElement("div",{className:"app-sdk-flex app-sdk-justify-center app-sdk-h-full app-sdk-bg-[color:var(--asdk-ddi-background-color)]"},F.default.createElement(Or,{elements:n})))}function Or({elements:e}){if(e.length===0)return F.default.createElement("p",{className:"app-sdk-m-0 app-sdk-p-6"},"Please select an element");let o=e.filter(Qt);if(o.length===0)return F.default.createElement("p",{className:"app-sdk-m-0 app-sdk-p-6"},"No documentation available");if(o.length===1){let t=(0,ko.getBusinessObject)(o[0])?.documentation?.[0]?.text;return F.default.createElement(fo,{documentation:t})}return F.default.createElement(fo,{documentation:o.map(t=>(0,ko.getBusinessObject)(t)?.documentation?.[0]?.text).join(`
|
|
1
|
+
"use client";var br=Object.create;var mo=Object.defineProperty;var xr=Object.getOwnPropertyDescriptor;var Ir=Object.getOwnPropertyNames;var Nr=Object.getPrototypeOf,Cr=Object.prototype.hasOwnProperty;var de=(e,o)=>()=>(e&&(o=e(e=0)),o);var Ut=(e,o)=>{for(var t in o)mo(e,t,{get:o[t],enumerable:!0})},Vt=(e,o,t,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of Ir(o))!Cr.call(e,r)&&r!==t&&mo(e,r,{get:()=>o[r],enumerable:!(s=xr(o,r))||s.enumerable});return e};var l=(e,o,t)=>(t=e!=null?br(Nr(e)):{},Vt(o||!e||!e.__esModule?mo(t,"default",{value:e,enumerable:!0}):t,e)),Fr=e=>Vt(mo({},"__esModule",{value:!0}),e);async function Yo(){let e=await(0,Mt.getToken)({req:{cookies:await(0,Ce.cookies)(),headers:await(0,Ce.headers)()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let t=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await(0,Ce.cookies)()).toString()}}),s=new Ms.ResponseCookies(t.headers);if(s.getAll().length){let r=!1;try{for(let a of s.getAll())(await(0,Ce.cookies)()).set(a.name,a.value,{...a})}catch{r=!0}if(e=await(0,Mt.getToken)({req:{cookies:r?s:await(0,Ce.cookies)(),headers:await(0,Ce.headers)()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}var Mt,Ms,Ce,Bt=de(()=>{Mt=require("next-auth/jwt"),Ms=require("next/dist/compiled/@edge-runtime/cookies/index.js"),Ce=require("next/headers")});var Bs,na,se,no=de(()=>{Bs=require("@5minds/processcube_engine_client"),na=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",se=new Bs.EngineClient(na)});async function io(){try{return Yo()}catch{return}}async function Ls(e){let o=await io();return(await se.processInstances.query({processInstanceId:e},{identity:o,includeXml:!0})).processInstances[0]}async function Us(e,o={sortSettings:{sortBy:Os.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await se.flowNodeInstances.query({processInstanceId:e},{...o,identity:o.identity??await io()})).flowNodeInstances}async function Vs(e){let o=await io();return(await se.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:o})).flowNodeInstances}async function _s(e,o,t){let s=await io();await se.processInstances.retryProcessInstance(e,{flowNodeInstanceId:o,newStartToken:t,identity:s})}async function As(e){let o=await io();await se.processInstances.terminateProcessInstance(e,o)}var Os,$s=de(()=>{Os=require("@5minds/processcube_engine_client");Bt();no()});var ia,Hs=de(()=>{ia=require("next/navigation")});var zs=de(()=>{});async function Rs(...e){await se.manualTasks.finishManualTask(...e)}var js=de(()=>{no()});async function Gs(...e){await se.userTasks.finishUserTask(...e)}var Js=de(()=>{no()});async function Ws(...e){await se.untypedTasks.finishTask(...e)}var qs=de(()=>{no()});var Xs=de(()=>{Hs();zs();js();Js();qs()});var qe={};Ut(qe,{finishTask:()=>pa,getFlowNodeInstances:()=>ua,getProcessInstance:()=>ma,getTriggeredFlowNodeInstances:()=>fa,retryProcess:()=>ca,terminateProcess:()=>la});async function da(){try{return Yo()}catch{return}}var Ys,pa,la,ca,ma,ua,fa,Xe=de(()=>{"use server";Ys=require("@5minds/processcube_engine_client");$s();Bt();Xs();pa=async(e,o)=>{let t=await da();o==="bpmn:UserTask"?await Gs(e,{},t):o==="bpmn:ManualTask"?await Rs(e,t):o==="bpmn:Task"?await Ws(e,t):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${o}`)},la=async e=>{await As(e)},ca=async(e,o,t)=>{await _s(e,o,t)},ma=async e=>Ls(e),ua=async e=>Us(e,{sortSettings:{sortBy:Ys.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),fa=async e=>Vs(e)});var ba={};Ut(ba,{BPMNViewer:()=>uo,BPMNViewerNextJS:()=>Er,BooleanFormField:()=>wo,BpmnViewerComponent:()=>Ft,CheckboxFormField:()=>yo,ColorFormField:()=>vo,ConfirmFormField:()=>xo,CustomFormField:()=>Io,DateFormField:()=>No,DatetimeLocalFormField:()=>Co,DecimalFormField:()=>Po,DiagramDocumentationInspector:()=>Le,DiagramDocumentationInspectorNextJS:()=>_r,DocumentationViewer:()=>fo,DropdownMenu:()=>Ar,DropdownMenuItem:()=>$r,DynamicLink:()=>Hr,DynamicUi:()=>Zr,DynamicUiComponent:()=>Tt,EmailFormField:()=>So,EnumFormField:()=>Do,FileFormField:()=>To,FlowNode:()=>ho,FormFieldComponentMap:()=>Dt,HeaderFormField:()=>Eo,HiddenFormField:()=>Mo,IntegerFormField:()=>Bo,MonthFormField:()=>Oo,ParagraphFormField:()=>_o,PasswordFormField:()=>Ao,ProcessInstanceInspector:()=>fr,ProcessInstanceInspectorNextJS:()=>wa,ProcessModelInspectorNextJS:()=>va,RadioFormField:()=>$o,RangeFormField:()=>Ho,SelectFormField:()=>zo,SplitterLayout:()=>Qe,StringFormField:()=>Ro,TelFormField:()=>jo,TextareaFormField:()=>Re,TimeFormField:()=>Go,UrlFormField:()=>Jo,WeekFormField:()=>Wo});module.exports=Fr(ba);var wl=require("client-only");var _t=l(require("bpmn-js/lib/Viewer"),1),At=l(require("bpmn-js/lib/features/outline"),1),$t=l(require("clsx"),1),Ht=l(require("diagram-js/lib/features/selection"),1),zt=l(require("diagram-js/lib/navigation/movecanvas"),1),Rt=l(require("diagram-js/lib/navigation/zoomscroll"),1),jt=l(require("next/dynamic"),1),te=l(require("react"),1);var Pr={canvas:{autoFocus:!0}},Sr={Critical:"rgb(255, 0, 0)",Warning:"rgb(255, 220, 0)",Stable:"rgb(50, 205, 50)"};function Dr(e,o){let t=(0,te.useRef)(null),s=(0,te.useRef)(new _t.default({bpmnRenderer:{defaultFillColor:"var(--asdk-bv-background-color)",defaultStrokeColor:"var(--asdk-bv-foreground-color)"},additionalModules:[Rt.default,zt.default,Ht.default,At.default],...Pr})),r=(0,te.useRef)({});return(0,te.useImperativeHandle)(o,()=>({getOverlays(){return s.current.get("overlays")},getElementRegistry(){return s.current.get("elementRegistry")},addMarker(a,n){s.current.get("canvas")?.addMarker(a,n)},removeMarker(a,n){s.current.get("canvas")?.removeMarker(a,n)},hasMarker(a,n){return s.current.get("canvas")?.hasMarker(a,n)},showHeatmap(a){let n=s.current.get("elementRegistry");if(n)for(let[i,d]of Object.entries(a)){let u=n.get(i);if(!u)continue;let p=n.getGraphics(u);if(!p)continue;let m=p.querySelector(".djs-visual > :first-child"),k=p.querySelector(".djs-visual > :nth-child(2)");if(!m)continue;let w=p.ownerSVGElement;if(!w)return;let h=`heatmap-gradient-${i}`,c=w.querySelector(`#${h}`);c&&c.remove();let v=w.querySelector("defs")||(()=>{let x=document.createElementNS("http://www.w3.org/2000/svg","defs");return w.insertBefore(x,w.firstChild),x})(),E=document.createElementNS("http://www.w3.org/2000/svg","radialGradient");E.setAttribute("id",h),E.setAttribute("cx","50%"),E.setAttribute("cy","50%"),E.setAttribute("r","90%"),E.setAttribute("fx","50%"),E.setAttribute("fy","50%");let z=Sr[d];[{offset:"0%",color:z},{offset:"50%",color:z},{offset:"100%",color:z}].forEach(({offset:x,color:ye})=>{let ne=document.createElementNS("http://www.w3.org/2000/svg","stop");ne.setAttribute("offset",x),ne.setAttribute("stop-color",ye),E.appendChild(ne)}),v.appendChild(E),m.classList.forEach(x=>{x.startsWith("heatmap-")&&m.classList.remove(x)}),k&&(k.style.fill="#1d1d1d"),m.classList.add(`heatmap-${d.toLowerCase()}`),m.style.fill=`url(#${h})`}},clearHeatmap(a){let n=s.current.get("elementRegistry");if(n)for(let i of a){let d=n.get(i);if(!d)continue;let u=n.getGraphics(d);if(!u)continue;let p=u.querySelector(".djs-visual > :first-child"),m=u.querySelector(".djs-visual > :nth-child(2)");if(p){if(p.classList.forEach(c=>{c.startsWith("heatmap-")&&p.classList.remove(c)}),m&&p){let c=p.style.stroke;m.style.fill=c}p.style.fill=r.current[i]||""}let k=u.ownerSVGElement;if(!k)continue;let w=`heatmap-gradient-${d.id}`,h=k.querySelector(`#${w}`);h&&h.remove()}}}),[s.current,t.current]),(0,te.useEffect)(()=>{if(!t.current)return;let a=s.current;a.attachTo(t.current);let n=a.get("canvas"),i=d=>{e.onSelectionChanged?.(d.newSelection)};return a.importXML(e.xml).then(()=>{let d=n.viewbox(),u={x:d.outer.width/2,y:d.outer.height/2};n.zoom("fit-viewport",u),e.onImportDone?.(),a.on("selection.changed",i);let p=a.get("elementRegistry");p.forEach(w=>{let h=p.getGraphics(w);if(!h)return;let c=h.querySelector(".djs-visual > :first-child");c&&(r.current[w.id]=c.style.fill||c.getAttribute("fill")||"")});let{preselectedElementIds:m}=e;if(!m||m.length===0)return;let k=p.filter(w=>m.includes(w.id)).sort((w,h)=>m.indexOf(w.id)-m.indexOf(h.id));a.get("selection").select(k??[])}).catch(d=>{console.error(`[@5minds/processcube_app_sdk:BPMNViewer] Error while importing BPMN XML: "${d.message}`)}),()=>{a.off("selection.changed",i),a.detach()}},[e.xml,e.preselectedElementIds]),te.default.createElement("div",{ref:t,className:(0,$t.default)("app-sdk-bpmn-viewer","app-sdk-h-full",e.className)})}var uo=(0,te.forwardRef)(Dr);function Tr(e){return te.default.createElement(uo,{...e,ref:e.viewerRef})}var Er=(0,jt.default)(()=>Promise.resolve(Tr),{ssr:!1});var ko=require("bpmn-js/lib/util/ModelUtil"),Kt=l(require("next/dynamic"),1),Zt=require("react"),F=l(require("react"),1),Oe=require("react-dom/server");var ft=l(require("react"),1),Gt=l(require("react-markdown"),1),Jt=l(require("rehype-autolink-headings"),1),Wt=l(require("rehype-raw"),1),qt=l(require("rehype-slug"),1),Xt=l(require("remark-gfm"),1);function fo(e){return ft.default.createElement("div",{className:"app-sdk-absolute app-sdk-w-full app-sdk-h-full app-sdk-overflow-y-auto app-sdk-scroll-p-4 app-sdk-scroll-smooth app-sdk-scroll-shadow"},ft.default.createElement(Gt.default,{remarkPlugins:[Xt.default],rehypePlugins:[Wt.default,qt.default,[Jt.default,{behavior:"wrap"}]],className:"app-sdk-markdown lg:app-sdk-mx-40 md:app-sdk-mx-20 app-sdk-mx-10"},e.documentation??""))}var ke=l(require("react"),1),Yt=4,Qe=class extends ke.default.Component{static defaultProps={customClassName:"",vertical:!1,percentage:!1,primaryIndex:0,primaryMinSize:0,secondaryDefaultSize:null,secondaryInitialSize:null,secondaryMinSize:0,onDragStart:null,onDragEnd:null,onSizeChanged:null,children:[]};container;splitter;constructor(o){super(o),this.handleResize=this.handleResize.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleTouchMove=this.handleTouchMove.bind(this),this.handleSplitterMouseDown=this.handleSplitterMouseDown.bind(this),this.handleSplitterDoubleClick=this.handleSplitterDoubleClick.bind(this),this.state={lastMouseDown:0,secondaryPaneSize:o.secondaryInitialSize||0,resizing:!1}}componentDidMount(){window.addEventListener("resize",this.handleResize),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("touchend",this.handleMouseUp),document.addEventListener("touchmove",this.handleTouchMove);let o;if(this.props.secondaryInitialSize!=null)o=this.props.secondaryInitialSize;else{let t=this.container.getBoundingClientRect(),s;this.splitter?s=this.splitter.getBoundingClientRect():s={width:Yt,height:Yt},o=this.getSecondaryPaneSize(t,s,{left:t.left+(t.width-s.width)/2,top:t.top+(t.height-s.height)/2},!1)}this.setSecondaryPaneSize(o)}componentDidUpdate(o,t){t.secondaryPaneSize!==this.state.secondaryPaneSize&&this.props.onSizeChanged&&this.props.onSizeChanged(this.state.secondaryPaneSize),t.resizing!==this.state.resizing&&(this.state.resizing?this.props.onDragStart&&this.props.onDragStart(t.secondaryPaneSize):this.props.onDragEnd&&this.props.onDragEnd(t.secondaryPaneSize,this.state.secondaryPaneSize))}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("touchend",this.handleMouseUp),document.removeEventListener("touchmove",this.handleTouchMove)}clearSelection(){if(document.body.createTextRange){let o=document.body.createTextRange();o.collapse(),o.select()}else if(window.getSelection){let o=window.getSelection();if(o==null)return;o.empty?o.empty():o.removeAllRanges&&o.removeAllRanges()}else document.selection&&document.selection.empty()}getSecondaryPaneSize(o,t,s,r){let a=0,n=0,i=0;this.props.vertical?(a=o.height,n=t.height,i=s.top-o.top):(a=o.width,n=t.width,i=s.left-o.left),r&&(i-=n/2),i<0?i=0:i>a-n&&(i=a-n);let d;this.props.primaryIndex===1?d=i:d=a-n-i;let u=a-n-d;return this.props.percentage&&(d=d*100/a,u=u*100/a,n=n*100/a,a=100),u<this.props.primaryMinSize?d=Math.max(d-(this.props.primaryMinSize-u),0):d<this.props.secondaryMinSize&&(d=Math.min(a-n-this.props.primaryMinSize,this.props.secondaryMinSize)),d}setSecondaryPaneSize(o){this.setState({secondaryPaneSize:o})}maximizeSecondaryPane(){if(this.props.percentage)this.setSecondaryPaneSize(100-this.props.primaryMinSize);else throw new Error("maximizeSecondaryPane() is only supported in SplitterLayout with prop `percentage`")}isReset(){let o=this.props.secondaryDefaultSize||this.props.secondaryMinSize;return this.state.secondaryPaneSize===o}reset(){let o=this.props.secondaryDefaultSize||this.props.secondaryMinSize;this.setSecondaryPaneSize(o)}handleResize(){if(this.splitter&&!this.props.percentage){let o=this.container.getBoundingClientRect(),t=this.splitter.getBoundingClientRect(),s=this.getSecondaryPaneSize(o,t,{left:t.left,top:t.top},!1);this.setState({secondaryPaneSize:s})}}handleMouseMove(o){if(this.state.resizing){let t=this.container.getBoundingClientRect(),s=this.splitter.getBoundingClientRect(),r=this.getSecondaryPaneSize(t,s,{left:o.clientX,top:o.clientY},!0);this.clearSelection(),this.setState({secondaryPaneSize:r})}}handleTouchMove(o){this.handleMouseMove(o.changedTouches[0])}handleSplitterMouseDown(o){o.preventDefault(),this.clearSelection(),this.setState({resizing:!0})}handleSplitterDoubleClick(){let o=this.props.secondaryDefaultSize||this.props.secondaryMinSize;this.state.secondaryPaneSize===o?this.setSecondaryPaneSize(Math.floor(o*1.5)):this.setSecondaryPaneSize(o)}handleMouseUp(){this.setState(o=>o.resizing?{resizing:!1}:null)}render(){let o="app-sdk-splitter-layout";this.props.customClassName&&(o+=` ${this.props.customClassName}`),this.props.vertical&&(o+=" app-sdk-splitter-layout-vertical"),this.state.resizing&&(o+=" layout-changing");let t=ke.default.Children.toArray(this.props.children).slice(0,2);t.length===0&&t.push(ke.default.createElement("div",null));let s=[],r=this.props.primaryIndex!==0&&this.props.primaryIndex!==1?0:this.props.primaryIndex;for(let a=0;a<t.length;++a){let n=!0,i;t.length>1&&a!==r&&(n=!1,i=this.state.secondaryPaneSize),s.push(ke.default.createElement(Mr,{vertical:this.props.vertical,percentage:this.props.percentage,primary:n,size:i},t[a]))}return ke.default.createElement("div",{className:o,ref:a=>{this.container=a}},s[0],s.length>1&&ke.default.createElement("div",{role:"separator",className:"app-sdk-layout-splitter"},ke.default.createElement("div",{className:"app-sdk-layout-splitter__inner",ref:a=>{this.splitter=a},onMouseDown:this.handleSplitterMouseDown,onTouchStart:this.handleSplitterMouseDown,onDoubleClick:this.handleSplitterDoubleClick})),s.length>1&&s[1])}};function Mr(e={vertical:!1,primary:!1,size:0,percentage:!1,children:[]}){let o=e.size||0,t=e.percentage?"%":"px",s="app-sdk-layout-pane",r={};return e.primary?s+=" app-sdk-layout-pane-primary":e.vertical?r.height=`${o}${t}`:r.width=`${o}${t}`,ke.default.createElement("div",{className:s,style:r},e.children)}var eo=30;function Br(e,o){let[t,s]=(0,F.useState)([]),r=(0,F.useRef)(null),a=(0,F.useRef)(null),[n,i]=(0,F.useState)([]),[d,u]=(0,F.useState)(!1),[p,m]=(0,F.useState)([]),[k,w]=(0,F.useState)(eo),h=(0,F.useRef)(!0);return(0,F.useEffect)(()=>{if(!window)return;let c=new URLSearchParams(window.location.search),v=c.getAll("selected");if(m(v),!c.has("splitterSize"))return;let E=parseFloat(c.get("splitterSize"));isNaN(E)||E===eo||(w(E),a.current?.setSecondaryPaneSize(E))},[]),(0,F.useEffect)(()=>{if(!d)return;let c=new URLSearchParams(window.location.search);k!==eo?c.set("splitterSize",k.toString()):c.delete("splitterSize"),c.delete("selected"),n.length>0&&n.forEach(z=>c.append("selected",z.id));let v=decodeURIComponent(window.location.hash.slice(1)),E=v.length>0?document.getElementById(v):null;window.history.replaceState(null,"",`?${c.toString()}${E?window.location.hash:""}`),window.location.hash&&(window.location.hash=window.location.hash),E?.scrollIntoView()},[n,k]),(0,F.useEffect)(()=>{if(!d)return;t.forEach(z=>z());let c=r.current?.getOverlays();r.current?.getElementRegistry()?.filter(Qt)?.forEach(z=>{c?.add(z.id,Ur(z))})},[d,e.showHeatmap,e.heatmapService,e.heatmapType]),(0,F.useEffect)(()=>{if(!e.heatmapService||!r.current||!d||!e.heatmapType)return;let c=e.showHeatmap===!0,v;h.current?(v=e.heatmapService.hasRuntimeEntry()?"runtime":"processcosts",h.current=!1):v=e.heatmapType,e.heatmapService.applyHeatmap(c,v,{viewer:r.current})},[d,e.showHeatmap,e.heatmapService,e.heatmapType]),(0,F.useEffect)(()=>{e.setSelectedElementIds?.(n.map(c=>c.id))},[n]),(0,F.useImperativeHandle)(o,()=>({bpmnViewerRef:{getElementRegistry(){return r.current?.getElementRegistry()},getOverlays(){return r.current?.getOverlays()},addMarker(c,v){r.current?.addMarker(c,v)},removeMarker(c,v){r.current?.removeMarker(c,v)},hasMarker(c,v){return r.current?.hasMarker(c,v)},showHeatmap(c){r.current?.showHeatmap(c)},clearHeatmap(c){r.current?.clearHeatmap(c)},onImportDone(c){d?c():s(v=>[...v,c])}}}),[r.current]),F.default.createElement(Qe,{ref:a,vertical:!0,percentage:!0,secondaryInitialSize:eo,secondaryDefaultSize:eo,onDragEnd:(c,v)=>w(Math.round(v))},F.default.createElement(uo,{ref:r,xml:e.xml,preselectedElementIds:p,onSelectionChanged:c=>i([...c]),onImportDone:()=>u(!0)}),F.default.createElement("div",{className:"app-sdk-flex app-sdk-justify-center app-sdk-h-full app-sdk-bg-[color:var(--asdk-ddi-background-color)]"},F.default.createElement(Or,{elements:n})))}function Or({elements:e}){if(e.length===0)return F.default.createElement("p",{className:"app-sdk-m-0 app-sdk-p-6"},"Please select an element");let o=e.filter(Qt);if(o.length===0)return F.default.createElement("p",{className:"app-sdk-m-0 app-sdk-p-6"},"No documentation available");if(o.length===1){let t=(0,ko.getBusinessObject)(o[0])?.documentation?.[0]?.text;return F.default.createElement(fo,{documentation:t})}return F.default.createElement(fo,{documentation:o.map(t=>(0,ko.getBusinessObject)(t)?.documentation?.[0]?.text).join(`
|
|
2
2
|
|
|
3
3
|
<hr />
|
|
4
4
|
|
package/build/client/index.mjs
CHANGED
|
@@ -21,6 +21,6 @@ Component Name: ${l.name} ${l.displayName??""}`),Ra(l),v=l);let C=r.get(f.id)?.r
|
|
|
21
21
|
|
|
22
22
|
FormField: ${a} with ${s} `);return}t[a]?t[a]=Array.isArray(t[a])?[...t[a],s]:[t[a],s]:t[a]=s}),e.forEach((s,a)=>{if(typeof s.ref.current?.getState=="function"){let r=s.ref.current.getState();(typeof r=="boolean"||typeof r=="number"||typeof r=="string"||Array.isArray(r)||r==null||r?.toString()==="[object Object]")&&(t[a]=r)}}),t}function Ga(o,e,t){let s={};for(let r of o.keys()){let n=o.getAll(r);if(n[0]instanceof File){console.warn(`[@5minds/processcube_app_sdk:DynamicUi] Only plain objects can be passed to Server Components from Client Components. File objects are not supported. Use the raw FormData instance to process files instead.
|
|
23
23
|
|
|
24
|
-
FormField: ${r} with ${n} `);continue}if(n.length===1?s[r]=n[0]:s[r]=n,s[r]==""&&delete s[r],s[r]){let d=e.find(i=>i.id===r)?.type;if(d==="boolean"){s[r]=s[r]==="on";continue}if(d==="confirm"){s[r]=JSON.parse(s[r]);continue}if(d==="number"){s[r]=parseFloat(s[r]);continue}if(d==="long"){s[r]=parseInt(s[r]);continue}}}let a=e.filter(r=>r.type==="boolean");return a.length&&a.forEach(r=>{s[r.id]||(s[r.id]=!1)}),t.forEach((r,n)=>{if(typeof r.ref.current?.getValue=="function"){let d=r.ref.current.getValue();(typeof d=="boolean"||typeof d=="number"||typeof d=="string"||Array.isArray(d)||d==null||d?.toString()==="[object Object]")&&(s[n]=d)}}),s}import{Transition as kr}from"@headlessui/react";import{getBusinessObject as hr}from"bpmn-js/lib/util/ModelUtil";import{isEqual as yt}from"lodash";import gr from"next/dynamic";import O,{useCallback as no,useEffect as io,useRef as wr,useState as de}from"react";import{createRoot as vr}from"react-dom/client";import{BpmnType as oe,FlowNodeInstanceState as ds,ProcessInstanceState as co}from"@5minds/processcube_engine_sdk";import{Combobox as Ja,ComboboxInput as Wa,ComboboxOption as qa,ComboboxOptions as Xa,Dialog as Ya,DialogBackdrop as Ka,DialogPanel as Za}from"@headlessui/react";import{UsersIcon as Qa}from"@heroicons/react/24/outline";import K,{useState as er}from"react";function Rt(o){let[e,t]=er(""),s=e===""?o.entries:o.entries.filter(a=>a.name.toLowerCase().includes(e.toLowerCase()));return K.createElement(Ya,{className:"app-sdk-relative app-sdk-z-50",open:o.isOpen,onClose:()=>{o.onClose(),t("")}},K.createElement(Ka,{transition:!0,className:"app-sdk-fixed app-sdk-inset-0 app-sdk-bg-gray-500 app-sdk-bg-opacity-25 app-sdk-transition-opacity data-[closed]:app-sdk-opacity-0 data-[enter]:app-sdk-duration-300 data-[leave]:app-sdk-duration-150 data-[enter]:app-sdk-ease-out data-[leave]:app-sdk-ease-in"}),K.createElement("div",{className:"app-sdk-fixed app-sdk-inset-0 app-sdk-z-10 app-sdk-w-screen app-sdk-overflow-y-auto app-sdk-p-4 sm:app-sdk-p-6 md:app-sdk-p-20"},K.createElement(Za,{transition:!0,className:"app-sdk-mx-auto app-sdk-max-w-xl app-sdk-transform app-sdk-rounded-xl app-sdk-bg-[color:var(--asdk-cmdp-background-color)] app-sdk-p-2 app-sdk-shadow-2xl app-sdk-ring-1 app-sdk-ring-black app-sdk-ring-opacity-5 app-sdk-transition-all data-[closed]:app-sdk-scale-95 data-[closed]:app-sdk-opacity-0 data-[enter]:app-sdk-duration-300 data-[leave]:app-sdk-duration-150 data-[enter]:app-sdk-ease-out data-[leave]:app-sdk-ease-in"},K.createElement(Ja,{onChange:a=>{a&&o.onConfirm(a)}},K.createElement(Wa,{autoFocus:!0,className:"app-sdk-w-full app-sdk-ring-offset-2 app-sdk-rounded-md app-sdk-border-0 app-sdk-bg-[color:var(--asdk-cmdp-input-color)] app-sdk-px-4 app-sdk-py-2.5 app-sdk-text-[color:var(--asdk-cmdp-text-color)] sm:app-sdk-text-sm",placeholder:o.placeholder,onChange:a=>t(a.target.value),onBlur:()=>t("")}),s.length>0&&K.createElement(Xa,{static:!0,className:"app-sdk-mb-2 app-sdk-max-h-72 app-sdk-scroll-py-2 app-sdk-overflow-y-auto app-sdk-py-2 app-sdk-text-sm app-sdk-text-[color:var(--asdk-cmdp-text-color)]"},s.map(a=>K.createElement(qa,{key:a.id,value:a,className:({focus:r})=>B("app-sdk-cursor-default app-sdk-select-none app-sdk-rounded-md app-sdk-px-4 app-sdk-py-2",r&&"app-sdk-bg-[color:var(--asdk-cmdp-focus-color)] app-sdk-text-white")},a.name))),e!==""&&s.length===0&&K.createElement("div",{className:"app-sdk-px-4 app-sdk-py-14 app-sdk-text-center sm:app-sdk-px-14"},K.createElement(Qa,{className:"app-sdk-mx-auto app-sdk-h-6 app-sdk-w-6 app-sdk-text-gray-400","aria-hidden":"true"}),K.createElement("p",{className:"app-sdk-mt-4 app-sdk-text-sm app-sdk-text-[color:var(--asdk-cmdp-text-color)]"},o.noResultsText||"No entries found using that search term."))))))}import or from"react";function ee({title:o,children:e,className:t,onClick:s}){return or.createElement("button",{title:o,className:B(t,"app-sdk-appearance-none app-sdk-border-none app-sdk-pointer-events-auto app-sdk-cursor-pointer app-sdk-flex app-sdk-w-6 app-sdk-min-w-6 app-sdk-max-w-6 app-sdk-h-4 app-sdk-text-white app-sdk-bg-cyan-800 app-sdk-rounded app-sdk-text-xs app-sdk-items-center app-sdk-justify-center"),onClick:s},e)}import tr from"react";function jt({width:o,children:e}){return tr.createElement("div",{className:"app-sdk-flex app-sdk-gap-1 app-sdk-justify-center app-sdk-flex-wrap",style:{width:`${o}px`}},e)}import ct from"react";function Gt({isSender:o,onClick:e}){return ct.createElement(ee,{title:`Go to ${o?"Target":"Source"}`,onClick:e},ct.createElement("svg",{className:"!app-sdk-fill-white",width:"10px",height:"10px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},ct.createElement("path",{d:"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"})))}import mt from"react";function Jt({onClick:o}){return mt.createElement(ee,{onClick:o,title:"List Instances"},mt.createElement("svg",{className:"!app-sdk-fill-white",width:"10px",height:"10px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},mt.createElement("path",{d:"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"})))}import ut from"react";function Wt({flowNodeId:o,flowNodeInstanceId:e,flowNodeType:t,processInstanceId:s,onPlay:a}){return ut.createElement(ee,{title:"Run Task",className:"asdk-pii-play-button",onClick:()=>{typeof a=="function"?new Promise(async(r,n)=>{try{await a({flowNodeId:o,processInstanceId:s,flowNodeInstanceId:e,taskType:t}),r(!0)}catch(d){n(d)}}):import("./actions-RFWN6OOQ.mjs").then(({finishTask:r})=>r(e,t))}},ut.createElement("svg",{className:"!app-sdk-fill-none !app-sdk-stroke-white !app-sdk-stroke-[2px]",width:"14px",height:"14px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},ut.createElement("path",{d:"M5 17.3336V6.66698C5 5.78742 5 5.34715 5.18509 5.08691C5.34664 4.85977 5.59564 4.71064 5.87207 4.67499C6.18868 4.63415 6.57701 4.84126 7.35254 5.25487L17.3525 10.5882L17.3562 10.5898C18.2132 11.0469 18.642 11.2756 18.7826 11.5803C18.9053 11.8462 18.9053 12.1531 18.7826 12.4189C18.6418 12.7241 18.212 12.9537 17.3525 13.4121L7.35254 18.7454C6.57645 19.1593 6.1888 19.3657 5.87207 19.3248C5.59564 19.2891 5.34664 19.1401 5.18509 18.9129C5 18.6527 5 18.2132 5 17.3336Z"})))}import sr from"react";function qt(){return sr.createElement("div",{className:"app-sdk-h-6 app-sdk-w-[1px] app-sdk-my-auto app-sdk-border-l app-sdk-border-r-0 app-sdk-border-t-0 app-sdk-border-b-0 app-sdk-border-collapse app-sdk-border-solid app-sdk-border-gray-900 dark:app-sdk-border-gray-300"})}import Xt from"react";function ao({children:o}){return Xt.createElement("div",{className:"app-sdk-w-full app-sdk-absolute app-sdk-top-0 app-sdk-left-0 app-sdk-z-40 app-sdk-pt-2 app-sdk-pointer-events-none"},Xt.createElement("div",{className:"app-sdk-flex app-sdk-w-fit app-sdk-mx-auto app-sdk-rounded-full app-sdk-px-3 app-sdk-py-2 app-sdk-gap-1 app-sdk-border app-sdk-border-solid app-sdk-bg-white/95 dark:app-sdk-bg-black/85 dark:app-sdk-border-none app-sdk-pointer-events-auto"},o))}import ft from"react";import ar from"react";function ce({title:o,disabled:e,children:t,onClick:s}){return ar.createElement("button",{title:`${o??""}${e?" (disabled)":""}`,className:B("app-sdk-appearance-none app-sdk-border-none app-sdk-bg-transparent app-sdk-flex app-sdk-h-full app-sdk-my-auto app-sdk-rounded-full app-sdk-p-1",e?"app-sdk-cursor-not-allowed":"app-sdk-cursor-pointer hover:app-sdk-bg-app-sdk-gray-100/40"),onClick:s,disabled:e},t)}function Yt({onClick:o}){return ft.createElement(ce,{title:"Refresh Process Instance Data",onClick:o},ft.createElement("svg",{className:"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",width:"1.25rem",height:"1.25rem",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},ft.createElement("path",{d:"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"})))}import kt from"react";function Kt({onClick:o}){return kt.createElement(ee,{title:"Retry Process Here",onClick:o},kt.createElement("svg",{className:"!app-sdk-fill-white !app-sdk-stroke-white",width:"10px",height:"10px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},kt.createElement("path",{d:"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"})))}import{Description as Zt,Dialog as rr,DialogBackdrop as nr,DialogPanel as dr,DialogTitle as ir}from"@headlessui/react";import pr from"@monaco-editor/react";import q,{useEffect as lr,useState as cr}from"react";function Qt(o){let[e,t]=cr("");return lr(()=>{t(JSON.stringify(o.flowNodeInstance?.startToken??o.processInstance.startToken??{},null,2))},[o.flowNodeInstance,o.processInstance]),q.createElement(rr,{open:o.isOpen,onClose:o.onClose,className:"app-sdk-relative app-sdk-z-50"},q.createElement(nr,{transition:!0,className:"app-sdk-fixed app-sdk-inset-0 app-sdk-bg-gray-500 app-sdk-bg-opacity-25 app-sdk-transition-opacity data-[closed]:app-sdk-opacity-0 data-[enter]:app-sdk-duration-300 data-[leave]:app-sdk-duration-150 data-[enter]:app-sdk-ease-out data-[leave]:app-sdk-ease-in"},q.createElement("div",{className:"app-sdk-fixed app-sdk-inset-0 app-sdk-flex app-sdk-w-screen app-sdk-items-center app-sdk-justify-center app-sdk-p-4"},q.createElement(dr,{className:"app-sdk-max-w-lg app-sdk-space-y-4 app-sdk-shadow-2xl app-sdk-bg-[color:var(--asdk-rd-background-color)] app-sdk-p-8 app-sdk-rounded-xl app-sdk-text-[color:var(--asdk-rd-text-color)]"},q.createElement(ir,{className:"app-sdk-font-bold"},"Retry Process Instance"),q.createElement(Zt,{className:"app-sdk-break-words"},"Are you sure you want to retry the Process Instance",o.flowNodeInstance&&` at this Flow Node (${o.flowNodeInstance.flowNodeId})`,"?"),q.createElement(Zt,null,"You can provide a new start token:"),q.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-1"},q.createElement("label",null,"Start Token"),q.createElement(pr,{height:"7rem",defaultLanguage:"json",defaultValue:e,onChange:s=>t(s??""),options:{lineNumbersMinChars:2,readOnly:!1,minimap:{enabled:!1},formatOnPaste:!0,formatOnType:!0}})),q.createElement("div",{className:"app-sdk-flex app-sdk-justify-end app-sdk-gap-2"},q.createElement("button",{className:"app-sdk-bg-[color:var(--asdk-rd-secondary-button-color)] app-sdk-text-[color:var(--asdk-rd-secondary-button-text-color)] app-sdk-rounded-md app-sdk-p-2 app-sdk-border hover:app-sdk-cursor-pointer hover:app-sdk-bg-[color:var(--asdk-rd-secondary-button-hover-color)]",onClick:o.onClose},"Cancel"),q.createElement("button",{className:"app-sdk-bg-[color:var(--asdk-rd-primary-button-color)] app-sdk-text-[color:var(--asdk-rd-primary-button-text-color)] app-sdk-rounded-md app-sdk-p-2 app-sdk-border-0 hover:app-sdk-cursor-pointer hover:app-sdk-bg-[color:var(--asdk-rd-primary-button-hover-color)]",onClick:async()=>{let s=JSON.parse(e);await(await import("./actions-RFWN6OOQ.mjs")).retryProcess(o.processInstance.processInstanceId,o.flowNodeInstance?.flowNodeInstanceId,s),o.onClose()}},"Retry"))))))}import ht from"react";function es({disabled:o,onClick:e}){return ht.createElement(ce,{title:"Retry Process",disabled:o,onClick:e},ht.createElement("svg",{className:o?"!app-sdk-stroke-app-sdk-gray-200 dark:!app-sdk-stroke-app-sdk-gray-400 !app-sdk-fill-app-sdk-gray-200 dark:!app-sdk-fill-app-sdk-gray-400":"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",width:"1.25rem",height:"1.25rem",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},ht.createElement("path",{d:"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"})))}import gt from"react";function os({processInstanceId:o,disabled:e}){return gt.createElement(ce,{title:"Terminate Process",disabled:e,onClick:()=>import("./actions-RFWN6OOQ.mjs").then(({terminateProcess:t})=>t(o))},gt.createElement("svg",{className:e?"!app-sdk-stroke-app-sdk-gray-200 dark:!app-sdk-stroke-app-sdk-gray-400 !app-sdk-fill-app-sdk-gray-200 dark:!app-sdk-fill-app-sdk-gray-400":"!app-sdk-stroke-red-600 !app-sdk-fill-red-600",width:"1.25rem",height:"1.25rem",viewBox:"0 0 516 516",xmlns:"http://www.w3.org/2000/svg"},gt.createElement("path",{d:"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"})))}import{ArrowsPointingInIcon as ts,ArrowsPointingOutIcon as ss,XMarkIcon as mr}from"@heroicons/react/24/outline";import{Editor as as}from"@monaco-editor/react";import D,{useEffect as wt,useMemo as rs,useState as vt}from"react";function ns(o){let[e,t]=vt(),[s,a]=vt(!0),[r,n]=vt(null),d=p=>{n(r===p?null:p)};wt(()=>(s&&o.flowNodeInstances.length>1&&a(!1),()=>{if(s)return;let p=new URLSearchParams(window.location.search);p.delete("tokenInspectorFocus"),window.history.replaceState(null,"",`${window.location.pathname}?${p.toString()}${window.location.hash}`)}),[s,o.flowNodeInstances]),wt(()=>{if(o.flowNodeInstances.length<2){t(void 0);return}let c=new URLSearchParams(window.location.search).get("tokenInspectorFocus");c||t(o.flowNodeInstances[0]);let u=o.flowNodeInstances.find(g=>g.flowNodeId===c);u&&t(u)},[o.flowNodeInstances]),wt(()=>{if(s)return;let p=new URLSearchParams(window.location.search);e?p.set("tokenInspectorFocus",e.flowNodeId):p.delete("tokenInspectorFocus"),window.history.replaceState(null,"",`${window.location.pathname}?${p.toString()}${window.location.hash}`)},[e,s]);let i=rs(()=>o.flowNodeInstances.length===1?JSON.stringify(o.flowNodeInstances[0].startToken,null,2):JSON.stringify(e?e.startToken:o.processInstance?.startToken??{},null,2),[e,o.flowNodeInstances,o.processInstance]),m=rs(()=>o.flowNodeInstances.length===1?JSON.stringify(o.flowNodeInstances[0].endToken,null,2):JSON.stringify(e?e.endToken:o.processInstance?.endToken??{},null,2),[e,o.flowNodeInstances,o.processInstance]);return D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-p-4 app-sdk-gap-1 app-sdk-bg-white/95 dark:app-sdk-bg-black/85 dark:app-sdk-text-white app-sdk-border app-sdk-border-solid dark:app-sdk-border-none"},D.createElement("button",{onClick:()=>{o.close()},className:"app-sdk-text-white hover:app-sdk-text-gray-300",title:"Close Token Inspector"},D.createElement(mr,{className:"app-sdk-w-6 app-sdk-h-6"})),D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-4"},o.flowNodeInstances.length===0?D.createElement("label",{className:"app-sdk-break-all"},"Process: ",o.processInstance.processModelId,o.processInstance.processModelName&&` (${o.processInstance.processModelName})`):o.flowNodeInstances.length===1?D.createElement("label",{className:"app-sdk-break-all"},"Flow Node: ",o.flowNodeInstances[0].flowNodeId,o.flowNodeInstances[0].flowNodeName&&` (${o.flowNodeInstances[0].flowNodeName})`):D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-1 app-sdk-w-full"},D.createElement("label",null,"Select Flow Node:"),D.createElement("select",{className:"app-sdk-max-w-full app-sdk-bg-transparent app-sdk-border app-sdk-rounded-md app-sdk-py-2 app-sdk-px-1 app-sdk-text-ellipsis",onChange:p=>t(o.flowNodeInstances.find(c=>c.flowNodeId===p.target.value)),value:e?.flowNodeId??o.flowNodeInstances[0].flowNodeId},o.flowNodeInstances.map(p=>D.createElement("option",{key:`token-inspector-option-${p.flowNodeId}`,value:p.flowNodeId},`${p.flowNodeName?`${p.flowNodeName} (${p.flowNodeId})`:p.flowNodeId}`)))),D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-3"},r&&D.createElement("div",{className:"app-sdk-fixed app-sdk-inset-0 app-sdk-bg-black/30 app-sdk-backdrop-blur-md app-sdk-z-40"}),D.createElement("div",{className:`app-sdk-flex app-sdk-flex-col app-sdk-gap-1
|
|
24
|
+
FormField: ${r} with ${n} `);continue}if(n.length===1?s[r]=n[0]:s[r]=n,s[r]==""&&delete s[r],s[r]){let d=e.find(i=>i.id===r)?.type;if(d==="boolean"){s[r]=s[r]==="on";continue}if(d==="confirm"){s[r]=JSON.parse(s[r]);continue}if(d==="number"){s[r]=parseFloat(s[r]);continue}if(d==="long"){s[r]=parseInt(s[r]);continue}}}let a=e.filter(r=>r.type==="boolean");return a.length&&a.forEach(r=>{s[r.id]||(s[r.id]=!1)}),t.forEach((r,n)=>{if(typeof r.ref.current?.getValue=="function"){let d=r.ref.current.getValue();(typeof d=="boolean"||typeof d=="number"||typeof d=="string"||Array.isArray(d)||d==null||d?.toString()==="[object Object]")&&(s[n]=d)}}),s}import{Transition as kr}from"@headlessui/react";import{getBusinessObject as hr}from"bpmn-js/lib/util/ModelUtil";import{isEqual as yt}from"lodash";import gr from"next/dynamic";import O,{useCallback as no,useEffect as io,useRef as wr,useState as de}from"react";import{createRoot as vr}from"react-dom/client";import{BpmnType as oe,FlowNodeInstanceState as ds,ProcessInstanceState as co}from"@5minds/processcube_engine_sdk";import{Combobox as Ja,ComboboxInput as Wa,ComboboxOption as qa,ComboboxOptions as Xa,Dialog as Ya,DialogBackdrop as Ka,DialogPanel as Za}from"@headlessui/react";import{UsersIcon as Qa}from"@heroicons/react/24/outline";import K,{useState as er}from"react";function Rt(o){let[e,t]=er(""),s=e===""?o.entries:o.entries.filter(a=>a.name.toLowerCase().includes(e.toLowerCase()));return K.createElement(Ya,{className:"app-sdk-relative app-sdk-z-50",open:o.isOpen,onClose:()=>{o.onClose(),t("")}},K.createElement(Ka,{transition:!0,className:"app-sdk-fixed app-sdk-inset-0 app-sdk-bg-gray-500 app-sdk-bg-opacity-25 app-sdk-transition-opacity data-[closed]:app-sdk-opacity-0 data-[enter]:app-sdk-duration-300 data-[leave]:app-sdk-duration-150 data-[enter]:app-sdk-ease-out data-[leave]:app-sdk-ease-in"}),K.createElement("div",{className:"app-sdk-fixed app-sdk-inset-0 app-sdk-z-10 app-sdk-w-screen app-sdk-overflow-y-auto app-sdk-p-4 sm:app-sdk-p-6 md:app-sdk-p-20"},K.createElement(Za,{transition:!0,className:"app-sdk-mx-auto app-sdk-max-w-xl app-sdk-transform app-sdk-rounded-xl app-sdk-bg-[color:var(--asdk-cmdp-background-color)] app-sdk-p-2 app-sdk-shadow-2xl app-sdk-ring-1 app-sdk-ring-black app-sdk-ring-opacity-5 app-sdk-transition-all data-[closed]:app-sdk-scale-95 data-[closed]:app-sdk-opacity-0 data-[enter]:app-sdk-duration-300 data-[leave]:app-sdk-duration-150 data-[enter]:app-sdk-ease-out data-[leave]:app-sdk-ease-in"},K.createElement(Ja,{onChange:a=>{a&&o.onConfirm(a)}},K.createElement(Wa,{autoFocus:!0,className:"app-sdk-w-full app-sdk-ring-offset-2 app-sdk-rounded-md app-sdk-border-0 app-sdk-bg-[color:var(--asdk-cmdp-input-color)] app-sdk-px-4 app-sdk-py-2.5 app-sdk-text-[color:var(--asdk-cmdp-text-color)] sm:app-sdk-text-sm",placeholder:o.placeholder,onChange:a=>t(a.target.value),onBlur:()=>t("")}),s.length>0&&K.createElement(Xa,{static:!0,className:"app-sdk-mb-2 app-sdk-max-h-72 app-sdk-scroll-py-2 app-sdk-overflow-y-auto app-sdk-py-2 app-sdk-text-sm app-sdk-text-[color:var(--asdk-cmdp-text-color)]"},s.map(a=>K.createElement(qa,{key:a.id,value:a,className:({focus:r})=>B("app-sdk-cursor-default app-sdk-select-none app-sdk-rounded-md app-sdk-px-4 app-sdk-py-2",r&&"app-sdk-bg-[color:var(--asdk-cmdp-focus-color)] app-sdk-text-white")},a.name))),e!==""&&s.length===0&&K.createElement("div",{className:"app-sdk-px-4 app-sdk-py-14 app-sdk-text-center sm:app-sdk-px-14"},K.createElement(Qa,{className:"app-sdk-mx-auto app-sdk-h-6 app-sdk-w-6 app-sdk-text-gray-400","aria-hidden":"true"}),K.createElement("p",{className:"app-sdk-mt-4 app-sdk-text-sm app-sdk-text-[color:var(--asdk-cmdp-text-color)]"},o.noResultsText||"No entries found using that search term."))))))}import or from"react";function ee({title:o,children:e,className:t,onClick:s}){return or.createElement("button",{title:o,className:B(t,"app-sdk-appearance-none app-sdk-border-none app-sdk-pointer-events-auto app-sdk-cursor-pointer app-sdk-flex app-sdk-w-6 app-sdk-min-w-6 app-sdk-max-w-6 app-sdk-h-4 app-sdk-text-white app-sdk-bg-cyan-800 app-sdk-rounded app-sdk-text-xs app-sdk-items-center app-sdk-justify-center"),onClick:s},e)}import tr from"react";function jt({width:o,children:e}){return tr.createElement("div",{className:"app-sdk-flex app-sdk-gap-1 app-sdk-justify-center app-sdk-flex-wrap",style:{width:`${o}px`}},e)}import ct from"react";function Gt({isSender:o,onClick:e}){return ct.createElement(ee,{title:`Go to ${o?"Target":"Source"}`,onClick:e},ct.createElement("svg",{className:"!app-sdk-fill-white",width:"10px",height:"10px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},ct.createElement("path",{d:"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"})))}import mt from"react";function Jt({onClick:o}){return mt.createElement(ee,{onClick:o,title:"List Instances"},mt.createElement("svg",{className:"!app-sdk-fill-white",width:"10px",height:"10px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},mt.createElement("path",{d:"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"})))}import ut from"react";function Wt({flowNodeId:o,flowNodeInstanceId:e,flowNodeType:t,processInstanceId:s,onPlay:a}){return ut.createElement(ee,{title:"Run Task",className:"asdk-pii-play-button",onClick:()=>{typeof a=="function"?new Promise(async(r,n)=>{try{await a({flowNodeId:o,processInstanceId:s,flowNodeInstanceId:e,taskType:t}),r(!0)}catch(d){n(d)}}):import("./actions-5QSQV4KN.mjs").then(({finishTask:r})=>r(e,t))}},ut.createElement("svg",{className:"!app-sdk-fill-none !app-sdk-stroke-white !app-sdk-stroke-[2px]",width:"14px",height:"14px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},ut.createElement("path",{d:"M5 17.3336V6.66698C5 5.78742 5 5.34715 5.18509 5.08691C5.34664 4.85977 5.59564 4.71064 5.87207 4.67499C6.18868 4.63415 6.57701 4.84126 7.35254 5.25487L17.3525 10.5882L17.3562 10.5898C18.2132 11.0469 18.642 11.2756 18.7826 11.5803C18.9053 11.8462 18.9053 12.1531 18.7826 12.4189C18.6418 12.7241 18.212 12.9537 17.3525 13.4121L7.35254 18.7454C6.57645 19.1593 6.1888 19.3657 5.87207 19.3248C5.59564 19.2891 5.34664 19.1401 5.18509 18.9129C5 18.6527 5 18.2132 5 17.3336Z"})))}import sr from"react";function qt(){return sr.createElement("div",{className:"app-sdk-h-6 app-sdk-w-[1px] app-sdk-my-auto app-sdk-border-l app-sdk-border-r-0 app-sdk-border-t-0 app-sdk-border-b-0 app-sdk-border-collapse app-sdk-border-solid app-sdk-border-gray-900 dark:app-sdk-border-gray-300"})}import Xt from"react";function ao({children:o}){return Xt.createElement("div",{className:"app-sdk-w-full app-sdk-absolute app-sdk-top-0 app-sdk-left-0 app-sdk-z-40 app-sdk-pt-2 app-sdk-pointer-events-none"},Xt.createElement("div",{className:"app-sdk-flex app-sdk-w-fit app-sdk-mx-auto app-sdk-rounded-full app-sdk-px-3 app-sdk-py-2 app-sdk-gap-1 app-sdk-border app-sdk-border-solid app-sdk-bg-white/95 dark:app-sdk-bg-black/85 dark:app-sdk-border-none app-sdk-pointer-events-auto"},o))}import ft from"react";import ar from"react";function ce({title:o,disabled:e,children:t,onClick:s}){return ar.createElement("button",{title:`${o??""}${e?" (disabled)":""}`,className:B("app-sdk-appearance-none app-sdk-border-none app-sdk-bg-transparent app-sdk-flex app-sdk-h-full app-sdk-my-auto app-sdk-rounded-full app-sdk-p-1",e?"app-sdk-cursor-not-allowed":"app-sdk-cursor-pointer hover:app-sdk-bg-app-sdk-gray-100/40"),onClick:s,disabled:e},t)}function Yt({onClick:o}){return ft.createElement(ce,{title:"Refresh Process Instance Data",onClick:o},ft.createElement("svg",{className:"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",width:"1.25rem",height:"1.25rem",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},ft.createElement("path",{d:"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"})))}import kt from"react";function Kt({onClick:o}){return kt.createElement(ee,{title:"Retry Process Here",onClick:o},kt.createElement("svg",{className:"!app-sdk-fill-white !app-sdk-stroke-white",width:"10px",height:"10px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},kt.createElement("path",{d:"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"})))}import{Description as Zt,Dialog as rr,DialogBackdrop as nr,DialogPanel as dr,DialogTitle as ir}from"@headlessui/react";import pr from"@monaco-editor/react";import q,{useEffect as lr,useState as cr}from"react";function Qt(o){let[e,t]=cr("");return lr(()=>{t(JSON.stringify(o.flowNodeInstance?.startToken??o.processInstance.startToken??{},null,2))},[o.flowNodeInstance,o.processInstance]),q.createElement(rr,{open:o.isOpen,onClose:o.onClose,className:"app-sdk-relative app-sdk-z-50"},q.createElement(nr,{transition:!0,className:"app-sdk-fixed app-sdk-inset-0 app-sdk-bg-gray-500 app-sdk-bg-opacity-25 app-sdk-transition-opacity data-[closed]:app-sdk-opacity-0 data-[enter]:app-sdk-duration-300 data-[leave]:app-sdk-duration-150 data-[enter]:app-sdk-ease-out data-[leave]:app-sdk-ease-in"},q.createElement("div",{className:"app-sdk-fixed app-sdk-inset-0 app-sdk-flex app-sdk-w-screen app-sdk-items-center app-sdk-justify-center app-sdk-p-4"},q.createElement(dr,{className:"app-sdk-max-w-lg app-sdk-space-y-4 app-sdk-shadow-2xl app-sdk-bg-[color:var(--asdk-rd-background-color)] app-sdk-p-8 app-sdk-rounded-xl app-sdk-text-[color:var(--asdk-rd-text-color)]"},q.createElement(ir,{className:"app-sdk-font-bold"},"Retry Process Instance"),q.createElement(Zt,{className:"app-sdk-break-words"},"Are you sure you want to retry the Process Instance",o.flowNodeInstance&&` at this Flow Node (${o.flowNodeInstance.flowNodeId})`,"?"),q.createElement(Zt,null,"You can provide a new start token:"),q.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-1"},q.createElement("label",null,"Start Token"),q.createElement(pr,{height:"7rem",defaultLanguage:"json",defaultValue:e,onChange:s=>t(s??""),options:{lineNumbersMinChars:2,readOnly:!1,minimap:{enabled:!1},formatOnPaste:!0,formatOnType:!0}})),q.createElement("div",{className:"app-sdk-flex app-sdk-justify-end app-sdk-gap-2"},q.createElement("button",{className:"app-sdk-bg-[color:var(--asdk-rd-secondary-button-color)] app-sdk-text-[color:var(--asdk-rd-secondary-button-text-color)] app-sdk-rounded-md app-sdk-p-2 app-sdk-border hover:app-sdk-cursor-pointer hover:app-sdk-bg-[color:var(--asdk-rd-secondary-button-hover-color)]",onClick:o.onClose},"Cancel"),q.createElement("button",{className:"app-sdk-bg-[color:var(--asdk-rd-primary-button-color)] app-sdk-text-[color:var(--asdk-rd-primary-button-text-color)] app-sdk-rounded-md app-sdk-p-2 app-sdk-border-0 hover:app-sdk-cursor-pointer hover:app-sdk-bg-[color:var(--asdk-rd-primary-button-hover-color)]",onClick:async()=>{let s=JSON.parse(e);await(await import("./actions-5QSQV4KN.mjs")).retryProcess(o.processInstance.processInstanceId,o.flowNodeInstance?.flowNodeInstanceId,s),o.onClose()}},"Retry"))))))}import ht from"react";function es({disabled:o,onClick:e}){return ht.createElement(ce,{title:"Retry Process",disabled:o,onClick:e},ht.createElement("svg",{className:o?"!app-sdk-stroke-app-sdk-gray-200 dark:!app-sdk-stroke-app-sdk-gray-400 !app-sdk-fill-app-sdk-gray-200 dark:!app-sdk-fill-app-sdk-gray-400":"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",width:"1.25rem",height:"1.25rem",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},ht.createElement("path",{d:"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"})))}import gt from"react";function os({processInstanceId:o,disabled:e}){return gt.createElement(ce,{title:"Terminate Process",disabled:e,onClick:()=>import("./actions-5QSQV4KN.mjs").then(({terminateProcess:t})=>t(o))},gt.createElement("svg",{className:e?"!app-sdk-stroke-app-sdk-gray-200 dark:!app-sdk-stroke-app-sdk-gray-400 !app-sdk-fill-app-sdk-gray-200 dark:!app-sdk-fill-app-sdk-gray-400":"!app-sdk-stroke-red-600 !app-sdk-fill-red-600",width:"1.25rem",height:"1.25rem",viewBox:"0 0 516 516",xmlns:"http://www.w3.org/2000/svg"},gt.createElement("path",{d:"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"})))}import{ArrowsPointingInIcon as ts,ArrowsPointingOutIcon as ss,XMarkIcon as mr}from"@heroicons/react/24/outline";import{Editor as as}from"@monaco-editor/react";import D,{useEffect as wt,useMemo as rs,useState as vt}from"react";function ns(o){let[e,t]=vt(),[s,a]=vt(!0),[r,n]=vt(null),d=p=>{n(r===p?null:p)};wt(()=>(s&&o.flowNodeInstances.length>1&&a(!1),()=>{if(s)return;let p=new URLSearchParams(window.location.search);p.delete("tokenInspectorFocus"),window.history.replaceState(null,"",`${window.location.pathname}?${p.toString()}${window.location.hash}`)}),[s,o.flowNodeInstances]),wt(()=>{if(o.flowNodeInstances.length<2){t(void 0);return}let c=new URLSearchParams(window.location.search).get("tokenInspectorFocus");c||t(o.flowNodeInstances[0]);let u=o.flowNodeInstances.find(g=>g.flowNodeId===c);u&&t(u)},[o.flowNodeInstances]),wt(()=>{if(s)return;let p=new URLSearchParams(window.location.search);e?p.set("tokenInspectorFocus",e.flowNodeId):p.delete("tokenInspectorFocus"),window.history.replaceState(null,"",`${window.location.pathname}?${p.toString()}${window.location.hash}`)},[e,s]);let i=rs(()=>o.flowNodeInstances.length===1?JSON.stringify(o.flowNodeInstances[0].startToken,null,2):JSON.stringify(e?e.startToken:o.processInstance?.startToken??{},null,2),[e,o.flowNodeInstances,o.processInstance]),m=rs(()=>o.flowNodeInstances.length===1?JSON.stringify(o.flowNodeInstances[0].endToken,null,2):JSON.stringify(e?e.endToken:o.processInstance?.endToken??{},null,2),[e,o.flowNodeInstances,o.processInstance]);return D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-p-4 app-sdk-gap-1 app-sdk-bg-white/95 dark:app-sdk-bg-black/85 dark:app-sdk-text-white app-sdk-border app-sdk-border-solid dark:app-sdk-border-none"},D.createElement("button",{onClick:()=>{o.close()},className:"app-sdk-text-white hover:app-sdk-text-gray-300",title:"Close Token Inspector"},D.createElement(mr,{className:"app-sdk-w-6 app-sdk-h-6"})),D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-4"},o.flowNodeInstances.length===0?D.createElement("label",{className:"app-sdk-break-all"},"Process: ",o.processInstance.processModelId,o.processInstance.processModelName&&` (${o.processInstance.processModelName})`):o.flowNodeInstances.length===1?D.createElement("label",{className:"app-sdk-break-all"},"Flow Node: ",o.flowNodeInstances[0].flowNodeId,o.flowNodeInstances[0].flowNodeName&&` (${o.flowNodeInstances[0].flowNodeName})`):D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-1 app-sdk-w-full"},D.createElement("label",null,"Select Flow Node:"),D.createElement("select",{className:"app-sdk-max-w-full app-sdk-bg-transparent app-sdk-border app-sdk-rounded-md app-sdk-py-2 app-sdk-px-1 app-sdk-text-ellipsis",onChange:p=>t(o.flowNodeInstances.find(c=>c.flowNodeId===p.target.value)),value:e?.flowNodeId??o.flowNodeInstances[0].flowNodeId},o.flowNodeInstances.map(p=>D.createElement("option",{key:`token-inspector-option-${p.flowNodeId}`,value:p.flowNodeId},`${p.flowNodeName?`${p.flowNodeName} (${p.flowNodeId})`:p.flowNodeId}`)))),D.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-3"},r&&D.createElement("div",{className:"app-sdk-fixed app-sdk-inset-0 app-sdk-bg-black/30 app-sdk-backdrop-blur-md app-sdk-z-40"}),D.createElement("div",{className:`app-sdk-flex app-sdk-flex-col app-sdk-gap-1
|
|
25
25
|
${r==="start"?"app-sdk-fixed app-sdk-top-1/2 app-sdk-left-1/2 app-sdk--translate-x-1/2 app-sdk--translate-y-1/2 app-sdk-w-4/5 app-sdk-h-[70vh] app-sdk-bg-white/10 app-sdk-backdrop-blur-xl app-sdk-rounded-xl app-sdk-shadow-2xl app-sdk-z-50 app-sdk-p-6":""}`},D.createElement("div",{className:"app-sdk-flex app-sdk-items-center app-sdk-justify-between"},D.createElement("label",{className:"app-sdk-text-white app-sdk-font-medium"},"Start Token"),D.createElement("button",{className:"app-sdk-text-white hover:app-sdk-text-gray-300 app-sdk-w-6 app-sdk-h-6",onClick:()=>d("start"),title:r==="start"?"Minimize":"Maximize"},r==="start"?D.createElement(ts,{className:"app-sdk-w-6 app-sdk-h-6"}):D.createElement(ss,{className:"app-sdk-w-6 app-sdk-h-6"}))),D.createElement(as,{height:r==="start"?"60vh":"7rem",defaultLanguage:"json",value:i,options:{lineNumbersMinChars:2,readOnly:!0,minimap:{enabled:!1}}})),D.createElement("div",{className:`app-sdk-flex app-sdk-flex-col app-sdk-gap-1
|
|
26
|
-
${r==="end"?"app-sdk-fixed app-sdk-top-1/2 app-sdk-left-1/2 app-sdk--translate-x-1/2 app-sdk--translate-y-1/2 app-sdk-w-4/5 app-sdk-h-[70vh] app-sdk-bg-white/10 app-sdk-backdrop-blur-xl app-sdk-rounded-xl app-sdk-shadow-2xl app-sdk-z-50 app-sdk-p-6":""}`},D.createElement("div",{className:"app-sdk-flex app-sdk-items-center app-sdk-justify-between"},D.createElement("label",{className:"app-sdk-text-white app-sdk-font-medium"},"End Token"),D.createElement("button",{className:"app-sdk-text-white hover:app-sdk-text-gray-300 app-sdk-w-6 app-sdk-h-6",onClick:()=>d("end"),title:r==="end"?"Minimize":"Maximize"},r==="end"?D.createElement(ts,{className:"app-sdk-w-6 app-sdk-h-6"}):D.createElement(ss,{className:"app-sdk-w-6 app-sdk-h-6"}))),D.createElement(as,{height:r==="end"?"60vh":"7rem",defaultLanguage:"json",value:m,options:{lineNumbersMinChars:2,readOnly:!0,minimap:{enabled:!1}}})))))}import Xe,{useEffect as ur,useState as fr}from"react";function ro(o){let[e,t]=fr(o.isOpen??!1);return ur(()=>{t(o.isOpen??!1)},[o.isOpen]),Xe.createElement(ce,{disabled:o.disabled,title:"View Process Tokens",onClick:()=>{e?o.close():o.open(),t(s=>!s)}},e?Xe.createElement("svg",{className:"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",xmlns:"http://www.w3.org/2000/svg",width:"1.25rem",height:"1.25rem",viewBox:"0 0 384 512"},Xe.createElement("path",{d:"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"})):Xe.createElement("svg",{className:"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",xmlns:"http://www.w3.org/2000/svg",width:"1.25rem",height:"1.25rem",viewBox:"0 0 448 512"},Xe.createElement("path",{d:"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"})))}var is=[co.error,co.terminated],yr=[oe.manualTask,oe.userTask,oe.untypedTask],ps=[oe.endEvent,oe.intermediateThrowEvent,oe.sendTask],br=[oe.startEvent,oe.intermediateCatchEvent,oe.boundaryEvent,oe.receiveTask],po={isOpen:!1,placeholder:"",entries:[],onConfirm:()=>{},onClose:()=>{}},xr={isOpen:!1},lo="asdk-buttons";function Nr(o){let{processInstanceId:e}=o,[t,s]=de(po),[a,r]=de(xr),[n,d]=de(!1),[i,m]=de(),[p,c]=de([]),[u,g]=de([]),[f,l]=de(new Map),[v,C]=de([]),[V,me]=de([]),y=wr(null),pe=no(async()=>{let h=await import("./actions-RFWN6OOQ.mjs"),b=h.getProcessInstance(e),$=h.getFlowNodeInstances(e),[F,H]=await Promise.all([b,$]),T=await h.getTriggeredFlowNodeInstances(H.map(E=>E.flowNodeInstanceId));m(F),c(H),g(T);let L=new URLSearchParams(window.location.search);L.get("tokenInspector")==="true"&&d(!0);let Q=L.getAll("instance"),se=H.filter(E=>Q.includes(E.flowNodeInstanceId));se.length!==Q.length&&(L.delete("instance"),se.forEach(E=>L.append("instance",E.flowNodeInstanceId)),window.history.replaceState({},"",`${window.location.pathname}?${L.toString()}`));let J=new Map;H.forEach(E=>{J.has(E.flowNodeId)||J.set(E.flowNodeId,E.flowNodeInstanceId)}),se.forEach(E=>J.set(E.flowNodeId,E.flowNodeInstanceId)),l(J)},[e]),Z=no(h=>{let b=hr(h),$=p.some(H=>H.flowNodeId===b.targetRef.id),F=p.some(H=>H.flowNodeId===b.sourceRef.id&&H.state===ds.finished);return $&&F},[p]),I=no(async()=>{let h=y.current?.bpmnViewerRef,b=h?.getOverlays();if(!h||!b)return;let $=await import("./actions-RFWN6OOQ.mjs"),F=$.getProcessInstance(e),H=$.getFlowNodeInstances(e),[T,L]=await Promise.all([F,H]),xe=await $.getTriggeredFlowNodeInstances(L.map(U=>U.flowNodeInstanceId));if(yt(T,i)&&yt(L,p)&&yt(xe,u))return;T.state!==i?.state&&b.clear();for(let[U,Ke]of f.entries()){let Ne=p.find(z=>z.flowNodeInstanceId===Ke);if(!Ne)continue;let Ze=L.find(z=>z.flowNodeId===U);Ze?.flowNodeInstanceId===Ke&&Ne.state===Ze.state||(h.removeMarker(U,`asdk-pii-flow-node-instance-state--${Ne.state}`),b.remove({element:U,type:lo}))}m(T),c(L),g(xe);let Q=new URLSearchParams(window.location.search),se=Q.getAll("instance"),J=L.filter(U=>se.includes(U.flowNodeInstanceId));J.length!==se.length&&(Q.delete("instance"),J.forEach(U=>Q.append("instance",U.flowNodeInstanceId)),window.history.replaceState({},"",`${window.location.pathname}?${Q.toString()}`));let E=new Map;L.forEach(U=>{E.has(U.flowNodeId)||E.set(U.flowNodeId,U.flowNodeInstanceId)}),J.forEach(U=>E.set(U.flowNodeId,U.flowNodeInstanceId)),l(E)},[y.current,i,f,p,e]),N=no((h,b)=>{let $=y.current?.bpmnViewerRef,F=$?.getOverlays();if(!$||!F)return;let H=F.get({element:h.id,type:lo});if(Array.isArray(H)&&H.length>0)return;let T=b.find(z=>z.flowNodeInstanceId===f.get(z.flowNodeId));if(!T)return;let L=o.showFlowNodeExecutionCount&&b.length>1,xe=o.showFlowNodeInstancesListButton&&b.length>1,Q=o.showFinishTaskButton&&yr.includes(h.type)&&T.state===ds.suspended,se=o.showRetryFlowNodeInstanceButton&&i&&is.includes(i.state),J=!1,E=[];if(o.showGoToFlowNodeButton&&br.includes(h.type)){let z=T.triggeredByFlowNodeInstance;J=z!==void 0,E=z?[z]:[]}else if(o.showGoToFlowNodeButton&&ps.includes(h.type)){let z=u.filter(R=>R.triggeredByFlowNodeInstance?.flowNodeInstanceId===T.flowNodeInstanceId);J=z.length>0,E=z}if(!L&&!Q&&!se&&!J)return;let U=h.width<52,Ke=F.add(h.id,lo,{position:{bottom:-7,left:U?-h.width/2:0},html:"<div></div>"}),Ne=F.get(Ke),Ze=vr(Ne.htmlContainer),ko=b.indexOf(T)===0,ho=b.length-b.indexOf(T);Ze.render(O.createElement(jt,{width:U?h.width*2:h.width},L&&O.createElement(ee,{className:"app-sdk-select-none !app-sdk-cursor-default !app-sdk-bg-slate-500",title:`Flow Node was executed ${b.length} times.${ko?"":` You are viewing instance #${ho}.`}`},`${ko?"":`${ho}/`}${b.length}`),xe&&O.createElement(Jt,{onClick:()=>{let z=b.map(W=>({id:W.flowNodeInstanceId,name:`${W.startedAt?.toLocaleString("en-GB")} - ${W.flowNodeInstanceId} - ${W.state}${W.flowNodeInstanceId===T.flowNodeInstanceId?" (selected)":""}`,...W}));s({isOpen:!0,placeholder:"Select instance to display:",entries:z,onConfirm:async W=>{let go=b.find(wo=>wo.flowNodeInstanceId===W.flowNodeInstanceId);if(!go)return;$.removeMarker(T.flowNodeId,`asdk-pii-flow-node-instance-state--${T.state}`),F.remove({element:h.id,type:lo});let Qe=new URLSearchParams(window.location.search);Qe.getAll("instance").includes(T.flowNodeInstanceId)&&Qe.delete("instance",T.flowNodeInstanceId),b.indexOf(go)!==0&&Qe.append("instance",go.flowNodeInstanceId),window.history.replaceState({},"",`${window.location.pathname}?${Qe.toString()}${window.location.hash}`),l(wo=>new Map(wo).set(h.id,W.flowNodeInstanceId)),s(po)},onClose:()=>s(po)})}}),J&&O.createElement(Gt,{isSender:ps.includes(h.type),onClick:()=>{if(E.length===1){let R=new URLSearchParams;R.append("selected",E[0].flowNodeId),R.append("instance",E[0].flowNodeInstanceId),window.location.href=`${E[0].processInstanceId}?${R.toString()}`;return}let z=E.map(R=>({id:R.flowNodeInstanceId,name:`${R.startedAt?.toLocaleString("en-GB")} - ${R.flowNodeId}${R.flowNodeName?` - ${R.flowNodeName}`:""}`,...R}));s({isOpen:!0,placeholder:"Select target to go to:",entries:z,onConfirm:R=>{let W=new URLSearchParams;W.append("selected",R.flowNodeId),W.append("instance",R.flowNodeInstanceId),window.location.href=`${R.processInstanceId}?${W.toString()}`},onClose:()=>s(po)})}}),Q&&O.createElement(Wt,{flowNodeId:T.flowNodeId,flowNodeInstanceId:T.flowNodeInstanceId,flowNodeType:h.type,processInstanceId:T.processInstanceId,onPlay:o.onFinish}),se&&O.createElement(Kt,{onClick:()=>{r({isOpen:!0,flowNodeInstance:T})}})))},[y.current,i,p,u,f]);if(io(()=>{pe()},[e]),io(()=>{if(i?.state===co.finished){I();return}let h=setInterval(I,1e3);return()=>clearInterval(h)},[I,i?.state]),io(()=>{if(v.length===0||p.length===0){me([]);return}let h=p.filter(b=>{let $=v.includes(b.flowNodeId),F=f.get(b.flowNodeId)===b.flowNodeInstanceId;return $&&F});if(h.length===0){let b=new URLSearchParams(window.location.search);b.delete("tokenInspectorFocus"),window.history.replaceState({},"",`${window.location.pathname}?${b.toString()}${window.location.hash}`)}me(h)},[p,v,f]),io(()=>{if(!i?.xml)return;let h=y.current?.bpmnViewerRef,b=h?.getElementRegistry();!h||!b||h.onImportDone(()=>{let $=new Set(p.map(F=>F.flowNodeId));b.forEach(F=>{if(F.type==="bpmn:SequenceFlow"){Z(F)?h.addMarker(F.id,"asdk-pii-sequence-flow-finished"):h.hasMarker(F.id,"asdk-pii-sequence-flow-finished")&&h.removeMarker(F.id,"asdk-pii-sequence-flow-finished");return}if(!$.has(F.id))return;let H=p.filter(L=>L.flowNodeId===F.id),T=H.find(L=>L.flowNodeInstanceId===f.get(L.flowNodeId));T&&(h.hasMarker(F.id,"asdk-pii-flow-node-instance-state")||h.addMarker(F.id,"asdk-pii-flow-node-instance-state"),h.hasMarker(F.id,`asdk-pii-flow-node-instance-state--${T.state}`)||h.addMarker(F.id,`asdk-pii-flow-node-instance-state--${T.state}`),N(F,H))})})},[y.current,i,p,u,f]),!i?.xml)return o.loadingComponent?o.loadingComponent:O.createElement("div",{className:"app-sdk-absolute app-sdk-w-screen app-sdk-h-screen app-sdk-flex"},O.createElement("div",{className:"app-sdk-m-auto"},"Fetching diagram..."));let x=o.showProcessRefreshButton||o.showProcessRetryButton||o.showProcessTerminateButton||o.showTokenInspectorButton,X=o.showTokenInspectorButton&&(o.showProcessRefreshButton||o.showProcessRetryButton||o.showProcessTerminateButton);return O.createElement("div",{className:"app-sdk-relative app-sdk-w-full app-sdk-h-full"},O.createElement(Rt,{...t}),(o.showRetryFlowNodeInstanceButton||o.showProcessRetryButton)&&O.createElement(Qt,{...a,processInstance:i,onClose:()=>r(h=>({...h,isOpen:!1}))}),x&&O.createElement(ao,null,o.showProcessRefreshButton&&O.createElement(Yt,{onClick:I}),o.showProcessRetryButton&&O.createElement(es,{onClick:()=>r({isOpen:!0}),disabled:!is.includes(i.state)}),o.showProcessTerminateButton&&O.createElement(os,{processInstanceId:e,disabled:i.state!==co.running}),X&&O.createElement(qt,null),o.showTokenInspectorButton&&O.createElement(ro,{isOpen:n,open:()=>{let h=new URLSearchParams(window.location.search);h.set("tokenInspector","true"),window.history.replaceState({},"",`${window.location.pathname}?${h.toString()}${window.location.hash}`),d(!0)},close:()=>{let h=new URLSearchParams(window.location.search);h.delete("tokenInspector"),window.history.replaceState({},"",`${window.location.pathname}?${h.toString()}${window.location.hash}`),d(!1)}})),O.createElement(kr,{show:n},O.createElement("div",{className:"app-sdk-transition app-sdk-duration-200 data-[closed]:app-sdk-opacity-0 app-sdk-w-1/4 app-sdk-min-w-64 app-sdk-absolute app-sdk-top-0 app-sdk-right-0 app-sdk-z-40 app-sdk-pt-2 app-sdk-pr-2"},O.createElement(ns,{processInstance:i,flowNodeInstances:V,close:()=>{let h=new URLSearchParams(window.location.search);h.delete("tokenInspector"),window.history.replaceState({},"",`${window.location.pathname}?${h.toString()}${window.location.hash}`),d(!1)}}))),O.createElement(Te,{xml:i.xml,ref:y,setSelectedElementIds:C}))}var Gc=gr(()=>Promise.resolve(Nr),{ssr:!1});import{Transition as Ir}from"@headlessui/react";import Cr from"next/dynamic";import ie,{useEffect as fs,useState as te}from"react";function be(o){if(!o)return;let e=parseFloat(o);if(!isNaN(e))return e/100}var mo=class{nodeInfoMap={};heatmapInfo={};runtimeService;processCostsService;bpmnViewer;activeCostKeyPerNode={};constructor(e,t,s){this.runtimeService=e,this.processCostsService=t,this.computeRuntimeHeatmap(s),this.computeCostHeatmap(s)}updateHeatmapService(e,t,s){this.runtimeService=e,this.processCostsService=t,this.computeRuntimeHeatmap(s),this.computeCostHeatmap(s)}getHeatmapInfoForId(e){return this.heatmapInfo[e]}hasRuntimeEntry(){return Object.values(this.heatmapInfo).some(e=>"runtime"in e)}hasCostEntry(){return Object.values(this.heatmapInfo).some(e=>Object.keys(e).some(t=>!t.startsWith("runtime")))}getActiveCostKey(e){return this.activeCostKeyPerNode[e]}hasMultipleCostEntries(e){let t=this.heatmapInfo[e];return t?Object.keys(t).filter(a=>!a.startsWith("runtime")).length>=2:!1}applyHeatmap(e,t,s){let a=s.viewer,r=s.flowNodeId;if(!a&&!r)return;if(!e&&a){a.clearHeatmap(Object.keys(this.heatmapInfo));return}if(!this.bpmnViewer&&a&&(this.bpmnViewer=a),!a&&r){let i=this.heatmapInfo[r]?.[t]?.status;if(!i)return;this.activeCostKeyPerNode[r]=t,this.bpmnViewer?.showHeatmap({[r]:i});return}if(!a)return;let n={},d={};for(let[i,m]of Object.entries(this.nodeInfoMap))n[i]=m.status;for(let[i,m]of Object.entries(this.heatmapInfo)){let p=this.activeCostKeyPerNode?.[i];if(p&&m[p]?.status){d[i]=m[p].status;continue}for(let[c,u]of Object.entries(m))if(!c.startsWith("runtime")&&u?.status){d[i]=u.status,this.activeCostKeyPerNode=this.activeCostKeyPerNode,this.activeCostKeyPerNode[i]=c;break}}t==="runtime"?(a.clearHeatmap(Object.keys(d)),a.showHeatmap(n)):(a.clearHeatmap(Object.keys(n)),a.showHeatmap(d))}computeCostHeatmap(e){let t=this.processCostsService.getAllProcessCosts?.();if(t)for(let[s,a]of Object.entries(t))for(let[r,n]of Object.entries(a)){let d=n.average;if(d===void 0)continue;let i=n.critical??be(e.customProperties["pilot.setProcessCosts.critical"]),m=n.warning??be(e.customProperties["pilot.setProcessCosts.warning"]),p=n.reference;if(!p)continue;let c=m?p*m:void 0,u=i?p*i:void 0;if(c&&u&&u<c)continue;let g="Stable";u!==void 0&&d>=u?g="Critical":c!==void 0&&(u===void 0||c<u)&&d>=c&&(g="Warning");let f={status:g,referenceRuntime:p,warningThreshold:c,criticalThreshold:u,warningSource:this.getHeatmapSource(n.warning,e.customProperties["pilot.setProcessCosts.warning"]),criticalSource:this.getHeatmapSource(n.critical,e.customProperties["pilot.setProcessCosts.critical"])};this.heatmapInfo[s]||(this.heatmapInfo[s]={}),this.heatmapInfo[s][r]=f}}computeRuntimeHeatmap(e){let t=be(e.customProperties["pilot.setRuntime.warning"]),s=be(e.customProperties["pilot.setRuntime.critical"]);e.flowNodes.forEach(a=>{let n=this.runtimeService.getStats(a.id)?.average,d=a.customProperties["pilot.setRuntime.reference"],i=d?Number(d):void 0;if(!i||isNaN(i))return;let m=be(a.customProperties["pilot.setRuntime.warning"]),p=be(a.customProperties["pilot.setRuntime.critical"]),c=m??t,u=p??s,g=c?i*c:void 0,f=u?i*u:void 0;if(f&&g&&f<g)return;let l={referenceRuntime:i,warningThreshold:g,criticalThreshold:f,warningSource:this.getHeatmapSource(m,t),criticalSource:this.getHeatmapSource(p,s)};if(n!==void 0&&(f||g)){let v="Stable";f!==void 0&&n>=f?v="Critical":g!==void 0&&(f===void 0||g<f)&&n>=g&&(v="Warning"),l.status=v,this.nodeInfoMap[a.id]=l}this.heatmapInfo[a.id]={runtime:l}})}getHeatmapSource(e,t){return e!==void 0?"Flow Node":t!==void 0?"Process":void 0}};var uo=class{flowNodeInstances;processCostsExpressionParams;instances;costResultsByFlowNodeId={};instanceCounter={};thresholdsByFlowNodeId={};constructor(e,t){this.instances=e,this.flowNodeInstances=e.flatMap(s=>s.process_instance.flowNodeInstances||[]),this.processCostsExpressionParams={correlationMetadata:{},processInstanceMetadata:{}},this.precalculateCosts(t)}getInstanceCount(e){return this.instanceCounter[e]}getCostsForFlowNodeId(e){return this.costResultsByFlowNodeId[e]}getAllProcessCosts(){return this.costResultsByFlowNodeId}getFlowNodeExecutionCount(e,t){let s=0;for(let a of this.flowNodeInstances)if(a.id===e&&a.flowNodeExitedAt&&(s++,a.flowNodeInstanceId===t))break;return s}getProcessInstanceCount(){return this.instances.length}splitCostProperties(e){let t={},s={};for(let[a,r]of Object.entries(e)){let n=a.match(/^pilot\.setProcessCosts\.([^.]+)\.(formula|reference|warning|critical)$/);if(n){let d=n[1],i=n[2];if(i==="formula")t[d]=r;else{let m=parseFloat(r);s[d]||(s[d]={}),isNaN(m)||(i==="reference"?s[d].reference=m:s[d][i]=m/100)}}}return{costExpressions:t,thresholds:s}}precalculateCosts(e){for(let t of e){let s=t.id,{costExpressions:a,thresholds:r}=this.splitCostProperties(t.customProperties);Object.keys(r).length>0&&(this.thresholdsByFlowNodeId[s]=r);let n=0;for(let d of this.flowNodeInstances)if(s===d.id&&d.flowNodeExitedAt){n+=1,this.setProcessCostExpressionParamsForInstance(d);let i=this.getProcessCosts(a);if(Object.keys(i).length===0)continue;this.costResultsByFlowNodeId[s]||(this.costResultsByFlowNodeId[s]={});for(let[m,p]of Object.entries(i)){let c=parseFloat(p),u=r[m]??this.thresholdsByFlowNodeId[s]?.[m]??{},g=this.costResultsByFlowNodeId[s][m]??{total:0,errors:0,average:0,count:0,...u};isNaN(c)?g.errors+=1:g.total+=c,this.costResultsByFlowNodeId[s][m]=g}}this.instanceCounter[s]=n}for(let t in this.costResultsByFlowNodeId)for(let s in this.costResultsByFlowNodeId[t]){let a=this.costResultsByFlowNodeId[t][s],r=this.instanceCounter[t],n=r>0?a.total/(r-a.errors):0;a.average=isNaN(n)?0:n}}getProcessCosts(e){let t={};for(let[s,a]of Object.entries(e)){if(!a)continue;let r=!1,n=a.replace(/\$\{(.+?)\}/g,(d,i)=>{let m=i.split(".").reduce((p,c)=>p&&p[c],this.processCostsExpressionParams);return m===void 0||isNaN(m)?(r=!0,"invalid"):m.toString()});if(r||n.includes("$")||n.includes("{")||n.includes("}")){t[s]="{ Error: Invalid expression. }";continue}try{let d=new Function("Math",`return ${n}`)(Math);t[s]=d.toString()}catch{t[s]="{ Error: Invalid expression. }"}}return t}setProcessCostExpressionParamsForInstance(e){this.processCostsExpressionParams.currentFlowNode=this.getCurrentFlowNode(e.flowNodeInstanceId),this.processCostsExpressionParams.token=this.buildTokenHistoryForFlowNodeInstance(e.flowNodeInstanceId),this.processCostsExpressionParams.dataObjects=this.buildDataObjectsForFlowNodeInstance(e.flowNodeInstanceId),this.processCostsExpressionParams.flowNodeExecutionCount=this.getFlowNodeExecutionCount(e.id,e.flowNodeInstanceId)}getCurrentFlowNode(e){return this.flowNodeInstances.find(t=>t.flowNodeInstanceId===e)}buildTokenHistoryForFlowNodeInstance(e){let t=this.flowNodeInstances.findIndex(r=>r.flowNodeInstanceId===e&&r.flowNodeExitedAt);if(t===-1)return{current:{},history:{}};let s=this.flowNodeInstances[t]?.endToken??{},a={};for(let r=0;r<t;r++){let n=this.flowNodeInstances[r];n.endToken&&(a[n.id]=n.endToken)}return{current:s,history:a}}buildDataObjectsForFlowNodeInstance(e){let t={};for(let s of this.flowNodeInstances){if(s.flowNodeInstanceId===e&&s.flowNodeExitedAt)break;for(let[a,r]of Object.entries(s.writtenDataObjectValues||{}))t[a]=r}return t}};function ls(o){if(o.length!==0)return Math.round(o.reduce((e,t)=>e+t,0)/o.length)}function cs(o){return Math.min(...o)}function ms(o){return Math.max(...o)}var fo=class{runtimeStatsById;constructor(e,t){let s=this.setMappedRuntimes(e,t);this.runtimeStatsById=this.aggregateRuntimes(s)}getStats(e){let t=this.runtimeStatsById[e];if(t)return t;let s=Object.keys(this.runtimeStatsById)[0];return this.runtimeStatsById[s]}aggregateRuntimes(e){let t={};for(let s of e){let a=Object.values(s.instances);a.length!==0&&(t[s.id]={average:ls(a)??0,shortest:cs(a)??0,longest:ms(a)??0})}return t}setMappedRuntimes(e,t){let s=this.getFlowNodeTimes(e),a=this.getTimesFromProcessInstances(e);return s.unshift({id:t,instances:a}),s}getTimesFromProcessInstances(e){let t={};for(let s of e){let{processInstanceId:a,processStartedAt:r,processFinishedAt:n}=s.process_instance;if(a&&r&&n){let d=new Date(r).getTime(),m=new Date(n).getTime()-d;t[a]=m}}return t}getFlowNodeTimes(e){let t=new Map;e.forEach(a=>{a.process_instance.flowNodeInstances.forEach(n=>{let d=n.id,i=n.flowNodeInstanceId,m=n.flowNodeEnteredAt?new Date(n.flowNodeEnteredAt).getTime():void 0,p=n.flowNodeExitedAt?new Date(n.flowNodeExitedAt).getTime():void 0;if(!d||!i)return;t.has(d)||t.set(d,new Map);let c=t.get(d);c.has(i)||c.set(i,{});let u=c.get(i);m!==void 0&&(!u.enteredAt||m<u.enteredAt)&&(u.enteredAt=m),p!==void 0&&(!u.exitedAt||p>u.exitedAt)&&(u.exitedAt=p)})});let s=[];return t.forEach((a,r)=>{let n={};a.forEach((d,i)=>{d.enteredAt!==void 0&&d.exitedAt!==void 0&&(n[i]=d.exitedAt-d.enteredAt)}),s.push({id:r,instances:n})}),s}};import k,{useMemo as Ye}from"react";function ke(o){if(o===void 0)return"";if(o==0)return"0ms";let e=Math.floor(o/(1440*60*1e3)),t=Math.floor(o%(1440*60*1e3)/(3600*1e3)),s=Math.floor(o%(3600*1e3)/(60*1e3)),a=Math.floor(o%(60*1e3)/1e3),r=o%1e3,n=+(r%1===0?r:r.toFixed(2)),d=[];return e>0&&d.push(`${e}d`),t>0&&d.push(`${t}h`),s>0&&d.push(`${s}m`),a>0&&d.push(`${a}s`),r>0&&d.push(`${n}ms`),d.join(" ")}function us({processModel:o,processCostsService:e,runtimeService:t,heatmapService:s,heatmapType:a,setHeatmapType:r,timeRange:n,setTimeRange:d,selectedInstance:i}){let m=typeof n!="string"?n.custom.startDate:void 0,p=typeof n!="string"?n.custom.endDate:void 0,c=I=>{let N=I.target.value;d(N==="custom"?{custom:{startDate:m,endDate:p}}:N)},u=Ye(()=>{if(!(!s||!i))return s.getHeatmapInfoForId(i)},[s,i]),g=Ye(()=>{if(!(!t||!i))return t.getStats(i)},[t,i]),f=Ye(()=>{if(!(!e||!i))return e.getCostsForFlowNodeId(i)},[i,e]),l=Ye(()=>{if(e)return i?e.getInstanceCount(i)??e.getProcessInstanceCount():e.getProcessInstanceCount()},[i,e]),v=Ye(()=>{let I=o.flowNodes.find(N=>N.id===i);return I?`Flow Node: ${I.id} (${I.name})`:`Process: ${o.processModelId} (${o.processModelName})`},[i,o]),C=s?.hasCostEntry?.()??!1,V=s?.hasRuntimeEntry?.()??!1,me=s&&i?s.hasMultipleCostEntries(i):!1,y=a==="runtime"?"runtime":"processcosts",pe=s&&i?s.getActiveCostKey(i):"processcosts",Z=I=>{i&&r(I),s?.applyHeatmap(!0,I,{flowNodeId:i})};return k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-p-4 app-sdk-gap-1 app-sdk-bg-white/95 dark:app-sdk-bg-black/85 dark:app-sdk-text-white app-sdk-border app-sdk-border-solid dark:app-sdk-border-none"},k.createElement("label",null,v),k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},k.createElement("label",null,"Time Period:"),k.createElement("select",{value:typeof n=="string"?n:"custom",onChange:c},k.createElement("option",{value:"today"},"Today"),k.createElement("option",{value:"yesterday"},"Yesterday"),k.createElement("option",{value:"this_week"},"This Week"),k.createElement("option",{value:"last_7_days"},"Last 7 Days"),k.createElement("option",{value:"this_month"},"This Month"),k.createElement("option",{value:"last_30_days"},"Last 30 Days"),k.createElement("option",{value:"this_year"},"This Year"),k.createElement("option",{value:"all"},"All Instances"),k.createElement("option",{value:"custom"},"Custom")),typeof n!="string"&&k.createElement(k.Fragment,null,k.createElement("label",{className:"app-sdk-w-full app-sdk-flex app-sdk-items-center app-sdk-gap-2"},"Start Date:",k.createElement("input",{className:"app-sdk-px-2 app-sdk-flex-1 app-sdk-box-border",type:"datetime-local",value:m??"",onChange:I=>d({custom:{startDate:I.target.value||void 0,endDate:p}})})),k.createElement("label",{className:"app-sdk-w-full app-sdk-flex app-sdk-items-center app-sdk-gap-2"},"End Date:",k.createElement("input",{className:"app-sdk-px-2 app-sdk-flex-1",type:"datetime-local",value:p??"",onChange:I=>d({custom:{startDate:m,endDate:I.target.value||void 0}})})))),k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},k.createElement("span",null,"Executed Instances: ",l??0))),(V||C)&&(l??0)>0&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},V&&C?k.createElement(k.Fragment,null,k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},"Heatmap Type:"),k.createElement("select",{value:y,onChange:I=>r(I.target.value)},k.createElement("option",{value:"runtime"},"Runtimes"),k.createElement("option",{value:"processcosts"},"Costs"))):k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},"Heatmap Type: ",V?"Runtimes":"Costs")),t&&(g||u?.runtime)&&(l??0)>0&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},k.createElement("span",null,"Runtimes")),g&&k.createElement(k.Fragment,null,k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Shortest Runtime: ",ke(g.shortest)),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Longest Runtime: ",ke(g.longest)),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Average Runtime: ",ke(g.average))),u&&u.runtime&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-1"},k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Reference Value: ",ke(u.runtime.referenceRuntime)),u.runtime.status&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Status: ",u.runtime.status),u.runtime.warningThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Warning Threshold: ",ke(u.runtime.warningThreshold)," (",u.runtime.warningSource,")"),u.runtime.criticalThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Critical Threshold: ",ke(u.runtime.criticalThreshold)," (",u.runtime.criticalSource,")"))),f&&Object.entries(f).length!==0&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-gap-1"},k.createElement("label",null,"Costs"),a!=="runtime"&&me&&k.createElement("select",{value:pe,onChange:I=>Z(I.target.value)},Object.keys(f).map(I=>k.createElement("option",{key:I,value:I},I))),Object.entries(f).map(([I,N])=>{let x=u?.[I];return k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-mb-2 app-sdk-ml-2",key:I},k.createElement("p",{className:"app-sdk-text-sm"},I),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Total: ",N.total),N.errors>0&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Errors: ",N.errors),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Average Cost: ",N.average.toFixed(2)),x&&k.createElement(k.Fragment,null,k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Reference Value: ",x.referenceRuntime),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Status: ",x.status),x.warningThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Warning Threshold: ",x.warningThreshold.toFixed(2)," (",x.warningSource,")"),x.criticalThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Critical Threshold: ",x.criticalThreshold.toFixed(2)," (",x.criticalSource,")")))})))}function Fr(o){let[e,t]=te(!1),[s,a]=te(),[r,n]=te(),[d,i]=te(),[m,p]=te(!1),[c,u]=te(!1),[g,f]=te(void 0),[l,v]=te("runtime"),[C,V]=te("today"),[me,y]=te([]),pe=N=>{let{processModel:x}=o;if(!x?.processModelId||!x?.hash)return;let X=new fo(N,x.hash),h=new uo(N,x.flowNodes);if(n(X),a(h),d)d.updateHeatmapService(X,h,x);else{let b=new mo(X,h,x);i(b),b.hasRuntimeEntry()?v("runtime"):b.hasCostEntry()&&v("processcosts")}};fs(()=>{let N=new URLSearchParams(window.location.search);N.get("heatmapInspector")==="true"&&t(!0);let x=N.get("timeRange"),X="today";if(x==="custom"){let b=N.get("startDate")||void 0,$=N.get("endDate")||void 0;X={custom:{startDate:b,endDate:$}}}else x&&(X=x);V(X),f({timeRange:X}),(async()=>{if(!o.getInstancesFromDatabase||!o.processModel?.processModelId||!o.processModel?.hash)return;let b=await o.getInstancesFromDatabase(o.processModel.processModelId,o.processModel.hash,{timeRange:X});b.length>0&&(p(!0),pe(b),u(!0))})()},[o.getInstancesFromDatabase,o.processModel]),fs(()=>{if(!g?.timeRange||!o.getInstancesFromDatabase||!o.processModel?.processModelId||!o.processModel?.hash)return;(async()=>{let x=await o.getInstancesFromDatabase?.(o.processModel.processModelId,o.processModel.hash,{timeRange:g.timeRange})??[];p(x.length>0),pe(x),u(!0)})()},[g,o.getInstancesFromDatabase,o.processModel]);let Z=()=>{let N=new URLSearchParams(window.location.search);N.get("heatmapInspector")==="true"?(N.delete("heatmapInspector"),t(!1)):(N.set("heatmapInspector","true"),t(!0)),window.history.replaceState({},"",`${window.location.pathname}?${N.toString()}${window.location.hash}`)},I=N=>{V(N),f({timeRange:N});let x=new URLSearchParams(window.location.search);typeof N=="string"?(x.set("timeRange",N),x.delete("startDate"),x.delete("endDate")):(x.set("timeRange","custom"),N.custom.startDate?x.set("startDate",N.custom.startDate):x.delete("startDate"),N.custom.endDate?x.set("endDate",N.custom.endDate):x.delete("endDate")),window.history.replaceState({},"",`${window.location.pathname}?${x.toString()}`)};return ie.createElement("div",{className:"app-sdk-relative app-sdk-w-full app-sdk-h-full"},c&&ie.createElement(ie.Fragment,null,ie.createElement(ao,null,ie.createElement(ro,{isOpen:e,open:Z,close:Z})),ie.createElement(Ir,{show:e},ie.createElement("div",{className:"app-sdk-transition app-sdk-duration-200 data-[closed]:app-sdk-opacity-0 app-sdk-w-1/4 app-sdk-min-w-64 app-sdk-absolute app-sdk-top-0 app-sdk-right-0 app-sdk-z-40 app-sdk-pt-2 app-sdk-pr-2"},ie.createElement(us,{processModel:o.processModel,processCostsService:s,runtimeService:r,heatmapService:d,heatmapType:l,setHeatmapType:v,timeRange:C,setTimeRange:I,selectedInstance:me[0]}))),ie.createElement(Te,{xml:o.processModel?.xml,processModel:o.processModel,heatmapService:d,showHeatmap:m,heatmapType:l,setSelectedElementIds:y})))}var mm=Cr(()=>Promise.resolve(Fr),{ssr:!1});export{yo as BPMNViewer,Hr as BPMNViewerNextJS,Lo as BooleanFormField,Vt as BpmnViewerComponent,Vo as CheckboxFormField,Uo as ColorFormField,_o as ConfirmFormField,Ao as CustomFormField,$o as DateFormField,Ho as DatetimeLocalFormField,zo as DecimalFormField,Te as DiagramDocumentationInspector,ln as DiagramDocumentationInspectorNextJS,bo as DocumentationViewer,hn as DropdownMenu,gn as DropdownMenuItem,Nn as DynamicLink,hl as DynamicUi,Ht as DynamicUiComponent,Ro as EmailFormField,jo as EnumFormField,Go as FileFormField,Bo as FlowNode,_t as FormFieldComponentMap,Jo as HeaderFormField,Wo as HiddenFormField,qo as IntegerFormField,Xo as MonthFormField,Qo as ParagraphFormField,et as PasswordFormField,Nr as ProcessInstanceInspector,Gc as ProcessInstanceInspectorNextJS,mm as ProcessModelInspectorNextJS,ot as RadioFormField,tt as RangeFormField,st as SelectFormField,eo as SplitterLayout,at as StringFormField,rt as TelFormField,Re as TextareaFormField,nt as TimeFormField,dt as UrlFormField,it as WeekFormField};
|
|
26
|
+
${r==="end"?"app-sdk-fixed app-sdk-top-1/2 app-sdk-left-1/2 app-sdk--translate-x-1/2 app-sdk--translate-y-1/2 app-sdk-w-4/5 app-sdk-h-[70vh] app-sdk-bg-white/10 app-sdk-backdrop-blur-xl app-sdk-rounded-xl app-sdk-shadow-2xl app-sdk-z-50 app-sdk-p-6":""}`},D.createElement("div",{className:"app-sdk-flex app-sdk-items-center app-sdk-justify-between"},D.createElement("label",{className:"app-sdk-text-white app-sdk-font-medium"},"End Token"),D.createElement("button",{className:"app-sdk-text-white hover:app-sdk-text-gray-300 app-sdk-w-6 app-sdk-h-6",onClick:()=>d("end"),title:r==="end"?"Minimize":"Maximize"},r==="end"?D.createElement(ts,{className:"app-sdk-w-6 app-sdk-h-6"}):D.createElement(ss,{className:"app-sdk-w-6 app-sdk-h-6"}))),D.createElement(as,{height:r==="end"?"60vh":"7rem",defaultLanguage:"json",value:m,options:{lineNumbersMinChars:2,readOnly:!0,minimap:{enabled:!1}}})))))}import Xe,{useEffect as ur,useState as fr}from"react";function ro(o){let[e,t]=fr(o.isOpen??!1);return ur(()=>{t(o.isOpen??!1)},[o.isOpen]),Xe.createElement(ce,{disabled:o.disabled,title:"View Process Tokens",onClick:()=>{e?o.close():o.open(),t(s=>!s)}},e?Xe.createElement("svg",{className:"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",xmlns:"http://www.w3.org/2000/svg",width:"1.25rem",height:"1.25rem",viewBox:"0 0 384 512"},Xe.createElement("path",{d:"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"})):Xe.createElement("svg",{className:"dark:!app-sdk-stroke-app-sdk-gray-50 dark:!app-sdk-fill-app-sdk-gray-50",xmlns:"http://www.w3.org/2000/svg",width:"1.25rem",height:"1.25rem",viewBox:"0 0 448 512"},Xe.createElement("path",{d:"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"})))}var is=[co.error,co.terminated],yr=[oe.manualTask,oe.userTask,oe.untypedTask],ps=[oe.endEvent,oe.intermediateThrowEvent,oe.sendTask],br=[oe.startEvent,oe.intermediateCatchEvent,oe.boundaryEvent,oe.receiveTask],po={isOpen:!1,placeholder:"",entries:[],onConfirm:()=>{},onClose:()=>{}},xr={isOpen:!1},lo="asdk-buttons";function Nr(o){let{processInstanceId:e}=o,[t,s]=de(po),[a,r]=de(xr),[n,d]=de(!1),[i,m]=de(),[p,c]=de([]),[u,g]=de([]),[f,l]=de(new Map),[v,C]=de([]),[V,me]=de([]),y=wr(null),pe=no(async()=>{let h=await import("./actions-5QSQV4KN.mjs"),b=h.getProcessInstance(e),$=h.getFlowNodeInstances(e),[F,H]=await Promise.all([b,$]),T=await h.getTriggeredFlowNodeInstances(H.map(E=>E.flowNodeInstanceId));m(F),c(H),g(T);let L=new URLSearchParams(window.location.search);L.get("tokenInspector")==="true"&&d(!0);let Q=L.getAll("instance"),se=H.filter(E=>Q.includes(E.flowNodeInstanceId));se.length!==Q.length&&(L.delete("instance"),se.forEach(E=>L.append("instance",E.flowNodeInstanceId)),window.history.replaceState({},"",`${window.location.pathname}?${L.toString()}`));let J=new Map;H.forEach(E=>{J.has(E.flowNodeId)||J.set(E.flowNodeId,E.flowNodeInstanceId)}),se.forEach(E=>J.set(E.flowNodeId,E.flowNodeInstanceId)),l(J)},[e]),Z=no(h=>{let b=hr(h),$=p.some(H=>H.flowNodeId===b.targetRef.id),F=p.some(H=>H.flowNodeId===b.sourceRef.id&&H.state===ds.finished);return $&&F},[p]),I=no(async()=>{let h=y.current?.bpmnViewerRef,b=h?.getOverlays();if(!h||!b)return;let $=await import("./actions-5QSQV4KN.mjs"),F=$.getProcessInstance(e),H=$.getFlowNodeInstances(e),[T,L]=await Promise.all([F,H]),xe=await $.getTriggeredFlowNodeInstances(L.map(U=>U.flowNodeInstanceId));if(yt(T,i)&&yt(L,p)&&yt(xe,u))return;T.state!==i?.state&&b.clear();for(let[U,Ke]of f.entries()){let Ne=p.find(z=>z.flowNodeInstanceId===Ke);if(!Ne)continue;let Ze=L.find(z=>z.flowNodeId===U);Ze?.flowNodeInstanceId===Ke&&Ne.state===Ze.state||(h.removeMarker(U,`asdk-pii-flow-node-instance-state--${Ne.state}`),b.remove({element:U,type:lo}))}m(T),c(L),g(xe);let Q=new URLSearchParams(window.location.search),se=Q.getAll("instance"),J=L.filter(U=>se.includes(U.flowNodeInstanceId));J.length!==se.length&&(Q.delete("instance"),J.forEach(U=>Q.append("instance",U.flowNodeInstanceId)),window.history.replaceState({},"",`${window.location.pathname}?${Q.toString()}`));let E=new Map;L.forEach(U=>{E.has(U.flowNodeId)||E.set(U.flowNodeId,U.flowNodeInstanceId)}),J.forEach(U=>E.set(U.flowNodeId,U.flowNodeInstanceId)),l(E)},[y.current,i,f,p,e]),N=no((h,b)=>{let $=y.current?.bpmnViewerRef,F=$?.getOverlays();if(!$||!F)return;let H=F.get({element:h.id,type:lo});if(Array.isArray(H)&&H.length>0)return;let T=b.find(z=>z.flowNodeInstanceId===f.get(z.flowNodeId));if(!T)return;let L=o.showFlowNodeExecutionCount&&b.length>1,xe=o.showFlowNodeInstancesListButton&&b.length>1,Q=o.showFinishTaskButton&&yr.includes(h.type)&&T.state===ds.suspended,se=o.showRetryFlowNodeInstanceButton&&i&&is.includes(i.state),J=!1,E=[];if(o.showGoToFlowNodeButton&&br.includes(h.type)){let z=T.triggeredByFlowNodeInstance;J=z!==void 0,E=z?[z]:[]}else if(o.showGoToFlowNodeButton&&ps.includes(h.type)){let z=u.filter(R=>R.triggeredByFlowNodeInstance?.flowNodeInstanceId===T.flowNodeInstanceId);J=z.length>0,E=z}if(!L&&!Q&&!se&&!J)return;let U=h.width<52,Ke=F.add(h.id,lo,{position:{bottom:-7,left:U?-h.width/2:0},html:"<div></div>"}),Ne=F.get(Ke),Ze=vr(Ne.htmlContainer),ko=b.indexOf(T)===0,ho=b.length-b.indexOf(T);Ze.render(O.createElement(jt,{width:U?h.width*2:h.width},L&&O.createElement(ee,{className:"app-sdk-select-none !app-sdk-cursor-default !app-sdk-bg-slate-500",title:`Flow Node was executed ${b.length} times.${ko?"":` You are viewing instance #${ho}.`}`},`${ko?"":`${ho}/`}${b.length}`),xe&&O.createElement(Jt,{onClick:()=>{let z=b.map(W=>({id:W.flowNodeInstanceId,name:`${W.startedAt?.toLocaleString("en-GB")} - ${W.flowNodeInstanceId} - ${W.state}${W.flowNodeInstanceId===T.flowNodeInstanceId?" (selected)":""}`,...W}));s({isOpen:!0,placeholder:"Select instance to display:",entries:z,onConfirm:async W=>{let go=b.find(wo=>wo.flowNodeInstanceId===W.flowNodeInstanceId);if(!go)return;$.removeMarker(T.flowNodeId,`asdk-pii-flow-node-instance-state--${T.state}`),F.remove({element:h.id,type:lo});let Qe=new URLSearchParams(window.location.search);Qe.getAll("instance").includes(T.flowNodeInstanceId)&&Qe.delete("instance",T.flowNodeInstanceId),b.indexOf(go)!==0&&Qe.append("instance",go.flowNodeInstanceId),window.history.replaceState({},"",`${window.location.pathname}?${Qe.toString()}${window.location.hash}`),l(wo=>new Map(wo).set(h.id,W.flowNodeInstanceId)),s(po)},onClose:()=>s(po)})}}),J&&O.createElement(Gt,{isSender:ps.includes(h.type),onClick:()=>{if(E.length===1){let R=new URLSearchParams;R.append("selected",E[0].flowNodeId),R.append("instance",E[0].flowNodeInstanceId),window.location.href=`${E[0].processInstanceId}?${R.toString()}`;return}let z=E.map(R=>({id:R.flowNodeInstanceId,name:`${R.startedAt?.toLocaleString("en-GB")} - ${R.flowNodeId}${R.flowNodeName?` - ${R.flowNodeName}`:""}`,...R}));s({isOpen:!0,placeholder:"Select target to go to:",entries:z,onConfirm:R=>{let W=new URLSearchParams;W.append("selected",R.flowNodeId),W.append("instance",R.flowNodeInstanceId),window.location.href=`${R.processInstanceId}?${W.toString()}`},onClose:()=>s(po)})}}),Q&&O.createElement(Wt,{flowNodeId:T.flowNodeId,flowNodeInstanceId:T.flowNodeInstanceId,flowNodeType:h.type,processInstanceId:T.processInstanceId,onPlay:o.onFinish}),se&&O.createElement(Kt,{onClick:()=>{r({isOpen:!0,flowNodeInstance:T})}})))},[y.current,i,p,u,f]);if(io(()=>{pe()},[e]),io(()=>{if(i?.state===co.finished){I();return}let h=setInterval(I,1e3);return()=>clearInterval(h)},[I,i?.state]),io(()=>{if(v.length===0||p.length===0){me([]);return}let h=p.filter(b=>{let $=v.includes(b.flowNodeId),F=f.get(b.flowNodeId)===b.flowNodeInstanceId;return $&&F});if(h.length===0){let b=new URLSearchParams(window.location.search);b.delete("tokenInspectorFocus"),window.history.replaceState({},"",`${window.location.pathname}?${b.toString()}${window.location.hash}`)}me(h)},[p,v,f]),io(()=>{if(!i?.xml)return;let h=y.current?.bpmnViewerRef,b=h?.getElementRegistry();!h||!b||h.onImportDone(()=>{let $=new Set(p.map(F=>F.flowNodeId));b.forEach(F=>{if(F.type==="bpmn:SequenceFlow"){Z(F)?h.addMarker(F.id,"asdk-pii-sequence-flow-finished"):h.hasMarker(F.id,"asdk-pii-sequence-flow-finished")&&h.removeMarker(F.id,"asdk-pii-sequence-flow-finished");return}if(!$.has(F.id))return;let H=p.filter(L=>L.flowNodeId===F.id),T=H.find(L=>L.flowNodeInstanceId===f.get(L.flowNodeId));T&&(h.hasMarker(F.id,"asdk-pii-flow-node-instance-state")||h.addMarker(F.id,"asdk-pii-flow-node-instance-state"),h.hasMarker(F.id,`asdk-pii-flow-node-instance-state--${T.state}`)||h.addMarker(F.id,`asdk-pii-flow-node-instance-state--${T.state}`),N(F,H))})})},[y.current,i,p,u,f]),!i?.xml)return o.loadingComponent?o.loadingComponent:O.createElement("div",{className:"app-sdk-absolute app-sdk-w-screen app-sdk-h-screen app-sdk-flex"},O.createElement("div",{className:"app-sdk-m-auto"},"Fetching diagram..."));let x=o.showProcessRefreshButton||o.showProcessRetryButton||o.showProcessTerminateButton||o.showTokenInspectorButton,X=o.showTokenInspectorButton&&(o.showProcessRefreshButton||o.showProcessRetryButton||o.showProcessTerminateButton);return O.createElement("div",{className:"app-sdk-relative app-sdk-w-full app-sdk-h-full"},O.createElement(Rt,{...t}),(o.showRetryFlowNodeInstanceButton||o.showProcessRetryButton)&&O.createElement(Qt,{...a,processInstance:i,onClose:()=>r(h=>({...h,isOpen:!1}))}),x&&O.createElement(ao,null,o.showProcessRefreshButton&&O.createElement(Yt,{onClick:I}),o.showProcessRetryButton&&O.createElement(es,{onClick:()=>r({isOpen:!0}),disabled:!is.includes(i.state)}),o.showProcessTerminateButton&&O.createElement(os,{processInstanceId:e,disabled:i.state!==co.running}),X&&O.createElement(qt,null),o.showTokenInspectorButton&&O.createElement(ro,{isOpen:n,open:()=>{let h=new URLSearchParams(window.location.search);h.set("tokenInspector","true"),window.history.replaceState({},"",`${window.location.pathname}?${h.toString()}${window.location.hash}`),d(!0)},close:()=>{let h=new URLSearchParams(window.location.search);h.delete("tokenInspector"),window.history.replaceState({},"",`${window.location.pathname}?${h.toString()}${window.location.hash}`),d(!1)}})),O.createElement(kr,{show:n},O.createElement("div",{className:"app-sdk-transition app-sdk-duration-200 data-[closed]:app-sdk-opacity-0 app-sdk-w-1/4 app-sdk-min-w-64 app-sdk-absolute app-sdk-top-0 app-sdk-right-0 app-sdk-z-40 app-sdk-pt-2 app-sdk-pr-2"},O.createElement(ns,{processInstance:i,flowNodeInstances:V,close:()=>{let h=new URLSearchParams(window.location.search);h.delete("tokenInspector"),window.history.replaceState({},"",`${window.location.pathname}?${h.toString()}${window.location.hash}`),d(!1)}}))),O.createElement(Te,{xml:i.xml,ref:y,setSelectedElementIds:C}))}var Gc=gr(()=>Promise.resolve(Nr),{ssr:!1});import{Transition as Ir}from"@headlessui/react";import Cr from"next/dynamic";import ie,{useEffect as fs,useState as te}from"react";function be(o){if(!o)return;let e=parseFloat(o);if(!isNaN(e))return e/100}var mo=class{nodeInfoMap={};heatmapInfo={};runtimeService;processCostsService;bpmnViewer;activeCostKeyPerNode={};constructor(e,t,s){this.runtimeService=e,this.processCostsService=t,this.computeRuntimeHeatmap(s),this.computeCostHeatmap(s)}updateHeatmapService(e,t,s){this.runtimeService=e,this.processCostsService=t,this.computeRuntimeHeatmap(s),this.computeCostHeatmap(s)}getHeatmapInfoForId(e){return this.heatmapInfo[e]}hasRuntimeEntry(){return Object.values(this.heatmapInfo).some(e=>"runtime"in e)}hasCostEntry(){return Object.values(this.heatmapInfo).some(e=>Object.keys(e).some(t=>!t.startsWith("runtime")))}getActiveCostKey(e){return this.activeCostKeyPerNode[e]}hasMultipleCostEntries(e){let t=this.heatmapInfo[e];return t?Object.keys(t).filter(a=>!a.startsWith("runtime")).length>=2:!1}applyHeatmap(e,t,s){let a=s.viewer,r=s.flowNodeId;if(!a&&!r)return;if(!e&&a){a.clearHeatmap(Object.keys(this.heatmapInfo));return}if(!this.bpmnViewer&&a&&(this.bpmnViewer=a),!a&&r){let i=this.heatmapInfo[r]?.[t]?.status;if(!i)return;this.activeCostKeyPerNode[r]=t,this.bpmnViewer?.showHeatmap({[r]:i});return}if(!a)return;let n={},d={};for(let[i,m]of Object.entries(this.nodeInfoMap))n[i]=m.status;for(let[i,m]of Object.entries(this.heatmapInfo)){let p=this.activeCostKeyPerNode?.[i];if(p&&m[p]?.status){d[i]=m[p].status;continue}for(let[c,u]of Object.entries(m))if(!c.startsWith("runtime")&&u?.status){d[i]=u.status,this.activeCostKeyPerNode=this.activeCostKeyPerNode,this.activeCostKeyPerNode[i]=c;break}}t==="runtime"?(a.clearHeatmap(Object.keys(d)),a.showHeatmap(n)):(a.clearHeatmap(Object.keys(n)),a.showHeatmap(d))}computeCostHeatmap(e){let t=this.processCostsService.getAllProcessCosts?.();if(t)for(let[s,a]of Object.entries(t))for(let[r,n]of Object.entries(a)){let d=n.average;if(d===void 0)continue;let i=n.critical??be(e.customProperties["pilot.setProcessCosts.critical"]),m=n.warning??be(e.customProperties["pilot.setProcessCosts.warning"]),p=n.reference;if(!p)continue;let c=m?p*m:void 0,u=i?p*i:void 0;if(c&&u&&u<c)continue;let g="Stable";u!==void 0&&d>=u?g="Critical":c!==void 0&&(u===void 0||c<u)&&d>=c&&(g="Warning");let f={status:g,referenceRuntime:p,warningThreshold:c,criticalThreshold:u,warningSource:this.getHeatmapSource(n.warning,e.customProperties["pilot.setProcessCosts.warning"]),criticalSource:this.getHeatmapSource(n.critical,e.customProperties["pilot.setProcessCosts.critical"])};this.heatmapInfo[s]||(this.heatmapInfo[s]={}),this.heatmapInfo[s][r]=f}}computeRuntimeHeatmap(e){let t=be(e.customProperties["pilot.setRuntime.warning"]),s=be(e.customProperties["pilot.setRuntime.critical"]);e.flowNodes.forEach(a=>{let n=this.runtimeService.getStats(a.id)?.average,d=a.customProperties["pilot.setRuntime.reference"],i=d?Number(d):void 0;if(!i||isNaN(i))return;let m=be(a.customProperties["pilot.setRuntime.warning"]),p=be(a.customProperties["pilot.setRuntime.critical"]),c=m??t,u=p??s,g=c?i*c:void 0,f=u?i*u:void 0;if(f&&g&&f<g)return;let l={referenceRuntime:i,warningThreshold:g,criticalThreshold:f,warningSource:this.getHeatmapSource(m,t),criticalSource:this.getHeatmapSource(p,s)};if(n!==void 0&&(f||g)){let v="Stable";f!==void 0&&n>=f?v="Critical":g!==void 0&&(f===void 0||g<f)&&n>=g&&(v="Warning"),l.status=v,this.nodeInfoMap[a.id]=l}this.heatmapInfo[a.id]={runtime:l}})}getHeatmapSource(e,t){return e!==void 0?"Flow Node":t!==void 0?"Process":void 0}};var uo=class{flowNodeInstances;processCostsExpressionParams;instances;costResultsByFlowNodeId={};instanceCounter={};thresholdsByFlowNodeId={};constructor(e,t){this.instances=e,this.flowNodeInstances=e.flatMap(s=>s.process_instance.flowNodeInstances||[]),this.processCostsExpressionParams={correlationMetadata:{},processInstanceMetadata:{}},this.precalculateCosts(t)}getInstanceCount(e){return this.instanceCounter[e]}getCostsForFlowNodeId(e){return this.costResultsByFlowNodeId[e]}getAllProcessCosts(){return this.costResultsByFlowNodeId}getFlowNodeExecutionCount(e,t){let s=0;for(let a of this.flowNodeInstances)if(a.id===e&&a.flowNodeExitedAt&&(s++,a.flowNodeInstanceId===t))break;return s}getProcessInstanceCount(){return this.instances.length}splitCostProperties(e){let t={},s={};for(let[a,r]of Object.entries(e)){let n=a.match(/^pilot\.setProcessCosts\.([^.]+)\.(formula|reference|warning|critical)$/);if(n){let d=n[1],i=n[2];if(i==="formula")t[d]=r;else{let m=parseFloat(r);s[d]||(s[d]={}),isNaN(m)||(i==="reference"?s[d].reference=m:s[d][i]=m/100)}}}return{costExpressions:t,thresholds:s}}precalculateCosts(e){for(let t of e){let s=t.id,{costExpressions:a,thresholds:r}=this.splitCostProperties(t.customProperties);Object.keys(r).length>0&&(this.thresholdsByFlowNodeId[s]=r);let n=0;for(let d of this.flowNodeInstances)if(s===d.id&&d.flowNodeExitedAt){n+=1,this.setProcessCostExpressionParamsForInstance(d);let i=this.getProcessCosts(a);if(Object.keys(i).length===0)continue;this.costResultsByFlowNodeId[s]||(this.costResultsByFlowNodeId[s]={});for(let[m,p]of Object.entries(i)){let c=parseFloat(p),u=r[m]??this.thresholdsByFlowNodeId[s]?.[m]??{},g=this.costResultsByFlowNodeId[s][m]??{total:0,errors:0,average:0,count:0,...u};isNaN(c)?g.errors+=1:g.total+=c,this.costResultsByFlowNodeId[s][m]=g}}this.instanceCounter[s]=n}for(let t in this.costResultsByFlowNodeId)for(let s in this.costResultsByFlowNodeId[t]){let a=this.costResultsByFlowNodeId[t][s],r=this.instanceCounter[t],n=r>0?a.total/(r-a.errors):0;a.average=isNaN(n)?0:n}}getProcessCosts(e){let t={};for(let[s,a]of Object.entries(e)){if(!a)continue;let r=!1,n=a.replace(/\$\{(.+?)\}/g,(d,i)=>{let m=i.split(".").reduce((p,c)=>p&&p[c],this.processCostsExpressionParams);return m===void 0||isNaN(m)?(r=!0,"invalid"):m.toString()});if(r||n.includes("$")||n.includes("{")||n.includes("}")){t[s]="{ Error: Invalid expression. }";continue}try{let d=new Function("Math",`return ${n}`)(Math);t[s]=d.toString()}catch{t[s]="{ Error: Invalid expression. }"}}return t}setProcessCostExpressionParamsForInstance(e){this.processCostsExpressionParams.currentFlowNode=this.getCurrentFlowNode(e.flowNodeInstanceId),this.processCostsExpressionParams.token=this.buildTokenHistoryForFlowNodeInstance(e.flowNodeInstanceId),this.processCostsExpressionParams.dataObjects=this.buildDataObjectsForFlowNodeInstance(e.flowNodeInstanceId),this.processCostsExpressionParams.flowNodeExecutionCount=this.getFlowNodeExecutionCount(e.id,e.flowNodeInstanceId)}getCurrentFlowNode(e){return this.flowNodeInstances.find(t=>t.flowNodeInstanceId===e)}buildTokenHistoryForFlowNodeInstance(e){let t=this.flowNodeInstances.findIndex(r=>r.flowNodeInstanceId===e&&r.flowNodeExitedAt);if(t===-1)return{current:{},history:{}};let s=this.flowNodeInstances[t]?.endToken??{},a={};for(let r=0;r<t;r++){let n=this.flowNodeInstances[r];n.endToken&&(a[n.id]=n.endToken)}return{current:s,history:a}}buildDataObjectsForFlowNodeInstance(e){let t={};for(let s of this.flowNodeInstances){if(s.flowNodeInstanceId===e&&s.flowNodeExitedAt)break;for(let[a,r]of Object.entries(s.writtenDataObjectValues||{}))t[a]=r}return t}};function ls(o){if(o.length!==0)return Math.round(o.reduce((e,t)=>e+t,0)/o.length)}function cs(o){return Math.min(...o)}function ms(o){return Math.max(...o)}var fo=class{runtimeStatsById;constructor(e,t){let s=this.setMappedRuntimes(e,t);this.runtimeStatsById=this.aggregateRuntimes(s)}getStats(e){let t=this.runtimeStatsById[e];if(t)return t;let s=Object.keys(this.runtimeStatsById)[0];return this.runtimeStatsById[s]}aggregateRuntimes(e){let t={};for(let s of e){let a=Object.values(s.instances);a.length!==0&&(t[s.id]={average:ls(a)??0,shortest:cs(a)??0,longest:ms(a)??0})}return t}setMappedRuntimes(e,t){let s=this.getFlowNodeTimes(e),a=this.getTimesFromProcessInstances(e);return s.unshift({id:t,instances:a}),s}getTimesFromProcessInstances(e){let t={};for(let s of e){let{processInstanceId:a,processStartedAt:r,processFinishedAt:n}=s.process_instance;if(a&&r&&n){let d=new Date(r).getTime(),m=new Date(n).getTime()-d;t[a]=m}}return t}getFlowNodeTimes(e){let t=new Map;e.forEach(a=>{a.process_instance.flowNodeInstances.forEach(n=>{let d=n.id,i=n.flowNodeInstanceId,m=n.flowNodeEnteredAt?new Date(n.flowNodeEnteredAt).getTime():void 0,p=n.flowNodeExitedAt?new Date(n.flowNodeExitedAt).getTime():void 0;if(!d||!i)return;t.has(d)||t.set(d,new Map);let c=t.get(d);c.has(i)||c.set(i,{});let u=c.get(i);m!==void 0&&(!u.enteredAt||m<u.enteredAt)&&(u.enteredAt=m),p!==void 0&&(!u.exitedAt||p>u.exitedAt)&&(u.exitedAt=p)})});let s=[];return t.forEach((a,r)=>{let n={};a.forEach((d,i)=>{d.enteredAt!==void 0&&d.exitedAt!==void 0&&(n[i]=d.exitedAt-d.enteredAt)}),s.push({id:r,instances:n})}),s}};import k,{useMemo as Ye}from"react";function ke(o){if(o===void 0)return"";if(o==0)return"0ms";let e=Math.floor(o/(1440*60*1e3)),t=Math.floor(o%(1440*60*1e3)/(3600*1e3)),s=Math.floor(o%(3600*1e3)/(60*1e3)),a=Math.floor(o%(60*1e3)/1e3),r=o%1e3,n=+(r%1===0?r:r.toFixed(2)),d=[];return e>0&&d.push(`${e}d`),t>0&&d.push(`${t}h`),s>0&&d.push(`${s}m`),a>0&&d.push(`${a}s`),r>0&&d.push(`${n}ms`),d.join(" ")}function us({processModel:o,processCostsService:e,runtimeService:t,heatmapService:s,heatmapType:a,setHeatmapType:r,timeRange:n,setTimeRange:d,selectedInstance:i}){let m=typeof n!="string"?n.custom.startDate:void 0,p=typeof n!="string"?n.custom.endDate:void 0,c=I=>{let N=I.target.value;d(N==="custom"?{custom:{startDate:m,endDate:p}}:N)},u=Ye(()=>{if(!(!s||!i))return s.getHeatmapInfoForId(i)},[s,i]),g=Ye(()=>{if(!(!t||!i))return t.getStats(i)},[t,i]),f=Ye(()=>{if(!(!e||!i))return e.getCostsForFlowNodeId(i)},[i,e]),l=Ye(()=>{if(e)return i?e.getInstanceCount(i)??e.getProcessInstanceCount():e.getProcessInstanceCount()},[i,e]),v=Ye(()=>{let I=o.flowNodes.find(N=>N.id===i);return I?`Flow Node: ${I.id} (${I.name})`:`Process: ${o.processModelId} (${o.processModelName})`},[i,o]),C=s?.hasCostEntry?.()??!1,V=s?.hasRuntimeEntry?.()??!1,me=s&&i?s.hasMultipleCostEntries(i):!1,y=a==="runtime"?"runtime":"processcosts",pe=s&&i?s.getActiveCostKey(i):"processcosts",Z=I=>{i&&r(I),s?.applyHeatmap(!0,I,{flowNodeId:i})};return k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-p-4 app-sdk-gap-1 app-sdk-bg-white/95 dark:app-sdk-bg-black/85 dark:app-sdk-text-white app-sdk-border app-sdk-border-solid dark:app-sdk-border-none"},k.createElement("label",null,v),k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},k.createElement("label",null,"Time Period:"),k.createElement("select",{value:typeof n=="string"?n:"custom",onChange:c},k.createElement("option",{value:"today"},"Today"),k.createElement("option",{value:"yesterday"},"Yesterday"),k.createElement("option",{value:"this_week"},"This Week"),k.createElement("option",{value:"last_7_days"},"Last 7 Days"),k.createElement("option",{value:"this_month"},"This Month"),k.createElement("option",{value:"last_30_days"},"Last 30 Days"),k.createElement("option",{value:"this_year"},"This Year"),k.createElement("option",{value:"all"},"All Instances"),k.createElement("option",{value:"custom"},"Custom")),typeof n!="string"&&k.createElement(k.Fragment,null,k.createElement("label",{className:"app-sdk-w-full app-sdk-flex app-sdk-items-center app-sdk-gap-2"},"Start Date:",k.createElement("input",{className:"app-sdk-px-2 app-sdk-flex-1 app-sdk-box-border",type:"datetime-local",value:m??"",onChange:I=>d({custom:{startDate:I.target.value||void 0,endDate:p}})})),k.createElement("label",{className:"app-sdk-w-full app-sdk-flex app-sdk-items-center app-sdk-gap-2"},"End Date:",k.createElement("input",{className:"app-sdk-px-2 app-sdk-flex-1",type:"datetime-local",value:p??"",onChange:I=>d({custom:{startDate:m,endDate:I.target.value||void 0}})})))),k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},k.createElement("span",null,"Executed Instances: ",l??0))),(V||C)&&(l??0)>0&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},V&&C?k.createElement(k.Fragment,null,k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},"Heatmap Type:"),k.createElement("select",{value:y,onChange:I=>r(I.target.value)},k.createElement("option",{value:"runtime"},"Runtimes"),k.createElement("option",{value:"processcosts"},"Costs"))):k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},"Heatmap Type: ",V?"Runtimes":"Costs")),t&&(g||u?.runtime)&&(l??0)>0&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-pb-3 app-sdk-gap-1"},k.createElement("label",{className:"app-sdk-flex app-sdk-items-center app-sdk-gap-2 app-sdk-text-sm"},k.createElement("span",null,"Runtimes")),g&&k.createElement(k.Fragment,null,k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Shortest Runtime: ",ke(g.shortest)),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Longest Runtime: ",ke(g.longest)),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Average Runtime: ",ke(g.average))),u&&u.runtime&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-gap-1"},k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Reference Value: ",ke(u.runtime.referenceRuntime)),u.runtime.status&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Status: ",u.runtime.status),u.runtime.warningThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Warning Threshold: ",ke(u.runtime.warningThreshold)," (",u.runtime.warningSource,")"),u.runtime.criticalThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Critical Threshold: ",ke(u.runtime.criticalThreshold)," (",u.runtime.criticalSource,")"))),f&&Object.entries(f).length!==0&&k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-h-full app-sdk-rounded-3xl app-sdk-gap-1"},k.createElement("label",null,"Costs"),a!=="runtime"&&me&&k.createElement("select",{value:pe,onChange:I=>Z(I.target.value)},Object.keys(f).map(I=>k.createElement("option",{key:I,value:I},I))),Object.entries(f).map(([I,N])=>{let x=u?.[I];return k.createElement("div",{className:"app-sdk-flex app-sdk-flex-col app-sdk-mb-2 app-sdk-ml-2",key:I},k.createElement("p",{className:"app-sdk-text-sm"},I),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Total: ",N.total),N.errors>0&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Errors: ",N.errors),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Average Cost: ",N.average.toFixed(2)),x&&k.createElement(k.Fragment,null,k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Reference Value: ",x.referenceRuntime),k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Status: ",x.status),x.warningThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Warning Threshold: ",x.warningThreshold.toFixed(2)," (",x.warningSource,")"),x.criticalThreshold&&k.createElement("p",{className:"app-sdk-ml-2 app-sdk-text-sm"},"Critical Threshold: ",x.criticalThreshold.toFixed(2)," (",x.criticalSource,")")))})))}function Fr(o){let[e,t]=te(!1),[s,a]=te(),[r,n]=te(),[d,i]=te(),[m,p]=te(!1),[c,u]=te(!1),[g,f]=te(void 0),[l,v]=te("runtime"),[C,V]=te("today"),[me,y]=te([]),pe=N=>{let{processModel:x}=o;if(!x?.processModelId||!x?.hash)return;let X=new fo(N,x.hash),h=new uo(N,x.flowNodes);if(n(X),a(h),d)d.updateHeatmapService(X,h,x);else{let b=new mo(X,h,x);i(b),b.hasRuntimeEntry()?v("runtime"):b.hasCostEntry()&&v("processcosts")}};fs(()=>{let N=new URLSearchParams(window.location.search);N.get("heatmapInspector")==="true"&&t(!0);let x=N.get("timeRange"),X="today";if(x==="custom"){let b=N.get("startDate")||void 0,$=N.get("endDate")||void 0;X={custom:{startDate:b,endDate:$}}}else x&&(X=x);V(X),f({timeRange:X}),(async()=>{if(!o.getInstancesFromDatabase||!o.processModel?.processModelId||!o.processModel?.hash)return;let b=await o.getInstancesFromDatabase(o.processModel.processModelId,o.processModel.hash,{timeRange:X});b.length>0&&(p(!0),pe(b),u(!0))})()},[o.getInstancesFromDatabase,o.processModel]),fs(()=>{if(!g?.timeRange||!o.getInstancesFromDatabase||!o.processModel?.processModelId||!o.processModel?.hash)return;(async()=>{let x=await o.getInstancesFromDatabase?.(o.processModel.processModelId,o.processModel.hash,{timeRange:g.timeRange})??[];p(x.length>0),pe(x),u(!0)})()},[g,o.getInstancesFromDatabase,o.processModel]);let Z=()=>{let N=new URLSearchParams(window.location.search);N.get("heatmapInspector")==="true"?(N.delete("heatmapInspector"),t(!1)):(N.set("heatmapInspector","true"),t(!0)),window.history.replaceState({},"",`${window.location.pathname}?${N.toString()}${window.location.hash}`)},I=N=>{V(N),f({timeRange:N});let x=new URLSearchParams(window.location.search);typeof N=="string"?(x.set("timeRange",N),x.delete("startDate"),x.delete("endDate")):(x.set("timeRange","custom"),N.custom.startDate?x.set("startDate",N.custom.startDate):x.delete("startDate"),N.custom.endDate?x.set("endDate",N.custom.endDate):x.delete("endDate")),window.history.replaceState({},"",`${window.location.pathname}?${x.toString()}`)};return ie.createElement("div",{className:"app-sdk-relative app-sdk-w-full app-sdk-h-full"},c&&ie.createElement(ie.Fragment,null,ie.createElement(ao,null,ie.createElement(ro,{isOpen:e,open:Z,close:Z})),ie.createElement(Ir,{show:e},ie.createElement("div",{className:"app-sdk-transition app-sdk-duration-200 data-[closed]:app-sdk-opacity-0 app-sdk-w-1/4 app-sdk-min-w-64 app-sdk-absolute app-sdk-top-0 app-sdk-right-0 app-sdk-z-40 app-sdk-pt-2 app-sdk-pr-2"},ie.createElement(us,{processModel:o.processModel,processCostsService:s,runtimeService:r,heatmapService:d,heatmapType:l,setHeatmapType:v,timeRange:C,setTimeRange:I,selectedInstance:me[0]}))),ie.createElement(Te,{xml:o.processModel?.xml,processModel:o.processModel,heatmapService:d,showHeatmap:m,heatmapType:l,setSelectedElementIds:y})))}var mm=Cr(()=>Promise.resolve(Fr),{ssr:!1});export{yo as BPMNViewer,Hr as BPMNViewerNextJS,Lo as BooleanFormField,Vt as BpmnViewerComponent,Vo as CheckboxFormField,Uo as ColorFormField,_o as ConfirmFormField,Ao as CustomFormField,$o as DateFormField,Ho as DatetimeLocalFormField,zo as DecimalFormField,Te as DiagramDocumentationInspector,ln as DiagramDocumentationInspectorNextJS,bo as DocumentationViewer,hn as DropdownMenu,gn as DropdownMenuItem,Nn as DynamicLink,hl as DynamicUi,Ht as DynamicUiComponent,Ro as EmailFormField,jo as EnumFormField,Go as FileFormField,Bo as FlowNode,_t as FormFieldComponentMap,Jo as HeaderFormField,Wo as HiddenFormField,qo as IntegerFormField,Xo as MonthFormField,Qo as ParagraphFormField,et as PasswordFormField,Nr as ProcessInstanceInspector,Gc as ProcessInstanceInspectorNextJS,mm as ProcessModelInspectorNextJS,ot as RadioFormField,tt as RangeFormField,st as SelectFormField,eo as SplitterLayout,at as StringFormField,rt as TelFormField,Re as TextareaFormField,nt as TimeFormField,dt as UrlFormField,it as WeekFormField};
|
package/build/server/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var N=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var s in t)N(e,s,{get:t[s],enumerable:!0})},fe=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of le(t))!ue.call(e,o)&&o!==s&&N(e,o,{get:()=>t[o],enumerable:!(n=de(t,o))||n.enumerable});return e};var ye=e=>fe(N({},"__esModule",{value:!0}),e);var Ge={};pe(Ge,{cancelReservedUserTask:()=>Fe,finishManualTask:()=>D,finishTask:()=>Le,finishUntypedTask:()=>M,finishUserTask:()=>L,finishUserTaskAndGetNext:()=>Se,getActiveProcessInstances:()=>Ce,getAssignedUserTasksByIdentity:()=>ve,getEngineClient:()=>Ee,getFlowNodeInstances:()=>Ke,getFlowNodeInstancesByProcessInstanceId:()=>F,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds:()=>v,getIdentity:()=>a,getProcessInstance:()=>qe,getProcessInstanceById:()=>U,getReservedUserTasksByIdentity:()=>Re,getTriggeredFlowNodeInstances:()=>Xe,getUserTasks:()=>te,getWaitingUserTaskByFlowNodeInstanceId:()=>se,getWaitingUserTasks:()=>_e,getWaitingUserTasksByCorrelationId:()=>be,getWaitingUserTasksByFlowNodeId:()=>he,getWaitingUserTasksByProcessInstanceId:()=>Ne,navigateToUrl:()=>Be,reserveUserTask:()=>Ue,retryProcess:()=>We,retryProcessInstance:()=>O,startProcess:()=>Ae,terminateProcess:()=>Me,terminateProcessInstance:()=>B,waitForProcessEnd:()=>Pe,waitForUserTask:()=>xe,withApplicationSdk:()=>Oe});module.exports=ye(Ge);var St=require("only-server"),_t=require("../common/index.cjs");var K=require("node:child_process"),C=require("node:fs"),d=require("node:path"),X=require("chokidar"),G=require("esbuild"),$=require("jwt-decode"),S=require("openid-client"),j=require("@5minds/processcube_engine_sdk");var q=require("@5minds/processcube_engine_client"),h=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",r=new q.EngineClient(h);var Ie={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},ke=.85,x=["external_task.ts","external_task.js"],b=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,T=new j.Logger("processcube_app_sdk:external_task_adapter"),m={},E;async function H(e){if(e&&!(0,C.existsSync)(e))throw new Error(`Invalid customExternalTasksDirPath. The given path '${e}' does not exist`);S.custom.setHttpOptionsDefaults({timeout:1e5});let t=await Q();E=await Z(t),await Te(t);let s=we(e);(0,X.watch)(s).on("add",async n=>{if(x.includes((0,d.basename)(n)))return Y(n,s)}).on("change",async n=>{if(x.includes((0,d.basename)(n)))return me(n,s)}).on("unlink",async n=>{x.includes((0,d.basename)(n))&&V(n)}).on("error",n=>T.error(`Watcher error: ${n}`))}async function Y(e,t){let s=(0,d.dirname)(e);if((await C.promises.readdir(s)).filter(u=>x.includes(u)).length>1){T.error(`Multiple external task files found in directory ${s}. Stopping all external task workers for this directory.`),m[s]&&V(e);return}let i=await J(e),c=(0,d.relative)(t,s),y=z(c),l=(0,d.join)(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),I=(0,K.fork)(l,{env:{...process.env,PROCESSCUBE_ENGINE_URL:h}});m[s]=I,I.once("disconnect",()=>{delete m[s]}),I.send({action:"create",payload:{topic:y,identity:E,moduleString:i,workerPath:e}})}async function me(e,t){let s=(0,d.dirname)(e),n=m[s];if(!n)return Y(e,t);let o=await J(e),i=(0,d.relative)(t,s),c=z(i);n.send({action:"restart",payload:{topic:c,identity:E,moduleString:o,workerPath:e}})}function V(e){let t=(0,d.dirname)(e),s=m[t];s&&s.kill()}async function Q(){if(!b)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw T.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let e=await S.Issuer.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new e.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Z(e){if(!b||e===null)return Ie;let t=e.access_token,s=(0,$.jwtDecode)(t);return{token:e.access_token,userId:s.sub}}async function Te(e){let t=5;if(!b||e===null)return;let n=await ge(e)*ke*1e3,o=async()=>{try{let i=await Q();E=Z(i);for(let c of Object.values(m))c.send({action:"updateIdentity",payload:{identity:E}});t=5,setTimeout(o,n)}catch(i){if(t===0){T.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:i});for(let y of Object.values(m))y.kill();return}T.error("Could not refresh identity for external task worker processes.",{error:i,retryCount:t}),t--;let c=2*1e3;setTimeout(o,c)}};setTimeout(o,n)}async function J(e){let t=await(0,G.build)({entryPoints:[e],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(t.errors.length>0)throw T.error(`Could not transpile file at '${e}'`,{errors:t.errors}),new Error(`Could not transpile file at '${e}'`);return t.warnings.length>0&&T.warn(`Transpiled file at '${e}' with warnings`,{warnings:t.warnings}),t.outputFiles[0].text}async function ge(e){let t=e.expires_in;if(!t&&e.expires_at&&(t=Math.floor(e.expires_at-Date.now()/1e3)),t===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return t}function z(e){return e.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function we(e){let t,s=[e,(0,d.join)(process.cwd(),"app"),(0,d.join)(process.cwd(),"src","app")];for(let n of s)if(n&&(0,C.existsSync)(n)){t=n;break}if(!t)throw new Error("Could not find external tasks directory");return t}function Ee(){return r}var R=require("next-auth/jwt"),ee=require("next/dist/compiled/@edge-runtime/cookies"),k=require("next/headers");async function a(){let e=await(0,R.getToken)({req:{cookies:await(0,k.cookies)(),headers:await(0,k.headers)()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let s=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await(0,k.cookies)()).toString()}}),n=new ee.ResponseCookies(s.headers);if(n.getAll().length){let o=!1;try{for(let i of n.getAll())(await(0,k.cookies)()).set(i.name,i.value,{...i})}catch{o=!0}if(e=await(0,R.getToken)({req:{cookies:o?n:await(0,k.cookies)(),headers:await(0,k.headers)()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}var g=require("@5minds/processcube_engine_client");async function P(){try{return a()}catch{return}}async function U(e){let t=await P();return(await r.processInstances.query({processInstanceId:e},{identity:t,includeXml:!0})).processInstances[0]}async function F(e,t={sortSettings:{sortBy:g.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await r.flowNodeInstances.query({processInstanceId:e},{...t,identity:t.identity??await P()})).flowNodeInstances}async function v(e){let t=await P();return(await r.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:t})).flowNodeInstances}async function O(e,t,s){let n=await P();await r.processInstances.retryProcessInstance(e,{flowNodeInstanceId:t,newStartToken:s,identity:n})}async function B(e){let t=await P();await r.processInstances.terminateProcessInstance(e,t)}async function Ce(e={options:{identity:!0}}){switch(e.options.identity){case!0:e.options.identity=await a();break;case!1:e.options.identity=void 0;break;case void 0:e.options.identity=await a();break}return await r.processInstances.query({...e?.query,state:g.DataModels.ProcessInstances.ProcessInstanceState.running},e?.options)}async function Pe(e={},t=!0){let{processInstanceId:s}=e,n=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(o,i)=>{let c=[],y=async l=>{if(s!==void 0&&l.processInstanceId!==s)return;let u=await r.processInstances.query({processInstanceId:l.processInstanceId},{identity:n});for(let _ of c)r.notification.removeSubscription(_,n);return u.totalCount===0?i(new Error(`Process with instance ID "${l.processInstanceId}" does not exist.`)):o(u.processInstances[0])};if(c.push(await r.notification.onProcessEnded(y,{identity:n})),c.push(await r.notification.onProcessError(y,{identity:n})),c.push(await r.notification.onProcessTerminated(y,{identity:n})),s){let l=await r.processInstances.query({processInstanceId:s,state:[g.DataModels.ProcessInstances.ProcessInstanceState.finished,g.DataModels.ProcessInstances.ProcessInstanceState.terminated,g.DataModels.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(l.totalCount>0){for(let I of c)r.notification.removeSubscription(I,n);o(l.processInstances[0])}}})}var f=require("@5minds/processcube_engine_client"),p=require("../common/index.cjs");async function xe(e={},t=!0){let{correlationId:s,processInstanceId:n,flowNodeId:o}=e,i=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(c,y)=>{let l=await r.userTasks.onUserTaskWaiting(async u=>{let _=s!==void 0&&u.correlationId!==s,ie=u.flowNodeInstanceId===void 0,ae=n!==void 0&&u.processInstanceId!==n,ce=o!==void 0&&u.flowNodeId!==o;if(_||ie||ae||ce)return;let W=await se(u.flowNodeInstanceId,{identity:i});return r.notification.removeSubscription(l,i),W===null?y(new Error(`UserTask with instance ID "${u.flowNodeInstanceId}" does not exist.`)):c(W)},{identity:i}),I=await te({correlationId:s,processInstanceId:n,flowNodeId:o,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:i});I.userTasks.length>0&&(r.notification.removeSubscription(l,i),c(I.userTasks[0]))})}async function Se(e,t={},s={},n=!0){let o=typeof n=="boolean"?n==!0?await a():void 0:n;await r.userTasks.finishUserTask(e,s,o);let i={state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended,...t},c=await r.userTasks.query(i,{identity:o});return(0,p.mapUserTask)(c.userTasks[0])}async function te(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query(e,t);return(0,p.mapUserTaskList)(s)}async function _e(e={identity:!0}){switch(e?.identity){case!0:e.identity=await a();break;case!1:e.identity=void 0;break;case void 0:e.identity=await a();break}let t=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return(0,p.mapUserTaskList)(t)}async function Ne(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({processInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function he(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function se(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{...t,limit:1});return s.userTasks.length===0?null:(0,p.mapUserTask)(s.userTasks[0])}async function be(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({correlationId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function Re(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.actualOwnerId===s.userId);return n.userTasks=o,(0,p.mapUserTaskList)(n)}async function Ue(e,t,s){await r.userTasks.reserveUserTaskInstance(e,t,s||e.userId)}async function Fe(e,t){await r.userTasks.cancelUserTaskInstanceReservation(e,t)}async function ve(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.assignedUserIds?.includes(s.userId));return n.userTasks=o,(0,p.mapUserTaskList)(n)}var w=require("next/dist/shared/lib/constants");var ne=!1,A=!1;function Oe(e={}){let{applicationSdk:t,...s}=e;return async(n,o)=>{A=A||n===w.PHASE_PRODUCTION_BUILD;let i=n===w.PHASE_DEVELOPMENT_SERVER||n===w.PHASE_PRODUCTION_SERVER;return t?.useExternalTasks&&i&&!ne&&!A&&(ne=!0,await H(t?.customExternalTasksDirPath)),{...s,experimental:{...s.experimental,serverComponentsExternalPackages:[...s.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}var re=require("next/navigation");function Be(e){(0,re.redirect)(e)}async function Ae(...e){return await r.processModels.startProcessInstance(...e)}async function D(...e){await r.manualTasks.finishManualTask(...e)}async function L(...e){await r.userTasks.finishUserTask(...e)}async function M(...e){await r.untypedTasks.finishTask(...e)}var oe=require("@5minds/processcube_engine_client");async function De(){try{return a()}catch{return}}var Le=async(e,t)=>{let s=await De();t==="bpmn:UserTask"?await L(e,{},s):t==="bpmn:ManualTask"?await D(e,s):t==="bpmn:Task"?await M(e,s):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${t}`)},Me=async e=>{await B(e)},We=async(e,t,s)=>{await O(e,t,s)},qe=async e=>U(e),Ke=async e=>F(e,{sortSettings:{sortBy:oe.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),Xe=async e=>v(e);0&&(module.exports={cancelReservedUserTask,finishManualTask,finishTask,finishUntypedTask,finishUserTask,finishUserTaskAndGetNext,getActiveProcessInstances,getAssignedUserTasksByIdentity,getEngineClient,getFlowNodeInstances,getFlowNodeInstancesByProcessInstanceId,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,getIdentity,getProcessInstance,getProcessInstanceById,getReservedUserTasksByIdentity,getTriggeredFlowNodeInstances,getUserTasks,getWaitingUserTaskByFlowNodeInstanceId,getWaitingUserTasks,getWaitingUserTasksByCorrelationId,getWaitingUserTasksByFlowNodeId,getWaitingUserTasksByProcessInstanceId,navigateToUrl,reserveUserTask,retryProcess,retryProcessInstance,startProcess,terminateProcess,terminateProcessInstance,waitForProcessEnd,waitForUserTask,withApplicationSdk});
|
|
1
|
+
var N=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var s in t)N(e,s,{get:t[s],enumerable:!0})},fe=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of le(t))!ue.call(e,o)&&o!==s&&N(e,o,{get:()=>t[o],enumerable:!(n=de(t,o))||n.enumerable});return e};var ye=e=>fe(N({},"__esModule",{value:!0}),e);var Ge={};pe(Ge,{cancelReservedUserTask:()=>Fe,finishManualTask:()=>D,finishTask:()=>Le,finishUntypedTask:()=>M,finishUserTask:()=>L,finishUserTaskAndGetNext:()=>Se,getActiveProcessInstances:()=>Ce,getAssignedUserTasksByIdentity:()=>ve,getEngineClient:()=>Ee,getFlowNodeInstances:()=>Ke,getFlowNodeInstancesByProcessInstanceId:()=>F,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds:()=>v,getIdentity:()=>a,getProcessInstance:()=>qe,getProcessInstanceById:()=>U,getReservedUserTasksByIdentity:()=>Re,getTriggeredFlowNodeInstances:()=>Xe,getUserTasks:()=>te,getWaitingUserTaskByFlowNodeInstanceId:()=>se,getWaitingUserTasks:()=>_e,getWaitingUserTasksByCorrelationId:()=>be,getWaitingUserTasksByFlowNodeId:()=>he,getWaitingUserTasksByProcessInstanceId:()=>Ne,navigateToUrl:()=>Be,reserveUserTask:()=>Ue,retryProcess:()=>We,retryProcessInstance:()=>O,startProcess:()=>Ae,terminateProcess:()=>Me,terminateProcessInstance:()=>B,waitForProcessEnd:()=>Pe,waitForUserTask:()=>xe,withApplicationSdk:()=>Oe});module.exports=ye(Ge);var St=require("only-server"),_t=require("../common/index.cjs");var K=require("node:child_process"),C=require("node:fs"),d=require("node:path"),X=require("chokidar"),G=require("esbuild"),$=require("jwt-decode"),S=require("openid-client"),j=require("@5minds/processcube_engine_sdk");var q=require("@5minds/processcube_engine_client"),h=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",r=new q.EngineClient(h);var Ie={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},ke=.85,x=["external_task.ts","external_task.js"],b=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,T=new j.Logger("processcube_app_sdk:external_task_adapter"),m={},E;async function H(e){if(e&&!(0,C.existsSync)(e))throw new Error(`Invalid customExternalTasksDirPath. The given path '${e}' does not exist`);S.custom.setHttpOptionsDefaults({timeout:1e5});let t=await Q();E=await Z(t),await Te(t);let s=we(e);(0,X.watch)(s).on("add",async n=>{if(x.includes((0,d.basename)(n)))return Y(n,s)}).on("change",async n=>{if(x.includes((0,d.basename)(n)))return me(n,s)}).on("unlink",async n=>{x.includes((0,d.basename)(n))&&V(n)}).on("error",n=>T.error(`Watcher error: ${n}`))}async function Y(e,t){let s=(0,d.dirname)(e);if((await C.promises.readdir(s)).filter(u=>x.includes(u)).length>1){T.error(`Multiple external task files found in directory ${s}. Stopping all external task workers for this directory.`),m[s]&&V(e);return}let i=await J(e),c=(0,d.relative)(t,s),y=z(c),l=(0,d.join)(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),I=(0,K.fork)(l,{env:{...process.env,PROCESSCUBE_ENGINE_URL:h}});m[s]=I,I.once("disconnect",()=>{delete m[s]}),I.send({action:"create",payload:{topic:y,identity:E,moduleString:i,workerPath:e}})}async function me(e,t){let s=(0,d.dirname)(e),n=m[s];if(!n)return Y(e,t);let o=await J(e),i=(0,d.relative)(t,s),c=z(i);n.send({action:"restart",payload:{topic:c,identity:E,moduleString:o,workerPath:e}})}function V(e){let t=(0,d.dirname)(e),s=m[t];s&&s.kill()}async function Q(){if(!b)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw T.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let e=await S.Issuer.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new e.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Z(e){if(!b||e===null)return Ie;let t=e.access_token,s=(0,$.jwtDecode)(t);return{token:e.access_token,userId:s.sub}}async function Te(e){let t=5;if(!b||e===null)return;let n=await ge(e)*ke*1e3,o=async()=>{try{let i=await Q();E=Z(i);for(let c of Object.values(m))c.send({action:"updateIdentity",payload:{identity:E}});t=5,setTimeout(o,n)}catch(i){if(t===0){T.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:i});for(let y of Object.values(m))y.kill();return}T.error("Could not refresh identity for external task worker processes.",{error:i,retryCount:t}),t--;let c=2*1e3;setTimeout(o,c)}};setTimeout(o,n)}async function J(e){let t=await(0,G.build)({entryPoints:[e],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(t.errors.length>0)throw T.error(`Could not transpile file at '${e}'`,{errors:t.errors}),new Error(`Could not transpile file at '${e}'`);return t.warnings.length>0&&T.warn(`Transpiled file at '${e}' with warnings`,{warnings:t.warnings}),t.outputFiles[0].text}async function ge(e){let t=e.expires_in;if(!t&&e.expires_at&&(t=Math.floor(e.expires_at-Date.now()/1e3)),t===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return t}function z(e){return e.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function we(e){let t,s=[e,(0,d.join)(process.cwd(),"app"),(0,d.join)(process.cwd(),"src","app")];for(let n of s)if(n&&(0,C.existsSync)(n)){t=n;break}if(!t)throw new Error("Could not find external tasks directory");return t}function Ee(){return r}var R=require("next-auth/jwt"),ee=require("next/dist/compiled/@edge-runtime/cookies/index.js"),k=require("next/headers");async function a(){let e=await(0,R.getToken)({req:{cookies:await(0,k.cookies)(),headers:await(0,k.headers)()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let s=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await(0,k.cookies)()).toString()}}),n=new ee.ResponseCookies(s.headers);if(n.getAll().length){let o=!1;try{for(let i of n.getAll())(await(0,k.cookies)()).set(i.name,i.value,{...i})}catch{o=!0}if(e=await(0,R.getToken)({req:{cookies:o?n:await(0,k.cookies)(),headers:await(0,k.headers)()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}var g=require("@5minds/processcube_engine_client");async function P(){try{return a()}catch{return}}async function U(e){let t=await P();return(await r.processInstances.query({processInstanceId:e},{identity:t,includeXml:!0})).processInstances[0]}async function F(e,t={sortSettings:{sortBy:g.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await r.flowNodeInstances.query({processInstanceId:e},{...t,identity:t.identity??await P()})).flowNodeInstances}async function v(e){let t=await P();return(await r.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:t})).flowNodeInstances}async function O(e,t,s){let n=await P();await r.processInstances.retryProcessInstance(e,{flowNodeInstanceId:t,newStartToken:s,identity:n})}async function B(e){let t=await P();await r.processInstances.terminateProcessInstance(e,t)}async function Ce(e={options:{identity:!0}}){switch(e.options.identity){case!0:e.options.identity=await a();break;case!1:e.options.identity=void 0;break;case void 0:e.options.identity=await a();break}return await r.processInstances.query({...e?.query,state:g.DataModels.ProcessInstances.ProcessInstanceState.running},e?.options)}async function Pe(e={},t=!0){let{processInstanceId:s}=e,n=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(o,i)=>{let c=[],y=async l=>{if(s!==void 0&&l.processInstanceId!==s)return;let u=await r.processInstances.query({processInstanceId:l.processInstanceId},{identity:n});for(let _ of c)r.notification.removeSubscription(_,n);return u.totalCount===0?i(new Error(`Process with instance ID "${l.processInstanceId}" does not exist.`)):o(u.processInstances[0])};if(c.push(await r.notification.onProcessEnded(y,{identity:n})),c.push(await r.notification.onProcessError(y,{identity:n})),c.push(await r.notification.onProcessTerminated(y,{identity:n})),s){let l=await r.processInstances.query({processInstanceId:s,state:[g.DataModels.ProcessInstances.ProcessInstanceState.finished,g.DataModels.ProcessInstances.ProcessInstanceState.terminated,g.DataModels.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(l.totalCount>0){for(let I of c)r.notification.removeSubscription(I,n);o(l.processInstances[0])}}})}var f=require("@5minds/processcube_engine_client"),p=require("../common/index.cjs");async function xe(e={},t=!0){let{correlationId:s,processInstanceId:n,flowNodeId:o}=e,i=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(c,y)=>{let l=await r.userTasks.onUserTaskWaiting(async u=>{let _=s!==void 0&&u.correlationId!==s,ie=u.flowNodeInstanceId===void 0,ae=n!==void 0&&u.processInstanceId!==n,ce=o!==void 0&&u.flowNodeId!==o;if(_||ie||ae||ce)return;let W=await se(u.flowNodeInstanceId,{identity:i});return r.notification.removeSubscription(l,i),W===null?y(new Error(`UserTask with instance ID "${u.flowNodeInstanceId}" does not exist.`)):c(W)},{identity:i}),I=await te({correlationId:s,processInstanceId:n,flowNodeId:o,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:i});I.userTasks.length>0&&(r.notification.removeSubscription(l,i),c(I.userTasks[0]))})}async function Se(e,t={},s={},n=!0){let o=typeof n=="boolean"?n==!0?await a():void 0:n;await r.userTasks.finishUserTask(e,s,o);let i={state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended,...t},c=await r.userTasks.query(i,{identity:o});return(0,p.mapUserTask)(c.userTasks[0])}async function te(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query(e,t);return(0,p.mapUserTaskList)(s)}async function _e(e={identity:!0}){switch(e?.identity){case!0:e.identity=await a();break;case!1:e.identity=void 0;break;case void 0:e.identity=await a();break}let t=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return(0,p.mapUserTaskList)(t)}async function Ne(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({processInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function he(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function se(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{...t,limit:1});return s.userTasks.length===0?null:(0,p.mapUserTask)(s.userTasks[0])}async function be(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({correlationId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function Re(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.actualOwnerId===s.userId);return n.userTasks=o,(0,p.mapUserTaskList)(n)}async function Ue(e,t,s){await r.userTasks.reserveUserTaskInstance(e,t,s||e.userId)}async function Fe(e,t){await r.userTasks.cancelUserTaskInstanceReservation(e,t)}async function ve(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.assignedUserIds?.includes(s.userId));return n.userTasks=o,(0,p.mapUserTaskList)(n)}var w=require("next/dist/shared/lib/constants");var ne=!1,A=!1;function Oe(e={}){let{applicationSdk:t,...s}=e;return async(n,o)=>{A=A||n===w.PHASE_PRODUCTION_BUILD;let i=n===w.PHASE_DEVELOPMENT_SERVER||n===w.PHASE_PRODUCTION_SERVER;return t?.useExternalTasks&&i&&!ne&&!A&&(ne=!0,await H(t?.customExternalTasksDirPath)),{...s,experimental:{...s.experimental,serverComponentsExternalPackages:[...s.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}var re=require("next/navigation");function Be(e){(0,re.redirect)(e)}async function Ae(...e){return await r.processModels.startProcessInstance(...e)}async function D(...e){await r.manualTasks.finishManualTask(...e)}async function L(...e){await r.userTasks.finishUserTask(...e)}async function M(...e){await r.untypedTasks.finishTask(...e)}var oe=require("@5minds/processcube_engine_client");async function De(){try{return a()}catch{return}}var Le=async(e,t)=>{let s=await De();t==="bpmn:UserTask"?await L(e,{},s):t==="bpmn:ManualTask"?await D(e,s):t==="bpmn:Task"?await M(e,s):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${t}`)},Me=async e=>{await B(e)},We=async(e,t,s)=>{await O(e,t,s)},qe=async e=>U(e),Ke=async e=>F(e,{sortSettings:{sortBy:oe.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),Xe=async e=>v(e);0&&(module.exports={cancelReservedUserTask,finishManualTask,finishTask,finishUntypedTask,finishUserTask,finishUserTaskAndGetNext,getActiveProcessInstances,getAssignedUserTasksByIdentity,getEngineClient,getFlowNodeInstances,getFlowNodeInstancesByProcessInstanceId,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,getIdentity,getProcessInstance,getProcessInstanceById,getReservedUserTasksByIdentity,getTriggeredFlowNodeInstances,getUserTasks,getWaitingUserTaskByFlowNodeInstanceId,getWaitingUserTasks,getWaitingUserTasksByCorrelationId,getWaitingUserTasksByFlowNodeId,getWaitingUserTasksByProcessInstanceId,navigateToUrl,reserveUserTask,retryProcess,retryProcessInstance,startProcess,terminateProcess,terminateProcessInstance,waitForProcessEnd,waitForUserTask,withApplicationSdk});
|
package/build/server/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"only-server";import"../common/index.mjs";import{fork as Yt}from"node:child_process";import{existsSync as Ce,promises as zt}from"node:fs";import{basename as se,dirname as ie,join as ne,relative as Se}from"node:path";import{stat as xt}from"fs";import{stat as bt,readdir as Rt}from"fs/promises";import{EventEmitter as Ct}from"events";import*as p from"path";import{stat as Xe,lstat as ae,readdir as Qe,realpath as Ze}from"node:fs/promises";import{Readable as Je}from"node:stream";import{resolve as ce,relative as et,join as tt,sep as st}from"node:path";var I={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Y={root:".",fileFilter:s=>!0,directoryFilter:s=>!0,type:I.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(Y);var ue="READDIRP_RECURSIVE_ERROR",nt=new Set(["ENOENT","EPERM","EACCES","ELOOP",ue]),de=[I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE],it=new Set([I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE]),rt=new Set([I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE]),ot=s=>nt.has(s.code),at=process.platform==="win32",le=s=>!0,fe=s=>{if(s===void 0)return le;if(typeof s=="function")return s;if(typeof s=="string"){let e=s.trim();return t=>t.basename===e}if(Array.isArray(s)){let e=s.map(t=>t.trim());return t=>e.some(n=>t.basename===n)}return le},z=class extends Je{constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...Y,...e},{root:n,type:i}=t;this._fileFilter=fe(t.fileFilter),this._directoryFilter=fe(t.directoryFilter);let r=t.lstat?ae:Xe;at?this._stat=a=>r(a,{bigint:!0}):this._stat=r,this._maxDepth=t.depth??Y.depth,this._wantsDir=i?it.has(i):!1,this._wantsFile=i?rt.has(i):!1,this._wantsEverything=i===I.EVERYTHING_TYPE,this._root=ce(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:i,depth:r}=t,a=n.splice(0,e).map(c=>this._formatEntry(c,i)),o=await Promise.all(a);for(let c of o){if(!c)continue;if(this.destroyed)return;let l=await this._getEntryType(c);l==="directory"&&this._directoryFilter(c)?(r<=this._maxDepth&&this.parents.push(this._exploreDir(c.fullPath,r+1)),this._wantsDir&&(this.push(c),e--)):(l==="file"||this._includeAsFile(c))&&this._fileFilter(c)&&this._wantsFile&&(this.push(c),e--)}}else{let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await Qe(e,this._rdOptions)}catch(i){this._onError(i)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,i=this._isDirent?e.name:e;try{let r=ce(tt(t,i));n={path:et(this._root,r),fullPath:r,basename:i},n[this._statsProp]=this._isDirent?e:await this._stat(r)}catch(r){this._onError(r);return}return n}_onError(e){ot(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let n=e.fullPath;try{let i=await Ze(n),r=await ae(i);if(r.isFile())return"file";if(r.isDirectory()){let a=i.length;if(n.startsWith(i)&&n.substr(a,1)===st){let o=new Error(`Circular symlink detected: "${n}" points to "${i}"`);return o.code=ue,this._onError(o)}return"directory"}}catch(i){return this._onError(i),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function he(s,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=I.FILE_DIR_TYPE),t&&(e.type=t),s){if(typeof s!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!de.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${de.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=s,new z(e)}import{watchFile as ct,unwatchFile as pe,watch as dt}from"fs";import{open as lt,stat as ye,lstat as ft,realpath as K}from"fs/promises";import*as m from"path";import{type as ut}from"os";var ht="data",$="end",we="close",W=()=>{};var M=process.platform,V=M==="win32",pt=M==="darwin",mt=M==="linux",yt=M==="freebsd",_e=ut()==="OS400",w={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},E=w,wt="watch",_t={lstat:ft,stat:ye},k="listeners",A="errHandlers",C="rawEmitters",gt=[k,A,C],It=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Et=s=>It.has(m.extname(s).slice(1).toLowerCase()),G=(s,e)=>{s instanceof Set?s.forEach(e):e(s)},S=(s,e,t)=>{let n=s[e];n instanceof Set||(s[e]=n=new Set([n])),n.add(t)},Pt=s=>e=>{let t=s[e];t instanceof Set?t.clear():delete s[e]},N=(s,e,t)=>{let n=s[e];n instanceof Set?n.delete(t):n===t&&delete s[e]},ge=s=>s instanceof Set?s.size===0:!s,U=new Map;function me(s,e,t,n,i){let r=(a,o)=>{t(s),i(a,o,{watchedPath:s}),o&&s!==o&&L(m.resolve(s,o),k,m.join(s,o))};try{return dt(s,{persistent:e.persistent},r)}catch(a){n(a);return}}var L=(s,e,t,n,i)=>{let r=U.get(s);r&&G(r[e],a=>{a(t,n,i)})},Tt=(s,e,t,n)=>{let{listener:i,errHandler:r,rawEmitter:a}=n,o=U.get(e),c;if(!t.persistent)return c=me(s,t,i,r,a),c?c.close.bind(c):void 0;if(o)S(o,k,i),S(o,A,r),S(o,C,a);else{if(c=me(s,t,L.bind(null,e,k),r,L.bind(null,e,C)),!c)return;c.on(E.ERROR,async l=>{let d=L.bind(null,e,A);if(o&&(o.watcherUnusable=!0),V&&l.code==="EPERM")try{await(await lt(s,"r")).close(),d(l)}catch{}else d(l)}),o={listeners:i,errHandlers:r,rawEmitters:a,watcher:c},U.set(e,o)}return()=>{N(o,k,i),N(o,A,r),N(o,C,a),ge(o.listeners)&&(o.watcher.close(),U.delete(e),gt.forEach(Pt(o)),o.watcher=void 0,Object.freeze(o))}},q=new Map,kt=(s,e,t,n)=>{let{listener:i,rawEmitter:r}=n,a=q.get(e),o=a&&a.options;return o&&(o.persistent<t.persistent||o.interval>t.interval)&&(pe(e),a=void 0),a?(S(a,k,i),S(a,C,r)):(a={listeners:i,rawEmitters:r,options:t,watcher:ct(e,t,(c,l)=>{G(a.rawEmitters,f=>{f(E.CHANGE,e,{curr:c,prev:l})});let d=c.mtimeMs;(c.size!==l.size||d>l.mtimeMs||d===0)&&G(a.listeners,f=>f(s,c))})},q.set(e,a)),()=>{N(a,k,i),N(a,C,r),ge(a.listeners)&&(q.delete(e),pe(e),a.options=a.watcher=void 0,Object.freeze(a))}},O=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,i=m.dirname(e),r=m.basename(e);this.fsw._getWatchedDir(i).add(r);let o=m.resolve(e),c={persistent:n.persistent};t||(t=W);let l;if(n.usePolling){let d=n.interval!==n.binaryInterval;c.interval=d&&Et(r)?n.binaryInterval:n.interval,l=kt(e,o,c,{listener:t,rawEmitter:this.fsw._emitRaw})}else l=Tt(e,o,c,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return l}_handleFile(e,t,n){if(this.fsw.closed)return;let i=m.dirname(e),r=m.basename(e),a=this.fsw._getWatchedDir(i),o=t;if(a.has(r))return;let c=async(d,f)=>{if(this.fsw._throttle(wt,e,5)){if(!f||f.mtimeMs===0)try{let h=await ye(e);if(this.fsw.closed)return;let _=h.atimeMs,g=h.mtimeMs;if((!_||_<=g||g!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,h),(pt||mt||yt)&&o.ino!==h.ino){this.fsw._closeFile(d),o=h;let T=this._watchWithNodeFs(e,c);T&&this.fsw._addPathCloser(d,T)}else o=h}catch{this.fsw._remove(i,r)}else if(a.has(r)){let h=f.atimeMs,_=f.mtimeMs;(!h||h<=_||_!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,f),o=f}}},l=this._watchWithNodeFs(e,c);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(E.ADD,e,0))return;this.fsw._emit(E.ADD,e,t)}return l}async _handleSymlink(e,t,n,i){if(this.fsw.closed)return;let r=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await K(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(i)?this.fsw._symlinkPaths.get(r)!==o&&(this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.CHANGE,n,e.stats)):(a.add(i),this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(e,t,n,i,r,a,o){if(e=m.join(e,""),o=this.fsw._throttle("readdir",e,1e3),!o)return;let c=this.fsw._getWatchedDir(n.path),l=new Set,d=this.fsw._readdirp(e,{fileFilter:f=>n.filterPath(f),directoryFilter:f=>n.filterDir(f)});if(d)return d.on(ht,async f=>{if(this.fsw.closed){d=void 0;return}let h=f.path,_=m.join(e,h);if(l.add(h),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,_,h))){if(this.fsw.closed){d=void 0;return}(h===i||!i&&!c.has(h))&&(this.fsw._incrReadyCount(),_=m.join(r,m.relative(r,_)),this._addToNodeFs(_,t,n,a+1))}}).on(E.ERROR,this._boundHandleError),new Promise((f,h)=>{if(!d)return h();d.once($,()=>{if(this.fsw.closed){d=void 0;return}let _=o?o.clear():!1;f(void 0),c.getChildren().filter(g=>g!==e&&!l.has(g)).forEach(g=>{this.fsw._remove(e,g)}),d=void 0,_&&this._handleRead(e,!1,n,i,r,a,o)})})}async _handleDir(e,t,n,i,r,a,o){let c=this.fsw._getWatchedDir(m.dirname(e)),l=c.has(m.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!r&&!l&&this.fsw._emit(E.ADD_DIR,e,t),c.add(m.basename(e)),this.fsw._getWatchedDir(e);let d,f,h=this.fsw.options.depth;if((h==null||i<=h)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(e,n,a,r,e,i,d),this.fsw.closed))return;f=this._watchWithNodeFs(e,(_,g)=>{g&&g.mtimeMs===0||this._handleRead(_,!1,a,r,e,i,d)})}return f}async _addToNodeFs(e,t,n,i,r){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let o=this.fsw._getWatchHelpers(e);n&&(o.filterPath=c=>n.filterPath(c),o.filterDir=c=>n.filterDir(c));try{let c=await _t[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,c))return a(),!1;let l=this.fsw.options.followSymlinks,d;if(c.isDirectory()){let f=m.resolve(e),h=l?await K(e):e;if(this.fsw.closed||(d=await this._handleDir(o.watchPath,c,t,i,r,o,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h)}else if(c.isSymbolicLink()){let f=l?await K(e):e;if(this.fsw.closed)return;let h=m.dirname(o.watchPath);if(this.fsw._getWatchedDir(h).add(o.watchPath),this.fsw._emit(E.ADD,o.watchPath,c),d=await this._handleDir(h,c,t,i,e,o,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(m.resolve(e),f)}else d=this._handleFile(o.watchPath,c,t);return a(),d&&this.fsw._addPathCloser(e,d),!1}catch(c){if(this.fsw._handleError(c))return a(),e}}};var X="/",St="//",xe=".",Nt="..",Dt="string",Ft=/\\/g,Ie=/\/\//,vt=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,At=/^\.[/\\]/;function B(s){return Array.isArray(s)?s:[s]}var Q=s=>typeof s=="object"&&s!==null&&!(s instanceof RegExp);function Ut(s){return typeof s=="function"?s:typeof s=="string"?e=>s===e:s instanceof RegExp?e=>s.test(e):typeof s=="object"&&s!==null?e=>{if(s.path===e)return!0;if(s.recursive){let t=p.relative(s.path,e);return t?!t.startsWith("..")&&!p.isAbsolute(t):!1}return!1}:()=>!1}function Lt(s){if(typeof s!="string")throw new Error("string expected");s=p.normalize(s),s=s.replace(/\\/g,"/");let e=!1;s.startsWith("//")&&(e=!0);let t=/\/\//;for(;s.match(t);)s=s.replace(t,"/");return e&&(s="/"+s),s}function Ee(s,e,t){let n=Lt(e);for(let i=0;i<s.length;i++){let r=s[i];if(r(n,t))return!0}return!1}function Ot(s,e){if(s==null)throw new TypeError("anymatch: specify first argument");let n=B(s).map(i=>Ut(i));return e==null?(i,r)=>Ee(n,i,r):Ee(n,e)}var Pe=s=>{let e=B(s).flat();if(!e.every(t=>typeof t===Dt))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(be)},Te=s=>{let e=s.replace(Ft,X),t=!1;for(e.startsWith(St)&&(t=!0);e.match(Ie);)e=e.replace(Ie,X);return t&&(e=X+e),e},be=s=>Te(p.normalize(Te(s))),ke=(s="")=>e=>typeof e=="string"?be(p.isAbsolute(e)?e:p.join(s,e)):e,Wt=(s,e)=>p.isAbsolute(s)?s:p.join(e,s),Mt=Object.freeze(new Set),Z=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==xe&&e!==Nt&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await Rt(n)}catch{this._removeWatcher&&this._removeWatcher(p.dirname(n),p.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=W,this.items=Mt,Object.freeze(this)}},Bt="stat",Ht="lstat",J=class{constructor(e,t,n){this.fsw=n;let i=e;this.path=e=e.replace(At,""),this.watchPath=i,this.fullWatchPath=p.resolve(i),this.dirParts=[],this.dirParts.forEach(r=>{r.length>1&&r.pop()}),this.followSymlinks=t,this.statMethod=t?Bt:Ht}entryPath(e){return p.join(this.watchPath,p.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},ee=class extends Ct{constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},i={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?B(e.ignored):B([]),awaitWriteFinish:t===!0?n:typeof t=="object"?{...n,...t}:!1};_e&&(i.usePolling=!0),i.atomic===void 0&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let c=r.toLowerCase();c==="false"||c==="0"?i.usePolling=!1:c==="true"||c==="1"?i.usePolling=!0:i.usePolling=!!c}let a=process.env.CHOKIDAR_INTERVAL;a&&(i.interval=Number.parseInt(a,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=W,this._readyEmitted=!0,process.nextTick(()=>this.emit(w.READY)))},this._emitRaw=(...c)=>this.emit(w.RAW,...c),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new O(this),Object.freeze(i)}_addIgnoredPath(e){if(Q(e)){for(let t of this._ignoredPaths)if(Q(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)Q(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:i}=this.options;this.closed=!1,this._closePromise=void 0;let r=Pe(e);return i&&(r=r.map(a=>Wt(a,i))),r.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async a=>{let o=await this._nodeFsHandler._addToNodeFs(a,!n,void 0,0,t);return o&&this._emitReady(),o})).then(a=>{this.closed||a.forEach(o=>{o&&this.add(p.dirname(o),p.basename(t||o))})}),this}unwatch(e){if(this.closed)return this;let t=Pe(e),{cwd:n}=this.options;return t.forEach(i=>{!p.isAbsolute(i)&&!this._closers.has(i)&&(n&&(i=p.join(n,i)),i=p.resolve(i)),this._closePath(i),this._addIgnoredPath(i),this._watched.has(i)&&this._addIgnoredPath({path:i,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(n=>{let i=n();i instanceof Promise&&e.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let r=(this.options.cwd?p.relative(this.options.cwd,n):n)||xe;e[r]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==w.ERROR&&this.emit(w.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let i=this.options;V&&(t=p.normalize(t)),i.cwd&&(t=p.relative(i.cwd,t));let r=[t];n!=null&&r.push(n);let a=i.awaitWriteFinish,o;if(a&&(o=this._pendingWrites.get(t)))return o.lastChange=new Date,this;if(i.atomic){if(e===w.UNLINK)return this._pendingUnlinks.set(t,[e,...r]),setTimeout(()=>{this._pendingUnlinks.forEach((c,l)=>{this.emit(...c),this.emit(w.ALL,...c),this._pendingUnlinks.delete(l)})},typeof i.atomic=="number"?i.atomic:100),this;e===w.ADD&&this._pendingUnlinks.has(t)&&(e=w.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===w.ADD||e===w.CHANGE)&&this._readyEmitted){let c=(l,d)=>{l?(e=w.ERROR,r[0]=l,this.emitWithAll(e,r)):d&&(r.length>1?r[1]=d:r.push(d),this.emitWithAll(e,r))};return this._awaitWriteFinish(t,a.stabilityThreshold,e,c),this}if(e===w.CHANGE&&!this._throttle(w.CHANGE,t,50))return this;if(i.alwaysStat&&n===void 0&&(e===w.ADD||e===w.ADD_DIR||e===w.CHANGE)){let c=i.cwd?p.join(i.cwd,t):t,l;try{l=await bt(c)}catch{}if(!l||this.closed)return;r.push(l)}return this.emitWithAll(e,r),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(w.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let i=this._throttled.get(e);if(!i)throw new Error("invalid throttle");let r=i.get(t);if(r)return r.count++,!1;let a,o=()=>{let l=i.get(t),d=l?l.count:0;return i.delete(t),clearTimeout(a),l&&clearTimeout(l.timeoutObject),d};a=setTimeout(o,n);let c={timeoutObject:a,clear:o,count:0};return i.set(t,c),c}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,i){let r=this.options.awaitWriteFinish;if(typeof r!="object")return;let a=r.pollInterval,o,c=e;this.options.cwd&&!p.isAbsolute(e)&&(c=p.join(this.options.cwd,e));let l=new Date,d=this._pendingWrites;function f(h){xt(c,(_,g)=>{if(_||!d.has(e)){_&&_.code!=="ENOENT"&&i(_);return}let T=Number(new Date);h&&g.size!==h.size&&(d.get(e).lastChange=T);let Ve=d.get(e);T-Ve.lastChange>=t?(d.delete(e),i(void 0,g)):o=setTimeout(f,a,g)})}d.has(e)||(d.set(e,{lastChange:l,cancelWait:()=>(d.delete(e),clearTimeout(o),n)}),o=setTimeout(f,a))}_isIgnored(e,t){if(this.options.atomic&&vt.test(e))return!0;if(!this._userIgnored){let{cwd:n}=this.options,r=(this.options.ignored||[]).map(ke(n)),o=[...[...this._ignoredPaths].map(ke(n)),...r];this._userIgnored=Ot(o,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new J(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=p.resolve(e);return this._watched.has(t)||this._watched.set(t,new Z(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let i=p.join(e,t),r=p.resolve(i);if(n=n??(this._watched.has(i)||this._watched.has(r)),!this._throttle("remove",i,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(i).getChildren().forEach(h=>this._remove(i,h));let c=this._getWatchedDir(e),l=c.has(t);c.remove(t),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let d=i;if(this.options.cwd&&(d=p.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===w.ADD)return;this._watched.delete(i),this._watched.delete(r);let f=n?w.UNLINK_DIR:w.UNLINK;l&&!this._isIgnored(i)&&this._emit(f,i),this._closePath(i)}_closePath(e){this._closeFile(e);let t=p.dirname(e);this._getWatchedDir(t).remove(p.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(n=>n()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n={type:w.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},i=he(e,n);return this._streams.add(i),i.once(we,()=>{i=void 0}),i.once($,()=>{i&&(this._streams.delete(i),i=void 0)}),i}};function Re(s,e={}){let t=new ee(e);return t.add(s),t}import{build as Kt}from"esbuild";import{jwtDecode as qt}from"jwt-decode";import{Issuer as Gt,custom as $t}from"openid-client";import{Logger as Vt}from"@5minds/processcube_engine_sdk";import{EngineClient as jt}from"@5minds/processcube_engine_client";var te=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",u=new jt(te);var Xt={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},Qt=.85,H=["external_task.ts","external_task.js"],re=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,b=new Vt("processcube_app_sdk:external_task_adapter"),x={},D;async function Ne(s){if(s&&!Ce(s))throw new Error(`Invalid customExternalTasksDirPath. The given path '${s}' does not exist`);$t.setHttpOptionsDefaults({timeout:1e5});let e=await ve();D=await Ae(e),await Jt(e);let t=ts(s);Re(t).on("add",async n=>{if(H.includes(se(n)))return De(n,t)}).on("change",async n=>{if(H.includes(se(n)))return Zt(n,t)}).on("unlink",async n=>{H.includes(se(n))&&Fe(n)}).on("error",n=>b.error(`Watcher error: ${n}`))}async function De(s,e){let t=ie(s);if((await zt.readdir(t)).filter(d=>H.includes(d)).length>1){b.error(`Multiple external task files found in directory ${t}. Stopping all external task workers for this directory.`),x[t]&&Fe(s);return}let r=await Ue(s),a=Se(e,t),o=Le(a),c=ne(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),l=Yt(c,{env:{...process.env,PROCESSCUBE_ENGINE_URL:te}});x[t]=l,l.once("disconnect",()=>{delete x[t]}),l.send({action:"create",payload:{topic:o,identity:D,moduleString:r,workerPath:s}})}async function Zt(s,e){let t=ie(s),n=x[t];if(!n)return De(s,e);let i=await Ue(s),r=Se(e,t),a=Le(r);n.send({action:"restart",payload:{topic:a,identity:D,moduleString:i,workerPath:s}})}function Fe(s){let e=ie(s),t=x[e];t&&t.kill()}async function ve(){if(!re)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw b.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let s=await Gt.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new s.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Ae(s){if(!re||s===null)return Xt;let e=s.access_token,t=qt(e);return{token:s.access_token,userId:t.sub}}async function Jt(s){let e=5;if(!re||s===null)return;let n=await es(s)*Qt*1e3,i=async()=>{try{let r=await ve();D=Ae(r);for(let a of Object.values(x))a.send({action:"updateIdentity",payload:{identity:D}});e=5,setTimeout(i,n)}catch(r){if(e===0){b.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:r});for(let o of Object.values(x))o.kill();return}b.error("Could not refresh identity for external task worker processes.",{error:r,retryCount:e}),e--;let a=2*1e3;setTimeout(i,a)}};setTimeout(i,n)}async function Ue(s){let e=await Kt({entryPoints:[s],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(e.errors.length>0)throw b.error(`Could not transpile file at '${s}'`,{errors:e.errors}),new Error(`Could not transpile file at '${s}'`);return e.warnings.length>0&&b.warn(`Transpiled file at '${s}' with warnings`,{warnings:e.warnings}),e.outputFiles[0].text}async function es(s){let e=s.expires_in;if(!e&&s.expires_at&&(e=Math.floor(s.expires_at-Date.now()/1e3)),e===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return e}function Le(s){return s.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function ts(s){let e,t=[s,ne(process.cwd(),"app"),ne(process.cwd(),"src","app")];for(let n of t)if(n&&Ce(n)){e=n;break}if(!e)throw new Error("Could not find external tasks directory");return e}function js(){return u}import{getToken as Oe}from"next-auth/jwt";import{ResponseCookies as ss}from"next/dist/compiled/@edge-runtime/cookies";import{cookies as j,headers as We}from"next/headers";async function y(){let s=await Oe({req:{cookies:await j(),headers:await We()}});if(s?.expiresAt&&Date.now()>=s.expiresAt*1e3){let t=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await j()).toString()}}),n=new ss(t.headers);if(n.getAll().length){let i=!1;try{for(let r of n.getAll())(await j()).set(r.name,r.value,{...r})}catch{i=!0}if(s=await Oe({req:{cookies:i?n:await j(),headers:await We()}}),s?.error)throw s.error}}if(!s?.accessToken||!s?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:s?.accessToken,userId:s?.sub}}import{DataModels as F}from"@5minds/processcube_engine_client";async function v(){try{return y()}catch{return}}async function Me(s){let e=await v();return(await u.processInstances.query({processInstanceId:s},{identity:e,includeXml:!0})).processInstances[0]}async function Be(s,e={sortSettings:{sortBy:F.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await u.flowNodeInstances.query({processInstanceId:s},{...e,identity:e.identity??await v()})).flowNodeInstances}async function He(s){let e=await v();return(await u.flowNodeInstances.query({triggeredByFlowNodeInstance:s},{identity:e})).flowNodeInstances}async function je(s,e,t){let n=await v();await u.processInstances.retryProcessInstance(s,{flowNodeInstanceId:e,newStartToken:t,identity:n})}async function Ye(s){let e=await v();await u.processInstances.terminateProcessInstance(s,e)}async function Qs(s={options:{identity:!0}}){switch(s.options.identity){case!0:s.options.identity=await y();break;case!1:s.options.identity=void 0;break;case void 0:s.options.identity=await y();break}return await u.processInstances.query({...s?.query,state:F.ProcessInstances.ProcessInstanceState.running},s?.options)}async function Zs(s={},e=!0){let{processInstanceId:t}=s,n=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(i,r)=>{let a=[],o=async c=>{if(t!==void 0&&c.processInstanceId!==t)return;let d=await u.processInstances.query({processInstanceId:c.processInstanceId},{identity:n});for(let f of a)u.notification.removeSubscription(f,n);return d.totalCount===0?r(new Error(`Process with instance ID "${c.processInstanceId}" does not exist.`)):i(d.processInstances[0])};if(a.push(await u.notification.onProcessEnded(o,{identity:n})),a.push(await u.notification.onProcessError(o,{identity:n})),a.push(await u.notification.onProcessTerminated(o,{identity:n})),t){let c=await u.processInstances.query({processInstanceId:t,state:[F.ProcessInstances.ProcessInstanceState.finished,F.ProcessInstances.ProcessInstanceState.terminated,F.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(c.totalCount>0){for(let l of a)u.notification.removeSubscription(l,n);i(c.processInstances[0])}}})}import{DataModels as P}from"@5minds/processcube_engine_client";import{mapUserTask as ze,mapUserTaskList as R}from"../common/index.mjs";async function an(s={},e=!0){let{correlationId:t,processInstanceId:n,flowNodeId:i}=s,r=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(a,o)=>{let c=await u.userTasks.onUserTaskWaiting(async d=>{let f=t!==void 0&&d.correlationId!==t,h=d.flowNodeInstanceId===void 0,_=n!==void 0&&d.processInstanceId!==n,g=i!==void 0&&d.flowNodeId!==i;if(f||h||_||g)return;let T=await is(d.flowNodeInstanceId,{identity:r});return u.notification.removeSubscription(c,r),T===null?o(new Error(`UserTask with instance ID "${d.flowNodeInstanceId}" does not exist.`)):a(T)},{identity:r}),l=await ns({correlationId:t,processInstanceId:n,flowNodeId:i,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:r});l.userTasks.length>0&&(u.notification.removeSubscription(c,r),a(l.userTasks[0]))})}async function cn(s,e={},t={},n=!0){let i=typeof n=="boolean"?n==!0?await y():void 0:n;await u.userTasks.finishUserTask(s,t,i);let r={state:P.FlowNodeInstances.FlowNodeInstanceState.suspended,...e},a=await u.userTasks.query(r,{identity:i});return ze(a.userTasks[0])}async function ns(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query(s,e);return R(t)}async function dn(s={identity:!0}){switch(s?.identity){case!0:s.identity=await y();break;case!1:s.identity=void 0;break;case void 0:s.identity=await y();break}let e=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},s);return R(e)}async function ln(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({processInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function fn(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function is(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{...e,limit:1});return t.userTasks.length===0?null:ze(t.userTasks[0])}async function un(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({correlationId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function hn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.actualOwnerId===t.userId);return n.userTasks=i,R(n)}async function pn(s,e,t){await u.userTasks.reserveUserTaskInstance(s,e,t||s.userId)}async function mn(s,e){await u.userTasks.cancelUserTaskInstanceReservation(s,e)}async function yn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.assignedUserIds?.includes(t.userId));return n.userTasks=i,R(n)}import{PHASE_DEVELOPMENT_SERVER as rs,PHASE_PRODUCTION_BUILD as os,PHASE_PRODUCTION_SERVER as as}from"next/dist/shared/lib/constants";var Ke=!1,oe=!1;function In(s={}){let{applicationSdk:e,...t}=s;return async(n,i)=>{oe=oe||n===os;let r=n===rs||n===as;return e?.useExternalTasks&&r&&!Ke&&!oe&&(Ke=!0,await Ne(e?.customExternalTasksDirPath)),{...t,experimental:{...t.experimental,serverComponentsExternalPackages:[...t.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}import{redirect as cs}from"next/navigation";function kn(s){cs(s)}async function Rn(...s){return await u.processModels.startProcessInstance(...s)}async function qe(...s){await u.manualTasks.finishManualTask(...s)}async function Ge(...s){await u.userTasks.finishUserTask(...s)}async function $e(...s){await u.untypedTasks.finishTask(...s)}import{DataModels as ds}from"@5minds/processcube_engine_client";async function ls(){try{return y()}catch{return}}var Mn=async(s,e)=>{let t=await ls();e==="bpmn:UserTask"?await Ge(s,{},t):e==="bpmn:ManualTask"?await qe(s,t):e==="bpmn:Task"?await $e(s,t):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${e}`)},Bn=async s=>{await Ye(s)},Hn=async(s,e,t)=>{await je(s,e,t)},jn=async s=>Me(s),Yn=async s=>Be(s,{sortSettings:{sortBy:ds.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),zn=async s=>He(s);export{mn as cancelReservedUserTask,qe as finishManualTask,Mn as finishTask,$e as finishUntypedTask,Ge as finishUserTask,cn as finishUserTaskAndGetNext,Qs as getActiveProcessInstances,yn as getAssignedUserTasksByIdentity,js as getEngineClient,Yn as getFlowNodeInstances,Be as getFlowNodeInstancesByProcessInstanceId,He as getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,y as getIdentity,jn as getProcessInstance,Me as getProcessInstanceById,hn as getReservedUserTasksByIdentity,zn as getTriggeredFlowNodeInstances,ns as getUserTasks,is as getWaitingUserTaskByFlowNodeInstanceId,dn as getWaitingUserTasks,un as getWaitingUserTasksByCorrelationId,fn as getWaitingUserTasksByFlowNodeId,ln as getWaitingUserTasksByProcessInstanceId,kn as navigateToUrl,pn as reserveUserTask,Hn as retryProcess,je as retryProcessInstance,Rn as startProcess,Bn as terminateProcess,Ye as terminateProcessInstance,Zs as waitForProcessEnd,an as waitForUserTask,In as withApplicationSdk};
|
|
1
|
+
import"only-server";import"../common/index.mjs";import{fork as Yt}from"node:child_process";import{existsSync as Ce,promises as zt}from"node:fs";import{basename as se,dirname as ie,join as ne,relative as Se}from"node:path";import{stat as xt}from"fs";import{stat as bt,readdir as Rt}from"fs/promises";import{EventEmitter as Ct}from"events";import*as p from"path";import{stat as Xe,lstat as ae,readdir as Qe,realpath as Ze}from"node:fs/promises";import{Readable as Je}from"node:stream";import{resolve as ce,relative as et,join as tt,sep as st}from"node:path";var I={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Y={root:".",fileFilter:s=>!0,directoryFilter:s=>!0,type:I.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(Y);var ue="READDIRP_RECURSIVE_ERROR",nt=new Set(["ENOENT","EPERM","EACCES","ELOOP",ue]),de=[I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE],it=new Set([I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE]),rt=new Set([I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE]),ot=s=>nt.has(s.code),at=process.platform==="win32",le=s=>!0,fe=s=>{if(s===void 0)return le;if(typeof s=="function")return s;if(typeof s=="string"){let e=s.trim();return t=>t.basename===e}if(Array.isArray(s)){let e=s.map(t=>t.trim());return t=>e.some(n=>t.basename===n)}return le},z=class extends Je{constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...Y,...e},{root:n,type:i}=t;this._fileFilter=fe(t.fileFilter),this._directoryFilter=fe(t.directoryFilter);let r=t.lstat?ae:Xe;at?this._stat=a=>r(a,{bigint:!0}):this._stat=r,this._maxDepth=t.depth??Y.depth,this._wantsDir=i?it.has(i):!1,this._wantsFile=i?rt.has(i):!1,this._wantsEverything=i===I.EVERYTHING_TYPE,this._root=ce(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:i,depth:r}=t,a=n.splice(0,e).map(c=>this._formatEntry(c,i)),o=await Promise.all(a);for(let c of o){if(!c)continue;if(this.destroyed)return;let l=await this._getEntryType(c);l==="directory"&&this._directoryFilter(c)?(r<=this._maxDepth&&this.parents.push(this._exploreDir(c.fullPath,r+1)),this._wantsDir&&(this.push(c),e--)):(l==="file"||this._includeAsFile(c))&&this._fileFilter(c)&&this._wantsFile&&(this.push(c),e--)}}else{let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await Qe(e,this._rdOptions)}catch(i){this._onError(i)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,i=this._isDirent?e.name:e;try{let r=ce(tt(t,i));n={path:et(this._root,r),fullPath:r,basename:i},n[this._statsProp]=this._isDirent?e:await this._stat(r)}catch(r){this._onError(r);return}return n}_onError(e){ot(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let n=e.fullPath;try{let i=await Ze(n),r=await ae(i);if(r.isFile())return"file";if(r.isDirectory()){let a=i.length;if(n.startsWith(i)&&n.substr(a,1)===st){let o=new Error(`Circular symlink detected: "${n}" points to "${i}"`);return o.code=ue,this._onError(o)}return"directory"}}catch(i){return this._onError(i),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function he(s,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=I.FILE_DIR_TYPE),t&&(e.type=t),s){if(typeof s!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!de.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${de.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=s,new z(e)}import{watchFile as ct,unwatchFile as pe,watch as dt}from"fs";import{open as lt,stat as ye,lstat as ft,realpath as K}from"fs/promises";import*as m from"path";import{type as ut}from"os";var ht="data",$="end",we="close",W=()=>{};var M=process.platform,V=M==="win32",pt=M==="darwin",mt=M==="linux",yt=M==="freebsd",_e=ut()==="OS400",w={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},E=w,wt="watch",_t={lstat:ft,stat:ye},k="listeners",A="errHandlers",C="rawEmitters",gt=[k,A,C],It=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Et=s=>It.has(m.extname(s).slice(1).toLowerCase()),G=(s,e)=>{s instanceof Set?s.forEach(e):e(s)},S=(s,e,t)=>{let n=s[e];n instanceof Set||(s[e]=n=new Set([n])),n.add(t)},Pt=s=>e=>{let t=s[e];t instanceof Set?t.clear():delete s[e]},N=(s,e,t)=>{let n=s[e];n instanceof Set?n.delete(t):n===t&&delete s[e]},ge=s=>s instanceof Set?s.size===0:!s,U=new Map;function me(s,e,t,n,i){let r=(a,o)=>{t(s),i(a,o,{watchedPath:s}),o&&s!==o&&L(m.resolve(s,o),k,m.join(s,o))};try{return dt(s,{persistent:e.persistent},r)}catch(a){n(a);return}}var L=(s,e,t,n,i)=>{let r=U.get(s);r&&G(r[e],a=>{a(t,n,i)})},Tt=(s,e,t,n)=>{let{listener:i,errHandler:r,rawEmitter:a}=n,o=U.get(e),c;if(!t.persistent)return c=me(s,t,i,r,a),c?c.close.bind(c):void 0;if(o)S(o,k,i),S(o,A,r),S(o,C,a);else{if(c=me(s,t,L.bind(null,e,k),r,L.bind(null,e,C)),!c)return;c.on(E.ERROR,async l=>{let d=L.bind(null,e,A);if(o&&(o.watcherUnusable=!0),V&&l.code==="EPERM")try{await(await lt(s,"r")).close(),d(l)}catch{}else d(l)}),o={listeners:i,errHandlers:r,rawEmitters:a,watcher:c},U.set(e,o)}return()=>{N(o,k,i),N(o,A,r),N(o,C,a),ge(o.listeners)&&(o.watcher.close(),U.delete(e),gt.forEach(Pt(o)),o.watcher=void 0,Object.freeze(o))}},q=new Map,kt=(s,e,t,n)=>{let{listener:i,rawEmitter:r}=n,a=q.get(e),o=a&&a.options;return o&&(o.persistent<t.persistent||o.interval>t.interval)&&(pe(e),a=void 0),a?(S(a,k,i),S(a,C,r)):(a={listeners:i,rawEmitters:r,options:t,watcher:ct(e,t,(c,l)=>{G(a.rawEmitters,f=>{f(E.CHANGE,e,{curr:c,prev:l})});let d=c.mtimeMs;(c.size!==l.size||d>l.mtimeMs||d===0)&&G(a.listeners,f=>f(s,c))})},q.set(e,a)),()=>{N(a,k,i),N(a,C,r),ge(a.listeners)&&(q.delete(e),pe(e),a.options=a.watcher=void 0,Object.freeze(a))}},O=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,i=m.dirname(e),r=m.basename(e);this.fsw._getWatchedDir(i).add(r);let o=m.resolve(e),c={persistent:n.persistent};t||(t=W);let l;if(n.usePolling){let d=n.interval!==n.binaryInterval;c.interval=d&&Et(r)?n.binaryInterval:n.interval,l=kt(e,o,c,{listener:t,rawEmitter:this.fsw._emitRaw})}else l=Tt(e,o,c,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return l}_handleFile(e,t,n){if(this.fsw.closed)return;let i=m.dirname(e),r=m.basename(e),a=this.fsw._getWatchedDir(i),o=t;if(a.has(r))return;let c=async(d,f)=>{if(this.fsw._throttle(wt,e,5)){if(!f||f.mtimeMs===0)try{let h=await ye(e);if(this.fsw.closed)return;let _=h.atimeMs,g=h.mtimeMs;if((!_||_<=g||g!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,h),(pt||mt||yt)&&o.ino!==h.ino){this.fsw._closeFile(d),o=h;let T=this._watchWithNodeFs(e,c);T&&this.fsw._addPathCloser(d,T)}else o=h}catch{this.fsw._remove(i,r)}else if(a.has(r)){let h=f.atimeMs,_=f.mtimeMs;(!h||h<=_||_!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,f),o=f}}},l=this._watchWithNodeFs(e,c);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(E.ADD,e,0))return;this.fsw._emit(E.ADD,e,t)}return l}async _handleSymlink(e,t,n,i){if(this.fsw.closed)return;let r=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await K(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(i)?this.fsw._symlinkPaths.get(r)!==o&&(this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.CHANGE,n,e.stats)):(a.add(i),this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(e,t,n,i,r,a,o){if(e=m.join(e,""),o=this.fsw._throttle("readdir",e,1e3),!o)return;let c=this.fsw._getWatchedDir(n.path),l=new Set,d=this.fsw._readdirp(e,{fileFilter:f=>n.filterPath(f),directoryFilter:f=>n.filterDir(f)});if(d)return d.on(ht,async f=>{if(this.fsw.closed){d=void 0;return}let h=f.path,_=m.join(e,h);if(l.add(h),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,_,h))){if(this.fsw.closed){d=void 0;return}(h===i||!i&&!c.has(h))&&(this.fsw._incrReadyCount(),_=m.join(r,m.relative(r,_)),this._addToNodeFs(_,t,n,a+1))}}).on(E.ERROR,this._boundHandleError),new Promise((f,h)=>{if(!d)return h();d.once($,()=>{if(this.fsw.closed){d=void 0;return}let _=o?o.clear():!1;f(void 0),c.getChildren().filter(g=>g!==e&&!l.has(g)).forEach(g=>{this.fsw._remove(e,g)}),d=void 0,_&&this._handleRead(e,!1,n,i,r,a,o)})})}async _handleDir(e,t,n,i,r,a,o){let c=this.fsw._getWatchedDir(m.dirname(e)),l=c.has(m.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!r&&!l&&this.fsw._emit(E.ADD_DIR,e,t),c.add(m.basename(e)),this.fsw._getWatchedDir(e);let d,f,h=this.fsw.options.depth;if((h==null||i<=h)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(e,n,a,r,e,i,d),this.fsw.closed))return;f=this._watchWithNodeFs(e,(_,g)=>{g&&g.mtimeMs===0||this._handleRead(_,!1,a,r,e,i,d)})}return f}async _addToNodeFs(e,t,n,i,r){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let o=this.fsw._getWatchHelpers(e);n&&(o.filterPath=c=>n.filterPath(c),o.filterDir=c=>n.filterDir(c));try{let c=await _t[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,c))return a(),!1;let l=this.fsw.options.followSymlinks,d;if(c.isDirectory()){let f=m.resolve(e),h=l?await K(e):e;if(this.fsw.closed||(d=await this._handleDir(o.watchPath,c,t,i,r,o,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h)}else if(c.isSymbolicLink()){let f=l?await K(e):e;if(this.fsw.closed)return;let h=m.dirname(o.watchPath);if(this.fsw._getWatchedDir(h).add(o.watchPath),this.fsw._emit(E.ADD,o.watchPath,c),d=await this._handleDir(h,c,t,i,e,o,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(m.resolve(e),f)}else d=this._handleFile(o.watchPath,c,t);return a(),d&&this.fsw._addPathCloser(e,d),!1}catch(c){if(this.fsw._handleError(c))return a(),e}}};var X="/",St="//",xe=".",Nt="..",Dt="string",Ft=/\\/g,Ie=/\/\//,vt=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,At=/^\.[/\\]/;function B(s){return Array.isArray(s)?s:[s]}var Q=s=>typeof s=="object"&&s!==null&&!(s instanceof RegExp);function Ut(s){return typeof s=="function"?s:typeof s=="string"?e=>s===e:s instanceof RegExp?e=>s.test(e):typeof s=="object"&&s!==null?e=>{if(s.path===e)return!0;if(s.recursive){let t=p.relative(s.path,e);return t?!t.startsWith("..")&&!p.isAbsolute(t):!1}return!1}:()=>!1}function Lt(s){if(typeof s!="string")throw new Error("string expected");s=p.normalize(s),s=s.replace(/\\/g,"/");let e=!1;s.startsWith("//")&&(e=!0);let t=/\/\//;for(;s.match(t);)s=s.replace(t,"/");return e&&(s="/"+s),s}function Ee(s,e,t){let n=Lt(e);for(let i=0;i<s.length;i++){let r=s[i];if(r(n,t))return!0}return!1}function Ot(s,e){if(s==null)throw new TypeError("anymatch: specify first argument");let n=B(s).map(i=>Ut(i));return e==null?(i,r)=>Ee(n,i,r):Ee(n,e)}var Pe=s=>{let e=B(s).flat();if(!e.every(t=>typeof t===Dt))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(be)},Te=s=>{let e=s.replace(Ft,X),t=!1;for(e.startsWith(St)&&(t=!0);e.match(Ie);)e=e.replace(Ie,X);return t&&(e=X+e),e},be=s=>Te(p.normalize(Te(s))),ke=(s="")=>e=>typeof e=="string"?be(p.isAbsolute(e)?e:p.join(s,e)):e,Wt=(s,e)=>p.isAbsolute(s)?s:p.join(e,s),Mt=Object.freeze(new Set),Z=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==xe&&e!==Nt&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await Rt(n)}catch{this._removeWatcher&&this._removeWatcher(p.dirname(n),p.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=W,this.items=Mt,Object.freeze(this)}},Bt="stat",Ht="lstat",J=class{constructor(e,t,n){this.fsw=n;let i=e;this.path=e=e.replace(At,""),this.watchPath=i,this.fullWatchPath=p.resolve(i),this.dirParts=[],this.dirParts.forEach(r=>{r.length>1&&r.pop()}),this.followSymlinks=t,this.statMethod=t?Bt:Ht}entryPath(e){return p.join(this.watchPath,p.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},ee=class extends Ct{constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},i={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?B(e.ignored):B([]),awaitWriteFinish:t===!0?n:typeof t=="object"?{...n,...t}:!1};_e&&(i.usePolling=!0),i.atomic===void 0&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let c=r.toLowerCase();c==="false"||c==="0"?i.usePolling=!1:c==="true"||c==="1"?i.usePolling=!0:i.usePolling=!!c}let a=process.env.CHOKIDAR_INTERVAL;a&&(i.interval=Number.parseInt(a,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=W,this._readyEmitted=!0,process.nextTick(()=>this.emit(w.READY)))},this._emitRaw=(...c)=>this.emit(w.RAW,...c),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new O(this),Object.freeze(i)}_addIgnoredPath(e){if(Q(e)){for(let t of this._ignoredPaths)if(Q(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)Q(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:i}=this.options;this.closed=!1,this._closePromise=void 0;let r=Pe(e);return i&&(r=r.map(a=>Wt(a,i))),r.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async a=>{let o=await this._nodeFsHandler._addToNodeFs(a,!n,void 0,0,t);return o&&this._emitReady(),o})).then(a=>{this.closed||a.forEach(o=>{o&&this.add(p.dirname(o),p.basename(t||o))})}),this}unwatch(e){if(this.closed)return this;let t=Pe(e),{cwd:n}=this.options;return t.forEach(i=>{!p.isAbsolute(i)&&!this._closers.has(i)&&(n&&(i=p.join(n,i)),i=p.resolve(i)),this._closePath(i),this._addIgnoredPath(i),this._watched.has(i)&&this._addIgnoredPath({path:i,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(n=>{let i=n();i instanceof Promise&&e.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let r=(this.options.cwd?p.relative(this.options.cwd,n):n)||xe;e[r]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==w.ERROR&&this.emit(w.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let i=this.options;V&&(t=p.normalize(t)),i.cwd&&(t=p.relative(i.cwd,t));let r=[t];n!=null&&r.push(n);let a=i.awaitWriteFinish,o;if(a&&(o=this._pendingWrites.get(t)))return o.lastChange=new Date,this;if(i.atomic){if(e===w.UNLINK)return this._pendingUnlinks.set(t,[e,...r]),setTimeout(()=>{this._pendingUnlinks.forEach((c,l)=>{this.emit(...c),this.emit(w.ALL,...c),this._pendingUnlinks.delete(l)})},typeof i.atomic=="number"?i.atomic:100),this;e===w.ADD&&this._pendingUnlinks.has(t)&&(e=w.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===w.ADD||e===w.CHANGE)&&this._readyEmitted){let c=(l,d)=>{l?(e=w.ERROR,r[0]=l,this.emitWithAll(e,r)):d&&(r.length>1?r[1]=d:r.push(d),this.emitWithAll(e,r))};return this._awaitWriteFinish(t,a.stabilityThreshold,e,c),this}if(e===w.CHANGE&&!this._throttle(w.CHANGE,t,50))return this;if(i.alwaysStat&&n===void 0&&(e===w.ADD||e===w.ADD_DIR||e===w.CHANGE)){let c=i.cwd?p.join(i.cwd,t):t,l;try{l=await bt(c)}catch{}if(!l||this.closed)return;r.push(l)}return this.emitWithAll(e,r),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(w.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let i=this._throttled.get(e);if(!i)throw new Error("invalid throttle");let r=i.get(t);if(r)return r.count++,!1;let a,o=()=>{let l=i.get(t),d=l?l.count:0;return i.delete(t),clearTimeout(a),l&&clearTimeout(l.timeoutObject),d};a=setTimeout(o,n);let c={timeoutObject:a,clear:o,count:0};return i.set(t,c),c}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,i){let r=this.options.awaitWriteFinish;if(typeof r!="object")return;let a=r.pollInterval,o,c=e;this.options.cwd&&!p.isAbsolute(e)&&(c=p.join(this.options.cwd,e));let l=new Date,d=this._pendingWrites;function f(h){xt(c,(_,g)=>{if(_||!d.has(e)){_&&_.code!=="ENOENT"&&i(_);return}let T=Number(new Date);h&&g.size!==h.size&&(d.get(e).lastChange=T);let Ve=d.get(e);T-Ve.lastChange>=t?(d.delete(e),i(void 0,g)):o=setTimeout(f,a,g)})}d.has(e)||(d.set(e,{lastChange:l,cancelWait:()=>(d.delete(e),clearTimeout(o),n)}),o=setTimeout(f,a))}_isIgnored(e,t){if(this.options.atomic&&vt.test(e))return!0;if(!this._userIgnored){let{cwd:n}=this.options,r=(this.options.ignored||[]).map(ke(n)),o=[...[...this._ignoredPaths].map(ke(n)),...r];this._userIgnored=Ot(o,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new J(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=p.resolve(e);return this._watched.has(t)||this._watched.set(t,new Z(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let i=p.join(e,t),r=p.resolve(i);if(n=n??(this._watched.has(i)||this._watched.has(r)),!this._throttle("remove",i,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(i).getChildren().forEach(h=>this._remove(i,h));let c=this._getWatchedDir(e),l=c.has(t);c.remove(t),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let d=i;if(this.options.cwd&&(d=p.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===w.ADD)return;this._watched.delete(i),this._watched.delete(r);let f=n?w.UNLINK_DIR:w.UNLINK;l&&!this._isIgnored(i)&&this._emit(f,i),this._closePath(i)}_closePath(e){this._closeFile(e);let t=p.dirname(e);this._getWatchedDir(t).remove(p.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(n=>n()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n={type:w.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},i=he(e,n);return this._streams.add(i),i.once(we,()=>{i=void 0}),i.once($,()=>{i&&(this._streams.delete(i),i=void 0)}),i}};function Re(s,e={}){let t=new ee(e);return t.add(s),t}import{build as Kt}from"esbuild";import{jwtDecode as qt}from"jwt-decode";import{Issuer as Gt,custom as $t}from"openid-client";import{Logger as Vt}from"@5minds/processcube_engine_sdk";import{EngineClient as jt}from"@5minds/processcube_engine_client";var te=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",u=new jt(te);var Xt={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},Qt=.85,H=["external_task.ts","external_task.js"],re=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,b=new Vt("processcube_app_sdk:external_task_adapter"),x={},D;async function Ne(s){if(s&&!Ce(s))throw new Error(`Invalid customExternalTasksDirPath. The given path '${s}' does not exist`);$t.setHttpOptionsDefaults({timeout:1e5});let e=await ve();D=await Ae(e),await Jt(e);let t=ts(s);Re(t).on("add",async n=>{if(H.includes(se(n)))return De(n,t)}).on("change",async n=>{if(H.includes(se(n)))return Zt(n,t)}).on("unlink",async n=>{H.includes(se(n))&&Fe(n)}).on("error",n=>b.error(`Watcher error: ${n}`))}async function De(s,e){let t=ie(s);if((await zt.readdir(t)).filter(d=>H.includes(d)).length>1){b.error(`Multiple external task files found in directory ${t}. Stopping all external task workers for this directory.`),x[t]&&Fe(s);return}let r=await Ue(s),a=Se(e,t),o=Le(a),c=ne(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),l=Yt(c,{env:{...process.env,PROCESSCUBE_ENGINE_URL:te}});x[t]=l,l.once("disconnect",()=>{delete x[t]}),l.send({action:"create",payload:{topic:o,identity:D,moduleString:r,workerPath:s}})}async function Zt(s,e){let t=ie(s),n=x[t];if(!n)return De(s,e);let i=await Ue(s),r=Se(e,t),a=Le(r);n.send({action:"restart",payload:{topic:a,identity:D,moduleString:i,workerPath:s}})}function Fe(s){let e=ie(s),t=x[e];t&&t.kill()}async function ve(){if(!re)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw b.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let s=await Gt.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new s.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Ae(s){if(!re||s===null)return Xt;let e=s.access_token,t=qt(e);return{token:s.access_token,userId:t.sub}}async function Jt(s){let e=5;if(!re||s===null)return;let n=await es(s)*Qt*1e3,i=async()=>{try{let r=await ve();D=Ae(r);for(let a of Object.values(x))a.send({action:"updateIdentity",payload:{identity:D}});e=5,setTimeout(i,n)}catch(r){if(e===0){b.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:r});for(let o of Object.values(x))o.kill();return}b.error("Could not refresh identity for external task worker processes.",{error:r,retryCount:e}),e--;let a=2*1e3;setTimeout(i,a)}};setTimeout(i,n)}async function Ue(s){let e=await Kt({entryPoints:[s],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(e.errors.length>0)throw b.error(`Could not transpile file at '${s}'`,{errors:e.errors}),new Error(`Could not transpile file at '${s}'`);return e.warnings.length>0&&b.warn(`Transpiled file at '${s}' with warnings`,{warnings:e.warnings}),e.outputFiles[0].text}async function es(s){let e=s.expires_in;if(!e&&s.expires_at&&(e=Math.floor(s.expires_at-Date.now()/1e3)),e===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return e}function Le(s){return s.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function ts(s){let e,t=[s,ne(process.cwd(),"app"),ne(process.cwd(),"src","app")];for(let n of t)if(n&&Ce(n)){e=n;break}if(!e)throw new Error("Could not find external tasks directory");return e}function js(){return u}import{getToken as Oe}from"next-auth/jwt";import{ResponseCookies as ss}from"next/dist/compiled/@edge-runtime/cookies/index.js";import{cookies as j,headers as We}from"next/headers";async function y(){let s=await Oe({req:{cookies:await j(),headers:await We()}});if(s?.expiresAt&&Date.now()>=s.expiresAt*1e3){let t=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await j()).toString()}}),n=new ss(t.headers);if(n.getAll().length){let i=!1;try{for(let r of n.getAll())(await j()).set(r.name,r.value,{...r})}catch{i=!0}if(s=await Oe({req:{cookies:i?n:await j(),headers:await We()}}),s?.error)throw s.error}}if(!s?.accessToken||!s?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:s?.accessToken,userId:s?.sub}}import{DataModels as F}from"@5minds/processcube_engine_client";async function v(){try{return y()}catch{return}}async function Me(s){let e=await v();return(await u.processInstances.query({processInstanceId:s},{identity:e,includeXml:!0})).processInstances[0]}async function Be(s,e={sortSettings:{sortBy:F.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await u.flowNodeInstances.query({processInstanceId:s},{...e,identity:e.identity??await v()})).flowNodeInstances}async function He(s){let e=await v();return(await u.flowNodeInstances.query({triggeredByFlowNodeInstance:s},{identity:e})).flowNodeInstances}async function je(s,e,t){let n=await v();await u.processInstances.retryProcessInstance(s,{flowNodeInstanceId:e,newStartToken:t,identity:n})}async function Ye(s){let e=await v();await u.processInstances.terminateProcessInstance(s,e)}async function Qs(s={options:{identity:!0}}){switch(s.options.identity){case!0:s.options.identity=await y();break;case!1:s.options.identity=void 0;break;case void 0:s.options.identity=await y();break}return await u.processInstances.query({...s?.query,state:F.ProcessInstances.ProcessInstanceState.running},s?.options)}async function Zs(s={},e=!0){let{processInstanceId:t}=s,n=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(i,r)=>{let a=[],o=async c=>{if(t!==void 0&&c.processInstanceId!==t)return;let d=await u.processInstances.query({processInstanceId:c.processInstanceId},{identity:n});for(let f of a)u.notification.removeSubscription(f,n);return d.totalCount===0?r(new Error(`Process with instance ID "${c.processInstanceId}" does not exist.`)):i(d.processInstances[0])};if(a.push(await u.notification.onProcessEnded(o,{identity:n})),a.push(await u.notification.onProcessError(o,{identity:n})),a.push(await u.notification.onProcessTerminated(o,{identity:n})),t){let c=await u.processInstances.query({processInstanceId:t,state:[F.ProcessInstances.ProcessInstanceState.finished,F.ProcessInstances.ProcessInstanceState.terminated,F.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(c.totalCount>0){for(let l of a)u.notification.removeSubscription(l,n);i(c.processInstances[0])}}})}import{DataModels as P}from"@5minds/processcube_engine_client";import{mapUserTask as ze,mapUserTaskList as R}from"../common/index.mjs";async function an(s={},e=!0){let{correlationId:t,processInstanceId:n,flowNodeId:i}=s,r=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(a,o)=>{let c=await u.userTasks.onUserTaskWaiting(async d=>{let f=t!==void 0&&d.correlationId!==t,h=d.flowNodeInstanceId===void 0,_=n!==void 0&&d.processInstanceId!==n,g=i!==void 0&&d.flowNodeId!==i;if(f||h||_||g)return;let T=await is(d.flowNodeInstanceId,{identity:r});return u.notification.removeSubscription(c,r),T===null?o(new Error(`UserTask with instance ID "${d.flowNodeInstanceId}" does not exist.`)):a(T)},{identity:r}),l=await ns({correlationId:t,processInstanceId:n,flowNodeId:i,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:r});l.userTasks.length>0&&(u.notification.removeSubscription(c,r),a(l.userTasks[0]))})}async function cn(s,e={},t={},n=!0){let i=typeof n=="boolean"?n==!0?await y():void 0:n;await u.userTasks.finishUserTask(s,t,i);let r={state:P.FlowNodeInstances.FlowNodeInstanceState.suspended,...e},a=await u.userTasks.query(r,{identity:i});return ze(a.userTasks[0])}async function ns(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query(s,e);return R(t)}async function dn(s={identity:!0}){switch(s?.identity){case!0:s.identity=await y();break;case!1:s.identity=void 0;break;case void 0:s.identity=await y();break}let e=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},s);return R(e)}async function ln(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({processInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function fn(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function is(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{...e,limit:1});return t.userTasks.length===0?null:ze(t.userTasks[0])}async function un(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({correlationId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function hn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.actualOwnerId===t.userId);return n.userTasks=i,R(n)}async function pn(s,e,t){await u.userTasks.reserveUserTaskInstance(s,e,t||s.userId)}async function mn(s,e){await u.userTasks.cancelUserTaskInstanceReservation(s,e)}async function yn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.assignedUserIds?.includes(t.userId));return n.userTasks=i,R(n)}import{PHASE_DEVELOPMENT_SERVER as rs,PHASE_PRODUCTION_BUILD as os,PHASE_PRODUCTION_SERVER as as}from"next/dist/shared/lib/constants";var Ke=!1,oe=!1;function In(s={}){let{applicationSdk:e,...t}=s;return async(n,i)=>{oe=oe||n===os;let r=n===rs||n===as;return e?.useExternalTasks&&r&&!Ke&&!oe&&(Ke=!0,await Ne(e?.customExternalTasksDirPath)),{...t,experimental:{...t.experimental,serverComponentsExternalPackages:[...t.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}import{redirect as cs}from"next/navigation";function kn(s){cs(s)}async function Rn(...s){return await u.processModels.startProcessInstance(...s)}async function qe(...s){await u.manualTasks.finishManualTask(...s)}async function Ge(...s){await u.userTasks.finishUserTask(...s)}async function $e(...s){await u.untypedTasks.finishTask(...s)}import{DataModels as ds}from"@5minds/processcube_engine_client";async function ls(){try{return y()}catch{return}}var Mn=async(s,e)=>{let t=await ls();e==="bpmn:UserTask"?await Ge(s,{},t):e==="bpmn:ManualTask"?await qe(s,t):e==="bpmn:Task"?await $e(s,t):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${e}`)},Bn=async s=>{await Ye(s)},Hn=async(s,e,t)=>{await je(s,e,t)},jn=async s=>Me(s),Yn=async s=>Be(s,{sortSettings:{sortBy:ds.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),zn=async s=>He(s);export{mn as cancelReservedUserTask,qe as finishManualTask,Mn as finishTask,$e as finishUntypedTask,Ge as finishUserTask,cn as finishUserTaskAndGetNext,Qs as getActiveProcessInstances,yn as getAssignedUserTasksByIdentity,js as getEngineClient,Yn as getFlowNodeInstances,Be as getFlowNodeInstancesByProcessInstanceId,He as getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,y as getIdentity,jn as getProcessInstance,Me as getProcessInstanceById,hn as getReservedUserTasksByIdentity,zn as getTriggeredFlowNodeInstances,ns as getUserTasks,is as getWaitingUserTaskByFlowNodeInstanceId,dn as getWaitingUserTasks,un as getWaitingUserTasksByCorrelationId,fn as getWaitingUserTasksByFlowNodeId,ln as getWaitingUserTasksByProcessInstanceId,kn as navigateToUrl,pn as reserveUserTask,Hn as retryProcess,je as retryProcessInstance,Rn as startProcess,Bn as terminateProcess,Ye as terminateProcessInstance,Zs as waitForProcessEnd,an as waitForUserTask,In as withApplicationSdk};
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
chokidar/esm/index.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@5minds/processcube_app_sdk",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.6",
|
|
4
4
|
"description": "The SDK for ProcessCube Apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/common/index.cjs",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"@tailwindcss/forms": "^0.5.10",
|
|
77
77
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
|
78
78
|
"@types/lodash": "^4.17.20",
|
|
79
|
-
"@types/node": "^22.
|
|
79
|
+
"@types/node": "^22.18.12",
|
|
80
80
|
"@types/react": "^19.1.2",
|
|
81
81
|
"@types/react-dom": "^19.1.2",
|
|
82
82
|
"@types/react-is": "19.2.0",
|
|
@@ -86,30 +86,30 @@
|
|
|
86
86
|
"esbuild-style-plugin": "^1.6.3",
|
|
87
87
|
"postcss-import": "^16.1.0",
|
|
88
88
|
"prettier": "^3.5.3",
|
|
89
|
-
"prettier-plugin-tailwindcss": "^0.
|
|
89
|
+
"prettier-plugin-tailwindcss": "^0.7.1",
|
|
90
90
|
"tailwindcss": "^3.4.1",
|
|
91
91
|
"typescript": "^5.8.3"
|
|
92
92
|
},
|
|
93
93
|
"peerDependencies": {
|
|
94
94
|
"next": ">=15",
|
|
95
|
-
"next-auth": "~4.24.
|
|
95
|
+
"next-auth": "~4.24.12",
|
|
96
96
|
"react": "^19.1.0"
|
|
97
97
|
},
|
|
98
98
|
"dependencies": {
|
|
99
|
-
"@5minds/processcube_engine_client": "6.1.
|
|
99
|
+
"@5minds/processcube_engine_client": "6.1.4",
|
|
100
100
|
"@5minds/processcube_engine_sdk": "7.1.2",
|
|
101
101
|
"@headlessui/react": "^2.2.1",
|
|
102
102
|
"@heroicons/react": "^2.2.0",
|
|
103
103
|
"@heroui/react": "^2.7.6",
|
|
104
104
|
"@monaco-editor/react": "^4.7.0",
|
|
105
|
-
"bpmn-js": "^18.
|
|
105
|
+
"bpmn-js": "^18.8.0",
|
|
106
106
|
"chokidar": "^4.0.3",
|
|
107
107
|
"client-only": "^0.0.1",
|
|
108
108
|
"esbuild": "^0.25.2",
|
|
109
|
-
"isomorphic-dompurify": "^2.
|
|
109
|
+
"isomorphic-dompurify": "^2.30.1",
|
|
110
110
|
"jwt-decode": "^4.0.0",
|
|
111
111
|
"lodash": "^4.17.21",
|
|
112
|
-
"marked": "^16.
|
|
112
|
+
"marked": "^16.4.1",
|
|
113
113
|
"only-server": "^0.0.1",
|
|
114
114
|
"openid-client": "^5.5.0",
|
|
115
115
|
"react-dom": "^19.1.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use server";import{DataModels as C}from"@5minds/processcube_engine_client";import{DataModels as b}from"@5minds/processcube_engine_client";import{getToken as p}from"next-auth/jwt";import{ResponseCookies as k}from"next/dist/compiled/@edge-runtime/cookies";import{cookies as a,headers as y}from"next/headers";async function i(){let e=await p({req:{cookies:await a(),headers:await y()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let s=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await a()).toString()}}),o=new k(s.headers);if(o.getAll().length){let d=!1;try{for(let c of o.getAll())(await a()).set(c.name,c.value,{...c})}catch{d=!0}if(e=await p({req:{cookies:d?o:await a(),headers:await y()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}import{EngineClient as T}from"@5minds/processcube_engine_client";var h=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",n=new T(h);async function r(){try{return i()}catch{return}}async function u(e){let t=await r();return(await n.processInstances.query({processInstanceId:e},{identity:t,includeXml:!0})).processInstances[0]}async function I(e,t={sortSettings:{sortBy:b.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await n.flowNodeInstances.query({processInstanceId:e},{...t,identity:t.identity??await r()})).flowNodeInstances}async function l(e){let t=await r();return(await n.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:t})).flowNodeInstances}async function f(e,t,s){let o=await r();await n.processInstances.retryProcessInstance(e,{flowNodeInstanceId:t,newStartToken:s,identity:o})}async function m(e){let t=await r();await n.processInstances.terminateProcessInstance(e,t)}async function w(...e){await n.manualTasks.finishManualTask(...e)}async function g(...e){await n.userTasks.finishUserTask(...e)}async function P(...e){await n.untypedTasks.finishTask(...e)}async function E(){try{return i()}catch{return}}var Q=async(e,t)=>{let s=await E();t==="bpmn:UserTask"?await g(e,{},s):t==="bpmn:ManualTask"?await w(e,s):t==="bpmn:Task"?await P(e,s):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${t}`)},z=async e=>{await m(e)},J=async(e,t,s)=>{await f(e,t,s)},K=async e=>u(e),V=async e=>I(e,{sortSettings:{sortBy:C.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),W=async e=>l(e);export{Q as finishTask,V as getFlowNodeInstances,K as getProcessInstance,W as getTriggeredFlowNodeInstances,J as retryProcess,z as terminateProcess};
|