@nocobase/plugin-workflow 1.4.0-beta.9 → 1.4.0

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.
@@ -407,9 +407,9 @@
407
407
  border-radius: 50%;
408
408
  background-color: ${t.colorText};
409
409
  color: ${t.colorBgContainer};
410
- `}));class be{constructor(){w(this,"title");w(this,"type");w(this,"group");w(this,"description");w(this,"options");w(this,"fieldset");w(this,"presetFieldset");w(this,"branching");w(this,"view");w(this,"scope");w(this,"components");w(this,"end");w(this,"testable")}createDefaultConfig(){return{}}}function fn(){const e=T.useForm(),t=l.useAPIClient(),o=l.useActionContext(),{refresh:r}=l.useResourceActionContext(),s=xe(),{workflow:a}=H();return{run(){return J(this,null,function*(){var c,p;if(a.executed){g.message.error(O("Node in executed workflow cannot be modified"));return}yield e.submit(),yield(p=(c=t.resource("flow_nodes")).update)==null?void 0:p.call(c,{filterByTk:s.id,values:{config:e.values}}),e.setInitialValues(Ge.toJS(e.values)),o.setFormValueChanged(!1),o.setVisible(!1),r()})}}}const Ze=y.createContext({});function xe(){return y.useContext(Ze)}function Be(e=[]){const t=xe();return e.some(o=>we.get(t.config,o)!=null)}function Ut(e,t){const o=[];if(!e)return[];for(let r=e.upstream;r;r=r.upstream)(typeof t!="function"||t(r))&&o.push(r);return o}function Ht(e){const t=[];if(!e)return[];for(let o=e;o;o=o.upstream)o.upstream&&o.branchIndex!=null&&t.push(o.upstream);return t}function Gt({data:e}){var i;const{styles:t}=ne(),{getAriaLabel:o}=St(e),r=l.usePlugin(le),{Component:s=Tt,end:a}=(i=r.instructions.get(e.type))!=null?i:{};return n.jsx(Ze.Provider,{value:e,children:n.jsxs("div",{className:l.cx(t.nodeBlockClass),children:[n.jsx(s,{data:e}),!a||typeof a=="function"&&!a(e)?n.jsx(no,{"aria-label":o(),upstream:e}):n.jsx("div",{className:"end-sign",children:n.jsx(V.CloseOutlined,{})})]})})}function At(){var m;const{t:e}=X.useTranslation(),t=l.useAPIClient(),{workflow:o,nodes:r,refresh:s}=(m=H())!=null?m:{},a=xe(),{modal:i}=g.App.useApp(),c=t.resource("flow_nodes"),p=y.useCallback(()=>J(this,null,function*(){var h;yield(h=c.destroy)==null?void 0:h.call(c,{filterByTk:a.id}),s()}),[a.id,s,c]),d=y.useCallback(()=>J(this,null,function*(){const h=r.filter(f=>f===a?!1:Q.parse(f.config).parameters.filter(({key:M})=>M.startsWith(`$jobsMapByNodeKey.${a.key}.`)||M===`$jobsMapByNodeKey.${a.key}`).length);if(h.length){i.error({title:O("Can not delete"),content:O("The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.",{nodes:h.map(f=>`#${f.id}`).join(", ")})});return}const b=!r.find(f=>f.upstream===a&&f.branchIndex!=null)?e("Are you sure you want to delete it?"):O("This node contains branches, deleting will also be preformed to them, are you sure?");i.confirm({title:e("Delete"),content:b,onOk:p})}),[a,i,r,p,e]);return o?o.executed?null:n.jsx(g.Button,{type:"text",shape:"circle",icon:n.jsx(V.DeleteOutlined,{}),onClick:d,className:"workflow-node-remove-button",size:"small"}):null}function Ft(){var a;const{execution:e,setViewJob:t}=H(),{jobs:o}=(a=xe())!=null?a:{},{styles:r}=ne();if(!e)return null;if(!o.length)return n.jsx(Me,{className:r.nodeJobButtonClass,disabled:!0});function s({key:i}){const c=o.find(p=>p.id==i);t(c)}return n.jsx(g.Tooltip,{title:O("View result"),children:o.length>1?n.jsx(g.Dropdown,{menu:{items:o.map(i=>({key:i.id,label:n.jsxs(n.Fragment,{children:[n.jsx(Me,{statusMap:Ke,status:i.status}),n.jsx("time",{children:Q.str2moment(i.updatedAt).format("YYYY-MM-DD HH:mm:ss")})]})})),onClick:s,className:r.dropdownClass},children:n.jsx(Me,{statusMap:Ke,status:o[o.length-1].status,className:r.nodeJobButtonClass})}):n.jsx(Me,{statusMap:Ke,status:o[0].status,onClick:()=>t(o[0]),className:r.nodeJobButtonClass})})}function hn(){return{form:T.useForm()}}const yn=()=>{const{values:e,query:t}=T.useForm(),o=xe(),r=l.useAPIClient(),s=l.useActionContext(),a=T.useField();return{run(){return J(this,null,function*(){const p=Q.parse(o.config)(Ge.toJS(e.config)),d=t("result").take();d.setValue(null),d.setFeedback({}),a.data=a.data||{},a.data.loading=!0;try{const{data:{data:m}}=yield r.resource("flow_nodes").test({values:{config:p,type:o.type}});d.setFeedback({type:m.status>0?"success":"error",messages:m.status>0?[O("Resolved")]:[O("Failed")]}),d.setValue(m.result)}catch(m){d.setFeedback({type:"error",messages:m.message})}a.data.loading=!1,s.setFormValueChanged(!1)})}}},qt=y.createContext([]);function gn({name:e,value:t,onChange:o}){return n.jsxs(g.Space,{children:[n.jsx(Dt,{variableOptions:{},value:`{{${e}}}`,disabled:!0}),n.jsx(l.Variable.Input,{useTypedConstant:["string","number","boolean","date"],value:t,onChange:o})]})}function bn({value:e,onChange:t}){const o=y.useContext(qt);return o.length?n.jsx(n.Fragment,{children:o.map(r=>n.jsx(gn,{name:r,value:we.get(e,r),onChange:s=>{we.set(e,r,s),t(e)}},r))}):n.jsx(g.Empty,{image:g.Empty.PRESENTED_IMAGE_SIMPLE,description:O("No variable"),style:{margin:"1em"}})}function xn(){const e=xe(),{values:t}=T.useForm(),r=Q.parse(t).parameters.map(a=>a.key),s=y.useMemo(()=>fe.createForm(),[]);return n.jsx(Ze.Provider,{value:{type:e.type,config:t},children:n.jsx(qt.Provider,{value:r,children:n.jsx(l.SchemaComponent,{components:{Alert:g.Alert},scope:{useCancelAction:l.useCancelAction,useRunAction:yn},schema:{type:"void",name:"testButton",title:'{{t("Test run")}}',"x-component":"Action","x-component-props":{icon:"CaretRightOutlined"},properties:{modal:{type:"void","x-decorator":"FormV2","x-decorator-props":{form:s},"x-component":"Action.Modal",title:'{{t("Test run", { ns: "workflow" })}}',properties:{alert:{type:"void","x-component":"Alert","x-component-props":{message:'{{t("Test run will do the actual data manipulating or API calling, please use with caution.", { ns: "workflow" })}}',type:"warning",showIcon:!0,className:l.css`
410
+ `}));class be{constructor(){w(this,"title");w(this,"type");w(this,"group");w(this,"description");w(this,"options");w(this,"fieldset");w(this,"presetFieldset");w(this,"branching");w(this,"view");w(this,"scope");w(this,"components");w(this,"end");w(this,"testable")}createDefaultConfig(){return{}}}function fn(){const e=T.useForm(),t=l.useAPIClient(),o=l.useActionContext(),{refresh:r}=l.useResourceActionContext(),s=xe(),{workflow:a}=H();return{run(){return J(this,null,function*(){var c,p;if(a.executed){g.message.error(O("Node in executed workflow cannot be modified"));return}yield e.submit(),yield(p=(c=t.resource("flow_nodes")).update)==null?void 0:p.call(c,{filterByTk:s.id,values:{config:e.values}}),e.setInitialValues(Ge.toJS(e.values)),o.setFormValueChanged(!1),o.setVisible(!1),r()})}}}const Ze=y.createContext({});function xe(){return y.useContext(Ze)}function Be(e=[]){const t=xe();return e.some(o=>we.get(t.config,o)!=null)}function Ut(e,t){const o=[];if(!e)return[];for(let r=e.upstream;r;r=r.upstream)(typeof t!="function"||t(r))&&o.push(r);return o}function Ht(e){const t=[];for(let o=e;o;o=o.upstream)o.upstream&&o.branchIndex!=null&&t.push(o.upstream);return t}function Gt({data:e}){var i;const{styles:t}=ne(),{getAriaLabel:o}=St(e),r=l.usePlugin(le),{Component:s=Tt,end:a}=(i=r.instructions.get(e.type))!=null?i:{};return n.jsx(Ze.Provider,{value:e,children:n.jsxs("div",{className:l.cx(t.nodeBlockClass),children:[n.jsx(s,{data:e}),!a||typeof a=="function"&&!a(e)?n.jsx(no,{"aria-label":o(),upstream:e}):n.jsx("div",{className:"end-sign",children:n.jsx(V.CloseOutlined,{})})]})})}function At(){var m;const{t:e}=X.useTranslation(),t=l.useAPIClient(),{workflow:o,nodes:r,refresh:s}=(m=H())!=null?m:{},a=xe(),{modal:i}=g.App.useApp(),c=t.resource("flow_nodes"),p=y.useCallback(()=>J(this,null,function*(){var h;yield(h=c.destroy)==null?void 0:h.call(c,{filterByTk:a.id}),s()}),[a.id,s,c]),d=y.useCallback(()=>J(this,null,function*(){const h=r.filter(f=>f===a?!1:Q.parse(f.config).parameters.filter(({key:M})=>M.startsWith(`$jobsMapByNodeKey.${a.key}.`)||M===`$jobsMapByNodeKey.${a.key}`).length);if(h.length){i.error({title:O("Can not delete"),content:O("The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.",{nodes:h.map(f=>`#${f.id}`).join(", ")})});return}const b=!r.find(f=>f.upstream===a&&f.branchIndex!=null)?e("Are you sure you want to delete it?"):O("This node contains branches, deleting will also be preformed to them, are you sure?");i.confirm({title:e("Delete"),content:b,onOk:p})}),[a,i,r,p,e]);return o?o.executed?null:n.jsx(g.Button,{type:"text",shape:"circle",icon:n.jsx(V.DeleteOutlined,{}),onClick:d,className:"workflow-node-remove-button",size:"small"}):null}function Ft(){var a;const{execution:e,setViewJob:t}=H(),{jobs:o}=(a=xe())!=null?a:{},{styles:r}=ne();if(!e)return null;if(!o.length)return n.jsx(Me,{className:r.nodeJobButtonClass,disabled:!0});function s({key:i}){const c=o.find(p=>p.id==i);t(c)}return n.jsx(g.Tooltip,{title:O("View result"),children:o.length>1?n.jsx(g.Dropdown,{menu:{items:o.map(i=>({key:i.id,label:n.jsxs(n.Fragment,{children:[n.jsx(Me,{statusMap:Ke,status:i.status}),n.jsx("time",{children:Q.str2moment(i.updatedAt).format("YYYY-MM-DD HH:mm:ss")})]})})),onClick:s,className:r.dropdownClass},children:n.jsx(Me,{statusMap:Ke,status:o[o.length-1].status,className:r.nodeJobButtonClass})}):n.jsx(Me,{statusMap:Ke,status:o[0].status,onClick:()=>t(o[0]),className:r.nodeJobButtonClass})})}function hn(){return{form:T.useForm()}}const yn=()=>{const{values:e,query:t}=T.useForm(),o=xe(),r=l.useAPIClient(),s=l.useActionContext(),a=T.useField();return{run(){return J(this,null,function*(){const p=Q.parse(o.config)(Ge.toJS(e.config)),d=t("result").take();d.setValue(null),d.setFeedback({}),a.data=a.data||{},a.data.loading=!0;try{const{data:{data:m}}=yield r.resource("flow_nodes").test({values:{config:p,type:o.type}});d.setFeedback({type:m.status>0?"success":"error",messages:m.status>0?[O("Resolved")]:[O("Failed")]}),d.setValue(m.result)}catch(m){d.setFeedback({type:"error",messages:m.message})}a.data.loading=!1,s.setFormValueChanged(!1)})}}},qt=y.createContext([]);function gn({name:e,value:t,onChange:o}){return n.jsxs(g.Space,{children:[n.jsx(Dt,{variableOptions:{},value:`{{${e}}}`,disabled:!0}),n.jsx(l.Variable.Input,{useTypedConstant:["string","number","boolean","date"],value:t,onChange:o})]})}function bn({value:e,onChange:t}){const o=y.useContext(qt);return o.length?n.jsx(n.Fragment,{children:o.map(r=>n.jsx(gn,{name:r,value:we.get(e,r),onChange:s=>{we.set(e,r,s),t(e)}},r))}):n.jsx(g.Empty,{image:g.Empty.PRESENTED_IMAGE_SIMPLE,description:O("No variable"),style:{margin:"1em"}})}function xn(){const e=xe(),{values:t}=T.useForm(),r=Q.parse(t).parameters.map(a=>a.key),s=y.useMemo(()=>fe.createForm(),[]);return n.jsx(Ze.Provider,{value:A(C({},e),{config:t}),children:n.jsx(qt.Provider,{value:r,children:n.jsx(l.SchemaComponent,{components:{Alert:g.Alert,TestFormFieldset:bn},scope:{useCancelAction:l.useCancelAction,useRunAction:yn},schema:{type:"void",name:"testButton",title:'{{t("Test run")}}',"x-component":"Action","x-component-props":{icon:"CaretRightOutlined"},properties:{modal:{type:"void","x-decorator":"FormV2","x-decorator-props":{form:s},"x-component":"Action.Modal",title:'{{t("Test run", { ns: "workflow" })}}',properties:{alert:{type:"void","x-component":"Alert","x-component-props":{message:'{{t("Test run will do the actual data manipulating or API calling, please use with caution.", { ns: "workflow" })}}',type:"warning",showIcon:!0,className:l.css`
411
411
  margin-bottom: 1em;
