@nocobase/plugin-async-task-manager 1.9.0-beta.5 → 1.9.0-beta.7
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/ISSUES.md +31 -0
- package/dist/client/index.d.ts +17 -4
- package/dist/client/index.js +1 -1
- package/dist/client/locale.d.ts +9 -1
- package/dist/common/collections/asyncTasks.d.ts +25 -0
- package/dist/common/collections/asyncTasks.js +97 -0
- package/dist/common/constants.d.ts +73 -0
- package/dist/common/constants.js +86 -0
- package/dist/common/types.d.ts +11 -0
- package/dist/common/types.js +24 -0
- package/dist/externalVersion.js +7 -5
- package/dist/server/base-task-manager.d.ts +21 -15
- package/dist/server/base-task-manager.js +230 -101
- package/dist/server/collections/asyncTasks.d.ts +11 -0
- package/dist/server/collections/asyncTasks.js +43 -0
- package/dist/server/command-task-type.d.ts +9 -0
- package/dist/server/command-task-type.js +19 -8
- package/dist/server/interfaces/async-task-manager.d.ts +11 -48
- package/dist/server/interfaces/task.d.ts +25 -23
- package/dist/server/interfaces/task.js +28 -0
- package/dist/server/plugin.d.ts +2 -5
- package/dist/server/plugin.js +15 -129
- package/dist/server/resourcers/async-tasks.d.ts +3 -2
- package/dist/server/resourcers/async-tasks.js +44 -27
- package/dist/server/task-type.d.ts +10 -62
- package/dist/server/task-type.js +66 -121
- package/package.json +2 -2
- package/dist/client/TaskResultRendererManager.d.ts +0 -6
- package/dist/node_modules/p-queue/dist/index.d.ts +0 -101
- package/dist/node_modules/p-queue/dist/index.js +0 -1
- package/dist/node_modules/p-queue/dist/lower-bound.d.ts +0 -1
- package/dist/node_modules/p-queue/dist/lower-bound.js +0 -21
- package/dist/node_modules/p-queue/dist/options.d.ts +0 -64
- package/dist/node_modules/p-queue/dist/options.js +0 -2
- package/dist/node_modules/p-queue/dist/priority-queue.d.ts +0 -12
- package/dist/node_modules/p-queue/dist/priority-queue.js +0 -32
- package/dist/node_modules/p-queue/dist/queue.d.ts +0 -7
- package/dist/node_modules/p-queue/dist/queue.js +0 -2
- package/dist/node_modules/p-queue/license +0 -9
- package/dist/node_modules/p-queue/node_modules/eventemitter3/index.d.ts +0 -134
- package/dist/node_modules/p-queue/node_modules/eventemitter3/index.js +0 -336
- package/dist/node_modules/p-queue/node_modules/eventemitter3/package.json +0 -56
- package/dist/node_modules/p-queue/node_modules/eventemitter3/umd/eventemitter3.js +0 -340
- package/dist/node_modules/p-queue/node_modules/eventemitter3/umd/eventemitter3.min.js +0 -1
- package/dist/node_modules/p-queue/package.json +0 -1
- package/dist/node_modules/uuid/dist/bin/uuid +0 -2
- package/dist/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
- package/dist/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
- package/dist/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
- package/dist/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
- package/dist/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
- package/dist/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
- package/dist/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
- package/dist/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
- package/dist/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
- package/dist/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
- package/dist/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
- package/dist/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
- package/dist/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
- package/dist/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
- package/dist/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
- package/dist/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
- package/dist/node_modules/uuid/dist/esm-browser/index.js +0 -9
- package/dist/node_modules/uuid/dist/esm-browser/md5.js +0 -215
- package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -4
- package/dist/node_modules/uuid/dist/esm-browser/nil.js +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/parse.js +0 -35
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +0 -18
- package/dist/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +0 -33
- package/dist/node_modules/uuid/dist/esm-browser/v1.js +0 -95
- package/dist/node_modules/uuid/dist/esm-browser/v3.js +0 -4
- package/dist/node_modules/uuid/dist/esm-browser/v35.js +0 -66
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +0 -29
- package/dist/node_modules/uuid/dist/esm-browser/v5.js +0 -4
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -7
- package/dist/node_modules/uuid/dist/esm-browser/version.js +0 -11
- package/dist/node_modules/uuid/dist/esm-node/index.js +0 -9
- package/dist/node_modules/uuid/dist/esm-node/md5.js +0 -13
- package/dist/node_modules/uuid/dist/esm-node/native.js +0 -4
- package/dist/node_modules/uuid/dist/esm-node/nil.js +0 -1
- package/dist/node_modules/uuid/dist/esm-node/parse.js +0 -35
- package/dist/node_modules/uuid/dist/esm-node/regex.js +0 -1
- package/dist/node_modules/uuid/dist/esm-node/rng.js +0 -12
- package/dist/node_modules/uuid/dist/esm-node/sha1.js +0 -13
- package/dist/node_modules/uuid/dist/esm-node/stringify.js +0 -33
- package/dist/node_modules/uuid/dist/esm-node/v1.js +0 -95
- package/dist/node_modules/uuid/dist/esm-node/v3.js +0 -4
- package/dist/node_modules/uuid/dist/esm-node/v35.js +0 -66
- package/dist/node_modules/uuid/dist/esm-node/v4.js +0 -29
- package/dist/node_modules/uuid/dist/esm-node/v5.js +0 -4
- package/dist/node_modules/uuid/dist/esm-node/validate.js +0 -7
- package/dist/node_modules/uuid/dist/esm-node/version.js +0 -11
- package/dist/node_modules/uuid/dist/index.js +0 -1
- package/dist/node_modules/uuid/dist/md5-browser.js +0 -223
- package/dist/node_modules/uuid/dist/md5.js +0 -23
- package/dist/node_modules/uuid/dist/native-browser.js +0 -11
- package/dist/node_modules/uuid/dist/native.js +0 -15
- package/dist/node_modules/uuid/dist/nil.js +0 -8
- package/dist/node_modules/uuid/dist/parse.js +0 -45
- package/dist/node_modules/uuid/dist/regex.js +0 -8
- package/dist/node_modules/uuid/dist/rng-browser.js +0 -25
- package/dist/node_modules/uuid/dist/rng.js +0 -24
- package/dist/node_modules/uuid/dist/sha1-browser.js +0 -104
- package/dist/node_modules/uuid/dist/sha1.js +0 -23
- package/dist/node_modules/uuid/dist/stringify.js +0 -44
- package/dist/node_modules/uuid/dist/uuid-bin.js +0 -85
- package/dist/node_modules/uuid/dist/v1.js +0 -107
- package/dist/node_modules/uuid/dist/v3.js +0 -16
- package/dist/node_modules/uuid/dist/v35.js +0 -80
- package/dist/node_modules/uuid/dist/v4.js +0 -43
- package/dist/node_modules/uuid/dist/v5.js +0 -16
- package/dist/node_modules/uuid/dist/validate.js +0 -17
- package/dist/node_modules/uuid/dist/version.js +0 -21
- package/dist/node_modules/uuid/package.json +0 -1
package/ISSUES.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
develop-cluster-node-2-noco-app | 2025-08-04 09:10:43 [info] HandleRow completed, 0.39ms
|
|
2
|
+
develop-cluster-node-2-noco-app | 2025-08-04 09:10:43 [info] Processed 71000/100000 records (71%), elapsed time: 78.05s, estimated remaining: 31.88s
|
|
3
|
+
develop-cluster-node-2-noco-app | 2025-08-04 09:10:43 [error] Export failed: Connection terminated unexpectedly error={"name":"SequelizeDatabaseError","parent":{"sql":"SELECT \"created_at\" AS \"createdAt\", \"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;"},"original":{"sql":"SELECT \"created_at\" AS \"createdAt\", \"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;"},"sql":"SELECT \"created_at\" AS \"createdAt\",\"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;","parameters":{}}
|
|
4
|
+
|
|
5
|
+
{
|
|
6
|
+
"name": "SequelizeDatabaseError",
|
|
7
|
+
"parent": {
|
|
8
|
+
"sql": "SELECT \"created_at\" AS \"createdAt\", \"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;"
|
|
9
|
+
},
|
|
10
|
+
"original": {
|
|
11
|
+
"sql": "SELECT \"created_at\" AS \"createdAt\", \"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;"
|
|
12
|
+
},
|
|
13
|
+
"sql": "SELECT \"created_at\" AS \"createdAt\",\"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;",
|
|
14
|
+
"parameters": {}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
SELECT "created_at" AS "createdAt","updated_at" AS "updatedAt", "id", "title", "number", "sub_title" AS "subTitle", "email", "content", "published_at" AS "publishedAt", "a", "b", "c", "d", "created_by_id" AS "createdById", "updated_by_id" AS "updatedById" FROM "public"."test" AS "test" ORDER BY "test"."id" ASC NULLS LAST LIMIT 200 OFFSET 71000;
|
|
18
|
+
|
|
19
|
+
develop-cluster-node-2-noco-app | 2025-08-04 09:10:43 [error] Worker error for task fee4481c-fd44-4c84-9ea4-5ea6d10981f5 Connection terminated unexpectedly stack=Error
|
|
20
|
+
develop-cluster-node-2-noco-app | at Query.run (/app/nocobase/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)
|
|
21
|
+
develop-cluster-node-2-noco-app | at /app/nocobase/node_modules/sequelize/lib/sequelize.js:315:28
|
|
22
|
+
develop-cluster-node-2-noco-app | at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
|
|
23
|
+
develop-cluster-node-2-noco-app | at async PostgresQueryInterface.select (/app/nocobase/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)
|
|
24
|
+
develop-cluster-node-2-noco-app | at async test.findAll (/app/nocobase/node_modules/sequelize/lib/model.js:1140:21)
|
|
25
|
+
develop-cluster-node-2-noco-app | at async _Repository.find (/app/nocobase/node_modules/@nocobase/database/lib/repository.js:364:14)
|
|
26
|
+
develop-cluster-node-2-noco-app | at async _Repository.chunk (/app/nocobase/node_modules/@nocobase/database/lib/repository.js:304:20)
|
|
27
|
+
develop-cluster-node-2-noco-app | at async XlsxExporter.run (/app/nocobase/node_modules/@nocobase/plugin-action-export/dist/server/services/base-exporter.js:128:7)
|
|
28
|
+
develop-cluster-node-2-noco-app | at async _AppCommand.<anonymous> (/app/nocobase/node_modules/@nocobase/plugin-action-export-pro/dist/server/commands/export-xlsx-command.js:78:5)
|
|
29
|
+
develop-cluster-node-2-noco-app | at async _AppCommand.parseAsync (/app/nocobase/node_modules/@nocobase/server/node_modules/commander/lib/command.js:935:5)
|
|
30
|
+
develop-cluster-node-2-noco-app | at async _AsyncEmitter.runAsCLI (/app/nocobase/node_modules/@nocobase/server/lib/application.js:592:23) meta={"name":"SequelizeDatabaseError","parent":{},"original":{},"sql":"SELECT \"created_at\" AS \"createdAt\", \"updated_at\" AS \"updatedAt\", \"id\", \"title\", \"number\", \"sub_title\" AS \"subTitle\", \"email\", \"content\", \"published_at\" AS \"publishedAt\", \"a\", \"b\", \"c\", \"d\", \"created_by_id\" AS \"createdById\", \"updated_by_id\" AS \"updatedById\" FROM \"public\".\"test\" AS \"test\" ORDER BY \"test\".\"id\" ASC NULLS LAST LIMIT 200 OFFSET 71000;","parameters":{}} module=application app=main reqId=8fc5e363-0a07-4e5a-abde-2c9b38ed62a0 dataSourceKey=main
|
|
31
|
+
develop-cluster-node-2-noco-app | 2025-08-04 09:10:44 [info] Worker exited for task fee4481c-fd44-4c84-9ea4-5ea6d10981f5 with code 1 module=application app=main reqId=8fc5e363-0a07-4e5a-abde-2c9b38ed62a0 dataSourceKey=main
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
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
|
+
/// <reference types="react" />
|
|
10
|
+
import { Registry } from '@nocobase/utils/client';
|
|
1
11
|
import { Plugin } from '@nocobase/client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
12
|
+
type TaskOrigin = {
|
|
13
|
+
Result?: React.ComponentType<any>;
|
|
14
|
+
ResultButton?: React.ComponentType<any>;
|
|
15
|
+
};
|
|
16
|
+
export declare class PluginAsyncTaskManagerClient extends Plugin {
|
|
17
|
+
taskOrigins: Registry<TaskOrigin>;
|
|
5
18
|
load(): Promise<void>;
|
|
6
19
|
}
|
|
7
|
-
export default
|
|
20
|
+
export default PluginAsyncTaskManagerClient;
|
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"),require("dayjs"),require("@nocobase/client"),require("antd")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react","dayjs","@nocobase/client","antd"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react"),require("dayjs"),require("@nocobase/client"),require("antd")):e["@nocobase/plugin-async-task-manager"]=t(e.react,e.dayjs,e["@nocobase/client"],e.antd)}(self,function(e,t,n,r){var o={379: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(760))},809: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,l){for(var s,c,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&&(s=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var v=(e.rounding||Math.round)(Math.abs(s));if(u=s>0,v<=m.r||!m.r){v<=1&&y>0&&(m=p[y-1]);var h=f[m.l];l&&(v=l(""+v)),c="string"==typeof h?h.replace("%d",v):h(v,r,m.l,u);break}}if(r)return c;var b=u?f.future:f.past;return"function"==typeof b?b(c):b.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 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)}}},772:function(e){"use strict";e.exports=n},721:function(e){"use strict";e.exports=r},760:function(e){"use strict";e.exports=t},156:function(t){"use strict";t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return o[e].call(n.exports,n,n.exports,i),n.exports}i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};return!function(){"use strict";i.r(l),i.d(l,{PluginAsyncExportClient:function(){return P},default:function(){return M}});var e=i(772),t=i(156),n=i.n(t),r=i(721),o=i(760),a=i.n(o);i(379);var s=i(809),c=i.n(s),u=JSON.parse('{"u2":"@nocobase/plugin-async-task-manager"}');function f(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 p(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function d(e){return 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,l,"next",e)}function l(e){p(a,r,o,i,l,"throw",e)}i(void 0)})}}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return f(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 f(e,t)}}(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 m(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var s=[a,l];if(n)throw TypeError("Generator is already executing.");for(;i;)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 i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}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 v=(0,e.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});a().extend(c());var h=function(e,t){if("success"!==e.type||!(null==(a=e.payload)||null==(o=a.message)?void 0:o.messageId))return null;var o,a,i=e.payload.message,l=i.messageId,s=i.messageValues;return n().createElement("div",{style:{marginLeft:8}},n().createElement(r.Tag,{color:"success"},t(l,s)))},b=function(){var t=(0,e.useRequest)({url:"asyncTasks:list"}),n=t.data,r=t.refreshAsync;return{loading:t.loading,tasks:(null==n?void 0:n.data)||[],refresh:r}},g=function(t){var o,i=t.popoverVisible,l=t.setPopoverVisible,s=t.tasks,c=t.refresh,f=t.loading,p=t.hasProcessingTasks,y=(0,e.useApp)(),b=(0,e.useAPIClient)(),g=(0,e.useCurrentAppInfo)(),k=(o=(0,e.useApp)(),function(e){return o.i18n.t(e,{ns:[u.u2,"client"]})}),w=v().styles,E=(0,e.usePlugin)("async-task-manager"),x=(0,e.useCollectionManager)(),_=(0,e.useCompile)(),O=function(e){l(!1)},T=[{title:k("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return n().createElement(r.Tooltip,{title:a()(e).format("YYYY-MM-DD HH:mm:ss")},a()(e).fromNow())}},{title:k("Task"),dataIndex:"title",key:"title",render:function(e,t){var n=t.title;if(!n)return"-";var r=x.getCollection(n.collection),o={export:k("Export"),import:k("Import"),"export-attachments":k("Export attachments")}[n.actionType]||n.actionType;return(({"export-attachments":k("Export {collection} attachments"),export:k("Export {collection} data"),import:k("Import {collection} data")})[n.actionType]||"".concat(o)).replace("{collection}",_((null==r?void 0:r.title)||n.collection))}},{title:k("Status"),dataIndex:"status",key:"status",width:160,render:function(t,o){var a,i={pending:{color:"default",text:k("Waiting"),icon:"ClockCircleOutlined"},running:{color:"processing",text:k("Processing"),icon:"LoadingOutlined"},success:{color:"success",text:k("Completed"),icon:"CheckCircleOutlined"},failed:{color:"error",text:k("Failed"),icon:"CloseCircleOutlined"},cancelled:{color:"warning",text:k("Cancelled"),icon:"StopOutlined"}},l=i[t.type]||{},s=l.color,c=l.text;return n().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},n().createElement("div",{style:{flex:1}},function(){var e,a,i={width:100,margin:0};switch(t.indicator){case"spinner":return n().createElement(r.Alert,{showIcon:!1,message:c,banner:!0});case"progress":return n().createElement(r.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null==(e=o.progress)?void 0:e.current)/(null==(a=o.progress)?void 0:a.total)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case"success":return n().createElement(r.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case"error":return n().createElement(r.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),n().createElement(r.Tag,{color:s,icon:(null==(a=i[t.type])?void 0:a.icon)?n().createElement(e.Icon,{type:i[t.type].icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}),h(t,k))}},{title:k("Actions"),key:"actions",width:180,render:function(t,o){var a=[];return("running"===o.status.type||"pending"===o.status.type)&&o.cancelable&&a.push(n().createElement(r.Popconfirm,{key:"cancel",title:k("Confirm cancel"),description:k("Confirm cancel description"),onConfirm:d(function(){return m(this,function(e){switch(e.label){case 0:return[4,b.request({url:"asyncTasks:cancel",params:{filterByTk:o.taskId}})];case 1:return e.sent(),c(),[2]}})}),okText:k("Confirm"),cancelText:k("Cancel"),disabled:!1},n().createElement(r.Button,{type:"link",size:"small",icon:n().createElement(e.Icon,{type:"StopOutlined"}),disabled:!1},k("Cancel")))),"success"===o.status.type&&("file"===o.status.resultType?a.push(n().createElement(r.Button,{key:"download",type:"link",size:"small",icon:n().createElement(e.Icon,{type:"DownloadOutlined"}),onClick:function(){var e,t,n,r=y.apiClient.auth.token,a=x.getCollection(o.title.collection),i=_(null==a?void 0:a.title),l=(null==o||null==(e=o.title)?void 0:e.actionType)==="export-attachments"?"-attachments.zip":".xlsx",s="".concat(i).concat(l),c=(null==o||null==(t=o.title)?void 0:t.actionType)!=="create migration"?encodeURIComponent(s):null,u=y.getApiUrl("asyncTasks:fetchFile/".concat(o.taskId,"?token=").concat(r,"&__appName=").concat(encodeURIComponent((null==g||null==(n=g.data)?void 0:n.name)||y.name)).concat(c?"&filename=".concat(c):""));window.open(u)}},k("Download"))):o.status.payload&&a.push(n().createElement(r.Button,{key:"view",type:"link",size:"small",icon:n().createElement(e.Icon,{type:"EyeOutlined"}),onClick:function(){O(o);var e=o.status.payload,t=E.taskResultRendererManager.get(o.title.actionType);r.Modal.info({title:k("Task result"),content:t?n().createElement(t,{payload:e,task:o}):n().createElement("div",null,k("No renderer available for this task type, payload: ".concat(e)))})}},k("View result")))),"failed"===o.status.type&&a.push(n().createElement(r.Button,{key:"error",type:"link",size:"small",icon:n().createElement(e.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){var e;l(!1),r.Modal.info({title:k("Error Details"),content:null==(e=o.status.errors)?void 0:e.map(function(e,t){return n().createElement("div",{key:t,style:{marginBottom:16}},n().createElement("div",{style:{color:"#ff4d4f",marginBottom:8}},e.message),e.code&&n().createElement("div",{style:{color:"#999",fontSize:12}},k("Error code"),": ",e.code))}),closable:!0,width:400})}},k("Error details"))),n().createElement(r.Space,{size:"middle"},a)}}],S=n().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:s.length>0?800:200}},s.length>0?n().createElement(r.Table,{loading:f,columns:T,dataSource:s,size:"small",pagination:!1,rowKey:"taskId"}):n().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},n().createElement(r.Empty,{description:k("No tasks"),image:r.Empty.PRESENTED_IMAGE_SIMPLE})));return n().createElement(n().Fragment,null,n().createElement(r.Popover,{content:S,trigger:"hover",placement:"bottom",open:i,onOpenChange:l},n().createElement(r.Button,{className:["sync-task-button",w.button].join(" "),icon:n().createElement(e.Icon,{type:"SyncOutlined",spin:p}),onClick:function(){return l(!i)}})))},k=function(){var r=b(),o=r.tasks,a=r.refresh,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(r,["tasks","refresh"]),l=(0,e.useApp)(),s=y((0,t.useState)(!1),2),c=s[0],u=s[1],f=y((0,t.useState)(!1),2),p=f[0],v=f[1];(0,t.useEffect)(function(){v(o.some(function(e){return"success"!==e.status.type&&"failed"!==e.status.type}))},[o]);var h=(0,t.useCallback)(d(function(){return m(this,function(e){return u(!0),a(),console.log("handleTaskCreated"),[2]})}),[]),k=(0,t.useCallback)(function(){a(),console.log("handleTaskProgress")},[]),w=(0,t.useCallback)(function(){a(),console.log("handleTaskStatus")},[]),E=(0,t.useCallback)(function(){a(),console.log("handleTaskCancelled")},[]);return(0,t.useEffect)(function(){return l.eventBus.addEventListener("ws:message:async-tasks:created",h),l.eventBus.addEventListener("ws:message:async-tasks:progress",k),l.eventBus.addEventListener("ws:message:async-tasks:status",w),l.eventBus.addEventListener("ws:message:async-tasks:cancelled",E),function(){l.eventBus.removeEventListener("ws:message:async-tasks:created",h),l.eventBus.removeEventListener("ws:message:async-tasks:progress",k),l.eventBus.removeEventListener("ws:message:async-tasks:status",w),l.eventBus.removeEventListener("ws:message:async-tasks:cancelled",E)}},[l,E,h,k,w]),(null==o?void 0:o.length)>0&&n().createElement(g,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}({tasks:o,refresh:a,popoverVisible:c,setPopoverVisible:u,hasProcessingTasks:p},i))},w=function(t){return n().createElement(e.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},n().createElement(e.SchemaComponentOptions,{components:{AsyncTasks:k}},t.children))},E=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="renderers",n=new Map,e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{key:"register",value:function(e,t){this.renderers.set(e,t)}},{key:"get",value:function(e){return this.renderers.get(e)}}],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)}}(t.prototype,e),t}();function x(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function _(e,t,n){return(_=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&&T(o,n.prototype),o}).apply(null,arguments)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e){var t="function"==typeof Map?new Map:void 0;return(S=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 _(e,arguments,O(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),T(n,e)})(e)}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(C=function(){return!!e})()}var P=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,o,a,i;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=O(t),o=e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=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(t,r||[],O(this).constructor):t.apply(this,r)),a="taskResultRendererManager",i=new E,a in o?Object.defineProperty(o,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):o[a]=i,e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&T(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var s=[a,l];if(n)throw TypeError("Generator is already executing.");for(;i;)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 i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}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 t.app.use(w),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){x(a,r,o,i,l,"next",e)}function l(e){x(a,r,o,i,l,"throw",e)}i(void 0)})})()}}],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}(S(e.Plugin)),M=P}(),l});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react","dayjs","@nocobase/client","@nocobase/utils/client","antd"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd")):e["@nocobase/plugin-async-task-manager"]=t(e.react,e.dayjs,e["@nocobase/client"],e["@nocobase/utils/client"],e.antd)}(self,function(e,t,n,r,o){var a={379: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(760))},809: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,l){for(var s,u,c,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=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var v=(e.rounding||Math.round)(Math.abs(s));if(c=s>0,v<=m.r||!m.r){v<=1&&y>0&&(m=d[y-1]);var b=f[m.l];l&&(v=l(""+v)),u="string"==typeof b?b.replace("%d",v):b(v,r,m.l,c);break}}if(r)return u;var h=c?f.future:f.past;return"function"==typeof h?h(u):h.replace("%s",u)},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)}}},772:function(e){"use strict";e.exports=n},584:function(e){"use strict";e.exports=r},721:function(e){"use strict";e.exports=o},760:function(e){"use strict";e.exports=t},156:function(t){"use strict";t.exports=e}},i={};function l(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return a[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.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return!function(){"use strict";l.r(s),l.d(s,{PluginAsyncTaskManagerClient:function(){return j},default:function(){return L}});var e,t=l(584),n=l(772),r=l(156),o=l.n(r),a=l(721),i=l(760),u=l.n(i);l(379);var c=l(809),f=l.n(c),d=JSON.parse('{"u2":"@nocobase/plugin-async-task-manager"}');function p(){var e=(0,n.useApp)();return function(t,n){return e.i18n.t(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){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:[d.u2,"client"]},n))}}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",v={PENDING:null,RUNNING:0,SUCCEEDED:1,FAILED:-1,CANCELED:-2},b=(y(e={},v.PENDING,{value:v.PENDING,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,v.RUNNING,{value:v.RUNNING,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,v.SUCCEEDED,{value:v.SUCCEEDED,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,v.FAILED,{value:v.FAILED,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,v.CANCELED,{value:v.CANCELED,label:"{{t('Canceled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function h(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 g(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.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 i(e){g(a,r,o,i,l,"next",e)}function l(e){g(a,r,o,i,l,"throw",e)}i(void 0)})}}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||w(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 w(e,t){if(e){if("string"==typeof e)return h(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 h(e,t)}}function _(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var s=[a,l];if(n)throw TypeError("Generator is already executing.");for(;i;)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 i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}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 C=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});u().extend(f());var S=function(e){var t,n,r=e.record,i=p();if(r.status!==v.SUCCEEDED||!(null==(n=r.result)||null==(t=n.message)?void 0:t.messageId))return null;var l=r.result.message,s=l.messageId,u=l.messageValues;return o().createElement("div",{style:{marginLeft:8}},o().createElement(a.Tag,{color:"success"},i(s,u)))},x=function(e){var t=e.popoverVisible,r=e.setPopoverVisible,i=e.tasks,l=e.refresh,s=e.loading;e.hasProcessingTasks;var c=(0,n.useAPIClient)(),f=p(),d=C().styles,y=(0,n.usePlugin)("async-task-manager");(0,n.useCollectionManager)();var m=(0,n.useCompile)(),h=function(e){r(!1)},g=[{title:f("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow())}},{title:f("Task"),dataIndex:"title",key:"title"},{title:f("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=b[e]||{},i=r.color,l=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 v.PENDING:return o().createElement(a.Alert,{showIcon:!1,message:m(l),banner:!0});case v.RUNNING: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 v.SUCCEEDED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case v.FAILED: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}}),o().createElement(S,{record:t}))}},{title:f("Actions"),key:"actions",width:180,render:function(e,t){var i,s,u=[],d=null!=(s=y.taskOrigins.get(t.origin))?s:{},p=d.Result,m=d.ResultButton,b=p||function(){return null};return t.cancelable&&(t.status===v.RUNNING||t.status===v.PENDING)&&u.push(o().createElement(a.Popconfirm,{key:"cancel",title:f("Confirm cancel"),description:f("Confirm cancel description"),onConfirm:E(function(){return _(this,function(e){switch(e.label){case 0:return[4,c.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),l(),[2]}})}),okText:f("Confirm"),cancelText:f("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},f("Stop")))),t.status===v.SUCCEEDED&&t.result&&(m?u.push(o().createElement(m,{key:"result-button",task:t})):u.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){h(t),a.Modal.info({title:f("Task result"),content:p?o().createElement(b,{payload:t.result,task:t}):o().createElement("div",null,f("No renderer available for this task type, payload: ".concat(t.result)))})}},f("View result")))),t.status===v.FAILED&&(null==(i=t.result)?void 0:i.length)>0&&u.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){var e;r(!1),a.Modal.info({title:f("Error Details"),content:null==(e=t.result)?void 0:e.map(function(e,t){return o().createElement("div",{key:t,style:{marginBottom:16}},o().createElement("div",{style:{color:"#ff4d4f",marginBottom:8}},e.message),e.code&&o().createElement("div",{style:{color:"#999",fontSize:12}},f("Error code"),": ",e.code))}),closable:!0,width:400})}},f("Error details"))),o().createElement(a.Space,{size:"middle"},u)}}];i.filter(function(e){return[v.SUCCEEDED,v.FAILED].includes(e.status)}).length;var k=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:i.length>0?800:200}},i.length>0?o().createElement(a.Table,{loading:s,columns:g,dataSource:i,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:f("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:k,trigger:"click",placement:"bottom",open:t,onOpenChange:r},o().createElement(a.Button,{className:["sync-task-button",d.button].join(" "),onClick:function(){r(!t),t||l()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:i.some(function(e){return v.RUNNING===e.status})})})))},O=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 l=k((0,r.useState)((null==a?void 0:a.data)||[]),2),s=l[0],u=l[1],c=k((0,r.useState)(!1),2),f=c[0],d=c[1];(0,r.useEffect)(function(){u((null==a?void 0:a.data)||[])},[a]);var p=(0,r.useCallback)(E(function(){return _(this,function(e){return d(!0),i(),console.log("handleTaskCreated"),[2]})}),[]),y=(0,r.useCallback)(function(e){var t=e.detail;u(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 h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||w(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(),console.log("handleTaskStatus")},[]),v=(0,r.useCallback)(function(){i(),console.log("handleTaskDeleted")},[]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",p),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",v),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",p),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",v)}},[e,v,p,y,m]),(null==s?void 0:s.length)>0&&o().createElement(x,{tasks:s,refresh:i,popoverVisible:f,setPopoverVisible:d})},D=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:O}},e.children))};function P(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function N(e,t,n){return(N=Y()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&T(o,n.prototype),o}).apply(null,arguments)}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e,t){return(T=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 N(e,arguments,I(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),T(n,e)})(e)}function Y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Y=function(){return!!e})()}var j=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,l;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=I(n),a=e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=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,Y()?Reflect.construct(n,o||[],I(this).constructor):n.apply(this,o)),i="taskOrigins",l=new t.Registry,i in a?Object.defineProperty(a,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[i]=l,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&T(r,e),n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var s=[a,l];if(n)throw TypeError("Generator is already executing.");for(;i;)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 i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}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 t.app.use(D),[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,l,"next",e)}function l(e){P(a,r,o,i,l,"throw",e)}i(void 0)})})()}}],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)),L=j}(),s});
|
package/dist/client/locale.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
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
|
+
export declare function useT(): (str: string, data?: Record<string, any>) => string;
|
|
2
10
|
export declare function tStr(key: string): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
declare const _default: {
|
|
10
|
+
name: string;
|
|
11
|
+
autoGenId: boolean;
|
|
12
|
+
createdAt: boolean;
|
|
13
|
+
updatedAt: boolean;
|
|
14
|
+
createdBy: boolean;
|
|
15
|
+
fields: ({
|
|
16
|
+
type: string;
|
|
17
|
+
name: string;
|
|
18
|
+
primaryKey: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
type: string;
|
|
21
|
+
name: string;
|
|
22
|
+
primaryKey?: undefined;
|
|
23
|
+
})[];
|
|
24
|
+
};
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
+
var asyncTasks_exports = {};
|
|
28
|
+
__export(asyncTasks_exports, {
|
|
29
|
+
default: () => asyncTasks_default
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(asyncTasks_exports);
|
|
32
|
+
var asyncTasks_default = {
|
|
33
|
+
name: "asyncTasks",
|
|
34
|
+
autoGenId: false,
|
|
35
|
+
createdAt: true,
|
|
36
|
+
updatedAt: true,
|
|
37
|
+
createdBy: true,
|
|
38
|
+
fields: [
|
|
39
|
+
{
|
|
40
|
+
type: "uuid",
|
|
41
|
+
name: "id",
|
|
42
|
+
primaryKey: true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: "string",
|
|
46
|
+
name: "origin"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: "string",
|
|
50
|
+
name: "type"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: "string",
|
|
54
|
+
name: "title"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: "jsonb",
|
|
58
|
+
name: "params"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: "integer",
|
|
62
|
+
name: "status"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: "jsonb",
|
|
66
|
+
name: "result"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
type: "integer",
|
|
70
|
+
name: "createdById"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: "boolean",
|
|
74
|
+
name: "cancelable"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: "double",
|
|
78
|
+
name: "progressTotal"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: "double",
|
|
82
|
+
name: "progressCurrent"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: "date",
|
|
86
|
+
name: "createdAt"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: "date",
|
|
90
|
+
name: "startedAt"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: "date",
|
|
94
|
+
name: "doneAt"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
export declare const NAMESPACE = "@nocobase/plugin-async-task-manager";
|
|
10
|
+
export declare const TASK_STATUS: {
|
|
11
|
+
readonly PENDING: any;
|
|
12
|
+
readonly RUNNING: 0;
|
|
13
|
+
readonly SUCCEEDED: 1;
|
|
14
|
+
readonly FAILED: -1;
|
|
15
|
+
readonly CANCELED: -2;
|
|
16
|
+
};
|
|
17
|
+
export declare const TASK_STATUS_OPTIONS: {
|
|
18
|
+
readonly [x: number]: {
|
|
19
|
+
readonly value: any;
|
|
20
|
+
readonly label: "{{t('Waiting', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
21
|
+
readonly color: "default";
|
|
22
|
+
readonly icon: "ClockCircleOutlined";
|
|
23
|
+
} | {
|
|
24
|
+
readonly value: 0;
|
|
25
|
+
readonly label: "{{t('Processing', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
26
|
+
readonly color: "processing";
|
|
27
|
+
readonly icon: "LoadingOutlined";
|
|
28
|
+
} | {
|
|
29
|
+
readonly value: 1;
|
|
30
|
+
readonly label: "{{t('Completed', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
31
|
+
readonly color: "success";
|
|
32
|
+
readonly icon: "CheckCircleOutlined";
|
|
33
|
+
} | {
|
|
34
|
+
readonly value: -1;
|
|
35
|
+
readonly label: "{{t('Failed', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
36
|
+
readonly color: "error";
|
|
37
|
+
readonly icon: "CloseCircleOutlined";
|
|
38
|
+
} | {
|
|
39
|
+
readonly value: -2;
|
|
40
|
+
readonly label: "{{t('Canceled', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
41
|
+
readonly color: "warning";
|
|
42
|
+
readonly icon: "StopOutlined";
|
|
43
|
+
};
|
|
44
|
+
readonly 0: {
|
|
45
|
+
readonly value: 0;
|
|
46
|
+
readonly label: "{{t('Processing', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
47
|
+
readonly color: "processing";
|
|
48
|
+
readonly icon: "LoadingOutlined";
|
|
49
|
+
};
|
|
50
|
+
readonly 1: {
|
|
51
|
+
readonly value: 1;
|
|
52
|
+
readonly label: "{{t('Completed', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
53
|
+
readonly color: "success";
|
|
54
|
+
readonly icon: "CheckCircleOutlined";
|
|
55
|
+
};
|
|
56
|
+
readonly [-1]: {
|
|
57
|
+
readonly value: -1;
|
|
58
|
+
readonly label: "{{t('Failed', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
59
|
+
readonly color: "error";
|
|
60
|
+
readonly icon: "CloseCircleOutlined";
|
|
61
|
+
};
|
|
62
|
+
readonly [-2]: {
|
|
63
|
+
readonly value: -2;
|
|
64
|
+
readonly label: "{{t('Canceled', { ns: '@nocobase/plugin-async-task-manager' })}}";
|
|
65
|
+
readonly color: "warning";
|
|
66
|
+
readonly icon: "StopOutlined";
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export declare const TASK_RESULT_TYPE: {
|
|
70
|
+
readonly NONE: "none";
|
|
71
|
+
readonly FILE: "file";
|
|
72
|
+
readonly DATA: "data";
|
|
73
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
+
var constants_exports = {};
|
|
28
|
+
__export(constants_exports, {
|
|
29
|
+
NAMESPACE: () => NAMESPACE,
|
|
30
|
+
TASK_RESULT_TYPE: () => TASK_RESULT_TYPE,
|
|
31
|
+
TASK_STATUS: () => TASK_STATUS,
|
|
32
|
+
TASK_STATUS_OPTIONS: () => TASK_STATUS_OPTIONS
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(constants_exports);
|
|
35
|
+
const NAMESPACE = "@nocobase/plugin-async-task-manager";
|
|
36
|
+
const TASK_STATUS = {
|
|
37
|
+
PENDING: null,
|
|
38
|
+
RUNNING: 0,
|
|
39
|
+
SUCCEEDED: 1,
|
|
40
|
+
FAILED: -1,
|
|
41
|
+
CANCELED: -2
|
|
42
|
+
};
|
|
43
|
+
const TASK_STATUS_OPTIONS = {
|
|
44
|
+
[TASK_STATUS.PENDING]: {
|
|
45
|
+
value: TASK_STATUS.PENDING,
|
|
46
|
+
label: `{{t('Waiting', { ns: '${NAMESPACE}' })}}`,
|
|
47
|
+
color: "default",
|
|
48
|
+
icon: "ClockCircleOutlined"
|
|
49
|
+
},
|
|
50
|
+
[TASK_STATUS.RUNNING]: {
|
|
51
|
+
value: TASK_STATUS.RUNNING,
|
|
52
|
+
label: `{{t('Processing', { ns: '${NAMESPACE}' })}}`,
|
|
53
|
+
color: "processing",
|
|
54
|
+
icon: "LoadingOutlined"
|
|
55
|
+
},
|
|
56
|
+
[TASK_STATUS.SUCCEEDED]: {
|
|
57
|
+
value: TASK_STATUS.SUCCEEDED,
|
|
58
|
+
label: `{{t('Completed', { ns: '${NAMESPACE}' })}}`,
|
|
59
|
+
color: "success",
|
|
60
|
+
icon: "CheckCircleOutlined"
|
|
61
|
+
},
|
|
62
|
+
[TASK_STATUS.FAILED]: {
|
|
63
|
+
value: TASK_STATUS.FAILED,
|
|
64
|
+
label: `{{t('Failed', { ns: '${NAMESPACE}' })}}`,
|
|
65
|
+
color: "error",
|
|
66
|
+
icon: "CloseCircleOutlined"
|
|
67
|
+
},
|
|
68
|
+
[TASK_STATUS.CANCELED]: {
|
|
69
|
+
value: TASK_STATUS.CANCELED,
|
|
70
|
+
label: `{{t('Canceled', { ns: '${NAMESPACE}' })}}`,
|
|
71
|
+
color: "warning",
|
|
72
|
+
icon: "StopOutlined"
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const TASK_RESULT_TYPE = {
|
|
76
|
+
NONE: "none",
|
|
77
|
+
FILE: "file",
|
|
78
|
+
DATA: "data"
|
|
79
|
+
};
|
|
80
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
81
|
+
0 && (module.exports = {
|
|
82
|
+
NAMESPACE,
|
|
83
|
+
TASK_RESULT_TYPE,
|
|
84
|
+
TASK_STATUS,
|
|
85
|
+
TASK_STATUS_OPTIONS
|
|
86
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
import { TASK_STATUS } from './constants';
|
|
10
|
+
export type TaskId = string;
|
|
11
|
+
export type TaskStatus = (typeof TASK_STATUS)[keyof typeof TASK_STATUS];
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var types_exports = {};
|
|
24
|
+
module.exports = __toCommonJS(types_exports);
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "1.9.0-beta.
|
|
11
|
+
"@nocobase/client": "1.9.0-beta.7",
|
|
12
12
|
"react": "18.2.0",
|
|
13
|
-
"@nocobase/
|
|
14
|
-
"@nocobase/server": "1.9.0-beta.5",
|
|
13
|
+
"@nocobase/utils": "1.9.0-beta.7",
|
|
15
14
|
"lodash": "4.17.21",
|
|
16
|
-
"@nocobase/
|
|
15
|
+
"@nocobase/server": "1.9.0-beta.7",
|
|
16
|
+
"@nocobase/logger": "1.9.0-beta.7",
|
|
17
|
+
"@nocobase/database": "1.9.0-beta.7",
|
|
17
18
|
"antd": "5.24.2",
|
|
18
|
-
"dayjs": "1.11.13"
|
|
19
|
+
"dayjs": "1.11.13",
|
|
20
|
+
"@nocobase/actions": "1.9.0-beta.7"
|
|
19
21
|
};
|
|
@@ -6,31 +6,37 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
/// <reference types="node" />
|
|
10
|
-
import { EventEmitter } from 'events';
|
|
11
|
-
import { AsyncTasksManager, CreateTaskOptions, TaskId, TaskStatus } from './interfaces/async-task-manager';
|
|
12
|
-
import { Logger } from '@nocobase/logger';
|
|
13
|
-
import { ITask, TaskConstructor } from './interfaces/task';
|
|
14
9
|
import { Application } from '@nocobase/server';
|
|
15
|
-
|
|
10
|
+
import { Logger } from '@nocobase/logger';
|
|
11
|
+
import { AsyncTasksManager, CreateTaskOptions } from './interfaces/async-task-manager';
|
|
12
|
+
import { ITask, TaskConstructor, TaskModel } from './interfaces/task';
|
|
13
|
+
import { TaskId, TaskStatus } from '../common/types';
|
|
14
|
+
export declare class BaseTaskManager implements AsyncTasksManager {
|
|
16
15
|
private taskTypes;
|
|
17
16
|
private tasks;
|
|
18
17
|
private readonly cleanupDelay;
|
|
18
|
+
private cleanupTimer;
|
|
19
19
|
private logger;
|
|
20
20
|
private app;
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
private progressThrottles;
|
|
22
|
+
concurrency: number;
|
|
23
|
+
private idle;
|
|
24
|
+
private onQueueTask;
|
|
25
|
+
private onTaskProgress;
|
|
26
|
+
private onTaskAfterCreate;
|
|
27
|
+
private onTaskStatusChanged;
|
|
28
|
+
private onTaskAfterDelete;
|
|
29
|
+
private onTaskCancelSignal;
|
|
30
|
+
private cleanup;
|
|
31
|
+
private getThrottledProgressEmitter;
|
|
23
32
|
setLogger(logger: Logger): void;
|
|
24
33
|
setApp(app: Application): void;
|
|
25
|
-
private scheduleCleanup;
|
|
26
|
-
constructor();
|
|
27
34
|
private enqueueTask;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
cancelTask(taskId: TaskId): Promise<boolean>;
|
|
31
|
-
createTask<T>(options: CreateTaskOptions): ITask;
|
|
35
|
+
cancelTask(taskId: TaskId, externally?: boolean): Promise<void>;
|
|
36
|
+
createTask(data: TaskModel, { useQueue, ...options }?: CreateTaskOptions): Promise<ITask>;
|
|
32
37
|
getTask(taskId: TaskId): ITask | undefined;
|
|
33
38
|
getTaskStatus(taskId: TaskId): Promise<TaskStatus>;
|
|
34
39
|
registerTaskType(taskType: TaskConstructor): void;
|
|
35
|
-
|
|
40
|
+
private prepareTask;
|
|
41
|
+
runTask(task: ITask): Promise<void>;
|
|
36
42
|
}
|