@nocobase/plugin-workflow 2.0.0-beta.20 → 2.0.0-beta.21
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/0b6813dae26ccf21.js +10 -0
- package/dist/client/59fcf22e646963ed.js +10 -0
- package/dist/client/AddNodeContext.d.ts +1 -0
- package/dist/client/NodeClipboardContext.d.ts +11 -0
- package/dist/client/NodeDragContext.d.ts +11 -0
- package/dist/client/index.js +1 -1
- package/dist/client/nodeVariableUtils.d.ts +14 -0
- package/dist/client/style.d.ts +4 -0
- package/dist/externalVersion.js +12 -12
- package/dist/locale/de-DE.json +9 -1
- package/dist/locale/en-US.json +17 -1
- package/dist/locale/es-ES.json +9 -1
- package/dist/locale/fr-FR.json +9 -1
- package/dist/locale/hu-HU.json +10 -2
- package/dist/locale/id-ID.json +10 -2
- package/dist/locale/it-IT.json +9 -1
- package/dist/locale/ja-JP.json +9 -1
- package/dist/locale/ko-KR.json +9 -1
- package/dist/locale/nl-NL.json +9 -1
- package/dist/locale/pt-BR.json +9 -1
- package/dist/locale/ru-RU.json +9 -1
- package/dist/locale/tr-TR.json +9 -1
- package/dist/locale/uk-UA.json +9 -1
- package/dist/locale/vi-VN.json +10 -2
- package/dist/locale/zh-CN.json +17 -1
- package/dist/locale/zh-TW.json +8 -0
- package/dist/node_modules/cron-parser/package.json +1 -1
- package/dist/node_modules/lru-cache/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/server/Plugin.js +1 -0
- package/dist/server/actions/index.js +1 -0
- package/dist/server/actions/nodes.d.ts +1 -0
- package/dist/server/actions/nodes.js +114 -1
- package/package.json +2 -2
- package/dist/client/cc4188baa297ff50.js +0 -10
- package/dist/client/e37f5077c1cb2207.js +0 -10
|
@@ -0,0 +1,14 @@
|
|
|
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 extractDependencyKeys(config: Record<string, any>): Set<string>;
|
|
10
|
+
export declare function stripVariableReferences(value: any, keysToRemove: Set<string>): {
|
|
11
|
+
value: any;
|
|
12
|
+
changed: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare function collectUpstreams(node: any): Set<number>;
|
package/dist/client/style.d.ts
CHANGED
|
@@ -23,6 +23,10 @@ declare const useStyles: (props?: unknown) => import("antd-style").ReturnStyles<
|
|
|
23
23
|
nodeSubtreeClass: import("antd-style").SerializedStyles;
|
|
24
24
|
nodeJobResultClass: import("antd-style").SerializedStyles;
|
|
25
25
|
addButtonClass: import("antd-style").SerializedStyles;
|
|
26
|
+
dropZoneClass: import("antd-style").SerializedStyles;
|
|
27
|
+
pasteButtonClass: import("antd-style").SerializedStyles;
|
|
28
|
+
dragPreviewClass: import("antd-style").SerializedStyles;
|
|
29
|
+
clipboardPreviewClass: import("antd-style").SerializedStyles;
|
|
26
30
|
conditionClass: import("antd-style").SerializedStyles;
|
|
27
31
|
loopLineClass: import("antd-style").SerializedStyles;
|
|
28
32
|
terminalClass: import("antd-style").SerializedStyles;
|
package/dist/externalVersion.js
CHANGED
|
@@ -11,8 +11,8 @@ module.exports = {
|
|
|
11
11
|
"react": "18.2.0",
|
|
12
12
|
"@formily/core": "2.3.7",
|
|
13
13
|
"@formily/react": "2.3.7",
|
|
14
|
-
"@nocobase/client": "2.0.0-beta.
|
|
15
|
-
"@nocobase/utils": "2.0.0-beta.
|
|
14
|
+
"@nocobase/client": "2.0.0-beta.21",
|
|
15
|
+
"@nocobase/utils": "2.0.0-beta.21",
|
|
16
16
|
"antd": "5.24.2",
|
|
17
17
|
"@ant-design/icons": "5.6.1",
|
|
18
18
|
"react-router-dom": "6.30.1",
|
|
@@ -20,18 +20,18 @@ module.exports = {
|
|
|
20
20
|
"lodash": "4.17.21",
|
|
21
21
|
"@dnd-kit/core": "6.1.0",
|
|
22
22
|
"@formily/shared": "2.3.7",
|
|
23
|
-
"@nocobase/flow-engine": "2.0.0-beta.
|
|
24
|
-
"@nocobase/plugin-mobile": "2.0.0-beta.
|
|
23
|
+
"@nocobase/flow-engine": "2.0.0-beta.21",
|
|
24
|
+
"@nocobase/plugin-mobile": "2.0.0-beta.21",
|
|
25
25
|
"sequelize": "6.35.2",
|
|
26
|
-
"@nocobase/server": "2.0.0-beta.
|
|
27
|
-
"@nocobase/database": "2.0.0-beta.
|
|
28
|
-
"@nocobase/data-source-manager": "2.0.0-beta.
|
|
29
|
-
"@nocobase/logger": "2.0.0-beta.
|
|
30
|
-
"@nocobase/evaluators": "2.0.0-beta.
|
|
26
|
+
"@nocobase/server": "2.0.0-beta.21",
|
|
27
|
+
"@nocobase/database": "2.0.0-beta.21",
|
|
28
|
+
"@nocobase/data-source-manager": "2.0.0-beta.21",
|
|
29
|
+
"@nocobase/logger": "2.0.0-beta.21",
|
|
30
|
+
"@nocobase/evaluators": "2.0.0-beta.21",
|
|
31
31
|
"@formily/antd-v5": "1.2.3",
|
|
32
32
|
"@formily/reactive": "2.3.7",
|
|
33
|
-
"@nocobase/actions": "2.0.0-beta.
|
|
33
|
+
"@nocobase/actions": "2.0.0-beta.21",
|
|
34
34
|
"dayjs": "1.11.13",
|
|
35
|
-
"@nocobase/plugin-workflow-test": "2.0.0-beta.
|
|
36
|
-
"@nocobase/test": "2.0.0-beta.
|
|
35
|
+
"@nocobase/plugin-workflow-test": "2.0.0-beta.21",
|
|
36
|
+
"@nocobase/test": "2.0.0-beta.21"
|
|
37
37
|
};
|
package/dist/locale/de-DE.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow wird vor erfolgreichem Löschen ausgelöst (unterstützt nur Ereignis vor der Aktion im lokalen Modus).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow wird direkt ausgelöst, sobald der Button geklickt wird, ohne Datenspeicherung. Unterstützt nur die Bindung an \"Benutzerdefiniertes Aktionsereignis\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow mit unbekanntem Typ verursacht Fehler. Bitte löschen Sie ihn oder überprüfen Sie das Plugin, das diesen Typ bereitstellt.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Knoten konnte nicht verschoben werden",
|
|
258
|
+
"Confirm move": "Verschiebung bestätigen",
|
|
259
|
+
"Moving this node may remove variable references.": "Das Verschieben dieses Knotens kann Variablenreferenzen entfernen.",
|
|
260
|
+
"Impacted current node variables": "Vom aktuellen Knoten referenzierte Variablen",
|
|
261
|
+
"Impacted dependent node variables": "Knoten, die Variablen des aktuellen Knotens referenzieren",
|
|
262
|
+
"Keep variable references": "Variablenreferenzen beibehalten",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Das Beibehalten von Variablenreferenzen erfordert eine manuelle Anpassung, andernfalls kann der Workflow fehlschlagen.",
|
|
264
|
+
"Failed to update node variables": "Aktualisierung der Knotenvariablen fehlgeschlagen"
|
|
257
265
|
}
|
package/dist/locale/en-US.json
CHANGED
|
@@ -260,5 +260,21 @@
|
|
|
260
260
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
261
261
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
262
262
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
263
|
-
"Yes": "Yes"
|
|
263
|
+
"Yes": "Yes",
|
|
264
|
+
"Failed to move node": "Failed to move node",
|
|
265
|
+
"Confirm move": "Confirm move",
|
|
266
|
+
"Moving this node may remove variable references.": "Moving this node may remove variable references.",
|
|
267
|
+
"Impacted current node variables": "Variables referenced by current node",
|
|
268
|
+
"Impacted dependent node variables": "Nodes referencing current node variables",
|
|
269
|
+
"Keep variable references": "Keep variable references, I will fix manually",
|
|
270
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Keeping variable references requires manual adjustment, otherwise workflow may fail.",
|
|
271
|
+
"Failed to update node variables": "Failed to update node variables",
|
|
272
|
+
"Copy": "Copy",
|
|
273
|
+
"Cancel copy": "Cancel copy",
|
|
274
|
+
"Paste": "Paste",
|
|
275
|
+
"Copied node": "Copied node",
|
|
276
|
+
"Click a paste button to place": "Click a paste button to place",
|
|
277
|
+
"Confirm paste": "Confirm paste",
|
|
278
|
+
"This action will remove invalid variable references, otherwise the workflow cannot run correctly.": "This action will remove invalid variable references, otherwise the workflow cannot run correctly.",
|
|
279
|
+
"Failed to paste node": "Failed to paste node"
|
|
264
280
|
}
|
package/dist/locale/es-ES.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "No se pudo mover el nodo",
|
|
258
|
+
"Confirm move": "Confirmar movimiento",
|
|
259
|
+
"Moving this node may remove variable references.": "Mover este nodo puede eliminar referencias de variables.",
|
|
260
|
+
"Impacted current node variables": "Variables referenciadas por el nodo actual",
|
|
261
|
+
"Impacted dependent node variables": "Nodos que referencian las variables del nodo actual",
|
|
262
|
+
"Keep variable references": "Mantener referencias de variables",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Mantener las referencias de variables requiere un ajuste manual; de lo contrario, el flujo de trabajo puede fallar.",
|
|
264
|
+
"Failed to update node variables": "No se pudieron actualizar las variables del nodo"
|
|
257
265
|
}
|
package/dist/locale/fr-FR.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Échec du déplacement du nœud",
|
|
258
|
+
"Confirm move": "Confirmer le déplacement",
|
|
259
|
+
"Moving this node may remove variable references.": "Déplacer ce nœud peut supprimer des références de variables.",
|
|
260
|
+
"Impacted current node variables": "Variables référencées par le nœud actuel",
|
|
261
|
+
"Impacted dependent node variables": "Nœuds qui référencent les variables du nœud actuel",
|
|
262
|
+
"Keep variable references": "Conserver les références de variables",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Conserver les références de variables nécessite un ajustement manuel, sinon le workflow peut échouer.",
|
|
264
|
+
"Failed to update node variables": "Échec de la mise à jour des variables du nœud"
|
|
257
265
|
}
|
package/dist/locale/hu-HU.json
CHANGED
|
@@ -254,5 +254,13 @@
|
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "A munkafolyamat közvetlenül aktiválódik a gomb megnyomásakor, adatmentés nélkül. Csak az \"Egyéni művelet esemény\"-hez való kötést támogatja.",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Az ismeretlen típusú munkafolyamat hibát okoz. Kérjük, törölje vagy ellenőrizze a bővítményt, amely ezt a típust biztosítja.",
|
|
256
256
|
"Yes": "Yes",
|
|
257
|
-
"concat": "összefűzés"
|
|
258
|
-
|
|
257
|
+
"concat": "összefűzés",
|
|
258
|
+
"Failed to move node": "A csomópont áthelyezése sikertelen",
|
|
259
|
+
"Confirm move": "Áthelyezés megerősítése",
|
|
260
|
+
"Moving this node may remove variable references.": "A csomópont áthelyezése eltávolíthatja a változóhivatkozásokat.",
|
|
261
|
+
"Impacted current node variables": "A jelenlegi csomópont által hivatkozott változók",
|
|
262
|
+
"Impacted dependent node variables": "A jelenlegi csomópont változóira hivatkozó csomópontok",
|
|
263
|
+
"Keep variable references": "Változóhivatkozások megtartása",
|
|
264
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "A változóhivatkozások megtartása kézi beállítást igényel, különben a munkafolyamat sikertelen lehet.",
|
|
265
|
+
"Failed to update node variables": "A csomópont változóinak frissítése sikertelen"
|
|
266
|
+
}
|
package/dist/locale/id-ID.json
CHANGED
|
@@ -254,5 +254,13 @@
|
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Alur kerja akan dipicu langsung setelah tombol diklik, tanpa menyimpan data. Hanya mendukung untuk diikat dengan \"Peristiwa tindakan kustom\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Alur kerja dengan tipe tidak dikenal akan menyebabkan kesalahan. Harap hapus atau periksa plugin yang menyediakan tipe ini.",
|
|
256
256
|
"Yes": "Yes",
|
|
257
|
-
"concat": "gabungkan"
|
|
258
|
-
|
|
257
|
+
"concat": "gabungkan",
|
|
258
|
+
"Failed to move node": "Gagal memindahkan node",
|
|
259
|
+
"Confirm move": "Konfirmasi pemindahan",
|
|
260
|
+
"Moving this node may remove variable references.": "Memindahkan node ini dapat menghapus referensi variabel.",
|
|
261
|
+
"Impacted current node variables": "Variabel yang dirujuk oleh node saat ini",
|
|
262
|
+
"Impacted dependent node variables": "Node yang merujuk variabel node saat ini",
|
|
263
|
+
"Keep variable references": "Pertahankan referensi variabel",
|
|
264
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Mempertahankan referensi variabel memerlukan penyesuaian manual, jika tidak alur kerja dapat gagal.",
|
|
265
|
+
"Failed to update node variables": "Gagal memperbarui variabel node"
|
|
266
|
+
}
|
package/dist/locale/it-IT.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Il workflow verrà attivato prima dell'eliminazione riuscita (supporta solo l'evento pre-azione in modalità locale).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Il workflow verrà attivato direttamente una volta cliccato il pulsante, senza salvataggio dei dati. Supporta solo il collegamento con \"evento azione personalizzata\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Un workflow con tipo sconosciuto causerà un errore. Si prega di eliminarlo o controllare il plugin che fornisce questo tipo.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Impossibile spostare il nodo",
|
|
258
|
+
"Confirm move": "Conferma spostamento",
|
|
259
|
+
"Moving this node may remove variable references.": "Spostare questo nodo può rimuovere i riferimenti alle variabili.",
|
|
260
|
+
"Impacted current node variables": "Variabili referenziate dal nodo corrente",
|
|
261
|
+
"Impacted dependent node variables": "Nodi che referenziano le variabili del nodo corrente",
|
|
262
|
+
"Keep variable references": "Mantieni i riferimenti alle variabili",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Mantenere i riferimenti alle variabili richiede una regolazione manuale, altrimenti il workflow potrebbe fallire.",
|
|
264
|
+
"Failed to update node variables": "Impossibile aggiornare le variabili del nodo"
|
|
257
265
|
}
|
package/dist/locale/ja-JP.json
CHANGED
|
@@ -256,5 +256,13 @@
|
|
|
256
256
|
"Workflow will be triggered before or after submitting succeeded based on workflow type (supports pre/post action event in local mode, and approval event).": "ワークフローは、送信が成功する前または後に、ワークフローの種類に基づいてトリガーされます(ローカルモードでのアクション前後のイベントと承認イベントをサポート)。",
|
|
257
257
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "ボタンをクリックするとデータを保存せずにワークフローが直接トリガーされます。「カスタムアクションイベント」にのみバインドできます。",
|
|
258
258
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "不明なタイプのワークフローはエラーを引き起こします。このタイプを提供するプラグインを削除するか確認してください。",
|
|
259
|
-
"Yes": "Yes"
|
|
259
|
+
"Yes": "Yes",
|
|
260
|
+
"Failed to move node": "ノードの移動に失敗しました",
|
|
261
|
+
"Confirm move": "移動の確認",
|
|
262
|
+
"Moving this node may remove variable references.": "このノードを移動すると変数参照が削除される可能性があります。",
|
|
263
|
+
"Impacted current node variables": "現在のノードが参照する変数",
|
|
264
|
+
"Impacted dependent node variables": "現在のノード変数を参照するノード",
|
|
265
|
+
"Keep variable references": "変数参照を保持する",
|
|
266
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "変数参照を保持する場合は手動調整が必要です。調整しないとワークフローが失敗する可能性があります。",
|
|
267
|
+
"Failed to update node variables": "ノード変数の更新に失敗しました"
|
|
260
268
|
}
|
package/dist/locale/ko-KR.json
CHANGED
|
@@ -274,5 +274,13 @@
|
|
|
274
274
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "버튼 클릭 시 데이터 저장 없이 워크플로우가 바로 트리거됩니다. \"Custom action event\"에만 바인딩할 수 있습니다.",
|
|
275
275
|
"Workflow will be triggered directly once the button is clicked, without data saving.": "버튼 클릭 시 데이터 저장 없이 워크플로우가 바로 트리거됩니다.",
|
|
276
276
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "알 수 없는 유형의 워크플로우는 오류를 유발합니다. 삭제하거나 해당 플러그인을 확인하세요.",
|
|
277
|
-
"Yes": "Yes"
|
|
277
|
+
"Yes": "Yes",
|
|
278
|
+
"Failed to move node": "노드를 이동하지 못했습니다",
|
|
279
|
+
"Confirm move": "이동 확인",
|
|
280
|
+
"Moving this node may remove variable references.": "이 노드를 이동하면 변수 참조가 제거될 수 있습니다.",
|
|
281
|
+
"Impacted current node variables": "현재 노드가 참조하는 변수",
|
|
282
|
+
"Impacted dependent node variables": "현재 노드 변수를 참조하는 노드",
|
|
283
|
+
"Keep variable references": "변수 참조 유지",
|
|
284
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "변수 참조를 유지하려면 수동으로 조정해야 하며, 그렇지 않으면 워크플로가 실패할 수 있습니다.",
|
|
285
|
+
"Failed to update node variables": "노드 변수 업데이트에 실패했습니다"
|
|
278
286
|
}
|
package/dist/locale/nl-NL.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Verplaatsen van knooppunt mislukt",
|
|
258
|
+
"Confirm move": "Verplaatsing bevestigen",
|
|
259
|
+
"Moving this node may remove variable references.": "Het verplaatsen van dit knooppunt kan variabele verwijzingen verwijderen.",
|
|
260
|
+
"Impacted current node variables": "Variabelen waarnaar de huidige node verwijst",
|
|
261
|
+
"Impacted dependent node variables": "Nodes die naar variabelen van de huidige node verwijzen",
|
|
262
|
+
"Keep variable references": "Variabelverwijzingen behouden",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Het behouden van variabelverwijzingen vereist handmatige aanpassing, anders kan de workflow falen.",
|
|
264
|
+
"Failed to update node variables": "Bijwerken van knooppuntvariabelen mislukt"
|
|
257
265
|
}
|
package/dist/locale/pt-BR.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Falha ao mover o nó",
|
|
258
|
+
"Confirm move": "Confirmar movimentação",
|
|
259
|
+
"Moving this node may remove variable references.": "Mover este nó pode remover referências de variáveis.",
|
|
260
|
+
"Impacted current node variables": "Variáveis referenciadas pelo nó atual",
|
|
261
|
+
"Impacted dependent node variables": "Nós que referenciam as variáveis do nó atual",
|
|
262
|
+
"Keep variable references": "Manter referências de variáveis",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Manter referências de variáveis exige ajuste manual, caso contrário o workflow pode falhar.",
|
|
264
|
+
"Failed to update node variables": "Falha ao atualizar as variáveis do nó"
|
|
257
265
|
}
|
package/dist/locale/ru-RU.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Рабочий процесс будет запущен перед успешным удалением (поддерживается только событие \"предварительного действия\" в локальном режиме).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Рабочий процесс будет запущен сразу после нажатия кнопки без сохранения данных. Поддерживается только привязка к событию \"Пользовательское действие\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Рабочий процесс с неизвестным типом вызовет ошибку. Пожалуйста, удалите его или проверьте плагин, который предоставляет этот тип.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Не удалось переместить узел",
|
|
258
|
+
"Confirm move": "Подтвердить перемещение",
|
|
259
|
+
"Moving this node may remove variable references.": "Перемещение этого узла может удалить ссылки на переменные.",
|
|
260
|
+
"Impacted current node variables": "Переменные, на которые ссылается текущий узел",
|
|
261
|
+
"Impacted dependent node variables": "Узлы, которые ссылаются на переменные текущего узла",
|
|
262
|
+
"Keep variable references": "Сохранить ссылки на переменные",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Сохранение ссылок на переменные требует ручной настройки, иначе рабочий процесс может завершиться ошибкой.",
|
|
264
|
+
"Failed to update node variables": "Не удалось обновить переменные узла"
|
|
257
265
|
}
|
package/dist/locale/tr-TR.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Düğüm taşınamadı",
|
|
258
|
+
"Confirm move": "Taşımayı onayla",
|
|
259
|
+
"Moving this node may remove variable references.": "Bu düğümü taşımak değişken başvurularını kaldırabilir.",
|
|
260
|
+
"Impacted current node variables": "Mevcut düğümün başvurduğu değişkenler",
|
|
261
|
+
"Impacted dependent node variables": "Mevcut düğüm değişkenlerine başvuran düğümler",
|
|
262
|
+
"Keep variable references": "Değişken başvurularını koru",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Değişken başvurularını korumak manuel ayar gerektirir; aksi halde iş akışı başarısız olabilir.",
|
|
264
|
+
"Failed to update node variables": "Düğüm değişkenleri güncellenemedi"
|
|
257
265
|
}
|
package/dist/locale/uk-UA.json
CHANGED
|
@@ -253,5 +253,13 @@
|
|
|
253
253
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).",
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
|
-
"Yes": "Yes"
|
|
256
|
+
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "Не вдалося перемістити вузол",
|
|
258
|
+
"Confirm move": "Підтвердити переміщення",
|
|
259
|
+
"Moving this node may remove variable references.": "Переміщення цього вузла може видалити посилання на змінні.",
|
|
260
|
+
"Impacted current node variables": "Змінні, на які посилається поточний вузол",
|
|
261
|
+
"Impacted dependent node variables": "Вузли, які посилаються на змінні поточного вузла",
|
|
262
|
+
"Keep variable references": "Зберегти посилання на змінні",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Збереження посилань на змінні потребує ручного налаштування, інакше робочий процес може завершитися помилкою.",
|
|
264
|
+
"Failed to update node variables": "Не вдалося оновити змінні вузла"
|
|
257
265
|
}
|
package/dist/locale/vi-VN.json
CHANGED
|
@@ -254,5 +254,13 @@
|
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
256
|
"Yes": "Yes",
|
|
257
|
-
"concat": "concat"
|
|
258
|
-
|
|
257
|
+
"concat": "concat",
|
|
258
|
+
"Failed to move node": "Không thể di chuyển nút",
|
|
259
|
+
"Confirm move": "Xác nhận di chuyển",
|
|
260
|
+
"Moving this node may remove variable references.": "Di chuyển nút này có thể loại bỏ các tham chiếu biến.",
|
|
261
|
+
"Impacted current node variables": "Các biến mà nút hiện tại tham chiếu",
|
|
262
|
+
"Impacted dependent node variables": "Các nút tham chiếu đến biến của nút hiện tại",
|
|
263
|
+
"Keep variable references": "Giữ tham chiếu biến",
|
|
264
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "Giữ tham chiếu biến cần điều chỉnh thủ công, nếu không quy trình có thể lỗi.",
|
|
265
|
+
"Failed to update node variables": "Không thể cập nhật biến của nút"
|
|
266
|
+
}
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -265,5 +265,21 @@
|
|
|
265
265
|
"Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "删除成功之前触发工作流(支持操作前事件)。",
|
|
266
266
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "按钮点击后直接触发工作流,但不会保存数据。仅支持绑定“自定义操作事件”。",
|
|
267
267
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "未知类型的工作流会导致错误,请删除或检查提供该类型的插件。",
|
|
268
|
-
"Yes": "是"
|
|
268
|
+
"Yes": "是",
|
|
269
|
+
"Failed to move node": "节点移动失败",
|
|
270
|
+
"Confirm move": "确认移动",
|
|
271
|
+
"Moving this node may remove variable references.": "移动该节点可能会移除变量引用。",
|
|
272
|
+
"Impacted current node variables": "当前节点引用的变量",
|
|
273
|
+
"Impacted dependent node variables": "引用当前节点变量的节点",
|
|
274
|
+
"Keep variable references": "保留变量引用,我将手动修复",
|
|
275
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "已保留变量引用,请手动调整,否则工作流执行可能出错。",
|
|
276
|
+
"Failed to update node variables": "更新节点变量失败",
|
|
277
|
+
"Copy": "复制",
|
|
278
|
+
"Cancel copy": "取消复制",
|
|
279
|
+
"Paste": "粘贴",
|
|
280
|
+
"Copied node": "已复制节点",
|
|
281
|
+
"Click a paste button to place": "点击粘贴按钮放置",
|
|
282
|
+
"Confirm paste": "确认粘贴",
|
|
283
|
+
"This action will remove invalid variable references, otherwise the workflow cannot run correctly.": "该操作将移除无效的变量引用,否则工作流将无法正确执行。",
|
|
284
|
+
"Failed to paste node": "粘贴节点失败"
|
|
269
285
|
}
|
package/dist/locale/zh-TW.json
CHANGED
|
@@ -254,4 +254,12 @@
|
|
|
254
254
|
"Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".",
|
|
255
255
|
"Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.",
|
|
256
256
|
"Yes": "Yes",
|
|
257
|
+
"Failed to move node": "節點移動失敗",
|
|
258
|
+
"Confirm move": "確認移動",
|
|
259
|
+
"Moving this node may remove variable references.": "移動此節點可能會移除變數引用。",
|
|
260
|
+
"Impacted current node variables": "目前節點引用的變數",
|
|
261
|
+
"Impacted dependent node variables": "引用目前節點變數的節點",
|
|
262
|
+
"Keep variable references": "保留變數引用",
|
|
263
|
+
"Keeping variable references requires manual adjustment, otherwise workflow may fail.": "已保留變數引用,請手動調整,否則工作流執行可能出錯。",
|
|
264
|
+
"Failed to update node variables": "更新節點變數失敗"
|
|
257
265
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2026-02-
|
|
1
|
+
{"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2026-02-07T03:54:55.499Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"8.0.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","preprepare":"rm -rf dist","prepare":"tsc -p tsconfig.json && tsc -p tsconfig-esm.json","postprepare":"bash fixup.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"c8 tap","snap":"c8 tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig tsconfig-esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile"},"main":"./dist/cjs/index-cjs.js","module":"./dist/mjs/index.js","types":"./dist/mjs/index.d.ts","exports":{"./min":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.min.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.min.js"}},".":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index-cjs.js"}}},"repository":"git://github.com/isaacs/node-lru-cache.git","devDependencies":{"@size-limit/preset-small-lib":"^7.0.8","@types/node":"^17.0.31","@types/tap":"^15.0.6","benchmark":"^2.1.4","c8":"^7.11.2","clock-mock":"^1.0.6","esbuild":"^0.17.11","eslint-config-prettier":"^8.5.0","marked":"^4.2.12","mkdirp":"^2.1.5","prettier":"^2.6.2","size-limit":"^7.0.8","tap":"^16.3.4","ts-node":"^10.7.0","tslib":"^2.4.0","typedoc":"^0.23.24","typescript":"^4.6.4"},"license":"ISC","files":["dist"],"engines":{"node":">=16.14"},"prettier":{"semi":false,"printWidth":70,"tabWidth":2,"useTabs":false,"singleQuote":true,"jsxSingleQuote":false,"bracketSameLine":true,"arrowParens":"avoid","endOfLine":"lf"},"tap":{"coverage":false,"node-arg":["--expose-gc","--no-warnings","--loader","ts-node/esm"],"ts":false},"size-limit":[{"path":"./dist/mjs/index.js"}],"_lastModified":"2026-02-
|
|
1
|
+
{"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"8.0.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","preprepare":"rm -rf dist","prepare":"tsc -p tsconfig.json && tsc -p tsconfig-esm.json","postprepare":"bash fixup.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"c8 tap","snap":"c8 tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig tsconfig-esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile"},"main":"./dist/cjs/index-cjs.js","module":"./dist/mjs/index.js","types":"./dist/mjs/index.d.ts","exports":{"./min":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.min.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.min.js"}},".":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index-cjs.js"}}},"repository":"git://github.com/isaacs/node-lru-cache.git","devDependencies":{"@size-limit/preset-small-lib":"^7.0.8","@types/node":"^17.0.31","@types/tap":"^15.0.6","benchmark":"^2.1.4","c8":"^7.11.2","clock-mock":"^1.0.6","esbuild":"^0.17.11","eslint-config-prettier":"^8.5.0","marked":"^4.2.12","mkdirp":"^2.1.5","prettier":"^2.6.2","size-limit":"^7.0.8","tap":"^16.3.4","ts-node":"^10.7.0","tslib":"^2.4.0","typedoc":"^0.23.24","typescript":"^4.6.4"},"license":"ISC","files":["dist"],"engines":{"node":">=16.14"},"prettier":{"semi":false,"printWidth":70,"tabWidth":2,"useTabs":false,"singleQuote":true,"jsxSingleQuote":false,"bracketSameLine":true,"arrowParens":"avoid","endOfLine":"lf"},"tap":{"coverage":false,"node-arg":["--expose-gc","--no-warnings","--loader","ts-node/esm"],"ts":false},"size-limit":[{"path":"./dist/mjs/index.js"}],"_lastModified":"2026-02-07T03:54:55.152Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-02-
|
|
1
|
+
{"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-02-07T03:54:54.947Z"}
|
package/dist/server/Plugin.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { Context } from '@nocobase/actions';
|
|
10
10
|
export declare function create(context: Context, next: any): Promise<void>;
|
|
11
|
+
export declare function duplicate(context: Context, next: any): Promise<void>;
|
|
11
12
|
export declare function destroy(context: Context, next: any): Promise<void>;
|
|
12
13
|
export declare function destroyBranch(context: Context, next: any): Promise<void>;
|
|
13
14
|
export declare function move(context: Context, next: any): Promise<void>;
|
|
@@ -39,6 +39,7 @@ __export(nodes_exports, {
|
|
|
39
39
|
create: () => create,
|
|
40
40
|
destroy: () => destroy,
|
|
41
41
|
destroyBranch: () => destroyBranch,
|
|
42
|
+
duplicate: () => duplicate,
|
|
42
43
|
move: () => move,
|
|
43
44
|
test: () => test,
|
|
44
45
|
update: () => update
|
|
@@ -134,6 +135,117 @@ async function create(context, next) {
|
|
|
134
135
|
});
|
|
135
136
|
await next();
|
|
136
137
|
}
|
|
138
|
+
async function duplicate(context, next) {
|
|
139
|
+
const { db } = context;
|
|
140
|
+
const repository = import_actions.utils.getRepositoryFromParams(context);
|
|
141
|
+
const { whitelist, blacklist, filterByTk, values = {} } = context.action.params;
|
|
142
|
+
const workflowPlugin = context.app.pm.get(import__.default);
|
|
143
|
+
context.body = await db.sequelize.transaction(async (transaction) => {
|
|
144
|
+
const origin = filterByTk ? await repository.findOne({ filterByTk, transaction }) : null;
|
|
145
|
+
if (!origin) {
|
|
146
|
+
return context.throw(404, "Node not found");
|
|
147
|
+
}
|
|
148
|
+
const workflow = workflowPlugin.enabledCache.get(origin.workflowId) || await db.getRepository("workflows").findOne({
|
|
149
|
+
filterByTk: origin.workflowId,
|
|
150
|
+
transaction
|
|
151
|
+
});
|
|
152
|
+
if (!workflow) {
|
|
153
|
+
return context.throw(400, "Workflow not found");
|
|
154
|
+
}
|
|
155
|
+
if (!workflow.versionStats) {
|
|
156
|
+
workflow.versionStats = await workflow.getVersionStats({ transaction });
|
|
157
|
+
}
|
|
158
|
+
if (workflow.versionStats.executed > 0) {
|
|
159
|
+
context.throw(400, "Node could not be created in executed workflow");
|
|
160
|
+
}
|
|
161
|
+
const NODES_LIMIT = process.env.WORKFLOW_NODES_LIMIT ? parseInt(process.env.WORKFLOW_NODES_LIMIT, 10) : null;
|
|
162
|
+
if (NODES_LIMIT) {
|
|
163
|
+
const nodesCount = await workflow.countNodes({ transaction });
|
|
164
|
+
if (nodesCount >= NODES_LIMIT) {
|
|
165
|
+
context.throw(400, `The number of nodes in a workflow cannot exceed ${NODES_LIMIT}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
let nextConfig = values.config;
|
|
169
|
+
if (!nextConfig) {
|
|
170
|
+
const instruction = workflowPlugin.instructions.get(origin.type);
|
|
171
|
+
if (instruction && typeof instruction.duplicateConfig === "function") {
|
|
172
|
+
nextConfig = await instruction.duplicateConfig(origin, { origin: origin ?? void 0, transaction });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const instance = await repository.create({
|
|
176
|
+
values: {
|
|
177
|
+
config: nextConfig ?? origin.config,
|
|
178
|
+
upstreamId: values.upstreamId,
|
|
179
|
+
branchIndex: values.branchIndex,
|
|
180
|
+
type: origin.type,
|
|
181
|
+
title: origin.title,
|
|
182
|
+
workflowId: origin.workflowId
|
|
183
|
+
},
|
|
184
|
+
whitelist,
|
|
185
|
+
blacklist,
|
|
186
|
+
context,
|
|
187
|
+
transaction
|
|
188
|
+
});
|
|
189
|
+
if (!instance.upstreamId) {
|
|
190
|
+
const previousHead = await repository.findOne({
|
|
191
|
+
filter: {
|
|
192
|
+
id: {
|
|
193
|
+
$ne: instance.id
|
|
194
|
+
},
|
|
195
|
+
workflowId: origin.workflowId,
|
|
196
|
+
upstreamId: null
|
|
197
|
+
},
|
|
198
|
+
transaction
|
|
199
|
+
});
|
|
200
|
+
if (previousHead) {
|
|
201
|
+
await previousHead.setUpstream(instance, { transaction });
|
|
202
|
+
await instance.setDownstream(previousHead, { transaction });
|
|
203
|
+
instance.set("downstream", previousHead);
|
|
204
|
+
}
|
|
205
|
+
return instance;
|
|
206
|
+
}
|
|
207
|
+
const upstream = await instance.getUpstream({ transaction });
|
|
208
|
+
if (instance.branchIndex == null) {
|
|
209
|
+
const downstream = await upstream.getDownstream({ transaction });
|
|
210
|
+
if (downstream) {
|
|
211
|
+
await downstream.setUpstream(instance, { transaction });
|
|
212
|
+
await instance.setDownstream(downstream, { transaction });
|
|
213
|
+
instance.set("downstream", downstream);
|
|
214
|
+
}
|
|
215
|
+
await upstream.update(
|
|
216
|
+
{
|
|
217
|
+
downstreamId: instance.id
|
|
218
|
+
},
|
|
219
|
+
{ transaction }
|
|
220
|
+
);
|
|
221
|
+
upstream.set("downstream", instance);
|
|
222
|
+
} else {
|
|
223
|
+
const [downstream] = await upstream.getBranches({
|
|
224
|
+
where: {
|
|
225
|
+
id: {
|
|
226
|
+
[import_database.Op.ne]: instance.id
|
|
227
|
+
},
|
|
228
|
+
branchIndex: instance.branchIndex
|
|
229
|
+
},
|
|
230
|
+
transaction
|
|
231
|
+
});
|
|
232
|
+
if (downstream) {
|
|
233
|
+
await downstream.update(
|
|
234
|
+
{
|
|
235
|
+
upstreamId: instance.id,
|
|
236
|
+
branchIndex: null
|
|
237
|
+
},
|
|
238
|
+
{ transaction }
|
|
239
|
+
);
|
|
240
|
+
await instance.setDownstream(downstream, { transaction });
|
|
241
|
+
instance.set("downstream", downstream);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
instance.set("upstream", upstream);
|
|
245
|
+
return instance;
|
|
246
|
+
});
|
|
247
|
+
await next();
|
|
248
|
+
}
|
|
137
249
|
function searchBranchNodes(nodes, from) {
|
|
138
250
|
const branchHeads = nodes.filter((item) => item.upstreamId === from.id && item.branchIndex != null);
|
|
139
251
|
return branchHeads.reduce(
|
|
@@ -351,7 +463,7 @@ async function move(context, next) {
|
|
|
351
463
|
if (upstreamId == null) {
|
|
352
464
|
branchIndex = null;
|
|
353
465
|
}
|
|
354
|
-
const fields = ["id", "upstreamId", "downstreamId", "branchIndex", "workflowId"];
|
|
466
|
+
const fields = ["id", "key", "upstreamId", "downstreamId", "branchIndex", "workflowId"];
|
|
355
467
|
context.body = await db.sequelize.transaction(async (transaction) => {
|
|
356
468
|
const instance = await repository.findOne({
|
|
357
469
|
filterByTk,
|
|
@@ -550,6 +662,7 @@ async function test(context, next) {
|
|
|
550
662
|
create,
|
|
551
663
|
destroy,
|
|
552
664
|
destroyBranch,
|
|
665
|
+
duplicate,
|
|
553
666
|
move,
|
|
554
667
|
test,
|
|
555
668
|
update
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
|
|
7
7
|
"description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
|
|
8
8
|
"description.ru-RU": "Мощный инструмент BPM, обеспечивающий базовую поддержку автоматизации бизнес-процессов с возможностью неограниченного расширения триггеров и узлов.",
|
|
9
|
-
"version": "2.0.0-beta.
|
|
9
|
+
"version": "2.0.0-beta.21",
|
|
10
10
|
"license": "AGPL-3.0",
|
|
11
11
|
"main": "./dist/server/index.js",
|
|
12
12
|
"homepage": "https://docs.nocobase.com/handbook/workflow",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@nocobase/test": "2.x",
|
|
49
49
|
"@nocobase/utils": "2.x"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "3ea30685d9592934ec578c0b5e8def60a7fcc3c2",
|
|
52
52
|
"keywords": [
|
|
53
53
|
"Workflow"
|
|
54
54
|
]
|