412
- `}},config:{type:"object",title:'{{t("Replace variables", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":bn},actions:{type:"void","x-component":"ActionBar",properties:{submit:{type:"void",title:'{{t("Run")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useRunAction }}"}}}},result:{type:"string",title:'{{t("Result", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"Input.JSON","x-component-props":{autoSize:{minRows:5,maxRows:20},style:{whiteSpace:"pre",cursor:"text"}},"x-pattern":"disabled"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{type:"void",title:'{{t("Close")}}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}}}}}}}}})})})}function Tt(e){var I;const{data:t,children:o}=e,r=l.useCompile(),s=l.useAPIClient(),{workflow:a,refresh:i}=(I=H())!=null?I:{},{styles:c}=ne(),d=l.usePlugin(le).instructions.get(t.type),m=a.executed?'{{t("View")}}':'{{t("Configure")}}',[h,v]=y.useState(t.title),[b,f]=y.useState(!1),[k,F]=y.useState(!1),M=y.useMemo(()=>{const D=we.cloneDeep(t.config);return fe.createForm({initialValues:D,disabled:a.executed})},[t,a]),S=y.useCallback(D=>{f(D),D||M.reset()},[M]),E=y.useCallback(function(D){return J(this,null,function*(){var B,G;const N=D||r(d==null?void 0:d.title);v(N),N!==t.title&&(yield(G=(B=s.resource("flow_nodes")).update)==null?void 0:G.call(B,{filterByTk:t.id,values:{title:N}}),i())})},[t,d]),L=y.useCallback(function(D){if(D.target===D.currentTarget){f(!0);return}const N=new Set(["workflow-node-meta","workflow-node-config-button","ant-input-disabled"]);for(let B=D.target;B&&B!==D.currentTarget&&B!==document.documentElement;B=B.parentNode)if(Array.from(B.classList).some(G=>N.has(G))){f(!0),D.stopPropagation();return}},[]);if(!d)return n.jsx("div",{className:l.cx(c.nodeClass,`workflow-node-type-${t.type}`),children:n.jsx(g.Tooltip,{title:O("Node with unknown type will cause error. Please delete it or check plugin which provide this type."),children:n.jsxs("div",{role:"button","aria-label":`_untyped-${h}`,className:l.cx(c.nodeCardClass,"invalid"),children:[n.jsxs("div",{className:c.nodeHeaderClass,children:[n.jsxs("div",{className:l.cx(c.nodeMetaClass,"workflow-node-meta"),children:[n.jsx(g.Tag,{color:"error",children:O("Unknown node")}),n.jsx("span",{className:"workflow-node-id",children:t.id})]}),n.jsxs("div",{className:"workflow-node-actions",children:[n.jsx(At,{}),n.jsx(Ft,{})]})]}),n.jsx(g.Input.TextArea,{value:h,disabled:!0,autoSize:!0})]})})});const $=r(d.title);return n.jsxs("div",{className:l.cx(c.nodeClass,`workflow-node-type-${t.type}`),children:[n.jsxs("div",{role:"button","aria-label":`${$}-${h}`,className:l.cx(c.nodeCardClass,{configuring:b}),onClick:L,children:[n.jsxs("div",{className:c.nodeHeaderClass,children:[n.jsxs("div",{className:l.cx(c.nodeMetaClass,"workflow-node-meta"),children:[n.jsx(g.Tag,{children:$}),n.jsx("span",{className:"workflow-node-id",children:t.id})]}),n.jsxs("div",{className:"workflow-node-actions",children:[n.jsx(At,{}),n.jsx(Ft,{})]})]}),n.jsx(g.Input.TextArea,{disabled:a.executed,value:h,onChange:D=>v(D.target.value),onBlur:D=>E(D.target.value),autoSize:!0}),n.jsx(l.ActionContextProvider,{value:{visible:b,setVisible:S,formValueChanged:k,setFormValueChanged:F},children:n.jsx(l.FormProvider,{form:M,children:n.jsx(l.SchemaComponent,{distributed:!1,scope:A(C({},d.scope),{useFormProviderProps:hn,useUpdateAction:fn}),components:d.components,schema:{type:"void",properties:A(C({},d.view?{view:d.view}:{}),{button:{type:"void","x-content":m,"x-component":g.Button,"x-component-props":{type:"link",className:"workflow-node-config-button"}},[t.id]:{type:"void",title:n.jsxs("div",{className:l.css`
412
+ `}},config:{type:"object",title:'{{t("Replace variables", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"TestFormFieldset"},actions:{type:"void","x-component":"ActionBar",properties:{submit:{type:"void",title:'{{t("Run")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useRunAction }}"}}}},result:{type:"string",title:'{{t("Result", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"Input.JSON","x-component-props":{autoSize:{minRows:5,maxRows:20},style:{whiteSpace:"pre",cursor:"text"}},"x-pattern":"disabled"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{type:"void",title:'{{t("Close")}}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}}}}}}}}})})})}function Tt(e){var I;const{data:t,children:o}=e,r=l.useCompile(),s=l.useAPIClient(),{workflow:a,refresh:i}=(I=H())!=null?I:{},{styles:c}=ne(),d=l.usePlugin(le).instructions.get(t.type),m=a.executed?'{{t("View")}}':'{{t("Configure")}}',[h,v]=y.useState(t.title),[b,f]=y.useState(!1),[k,F]=y.useState(!1),M=y.useMemo(()=>{const D=we.cloneDeep(t.config);return fe.createForm({initialValues:D,disabled:a.executed})},[t,a]),S=y.useCallback(D=>{f(D),D||M.reset()},[M]),E=y.useCallback(function(D){return J(this,null,function*(){var B,G;const N=D||r(d==null?void 0:d.title);v(N),N!==t.title&&(yield(G=(B=s.resource("flow_nodes")).update)==null?void 0:G.call(B,{filterByTk:t.id,values:{title:N}}),i())})},[t,d]),L=y.useCallback(function(D){if(D.target===D.currentTarget){f(!0);return}const N=new Set(["workflow-node-meta","workflow-node-config-button","ant-input-disabled"]);for(let B=D.target;B&&B!==D.currentTarget&&B!==document.documentElement;B=B.parentNode)if(Array.from(B.classList).some(G=>N.has(G))){f(!0),D.stopPropagation();return}},[]);if(!d)return n.jsx("div",{className:l.cx(c.nodeClass,`workflow-node-type-${t.type}`),children:n.jsx(g.Tooltip,{title:O("Node with unknown type will cause error. Please delete it or check plugin which provide this type."),children:n.jsxs("div",{role:"button","aria-label":`_untyped-${h}`,className:l.cx(c.nodeCardClass,"invalid"),children:[n.jsxs("div",{className:c.nodeHeaderClass,children:[n.jsxs("div",{className:l.cx(c.nodeMetaClass,"workflow-node-meta"),children:[n.jsx(g.Tag,{color:"error",children:O("Unknown node")}),n.jsx("span",{className:"workflow-node-id",children:t.id})]}),n.jsxs("div",{className:"workflow-node-actions",children:[n.jsx(At,{}),n.jsx(Ft,{})]})]}),n.jsx(g.Input.TextArea,{value:h,disabled:!0,autoSize:!0})]})})});const $=r(d.title);return n.jsxs("div",{className:l.cx(c.nodeClass,`workflow-node-type-${t.type}`),children:[n.jsxs("div",{role:"button","aria-label":`${$}-${h}`,className:l.cx(c.nodeCardClass,{configuring:b}),onClick:L,children:[n.jsxs("div",{className:c.nodeHeaderClass,children:[n.jsxs("div",{className:l.cx(c.nodeMetaClass,"workflow-node-meta"),children:[n.jsx(g.Tag,{children:$}),n.jsx("span",{className:"workflow-node-id",children:t.id})]}),n.jsxs("div",{className:"workflow-node-actions",children:[n.jsx(At,{}),n.jsx(Ft,{})]})]}),n.jsx(g.Input.TextArea,{disabled:a.executed,value:h,onChange:D=>v(D.target.value),onBlur:D=>E(D.target.value),autoSize:!0}),n.jsx(l.ActionContextProvider,{value:{visible:b,setVisible:S,formValueChanged:k,setFormValueChanged:F},children:n.jsx(l.FormProvider,{form:M,children:n.jsx(l.SchemaComponent,{distributed:!1,scope:A(C({},d.scope),{useFormProviderProps:hn,useUpdateAction:fn}),components:d.components,schema:{type:"void",properties:A(C({},d.view?{view:d.view}:{}),{button:{type:"void","x-content":m,"x-component":g.Button,"x-component-props":{type:"link",className:"workflow-node-config-button"}},[t.id]:{type:"void",title:n.jsxs("div",{className:l.css`
413
413
  display: flex;
