@haiiro/docuflow 0.0.16 → 0.0.18
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/README.md +8 -2
- package/manifest.json +34 -19
- package/package.json +1 -1
- package/public/app/docflow-app.js +5 -5
- package/src/front-components/docflow-documents.front-component.mjs +1 -1
- package/src/front-components/docflow-processes.front-component.mjs +35 -35
- package/src/front-components/docflow-processes.front-component.tsx +187 -85
- package/src/front-components/docflow-tasks.front-component.mjs +24 -24
- package/src/front-components/launch-process.front-component.mjs +19 -19
- package/src/front-components/launch-process.front-component.tsx +36 -60
- package/src/front-components/process-steps.front-component.mjs +17 -17
- package/src/front-components/task-form.front-component.mjs +10 -10
- package/src/logic-functions/bitrix-app.logic-function.mjs +1 -1
- package/src/logic-functions/complete-task.logic-function.mjs +39 -8
- package/src/logic-functions/docflow-app.logic-function.mjs +1 -1
- package/src/logic-functions/hand-out-form-step.logic-function.mjs +71284 -11217
- package/src/logic-functions/hand-out-form-step.logic-function.ts +6 -1
- package/src/logic-functions/launch-process.logic-function.mjs +269 -33
- package/src/logic-functions/launch-process.logic-function.ts +42 -37
- package/src/logic-functions/on-task-updated.logic-function.mjs +39 -8
- package/src/logic-functions/on-workflow-run-updated.logic-function.mjs +48 -9
- package/src/logic-functions/on-workflow-run-updated.logic-function.ts +18 -3
- package/src/logic-functions/process-catalog.logic-function.mjs +119726 -0
- package/src/logic-functions/process-catalog.logic-function.ts +84 -0
- package/src/logic-functions/publish-process.logic-function.mjs +218 -16
- package/src/logic-functions/publish-process.logic-function.ts +13 -5
- package/src/logic-functions/save-launch-fields.logic-function.mjs +5 -2
- package/src/logic-functions/save-step-settings.logic-function.mjs +5 -2
|
@@ -119749,7 +119749,7 @@ var getCrmUrl = () => {
|
|
|
119749
119749
|
// package.json
|
|
119750
119750
|
var package_default = {
|
|
119751
119751
|
name: "@haiiro/docuflow",
|
|
119752
|
-
version: "0.0.
|
|
119752
|
+
version: "0.0.18",
|
|
119753
119753
|
description: "NorDiv \u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043E\u0431\u043E\u0440\u043E\u0442: \u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0441 \u043F\u043E\u043B\u044F\u043C\u0438, \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u044B \u0441 \u0437\u0430\u043F\u0443\u0441\u043A\u043E\u043C \u043F\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C, \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B \u0441\u043E \u0432\u0441\u0435\u0445 \u0437\u0430\u043F\u0438\u0441\u0435\u0439, \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0411\u0438\u0442\u0440\u0438\u043A\u044124",
|
|
119754
119754
|
license: "AGPL-3.0-only",
|
|
119755
119755
|
publishConfig: {
|
|
@@ -119409,12 +119409,16 @@ var readUserMessage = (value) => {
|
|
|
119409
119409
|
}
|
|
119410
119410
|
return void 0;
|
|
119411
119411
|
};
|
|
119412
|
+
var isMissingGraphqlField = (error) => error instanceof CoreGraphqlError && /Cannot query field|Unknown type/i.test(error.message);
|
|
119412
119413
|
var callCoreGraphql = async ({
|
|
119413
119414
|
query,
|
|
119414
|
-
variables
|
|
119415
|
+
variables,
|
|
119416
|
+
runAs = "person"
|
|
119415
119417
|
}) => {
|
|
119416
119418
|
const apiUrl = process.env.TWENTY_API_URL;
|
|
119417
|
-
const
|
|
119419
|
+
const personToken = process.env.TWENTY_APP_ACCESS_TOKEN;
|
|
119420
|
+
const applicationToken = process.env.TWENTY_APP_APPLICATION_ACCESS_TOKEN;
|
|
119421
|
+
const token = runAs === "person" ? personToken ?? applicationToken : applicationToken ?? personToken;
|
|
119418
119422
|
if (apiUrl === void 0 || token === void 0) {
|
|
119419
119423
|
throw new CoreGraphqlError(
|
|
119420
119424
|
"TWENTY_API_URL or TWENTY_APP_ACCESS_TOKEN is not set",
|
|
@@ -119439,6 +119443,9 @@ var callCoreGraphql = async ({
|
|
|
119439
119443
|
}
|
|
119440
119444
|
return body.data;
|
|
119441
119445
|
};
|
|
119446
|
+
var SUBMIT_FORM_STEP_MUTATION = `mutation SubmitFormStep($input: SubmitFormStepInput!) {
|
|
119447
|
+
submitFormStep(input: $input)
|
|
119448
|
+
}`;
|
|
119442
119449
|
var ANSWER_TOOL_CALL_MUTATION = `mutation AnswerToolCall($input: AnswerToolCallInput!) {
|
|
119443
119450
|
answerToolCall(input: $input) { streamId }
|
|
119444
119451
|
}`;
|
|
@@ -119531,17 +119538,24 @@ var getFormStepAssignment = ({
|
|
|
119531
119538
|
now
|
|
119532
119539
|
)
|
|
119533
119540
|
});
|
|
119541
|
+
var getStepWaitKey = ({
|
|
119542
|
+
workflowRunId,
|
|
119543
|
+
stepId,
|
|
119544
|
+
stepInfo
|
|
119545
|
+
}) => typeof stepInfo?.threadId === "string" && stepInfo.threadId.length > 0 ? stepInfo.threadId : `${workflowRunId}.${stepId}`;
|
|
119546
|
+
var isStepWaitingForAnswer = (stepInfo) => stepInfo?.status === "PENDING" && (stepInfo.error === void 0 || stepInfo.error === null) && (typeof stepInfo.threadId === "string" && stepInfo.threadId.length > 0 || stepInfo.wait?.type === "CALLBACK");
|
|
119534
119547
|
|
|
119535
119548
|
// src/server/workflow-engine.ts
|
|
119536
119549
|
var answerFormStep = async ({
|
|
119537
119550
|
state,
|
|
119551
|
+
workflowRunId,
|
|
119538
119552
|
stepId,
|
|
119539
|
-
|
|
119553
|
+
waitKey,
|
|
119540
119554
|
values
|
|
119541
119555
|
}) => {
|
|
119542
119556
|
const step = state?.flow?.steps?.find((candidate) => candidate.id === stepId);
|
|
119543
119557
|
const stepInfo = state?.stepInfos?.[stepId];
|
|
119544
|
-
if (step === void 0 || !isFormStep(step) || stepInfo
|
|
119558
|
+
if (step === void 0 || !isFormStep(step) || !isStepWaitingForAnswer(stepInfo) || getStepWaitKey({ workflowRunId, stepId, stepInfo }) !== waitKey) {
|
|
119545
119559
|
return { status: "NOT_WAITING" };
|
|
119546
119560
|
}
|
|
119547
119561
|
const fields = resolveFormStepFields(
|
|
@@ -119565,10 +119579,26 @@ var answerFormStep = async ({
|
|
|
119565
119579
|
),
|
|
119566
119580
|
values
|
|
119567
119581
|
});
|
|
119568
|
-
|
|
119569
|
-
|
|
119570
|
-
|
|
119582
|
+
const threadId = stepInfo?.threadId;
|
|
119583
|
+
const submitFormStep = () => callCoreGraphql({
|
|
119584
|
+
query: SUBMIT_FORM_STEP_MUTATION,
|
|
119585
|
+
variables: { input: { stepId, workflowRunId, response } }
|
|
119571
119586
|
});
|
|
119587
|
+
if (typeof threadId === "string" && threadId.length > 0) {
|
|
119588
|
+
try {
|
|
119589
|
+
await callCoreGraphql({
|
|
119590
|
+
query: ANSWER_TOOL_CALL_MUTATION,
|
|
119591
|
+
variables: { input: { threadId, toolCallId: stepId, response } }
|
|
119592
|
+
});
|
|
119593
|
+
} catch (error) {
|
|
119594
|
+
if (!isMissingGraphqlField(error)) {
|
|
119595
|
+
throw error;
|
|
119596
|
+
}
|
|
119597
|
+
await submitFormStep();
|
|
119598
|
+
}
|
|
119599
|
+
} else {
|
|
119600
|
+
await submitFormStep();
|
|
119601
|
+
}
|
|
119572
119602
|
return { status: "ANSWERED" };
|
|
119573
119603
|
};
|
|
119574
119604
|
|
|
@@ -119582,8 +119612,9 @@ var answerStepOfTask = async (task, values) => {
|
|
|
119582
119612
|
try {
|
|
119583
119613
|
const result = await answerFormStep({
|
|
119584
119614
|
state: run?.state,
|
|
119615
|
+
workflowRunId: task.smbWorkflowRunId,
|
|
119585
119616
|
stepId: task.smbWorkflowStepId,
|
|
119586
|
-
|
|
119617
|
+
waitKey: task.smbWorkflowThreadId,
|
|
119587
119618
|
values
|
|
119588
119619
|
});
|
|
119589
119620
|
return result.status === "MISSING_REQUIRED" ? { status: "MISSING_REQUIRED", labels: result.labels } : void 0;
|
|
@@ -59961,7 +59961,7 @@ var AL = class {
|
|
|
59961
59961
|
// package.json
|
|
59962
59962
|
var package_default = {
|
|
59963
59963
|
name: "@haiiro/docuflow",
|
|
59964
|
-
version: "0.0.
|
|
59964
|
+
version: "0.0.18",
|
|
59965
59965
|
description: "NorDiv \u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043E\u0431\u043E\u0440\u043E\u0442: \u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0441 \u043F\u043E\u043B\u044F\u043C\u0438, \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u044B \u0441 \u0437\u0430\u043F\u0443\u0441\u043A\u043E\u043C \u043F\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C, \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B \u0441\u043E \u0432\u0441\u0435\u0445 \u0437\u0430\u043F\u0438\u0441\u0435\u0439, \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0411\u0438\u0442\u0440\u0438\u043A\u044124",
|
|
59966
59966
|
license: "AGPL-3.0-only",
|
|
59967
59967
|
publishConfig: {
|