@nocobase/plugin-workflow-request-interceptor 2.1.0-alpha.13 → 2.1.0-alpha.15

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.
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@formily/react"),require("@nocobase/client"),require("@nocobase/plugin-workflow/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-workflow-request-interceptor",["react","@formily/react","@nocobase/client","@nocobase/plugin-workflow/client"],t):"object"==typeof exports?exports["@nocobase/plugin-workflow-request-interceptor"]=t(require("react"),require("@formily/react"),require("@nocobase/client"),require("@nocobase/plugin-workflow/client")):e["@nocobase/plugin-workflow-request-interceptor"]=t(e.react,e["@formily/react"],e["@nocobase/client"],e["@nocobase/plugin-workflow/client"])}(self,function(e,t,r,o){return function(){"use strict";var n={230:function(e){e.exports=t},342:function(e){e.exports=r},990:function(e){e.exports=o},155:function(t){t.exports=e}},i={};function c(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,c),r.exports}c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},c.d=function(e,t){for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.g.importScripts&&(a=c.g.location+"");var a,l=c.g.document;if(!a&&l&&(l.currentScript&&"SCRIPT"===l.currentScript.tagName.toUpperCase()&&(a=l.currentScript.src),!a)){var u=l.getElementsByTagName("script");if(u.length)for(var s=u.length-1;s>-1&&(!a||!/^http(s?):/.test(a));)a=u[s--].src}if(!a)throw Error("Automatic publicPath is not supported in this browser");c.p=a.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var p={},f=window.__nocobase_public_path__||"";if(!f&&window.location&&window.location.pathname){var b=window.location.pathname||"/",d=b.indexOf("/v2/");f=d>=0?b.slice(0,d+1):"/"}return f&&(f=f.replace(/\/v2\/?$/,"/")),f||(f="/"),"/"!==f.charAt(f.length-1)&&(f+="/"),c.p=f+"static/plugins/@nocobase/plugin-workflow-request-interceptor/dist/client/",!function(){c.r(p),c.d(p,{PluginWorkflowRequestInterceptorClient:function(){return T},default:function(){return _}});var e=c(342),t=c(990),r="@nocobase/plugin-workflow-request-interceptor";function o(t){var o,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.i18n.t(t,(o=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}({},i),n=n={ns:r},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(n,e))}),o))}var n=c(230),i="destroy",a=c(155),l=c.n(a);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){s(e,t,r[t])})}return e}function d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||m(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}var v=[{label:"{{t('Create record', { ns: '".concat(r,"' })}}"),value:"create"},{label:"{{t('Update record', { ns: '".concat(r,"' })}}"),value:"update"},{label:"{{t('Delete record', { ns: '".concat(r,"' })}}"),value:i}];function w(r,n){var c,a,l,u,s=(0,e.useCompile)(),p=(0,t.useGetDataSourceCollectionManager)(),f=(0,t.getCollectionFieldOptions)(d(b({appends:["user"]},n),{fields:[{collectionName:"users",name:"user",type:"hasOne",target:"users",uiSchema:{title:o("User acted")}},{name:"roleName",uiSchema:{title:o("Role of user acted")}}],compile:s,collectionManager:p})),y=[{label:o("Parameters"),value:"params",children:(a=(function(e){if(Array.isArray(e))return e}(c=(0,e.parseCollectionName)(r.collection))||function(e){var t,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n=[],i=!0,c=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(n.push(t.value),1!==n.length);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(c)throw r}}return n}}(c)||m(c,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],l=(0,e.useCompile)(),u=(0,t.useGetDataSourceCollectionManager)(a),[{label:o("ID"),value:"filterByTk"}].concat(g(r.action!==i?[{label:o("Values submitted"),value:"values",children:(0,t.getCollectionFieldOptions)(d(b({},n),{appends:null,depth:3,collection:r.collection,compile:l,collectionManager:u}))}]:[])))}];return g(f).concat(g(y))}var O=function(o){var c;if("function"!=typeof o&&null!==o)throw TypeError("Super expression must either be null or a function");function a(){var o,c,u;if(!(this instanceof a))throw TypeError("Cannot call a class as a function");return c=a,u=arguments,c=f(c),s(o=function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,h()?Reflect.construct(c,u||[],f(this).constructor):c.apply(this,u)),"sync",!0),s(o,"title",'{{t("Pre-action event", { ns: "'.concat(r,'" })}}')),s(o,"description",'{{t(\'Triggered before the execution of a request initiated through an action button or API, such as before adding, updating, or deleting data. Suitable for data validation and logic judgment before action, and the request could be rejected by using the "End process" node.\', { ns: "'.concat(r,'" })}}')),s(o,"presetFieldset",{collection:{type:"string",title:'{{t("Collection")}}',required:!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader"}}),s(o,"fieldset",{collection:s({type:"string",title:'{{t("Collection")}}',required:!0,"x-disabled":!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader"},"x-reactions",[{target:"changed",effects:["onFieldValueChange"],fulfill:{state:{value:[]}}}]),global:{type:"boolean",title:'{{t("Trigger mode", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"RadioWithTooltip","x-component-props":{direction:"vertical",options:[{label:'{{t("Local mode, triggered before executing the actions bound to this workflow", { ns: "'.concat(r,'" })}}'),value:!1},{label:'{{t("Global mode, triggered before executing the following actions", { ns: "'.concat(r,'" })}}'),value:!0}]},default:!1},actions:{type:"number",title:'{{t("Select actions", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"CheckboxGroupWithTooltip","x-component-props":{direction:"vertical",options:v},required:!0,"x-reactions":[{dependencies:["collection","global"],fulfill:{state:{visible:"{{!!$deps[0] && !!$deps[1]}}"}}}]}}),s(o,"triggerFieldset",{action:{type:"string",title:'{{t("Action type")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{allowClear:!1},enum:v,default:"create",required:!0},target:{type:"string",title:'{{t("Record to submit", { ns: "'.concat(r,'" })}}'),description:'{{t("Choose a record or primary key of a record in the collection to trigger.", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"TriggerCollectionRecordSelect",default:null,required:!0},userId:{type:"number",title:'{{t("User acted", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableWrapper","x-component-props":{nullable:!1,changeOnSelect:!0,variableOptions:{types:[function(e){return e.isForeignKey||"context"===e.type?"users"===e.target:"users"===e.collectionName&&"id"===e.name}]},render:function(t){return l().createElement(e.RemoteSelect,b({fieldNames:{label:"nickname",value:"id"},service:{resource:"users"},manual:!1},t))}},default:null,required:!0},roleName:{type:"string",title:'{{t("Role of user acted", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableWrapper","x-component-props":{nullable:!1,changeOnSelect:!0,variableOptions:{types:[function(e){return e.isForeignKey?"roles"===e.target:"roles"===e.collectionName&&"name"===e.name}]},render:function(t){return l().createElement(e.RemoteSelect,b({fieldNames:{label:"title",value:"name"},service:{resource:"roles"},manual:!1},t))}},default:null}}),s(o,"scope",{useCollectionDataSource:e.useCollectionDataSource,useValueObject:function(){return(0,n.useForm)().values.action!==i}}),s(o,"components",{FieldsSelect:t.FieldsSelect,RadioWithTooltip:t.RadioWithTooltip,CheckboxGroupWithTooltip:t.CheckboxGroupWithTooltip,WorkflowVariableWrapper:t.WorkflowVariableWrapper,TriggerCollectionRecordSelect:t.TriggerCollectionRecordSelect}),s(o,"isActionTriggerable_deprecated",function(e,t){return!e.global&&["submit","customize:save","customize:update","destroy"].includes(t.buttonAction)}),s(o,"actionTriggerableScope",function(e,t){return!e.global&&["form"].includes(t)}),s(o,"useVariables",w),o}return a.prototype=Object.create(o&&o.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),o&&y(a,o),c=[{key:"validate",value:function(e){return e.collection}},{key:"useInitializers",value:function(e){return e.collection?{name:"triggerData",type:"item",key:"triggerData",title:'{{t("Trigger data", { ns: "workflow" })}}',Component:t.CollectionBlockInitializer,collection:e.collection,dataPath:"$context.params.values"}:null}},{key:"getCreateModelMenuItem",value:function(e){return{key:"triggerData",label:'{{t("Trigger data", { ns: "workflow" })}}',useModel:"NodeDetailsModel",createModelOptions:{use:"NodeDetailsModel",stepParams:{resourceSettings:{init:{dataSourceKey:"main",collectionName:e.config.collection,dataPath:"$context.params.values"}},cardSettings:{titleDescription:{title:'{{t("Trigger data", { ns: "workflow" })}}'}}},subModels:{grid:{use:"NodeDetailsGridModel",subType:"object"}}}}}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(a.prototype,c),a}(t.Trigger);function j(e,t,r,o,n,i,c){try{var a=e[i](c),l=a.value}catch(e){r(e);return}a.done?t(l):Promise.resolve(l).then(o,n)}function S(e,t,r){return(S=C()?Reflect.construct:function(e,t,r){var o=[null];o.push.apply(o,t);var n=new(Function.bind.apply(e,o));return r&&P(n,r.prototype),n}).apply(null,arguments)}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e,t){return(P=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return S(e,arguments,x(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),P(r,e)})(e)}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(C=function(){return!!e})()}var T=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=x(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,C()?Reflect.construct(e,t||[],x(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&P(r,e),t=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(c,"next",{value:l(0)}),a(c,"throw",{value:l(1)}),a(c,"return",{value:l(2)}),"function"==typeof Symbol&&a(c,Symbol.iterator,{value:function(){return this}}),c;function l(a){return function(l){var u=[a,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&u[0]?o.return:u[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,u[1])).done)return n;switch(o=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,o=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!n||u[1]>n[0]&&u[1]<n[3])){i.label=u[1];break}if(6===u[0]&&i.label<n[1]){i.label=n[1],n=u;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(u);break}n[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],o=0}finally{r=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return this.app.pm.get("workflow").registerTrigger("request-interception",O),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,n){var i=e.apply(t,r);function c(e){j(i,o,n,c,a,"next",e)}function a(e){j(i,o,n,c,a,"throw",e)}c(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(r.prototype,t),r}(k(e.Plugin)),_=T}(),p}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@nocobase/client"),require("@formily/react"),require("@nocobase/plugin-workflow/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-workflow-request-interceptor",["react","@nocobase/client","@formily/react","@nocobase/plugin-workflow/client"],t):"object"==typeof exports?exports["@nocobase/plugin-workflow-request-interceptor"]=t(require("react"),require("@nocobase/client"),require("@formily/react"),require("@nocobase/plugin-workflow/client")):e["@nocobase/plugin-workflow-request-interceptor"]=t(e.react,e["@nocobase/client"],e["@formily/react"],e["@nocobase/plugin-workflow/client"])}(self,function(e,t,r,o){return function(){"use strict";var n={230:function(e){e.exports=r},342:function(e){e.exports=t},990:function(e){e.exports=o},155:function(t){t.exports=e}},i={};function c(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,c),r.exports}c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},c.d=function(e,t){for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.g.importScripts&&(l=c.g.location+"");var l,a=c.g.document;if(!l&&a&&(a.currentScript&&"SCRIPT"===a.currentScript.tagName.toUpperCase()&&(l=a.currentScript.src),!l)){var u=a.getElementsByTagName("script");if(u.length)for(var s=u.length-1;s>-1&&(!l||!/^http(s?):/.test(l));)l=u[s--].src}if(!l)throw Error("Automatic publicPath is not supported in this browser");c.p=l.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var p={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-workflow-request-interceptor/dist/client/")}if(!e){if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var o=window.location.pathname||"/",n=o.indexOf("/v2/");e=n>=0?o.slice(0,n+1):"/"}e&&(e=e.replace(/\/v2\/?$/,"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-workflow-request-interceptor/dist/client/"}c.p=e}(),!function(){c.r(p),c.d(p,{PluginWorkflowRequestInterceptorClient:function(){return C},default:function(){return T}});var e=c(342),t=c(990),r="@nocobase/plugin-workflow-request-interceptor";function o(t){var o,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.i18n.t(t,(o=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}({},i),n=n={ns:r},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(n,e))}),o))}var n=c(230),i="destroy",l=c(155),a=c.n(l);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){s(e,t,r[t])})}return e}function d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||m(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}var v=[{label:"{{t('Create record', { ns: '".concat(r,"' })}}"),value:"create"},{label:"{{t('Update record', { ns: '".concat(r,"' })}}"),value:"update"},{label:"{{t('Delete record', { ns: '".concat(r,"' })}}"),value:i}];function w(r,n){var c,l,a,u,s=(0,e.useCompile)(),p=(0,t.useGetDataSourceCollectionManager)(),f=(0,t.getCollectionFieldOptions)(d(b({appends:["user"]},n),{fields:[{collectionName:"users",name:"user",type:"hasOne",target:"users",uiSchema:{title:o("User acted")}},{name:"roleName",uiSchema:{title:o("Role of user acted")}}],compile:s,collectionManager:p})),y=[{label:o("Parameters"),value:"params",children:(l=(function(e){if(Array.isArray(e))return e}(c=(0,e.parseCollectionName)(r.collection))||function(e){var t,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n=[],i=!0,c=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(n.push(t.value),1!==n.length);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(c)throw r}}return n}}(c)||m(c,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],a=(0,e.useCompile)(),u=(0,t.useGetDataSourceCollectionManager)(l),[{label:o("ID"),value:"filterByTk"}].concat(g(r.action!==i?[{label:o("Values submitted"),value:"values",children:(0,t.getCollectionFieldOptions)(d(b({},n),{appends:null,depth:3,collection:r.collection,compile:a,collectionManager:u}))}]:[])))}];return g(f).concat(g(y))}var O=function(o){var c;if("function"!=typeof o&&null!==o)throw TypeError("Super expression must either be null or a function");function l(){var o,c,u;if(!(this instanceof l))throw TypeError("Cannot call a class as a function");return c=l,u=arguments,c=f(c),s(o=function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,h()?Reflect.construct(c,u||[],f(this).constructor):c.apply(this,u)),"sync",!0),s(o,"title",'{{t("Pre-action event", { ns: "'.concat(r,'" })}}')),s(o,"description",'{{t(\'Triggered before the execution of a request initiated through an action button or API, such as before adding, updating, or deleting data. Suitable for data validation and logic judgment before action, and the request could be rejected by using the "End process" node.\', { ns: "'.concat(r,'" })}}')),s(o,"presetFieldset",{collection:{type:"string",title:'{{t("Collection")}}',required:!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader"}}),s(o,"fieldset",{collection:s({type:"string",title:'{{t("Collection")}}',required:!0,"x-disabled":!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader"},"x-reactions",[{target:"changed",effects:["onFieldValueChange"],fulfill:{state:{value:[]}}}]),global:{type:"boolean",title:'{{t("Trigger mode", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"RadioWithTooltip","x-component-props":{direction:"vertical",options:[{label:'{{t("Local mode, triggered before executing the actions bound to this workflow", { ns: "'.concat(r,'" })}}'),value:!1},{label:'{{t("Global mode, triggered before executing the following actions", { ns: "'.concat(r,'" })}}'),value:!0}]},default:!1},actions:{type:"number",title:'{{t("Select actions", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"CheckboxGroupWithTooltip","x-component-props":{direction:"vertical",options:v},required:!0,"x-reactions":[{dependencies:["collection","global"],fulfill:{state:{visible:"{{!!$deps[0] && !!$deps[1]}}"}}}]}}),s(o,"triggerFieldset",{action:{type:"string",title:'{{t("Action type")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{allowClear:!1},enum:v,default:"create",required:!0},target:{type:"string",title:'{{t("Record to submit", { ns: "'.concat(r,'" })}}'),description:'{{t("Choose a record or primary key of a record in the collection to trigger.", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"TriggerCollectionRecordSelect",default:null,required:!0},userId:{type:"number",title:'{{t("User acted", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableWrapper","x-component-props":{nullable:!1,changeOnSelect:!0,variableOptions:{types:[function(e){return e.isForeignKey||"context"===e.type?"users"===e.target:"users"===e.collectionName&&"id"===e.name}]},render:function(t){return a().createElement(e.RemoteSelect,b({fieldNames:{label:"nickname",value:"id"},service:{resource:"users"},manual:!1},t))}},default:null,required:!0},roleName:{type:"string",title:'{{t("Role of user acted", { ns: "'.concat(r,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableWrapper","x-component-props":{nullable:!1,changeOnSelect:!0,variableOptions:{types:[function(e){return e.isForeignKey?"roles"===e.target:"roles"===e.collectionName&&"name"===e.name}]},render:function(t){return a().createElement(e.RemoteSelect,b({fieldNames:{label:"title",value:"name"},service:{resource:"roles"},manual:!1},t))}},default:null}}),s(o,"scope",{useCollectionDataSource:e.useCollectionDataSource,useValueObject:function(){return(0,n.useForm)().values.action!==i}}),s(o,"components",{FieldsSelect:t.FieldsSelect,RadioWithTooltip:t.RadioWithTooltip,CheckboxGroupWithTooltip:t.CheckboxGroupWithTooltip,WorkflowVariableWrapper:t.WorkflowVariableWrapper,TriggerCollectionRecordSelect:t.TriggerCollectionRecordSelect}),s(o,"isActionTriggerable_deprecated",function(e,t){return!e.global&&["submit","customize:save","customize:update","destroy"].includes(t.buttonAction)}),s(o,"actionTriggerableScope",function(e,t){return!e.global&&["form"].includes(t)}),s(o,"useVariables",w),o}return l.prototype=Object.create(o&&o.prototype,{constructor:{value:l,writable:!0,configurable:!0}}),o&&y(l,o),c=[{key:"validate",value:function(e){return e.collection}},{key:"useInitializers",value:function(e){return e.collection?{name:"triggerData",type:"item",key:"triggerData",title:'{{t("Trigger data", { ns: "workflow" })}}',Component:t.CollectionBlockInitializer,collection:e.collection,dataPath:"$context.params.values"}:null}},{key:"getCreateModelMenuItem",value:function(e){return{key:"triggerData",label:'{{t("Trigger data", { ns: "workflow" })}}',useModel:"NodeDetailsModel",createModelOptions:{use:"NodeDetailsModel",stepParams:{resourceSettings:{init:{dataSourceKey:"main",collectionName:e.config.collection,dataPath:"$context.params.values"}},cardSettings:{titleDescription:{title:'{{t("Trigger data", { ns: "workflow" })}}'}}},subModels:{grid:{use:"NodeDetailsGridModel",subType:"object"}}}}}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(l.prototype,c),l}(t.Trigger);function j(e,t,r,o,n,i,c){try{var l=e[i](c),a=l.value}catch(e){r(e);return}l.done?t(a):Promise.resolve(a).then(o,n)}function S(e,t,r){return(S=_()?Reflect.construct:function(e,t,r){var o=[null];o.push.apply(o,t);var n=new(Function.bind.apply(e,o));return r&&P(n,r.prototype),n}).apply(null,arguments)}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e,t){return(P=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return S(e,arguments,x(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),P(r,e)})(e)}function _(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_=function(){return!!e})()}var C=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=x(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,_()?Reflect.construct(e,t||[],x(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&P(r,e),t=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(c,"next",{value:a(0)}),l(c,"throw",{value:a(1)}),l(c,"return",{value:a(2)}),"function"==typeof Symbol&&l(c,Symbol.iterator,{value:function(){return this}}),c;function a(l){return function(a){var u=[l,a];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&u[0]?o.return:u[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,u[1])).done)return n;switch(o=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,o=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!n||u[1]>n[0]&&u[1]<n[3])){i.label=u[1];break}if(6===u[0]&&i.label<n[1]){i.label=n[1],n=u;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(u);break}n[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],o=0}finally{r=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return this.app.pm.get("workflow").registerTrigger("request-interception",O),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,n){var i=e.apply(t,r);function c(e){j(i,o,n,c,l,"next",e)}function l(e){j(i,o,n,c,l,"throw",e)}c(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(r.prototype,t),r}(k(e.Plugin)),T=C}(),p}()});
@@ -8,13 +8,13 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.1.0-alpha.13",
12
- "@nocobase/plugin-workflow": "2.1.0-alpha.13",
11
+ "@nocobase/client": "2.1.0-alpha.15",
12
+ "@nocobase/plugin-workflow": "2.1.0-alpha.15",
13
13
  "@formily/react": "2.3.7",
14
14
  "react": "18.2.0",
15
- "@nocobase/flow-engine": "2.1.0-alpha.13",
16
- "@nocobase/server": "2.1.0-alpha.13",
15
+ "@nocobase/flow-engine": "2.1.0-alpha.15",
16
+ "@nocobase/server": "2.1.0-alpha.15",
17
17
  "lodash": "4.17.21",
18
- "@nocobase/plugin-error-handler": "2.1.0-alpha.13",
19
- "@nocobase/data-source-manager": "2.1.0-alpha.13"
18
+ "@nocobase/plugin-error-handler": "2.1.0-alpha.15",
19
+ "@nocobase/data-source-manager": "2.1.0-alpha.15"
20
20
  };
@@ -1 +1 @@
1
- {"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-03-27T05:56:20.460Z"}
1
+ {"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-04-10T12:41:09.854Z"}
@@ -125,10 +125,19 @@ class RequestInterceptionTrigger extends import_plugin_workflow.Trigger {
125
125
  }
126
126
  return aIndex - bIndex;
127
127
  });
128
- for (const workflow of localWorkflows.concat(globalWorkflows)) {
129
- if (!workflow.config.global && !triggerWorkflowsMap.has(workflow.key)) {
130
- continue;
131
- }
128
+ const syncWorkflows = localWorkflows.filter((workflow) => triggerWorkflowsMap.has(workflow.key)).concat(globalWorkflows);
129
+ for (const [index, workflow] of syncWorkflows.entries()) {
130
+ const syncLogMeta = {
131
+ workflowId: workflow.id,
132
+ workflowKey: workflow.key,
133
+ workflowTitle: workflow.title,
134
+ resourceName,
135
+ actionName,
136
+ currentSyncOrder: index + 1,
137
+ totalSyncWorkflows: syncWorkflows.length,
138
+ remainingSyncWorkflows: syncWorkflows.length - index - 1
139
+ };
140
+ context.logger.debug("[Workflow pre-action]: executing sync workflow", syncLogMeta);
132
141
  const processor = await this.workflow.trigger(
133
142
  workflow,
134
143
  {
@@ -143,25 +152,49 @@ class RequestInterceptionTrigger extends import_plugin_workflow.Trigger {
143
152
  { httpContext: context }
144
153
  );
145
154
  if (!processor) {
146
- return context.throw(500);
155
+ context.logger.error(
156
+ "[Workflow pre-action]: sync workflow trigger failed before execution created",
157
+ syncLogMeta
158
+ );
159
+ return context.throw(500, "Workflow on your action failed, please contact the administrator");
147
160
  }
148
161
  const { lastSavedJob, nodesMap } = processor;
149
162
  const lastNode = nodesMap.get(lastSavedJob == null ? void 0 : lastSavedJob.nodeId);
150
163
  if (processor.execution.status === import_plugin_workflow.EXECUTION_STATUS.RESOLVED) {
151
164
  if ((lastNode == null ? void 0 : lastNode.type) === "end") {
165
+ context.logger.debug("[Workflow pre-action]: sync workflow ended request chain on end node", {
166
+ ...syncLogMeta,
167
+ ...(0, import_plugin_workflow.getWorkflowExecutionLogMeta)(workflow, processor)
168
+ });
152
169
  return;
153
170
  }
171
+ context.logger.debug("[Workflow pre-action]: sync workflow finished successfully", {
172
+ ...syncLogMeta,
173
+ ...(0, import_plugin_workflow.getWorkflowExecutionLogMeta)(workflow, processor)
174
+ });
154
175
  continue;
155
176
  }
156
177
  if (processor.execution.status < import_plugin_workflow.EXECUTION_STATUS.STARTED) {
157
178
  if ((lastNode == null ? void 0 : lastNode.type) !== "end") {
179
+ context.logger.error("[Workflow pre-action]: sync workflow failed", {
180
+ ...syncLogMeta,
181
+ ...(0, import_plugin_workflow.getWorkflowExecutionLogMeta)(workflow, processor)
182
+ });
158
183
  return context.throw(500, "Workflow on your action failed, please contact the administrator");
159
184
  }
185
+ context.logger.warn("[Workflow pre-action]: sync workflow intercepted request on end node", {
186
+ ...syncLogMeta,
187
+ ...(0, import_plugin_workflow.getWorkflowExecutionLogMeta)(workflow, processor)
188
+ });
160
189
  const err = new RequestInterceptionError("Request is intercepted by workflow");
161
190
  err.status = 400;
162
191
  err.messages = context.state.messages;
163
192
  return context.throw(err.status, err);
164
193
  }
194
+ context.logger.error("[Workflow pre-action]: sync workflow is still pending after trigger", {
195
+ ...syncLogMeta,
196
+ ...(0, import_plugin_workflow.getWorkflowExecutionLogMeta)(workflow, processor)
197
+ });
165
198
  return context.throw(500, "Workflow on your action hangs, please contact the administrator");
166
199
  }
167
200
  await next();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-workflow-request-interceptor",
3
- "version": "2.1.0-alpha.13",
3
+ "version": "2.1.0-alpha.15",
4
4
  "displayName": "Workflow: Pre-action event",
5
5
  "displayName.zh-CN": "工作流:操作前事件",
6
6
  "description": "Triggered before the execution of a request initiated through an action button or API, such as before adding, updating, or deleting data. Suitable for data validation and logic judgment before action, and the request could be rejected by using the \"End process\" node.",
@@ -30,6 +30,6 @@
30
30
  "keywords": [
31
31
  "Workflow"
32
32
  ],
33
- "gitHead": "2807a8948412d9c235115a31a81a66f7c82dd173",
33
+ "gitHead": "7c86e75b0af4b9f532c8ebf5ef96a7423b0ab60e",
34
34
  "license": "Apache-2.0"
35
35
  }