414
414
  justify-content: space-between;
415
415
 
@@ -11,24 +11,24 @@ module.exports = {
11
11
  "react": "18.2.0",
12
12
  "@formily/core": "2.3.0",
13
13
  "@formily/react": "2.3.0",
14
- "@nocobase/client": "1.4.0-beta.9",
15
- "@nocobase/utils": "1.4.0-beta.9",
14
+ "@nocobase/client": "1.4.0",
15
+ "@nocobase/utils": "1.4.0",
16
16
  "antd": "5.12.8",
17
17
  "@ant-design/icons": "5.2.6",
18
18
  "react-router-dom": "6.21.0",
19
19
  "react-i18next": "11.18.6",
20
20
  "@formily/shared": "2.3.2",
21
21
  "lodash": "4.17.21",
22
- "@nocobase/database": "1.4.0-beta.9",
23
- "@nocobase/server": "1.4.0-beta.9",
24
- "@nocobase/logger": "1.4.0-beta.9",
25
- "@nocobase/evaluators": "1.4.0-beta.9",
22
+ "@nocobase/database": "1.4.0",
23
+ "@nocobase/server": "1.4.0",
24
+ "@nocobase/logger": "1.4.0",
25
+ "@nocobase/evaluators": "1.4.0",
26
26
  "@formily/antd-v5": "1.1.9",
27
27
  "@formily/reactive": "2.3.0",
28
- "@nocobase/actions": "1.4.0-beta.9",
28
+ "@nocobase/actions": "1.4.0",
29
29
  "dayjs": "1.11.10",
30
- "@nocobase/data-source-manager": "1.4.0-beta.9",
30
+ "@nocobase/data-source-manager": "1.4.0",
31
31
  "sequelize": "6.35.2",
32
- "@nocobase/plugin-workflow-test": "1.4.0-beta.9",
33
- "@nocobase/test": "1.4.0-beta.9"
32
+ "@nocobase/plugin-workflow-test": "1.4.0",
33
+ "@nocobase/test": "1.4.0"
34
34
  };
