@nocobase/plugin-async-task-manager 2.2.0-beta.1 → 2.2.0-beta.2
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.
- package/dist/client/index.js +1 -1
- package/dist/client-v2/338.ab2aa854f987284c.js +10 -0
- package/dist/client-v2/index.js +1 -1
- package/dist/externalVersion.js +8 -8
- package/dist/server/base-task-manager.d.ts +3 -1
- package/dist/server/base-task-manager.js +38 -23
- package/dist/server/interfaces/async-task-manager.d.ts +4 -2
- package/package.json +2 -2
- package/dist/client-v2/338.272bcdd5bb509394.js +0 -10
package/dist/client/index.js
CHANGED
|
@@ -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-i18next"),require("dayjs"),require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react-i18next","dayjs","react","antd","@nocobase/client","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react-i18next"),require("dayjs"),require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/utils/client")):e["@nocobase/plugin-async-task-manager"]=t(e["react-i18next"],e.dayjs,e.react,e.antd,e["@nocobase/client"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,a){return function(){var i={912:function(e,t,n){e.exports=function(e){"use strict";var t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,t){return"W"===t?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1100?"上午":n<1300?"中午":n<1800?"下午":"晚上"}};return(e&&"object"==typeof e&&"default"in e?e:{default:e}).default.locale(t,null,!0),t}(n(185))},264:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,i,c){for(var l,s,u,f=a.$locale().relativeTime||o,p=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],d=p.length,y=0;y<d;y+=1){var m=p[y];m.d&&(l=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,b<=m.r||!m.r){b<=1&&y>0&&(m=p[y-1]);var v=f[m.l];c&&(b=c(""+b)),s="string"==typeof v?v.replace("%d",b):v(b,r,m.l,u);break}}if(r)return s;var h=u?f.future:f.past;return"function"==typeof h?h(s):h.replace("%s",s)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var i=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(i(this),e)},r.fromNow=function(e){return this.from(i(this),e)}}},342:function(e){"use strict";e.exports=o},768:function(e){"use strict";e.exports=a},59:function(e){"use strict";e.exports=r},185:function(e){"use strict";e.exports=t},155:function(e){"use strict";e.exports=n},953:function(t){"use strict";t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return i[e].call(n.exports,n,n.exports,l),n.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(s=l.g.location+"");var s,u=l.g.document;if(!s&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(s=u.currentScript.src),!s)){var f=u.getElementsByTagName("script");if(f.length)for(var p=f.length-1;p>-1&&(!s||!/^http(s?):/.test(s));)s=f[p--].src}if(!s)throw Error("Automatic publicPath is not supported in this browser");l.p=s.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){"use strict";var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@nocobase/plugin-async-task-manager/dist/client/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",o="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var a=window.location.pathname||"/",i=a.indexOf(o);e=i>=0?a.slice(0,i+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-async-task-manager/dist/client/"}l.p=e}(),!function(){"use strict";l.r(d),l.d(d,{PluginAsyncTaskManagerClient:function(){return A},default:function(){return I}});var e,t=l(768),n=l(342),r=l(155),o=l.n(r),a=l(59),i=l(953),c=l(185),s=l.n(c);l(912);var u=l(264),f=l.n(u),p=JSON.parse('{"UU":"@nocobase/plugin-async-task-manager"}');function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m="@nocobase/plugin-async-task-manager",b=(y(e={},null,{value:null,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,0,{value:0,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,1,{value:1,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,-1,{value:-1,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,-2,{value:-2,label:"{{t('Cancelled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(e){n(e);return}c.done?t(l):Promise.resolve(l).then(r,o)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){h(a,r,o,i,c,"next",e)}function c(e){h(a,r,o,i,c,"throw",e)}i(void 0)})}}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,c=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(c)throw r}}return a}}(e,t)||k(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}}function _(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:l(0)}),c(i,"throw",{value:l(1)}),c(i,"return",{value:l(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function l(c){return function(l){var s=[c,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var O=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});s().extend(f());var E=function(e){var t,r=e.popoverVisible,c=e.setPopoverVisible,l=e.tasks,u=e.refresh,f=e.loading;e.hasProcessingTasks;var d=(0,n.useAPIClient)(),y=(t=(0,n.useApp)(),function(e,n){return t.i18n.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[p.UU,"client"]},n))}),m=(0,i.useTranslation)().t,v=O().styles,h=(0,n.usePlugin)("async-task-manager"),w=(0,n.useCompile)(),k=function(e){c(!1)},E=[{title:y("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:s()(e).format("YYYY-MM-DD HH:mm:ss")},s()(e).fromNow())}},{title:y("Task"),dataIndex:"title",key:"title"},{title:y("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=b[e]||{},i=r.color,c=r.label;return o().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},o().createElement("div",{style:{flex:1}},function(){var n,r,i={width:100,margin:0};switch(e){case null:case -2:return o().createElement(a.Alert,{showIcon:!1,message:w(c),banner:!0});case 0:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(r=t.progressTotal)?r:1)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case 1:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case -1:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),o().createElement(a.Tag,{color:i,icon:(null==r?void 0:r.icon)?o().createElement(n.Icon,{type:r.icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}))}},{title:y("Actions"),dataIndex:"result",key:"actions",width:180,render:function(e,t){var r,i=[],l=null!=(r=h.taskOrigins.get(t.origin))?r:{},s=l.Result,f=l.ResultButton,p=s||function(){return null};return t.cancelable&&(0===t.status||null===t.status)&&i.push(o().createElement(a.Popconfirm,{key:"cancel",title:y("Confirm cancel"),description:y("Confirm to cancel this task?"),onConfirm:function(){return g(function(){return _(this,function(e){switch(e.label){case 0:return[4,d.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),u(),[2]}})})()},okText:y("Confirm"),cancelText:y("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},y("Stop")))),1===t.status&&e&&(f?i.push(o().createElement(f,{key:"result-button",task:t})):i.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){k(t),a.Modal.info({title:y("Task result"),content:s?o().createElement(p,{payload:e,task:t}):o().createElement("div",null,y("No renderer available for this task type, payload: ".concat(t.result)))})}},y("View result")))),-1===t.status&&e&&i.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){c(!1);var n,r,i,l=(null!=(i=h.taskOrigins.get(t.origin))?i:{}).namespace;a.Modal.info({title:y("Error Details"),content:o().createElement(a.Typography.Text,null,m(e.message,(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.params),r=r={ns:void 0===l?"client":l},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))),closable:!0,width:400})}},y("Error details"))),o().createElement(a.Space,{size:"middle"},i)}}];l.filter(function(e){return[1,-1].includes(e.status)}).length;var x=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:l.length>0?800:200}},l.length>0?o().createElement(a.Table,{loading:f,columns:E,dataSource:l,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:y("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:x,trigger:"click",placement:"bottom",open:r,onOpenChange:c},o().createElement(a.Button,{className:["sync-task-button",v.button].join(" "),onClick:function(){c(!r),r||u()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:l.some(function(e){return 0===e.status})})})))},x=function(){var e=(0,n.useApp)(),t=(0,n.useRequest)({resource:"asyncTasks",action:"list",params:{sort:"-createdAt"}}),a=t.data,i=t.refresh;t.loading;var c=w((0,r.useState)((null==a?void 0:a.data)||[]),2),l=c[0],s=c[1],u=w((0,r.useState)(!1),2),f=u[0],p=u[1];(0,r.useEffect)(function(){s((null==a?void 0:a.data)||[])},[a]);var d=(0,r.useCallback)(function(){return g(function(){return _(this,function(e){return p(!0),i(),[2]})})()},[i]),y=(0,r.useCallback)(function(e){var t=e.detail;s(function(e){var n=e.findIndex(function(e){return e.id===t.id});return -1===n?e.unshift(t):e.splice(n,1,t),function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(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.")}()})},[]),m=(0,r.useCallback)(function(){i()},[i]),b=(0,r.useCallback)(function(){i()},[i]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",d),e.eventBus.addEventListener("ws:message:async-tasks:progress",y),e.eventBus.addEventListener("ws:message:async-tasks:status",m),e.eventBus.addEventListener("ws:message:async-tasks:deleted",b),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",d),e.eventBus.removeEventListener("ws:message:async-tasks:progress",y),e.eventBus.removeEventListener("ws:message:async-tasks:status",m),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",b)}},[e,b,d,y,m]),(null==l?void 0:l.length)>0&&o().createElement(E,{tasks:l,refresh:i,popoverVisible:f,setPopoverVisible:p})},j=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:x}},e.children))};function S(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(e){n(e);return}c.done?t(l):Promise.resolve(l).then(r,o)}function P(e,t,n){return(P=C()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Y(o,n.prototype),o}).apply(null,arguments)}function T(e){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Y(e,t){return(Y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t="function"==typeof Map?new Map:void 0;return(M=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,n)}function n(){return P(e,arguments,T(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Y(n,e)})(e)}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(C=function(){return!!e})()}var A=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,n,o,a,i,c;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=T(n),a=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"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(n,o||[],T(this).constructor):n.apply(this,o)),i="taskOrigins",c=new t.Registry,i in a?Object.defineProperty(a,i,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[i]=c,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&Y(r,e),n=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:l(0)}),c(i,"throw",{value:l(1)}),c(i,"return",{value:l(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function l(c){return function(l){var s=[c,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(e){return this.app.use(j),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){S(a,r,o,i,c,"next",e)}function c(e){S(a,r,o,i,c,"throw",e)}i(void 0)})}).call(this)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,n),r}(M(n.Plugin)),I=A}(),d}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("dayjs"),require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react-i18next","dayjs","react","antd","@nocobase/client","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react-i18next"),require("dayjs"),require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/utils/client")):e["@nocobase/plugin-async-task-manager"]=t(e["react-i18next"],e.dayjs,e.react,e.antd,e["@nocobase/client"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,a){return function(){var i={912:function(e,t,n){e.exports=function(e){"use strict";var t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,t){return"W"===t?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1100?"上午":n<1300?"中午":n<1800?"下午":"晚上"}};return(e&&"object"==typeof e&&"default"in e?e:{default:e}).default.locale(t,null,!0),t}(n(185))},264:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,i,c){for(var l,s,u,f=a.$locale().relativeTime||o,p=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],d=p.length,y=0;y<d;y+=1){var m=p[y];m.d&&(l=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,b<=m.r||!m.r){b<=1&&y>0&&(m=p[y-1]);var v=f[m.l];c&&(b=c(""+b)),s="string"==typeof v?v.replace("%d",b):v(b,r,m.l,u);break}}if(r)return s;var h=u?f.future:f.past;return"function"==typeof h?h(s):h.replace("%s",s)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var i=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(i(this),e)},r.fromNow=function(e){return this.from(i(this),e)}}},342:function(e){"use strict";e.exports=o},768:function(e){"use strict";e.exports=a},59:function(e){"use strict";e.exports=r},185:function(e){"use strict";e.exports=t},155:function(e){"use strict";e.exports=n},953:function(t){"use strict";t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return i[e].call(n.exports,n,n.exports,l),n.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(s=l.g.location+"");var s,u=l.g.document;if(!s&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(s=u.currentScript.src),!s)){var f=u.getElementsByTagName("script");if(f.length)for(var p=f.length-1;p>-1&&(!s||!/^http(s?):/.test(s));)s=f[p--].src}if(!s)throw Error("Automatic publicPath is not supported in this browser");l.p=s.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){"use strict";var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@nocobase/plugin-async-task-manager/dist/client/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",o="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var a=window.location.pathname||"/",i=a.indexOf(o);e=i>=0?a.slice(0,i+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-async-task-manager/dist/client/"}l.p=e}(),!function(){"use strict";l.r(d),l.d(d,{PluginAsyncTaskManagerClient:function(){return I},default:function(){return L}});var e,t=l(768),n=l(342),r=l(155),o=l.n(r),a=l(59),i=l(953),c=l(185),s=l.n(c);l(912);var u=l(264),f=l.n(u),p=JSON.parse('{"UU":"@nocobase/plugin-async-task-manager"}');function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m="@nocobase/plugin-async-task-manager",b=(y(e={},null,{value:null,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,0,{value:0,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,1,{value:1,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,-1,{value:-1,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,-2,{value:-2,label:"{{t('Cancelled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(e){n(e);return}c.done?t(l):Promise.resolve(l).then(r,o)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){h(a,r,o,i,c,"next",e)}function c(e){h(a,r,o,i,c,"throw",e)}i(void 0)})}}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,c=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(c)throw r}}return a}}(e,t)||k(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}}function _(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:l(0)}),c(i,"throw",{value:l(1)}),c(i,"return",{value:l(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function l(c){return function(l){var s=[c,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var O=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});s().extend(f());var E=function(e){var t=e.message;return o().createElement("div",{style:{maxHeight:"60vh",overflow:"auto",padding:"8px 12px",borderRadius:6,background:"#f5f5f5",whiteSpace:"pre-wrap",wordBreak:"break-word"}},o().createElement(a.Typography.Text,null,t))},x=function(e){var t,r=e.popoverVisible,c=e.setPopoverVisible,l=e.tasks,u=e.refresh,f=e.loading;e.hasProcessingTasks;var d=(0,n.useAPIClient)(),y=(t=(0,n.useApp)(),function(e,n){return t.i18n.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[p.UU,"client"]},n))}),m=(0,i.useTranslation)().t,v=O().styles,h=(0,n.usePlugin)("async-task-manager"),w=(0,n.useCompile)(),k=function(e){c(!1)},x=[{title:y("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:s()(e).format("YYYY-MM-DD HH:mm:ss")},s()(e).fromNow())}},{title:y("Task"),dataIndex:"title",key:"title"},{title:y("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=b[e]||{},i=r.color,c=r.label;return o().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},o().createElement("div",{style:{flex:1}},function(){var n,r,i={width:100,margin:0};switch(e){case null:case -2:return o().createElement(a.Alert,{showIcon:!1,message:w(c),banner:!0});case 0:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(r=t.progressTotal)?r:1)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case 1:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case -1:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),o().createElement(a.Tag,{color:i,icon:(null==r?void 0:r.icon)?o().createElement(n.Icon,{type:r.icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}))}},{title:y("Actions"),dataIndex:"result",key:"actions",width:180,render:function(e,t){var r,i=[],l=null!=(r=h.taskOrigins.get(t.origin))?r:{},s=l.Result,f=l.ResultButton,p=s||function(){return null};return t.cancelable&&(0===t.status||null===t.status)&&i.push(o().createElement(a.Popconfirm,{key:"cancel",title:y("Confirm cancel"),description:y("Confirm to cancel this task?"),onConfirm:function(){return g(function(){return _(this,function(e){switch(e.label){case 0:return[4,d.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),u(),[2]}})})()},okText:y("Confirm"),cancelText:y("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},y("Stop")))),1===t.status&&e&&(f?i.push(o().createElement(f,{key:"result-button",task:t})):i.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){k(t),a.Modal.info({title:y("Task result"),content:s?o().createElement(p,{payload:e,task:t}):o().createElement("div",null,y("No renderer available for this task type, payload: ".concat(t.result)))})}},y("View result")))),-1===t.status&&e&&i.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){c(!1);var n,r,i,l=(null!=(i=h.taskOrigins.get(t.origin))?i:{}).namespace;a.Modal.info({title:y("Error Details"),content:o().createElement(E,{message:m(e.message,(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.params),r=r={ns:void 0===l?"client":l},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}),closable:!0,width:640})}},y("Error details"))),o().createElement(a.Space,{size:"middle"},i)}}];l.filter(function(e){return[1,-1].includes(e.status)}).length;var j=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:l.length>0?800:200}},l.length>0?o().createElement(a.Table,{loading:f,columns:x,dataSource:l,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:y("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:j,trigger:"click",placement:"bottom",open:r,onOpenChange:c},o().createElement(a.Button,{className:["sync-task-button",v.button].join(" "),onClick:function(){c(!r),r||u()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:l.some(function(e){return 0===e.status})})})))},j=function(){var e=(0,n.useApp)(),t=(0,n.useRequest)({resource:"asyncTasks",action:"list",params:{sort:"-createdAt"}}),a=t.data,i=t.refresh;t.loading;var c=w((0,r.useState)((null==a?void 0:a.data)||[]),2),l=c[0],s=c[1],u=w((0,r.useState)(!1),2),f=u[0],p=u[1];(0,r.useEffect)(function(){s((null==a?void 0:a.data)||[])},[a]);var d=(0,r.useCallback)(function(){return g(function(){return _(this,function(e){return p(!0),i(),[2]})})()},[i]),y=(0,r.useCallback)(function(e){var t=e.detail;s(function(e){var n=e.findIndex(function(e){return e.id===t.id});return -1===n?e.unshift(t):e.splice(n,1,t),function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(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.")}()})},[]),m=(0,r.useCallback)(function(){i()},[i]),b=(0,r.useCallback)(function(){i()},[i]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",d),e.eventBus.addEventListener("ws:message:async-tasks:progress",y),e.eventBus.addEventListener("ws:message:async-tasks:status",m),e.eventBus.addEventListener("ws:message:async-tasks:deleted",b),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",d),e.eventBus.removeEventListener("ws:message:async-tasks:progress",y),e.eventBus.removeEventListener("ws:message:async-tasks:status",m),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",b)}},[e,b,d,y,m]),(null==l?void 0:l.length)>0&&o().createElement(x,{tasks:l,refresh:i,popoverVisible:f,setPopoverVisible:p})},S=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:j}},e.children))};function P(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(e){n(e);return}c.done?t(l):Promise.resolve(l).then(r,o)}function T(e,t,n){return(T=A()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&M(o,n.prototype),o}).apply(null,arguments)}function Y(e){return(Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(e,t){return(M=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e){var t="function"==typeof Map?new Map:void 0;return(C=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,n)}function n(){return T(e,arguments,Y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),M(n,e)})(e)}function A(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(A=function(){return!!e})()}var I=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,n,o,a,i,c;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=Y(n),a=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,A()?Reflect.construct(n,o||[],Y(this).constructor):n.apply(this,o)),i="taskOrigins",c=new t.Registry,i in a?Object.defineProperty(a,i,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[i]=c,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&M(r,e),n=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:l(0)}),c(i,"throw",{value:l(1)}),c(i,"return",{value:l(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function l(c){return function(l){var s=[c,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(e){return this.app.use(S),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){P(a,r,o,i,c,"next",e)}function c(e){P(a,r,o,i,c,"throw",e)}i(void 0)})}).call(this)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,n),r}(C(n.Plugin)),L=I}(),d}()});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
(self.webpackChunk_nocobase_plugin_async_task_manager_client_v2=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2||[]).push([["338"],{264:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,l,i){for(var s,c,u,f=a.$locale().relativeTime||o,d=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],p=d.length,y=0;y<p;y+=1){var m=d[y];m.d&&(s=l?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(s));if(u=s>0,b<=m.r||!m.r){b<=1&&y>0&&(m=d[y-1]);var h=f[m.l];i&&(b=i(""+b)),c="string"==typeof h?h.replace("%d",b):h(b,r,m.l,u);break}}if(r)return c;var v=u?f.future:f.past;return"function"==typeof v?v(c):v.replace("%s",c)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var l=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(l(this),e)},r.fromNow=function(e){return this.from(l(this),e)}}},33:function(e,t,n){"use strict";n.r(t),n.d(t,{AsyncTasksTopbarActionModel:function(){return _},default:function(){return I}});var r,o=n(375),a=n(485),l=n(694),i=n(625),s=n(59),c=n(185),u=n.n(c),f=n(264),d=n.n(f),p=n(155),y=n.n(p);function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b="@nocobase/plugin-async-task-manager",h=(m(r={},null,{value:null,label:"{{t('Waiting', { ns: '".concat(b,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),m(r,0,{value:0,label:"{{t('Processing', { ns: '".concat(b,"' })}}"),color:"processing",icon:"LoadingOutlined"}),m(r,1,{value:1,label:"{{t('Completed', { ns: '".concat(b,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),m(r,-1,{value:-1,label:"{{t('Failed', { ns: '".concat(b,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),m(r,-2,{value:-2,label:"{{t('Cancelled', { ns: '".concat(b,"' })}}"),color:"warning",icon:"StopOutlined"}),r),v="@nocobase/plugin-async-task-manager";function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e,t,n,r,o,a,l){try{var i=e[a](l),s=i.value}catch(e){n(e);return}i.done?t(s):Promise.resolve(s).then(r,o)}function w(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){k(a,r,o,l,i,"next",e)}function i(e){k(a,r,o,l,i,"throw",e)}l(void 0)})}}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e,t){return(S=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||C(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function C(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}}function T(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(T=function(){return!!e})()}function x(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:s(0)}),i(l,"throw",{value:s(1)}),i(l,"return",{value:s(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function s(i){return function(s){var c=[i,s];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function M(e){var t=s.theme.useToken().token;return y().createElement("div",{style:{maxHeight:"60vh",overflow:"auto",padding:"".concat(t.paddingXS,"px ").concat(t.paddingSM,"px"),borderRadius:t.borderRadius,background:t.colorFillAlter,whiteSpace:"pre-wrap",wordBreak:"break-word"}},y().createElement(s.Typography.Text,null,e.message))}u().extend(d());var A=y().memo(function(e){var t,n,r=e.popoverVisible,i=e.setPopoverVisible,c=e.tasks,f=e.refresh,d=e.loading,m=(0,a.useApp)(),b=(t=(0,l.useFlowEngine)(),function(e,n){return t.context.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[v,"client"],nsMode:"fallback"},n))}),g=s.theme.useToken().token,k=null!=(n=m.pm.get("async-task-manager"))?n:m.pm.get("@nocobase/plugin-async-task-manager"),O=(0,p.useMemo)(function(){return m.apiClient.resource("asyncTasks")},[m.apiClient]),S=(0,p.useMemo)(function(){return[{title:b("Created at"),dataIndex:"createdAt",key:"createdAt",width:5*g.controlHeight,render:function(e){return e?y().createElement(s.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow()):"-"}},{title:b("Task"),dataIndex:"title",key:"title",ellipsis:!0},{title:b("Status"),dataIndex:"status",key:"status",width:5*g.controlHeight,render:function(e,t){var n,r=null!=(n=h[String(null!=e?e:null)])?n:h[String(null)];return y().createElement(s.Space,{align:"center",size:g.marginXS},y().createElement("span",null,function(){var n,o,a={width:3*g.controlHeight,margin:0};switch(e){case null:case -2:return y().createElement(s.Alert,{showIcon:!1,message:b(r.label),banner:!0});case 0:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(o=t.progressTotal)?o:1)*100).toFixed(2)),status:"active",style:a,format:function(e){return"".concat((null!=e?e:0).toFixed(1),"%")}});case 1:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:100,status:"success",style:a,format:function(){return""}});case -1:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:100,status:"exception",style:a,format:function(){return""}});default:return null}}()),y().createElement(s.Tag,{color:r.color,icon:r.icon?y().createElement(a.Icon,{type:r.icon}):null,style:{margin:0,paddingInline:g.paddingXXS,height:g.controlHeightSM,width:g.controlHeightSM}}))}},{title:b("Actions"),dataIndex:"result",key:"actions",width:6*g.controlHeight,render:function(e,t){var n,r=[],a=function(e,t){if(t)return null==e?void 0:e.taskOrigins.get(t)}(k,t.origin),l=null==a?void 0:a.Result,c=null==a?void 0:a.ResultButton;return t.cancelable&&(0===t.status||null===t.status)&&r.push(y().createElement(s.Popconfirm,{key:"cancel",title:b("Confirm cancel"),description:b("Confirm to cancel this task?"),onConfirm:function(){return w(function(){return x(this,function(e){switch(e.label){case 0:return[4,O.stop({filterByTk:t.id})];case 1:return e.sent(),f(),[2]}})})()},okText:b("Confirm"),cancelText:b("Cancel")},y().createElement(s.Button,{type:"link",size:"small",icon:y().createElement(o.StopOutlined,null)},b("Stop")))),1===t.status&&e&&(c?r.push(y().createElement(c,{key:"result-button",task:t})):r.push(y().createElement(s.Button,{key:"view",type:"link",size:"small",icon:y().createElement(o.EyeOutlined,null),onClick:function(){i(!1),s.Modal.info({title:b("Task result"),content:l?y().createElement(l,{payload:e,task:t}):y().createElement("div",null,b("No renderer available for this task type, payload: {{payload}}",{payload:String(e)}))})}},b("View result")))),-1===t.status&&(n=e)&&(void 0===n?"undefined":P(n))==="object"&&r.push(y().createElement(s.Button,{key:"error",type:"link",size:"small",icon:y().createElement(o.ExclamationCircleOutlined,null),onClick:function(){i(!1);var t,n,r,o,l=null!=(r=null==a?void 0:a.namespace)?r:"client";s.Modal.info({title:b("Error Details"),content:y().createElement(M,{message:b(null!=(o=e.message)?o:"",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){E(e,t,n[t])})}return e}({},e.params),n=n={ns:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}),closable:!0,width:g.screenMD})}},b("Error details"))),y().createElement(s.Space,{size:g.marginSM},r)}}]},[k,f,i,b,O,g]),j=y().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:c.length>0?g.screenLG:6*g.controlHeight}},c.length>0?y().createElement(s.Table,{loading:d,columns:S,dataSource:c,size:"small",pagination:!1,rowKey:"id"}):y().createElement("div",{style:{paddingBlock:g.paddingLG,display:"flex",justifyContent:"center"}},y().createElement(s.Empty,{description:b("No tasks"),image:s.Empty.PRESENTED_IMAGE_SIMPLE})));return y().createElement(s.Popover,{content:j,trigger:"click",placement:"bottom",open:r,onOpenChange:i},y().createElement(s.Button,{type:"text",onClick:function(){i(!r),r||f()},icon:y().createElement(o.SyncOutlined,{spin:c.some(function(e){return 0===e.status})}),"data-testid":"async-tasks-button"}))});A.displayName="AsyncTasksButton";var B=(0,l.observer)(function(){var e=(0,a.useApp)(),t=(0,a.useMobileLayout)().isMobileLayout,n=(0,i.useRequest)(function(){return w(function(){var t,n;return x(this,function(r){switch(r.label){case 0:return[4,e.apiClient.resource("asyncTasks").list({sort:"-createdAt"})];case 1:return[2,null!=(t=null==(n=r.sent())?void 0:n.data)?t:{data:[]}]}})})()}),r=n.data,o=n.refresh,l=n.loading,s=j((0,p.useState)([]),2),c=s[0],u=s[1],f=j((0,p.useState)(!1),2),d=f[0],m=f[1];(0,p.useEffect)(function(){u(Array.isArray(null==r?void 0:r.data)?r.data:[])},[r]);var b=(0,p.useCallback)(function(){m(!0),o()},[o]),h=(0,p.useCallback)(function(e){var t=e.detail;(null==t?void 0:t.id)&&u(function(e){var n=function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||C(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.")}(),r=n.findIndex(function(e){return e.id===t.id});return -1===r?n.unshift(t):n.splice(r,1,t),n})},[]),v=(0,p.useCallback)(function(){o()},[o]),k=(0,p.useCallback)(function(){o()},[o]);return((0,p.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",b),e.eventBus.addEventListener("ws:message:async-tasks:progress",h),e.eventBus.addEventListener("ws:message:async-tasks:status",v),e.eventBus.addEventListener("ws:message:async-tasks:deleted",k),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",b),e.eventBus.removeEventListener("ws:message:async-tasks:progress",h),e.eventBus.removeEventListener("ws:message:async-tasks:status",v),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",k)}},[e.eventBus,b,k,h,v]),t||0===c.length)?null:y().createElement(A,{tasks:c,refresh:o,loading:l,popoverVisible:d,setPopoverVisible:m})},{displayName:"AsyncTasksTopbarAction"}),_=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=O(t),E(e=function(e,t){if(t&&("object"===P(t)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,T()?Reflect.construct(t,r||[],O(this).constructor):t.apply(this,r)),"sort",300),E(e,"actionId","async-tasks"),E(e,"testId","async-tasks-button"),E(e,"tooltip",(0,l.tExpr)("Async tasks",{ns:[v,"client"],nsMode:"fallback"})),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&S(n,e),t=[{key:"render",value:function(){return y().createElement(B,null)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(a.TopbarActionModel),I=_}}]);
|
package/dist/client-v2/index.js
CHANGED
|
@@ -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("ahooks"),require("@nocobase/client-v2"),require("dayjs"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager/client-v2",["ahooks","@nocobase/client-v2","dayjs","react","antd","@ant-design/icons","@nocobase/flow-engine","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager/client-v2"]=t(require("ahooks"),require("@nocobase/client-v2"),require("dayjs"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine"),require("@nocobase/utils/client")):e["@nocobase/plugin-async-task-manager/client-v2"]=t(e.ahooks,e["@nocobase/client-v2"],e.dayjs,e.react,e.antd,e["@ant-design/icons"],e["@nocobase/flow-engine"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,i,a,c){return function(){"use strict";var u,l,s,f={375:function(e){e.exports=i},485:function(e){e.exports=t},694:function(e){e.exports=a},768:function(e){e.exports=c},625:function(t){t.exports=e},59:function(e){e.exports=o},185:function(e){e.exports=n},155:function(e){e.exports=r}},p={};function b(e){var t=p[e];if(void 0!==t)return t.exports;var n=p[e]={exports:{}};return f[e].call(n.exports,n,n.exports,b),n.exports}b.m=f,b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,{a:t}),t},b.d=function(e,t){for(var n in t)b.o(t,n)&&!b.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce(function(t,n){return b.f[n](e,t),t},[]))},b.u=function(e){return""+e+".
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("ahooks"),require("@nocobase/client-v2"),require("dayjs"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager/client-v2",["ahooks","@nocobase/client-v2","dayjs","react","antd","@ant-design/icons","@nocobase/flow-engine","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager/client-v2"]=t(require("ahooks"),require("@nocobase/client-v2"),require("dayjs"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine"),require("@nocobase/utils/client")):e["@nocobase/plugin-async-task-manager/client-v2"]=t(e.ahooks,e["@nocobase/client-v2"],e.dayjs,e.react,e.antd,e["@ant-design/icons"],e["@nocobase/flow-engine"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,i,a,c){return function(){"use strict";var u,l,s,f={375:function(e){e.exports=i},485:function(e){e.exports=t},694:function(e){e.exports=a},768:function(e){e.exports=c},625:function(t){t.exports=e},59:function(e){e.exports=o},185:function(e){e.exports=n},155:function(e){e.exports=r}},p={};function b(e){var t=p[e];if(void 0!==t)return t.exports;var n=p[e]={exports:{}};return f[e].call(n.exports,n,n.exports,b),n.exports}b.m=f,b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,{a:t}),t},b.d=function(e,t){for(var n in t)b.o(t,n)&&!b.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce(function(t,n){return b.f[n](e,t),t},[]))},b.u=function(e){return""+e+".ab2aa854f987284c.js"},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},d={},b.l=function(e,t,n,r){if(d[e])return void d[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var u=a[c];if(u.getAttribute("src")==e||u.getAttribute("data-rspack")=="@nocobase/plugin-async-task-manager/client-v2:"+n){o=u;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.setAttribute("data-rspack","@nocobase/plugin-async-task-manager/client-v2:"+n),o.src=e),d[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=d[e];if(delete d[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},b.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.g.importScripts&&(y=b.g.location+"");var d,y,v=b.g.document;if(!y&&v&&(v.currentScript&&"SCRIPT"===v.currentScript.tagName.toUpperCase()&&(y=v.currentScript.src),!y)){var g=v.getElementsByTagName("script");if(g.length)for(var h=g.length-1;h>-1&&(!y||!/^http(s?):/.test(y));)y=g[h--].src}if(!y)throw Error("Automatic publicPath is not supported in this browser");b.p=y.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),u={889:0},b.f.j=function(e,t){var n=b.o(u,e)?u[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var o=b.p+b.u(e),i=Error();b.l(o,function(t){if(b.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},l=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],c=0;if(o.some(function(e){return 0!==u[e]})){for(n in i)b.o(i,n)&&(b.m[n]=i[n]);a&&a(b)}for(e&&e(t);c<o.length;c++)r=o[c],b.o(u,r)&&u[r]&&u[r][0](),u[r]=0},(s=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2||[]).forEach(l.bind(null,0)),s.push=l.bind(null,s.push.bind(s));var m={};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 n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@nocobase/plugin-async-task-manager/dist/client-v2/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",o="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",a=i.indexOf(o);e=a>=0?i.slice(0,a+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-async-task-manager/dist/client-v2/"}b.p=e}(),!function(){b.r(m),b.d(m,{PluginAsyncTaskManagerClientV2:function(){return u},default:function(){return l}});var e=b(485),t=b(768);function n(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function r(e,t,n){return(r=c()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&i(o,n.prototype),o}).apply(null,arguments)}b(155);function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e){var t="function"==typeof Map?new Map:void 0;return(a=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,n)}function n(){return r(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),i(n,e)})(e)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(c=function(){return!!e})()}var u=function(e){var r;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function a(){var e,n,r,i,u,l;if(!(this instanceof a))throw TypeError("Cannot call a class as a function");return n=a,r=arguments,n=o(n),i=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"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(n,r||[],o(this).constructor):n.apply(this,r)),u="taskOrigins",l=new t.Registry,u in i?Object.defineProperty(i,u,{value:l,enumerable:!0,configurable:!0,writable:!0}):i[u]=l,e}return a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),e&&i(a,e),r=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:u(0)}),c(a,"throw",{value:u(1)}),c(a,"return",{value:u(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function u(c){return function(u){var l=[c,u];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return this.flowEngine.registerModelLoaders({AsyncTasksTopbarActionModel:{extends:"TopbarActionModel",loader:function(){return b.e("338").then(b.bind(b,33))}}}),this.app.eventBus.dispatchEvent(new CustomEvent("plugin:async-task-manager:loaded",{detail:this})),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,i){var a=e.apply(t,r);function c(e){n(a,o,i,c,u,"next",e)}function u(e){n(a,o,i,c,u,"throw",e)}c(void 0)})}).call(this)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(a.prototype,r),a}(a(e.Plugin)),l=u}(),m}()});
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "2.2.0-beta.
|
|
11
|
+
"@nocobase/client": "2.2.0-beta.2",
|
|
12
12
|
"react": "18.2.0",
|
|
13
|
-
"@nocobase/utils": "2.2.0-beta.
|
|
14
|
-
"@nocobase/flow-engine": "2.2.0-beta.
|
|
15
|
-
"@nocobase/client-v2": "2.2.0-beta.
|
|
13
|
+
"@nocobase/utils": "2.2.0-beta.2",
|
|
14
|
+
"@nocobase/flow-engine": "2.2.0-beta.2",
|
|
15
|
+
"@nocobase/client-v2": "2.2.0-beta.2",
|
|
16
16
|
"lodash": "4.18.1",
|
|
17
|
-
"@nocobase/server": "2.2.0-beta.
|
|
18
|
-
"@nocobase/logger": "2.2.0-beta.
|
|
19
|
-
"@nocobase/database": "2.2.0-beta.
|
|
17
|
+
"@nocobase/server": "2.2.0-beta.2",
|
|
18
|
+
"@nocobase/logger": "2.2.0-beta.2",
|
|
19
|
+
"@nocobase/database": "2.2.0-beta.2",
|
|
20
20
|
"antd": "5.24.2",
|
|
21
21
|
"react-i18next": "11.18.6",
|
|
22
22
|
"dayjs": "1.11.13",
|
|
23
23
|
"@ant-design/icons": "5.6.1",
|
|
24
24
|
"ahooks": "3.7.8",
|
|
25
|
-
"@nocobase/actions": "2.2.0-beta.
|
|
25
|
+
"@nocobase/actions": "2.2.0-beta.2"
|
|
26
26
|
};
|
|
@@ -15,6 +15,7 @@ import { ConcurrencyMode, ConcurrencyMonitor } from './interfaces/concurrency-mo
|
|
|
15
15
|
export declare class BaseTaskManager implements AsyncTasksManager {
|
|
16
16
|
private taskTypes;
|
|
17
17
|
private tasks;
|
|
18
|
+
private taskReqIds;
|
|
18
19
|
private readonly cleanupDelay;
|
|
19
20
|
private cleanupTimer;
|
|
20
21
|
private logger;
|
|
@@ -35,13 +36,14 @@ export declare class BaseTaskManager implements AsyncTasksManager {
|
|
|
35
36
|
setLogger(logger: Logger): void;
|
|
36
37
|
setApp(app: Application): void;
|
|
37
38
|
private enqueueTask;
|
|
39
|
+
private getTaskLogger;
|
|
38
40
|
cancelTask(taskId: TaskId, externally?: boolean): Promise<void>;
|
|
39
41
|
createTask(data: TaskModel, { useQueue, ...options }?: CreateTaskOptions): Promise<ITask>;
|
|
40
42
|
getTask(taskId: TaskId): ITask | undefined;
|
|
41
43
|
getTaskStatus(taskId: TaskId): Promise<TaskStatus>;
|
|
42
44
|
registerTaskType(taskType: TaskConstructor): void;
|
|
43
45
|
private prepareTask;
|
|
44
|
-
runTask(task: ITask): Promise<void>;
|
|
46
|
+
runTask(task: ITask, reqId?: string): Promise<void>;
|
|
45
47
|
}
|
|
46
48
|
export declare class ConcurrencyMonitorDelegate implements ConcurrencyMonitor {
|
|
47
49
|
private mode;
|
|
@@ -52,6 +52,7 @@ const PROCESS_CONCURRENCY_MONITOR = new import_base_concurrency_monitor.BaseConc
|
|
|
52
52
|
class BaseTaskManager {
|
|
53
53
|
taskTypes = /* @__PURE__ */ new Map();
|
|
54
54
|
tasks = /* @__PURE__ */ new Map();
|
|
55
|
+
taskReqIds = /* @__PURE__ */ new Map();
|
|
55
56
|
// Clean up completed tasks after 30 minutes by default
|
|
56
57
|
cleanupDelay = 30 * 60 * 1e3;
|
|
57
58
|
cleanupTimer;
|
|
@@ -66,21 +67,21 @@ class BaseTaskManager {
|
|
|
66
67
|
this.concurrencyMonitor.concurrency = concurrency;
|
|
67
68
|
}
|
|
68
69
|
idle = () => this.app.serving(WORKER_JOB_ASYNC_TASK_PROCESS) && this.concurrencyMonitor.idle();
|
|
69
|
-
onQueueTask = async ({ id }, { queueOptions }) => {
|
|
70
|
+
onQueueTask = async ({ id, reqId }, { queueOptions }) => {
|
|
70
71
|
const task = await this.prepareTask(id);
|
|
71
72
|
if (!this.concurrencyMonitor.increase(task.record.id)) {
|
|
72
|
-
this.enqueueTask(task, queueOptions);
|
|
73
|
+
this.enqueueTask(task, queueOptions, reqId);
|
|
73
74
|
return;
|
|
74
75
|
}
|
|
75
76
|
try {
|
|
76
|
-
await this.runTask(task);
|
|
77
|
+
await this.runTask(task, reqId);
|
|
77
78
|
} finally {
|
|
78
79
|
this.concurrencyMonitor.decrease(task.record.id);
|
|
79
80
|
}
|
|
80
81
|
};
|
|
81
|
-
onTaskProgress = (item) => {
|
|
82
|
+
onTaskProgress = (item, logger) => {
|
|
82
83
|
const userId = item.createdById;
|
|
83
|
-
|
|
84
|
+
logger.trace(`Task ${item.id} of user(${userId}) progress: ${item.progressCurrent} / ${item.progressTotal}`);
|
|
84
85
|
if (userId) {
|
|
85
86
|
const throttledEmit = this.getThrottledProgressEmitter(item.id, userId);
|
|
86
87
|
throttledEmit(item);
|
|
@@ -100,6 +101,12 @@ class BaseTaskManager {
|
|
|
100
101
|
};
|
|
101
102
|
onTaskStatusChanged = (task) => {
|
|
102
103
|
if (!task.changed("status")) return;
|
|
104
|
+
if (task.doneAt) {
|
|
105
|
+
this.progressThrottles.delete(task.id);
|
|
106
|
+
this.tasks.delete(task.id);
|
|
107
|
+
this.taskReqIds.delete(task.id);
|
|
108
|
+
this.concurrencyMonitor.decrease(task.id);
|
|
109
|
+
}
|
|
103
110
|
const userId = task.createdById;
|
|
104
111
|
if (!userId) return;
|
|
105
112
|
this.app.emit("ws:sendToUser", {
|
|
@@ -119,17 +126,13 @@ class BaseTaskManager {
|
|
|
119
126
|
this.progressThrottles.delete(task.id);
|
|
120
127
|
}
|
|
121
128
|
}
|
|
122
|
-
if (task.doneAt) {
|
|
123
|
-
this.progressThrottles.delete(task.id);
|
|
124
|
-
this.tasks.delete(task.id);
|
|
125
|
-
this.concurrencyMonitor.decrease(task.id);
|
|
126
|
-
}
|
|
127
129
|
if (task.status === import_constants.TASK_STATUS.SUCCEEDED) {
|
|
128
130
|
this.app.emit("workflow:dispatch");
|
|
129
131
|
}
|
|
130
132
|
};
|
|
131
133
|
onTaskAfterDelete = (task) => {
|
|
132
134
|
this.tasks.delete(task.id);
|
|
135
|
+
this.taskReqIds.delete(task.id);
|
|
133
136
|
this.progressThrottles.delete(task.id);
|
|
134
137
|
this.concurrencyMonitor.decrease(task.id);
|
|
135
138
|
const userId = task.createdById;
|
|
@@ -170,6 +173,7 @@ class BaseTaskManager {
|
|
|
170
173
|
if (tasksToCleanup.length) {
|
|
171
174
|
for (const task of tasksToCleanup) {
|
|
172
175
|
this.tasks.delete(task.id);
|
|
176
|
+
this.taskReqIds.delete(task.id);
|
|
173
177
|
this.progressThrottles.delete(task.id);
|
|
174
178
|
this.concurrencyMonitor.decrease(task.id);
|
|
175
179
|
}
|
|
@@ -238,9 +242,12 @@ class BaseTaskManager {
|
|
|
238
242
|
this.app.db.on("asyncTasks.afterUpdate", this.onTaskStatusChanged);
|
|
239
243
|
this.app.db.on("asyncTasks.afterDestroy", this.onTaskAfterDelete);
|
|
240
244
|
}
|
|
241
|
-
enqueueTask(task, queueOptions) {
|
|
245
|
+
enqueueTask(task, queueOptions, reqId = this.taskReqIds.get(task.record.id)) {
|
|
242
246
|
const plugin = this.app.pm.get(import_plugin.default);
|
|
243
|
-
this.app.eventQueue.publish(`${plugin.name}.task`, { id: task.record.id }, queueOptions);
|
|
247
|
+
this.app.eventQueue.publish(`${plugin.name}.task`, { id: task.record.id, reqId }, queueOptions);
|
|
248
|
+
}
|
|
249
|
+
getTaskLogger(reqId) {
|
|
250
|
+
return reqId ? this.logger.child({ reqId }) : this.logger;
|
|
244
251
|
}
|
|
245
252
|
async cancelTask(taskId, externally = false) {
|
|
246
253
|
const task = this.tasks.get(taskId);
|
|
@@ -271,9 +278,12 @@ class BaseTaskManager {
|
|
|
271
278
|
}
|
|
272
279
|
}
|
|
273
280
|
async createTask(data, { useQueue, ...options } = {}) {
|
|
281
|
+
var _a;
|
|
282
|
+
const reqId = (_a = options.context) == null ? void 0 : _a.reqId;
|
|
283
|
+
const logger = this.getTaskLogger(reqId);
|
|
274
284
|
const taskType = this.taskTypes.get(data.type);
|
|
275
285
|
if (!taskType) {
|
|
276
|
-
|
|
286
|
+
logger.error(`Task type not found: ${data.type}, params: ${JSON.stringify(data.params)}`);
|
|
277
287
|
throw new Error(`Task type ${data.type} not found`);
|
|
278
288
|
}
|
|
279
289
|
const values = taskType.defaults({
|
|
@@ -283,14 +293,17 @@ class BaseTaskManager {
|
|
|
283
293
|
});
|
|
284
294
|
const DBTaskModel = this.app.db.getModel("asyncTasks");
|
|
285
295
|
const record = await DBTaskModel.create(values, options);
|
|
286
|
-
|
|
287
|
-
|
|
296
|
+
logger.debug(`Creating task of type: ${data.type}`);
|
|
297
|
+
logger.debug(`Task data: ${JSON.stringify(data)}`);
|
|
288
298
|
const task = new taskType(record);
|
|
289
|
-
|
|
299
|
+
if (reqId && !useQueue) {
|
|
300
|
+
this.taskReqIds.set(record.id, reqId);
|
|
301
|
+
}
|
|
302
|
+
logger.info(`New task of type: ${data.type} created as ${record.id}`);
|
|
290
303
|
if (useQueue) {
|
|
291
|
-
|
|
304
|
+
logger.debug(`New task ${record.id} will be sent to queue for processing`);
|
|
292
305
|
const queueOptions = typeof useQueue === "object" ? useQueue : {};
|
|
293
|
-
this.enqueueTask(task, queueOptions);
|
|
306
|
+
this.enqueueTask(task, queueOptions, reqId);
|
|
294
307
|
}
|
|
295
308
|
return task;
|
|
296
309
|
}
|
|
@@ -329,19 +342,21 @@ class BaseTaskManager {
|
|
|
329
342
|
const task = new taskType(record);
|
|
330
343
|
return task;
|
|
331
344
|
}
|
|
332
|
-
async runTask(task) {
|
|
345
|
+
async runTask(task, reqId = this.taskReqIds.get(task.record.id)) {
|
|
333
346
|
if (task.record.status === import_constants.TASK_STATUS.PENDING) {
|
|
334
|
-
|
|
347
|
+
const logger = this.getTaskLogger(reqId);
|
|
348
|
+
task.setLogger(logger);
|
|
335
349
|
task.setApp(this.app);
|
|
336
|
-
task.onProgress = this.onTaskProgress;
|
|
350
|
+
task.onProgress = (record) => this.onTaskProgress(record, logger);
|
|
337
351
|
this.tasks.set(task.record.id, task);
|
|
338
352
|
try {
|
|
339
|
-
|
|
353
|
+
logger.debug(`Starting execution of task ${task.record.id} from queue`);
|
|
340
354
|
await task.run();
|
|
341
355
|
} catch (error) {
|
|
342
|
-
|
|
356
|
+
logger.error(`Error executing task ${task.record.id} from queue: ${error.message}`);
|
|
343
357
|
} finally {
|
|
344
358
|
this.tasks.delete(task.record.id);
|
|
359
|
+
this.taskReqIds.delete(task.record.id);
|
|
345
360
|
}
|
|
346
361
|
}
|
|
347
362
|
}
|
|
@@ -13,7 +13,9 @@ import { TaskId, TaskStatus } from '../../common/types';
|
|
|
13
13
|
import { Transactionable } from '@nocobase/database';
|
|
14
14
|
export interface CreateTaskOptions extends Transactionable {
|
|
15
15
|
useQueue?: boolean | QueueMessageOptions;
|
|
16
|
-
context?:
|
|
16
|
+
context?: object & {
|
|
17
|
+
reqId?: string;
|
|
18
|
+
};
|
|
17
19
|
}
|
|
18
20
|
export interface AsyncTasksManager {
|
|
19
21
|
concurrency: number;
|
|
@@ -24,7 +26,7 @@ export interface AsyncTasksManager {
|
|
|
24
26
|
cancelTask(taskId: TaskId): Promise<void>;
|
|
25
27
|
getTaskStatus(taskId: TaskId): Promise<TaskStatus>;
|
|
26
28
|
getTask(taskId: TaskId): ITask | undefined;
|
|
27
|
-
runTask(task: ITask): Promise<void>;
|
|
29
|
+
runTask(task: ITask, reqId?: string): Promise<void>;
|
|
28
30
|
}
|
|
29
31
|
export declare class CancelError extends Error {
|
|
30
32
|
constructor(message?: string);
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.",
|
|
7
7
|
"description.ru-RU": "Управление асинхронными задачами и мониторинг (например, импорт/экспорт данных). Поддержка отслеживания прогресса и уведомлений о задачах.",
|
|
8
8
|
"description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。",
|
|
9
|
-
"version": "2.2.0-beta.
|
|
9
|
+
"version": "2.2.0-beta.2",
|
|
10
10
|
"main": "dist/server/index.js",
|
|
11
11
|
"peerDependencies": {
|
|
12
12
|
"@nocobase/client": "2.x",
|
|
@@ -19,5 +19,5 @@
|
|
|
19
19
|
"p-queue": "^6.6.2"
|
|
20
20
|
},
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "2fe3e6a86fc1d0cd039349a68b2e4d1d6945ce45"
|
|
23
23
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
(self.webpackChunk_nocobase_plugin_async_task_manager_client_v2=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2||[]).push([["338"],{264:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,l,i){for(var s,c,u,f=a.$locale().relativeTime||o,d=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],p=d.length,y=0;y<p;y+=1){var m=d[y];m.d&&(s=l?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(s));if(u=s>0,b<=m.r||!m.r){b<=1&&y>0&&(m=d[y-1]);var h=f[m.l];i&&(b=i(""+b)),c="string"==typeof h?h.replace("%d",b):h(b,r,m.l,u);break}}if(r)return c;var v=u?f.future:f.past;return"function"==typeof v?v(c):v.replace("%s",c)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var l=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(l(this),e)},r.fromNow=function(e){return this.from(l(this),e)}}},33:function(e,t,n){"use strict";n.r(t),n.d(t,{AsyncTasksTopbarActionModel:function(){return _},default:function(){return B}});var r,o=n(375),a=n(485),l=n(694),i=n(625),s=n(59),c=n(185),u=n.n(c),f=n(264),d=n.n(f),p=n(155),y=n.n(p);function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b="@nocobase/plugin-async-task-manager",h=(m(r={},null,{value:null,label:"{{t('Waiting', { ns: '".concat(b,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),m(r,0,{value:0,label:"{{t('Processing', { ns: '".concat(b,"' })}}"),color:"processing",icon:"LoadingOutlined"}),m(r,1,{value:1,label:"{{t('Completed', { ns: '".concat(b,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),m(r,-1,{value:-1,label:"{{t('Failed', { ns: '".concat(b,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),m(r,-2,{value:-2,label:"{{t('Cancelled', { ns: '".concat(b,"' })}}"),color:"warning",icon:"StopOutlined"}),r),v="@nocobase/plugin-async-task-manager";function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e,t,n,r,o,a,l){try{var i=e[a](l),s=i.value}catch(e){n(e);return}i.done?t(s):Promise.resolve(s).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){k(a,r,o,l,i,"next",e)}function i(e){k(a,r,o,l,i,"throw",e)}l(void 0)})}}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e,t){return(S=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||C(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function C(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}}function T(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(T=function(){return!!e})()}function M(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:s(0)}),i(l,"throw",{value:s(1)}),i(l,"return",{value:s(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function s(i){return function(s){var c=[i,s];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}u().extend(d());var A=y().memo(function(e){var t,n,r=e.popoverVisible,i=e.setPopoverVisible,c=e.tasks,f=e.refresh,d=e.loading,m=(0,a.useApp)(),b=(t=(0,l.useFlowEngine)(),function(e,n){return t.context.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[v,"client"],nsMode:"fallback"},n))}),g=s.theme.useToken().token,k=null!=(n=m.pm.get("async-task-manager"))?n:m.pm.get("@nocobase/plugin-async-task-manager"),O=(0,p.useMemo)(function(){return m.apiClient.resource("asyncTasks")},[m.apiClient]),S=(0,p.useMemo)(function(){return[{title:b("Created at"),dataIndex:"createdAt",key:"createdAt",width:5*g.controlHeight,render:function(e){return e?y().createElement(s.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow()):"-"}},{title:b("Task"),dataIndex:"title",key:"title",ellipsis:!0},{title:b("Status"),dataIndex:"status",key:"status",width:5*g.controlHeight,render:function(e,t){var n,r=null!=(n=h[String(null!=e?e:null)])?n:h[String(null)];return y().createElement(s.Space,{align:"center",size:g.marginXS},y().createElement("span",null,function(){var n,o,a={width:3*g.controlHeight,margin:0};switch(e){case null:case -2:return y().createElement(s.Alert,{showIcon:!1,message:b(r.label),banner:!0});case 0:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(o=t.progressTotal)?o:1)*100).toFixed(2)),status:"active",style:a,format:function(e){return"".concat((null!=e?e:0).toFixed(1),"%")}});case 1:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:100,status:"success",style:a,format:function(){return""}});case -1:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:100,status:"exception",style:a,format:function(){return""}});default:return null}}()),y().createElement(s.Tag,{color:r.color,icon:r.icon?y().createElement(a.Icon,{type:r.icon}):null,style:{margin:0,paddingInline:g.paddingXXS,height:g.controlHeightSM,width:g.controlHeightSM}}))}},{title:b("Actions"),dataIndex:"result",key:"actions",width:6*g.controlHeight,render:function(e,t){var n,r=[],a=function(e,t){if(t)return null==e?void 0:e.taskOrigins.get(t)}(k,t.origin),l=null==a?void 0:a.Result,c=null==a?void 0:a.ResultButton;return t.cancelable&&(0===t.status||null===t.status)&&r.push(y().createElement(s.Popconfirm,{key:"cancel",title:b("Confirm cancel"),description:b("Confirm to cancel this task?"),onConfirm:function(){return E(function(){return M(this,function(e){switch(e.label){case 0:return[4,O.stop({filterByTk:t.id})];case 1:return e.sent(),f(),[2]}})})()},okText:b("Confirm"),cancelText:b("Cancel")},y().createElement(s.Button,{type:"link",size:"small",icon:y().createElement(o.StopOutlined,null)},b("Stop")))),1===t.status&&e&&(c?r.push(y().createElement(c,{key:"result-button",task:t})):r.push(y().createElement(s.Button,{key:"view",type:"link",size:"small",icon:y().createElement(o.EyeOutlined,null),onClick:function(){i(!1),s.Modal.info({title:b("Task result"),content:l?y().createElement(l,{payload:e,task:t}):y().createElement("div",null,b("No renderer available for this task type, payload: {{payload}}",{payload:String(e)}))})}},b("View result")))),-1===t.status&&(n=e)&&(void 0===n?"undefined":P(n))==="object"&&r.push(y().createElement(s.Button,{key:"error",type:"link",size:"small",icon:y().createElement(o.ExclamationCircleOutlined,null),onClick:function(){i(!1);var t,n,r,o,l=null!=(r=null==a?void 0:a.namespace)?r:"client";s.Modal.info({title:b("Error Details"),content:y().createElement(s.Typography.Text,null,b(null!=(o=e.message)?o:"",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){w(e,t,n[t])})}return e}({},e.params),n=n={ns:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))),closable:!0,width:g.screenSM})}},b("Error details"))),y().createElement(s.Space,{size:g.marginSM},r)}}]},[k,f,i,b,O,g]),j=y().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:c.length>0?g.screenLG:6*g.controlHeight}},c.length>0?y().createElement(s.Table,{loading:d,columns:S,dataSource:c,size:"small",pagination:!1,rowKey:"id"}):y().createElement("div",{style:{paddingBlock:g.paddingLG,display:"flex",justifyContent:"center"}},y().createElement(s.Empty,{description:b("No tasks"),image:s.Empty.PRESENTED_IMAGE_SIMPLE})));return y().createElement(s.Popover,{content:j,trigger:"click",placement:"bottom",open:r,onOpenChange:i},y().createElement(s.Button,{type:"text",onClick:function(){i(!r),r||f()},icon:y().createElement(o.SyncOutlined,{spin:c.some(function(e){return 0===e.status})}),"data-testid":"async-tasks-button"}))});A.displayName="AsyncTasksButton";var x=(0,l.observer)(function(){var e=(0,a.useApp)(),t=(0,a.useMobileLayout)().isMobileLayout,n=(0,i.useRequest)(function(){return E(function(){var t,n;return M(this,function(r){switch(r.label){case 0:return[4,e.apiClient.resource("asyncTasks").list({sort:"-createdAt"})];case 1:return[2,null!=(t=null==(n=r.sent())?void 0:n.data)?t:{data:[]}]}})})()}),r=n.data,o=n.refresh,l=n.loading,s=j((0,p.useState)([]),2),c=s[0],u=s[1],f=j((0,p.useState)(!1),2),d=f[0],m=f[1];(0,p.useEffect)(function(){u(Array.isArray(null==r?void 0:r.data)?r.data:[])},[r]);var b=(0,p.useCallback)(function(){m(!0),o()},[o]),h=(0,p.useCallback)(function(e){var t=e.detail;(null==t?void 0:t.id)&&u(function(e){var n=function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||C(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.")}(),r=n.findIndex(function(e){return e.id===t.id});return -1===r?n.unshift(t):n.splice(r,1,t),n})},[]),v=(0,p.useCallback)(function(){o()},[o]),k=(0,p.useCallback)(function(){o()},[o]);return((0,p.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",b),e.eventBus.addEventListener("ws:message:async-tasks:progress",h),e.eventBus.addEventListener("ws:message:async-tasks:status",v),e.eventBus.addEventListener("ws:message:async-tasks:deleted",k),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",b),e.eventBus.removeEventListener("ws:message:async-tasks:progress",h),e.eventBus.removeEventListener("ws:message:async-tasks:status",v),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",k)}},[e.eventBus,b,k,h,v]),t||0===c.length)?null:y().createElement(A,{tasks:c,refresh:o,loading:l,popoverVisible:d,setPopoverVisible:m})},{displayName:"AsyncTasksTopbarAction"}),_=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=O(t),w(e=function(e,t){if(t&&("object"===P(t)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,T()?Reflect.construct(t,r||[],O(this).constructor):t.apply(this,r)),"sort",300),w(e,"actionId","async-tasks"),w(e,"testId","async-tasks-button"),w(e,"tooltip",(0,l.tExpr)("Async tasks",{ns:[v,"client"],nsMode:"fallback"})),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&S(n,e),t=[{key:"render",value:function(){return y().createElement(x,null)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(a.TopbarActionModel),B=_}}]);
|