@tachybase/module-workflow 1.6.20 → 1.6.22
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/features/exit-branch/index.d.ts +4 -0
- package/dist/client/index.js +40 -40
- package/dist/externalVersion.js +8 -8
- package/dist/locale/en-US.json +2 -0
- package/dist/locale/zh-CN.json +2 -0
- package/dist/node_modules/@babel/core/lib/index.js +28 -28
- package/dist/node_modules/@babel/core/package.json +1 -1
- package/dist/node_modules/@babel/preset-env/lib/index.js +40 -40
- package/dist/node_modules/@babel/preset-env/package.json +1 -1
- package/dist/node_modules/@babel/preset-react/lib/index.js +23 -23
- package/dist/node_modules/@babel/preset-react/package.json +1 -1
- package/dist/node_modules/@babel/preset-typescript/lib/index.js +28 -28
- package/dist/node_modules/@babel/preset-typescript/package.json +1 -1
- package/dist/node_modules/cron-parser/package.json +1 -1
- package/dist/node_modules/form-data/package.json +1 -1
- package/dist/node_modules/jsonata/package.json +1 -1
- package/dist/node_modules/lru-cache/package.json +1 -1
- package/dist/node_modules/mime-types/package.json +1 -1
- package/dist/node_modules/qrcode/package.json +1 -1
- package/dist/server/Plugin.js +15 -3
- package/dist/server/collections/executions.d.ts +1 -1
- package/dist/server/collections/flow_nodes.d.ts +1 -1
- package/dist/server/collections/jobs.d.ts +1 -1
- package/dist/server/collections/workflowCategories.d.ts +1 -1
- package/dist/server/collections/workflows.d.ts +1 -1
- package/dist/server/features/exit-branch/ExitBranchInstruction.d.ts +4 -0
- package/dist/server/features/exit-branch/ExitBranchInstruction.js +51 -0
- package/dist/server/features/exit-branch/Plugin.d.ts +4 -0
- package/dist/server/features/exit-branch/Plugin.js +45 -0
- package/dist/server/features/exit-branch/index.d.ts +1 -0
- package/dist/server/features/exit-branch/index.js +21 -0
- package/dist/server/features/interception/RequestInterceptionTrigger.js +5 -1
- package/dist/server/features/omni-trigger/CustomActionTrigger.js +5 -1
- package/dist/server/features/trigger-instruction/TriggerInstruction.d.ts +1 -10
- package/dist/server/features/trigger-instruction/TriggerInstruction.js +7 -3
- package/dist/server/instructions/QueryInstruction.js +1 -1
- package/dist/server/instructions/SelectInstruction.js +1 -1
- package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.js +2 -4
- package/package.json +15 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@babel/preset-typescript","version":"7.27.1","description":"Babel preset for TypeScript.","repository":{"type":"git","url":"https://github.com/babel/babel.git","directory":"packages/babel-preset-typescript"},"license":"MIT","publishConfig":{"access":"public"},"main":"./lib/index.js","keywords":["babel-preset","typescript"],"dependencies":{"@babel/helper-plugin-utils":"^7.27.1","@babel/helper-validator-option":"^7.27.1","@babel/plugin-syntax-jsx":"^7.27.1","@babel/plugin-transform-modules-commonjs":"^7.27.1","@babel/plugin-transform-typescript":"^7.27.1"},"peerDependencies":{"@babel/core":"^7.0.0-0"},"devDependencies":{"@babel/core":"^7.27.1","@babel/helper-plugin-test-runner":"^7.27.1"},"homepage":"https://babel.dev/docs/en/next/babel-preset-typescript","bugs":"https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22area%3A%20typescript%22+is%3Aopen","engines":{"node":">=6.9.0"},"author":"The Babel Team (https://babel.dev/team)","type":"commonjs","_lastModified":"2026-
|
|
1
|
+
{"name":"@babel/preset-typescript","version":"7.27.1","description":"Babel preset for TypeScript.","repository":{"type":"git","url":"https://github.com/babel/babel.git","directory":"packages/babel-preset-typescript"},"license":"MIT","publishConfig":{"access":"public"},"main":"./lib/index.js","keywords":["babel-preset","typescript"],"dependencies":{"@babel/helper-plugin-utils":"^7.27.1","@babel/helper-validator-option":"^7.27.1","@babel/plugin-syntax-jsx":"^7.27.1","@babel/plugin-transform-modules-commonjs":"^7.27.1","@babel/plugin-transform-typescript":"^7.27.1"},"peerDependencies":{"@babel/core":"^7.0.0-0"},"devDependencies":{"@babel/core":"^7.27.1","@babel/helper-plugin-test-runner":"^7.27.1"},"homepage":"https://babel.dev/docs/en/next/babel-preset-typescript","bugs":"https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22area%3A%20typescript%22+is%3Aopen","engines":{"node":">=6.9.0"},"author":"The Babel Team (https://babel.dev/team)","type":"commonjs","_lastModified":"2026-06-16T10:37:08.363Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"cron-parser","version":"4.9.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"types/index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^3.2.1"},"devDependencies":{"eslint":"^8.27.0","sinon":"^15.0.1","tap":"^16.3.3","tsd":"^0.26.0"},"engines":{"node":">=12.0.0"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"files":["lib","types","LICENSE","README.md"],"_lastModified":"2026-
|
|
1
|
+
{"name":"cron-parser","version":"4.9.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"types/index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^3.2.1"},"devDependencies":{"eslint":"^8.27.0","sinon":"^15.0.1","tap":"^16.3.3","tsd":"^0.26.0"},"engines":{"node":">=12.0.0"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"files":["lib","types","LICENSE","README.md"],"_lastModified":"2026-06-16T10:37:08.673Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)","name":"form-data","description":"A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.","version":"4.0.4","repository":{"type":"git","url":"git://github.com/form-data/form-data.git"},"main":"./lib/form_data","browser":"./lib/browser","typings":"./index.d.ts","scripts":{"pretest":"npm run lint","pretests-only":"rimraf coverage test/tmp","tests-only":"istanbul cover test/run.js","posttests-only":"istanbul report lcov text","test":"npm run tests-only","posttest":"npx npm@'>=10.2' audit --production","lint":"eslint --ext=js,mjs .","report":"istanbul report lcov text","ci-lint":"is-node-modern 8 && npm run lint || is-node-not-modern 8","ci-test":"npm run tests-only && npm run browser && npm run report","predebug":"rimraf coverage test/tmp","debug":"verbose=1 ./test/run.js","browser":"browserify -t browserify-istanbul test/run-browser.js | obake --coverage","check":"istanbul check-coverage coverage/coverage*.json","files":"pkgfiles --sort=name","get-version":"node -e \"console.log(require('./package.json').version)\"","update-readme":"sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md","postupdate-readme":"mv README.md.bak READ.ME.md.bak","restore-readme":"mv READ.ME.md.bak README.md","prepublish":"not-in-publish || npm run prepublishOnly","prepack":"npm run update-readme","postpack":"npm run restore-readme","version":"auto-changelog && git add CHANGELOG.md","postversion":"auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""},"engines":{"node":">= 6"},"dependencies":{"asynckit":"^0.4.0","combined-stream":"^1.0.8","es-set-tostringtag":"^2.1.0","hasown":"^2.0.2","mime-types":"^2.1.12"},"devDependencies":{"@ljharb/eslint-config":"^21.2.0","auto-changelog":"^2.5.0","browserify":"^13.3.0","browserify-istanbul":"^2.0.0","coveralls":"^3.1.1","cross-spawn":"^6.0.6","eslint":"=8.8.0","fake":"^0.2.2","far":"^0.0.7","formidable":"^1.2.6","in-publish":"^2.0.1","is-node-modern":"^1.0.0","istanbul":"^0.4.5","obake":"^0.1.2","pkgfiles":"^2.3.2","pre-commit":"^1.2.2","predict-v8-randomness":"^1.0.35","puppeteer":"^1.20.0","request":"~2.87.0","rimraf":"^2.7.1","semver":"^6.3.1","tape":"^5.9.0"},"license":"MIT","auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"_lastModified":"2026-
|
|
1
|
+
{"author":"Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)","name":"form-data","description":"A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.","version":"4.0.4","repository":{"type":"git","url":"git://github.com/form-data/form-data.git"},"main":"./lib/form_data","browser":"./lib/browser","typings":"./index.d.ts","scripts":{"pretest":"npm run lint","pretests-only":"rimraf coverage test/tmp","tests-only":"istanbul cover test/run.js","posttests-only":"istanbul report lcov text","test":"npm run tests-only","posttest":"npx npm@'>=10.2' audit --production","lint":"eslint --ext=js,mjs .","report":"istanbul report lcov text","ci-lint":"is-node-modern 8 && npm run lint || is-node-not-modern 8","ci-test":"npm run tests-only && npm run browser && npm run report","predebug":"rimraf coverage test/tmp","debug":"verbose=1 ./test/run.js","browser":"browserify -t browserify-istanbul test/run-browser.js | obake --coverage","check":"istanbul check-coverage coverage/coverage*.json","files":"pkgfiles --sort=name","get-version":"node -e \"console.log(require('./package.json').version)\"","update-readme":"sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md","postupdate-readme":"mv README.md.bak READ.ME.md.bak","restore-readme":"mv READ.ME.md.bak README.md","prepublish":"not-in-publish || npm run prepublishOnly","prepack":"npm run update-readme","postpack":"npm run restore-readme","version":"auto-changelog && git add CHANGELOG.md","postversion":"auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""},"engines":{"node":">= 6"},"dependencies":{"asynckit":"^0.4.0","combined-stream":"^1.0.8","es-set-tostringtag":"^2.1.0","hasown":"^2.0.2","mime-types":"^2.1.12"},"devDependencies":{"@ljharb/eslint-config":"^21.2.0","auto-changelog":"^2.5.0","browserify":"^13.3.0","browserify-istanbul":"^2.0.0","coveralls":"^3.1.1","cross-spawn":"^6.0.6","eslint":"=8.8.0","fake":"^0.2.2","far":"^0.0.7","formidable":"^1.2.6","in-publish":"^2.0.1","is-node-modern":"^1.0.0","istanbul":"^0.4.5","obake":"^0.1.2","pkgfiles":"^2.3.2","pre-commit":"^1.2.2","predict-v8-randomness":"^1.0.35","puppeteer":"^1.20.0","request":"~2.87.0","rimraf":"^2.7.1","semver":"^6.3.1","tape":"^5.9.0"},"license":"MIT","auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"_lastModified":"2026-06-16T10:36:46.483Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"jsonata","version":"2.0.6","description":"JSON query and transformation language","module":"jsonata.js","main":"jsonata.js","typings":"jsonata.d.ts","homepage":"http://jsonata.org/","repository":{"type":"git","url":"https://github.com/jsonata-js/jsonata.git"},"scripts":{"pretest":"npm run lint","mocha":"nyc ./node_modules/mocha/bin/_mocha -- \"test/**/*.js\"","test":"npm run mocha","posttest":"npm run check-coverage && npm run browserify && npm run minify && npm run build-es5","build-es5":"npm run mkdir-dist && npm run regenerator && npm run browserify-es5 && npm run minify-es5","check-coverage":"nyc check-coverage --statements 100 --branches 100 --functions 100 --lines 100","browserify":"browserify src/jsonata.js --outfile jsonata.js --standalone jsonata","mkdir-dist":"mkdirp ./dist","regenerator":"babel src --out-dir dist --presets=@babel/env","browserify-es5":"regenerator --include-runtime polyfill.js > jsonata-es5.js; browserify dist/jsonata.js --standalone jsonata >> jsonata-es5.js","prepublishOnly":"npm run browserify && npm run minify && npm run build-es5","lint":"eslint src","doc":"jsdoc --configure jsdoc.json .","cover":"nyc _mocha","minify":"uglifyjs jsonata.js -o jsonata.min.js --compress --mangle","minify-es5":"uglifyjs jsonata-es5.js -o jsonata-es5.min.js --compress --mangle"},"license":"MIT","keywords":["JSON","query","transformation","transform","mapping","path"],"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","browserify":"^16.5.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","eslint":"8.0.0","eslint-plugin-ideal":"^0.1.3","eslint-plugin-promise":"^6.0.0","jsdoc":"^3.6.3","mkdirp":"^1.0.3","mocha":"^7.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","regenerator":"^0.14.4","request":"^2.88.2","uglify-es":"^3.3.10"},"engines":{"node":">= 8"},"_lastModified":"2026-
|
|
1
|
+
{"name":"jsonata","version":"2.0.6","description":"JSON query and transformation language","module":"jsonata.js","main":"jsonata.js","typings":"jsonata.d.ts","homepage":"http://jsonata.org/","repository":{"type":"git","url":"https://github.com/jsonata-js/jsonata.git"},"scripts":{"pretest":"npm run lint","mocha":"nyc ./node_modules/mocha/bin/_mocha -- \"test/**/*.js\"","test":"npm run mocha","posttest":"npm run check-coverage && npm run browserify && npm run minify && npm run build-es5","build-es5":"npm run mkdir-dist && npm run regenerator && npm run browserify-es5 && npm run minify-es5","check-coverage":"nyc check-coverage --statements 100 --branches 100 --functions 100 --lines 100","browserify":"browserify src/jsonata.js --outfile jsonata.js --standalone jsonata","mkdir-dist":"mkdirp ./dist","regenerator":"babel src --out-dir dist --presets=@babel/env","browserify-es5":"regenerator --include-runtime polyfill.js > jsonata-es5.js; browserify dist/jsonata.js --standalone jsonata >> jsonata-es5.js","prepublishOnly":"npm run browserify && npm run minify && npm run build-es5","lint":"eslint src","doc":"jsdoc --configure jsdoc.json .","cover":"nyc _mocha","minify":"uglifyjs jsonata.js -o jsonata.min.js --compress --mangle","minify-es5":"uglifyjs jsonata-es5.js -o jsonata-es5.min.js --compress --mangle"},"license":"MIT","keywords":["JSON","query","transformation","transform","mapping","path"],"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","browserify":"^16.5.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","eslint":"8.0.0","eslint-plugin-ideal":"^0.1.3","eslint-plugin-promise":"^6.0.0","jsdoc":"^3.6.3","mkdirp":"^1.0.3","mocha":"^7.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","regenerator":"^0.14.4","request":"^2.88.2","uglify-es":"^3.3.10"},"engines":{"node":">= 8"},"_lastModified":"2026-06-16T10:36:47.508Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"commonjs","_lastModified":"2026-
|
|
1
|
+
{"type":"commonjs","_lastModified":"2026-06-16T10:36:46.080Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"mime-types","description":"The ultimate javascript content-type utility.","version":"3.0.1","contributors":["Douglas Christopher Wilson <doug@somethingdoug.com>","Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)","Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"],"license":"MIT","keywords":["mime","types"],"repository":"jshttp/mime-types","dependencies":{"mime-db":"^1.54.0"},"devDependencies":{"eslint":"8.33.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.27.5","eslint-plugin-markdown":"3.0.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"6.1.1","eslint-plugin-standard":"4.1.0","mocha":"10.2.0","nyc":"15.1.0"},"files":["HISTORY.md","LICENSE","index.js","mimeScore.js"],"engines":{"node":">= 0.6"},"scripts":{"lint":"eslint .","test":"mocha --reporter spec test/test.js","test-ci":"nyc --reporter=lcov --reporter=text npm test","test-cov":"nyc --reporter=html --reporter=text npm test"},"_lastModified":"2026-
|
|
1
|
+
{"name":"mime-types","description":"The ultimate javascript content-type utility.","version":"3.0.1","contributors":["Douglas Christopher Wilson <doug@somethingdoug.com>","Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)","Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"],"license":"MIT","keywords":["mime","types"],"repository":"jshttp/mime-types","dependencies":{"mime-db":"^1.54.0"},"devDependencies":{"eslint":"8.33.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.27.5","eslint-plugin-markdown":"3.0.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"6.1.1","eslint-plugin-standard":"4.1.0","mocha":"10.2.0","nyc":"15.1.0"},"files":["HISTORY.md","LICENSE","index.js","mimeScore.js"],"engines":{"node":">= 0.6"},"scripts":{"lint":"eslint .","test":"mocha --reporter spec test/test.js","test-ci":"nyc --reporter=lcov --reporter=text npm test","test-cov":"nyc --reporter=html --reporter=text npm test"},"_lastModified":"2026-06-16T10:36:46.654Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"qrcode","description":"QRCode / 2d Barcode api with both server side and client side support using canvas","version":"1.5.4","author":"Ryan Day <soldair@gmail.com>","contributors":["Vincenzo Greco <greco.vincenzo@gmail.com>","Linus Unnebäck <linus@folkdatorn.se>"],"keywords":["qr","code","canvas","qrcode"],"main":"./lib/index.js","browser":{"./lib/index.js":"./lib/browser.js","fs":false},"files":["bin","build","lib","helper"],"homepage":"http://github.com/soldair/node-qrcode","license":"MIT","scripts":{"lint":"standard","pretest":"npm run lint","test":"node --throw-deprecation test.js","build":"rollup -c","prepublish":"npm run build","browser":"node examples/clientsideserver.js"},"bin":{"qrcode":"./bin/qrcode"},"dependencies":{"dijkstrajs":"^1.0.1","pngjs":"^5.0.0","yargs":"^15.3.1"},"devDependencies":{"@babel/core":"^7.9.0","@babel/preset-env":"^7.9.5","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","browserify":"^16.5.1","canvas":"^2.8.0","canvasutil":"0.0.4","colors":"^1.4.0","express":"^4.17.1","htmlparser2":"^4.1.0","rollup":"^2.6.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.3.0","sinon":"^9.0.2","standard":"^16.0.4","tap":"^16.2.0"},"repository":{"type":"git","url":"git://github.com/soldair/node-qrcode.git"},"engines":{"node":">=10.13.0"},"standard":{"ignore":["build/","examples/vendors/","lib/core/regex.js"]},"_lastModified":"2026-
|
|
1
|
+
{"name":"qrcode","description":"QRCode / 2d Barcode api with both server side and client side support using canvas","version":"1.5.4","author":"Ryan Day <soldair@gmail.com>","contributors":["Vincenzo Greco <greco.vincenzo@gmail.com>","Linus Unnebäck <linus@folkdatorn.se>"],"keywords":["qr","code","canvas","qrcode"],"main":"./lib/index.js","browser":{"./lib/index.js":"./lib/browser.js","fs":false},"files":["bin","build","lib","helper"],"homepage":"http://github.com/soldair/node-qrcode","license":"MIT","scripts":{"lint":"standard","pretest":"npm run lint","test":"node --throw-deprecation test.js","build":"rollup -c","prepublish":"npm run build","browser":"node examples/clientsideserver.js"},"bin":{"qrcode":"./bin/qrcode"},"dependencies":{"dijkstrajs":"^1.0.1","pngjs":"^5.0.0","yargs":"^15.3.1"},"devDependencies":{"@babel/core":"^7.9.0","@babel/preset-env":"^7.9.5","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","browserify":"^16.5.1","canvas":"^2.8.0","canvasutil":"0.0.4","colors":"^1.4.0","express":"^4.17.1","htmlparser2":"^4.1.0","rollup":"^2.6.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.3.0","sinon":"^9.0.2","standard":"^16.0.4","tap":"^16.2.0"},"repository":{"type":"git","url":"git://github.com/soldair/node-qrcode.git"},"engines":{"node":">=10.13.0"},"standard":{"ignore":["build/","examples/vendors/","lib/core/regex.js"]},"_lastModified":"2026-06-16T10:36:47.095Z"}
|
package/dist/server/Plugin.js
CHANGED
|
@@ -84,6 +84,7 @@ var import_plugin2 = __toESM(require("./features/_deprecated-json-parse/plugin")
|
|
|
84
84
|
var import_Plugin = require("./features/aggregate/Plugin");
|
|
85
85
|
var import_Plugin2 = require("./features/delay/Plugin");
|
|
86
86
|
var import_Plugin3 = require("./features/dynamic-calculation/Plugin");
|
|
87
|
+
var import_exit_branch = require("./features/exit-branch");
|
|
87
88
|
var import_interception = require("./features/interception");
|
|
88
89
|
var import_Plugin4 = require("./features/loop/Plugin");
|
|
89
90
|
var import_Plugin5 = require("./features/manual/Plugin");
|
|
@@ -210,6 +211,7 @@ class PluginWorkflowServer extends (_a = import_server.Plugin) {
|
|
|
210
211
|
this.addFeature(import_omni_trigger.PluginOmniTrigger);
|
|
211
212
|
this.addFeature(import_plugin5.PluginTriggerInstruction);
|
|
212
213
|
this.addFeature(import_plugin3.default);
|
|
214
|
+
this.addFeature(import_exit_branch.PluginExitBranch);
|
|
213
215
|
}
|
|
214
216
|
getLogger(workflowId) {
|
|
215
217
|
const now = /* @__PURE__ */ new Date();
|
|
@@ -507,12 +509,13 @@ class PluginWorkflowServer extends (_a = import_server.Plugin) {
|
|
|
507
509
|
await this.process(...next);
|
|
508
510
|
}
|
|
509
511
|
this.executing = null;
|
|
510
|
-
if (next) {
|
|
512
|
+
if (next || this.events.length || this.pending.length) {
|
|
511
513
|
this.dispatch();
|
|
512
514
|
}
|
|
513
515
|
})();
|
|
514
516
|
}
|
|
515
517
|
async process(execution, job, options = {}) {
|
|
518
|
+
var _a2, _b;
|
|
516
519
|
if (execution.status === import_constants.EXECUTION_STATUS.QUEUEING) {
|
|
517
520
|
await execution.update({ status: import_constants.EXECUTION_STATUS.STARTED }, { transaction: options.transaction });
|
|
518
521
|
}
|
|
@@ -522,9 +525,12 @@ class PluginWorkflowServer extends (_a = import_server.Plugin) {
|
|
|
522
525
|
try {
|
|
523
526
|
await (job ? processor.resume(job) : processor.start());
|
|
524
527
|
logger.info(`execution (${execution.id}) finished with status: ${execution.status}`, { execution });
|
|
528
|
+
let shouldDeleteExecution = false;
|
|
525
529
|
if (execution.status !== 0) {
|
|
526
530
|
const executionDuration = execution.updatedAt.getTime() - execution.createdAt.getTime();
|
|
527
531
|
await execution.update({ executionCost: executionDuration }, { transaction: options.transaction });
|
|
532
|
+
const deleteOnStatus = (_b = (_a2 = execution.workflow) == null ? void 0 : _a2.options) == null ? void 0 : _b.deleteExecutionOnStatus;
|
|
533
|
+
shouldDeleteExecution = Array.isArray(deleteOnStatus) && deleteOnStatus.includes(execution.status);
|
|
528
534
|
}
|
|
529
535
|
if (execution.status && execution.parentNode) {
|
|
530
536
|
const { database } = execution.constructor;
|
|
@@ -534,13 +540,19 @@ class PluginWorkflowServer extends (_a = import_server.Plugin) {
|
|
|
534
540
|
const job2 = jobs.find((v) => v.status === import_constants.JOB_STATUS.PENDING && v.nodeId === execution.parentNode);
|
|
535
541
|
if (job2) {
|
|
536
542
|
const lastSavedJob = processor.lastSavedJob;
|
|
537
|
-
job2.
|
|
538
|
-
|
|
543
|
+
job2.set({
|
|
544
|
+
status: execution.status,
|
|
545
|
+
result: (lastSavedJob == null ? void 0 : lastSavedJob.result) ?? execution.context
|
|
546
|
+
});
|
|
539
547
|
await this.resume(job2);
|
|
540
548
|
} else {
|
|
541
549
|
logger.error(`execution (${execution.id}) error: parent job not found`);
|
|
542
550
|
}
|
|
543
551
|
}
|
|
552
|
+
if (shouldDeleteExecution) {
|
|
553
|
+
await execution.destroy({ transaction: options.transaction });
|
|
554
|
+
return processor;
|
|
555
|
+
}
|
|
544
556
|
} catch (err) {
|
|
545
557
|
logger.error(`execution (${execution.id}) error: ${err.message}`, err);
|
|
546
558
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CollectionOptions } from '@tego/server';
|
|
1
|
+
import type { CollectionOptions } from '@tego/server';
|
|
2
2
|
export default function (): CollectionOptions;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var ExitBranchInstruction_exports = {};
|
|
29
|
+
__export(ExitBranchInstruction_exports, {
|
|
30
|
+
ExitBranchInstruction: () => ExitBranchInstruction
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(ExitBranchInstruction_exports);
|
|
33
|
+
var import_constants = require("../../constants");
|
|
34
|
+
var import_instructions = __toESM(require("../../instructions"));
|
|
35
|
+
class ExitBranchInstruction extends import_instructions.default {
|
|
36
|
+
async run(node, prevJob, processor) {
|
|
37
|
+
const job = await processor.saveJob({
|
|
38
|
+
result: (prevJob == null ? void 0 : prevJob.result) ?? null,
|
|
39
|
+
status: import_constants.JOB_STATUS.RESOLVED,
|
|
40
|
+
upstreamId: (prevJob == null ? void 0 : prevJob.id) ?? null,
|
|
41
|
+
nodeId: node.id,
|
|
42
|
+
nodeKey: node.key
|
|
43
|
+
});
|
|
44
|
+
await processor.end(node, job);
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
ExitBranchInstruction
|
|
51
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var Plugin_exports = {};
|
|
29
|
+
__export(Plugin_exports, {
|
|
30
|
+
PluginExitBranch: () => PluginExitBranch
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(Plugin_exports);
|
|
33
|
+
var import_server = require("@tego/server");
|
|
34
|
+
var import_Plugin = __toESM(require("../../Plugin"));
|
|
35
|
+
var import_ExitBranchInstruction = require("./ExitBranchInstruction");
|
|
36
|
+
class PluginExitBranch extends import_server.Plugin {
|
|
37
|
+
async load() {
|
|
38
|
+
const workflowPlugin = this.app.pm.get(import_Plugin.default);
|
|
39
|
+
workflowPlugin.registerInstruction("exit-branch", import_ExitBranchInstruction.ExitBranchInstruction);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
PluginExitBranch
|
|
45
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Plugin';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var exit_branch_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(exit_branch_exports);
|
|
17
|
+
__reExport(exit_branch_exports, require("./Plugin"), module.exports);
|
|
18
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
19
|
+
0 && (module.exports = {
|
|
20
|
+
...require("./Plugin")
|
|
21
|
+
});
|
|
@@ -126,8 +126,12 @@ const _RequestInterceptionTrigger = class _RequestInterceptionTrigger extends im
|
|
|
126
126
|
}
|
|
127
127
|
await next();
|
|
128
128
|
};
|
|
129
|
+
const errorHandlerPlugin = workflow.app.pm.get("error-handler") || workflow.app.pm.get(import_module_error_handler.default);
|
|
130
|
+
if (!(errorHandlerPlugin == null ? void 0 : errorHandlerPlugin.errorHandler)) {
|
|
131
|
+
throw new Error("Workflow request interception requires the error-handler plugin");
|
|
132
|
+
}
|
|
129
133
|
workflow.app.use(this.middleware, { tag: "workflowFilter", after: "dataSource" });
|
|
130
|
-
|
|
134
|
+
errorHandlerPlugin.errorHandler.register(
|
|
131
135
|
(err) => err instanceof RequestInterceptionError,
|
|
132
136
|
async (err, ctx) => {
|
|
133
137
|
ctx.body = {
|
|
@@ -168,9 +168,13 @@ const _OmniTrigger = class _OmniTrigger extends import_triggers.default {
|
|
|
168
168
|
}
|
|
169
169
|
return this.trigger(ctx, triggerWorkflows);
|
|
170
170
|
};
|
|
171
|
+
const errorHandlerPlugin = this.workflow.app.pm.get("error-handler") || this.workflow.app.pm.get(import_module_error_handler.default);
|
|
172
|
+
if (!(errorHandlerPlugin == null ? void 0 : errorHandlerPlugin.errorHandler)) {
|
|
173
|
+
throw new Error("Workflow omni trigger requires the error-handler plugin");
|
|
174
|
+
}
|
|
171
175
|
this.workflow.app.resourcer.registerActionHandler("trigger", this.triggerAction);
|
|
172
176
|
this.workflow.app.acl.allow("*", "trigger", "loggedIn");
|
|
173
|
-
|
|
177
|
+
errorHandlerPlugin.errorHandler.register(
|
|
174
178
|
(err) => err instanceof CustomActionInterceptionError,
|
|
175
179
|
async (err, ctx) => {
|
|
176
180
|
ctx.body = {
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import Instruction from '../../instructions';
|
|
2
2
|
import Processor from '../../Processor';
|
|
3
3
|
export declare class TriggerInstruction extends Instruction {
|
|
4
|
-
run(node: any, input: any, processor: Processor): Promise<
|
|
5
|
-
status: -1;
|
|
6
|
-
result: string;
|
|
7
|
-
} | {
|
|
8
|
-
status: 1;
|
|
9
|
-
result: any;
|
|
10
|
-
} | {
|
|
11
|
-
status: 0;
|
|
12
|
-
result?: undefined;
|
|
13
|
-
}>;
|
|
4
|
+
run(node: any, input: any, processor: Processor): Promise<any>;
|
|
14
5
|
/**
|
|
15
6
|
* 将数据按照 model 配置进行字段映射
|
|
16
7
|
*/
|
|
@@ -114,14 +114,18 @@ class TriggerInstruction extends import_instructions.default {
|
|
|
114
114
|
result
|
|
115
115
|
};
|
|
116
116
|
} else {
|
|
117
|
+
const pendingJob = await processor.saveJob({
|
|
118
|
+
status: import_constants.JOB_STATUS.PENDING,
|
|
119
|
+
nodeId: node.id,
|
|
120
|
+
nodeKey: node.key,
|
|
121
|
+
upstreamId: (input == null ? void 0 : input.id) ?? null
|
|
122
|
+
});
|
|
117
123
|
this.workflow.trigger(wf, triggerData, {
|
|
118
124
|
...processor.options,
|
|
119
125
|
parentNode: node.id,
|
|
120
126
|
parent: processor.execution
|
|
121
127
|
});
|
|
122
|
-
return
|
|
123
|
-
status: import_constants.JOB_STATUS.PENDING
|
|
124
|
-
};
|
|
128
|
+
return pendingJob;
|
|
125
129
|
}
|
|
126
130
|
} catch (error) {
|
|
127
131
|
this.workflow.getLogger(wf.id).error(`Error triggering sub-workflow ${workflowKey}:`, error);
|
|
@@ -42,7 +42,7 @@ class QueryInstruction extends import__.Instruction {
|
|
|
42
42
|
return set;
|
|
43
43
|
}, /* @__PURE__ */ new Set())
|
|
44
44
|
) : options.appends;
|
|
45
|
-
let pageArgs = paginate ? import_server.utils.pageArgsToLimitArgs(page, pageSize) : {};
|
|
45
|
+
let pageArgs = paginate ? import_server.utils.pageArgsToLimitArgs(page || import_server.DEFAULT_PAGE, pageSize || import_server.DEFAULT_PER_PAGE) : {};
|
|
46
46
|
const result = await (multiple ? repository.find : repository.findOne).call(repository, {
|
|
47
47
|
...options,
|
|
48
48
|
...otherOptions,
|
|
@@ -53,7 +53,7 @@ class SelectInstruction extends import__.default {
|
|
|
53
53
|
appends.push(options.summary);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
let pageArgs = paginate ? import_server.utils.pageArgsToLimitArgs(page, pageSize) : {};
|
|
56
|
+
let pageArgs = paginate ? import_server.utils.pageArgsToLimitArgs(page || import_server.DEFAULT_PAGE, pageSize || import_server.DEFAULT_PER_PAGE) : {};
|
|
57
57
|
const data = await (multiple ? repository.find : repository.findOne).call(repository, {
|
|
58
58
|
...options,
|
|
59
59
|
...otherOptions,
|
|
@@ -307,7 +307,6 @@ class ScheduleTrigger {
|
|
|
307
307
|
const { collection } = workflow.config;
|
|
308
308
|
const [dataSourceName, collectionName] = (0, import_server.parseCollectionName)(collection);
|
|
309
309
|
const event = `${collectionName}.afterSaveWithAssociations`;
|
|
310
|
-
const eventKey = `${collection}.afterSaveWithAssociations`;
|
|
311
310
|
const name = getHookId(workflow, event);
|
|
312
311
|
if (this.events.has(name)) {
|
|
313
312
|
return;
|
|
@@ -329,13 +328,12 @@ class ScheduleTrigger {
|
|
|
329
328
|
const { collection } = workflow.config;
|
|
330
329
|
const [dataSourceName, collectionName] = (0, import_server.parseCollectionName)(collection);
|
|
331
330
|
const event = `${collectionName}.afterSaveWithAssociations`;
|
|
332
|
-
const eventKey = `${collection}.afterSaveWithAssociations`;
|
|
333
331
|
const name = getHookId(workflow, event);
|
|
334
|
-
if (this.events.has(
|
|
332
|
+
if (this.events.has(name)) {
|
|
335
333
|
const listener = this.events.get(name);
|
|
336
334
|
const { db } = this.workflow.app.dataSourceManager.dataSources.get(dataSourceName).collectionManager;
|
|
337
335
|
db.off(event, listener);
|
|
338
|
-
this.events.delete(
|
|
336
|
+
this.events.delete(name);
|
|
339
337
|
}
|
|
340
338
|
}
|
|
341
339
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tachybase/module-workflow",
|
|
3
3
|
"displayName": "Workflow",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.22",
|
|
5
5
|
"description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Workflow"
|
|
@@ -25,13 +25,14 @@
|
|
|
25
25
|
"@babel/preset-react": "7.27.1",
|
|
26
26
|
"@babel/preset-typescript": "7.27.1",
|
|
27
27
|
"@dnd-kit/core": "^6.3.1",
|
|
28
|
-
"@tachybase/schema": "1.6.
|
|
29
|
-
"@tachybase/test": "1.6.
|
|
30
|
-
"@tego/client": "1.6.
|
|
31
|
-
"@tego/server": "1.6.
|
|
28
|
+
"@tachybase/schema": "1.6.13",
|
|
29
|
+
"@tachybase/test": "1.6.13",
|
|
30
|
+
"@tego/client": "1.6.13",
|
|
31
|
+
"@tego/server": "1.6.13",
|
|
32
32
|
"@types/babel__core": "7.20.5",
|
|
33
33
|
"@types/ejs": "^3.1.5",
|
|
34
34
|
"@types/file-saver": "^2.0.7",
|
|
35
|
+
"@types/jsonwebtoken": "^8.5.9",
|
|
35
36
|
"@types/lodash": "^4.17.20",
|
|
36
37
|
"@types/qrcode": "^1.5.5",
|
|
37
38
|
"antd": "5.22.5",
|
|
@@ -41,6 +42,9 @@
|
|
|
41
42
|
"file-saver": "^2.0.5",
|
|
42
43
|
"form-data": "^4.0.4",
|
|
43
44
|
"jsonata": "^2.0.6",
|
|
45
|
+
"jsonwebtoken": "^8.5.1",
|
|
46
|
+
"koa": "^2.14.1",
|
|
47
|
+
"koa-bodyparser": "^4.3.0",
|
|
44
48
|
"lodash": "4.17.21",
|
|
45
49
|
"lru-cache": "11.1.0",
|
|
46
50
|
"mime-types": "^3.0.1",
|
|
@@ -50,12 +54,12 @@
|
|
|
50
54
|
"react-js-cron": "^3.2.0",
|
|
51
55
|
"react-router-dom": "6.28.1",
|
|
52
56
|
"sequelize": "6.37.5",
|
|
53
|
-
"@tachybase/
|
|
54
|
-
"@tachybase/module-
|
|
55
|
-
"@tachybase/module-
|
|
56
|
-
"@tachybase/
|
|
57
|
-
"@tachybase/
|
|
58
|
-
"@tachybase/module-
|
|
57
|
+
"@tachybase/module-error-handler": "1.6.22",
|
|
58
|
+
"@tachybase/module-ui-schema": "1.6.22",
|
|
59
|
+
"@tachybase/module-user": "1.6.22",
|
|
60
|
+
"@tachybase/plugin-workflow-test": "1.6.22",
|
|
61
|
+
"@tachybase/client": "1.6.22",
|
|
62
|
+
"@tachybase/module-collection": "1.6.22"
|
|
59
63
|
},
|
|
60
64
|
"description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
|
|
61
65
|
"displayName.zh-CN": "工作流",
|