@@ -1 +1 @@
1
- {"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2024-11-28T03:10:08.781Z"}
1
+ {"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2024-12-03T13:10:11.327Z"}
@@ -1 +1 @@
1
- {"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"8.0.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","preprepare":"rm -rf dist","prepare":"tsc -p tsconfig.json && tsc -p tsconfig-esm.json","postprepare":"bash fixup.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"c8 tap","snap":"c8 tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig tsconfig-esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile"},"main":"./dist/cjs/index-cjs.js","module":"./dist/mjs/index.js","types":"./dist/mjs/index.d.ts","exports":{"./min":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.min.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.min.js"}},".":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index-cjs.js"}}},"repository":"git://github.com/isaacs/node-lru-cache.git","devDependencies":{"@size-limit/preset-small-lib":"^7.0.8","@types/node":"^17.0.31","@types/tap":"^15.0.6","benchmark":"^2.1.4","c8":"^7.11.2","clock-mock":"^1.0.6","esbuild":"^0.17.11","eslint-config-prettier":"^8.5.0","marked":"^4.2.12","mkdirp":"^2.1.5","prettier":"^2.6.2","size-limit":"^7.0.8","tap":"^16.3.4","ts-node":"^10.7.0","tslib":"^2.4.0","typedoc":"^0.23.24","typescript":"^4.6.4"},"license":"ISC","files":["dist"],"engines":{"node":">=16.14"},"prettier":{"semi":false,"printWidth":70,"tabWidth":2,"useTabs":false,"singleQuote":true,"jsxSingleQuote":false,"bracketSameLine":true,"arrowParens":"avoid","endOfLine":"lf"},"tap":{"coverage":false,"node-arg":["--expose-gc","--no-warnings","--loader","ts-node/esm"],"ts":false},"size-limit":[{"path":"./dist/mjs/index.js"}],"_lastModified":"2024-11-28T03:10:08.430Z"}
1
+ {"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"8.0.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","preprepare":"rm -rf dist","prepare":"tsc -p tsconfig.json && tsc -p tsconfig-esm.json","postprepare":"bash fixup.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"c8 tap","snap":"c8 tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig tsconfig-esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile"},"main":"./dist/cjs/index-cjs.js","module":"./dist/mjs/index.js","types":"./dist/mjs/index.d.ts","exports":{"./min":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.min.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.min.js"}},".":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index-cjs.js"}}},"repository":"git://github.com/isaacs/node-lru-cache.git","devDependencies":{"@size-limit/preset-small-lib":"^7.0.8","@types/node":"^17.0.31","@types/tap":"^15.0.6","benchmark":"^2.1.4","c8":"^7.11.2","clock-mock":"^1.0.6","esbuild":"^0.17.11","eslint-config-prettier":"^8.5.0","marked":"^4.2.12","mkdirp":"^2.1.5","prettier":"^2.6.2","size-limit":"^7.0.8","tap":"^16.3.4","ts-node":"^10.7.0","tslib":"^2.4.0","typedoc":"^0.23.24","typescript":"^4.6.4"},"license":"ISC","files":["dist"],"engines":{"node":">=16.14"},"prettier":{"semi":false,"printWidth":70,"tabWidth":2,"useTabs":false,"singleQuote":true,"jsxSingleQuote":false,"bracketSameLine":true,"arrowParens":"avoid","endOfLine":"lf"},"tap":{"coverage":false,"node-arg":["--expose-gc","--no-warnings","--loader","ts-node/esm"],"ts":false},"size-limit":[{"path":"./dist/mjs/index.js"}],"_lastModified":"2024-12-03T13:10:10.967Z"}
package/package.json CHANGED
@@ -4,13 +4,13 @@
4
4
  "displayName.zh-CN": "工作流",
5
5
  "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
6
6
  "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
7
- "version": "1.4.0-beta.9",
7
+ "version": "1.4.0",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/workflow",
11
11
  "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow",
12
12
  "dependencies": {
13
- "@nocobase/plugin-workflow-test": "1.4.0-beta.9"
13
+ "@nocobase/plugin-workflow-test": "1.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@ant-design/icons": "5.x",
@@ -44,7 +44,7 @@
44
44
  "@nocobase/test": "1.x",
45
45
  "@nocobase/utils": "1.x"
46
46
  },
47
- "gitHead": "202544bfa8ad5ed3a443ec4be9ee3f121af04937",
47
+ "gitHead": "e37782acdee701524dc0bb385c160f1fdf5c4b43",
48
48
  "keywords": [
49
49
  "Workflow"
50
50
  ]